设置输入延时约束

时间:2022-04-28
本文章向大家介绍设置输入延时约束,主要内容包括其使用实例、应用技巧、基本知识点总结和需要注意事项,具有一定的参考价值,需要的朋友可以参考一下。

这是一个经典的时序分析模型,上游芯片将时钟发送给FPGA,对于内部同步元件之间的可以使用create_clock进行约束,对于外部芯片发送数据通过FPGA端口到达FPGA内部第一级接受触发器使用set_input_delay进行约束,对于FPGA的末级触发器通过端口到达下游芯片使用set_output_delay进行约束。输入端口到输出端口的组合逻辑使用set_max_delay进行约束。

图中trace_delay指的是板级延迟,输入延迟指的是上游芯片的时钟沿发出数据到FPGA接收到数据所需的时间input_delay。

Input_delay = Tco(clock output) + TD(trace delay)

最大延迟可以构建建立时间约束,最小延迟可以构建保持时间约束。

DDR的约束:在上升沿和下降沿都进行数据采样

set_input_delay 1 -min -clock clk [get_ports data_in]
set_input_delay 2 -max -clock clk [get_ports data_in]
set_input_delay 1 -min -clock clk [get_ports data_in] -clock_fall -add_delay(防止语句覆盖掉前面的语句,需要加add_delay)
set_input_delay 2 -max -clock clk [get_ports data_in] -clock_fall -add_delay
set tco_max 2,0
set td_max 3.0
set tco_min 0.0
set td_min 0.0
create_clock -name sysclk -period 10 [get_ports clkin]  //创建系统时钟
set_input_delay -clock sysclk -max [expr {$tco_max+$td_max}] [get_points din]
set_input_delay -clock sysclk -min [expr {$tco_min+$td_min}] [get_points din]