網友總結:FPGA時序約束的六種方法
發布時間:2015-01-02 來源:riple的博客 責任編輯:sherryyu
【導讀】對自己的設計的實現方式越了解,對自己的設計的時序要求越了解,對目標器件的資源分布和結構越了解,對EDA工具zhixingyueshudexiaoguoyuelejie,nameduishejideshixuyueshumubiaojiuhuiyueqingxi,xiangyingdi,shejideshixushoulianguochengjiuhuigengkekong。benwenzongjielejizhongjinxingshixuyueshudefangfa。
按照從易到難的順序排列如下:

0. 核心頻率約束
這是最基本的,所以標號為0。
1. 核心頻率約束+時序例外約束
時序例外約束包括FalsePath、MulticyclePath、MaxDelay、MinDelay。但這還不是最完整的時序約束。如果僅有這些約束的話,說明設計者的思路還局限在FPGA芯片內部。
2. 核心頻率約束+時序例外約束+I/O約束
I/O約束包括引腳分配位置、空閑引腳驅動方式、外部走線延時(InputDelay、OutputDelay)、上下拉電阻、驅動電流強度等。加入I/O約束後的時序約束,才是完整的時序約束。FPGA作為PCB上的一個器件,是整個PCB係統時序收斂的一部分。FPGA作為PCB設計的一部分,是需要PCB設計工程師像對待所有COTS器件一樣,閱讀並分析其I/O Timing Diagram的。FPGA不同於COTS器件之處在於,其I/O Timing是可以在設計後期在一定範圍內調整的;雖然如此,最好還是在PCB設計前期給與充分的考慮並歸入設計文檔。
正因為FPGA的I/O Timing會在設計期間發生變化,所以準確地對其進行約束是保證設計穩定可控的重要因素。許多在FPGA重新編譯後,FPGA對外部器件的操作出現不穩定的問題都有可能是由此引起的。
3. 核心頻率約束+時序例外約束+I/O約束+Post-fit Netlist
引入Post-fit Netlist的過程是從一次成功的時序收斂結果開始,把特定的一組邏輯(Design Partition)在FPGA上實現的布局位置和布線結果(Netlist)gudingxialai,baozhengzheyibujubuxianjieguokeyizaixindebianyizhongzhongxian,xiangyingdi,zheyizuluojideshixushoulianjieguoyejiudedaolebaozheng。zhegebufenbaoliushangyicibianyijieguodeguochengjiushiIncremental Compilation,保留的網表類型和保留的程度都可以設置,而不僅僅局限於Post-fit Netlist,從而獲得相應的保留力度和優化效果。由於有了EDA工(gong)具(ju)的(de)有(you)力(li)支(zhi)持(chi),雖(sui)然(ran)是(shi)精(jing)確(que)到(dao)門(men)級(ji)的(de)細(xi)粒(li)度(du)約(yue)束(shu),設(she)計(ji)者(zhe)隻(zhi)須(xu)進(jin)行(xing)一(yi)係(xi)列(lie)設(she)置(zhi)操(cao)作(zuo)即(ji)可(ke),不(bu)需(xu)要(yao)關(guan)心(xin)布(bu)局(ju)和(he)布(bu)線(xian)的(de)具(ju)體(ti)信(xin)息(xi)。由(you)於(yu)精(jing)確(que)到(dao)門(men)級(ji)的(de)約(yue)束(shu)內(nei)容(rong)過(guo)於(yu)繁(fan)多(duo),在(zai)qsf文件中保存不下,得到保留的網表可以以Partial Netlist的形式輸出到一個單獨的文件qxp中,配和qsf文件中的粗略配置信息一起完成增量編譯。
4. 核心頻率約束+時序例外約束+I/O約束+LogicLock
LogicLock是在FPGA器件底層進行的布局約束。LogicLock的約束是粗粒度的,隻規定設計頂層模塊或子模塊可以調整的布局位置和大小(LogicLock Regions)。成功的LogicLock需要設計者對可能的時序收斂目標作出預計,考慮特定邏輯資源(引腳、存儲器、DSP)與LogicLock Region的位置關係對時序的影響,並可以參考上一次時序成功收斂的結果。這一權衡和規劃FPGA底層物理布局的過程就是FloorPlanning。LogicLock給了設計者對布局位置和範圍更多的控製權,可以有效地向EDA工具傳遞設計者的設計意圖,避免EDA工gong具ju由you於yu缺que乏fa布bu局ju優you先xian級ji信xin息xi而er盲mang目mu優you化hua非fei關guan鍵jian路lu徑jing。由you於yu模mo塊kuai在zai每mei一yi次ci編bian譯yi中zhong的de布bu局ju位wei置zhi變bian化hua被bei限xian定ding在zai了le最zui優you的de固gu定ding範fan圍wei內nei,時shi序xu收shou斂lian結jie果guo的de可ke重zhong現xian性xing也ye就jiu更geng高gao。由you於yu其qi粗cu粒li度du特te性xing,LogicLock的約束信息並不很多,可以在qsf文件中得到保留。
需要注意的是,方法3和4經常可以混合使用,即針對FloorPlanning指定的LogicLock Region,把它作為一個Design Partition進行Incremental Compilation。這是造成上述兩種方法容易混淆的原因。
5. 核心頻率約束+時序例外約束+I/O約束+寄存器布局約束
寄存器布局約束是精確到寄存器或LEyijidexilidubujuyueshu。shejizhetongguoduishejishijiajingzhundekongzhilaihuodekekaodeshixushoulianjieguo。duishejizhongdemeiyigejicunqishougongjinxingbujuweizhiyueshubingbaozhengshixushoulianshiyixianghaodadegongcheng,zhebiaozhizheshejizhenenggouwanquankongzhishejidewulishixian。zheshiyigelixiangmubiao,shibukenengzaiyouxiandeshijianneiwanchengde。tongchangdezuofashishejizheduishejidejubujinxingjicunqibujuyueshubingtongguoshijiyunxingbujubuxiangongjulaihuodeshixushouliandexinxi,tongguoshucidiedaibijinyuqideshixumubiao。
看到過一個這樣的設計:一(yi)個(ge)子(zi)模(mo)塊(kuai)的(de)每(mei)一(yi)個(ge)寄(ji)存(cun)器(qi)都(dou)得(de)到(dao)了(le)具(ju)體(ti)的(de)布(bu)局(ju)位(wei)置(zhi)約(yue)束(shu)。該(gai)模(mo)塊(kuai)的(de)時(shi)序(xu)收(shou)斂(lian)也(ye)就(jiu)相(xiang)應(ying)地(di)在(zai)每(mei)一(yi)次(ci)重(zhong)新(xin)編(bian)譯(yi)的(de)過(guo)程(cheng)中(zhong)得(de)到(dao)了(le)保(bao)證(zheng)。經(jing)過(guo)分(fen)析(xi),這(zhe)一(yi)子(zi)模(mo)塊(kuai)的(de)設(she)計(ji)和(he)約(yue)束(shu)最(zui)初(chu)是(shi)在(zai)原(yuan)理(li)圖(tu)中(zhong)進(jin)行(xing)的(de),在(zai)達(da)到(dao)時(shi)序(xu)收(shou)斂(lian)目(mu)標(biao)後(hou)該(gai)設(she)計(ji)被(bei)轉(zhuan)換(huan)為(wei)HDL語言描述,相應的約束也保存到了配置文件中。
6. 核心頻率約束+時序例外約束+I/O約束+特定路徑延時約束
好的時序約束應該是“引導型”的,而不應該是“強製型”的。通過給出設計中關鍵路徑的時序延遲範圍,把具體而微的工作留給EDA工(gong)具(ju)在(zai)該(gai)約(yue)束(shu)的(de)限(xian)定(ding)範(fan)圍(wei)內(nei)自(zi)由(you)實(shi)現(xian)。這(zhe)也(ye)是(shi)一(yi)個(ge)理(li)想(xiang)目(mu)標(biao),需(xu)要(yao)設(she)計(ji)者(zhe)對(dui)每(mei)一(yi)條(tiao)時(shi)序(xu)路(lu)徑(jing)都(dou)做(zuo)到(dao)心(xin)中(zhong)有(you)數(shu),需(xu)要(yao)設(she)計(ji)者(zhe)分(fen)清(qing)哪(na)些(xie)路(lu)徑(jing)是(shi)可(ke)以(yi)通(tong)過(guo)核(he)心(xin)頻(pin)率(lv)和(he)簡(jian)單(dan)的(de)時(shi)序(xu)例(li)外(wai)約(yue)束(shu)就(jiu)可(ke)以(yi)收(shou)斂(lian)的(de),哪(na)些(xie)路(lu)徑(jing)是(shi)必(bi)須(xu)製(zhi)定(ding)MaxDelay和MinDelay的,一條也不能遺漏,並且還需要EDA工具“善解人意”的有力支持。設定路徑延時約束就是間接地設定布局布線約束,但是比上述3、4、5的方法更靈活,而且不失其準確性。通過時序約束而不是顯式的布局和網表約束來達到時序收斂才是時序約束的真諦。
記得有人說過“好的時序是設計出來的,不是約束出來的”,我(wo)一(yi)直(zhi)把(ba)這(zhe)句(ju)話(hua)作(zuo)為(wei)自(zi)己(ji)進(jin)行(xing)邏(luo)輯(ji)設(she)計(ji)和(he)時(shi)序(xu)約(yue)束(shu)的(de)指(zhi)導(dao)。好(hao)的(de)約(yue)束(shu)必(bi)須(xu)以(yi)好(hao)的(de)設(she)計(ji)為(wei)前(qian)提(ti)。沒(mei)有(you)好(hao)的(de)設(she)計(ji),在(zai)約(yue)束(shu)上(shang)下(xia)再(zai)大(da)的(de)功(gong)夫(fu)也(ye)是(shi)沒(mei)有(you)意(yi)義(yi)的(de)。不(bu)過(guo),通(tong)過(guo)正(zheng)確(que)的(de)約(yue)束(shu)也(ye)可(ke)以(yi)檢(jian)查(zha)設(she)計(ji)的(de)優(you)劣(lie),通(tong)過(guo)時(shi)序(xu)分(fen)析(xi)報(bao)告(gao)可(ke)以(yi)檢(jian)查(zha)出(chu)設(she)計(ji)上(shang)時(shi)序(xu)考(kao)慮(lv)不(bu)周(zhou)的(de)地(di)方(fang),從(cong)而(er)加(jia)以(yi)修(xiu)改(gai)。通(tong)過(guo)幾(ji)次(ci)“分析—修改—分析”的迭代也可以達到完善設計的目標。應該說,設計是約束的根本,約束是設計的保證,二者是相輔相成的關係。
特別推薦
- 噪聲中提取真值!瑞盟科技推出MSA2240電流檢測芯片賦能多元高端測量場景
- 10MHz高頻運行!氮矽科技發布集成驅動GaN芯片,助力電源能效再攀新高
- 失真度僅0.002%!力芯微推出超低內阻、超低失真4PST模擬開關
- 一“芯”雙電!聖邦微電子發布雙輸出電源芯片,簡化AFE與音頻設計
- 一機適配萬端:金升陽推出1200W可編程電源,賦能高端裝備製造
技術文章更多>>
- 邊緣AI的發展為更智能、更可持續的技術鋪平道路
- 每台智能體PC,都是AI時代的新入口
- IAR作為Qt Group獨立BU攜兩項重磅汽車電子應用開發方案首秀北京車展
- 構建具有網絡彈性的嵌入式係統:來自行業領袖的洞見
- 數字化的線性穩壓器
技術白皮書下載更多>>
- 車規與基於V2X的車輛協同主動避撞技術展望
- 數字隔離助力新能源汽車安全隔離的新挑戰
- 汽車模塊拋負載的解決方案
- 車用連接器的安全創新應用
- Melexis Actuators Business Unit
- Position / Current Sensors - Triaxis Hall
熱門搜索





