資料介紹
本文是本人對(duì)xilinx XC7V系列FPGA用于ASIC前端驗(yàn)證遇到問題的總結(jié),為自己記錄并分享給大家,如果有歧義或錯(cuò)誤請(qǐng)大家在評(píng)論里指出。
將FPGA用于ASIC驗(yàn)證和實(shí)現(xiàn)傳統(tǒng)RTL設(shè)計(jì)的主要區(qū)別就是ASIC會(huì)根據(jù)應(yīng)用場(chǎng)景有大量的門控時(shí)鐘(clokc gate)和電源開關(guān)(power gate),其中power gate不需要在FPGA上實(shí)現(xiàn)并且也無法實(shí)現(xiàn),它是來源與IP供應(yīng)商或foundry提供的基本庫文件,屬于不可綜合的類型,前端仿真會(huì)有對(duì)應(yīng)的仿真model,當(dāng)然這個(gè)model也不能在FPGA上實(shí)現(xiàn)。clock gate即門控時(shí)鐘也有對(duì)應(yīng)的仿真model,并且稍加修改就可以綜合并在FPGA上實(shí)現(xiàn)。
FPGA本身是有專門的時(shí)鐘cell的,以xilinx FPGA為例,就是primitive庫中的BUFG。當(dāng)使用BUFG時(shí),F(xiàn)PGA tool是能保證時(shí)鐘樹到各個(gè)Flip-Flop的時(shí)鐘輸入端C的路徑相對(duì)等長(zhǎng),這能有效保證Clk_skew在一個(gè)合理的值內(nèi),所以進(jìn)行“綜合——優(yōu)化——布局——布線”的流程時(shí),基本不會(huì)出現(xiàn)hold volation的問題,我們只需要重點(diǎn)解決setup volation的問題就行了。BUFG資源在xilinx FPGA上有限且寶貴,所以傳統(tǒng)FPGA設(shè)計(jì)都要求避免門控時(shí)鐘的代碼,并且對(duì)時(shí)鐘域的劃分要非常清晰干凈,盡可能的讓整個(gè)設(shè)計(jì)工作在同步時(shí)鐘,這會(huì)有利于timing的收斂。
但是當(dāng)FPGA用來實(shí)現(xiàn)ASIC的驗(yàn)證時(shí),門控時(shí)鐘就是不可避免的,比如ASIC上電復(fù)位時(shí),不是所有的邏輯都同時(shí)工作起來,即只有一部分Flip-Flop開始工作,很大一部分可能根本沒有收到有效的時(shí)鐘,這種情況符合ASIC上電boot的流程,所以在FPGA上驗(yàn)證時(shí)要保留的;再比如ASIC工作在某一場(chǎng)景下需要降低功耗,會(huì)關(guān)閉某個(gè)module的時(shí)鐘,這種為了降低功耗功能而存在的clock gate就可以直接優(yōu)化掉,并不會(huì)影響FPGA驗(yàn)證ASIC的功能。所以在拿到ASIC RTL后要先將這種可以優(yōu)化掉的clock gate挑揀出來并處理,再對(duì)處理后的RTL進(jìn)行綜合,查看各種資源的使用情況是否合理,LUT,F(xiàn)F,RAM等資源只要不超過FPGA容量限制就沒問題,當(dāng)然在使用率特別高的情況下,會(huì)造成后面P&R速度慢并且有失敗的風(fēng)險(xiǎn),可以酌情對(duì)RTL進(jìn)行剪裁。BUFG的使用情況就要重點(diǎn)檢查了,XC7V系列的FPGA單片BUFG不超過32個(gè),而XC7V2000T這種多die的FPGA會(huì)有32x4個(gè)BUFG,但BUFG的使用是越少越好,當(dāng)BUFG使用特別多時(shí),在place時(shí)就有可能報(bào)錯(cuò)了,各種時(shí)鐘之間的關(guān)系也要逐個(gè)分析,都是跨時(shí)鐘域問題。
當(dāng)BUFG使用量很多時(shí),在綜合完優(yōu)化前就可以把工程停住了,用vivado打開dcp文件搜索所有BUFG例化的地方,人為增加的MMCM這種IP消耗掉的BUFG可以不管,綜合產(chǎn)生的BUFG要逐個(gè)檢查,并且掉過頭來修改原始的時(shí)序約束文件,對(duì)每一個(gè)BUFG的輸出O增加generated_clock的約束,并找到它的source clock,我的經(jīng)驗(yàn)是這個(gè)時(shí)候還不要對(duì)跨時(shí)鐘域進(jìn)行約束處理,這樣vivado的分析工具會(huì)認(rèn)為每?jī)蓚€(gè)時(shí)鐘之間都是有關(guān)系的,在報(bào)告中都會(huì)分析他們的setup和hold。在vivado里source修改后的時(shí)序約束文件,進(jìn)行第一輪的P&R,在布線完成之后report_timing_summary命令得到整個(gè)design的時(shí)序檢查報(bào)告,在這個(gè)timing報(bào)告里會(huì)詳細(xì)列出你定義的所有時(shí)鐘,各個(gè)時(shí)鐘的關(guān)系,intra報(bào)告和inter報(bào)告:
1. 其中intra報(bào)告是單時(shí)鐘內(nèi)部的setup和hold問題,通常只會(huì)有setup問題,如果有hold問題,你就要檢查你的clock代碼是不是用錯(cuò)了BUFG,從而導(dǎo)致clock skew太大,當(dāng)有setup問題時(shí)可以看下critical path,如果logic level層數(shù)是合理的,但data path延時(shí)卻很大,造成了setup無法滿足,就要打開vivado的版圖工具,找到明顯不合理的走線,如果某兩個(gè)LUT之間的空間位置很近,走線延時(shí)卻很大,比如超過2ns,那這個(gè)走線很有可能進(jìn)行了多余的繞線,當(dāng)然這是route工具自己實(shí)現(xiàn)的,這個(gè)繞線的目的可能是因?yàn)檫@條path還存在于另外一個(gè)時(shí)鐘timing約束里,有可能就是跨時(shí)鐘域的情況,所以可以先不管這種setup的violation,但如果logic level本身就很大,比如已經(jīng)超過了60,但你這條path的clock卻要求跑到80M,那這很難滿足要求了,要掉過頭來去看RTL的問題,最好是對(duì)RTL進(jìn)行修改,增加打拍;
2. 而inter報(bào)告則顯示了所有的跨時(shí)鐘域問題,通常第一輪P&R得到的inter報(bào)告timing violation會(huì)很慘,不用每一條path都去看,但每?jī)蓚€(gè)報(bào)出violation的時(shí)鐘都要看,可以只看violation最嚴(yán)重的那條path,先檢查工具要求的setup時(shí)間是不是合理,因?yàn)槲覀冞€沒有對(duì)這兩個(gè)時(shí)鐘加約束,所以這里的檢查是最嚴(yán)格的的,工具就會(huì)按照時(shí)鐘推移,找到延時(shí)最小的兩個(gè)上升沿來檢查setup問題,如果這個(gè)延時(shí)目標(biāo)不合理咱們就可以增加multicycle的約束,這個(gè)延時(shí)目標(biāo)很可能非常小,只有幾ns。
- Xilinx-ISE9.x-FPGA-CPLD設(shè)計(jì)指南合集 77次下載
- FPGA_ASIC-MAC在FPGA中的高效實(shí)現(xiàn)
- FPGA_ASIC-DSP和FPGA共用FLASH進(jìn)行配置的方法
- 基于雙接口NFC芯片的FPGA驗(yàn)證系統(tǒng) 17次下載
- FPGA模塊化設(shè)計(jì)與AlteraHardCopy結(jié)構(gòu)化ASIC 6次下載
- 如何使用Xilinx的FPGA對(duì)高速PCB信號(hào)實(shí)現(xiàn)優(yōu)化設(shè)計(jì) 26次下載
- 在vivado中可能用到的約束方法和面對(duì)timing問題的解決辦法 21次下載
- Xilinx 7 系列FPGA中的Serdes總結(jié) 25次下載
- FPGA究竟何時(shí)能取代ASIC資料免費(fèi)下載
- xilinx的FPGA芯片選型手冊(cè)免費(fèi)下載 51次下載
- 采用時(shí)序約束完成功能等價(jià)的FPGA和ASIC 4次下載
- Xilinx_FPGA系列入門教程(一)—如何搭建Xilinx 45次下載
- ASIC驗(yàn)證技術(shù) 23次下載
- ASIC驗(yàn)證技術(shù) 27次下載
- ASIC到FPGA的原型驗(yàn)證代碼轉(zhuǎn)換技術(shù) 108次下載
- fpga驗(yàn)證和uvm驗(yàn)證的區(qū)別 1073次閱讀
- Xilinx fpga芯片系列有哪些 2329次閱讀
- FPGA原型驗(yàn)證系統(tǒng)中復(fù)制功能模塊的作用 591次閱讀
- Xilinx FPGA的FMC介紹 5643次閱讀
- FPGA設(shè)計(jì)方法比ASIC好在哪里 2456次閱讀
- 基于Xilinx FPGA用于ASIC前端驗(yàn)證的問題總結(jié) 1688次閱讀
- 探析FPGA和ASIC的原理和區(qū)別 5377次閱讀
- FPGA該如何應(yīng)對(duì)ASIC的大爆發(fā)? 1014次閱讀
- 當(dāng)FPGA跟ASIC分界線日益模糊,FPGA還像SoC嗎? 869次閱讀
- 借助FPGA開發(fā)SoC原型制作平臺(tái)(Xilinx的Zynq為例) 2564次閱讀
- FPGA開發(fā)流程詳細(xì)解析 1w次閱讀
- ASIC和FPGA設(shè)計(jì)優(yōu)勢(shì)和流程比較 4516次閱讀
- ASIC設(shè)計(jì)轉(zhuǎn)FPGA時(shí)需要注意的幾點(diǎn) 3038次閱讀
- ASIC、ASSP、SoC和FPGA之間到底有何區(qū)別? 4.2w次閱讀
- 常見問題解答:Xilinx采用首個(gè)ASIC級(jí)UltraScale可編程架構(gòu) 2286次閱讀
下載排行
本周
- 1電子電路原理第七版PDF電子教材免費(fèi)下載
- 0.00 MB | 1491次下載 | 免費(fèi)
- 2單片機(jī)典型實(shí)例介紹
- 18.19 MB | 95次下載 | 1 積分
- 3S7-200PLC編程實(shí)例詳細(xì)資料
- 1.17 MB | 27次下載 | 1 積分
- 4筆記本電腦主板的元件識(shí)別和講解說明
- 4.28 MB | 18次下載 | 4 積分
- 5開關(guān)電源原理及各功能電路詳解
- 0.38 MB | 11次下載 | 免費(fèi)
- 6100W短波放大電路圖
- 0.05 MB | 4次下載 | 3 積分
- 7基于單片機(jī)和 SG3525的程控開關(guān)電源設(shè)計(jì)
- 0.23 MB | 4次下載 | 免費(fèi)
- 8基于AT89C2051/4051單片機(jī)編程器的實(shí)驗(yàn)
- 0.11 MB | 4次下載 | 免費(fèi)
本月
- 1OrCAD10.5下載OrCAD10.5中文版軟件
- 0.00 MB | 234313次下載 | 免費(fèi)
- 2PADS 9.0 2009最新版 -下載
- 0.00 MB | 66304次下載 | 免費(fèi)
- 3protel99下載protel99軟件下載(中文版)
- 0.00 MB | 51209次下載 | 免費(fèi)
- 4LabView 8.0 專業(yè)版下載 (3CD完整版)
- 0.00 MB | 51043次下載 | 免費(fèi)
- 5555集成電路應(yīng)用800例(新編版)
- 0.00 MB | 33562次下載 | 免費(fèi)
- 6接口電路圖大全
- 未知 | 30320次下載 | 免費(fèi)
- 7Multisim 10下載Multisim 10 中文版
- 0.00 MB | 28588次下載 | 免費(fèi)
- 8開關(guān)電源設(shè)計(jì)實(shí)例指南
- 未知 | 21539次下載 | 免費(fèi)
總榜
- 1matlab軟件下載入口
- 未知 | 935053次下載 | 免費(fèi)
- 2protel99se軟件下載(可英文版轉(zhuǎn)中文版)
- 78.1 MB | 537793次下載 | 免費(fèi)
- 3MATLAB 7.1 下載 (含軟件介紹)
- 未知 | 420026次下載 | 免費(fèi)
- 4OrCAD10.5下載OrCAD10.5中文版軟件
- 0.00 MB | 234313次下載 | 免費(fèi)
- 5Altium DXP2002下載入口
- 未知 | 233046次下載 | 免費(fèi)
- 6電路仿真軟件multisim 10.0免費(fèi)下載
- 340992 | 191183次下載 | 免費(fèi)
- 7十天學(xué)會(huì)AVR單片機(jī)與C語言視頻教程 下載
- 158M | 183277次下載 | 免費(fèi)
- 8proe5.0野火版下載(中文版免費(fèi)下載)
- 未知 | 138039次下載 | 免費(fèi)
評(píng)論
查看更多