时序约束命令

时钟的约束

关于时钟的约束命令:

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

时间: 2024-10-07 15:32:44

时序约束命令的相关文章

Tcl与Design Compiler (十一)——其他的时序约束选项(二)

本文如果有错,欢迎留言更正:此外,转载请标明出处 http://www.cnblogs.com/IClearner/  ,作者:IC_learner 前面介绍的设计都不算很复杂,都是使用时钟的默认行为作为电路的约束,都存在有路径给你约束,即信号的变化要在一个时钟周期内完成,并达到稳定值,以满足寄存器的建立和保持的要求.此外进行可测性设计(design for test)时,为了提高测试的覆盖率,我们经常使用多路(multiplex,简称mux)传输电路的控制时钟,使电路的时钟信号可以由输入端直接

Tcl与Design Compiler (十)——其他的时序约束选项(一)

本文属于原创手打(有参考文献),如果有错,欢迎留言更正:此外,转载请标明出处 http://www.cnblogs.com/IClearner/  ,作者:IC_learner 之前讲了基本的时序路径约束,现在我们来看一下其他的约束,然后通过实战来讲解一些其他的约束.实战中也没有前面的"理论"中的约束类型,但是可以通过实战来了解其他的约束.本文的具体内容是: ·多时钟同步约束 ·门控时钟的约束 (实战:) ·正负边沿触发器的约束 ·输入输出延时的非默认约束 ·输入输出有多个路径驱动(类

Quartus中添加时序约束

1.sdc文件也是要添加到Quartus 软件中,这样在执行Read SDC File命令时才能读到相应的文件. 2.在TimeQuest打开的条件下,重新编译工程之后要Update Timing Netlist,这样TimeQuest分析器会得到最新的 网表文件进行时钟分析. 转载地址http://www.cnblogs.com/pejoicen/p/4194380.html PLL时钟约束 # Uncommenting one of the following derive_pll_cloc

FPGA 时序约束(altera timequest)

1 好的时序约束可以指导布局布线工具进行权衡,获得最优的器件性能,使设计代码最大可能的反映设计者的设计意图. 2 TimeQuest 是Altera 在6.0 版的软件中加入的具备ASIC 设计风格的静态时序分析(STA)工具.采用Synopsys Design Constraints(SDC)文件格式作为时序约束输入. 3 TimeQuest所做的就是建立时间和保持时间的检查.对于异步信号就是恢复时间和移除时间.此外还有多周期约束. 4 时序检查的目的就是确认信号跳变发生在"信号跳变抵达窗口&

VIVADO时序约束及STA基础

一.前言 无论是FPGA应用开发还是数字IC设计,时序约束和静态时序分析(STA)都是十分重要的设计环节.在FPGA设计中,可以在综合后和实现后进行STA来查看设计是否能满足时序上的要求.本文阐述基本的时序约束和STA操作流程.内容主要来源于<Vivado从此开始>这本书,我只是知识的搬运工. 二.时序约束与XDC脚本 时序约束的目的就是告诉工具当前的时序状态,以让工具尽量优化时序并给出详细的分析报告.一般在行为仿真后.综合前即创建基本的时序约束.Vivado使用SDC基础上的XDC脚本以文本

nios中SDRAM时序约束的方法

SDRAMS时序约束十分重要,没有时序约束时,由于数据管脚到时钟的边沿延时不一致,容易导致数据采样出错, 最终导致软件无法加载,很常见的就是在软件下载的过程中找不到chip id. 下面这个方法新手可以参考学习一下! 这里主要是讲了一下时钟的约束, 主要参考特权同学的,链接如下: http://wenku.baidu.com/link?url=Tk1bi1nx0xCp9sp6QIGlpoCtTFzjmwO28-t_mR9L-3Y0nLgEX8y1qR7OBUbtFOBq8K7zELY-PM9Dt

Xilinx FPGA编程技巧之常用时序约束详解

1.   基本的约束方法 为了保证成功的设计,所有路径的时序要求必须能够让执行工具获取.最普遍的三种路径为: 输入路径(Input Path),使用输入约束 寄存器到寄存器路径(Register-to-Register Path),使用周期约束 输出路径(Output Path),使用输出约束 具体的异常路径(Path specific exceptions),使用虚假路径.多周期路径约束 1.1.  输入约束Input Constraint OFFSET IN约束限定了输入数据和输入时钟边沿的

Xilinx ISE的时序约束

使用Synplify Pro加时序约束.综合完毕后,可以在ISE中进行布局.布线.需要用.ucf文件指定布局布线的时钟约束.前者可以比后者小. 早期的ISE,两个约束可以继承.现在用的高版本,反而需要分别指定,否则会忽略掉. 将综合(Synthesis)的频率提高,将布局布线(Place & route)的频率降低,可以提高性能指标.以后者为性能依归.

FPGA开发全攻略——时序约束

原文链接: FPGA开发全攻略连载之十二:FPGA实战开发技巧(5) FPGA开发全攻略连载之十二:FPGA实战开发技巧(6)(原文缺失,转自:FPGA开发全攻略—工程师创新设计宝典) 5.3.3 和FPGA接口相关的设置以及时序分析5.3.3.1 使用约束文件添加时序约束 一般来讲,添加约束的原则为先附加全局约束,再补充局部约束,而且局部约束比较宽松.其目的是在可能的地方尽量放松约束,提高布线成功概率,减少ISE 布局布线时间.典型的全局约束包括周期约束和偏移约束.在添加全局时序约束时,需要根