天天看點

FPGA時序限制理論之IO限制(4)

1. IO限制分類

  • 管腳限制和延遲限制

2. 管腳限制

  • 管腳限制就是指管腳配置設定
  • 需要設定兩個屬性PACKAGE_PIN:管腳位置 和 IOSTANDARD:管腳的電平标準
  • 在vivado中,在xdc中對管腳限制的例子
    set_property -dict {PACKAGE_PIN AJ16  IOSTANDARD  LVCMOS18} [get_ports "led[0]"    ]
               
  • 這裡有一個注意點,對差分信号的限制:
  1. 管腳限制除了管腳位置和電平,還有端接,當使用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)
       );
               
    I 和 IB 是差分輸入信号
  2. 但在Ultrascale中的IBUFDS,卻把端接這個選項去掉了,是以要在I/O Ports界面中,手動指定。
    FPGA時序限制理論之IO限制(4)

3. 延遲限制

  • 延遲限制使用set_input_delay 和 set_output_delay
  • 限制的時鐘源可以是時鐘輸入管腳,也可以是虛拟時鐘
  • set_input_delay:
FPGA時序限制理論之IO限制(4)

 set_input_delay告訴的是輸入信号和輸入時鐘之間的延遲關系,它屬于FPGA外部的延遲,并不能

  •  set_output_delay: 與set_input_delay類似
  • 如果想要調整輸入信号的延遲,隻能使用IDELAY