作者:貓叔
延遲約束
對于延遲約束,相信很多同學是不怎么用的,主要可能就是不熟悉這個約束,也有的是嫌麻煩,因為有時還要計算PCB上的走線延遲導致的時間差。而且不加延遲約束,Vivado也只是在Timing Report中提示warning,并不會導致時序錯誤,這也會讓很多同學誤以為這個約束可有可無。
但其實這種想法是不對的,比如在很多ADC的設計中,輸出的時鐘的邊沿剛好是數據的中心位置,而如果我們不加延遲約束,則Vivado會默認時鐘和數據是對齊的。
對于輸入管腳,首先判斷捕獲時鐘是主時鐘還是衍生時鐘,如果是主時鐘,直接用set_input_delay即可,如果是衍生時鐘,要先創建虛擬時鐘,然后再設置delay。對于輸出管腳,判斷有沒有輸出隨路時鐘,若有,則直接使用set_output_delay,若沒有,則需要創建虛擬時鐘。
在本工程中,輸入輸出數據管腳的捕獲時鐘如下表所示:
根據上表,我們創建的延遲約束如下,其中的具體數字在實際工程中要根據上下游器件的時序關系(在各個器件手冊中可以找到)和PCB走線延遲來決定。未避免有些約束有歧義,我們把前面的所有約束也加進來。
# 主時鐘約束 create_clock -period 25.000 -name clk2 [get_ports clk_in2] # 衍生時鐘約束 create_generated_clock -name clk_samp -source [get_pins clk_gen_i0/clk_core_i0/clk_tx] -divide_by 32 [get_pins clk_gen_i0/BUFHCE_clk_samp_i0/O] create_generated_clock -name spi_clk -source [get_pins dac_spi_i0/out_ddr_flop_spi_clk_i0/ODDR_inst/C] -divide_by 1 -invert [get_ports spi_clk_pin] create_generated_clock -name clk_tx -source [get_pins clk_gen_i0/clk_core_i0/inst/mmcm_adv_inst/CLKIN1] [get_pins clk_gen_i0/clk_core_i0/inst/mmcm_adv_inst/CLKOUT1] create_generated_clock -name clk_rx -source [get_pins clk_gen_i0/clk_core_i0/inst/mmcm_adv_inst/CLKIN1] [get_pins clk_gen_i0/clk_core_i0/inst/mmcm_adv_inst/CLKOUT0] # 設置異步時鐘 set_clock_groups -asynchronous -group [get_clocks clk_samp] -group [get_clocks clk2] # 延遲約束 create_clock -period 6.000 -name virtual_clock set_input_delay -clock [get_clocks -of_objects [get_ports clk_pin_p]] 0.000 [get_ports rxd_pin] set_input_delay -clock [get_clocks -of_objects [get_ports clk_pin_p]] -min -0.500 [get_ports rxd_pin] set_input_delay -clock virtual_clock -max 0.000 [get_ports lb_sel_pin] set_input_delay -clock virtual_clock -min -0.500 [get_ports lb_sel_pin] set_output_delay -clock virtual_clock -max 0.000 [get_ports {txd_pin {led_pins[*]}}] set_output_delay -clock virtual_clock -min -0.500 [get_ports {txd_pin {led_pins[*]}}] set_output_delay -clock spi_clk -max 1.000 [get_ports {spi_mosi_pin dac_cs_n_pin dac_clr_n_pin}] set_output_delay -clock spi_clk -min -1.000 [get_ports {spi_mosi_pin dac_cs_n_pin dac_clr_n_pin}]
編輯:hfy
-
pcb
+關注
關注
4324文章
23159瀏覽量
399273 -
adc
+關注
關注
99文章
6533瀏覽量
545449
發布評論請先 登錄
相關推薦
評論