新聞中心

EEPW首頁(yè) > 嵌入式系統(tǒng) > 設(shè)計(jì)應(yīng)用 > 先進(jìn)FPGA開(kāi)發(fā)工具中的時(shí)序分析

先進(jìn)FPGA開(kāi)發(fā)工具中的時(shí)序分析

作者:Achronix高級(jí)現(xiàn)場(chǎng)應(yīng)用工程師 黃侖 時(shí)間:2022-06-24 來(lái)源:電子產(chǎn)品世界 收藏

1. 概述

本文引用地址:http://m.butianyuan.cn/article/202206/435547.htm

對(duì)于現(xiàn)今的芯片供應(yīng)商,在提供高性能和高集成度獨(dú)立芯片和半導(dǎo)體知識(shí)產(chǎn)權(quán)(IP)產(chǎn)品的同時(shí),還需要提供性能卓越且便捷易用的開(kāi)發(fā)工具。本文將以一家領(lǐng)先的解決方案提供商為例,來(lái)分析FPGA開(kāi)發(fā)工具套件如何與其先進(jìn)的硬件結(jié)合,幫助客戶創(chuàng)建完美的、可在包括獨(dú)立FPGA芯片和帶有嵌入式FPGAeFPGAIPASIC或者SoC之間移植的開(kāi)發(fā)成果。

隨著人工智能、云計(jì)算、邊緣計(jì)算、智能駕駛和5G等新技術(shù)在近幾年異軍突起,也推動(dòng)了FPGA技術(shù)的快速發(fā)展,如Speedster7t獨(dú)立FPGA芯片不僅采用了7nm的工藝,而且還帶有二維片上網(wǎng)絡(luò)(2D NoC)和機(jī)器學(xué)習(xí)處理器(MLP)來(lái)支持高通量數(shù)據(jù)的流動(dòng)和處理。同時(shí),Speedcore eFPGA IP也被很多全球領(lǐng)先科技公司集成到其ASIC或者SoC中。Achronix也推出了其ACE開(kāi)發(fā)工具套件來(lái)同時(shí)支持這些產(chǎn)品,如圖1所示。它不僅提供了先進(jìn)的開(kāi)發(fā)功能和資源管理能力,還集成了最新的Synplify Pro軟件。

image.png

1  Achronix ACE開(kāi)發(fā)工具套件

AchronixACE開(kāi)發(fā)工具套件是一套最先進(jìn)的設(shè)計(jì)工具鏈,可為Achronix的所有硬件產(chǎn)品提供支持。ACE與業(yè)界標(biāo)準(zhǔn)的邏輯綜合工具配合使用,可支持FPGA設(shè)計(jì)人員便捷地將其設(shè)計(jì)映射到Speedster7t FPGA、Speedcore eFPGA中。這也意味著Achronix的用戶可以根據(jù)其應(yīng)用的規(guī)模,在Speedster7t、搭載該芯片的VectorPath加速卡、以及帶有SpeedcoreSoC或者ASIC中選擇最佳的產(chǎn)品形態(tài)和路線圖。

ACE包括了為Achronix優(yōu)化的SynopsysSynplify-Pro工具。Achronix仿真邏輯庫(kù)也獲得了MentorModelSimSynopsysVCS等主流仿真工具的支持,設(shè)計(jì)人員還可以使用功能強(qiáng)大的布局規(guī)劃工具(floorplanner)進(jìn)行設(shè)計(jì)優(yōu)化,并且在進(jìn)入時(shí)序驅(qū)動(dòng)的布局布線之前為所有設(shè)計(jì)模塊實(shí)例分配區(qū)域或位置。

ACE還包括一個(gè)關(guān)鍵的時(shí)序路徑分析工具,可以分析時(shí)序以確保設(shè)計(jì)符合性能要求。設(shè)計(jì)人員還可以使用ACE強(qiáng)大的Snapshot嵌入式邏輯分析器來(lái)創(chuàng)建復(fù)雜的觸發(fā)條件,并顯示在Speedster7t器件中運(yùn)行的信號(hào)。

總之,ACE開(kāi)發(fā)工具套件可以覆蓋FPGA設(shè)計(jì)開(kāi)發(fā)、編譯到調(diào)試所有的必備功能。

2. ACE中集成的時(shí)序路徑分析工具

FPGA開(kāi)發(fā)中一個(gè)十分關(guān)鍵的過(guò)程,也是復(fù)雜FPGA系統(tǒng)開(kāi)發(fā)必須進(jìn)行的一步。時(shí)序問(wèn)題是所有FPGA設(shè)計(jì)者繞不開(kāi)的經(jīng)常會(huì)出現(xiàn)的問(wèn)題。如何能讓FPGA設(shè)計(jì)跑在更高的頻率,如何能更快地解決時(shí)序問(wèn)題,對(duì)于FPGA設(shè)計(jì)至關(guān)重要。

好的時(shí)序路徑分析工具能夠幫助設(shè)計(jì)者更快地定位時(shí)序問(wèn)題。Achronix ACE開(kāi)發(fā)工具套件集成了功能強(qiáng)大的時(shí)序路徑分析工具,相信能夠有效地幫助FPGA設(shè)計(jì)者解決各種各樣的時(shí)序問(wèn)題。

 

3. 時(shí)序報(bào)告的產(chǎn)生

FPGA的基本開(kāi)發(fā)流程中,有多處可以進(jìn)行的地方。ACE開(kāi)發(fā)工具套件可以提供綜合以后、布局以后、布線以后等各個(gè)階段的。對(duì)于大多數(shù)設(shè)計(jì)者,只做布局布線以后的時(shí)序分析即可,因?yàn)閹Я瞬季植季€信息的時(shí)序分析最為精確,下面我們重點(diǎn)介紹布局布線以后的時(shí)序分析。

在利用ACE工具生成時(shí)序報(bào)告之前,我們先設(shè)置時(shí)序分析的相關(guān)參數(shù),ACE會(huì)根據(jù)設(shè)置的參數(shù)自動(dòng)生成一個(gè)時(shí)序分析報(bào)告。如圖2所示,第一項(xiàng)設(shè)置關(guān)鍵路徑的打印條數(shù),默認(rèn)是10條。第二項(xiàng)是設(shè)置每條關(guān)鍵路徑中最壞路徑的打印條數(shù),因?yàn)樵诿織l關(guān)鍵路徑的兩個(gè)端點(diǎn)中可能包含多條路徑。

第三個(gè)單選框是打印未約束的時(shí)序路徑,這個(gè)信息可以幫助設(shè)計(jì)者查看時(shí)序約束是否覆蓋了設(shè)計(jì)中的所有路徑,報(bào)告中出現(xiàn)的未約束的路徑是不是用戶有意不想讓工具去分析的路徑。最后一個(gè)單選框是打印異步clearpreset信號(hào)到寄存器數(shù)據(jù)輸出的路徑。

image.png

2  時(shí)序報(bào)告相關(guān)參數(shù)

ACE跑完布局布線時(shí)序分析以后,工具會(huì)根據(jù)參數(shù)設(shè)置產(chǎn)生相應(yīng)的時(shí)序報(bào)告。時(shí)序報(bào)告有三種格式,html,csvtxt。三種文件格式不同,內(nèi)容完全一樣。

除了可以自動(dòng)生成時(shí)序報(bào)告以外,ACE開(kāi)發(fā)工具套件也支持用戶用Tcl命令去生成指定路徑的時(shí)序報(bào)告。ACE開(kāi)發(fā)工具套件支持的時(shí)序分析相關(guān)的Tcl命令如下:

check_setup:對(duì)設(shè)計(jì)做一些時(shí)序方面的檢查。

prepare_sta:做靜態(tài)時(shí)序分析的準(zhǔn)備,進(jìn)入時(shí)序分析模式。

report_checks:用于報(bào)告具體路徑的時(shí)序分析結(jié)果。

report_clock_properties:用于報(bào)告設(shè)計(jì)中用到的時(shí)鐘屬性。

reset_sta:用于退出時(shí)序分析模式。

通過(guò)上面五條Tcl命令可以靈活地對(duì)設(shè)計(jì)進(jìn)行時(shí)序檢查和分析,具體使用可參見(jiàn)Achronix ACE User Guide UG070。

 

4. 時(shí)序報(bào)告詳解

打開(kāi)時(shí)序報(bào)告,文件開(kāi)頭會(huì)有一個(gè)summary,如圖3所示。

image.png

3  時(shí)序報(bào)告Summary

 

Summary里面會(huì)顯示在fast cornerslow corner下的setuphold分析的關(guān)鍵路徑。同時(shí)在Summary的最下面,系統(tǒng)會(huì)報(bào)告每個(gè)時(shí)鐘的目標(biāo)約束和實(shí)際能跑到的頻率。在Summary頁(yè)面中,關(guān)鍵路徑前有一個(gè)path id,這個(gè)path id同時(shí)又是一個(gè)超鏈接,用鼠標(biāo)點(diǎn)擊后會(huì)自動(dòng)跳轉(zhuǎn)到具體的時(shí)序路徑分析頁(yè)面,如圖4所示。

image.png

4  具體的時(shí)序路徑分析

5所示是一條分析setup的路徑。

image.png

5  setup timing路徑分析

數(shù)據(jù)從FF1發(fā)送出去被FF2捕獲,這里的Data Arrival Time等于時(shí)鐘launch edgeFF1CLK端口需要的時(shí)間T_launch,加上源時(shí)鐘的路徑延遲,即CLK端到數(shù)據(jù)Q端需要的時(shí)間Tco,再加上數(shù)據(jù)的傳播延遲T_delay

Data Arrival Time = T_launch + Tco + T_delay = 1.544 ns + 1.023 ns + 0.582 ns = 3.149 ns

Data Required Time等于CLK到達(dá)FF2所需要的時(shí)間T_capture,加上clock uncertainty,減去CLK路徑悲觀補(bǔ)償,再減去FF2的建立時(shí)間T_setup 最后不要忘了加上一個(gè)時(shí)鐘周期:

Data Required Time = T_period + T_capture - T_clock_uncertainty + T_clk_reconvergence_pessimism T_setup = 2.000 ns + 1.445 ns - 0.040 ns + 0.093 ns 0.005 ns = 3.493 ns

這樣Setup slack就可以計(jì)算得出:

Setup Slack = Data Required Time - Data Arrival Time Statistical Adjustment= 0.344 ns 0.007ns(時(shí)序調(diào)整值) = 0.337ns

這里要提到時(shí)鐘公共路徑悲觀補(bǔ)償,因?yàn)闀r(shí)鐘到達(dá)FF1FF2開(kāi)頭一段路徑是重合的,在這段路徑里我們還是用最大時(shí)延差和最小時(shí)延差去進(jìn)行時(shí)序分析的話是很悲觀的,所以需要用這個(gè)參數(shù)補(bǔ)償回來(lái)。

 

5. 圖形化界面輔助時(shí)序分析

ACEfloorplanner界面中,可以通過(guò)圖形界面輔助進(jìn)行時(shí)序分析,如圖6所示。

image.png

6  floorplanner界面的時(shí)序路徑分析

          ACE工具會(huì)Critical Paths頁(yè)面把時(shí)序報(bào)告中的時(shí)序路徑全部列出來(lái),不滿足時(shí)序的路徑用紅色高亮顯示,滿足時(shí)序的路徑用綠色表示。用戶選中其中一條路徑,在floorplanner界面里這條路徑的走線就會(huì)自動(dòng)高亮顯示出來(lái),便于用戶看到這條路徑在FPGA內(nèi)部具體的連接,以及源寄存器和目的寄存器在器件中的具體位置。

image.png

7  示意圖表示的時(shí)序路徑

floorplanner頁(yè)面旁邊有個(gè)Diagram視圖,選中以后可以示意圖的方式顯示出這條路徑的具體延時(shí)數(shù)據(jù),鼠標(biāo)停留在框圖上還會(huì)顯示更具體的信息。

綜上所述,在時(shí)序分析方面,ACE開(kāi)發(fā)工具套件提供了完備的時(shí)序分析工具,從時(shí)序報(bào)告,到Tcl命令,再到圖形化的顯示,用戶可以很方便地利用工具進(jìn)行時(shí)序分析,找到具體的問(wèn)題所在,然后針對(duì)具體問(wèn)題來(lái)優(yōu)化設(shè)計(jì)的整體性能。

后面我們會(huì)繼續(xù)深入了解ACE開(kāi)發(fā)工具套件的各種特性,并且會(huì)用一些例子來(lái)說(shuō)明如何更高效地利用這些特性為FPGA設(shè)計(jì)提供方便,敬請(qǐng)期待。 如需更多信息或者有任何疑問(wèn)您可以通過(guò)Achronix公眾號(hào)里的聯(lián)系方式聯(lián)系我們,也可訪問(wèn)Achronix公司官方網(wǎng)站 http://www.achronix.com。

 

參考文獻(xiàn):

1.             Achronix website www.achronix.com

2.             Achronix ACE User Guide UG070




關(guān)鍵詞: FPGA 時(shí)序分析 Achronix

評(píng)論


相關(guān)推薦

技術(shù)專區(qū)

關(guān)閉