vivado的實現可以來自於多種原始檔,包括:(1)rtl設計;(2)網表設計;(3)以ip核為核心的設計 ;
下圖包括vivado的整個設計流程:
vivado的實現過程包括將網表對映到fpga資源上的所有步驟,涉及到邏輯、物理、時序等多種約束;支援sdc和xdc約束格式;
vivado的實現過程將網表和約束轉換為布局佈線設計以及生成bit流檔案,主要包括以下幾個子步驟:
約束包括兩大類:物理約束和時序約束;
物理約束描述了邏輯塊與器件資源之間的關係,例如:
時序約束描述了設計的頻率需求,採用標準的sdc格式;沒有時序約束,vivado只能優化導線長度和佈線阻塞 ,無法提高設計的效能;
允許在乙個設計中存在多個約束集,約束集中可以包含多個約束檔案;例如,可以將第乙個約束集用於綜合,第二個約束集用於實現,使用多個約束集可以讓設計測試不同的綜合實現策略從而選取最優的結果!
允許在hdl**中以屬性的方式新增約束,這種方式在前面講綜合的時候涉及過,這裡不再贅述;
提示:建議將物理約束和時序約束分別存放在不同的約束檔案中;為了驗證時序約束的有效性,建議在綜合後生成時序報告;
Vivado使用技巧(9) COE檔案使用方法
在某些ip核的配置中,需要使用coe coefficient 檔案來傳遞引數,正如 fpga數字訊號處理系列 中我多次使用matlab自動生成fir濾波器所需的濾波係數檔案。coe檔案是一種ascii文字檔案,檔案頭部定義資料基數 radix 可以時2 10或16。資料以向量的形式給出,每個向量以分...
Vivado使用技巧(32) IO延遲的約束方法
為了對設計外部的時序情況進行精確建模,設計者必須設定輸入和輸出埠的時序資訊。vivado只能識別出fpga器件範圍內的時序,因此必須使用set input delay和set output delay命令來設定fpga範圍外的延遲值。兩者在含義 約束命令等方面有很多地方是相似的,只不過乙個是輸入,乙...
10個python使用技巧
1.用zip處理列表 假設要合併相同長度的列表並列印結果。同樣有一種更通用的方式,即用zip 函式獲得想要的結果,如下 countries france germany canada capitals paris berlin ottawa for country,capital in zip co...