I/O約束
I/O約束是必須要用的約束,又包括管腳約束和延遲約束。
管腳約束
管腳約束就是指管腳分配,我們要指定管腳的PACKAGE_PIN和IOSTANDARD兩個屬性的值,前者指定了管腳的位置,后者指定了管腳對應(yīng)的電平標準。
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ù)輸入的數(shù)據(jù)為11101111這種時,中間那個0拉不下來,還是1,同樣也會發(fā)生在000010000,這樣就導(dǎo)致數(shù)據(jù)傳輸錯誤,后來才發(fā)現(xiàn)是端接忘記加。因為端接會影響信號的實際電平,導(dǎo)致FPGA判斷錯誤。
當綜合完成后,我們可以點擊DRC,進行設(shè)計規(guī)則檢查,這一步可以報出一些關(guān)鍵問題,比如時鐘端口未分配在時鐘引腳上等。
延遲約束
延遲約束用的是set_input_delay和set_output_delay,分別用于input端和output端,其時鐘源可以是時鐘輸入管腳,也可以是虛擬時鐘。但需要注意的是,這個兩個約束并不是起延遲的作用,具體原因下面分析。
set_input_delay
這個約束跟ISE中的OFFSET=IN功能相同,但設(shè)置方式不同。下圖所示即為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我們的輸入信號和輸入時鐘之間的延遲關(guān)系,跟下面要講的時鐘周期約束是一個原理,讓vivado在這個前提下去Place and Route。并不是調(diào)節(jié)輸入信號的延遲,因為身邊有不少的FPGA工程師在沒用過這個約束指令之前,都以為這是調(diào)節(jié)延遲的約束。
如果要調(diào)整輸入信號的延遲,只能使用IDELAY,在V6中,IDELAY模塊有32個tap值,每個tap可延遲78ps,這樣總共差不多是2.5ns。
編輯:hfy
-
FPGA
+關(guān)注
關(guān)注
1643文章
21923瀏覽量
612401 -
DRC
+關(guān)注
關(guān)注
2文章
153瀏覽量
36846 -
Vivado
+關(guān)注
關(guān)注
19文章
826瀏覽量
67964
發(fā)布評論請先 登錄
PanDao:實際約束條件下成像系統(tǒng)的初始結(jié)構(gòu)的生成
FPGA時序約束之設(shè)置時鐘組

一文詳解Vivado時序約束

時序約束一主時鐘與生成時鐘

常用時序約束使用說明-v1
與非門構(gòu)成的基本RS觸發(fā)器的約束條件是什么
SR鎖存器有約束項的原因
sr鎖存器約束條件怎樣得出的
兩種SR鎖存器的約束條件
FPGA 高級設(shè)計:時序分析和收斂
加法進位鏈的手動約束

評論