資料介紹
本文是本人對(duì)xilinx XC7V系列FPGA用于ASIC前端驗(yàn)證遇到問(wè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)和電源開(kāi)關(guān)(power gate),其中power gate不需要在FPGA上實(shí)現(xiàn)并且也無(wú)法實(shí)現(xiàn),它是來(lái)源與IP供應(yīng)商或foundry提供的基本庫(kù)文件,屬于不可綜合的類型,前端仿真會(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庫(kù)中的BUFG。當(dāng)使用BUFG時(shí),F(xiàn)PGA tool是能保證時(shí)鐘樹(shù)到各個(gè)Flip-Flop的時(shí)鐘輸入端C的路徑相對(duì)等長(zhǎng),這能有效保證Clk_skew在一個(gè)合理的值內(nèi),所以進(jìn)行“綜合——優(yōu)化——布局——布線”的流程時(shí),基本不會(huì)出現(xiàn)hold volation的問(wèn)題,我們只需要重點(diǎn)解決setup volation的問(wèn)題就行了。BUFG資源在xilinx FPGA上有限且寶貴,所以傳統(tǒng)FPGA設(shè)計(jì)都要求避免門控時(shí)鐘的代碼,并且對(duì)時(shí)鐘域的劃分要非常清晰干凈,盡可能的讓整個(gè)設(shè)計(jì)工作在同步時(shí)鐘,這會(huì)有利于timing的收斂。
但是當(dāng)FPGA用來(lái)實(shí)現(xiàn)ASIC的驗(yàn)證時(shí),門控時(shí)鐘就是不可避免的,比如ASIC上電復(fù)位時(shí),不是所有的邏輯都同時(shí)工作起來(lái),即只有一部分Flip-Flop開(kāi)始工作,很大一部分可能根本沒(méi)有收到有效的時(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挑揀出來(lái)并處理,再對(duì)處理后的RTL進(jìn)行綜合,查看各種資源的使用情況是否合理,LUT,F(xiàn)F,RAM等資源只要不超過(guò)FPGA容量限制就沒(méi)問(wèn)題,當(dāng)然在使用率特別高的情況下,會(huì)造成后面P&R速度慢并且有失敗的風(fēng)險(xiǎn),可以酌情對(duì)RTL進(jìn)行剪裁。BUFG的使用情況就要重點(diǎn)檢查了,XC7V系列的FPGA單片BUFG不超過(guò)32個(gè),而XC7V2000T這種多die的FPGA會(huì)有32x4個(gè)BUFG,但BUFG的使用是越少越好,當(dāng)BUFG使用特別多時(shí),在place時(shí)就有可能報(bào)錯(cuò)了,各種時(shí)鐘之間的關(guān)系也要逐個(gè)分析,都是跨時(shí)鐘域問(wèn)題。
當(dāng)BUFG使用量很多時(shí),在綜合完優(yōu)化前就可以把工程停住了,用vivado打開(kāi)dcp文件搜索所有BUFG例化的地方,人為增加的MMCM這種IP消耗掉的BUFG可以不管,綜合產(chǎn)生的BUFG要逐個(gè)檢查,并且掉過(guò)頭來(lái)修改原始的時(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問(wèn)題,通常只會(huì)有setup問(wèn)題,如果有hold問(wèn)題,你就要檢查你的clock代碼是不是用錯(cuò)了BUFG,從而導(dǎo)致clock skew太大,當(dāng)有setup問(wèn)題時(shí)可以看下critical path,如果logic level層數(shù)是合理的,但data path延時(shí)卻很大,造成了setup無(wú)法滿足,就要打開(kāi)vivado的版圖工具,找到明顯不合理的走線,如果某兩個(gè)LUT之間的空間位置很近,走線延時(shí)卻很大,比如超過(guò)2ns,那這個(gè)走線很有可能進(jìn)行了多余的繞線,當(dāng)然這是route工具自己實(shí)現(xiàn)的,這個(gè)繞線的目的可能是因?yàn)檫@條path還存在于另外一個(gè)時(shí)鐘timing約束里,有可能就是跨時(shí)鐘域的情況,所以可以先不管這種setup的violation,但如果logic level本身就很大,比如已經(jīng)超過(guò)了60,但你這條path的clock卻要求跑到80M,那這很難滿足要求了,要掉過(guò)頭來(lái)去看RTL的問(wèn)題,最好是對(duì)RTL進(jìn)行修改,增加打拍;
2. 而inter報(bào)告則顯示了所有的跨時(shí)鐘域問(wèn)題,通常第一輪P&R得到的inter報(bào)告timing violation會(huì)很慘,不用每一條path都去看,但每?jī)蓚€(gè)報(bào)出violation的時(shí)鐘都要看,可以只看violation最嚴(yán)重的那條path,先檢查工具要求的setup時(shí)間是不是合理,因?yàn)槲覀冞€沒(méi)有對(duì)這兩個(gè)時(shí)鐘加約束,所以這里的檢查是最嚴(yán)格的的,工具就會(huì)按照時(shí)鐘推移,找到延時(shí)最小的兩個(gè)上升沿來(lái)檢查setup問(wèn)題,如果這個(gè)延時(shí)目標(biāo)不合理咱們就可以增加multicycle的約束,這個(gè)延時(shí)目標(biāo)很可能非常小,只有幾ns。
- Xilinx-ISE9.x-FPGA-CPLD設(shè)計(jì)指南合集 78次下載
- 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問(wèn)題的解決辦法 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 47次下載
- ASIC驗(yàn)證技術(shù) 23次下載
- ASIC驗(yàn)證技術(shù) 27次下載
- ASIC到FPGA的原型驗(yàn)證代碼轉(zhuǎn)換技術(shù) 108次下載
- FPGA與ASIC的優(yōu)缺點(diǎn)比較 568次閱讀
- fpga驗(yàn)證和uvm驗(yàn)證的區(qū)別 1724次閱讀
- Xilinx fpga芯片系列有哪些 3431次閱讀
- Xilinx FPGA的FMC介紹 5947次閱讀
- FPGA設(shè)計(jì)方法比ASIC好在哪里 2565次閱讀
- 基于Xilinx FPGA用于ASIC前端驗(yàn)證的問(wèn)題總結(jié) 1786次閱讀
- 探析FPGA和ASIC的原理和區(qū)別 5508次閱讀
- FPGA該如何應(yīng)對(duì)ASIC的大爆發(fā)? 1084次閱讀
- 當(dāng)FPGA跟ASIC分界線日益模糊,FPGA還像SoC嗎? 923次閱讀
- 借助FPGA開(kāi)發(fā)SoC原型制作平臺(tái)(Xilinx的Zynq為例) 2667次閱讀
- FPGA開(kāi)發(fā)流程詳細(xì)解析 1w次閱讀
- ASIC和FPGA設(shè)計(jì)優(yōu)勢(shì)和流程比較 4641次閱讀
- ASIC設(shè)計(jì)轉(zhuǎn)FPGA時(shí)需要注意的幾點(diǎn) 3080次閱讀
- ASIC、ASSP、SoC和FPGA之間到底有何區(qū)別? 4.3w次閱讀
- 常見(jiàn)問(wèn)題解答:Xilinx采用首個(gè)ASIC級(jí)UltraScale可編程架構(gòu) 2370次閱讀
下載排行
本周
- 1DC電源插座圖紙
- 0.67 MB | 3次下載 | 免費(fèi)
- 2AN-1267: 使用ADSP-CM408F ADC控制器的電機(jī)控制反饋采樣時(shí)序
- 1.41MB | 3次下載 | 免費(fèi)
- 3AN158 GD32VW553 Wi-Fi開(kāi)發(fā)指南
- 1.51MB | 2次下載 | 免費(fèi)
- 4AN148 GD32VW553射頻硬件開(kāi)發(fā)指南
- 2.07MB | 1次下載 | 免費(fèi)
- 5AN111-LTC3219用戶指南
- 84.32KB | 次下載 | 免費(fèi)
- 6AN153-用于電源系統(tǒng)管理的Linduino
- 1.38MB | 次下載 | 免費(fèi)
- 7AN-283: Σ-Δ型ADC和DAC[中文版]
- 677.86KB | 次下載 | 免費(fèi)
- 8SM2018E 支持可控硅調(diào)光線性恒流控制芯片
- 402.24 KB | 次下載 | 免費(fèi)
本月
- 1ADI高性能電源管理解決方案
- 2.43 MB | 450次下載 | 免費(fèi)
- 2免費(fèi)開(kāi)源CC3D飛控資料(電路圖&PCB源文件、BOM、
- 5.67 MB | 138次下載 | 1 積分
- 3基于STM32單片機(jī)智能手環(huán)心率計(jì)步器體溫顯示設(shè)計(jì)
- 0.10 MB | 130次下載 | 免費(fèi)
- 4使用單片機(jī)實(shí)現(xiàn)七人表決器的程序和仿真資料免費(fèi)下載
- 2.96 MB | 44次下載 | 免費(fèi)
- 5美的電磁爐維修手冊(cè)大全
- 1.56 MB | 24次下載 | 5 積分
- 6如何正確測(cè)試電源的紋波
- 0.36 MB | 18次下載 | 免費(fèi)
- 7感應(yīng)筆電路圖
- 0.06 MB | 10次下載 | 免費(fèi)
- 8萬(wàn)用表UT58A原理圖
- 0.09 MB | 9次下載 | 5 積分
總榜
- 1matlab軟件下載入口
- 未知 | 935121次下載 | 10 積分
- 2開(kāi)源硬件-PMP21529.1-4 開(kāi)關(guān)降壓/升壓雙向直流/直流轉(zhuǎn)換器 PCB layout 設(shè)計(jì)
- 1.48MB | 420062次下載 | 10 積分
- 3Altium DXP2002下載入口
- 未知 | 233088次下載 | 10 積分
- 4電路仿真軟件multisim 10.0免費(fèi)下載
- 340992 | 191367次下載 | 10 積分
- 5十天學(xué)會(huì)AVR單片機(jī)與C語(yǔ)言視頻教程 下載
- 158M | 183335次下載 | 10 積分
- 6labview8.5下載
- 未知 | 81581次下載 | 10 積分
- 7Keil工具M(jìn)DK-Arm免費(fèi)下載
- 0.02 MB | 73810次下載 | 10 積分
- 8LabVIEW 8.6下載
- 未知 | 65988次下載 | 10 積分
評(píng)論