时钟的约束

关于时钟的约束命令:

create_clock-name clk-period 10.000[get_ports{clk}]

derive_pll_clocks//当约束了主时钟之后加上这句话就不用逐一约束pll时钟啦

derive_clock_uncertainty

create_generated_clock//当 FPGA 的引脚要向外部其他芯片提供时钟的时候

当出现警告: The following clock transfer have no clock uncertainty assignment. For more accurate results, apply clock uncertainty or use the derive_clock_uncertainty command.

只要加上   derive_clock_uncertainty 这条命令就可以解决。

output引脚约束命令

set_output_delay-clock{clk}-min 2.5 [get_ports{reg1}] //最大

set_output_delay-clock{clk}-max 2.5 [get_ports{reg1}] //最小

set_output_delay-clock{clk}- 2.5 [get_ports{reg1}] //当最大和最小的值相等时

因为 Timequest 只能约束 FPGA 的内部走线延时,但是无法知道 PCB 板上的走线延时或者外部寄存器芯片的延时, 所以这些不知道的延时都要算到 FPGA 的保持裕量和建立裕量。PCB 板的路径延时越大,建立裕量越小,保持裕量越大。反之路径延时越小,建立裕量越大,保持裕量越小。

建立裕量考虑的是最大值

Delay Value =  PCB最长走线的时间 + 外部芯片的建立时间 Tsu - clock skew

保持裕量考虑的是最小值

Delay Value =  PCB最短走线的时间 - 外部芯片的保持时间 Th - clock skew

input引脚约束命令

set_input_delay-clock{clk}-min 2.5 [get_ports{reg1}] //最大

set_input_delay-clock{clk}-max 2.5 [get_ports{reg1}] //最小

set_intput_delay-clock{clk}- 2.5 [get_ports{reg1}] //当最大和最小的值相等时

建立裕量考虑的是最大值

Delay Value =  PCB最长走线的时间 + 外部芯片的建立时间 Tco - clock skew

保持裕量考虑的是最小值

Delay Value =  PCB最短走线的时间 + 外部芯片的保持时间 Tco - clock skew

其余约束

set_clock_latency //将外部时钟信号的抖动信息告诉 TimeQuest

set_min_delay  //将有关路径延时告诉 TimeQuest

set_max_delay

原文:http://www.cnblogs.com/aslmer/p/6051814.html

Logo

DAMO开发者矩阵,由阿里巴巴达摩院和中国互联网协会联合发起,致力于探讨最前沿的技术趋势与应用成果,搭建高质量的交流与分享平台,推动技术创新与产业应用链接,围绕“人工智能与新型计算”构建开放共享的开发者生态。

更多推荐