怎样查看input/output delay是否生效-易灵思(Elitestek)社区-FPGA CPLD-ChipDebug

怎样查看input/output delay是否生效

通过get_port命令查看接口。

get_ports *

图片[1]-怎样查看input/output delay是否生效-易灵思(Elitestek)社区-FPGA CPLD-ChipDebug

以LVDS的输入输出为例

 

怎样去查看output delay

set_output_delay -clock hdmi_rx_slow_clk -reference_pin [get_ports {hdmi_rx_slow_clk~CLKOUT~218~131}] -min -0.140 [get_ports {tmds_data0_o[*]}]

 

在tcl command Console中输入以下语句,可以查看到它的约束情况。

report_timing -through [get_pins {tmds_data1_o[*]~FF|Q}] -hold

Tmds_data1_o是一个LVDS的输出接口,hold使用的是min 值,setup使用的是max值 。如果有多条路径可以使用-npaths.

图片[2]-怎样查看input/output delay是否生效-易灵思(Elitestek)社区-FPGA CPLD-ChipDebug

可以看到在约束中已经把Output Delay在Caputure Path中减去。当然我认为加在Launch Path Delay中也是可以的。

怎样去查看input delay是否生效

set_input_delay -clock hdmi_rx_slow_clk -reference_pin [get_ports {hdmi_rx_slow_clk~CLKOUT~1~283}] -max 0.512 [get_ports {hdmi_rx_d0_RX_DATA[*]}]
set_input_delay -clock hdmi_rx_slow_clk -reference_pin [get_ports {hdmi_rx_slow_clk~CLKOUT~1~283}] -min 0.342 [get_ports {hdmi_rx_d0_RX_DATA[*]}]
set_input_delay -clock hdmi_rx_slow_clk -reference_pin [get_ports {hdmi_rx_slow_clk~CLKOUT~1~208}] -max 0.512 [get_ports {hdmi_rx_d1_RX_DATA[*]}]
set_input_delay -clock hdmi_rx_slow_clk -reference_pin [get_ports {hdmi_rx_slow_clk~CLKOUT~1~208}] -min 0.342 [get_ports {hdmi_rx_d1_RX_DATA[*]}]
set_input_delay -clock hdmi_rx_slow_clk -reference_pin [get_ports {hdmi_rx_slow_clk~CLKOUT~1~225}] -max 0.512 [get_ports {hdmi_rx_d2_RX_DATA[*]}]
set_input_delay -clock hdmi_rx_slow_clk -reference_pin [get_ports {hdmi_rx_slow_clk~CLKOUT~1~225}] -min 0.342 [get_ports {hdmi_rx_d2_RX_DATA[*]}]

 

在tcl command Console中输入以下语句,可以查看到它的约束情况。
report_timing -from [get_ports {hdmi_rx_d0_RX_DATA[*]}] -hold

 

hdmi_rx_d0_RX_DATA[*]是一个lvds的输入接口,hold使用的是min 值,setup使用的是max值 。如果有多条路径可以使用-npaths.

图片[3]-怎样查看input/output delay是否生效-易灵思(Elitestek)社区-FPGA CPLD-ChipDebug

可以看到在约束中已经把Input Delay在Launch Path中加上。

对于单端

当HPD_N是同步IO时。

这里使用的时钟是osc_clk

图片[4]-怎样查看input/output delay是否生效-易灵思(Elitestek)社区-FPGA CPLD-ChipDebug

HPD_N是一个单端非同步输出信号

create_clock -period 25 [get_ports {osc_clk}] 

create_clock -period 25 -name vir_osc_clk

set_output_delay -clock vir_osc_clk -max 1.2 [get_ports {HPD_N}]
set_output_delay -clock vir_osc_clk -min 1.0 [get_ports {HPD_N}]
在tcl command Console中输入以下语句,可以查看到它的约束情况。

report_timing -through [get_nets {HPD_N}]

 

图片[5]-怎样查看input/output delay是否生效-易灵思(Elitestek)社区-FPGA CPLD-ChipDebug
从时序报告中我们可以看到launch clock path delay是2.071,它的值是GBUF的延时,而capture clock path delay是0,说明参考点是在GBUF之前 。
HDMI_5V_N是单端输入信号
添加约束

set_input_delay -clock vir_osc_clk -max 2.0 [get_ports {HDMI_5V_N}]
set_input_delay -clock vir_osc_clk -min 1.8 [get_ports {HDMI_5V_N}]

通过以下指令来打印信息

report_timing -from [get_ports {HDMI_5V_N}]

使用npaths可以打印出多条路径。

程序上实现如下:

assign hdmi_rx_hpd_n = ~hdmi_rx_5v_n ? 1'b0 : rx_hpd;

图片[6]-怎样查看input/output delay是否生效-易灵思(Elitestek)社区-FPGA CPLD-ChipDebug

第二条

图片[7]-怎样查看input/output delay是否生效-易灵思(Elitestek)社区-FPGA CPLD-ChipDebug

三态信号

report_timing -from [get_ports {FPGA_HDMI_SCL_IN}]

图片[8]-怎样查看input/output delay是否生效-易灵思(Elitestek)社区-FPGA CPLD-ChipDebug

report_timing -to [get_nets {FPGA_HDMI_SDA_OE}]

图片[9]-怎样查看input/output delay是否生效-易灵思(Elitestek)社区-FPGA CPLD-ChipDebug

请登录后发表评论

    没有回复内容