李 珈
(湖北科技職業(yè)學(xué)院,湖北武漢,430074)
一般的FPGA 工程師在進(jìn)行電路設(shè)計(jì)的時(shí)候更加側(cè)重于代碼的編寫與硬件測試,若是最高頻率沒有達(dá)到要求,最先想到的也是換一個(gè)速度更快的芯片,而不會(huì)去關(guān)注時(shí)序分析和約束的問題。實(shí)際上,當(dāng)設(shè)計(jì)比較簡單,且運(yùn)行頻率比較低的時(shí)候,不加任何的時(shí)序約束,F(xiàn)PGA 軟件都可以綜合出來可用且相對(duì)較可靠的代碼,但當(dāng)設(shè)計(jì)比較復(fù)雜,運(yùn)行頻率比較高的時(shí)候,不做時(shí)序分析,不加上一些必要的約束,就很難保證設(shè)計(jì)能且穩(wěn)定的運(yùn)行在所設(shè)定的頻率上。
所有的FPGA 廠商都提供靜態(tài)時(shí)序分析(STA,Static Timing Analysis)工具,可對(duì)設(shè)計(jì)的時(shí)序性能作出評(píng)估。TQ(TimeQuest)是Altera 公司的第二代靜態(tài)時(shí)序分析器,它采用業(yè)界標(biāo)準(zhǔn)的設(shè)計(jì)約束文件(SDC 文件,Synopsys Design Contraint File),能夠適應(yīng)FPGA 的密度和速率增長的趨勢,完成傳統(tǒng)的FPGA 時(shí)序分析工具很難分析的設(shè)計(jì)接口。TQ 提供多種約束命令和圖形化的操作界面,簡化了生成時(shí)序約束文件的方法,提高了時(shí)序報(bào)告閱讀的效率。
靜態(tài)時(shí)序分析是相對(duì)于動(dòng)態(tài)時(shí)序仿真而言的,由于動(dòng)態(tài)的時(shí)序仿真占用的時(shí)間非常長,效率低下,因此STA 成為最常用的分析、調(diào)試時(shí)序性能的方法和工具。那么什么是靜態(tài)時(shí)序分析呢?它可以簡單地定義為:設(shè)計(jì)者提出一些特定的時(shí)序要求(或者說是添加特定的時(shí)序約束),套用特定的時(shí)序模型,針對(duì)特定的電路,通過分析每個(gè)時(shí)序路徑的延時(shí),計(jì)算出設(shè)計(jì)的最高頻率,查看系統(tǒng)時(shí)序是否滿足設(shè)計(jì)者提出的要求,同時(shí)可以發(fā)現(xiàn)時(shí)序違規(guī)。
所謂條條大路通羅馬,在實(shí)際的電路中,一個(gè)信號(hào)從起始點(diǎn)傳播到終點(diǎn)可能會(huì)經(jīng)過不同的傳輸路徑,所以對(duì)于同一組起始點(diǎn)和終點(diǎn),會(huì)存在不同的時(shí)序路徑(timing path),而由于不同的傳輸路徑的參數(shù)會(huì)有差異,所以這些時(shí)序路徑的延遲就不同。舉一個(gè)簡單的例子,假設(shè)信號(hào)從輸入到輸出需要在FPGA 內(nèi)部經(jīng)過一些邏輯延時(shí)和路徑延時(shí),系統(tǒng)要求這個(gè)信號(hào)在FPGA 內(nèi)部的延時(shí)不能超過15ns,而開發(fā)工具在執(zhí)行過程中找到了如圖1 所示的一些可能的布局布線方式。那么,怎樣的布局布線能夠達(dá)到系統(tǒng)的要求呢?仔細(xì)分析一番,發(fā)現(xiàn)所有路徑的延時(shí)可能為14ns、15ns、16ns、17ns 及18ns,有兩條路徑能夠滿足要求,那么最后的布局布線就會(huì)選擇滿足要求的兩條路徑之一。
圖1 靜態(tài)時(shí)序分析模型
STA 工具以約束作為判斷時(shí)序是否滿足設(shè)計(jì)要求的標(biāo)準(zhǔn),因此要求設(shè)計(jì)者正確輸入時(shí)序約束,以便STA 工具能輸出正確的時(shí)序分析結(jié)果。因此靜態(tài)時(shí)序分析的前提是設(shè)計(jì)者先提出要求,然后時(shí)序分析工具才會(huì)根據(jù)特定的時(shí)序模型進(jìn)行分析,即有約束才會(huì)有分析。若設(shè)計(jì)者不添加時(shí)序約束,那么時(shí)序分析就無從談起。
TimeQuest 時(shí)序分析器可用于分析設(shè)計(jì)中所有邏輯,并有助于指導(dǎo)Fitter 達(dá)到設(shè)計(jì)中的時(shí)序要求。設(shè)計(jì)者可以使用時(shí)序分析器產(chǎn)生的信息來分析、調(diào)試并驗(yàn)證設(shè)計(jì)的時(shí)序性能;還可以使用快速時(shí)序模型進(jìn)行時(shí)序分析,驗(yàn)證最佳情況(最快速率等級(jí)的最小延時(shí))條件下的時(shí)序。TQ 時(shí)序分析器采用SDC 文件格式作為時(shí)序約束輸入,不同于Timing Analyzer采用QSF(Quartus Settings File)約束文件。這正是TQ 的優(yōu)點(diǎn):采用行業(yè)通用的約束語言而不是專有語言,有利于設(shè)計(jì)約束從FPGA 向ASIC 設(shè)計(jì)流程遷移;有利于創(chuàng)建更深入的約束條件。TQ 分析器的操作流程如圖2 所示。
由此可見,TQ 時(shí)序分析器進(jìn)行約束和分析的對(duì)象是FPGA 器件的底層物理單元,均來自Quartus II 編譯流程各階段的編譯結(jié)果,因此二者是緊密結(jié)合在一起的。Quartus II 編譯中的“分析與綜合”之后,會(huì)進(jìn)行“映射”,生成的數(shù)據(jù)庫對(duì)應(yīng)FPGA 器件的物理結(jié)構(gòu),可以供TQ 進(jìn)行時(shí)序約束之用。由于“映射”過程實(shí)際是預(yù)先布局過程,尚未執(zhí)行時(shí)序驅(qū)動(dòng)的布局和布線工作,也沒有讀入引腳位置等約束信息,所以在這一步進(jìn)行的時(shí)序分析是時(shí)序預(yù)估,不能獲得準(zhǔn)確的時(shí)序分析結(jié)果;在獲得時(shí)序約束信息后進(jìn)入編譯中的“適配”環(huán)節(jié),對(duì)應(yīng)的操作是布局和布線,這一環(huán)節(jié)會(huì)努力按照時(shí)序約束的要求進(jìn)行布局和布線優(yōu)化,并生成FPGA 最終實(shí)現(xiàn)結(jié)果的時(shí)序網(wǎng)表,TQ 根據(jù)這一網(wǎng)表進(jìn)行分析,可以反映最終的時(shí)序特性,檢查適配結(jié)果是否滿足了時(shí)序約束的要求。
好的約束必須以好的設(shè)計(jì)為前提,沒有好的設(shè)計(jì),在約束上下再大的功夫也是沒有意義的。不過,通過正確的約束也可以檢查設(shè)計(jì)的優(yōu)劣,通過時(shí)序分析報(bào)告可以檢查出設(shè)計(jì)上時(shí)序考慮不周的地方,從而加以修改。通過幾次分析-修改-分析的迭代也可以達(dá)到完善設(shè)計(jì)的目標(biāo)。因此,設(shè)計(jì)是約束的根本,約束是設(shè)計(jì)的保證,二者是相輔相成的關(guān)系。
圖2 TQ 時(shí)序分析器操作流程圖
對(duì)自己的設(shè)計(jì)實(shí)現(xiàn)方式越了解,對(duì)自己的設(shè)計(jì)的時(shí)序要求越了解,對(duì)目標(biāo)器件的資源分布和結(jié)構(gòu)越了解,對(duì)EDA 工具執(zhí)行約束的效果越了解,那么對(duì)設(shè)計(jì)的時(shí)序約束目標(biāo)就會(huì)越清晰,相應(yīng)地,設(shè)計(jì)的時(shí)序收斂過程就會(huì)更可控。
[1] Altera 公司.TimeQuest 時(shí)序分析儀為FPGA 設(shè)計(jì)分析提供自然的SDC 支持[J],半導(dǎo)體技術(shù),2006 :86.
[2]周海斌.靜態(tài)時(shí)序分析在高速FPGA 設(shè)計(jì)中的應(yīng)用[J].電子工程師,2005:31(11),41-43.
[3]劉福奇.FPGA 嵌入式項(xiàng)目開發(fā)實(shí)戰(zhàn)[M].北京:電子工業(yè)出版社,2009.