FPGA時(shí)序約束的6種方法
對(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ì)更可控。
本文引用地址:http://m.butianyuan.cn/article/268455.htm下文總結(jié)了幾種進(jìn)行時(shí)序約束的方法。按照從易到難的順序排列如下:
0.核心頻率約束
這是最基本的,所以標(biāo)號(hào)為0.
1.核心頻率約束+時(shí)序例外約束
時(shí)序例外約束包括FalsePath、MulticyclePath、MaxDelay、MinDelay.但這還不是最完整的時(shí)序約束。如果僅有這些約束的話,說明設(shè)計(jì)者的思路還局限在FPGA芯片內(nèi)部。
2.核心頻率約束+時(shí)序例外約束+I/O約束
I/O約束包括引腳分配位置、空閑引腳驅(qū)動(dòng)方式、外部走線延時(shí)(InputDelay、OutputDelay)、上下拉電阻、驅(qū)動(dòng)電流強(qiáng)度等。加入I/O約束后的時(shí)序約束,才是完整的時(shí)序約束。FPGA作為PCB上的一個(gè)器件,是整個(gè)PCB系統(tǒng)時(shí)序收斂的一部分。FPGA作為PCB設(shè)計(jì)的一部分,是需要PCB設(shè)計(jì)工程師像對(duì)待所有COTS器件一樣,閱讀并分析其I/O Timing Diagram的。FPGA不同于COTS器件之處在于,其I/O Timing是可以在設(shè)計(jì)后期在一定范圍內(nèi)調(diào)整的;雖然如此,最好還是在PCB設(shè)計(jì)前期給與充分的考慮并歸入設(shè)計(jì)文檔。
正因?yàn)镕PGA的I/O Timing會(huì)在設(shè)計(jì)期間發(fā)生變化,所以準(zhǔn)確地對(duì)其進(jìn)行約束是保證設(shè)計(jì)穩(wěn)定可控的重要因素。許多在FPGA重新編譯后,F(xiàn)PGA對(duì)外部器件的操作出現(xiàn)不穩(wěn)定的問題都有可能是由此引起的。
3.核心頻率約束+時(shí)序例外約束+I/O約束+Post-fit Netlist
引入Post-fit Netlist的過程是從一次成功的時(shí)序收斂結(jié)果開始,把特定的一組邏輯(Design Partition)在FPGA上實(shí)現(xiàn)的布局位置和布線結(jié)果(Netlist)固定下來,保證這一布局布線結(jié)果可以在新的編譯中重現(xiàn),相應(yīng)地,這一組邏輯的時(shí)序收斂結(jié)果也就得到了保證。這個(gè)部分保留上一次編譯結(jié)果的過程就是Incremental Compilation,保留的網(wǎng)表類型和保留的程度都可以設(shè)置,而不僅僅局限于Post-fit Netlist,從而獲得相應(yīng)的保留力度和優(yōu)化效果。由于有了EDA工具的有力支持,雖然是精確到門級(jí)的細(xì)粒度約束,設(shè)計(jì)者只須進(jìn)行一系列設(shè)置操作即可,不需要關(guān)心布局和布線的具體信息。由于精確到門級(jí)的約束內(nèi)容過于繁多,在qsf文件中保存不下,得到保留的網(wǎng)表可以以Partial Netlist的形式輸出到一個(gè)單獨(dú)的文件qxp中,配和qsf文件中的粗略配置信息一起完成增量編譯。
4.核心頻率約束+時(shí)序例外約束+I/O約束+LogicLock
LogicLock是在FPGA器件底層進(jìn)行的布局約束。LogicLock的約束是粗粒度的,只規(guī)定設(shè)計(jì)頂層模塊或子模塊可以調(diào)整的布局位置和大小(LogicLock Regions)。成功的LogicLock需要設(shè)計(jì)者對(duì)可能的時(shí)序收斂目標(biāo)作出預(yù)計(jì),考慮特定邏輯資源(引腳、存儲(chǔ)器、DSP)與LogicLock Region的位置關(guān)系對(duì)時(shí)序的影響,并可以參考上一次時(shí)序成功收斂的結(jié)果。這一權(quán)衡和規(guī)劃FPGA底層物理布局的過程就是FloorPlanning.LogicLock給了設(shè)計(jì)者對(duì)布局位置和范圍更多的控制權(quán),可以有效地向EDA工具傳遞設(shè)計(jì)者的設(shè)計(jì)意圖,避免EDA工具由于缺乏布局優(yōu)先級(jí)信息而盲目?jī)?yōu)化非關(guān)鍵路徑。由于模塊在每一次編譯中的布局位置變化被限定在了最優(yōu)的固定范圍內(nèi),時(shí)序收斂結(jié)果的可重現(xiàn)性也就更高。由于其粗粒度特性,LogicLock的約束信息并不很多,可以在qsf文件中得到保留。
需要注意的是,方法3和4經(jīng)??梢曰旌鲜褂茫瘁槍?duì)FloorPlanning指定的LogicLock Region,把它作為一個(gè)Design Partition進(jìn)行Incremental Compilation.這是造成上述兩種方法容易混淆的原因。
fpga相關(guān)文章:fpga是什么
評(píng)論