【 Vivado 】UCF到XDC之間的轉換
有時候會有這樣的需求,就是之前在ISE上的工程,現在需要用Vivado來操作,這樣其中的一部分工作就是將ISE上的時序約束檔案UCF轉換為XDC檔案。
如下圖1所示為UCF與SDC的約束命令比較,可以發現常用的命令都能對應上。
(圖1)
下面簡單舉例說明:
Clock Period:
UCF :
NET "clka" TNM_NET = "clka";
TIMESPEC "TS_clka" = PERIOD "clka" 13.330 ns HIGH 50.00%;
XDC :
create_clock -name clka -period 13.330 -waveform {0 6.665} [get_ports clka]
Input Port:
UCF :
OFFSET = IN 8 BEFORE clka;
XDC :
set_input_delay -clock clka 2 [all_inputs]
注: clock period = 10 ns.
Output Port:
UCF :
OFFSET = OUT 12 AFTER clkc;
XDC :
set_output_delay -clock clkc 8 [all_outputs]
注:clock period = 20 ns.
除了以上約束命令的差別外,UCF和XDC間的主要差別如下:
1. XDC
2. UCF一般約束nets物件,而XDC約束型別是pins, ports和cells物件
3. UCF約束預設不對非同步時鐘間路徑進行時序分析,而XDC約束預設所有時鐘是相關的,會分析所有路徑,可以通過設定時鐘組(set_clock_groups)取消時鐘間的相關性。
下面介紹一下在Vivado中新增XDC檔案以及加入約束命令的方法:
首先在Project Manager中展開Constraints類,選擇Add Sources即可新增或者新建XDC約束檔案,如下圖2所示。
(圖2)
選擇新建的XDC檔案,雙擊開啟,選擇左側的Templates,其中有XDC約束命令的例項,所有的約束命令都可以在其中找到,非常方便,如圖3、4所示。
(圖3) (圖4)
XDC約束檔案可以在編譯綜合和實現過程中使用時,在綜合和實現設定中都能選擇需要的約束,如圖5。通過建立約束檔案集,如圖6,設計者可以使能不同的約束集合測試FPGA設計的效能;在約束檔案集中可以包含多個XDC約束檔案,在FPGA設計比較複雜時,可以分模組或者IP核約束,相應的則有多個XDC約束檔案,這樣設計和維護效率都能得到提高。
(圖5)
(圖6)
本文來自於網際網路上文件,作者不詳,據說是賽靈思中文社群收集。