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