1. 程式人生 > >【 Vivado 】UCF到XDC之間的轉換

【 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)

 

本文來自於網際網路上文件,作者不詳,據說是賽靈思中文社群收集。