I/O約束
I/O約束是必須要用的約束,又包括管腳約束和延遲約束。
管腳約束
管腳約束就是指管腳分配,我們要指定管腳的PACKAGE_PIN和IOSTANDARD兩個屬性的值,前者指定了管腳的位置,后者指定了管腳對應的電平標準。
set_property -dict {PACKAGE_PIN AJ16 IOSTANDARD LVCMOS18} [get_ports "led[0]" ]
在Vivado規(guī)定,必須要指定管腳電平,不然在最后一步生成比特流時會出錯。
除了管腳位置和電平,還有一個大家容易忽略但很容易引起錯誤的就是端接,當我們使用差分電平時比如LVDS,在在V6中我們使用IBUFDS來處理輸入的差分信號時,可以指定端接為TRUE。
IBUFDS #(
.DIFF_TERM("TRUE"), // Differential Termination
.IOSTANDARD("DEFAULT") // Specify the input I/O standard
) IBUFDS_inst (
.O(O), // Buffer output
.I(I), // Diff_p buffer input (connect directly to top-level port)
.IB(IB) // Diff_n buffer input (connect directly to top-level port)
);
但在Ultrascale中的IBUFDS,卻把端接這個選項去掉了
IBUFDS #(
.DQS_BIAS("FALSE") // (FALSE, TRUE)
)
IBUFDS_inst (
.O(O), // 1-bit output: Buffer output
.I(I), // 1-bit input: Diff_p buffer input (connect directly to top-level port)
.IB(IB) // 1-bit input: Diff_n buffer input (connect directly to top-level port)
);
我們必須要在xdc或I/O Pors界面中,手動指定,否則可能會出錯。

筆者之前就采過一個坑,差分端口輸入,當連續(xù)輸入的數據為11101111這種時,中間那個0拉不下來,還是1,同樣也會發(fā)生在000010000,這樣就導致數據傳輸錯誤,后來才發(fā)現(xiàn)是端接忘記加。因為端接會影響信號的實際電平,導致FPGA判斷錯誤。
當綜合完成后,我們可以點擊DRC,進行設計規(guī)則檢查,這一步可以報出一些關鍵問題,比如時鐘端口未分配在時鐘引腳上等。

延遲約束
延遲約束用的是set_input_delay和set_output_delay,分別用于input端和output端,其時鐘源可以是時鐘輸入管腳,也可以是虛擬時鐘。但需要注意的是,這個兩個約束并不是起延遲的作用,具體原因下面分析。
set_input_delay
這個約束跟ISE中的OFFSET=IN功能相同,但設置方式不同。下圖所示即為input delay的約束說明圖。

從圖中很容易理解,
T_inputdelay = Tco + TD
當滿足圖中的時序時,最大延遲為2ns,最小延遲為1ns。
因此,需要加的時序約束為:
create_clock -name sysclk -period 10 [get_ports clkin] set_input_delay 2 -max -clock sysclk [get_ports Datain] set_input_delay 1 -min -clock sysclk [get_ports Datain] set_output_delay
set_output_delay的用法跟set_input_delay十分相似,這里就不再展開講了。我們上面講set_input_delay的描述中,大家可以看到,這個約束是告訴vivado我們的輸入信號和輸入時鐘之間的延遲關系,跟下面要講的時鐘周期約束是一個原理,讓vivado在這個前提下去Place and Route。并不是調節(jié)輸入信號的延遲,因為身邊有不少的FPGA工程師在沒用過這個約束指令之前,都以為這是調節(jié)延遲的約束。
如果要調整輸入信號的延遲,只能使用IDELAY,在V6中,IDELAY模塊有32個tap值,每個tap可延遲78ps,這樣總共差不多是2.5ns。
編輯:hfy
-
FPGA
+關注
關注
1660文章
22411瀏覽量
636266 -
DRC
+關注
關注
2文章
156瀏覽量
38174 -
Vivado
+關注
關注
19文章
857瀏覽量
71106
發(fā)布評論請先 登錄
輸入引腳時鐘約束_Xilinx FPGA編程技巧-常用時序約束詳解
蜂鳥e203移植要從哪些方面入手,在bsp中哪里修改引腳對應關系,約束文件?
采用xc7a200開發(fā)板移植蜂鳥E203
時序約束問題的解決辦法
關于綜合保持時間約束不滿足的問題
蜂鳥e203移植fpga上如何修改約束文件
技術資訊 I Allegro 設計中的走線約束設計
技術資訊 I 圖文詳解約束管理器-差分對規(guī)則約束
西門子再收購EDA公司 西門子宣布收購Excellicon公司 時序約束工具開發(fā)商
PanDao:實際約束條件下成像系統(tǒng)的初始結構的生成
FPGA時序約束之設置時鐘組
一文詳解Vivado時序約束
FPGA設計中兩種IO約束:管腳約束,延遲約束
評論