1. IO限制分類
- 管腳限制和延遲限制
2. 管腳限制
- 管腳限制就是指管腳配置設定
- 需要設定兩個屬性PACKAGE_PIN:管腳位置 和 IOSTANDARD:管腳的電平标準
- 在vivado中,在xdc中對管腳限制的例子
set_property -dict {PACKAGE_PIN AJ16 IOSTANDARD LVCMOS18} [get_ports "led[0]" ]
- 這裡有一個注意點,對差分信号的限制:
- 管腳限制除了管腳位置和電平,還有端接,當使用IBUFDS來處理輸入的差分信号時,可以指定端接為TRUE
I 和 IB 是差分輸入信号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,卻把端接這個選項去掉了,是以要在I/O Ports界面中,手動指定。
FPGA時序限制理論之IO限制(4)
3. 延遲限制
- 延遲限制使用set_input_delay 和 set_output_delay
- 限制的時鐘源可以是時鐘輸入管腳,也可以是虛拟時鐘
- set_input_delay:
set_input_delay告訴的是輸入信号和輸入時鐘之間的延遲關系,它屬于FPGA外部的延遲,并不能
- set_output_delay: 與set_input_delay類似
- 如果想要調整輸入信号的延遲,隻能使用IDELAY