手把手课堂-赛灵思FPGA设计时序约束指南
FPGA 101 手把手课堂:让 XDC 时序约束为您效力
FPGA 101 手把手课堂:让XDC 时序约束为您效力set_multicycle_path path_ multiplier [-setup|-hold][-start|-end][-from ] [-to ][-through ]当您声明多周期路径时,事实上是将建立或保持(或二者皆有)分析要求与 path_mutiplier 相乘。
例如在上面的第一个实例中,每两个时钟周期有一次输出,因此对于建立时序而言 path_multiplier 是 2。
因为多周期路径既可应用到建立时光又可应用到保持时光,那么您可以挑选其应用位置。
当您声明建立时光乘数时,最佳做法通常是用法下面的公式同时声明一个保持时光乘数。
保持周期 = 建立乘数– 1 –保持乘数这对于我们所介绍的下列容易实例意味着,保持乘数由下面这个公式确定:保持乘数 = 建立乘数– 1,当用法公共时钟时。
为了演示多周期路径的重要性,我创建了一个容易实例,您可在这里下载。
在 XDC 文件中有一个实例包含了建立和保持这两个已被同时声明的多周期路径。
物理约束最常用的物理约束是 I/O 引脚布局和与 I/O 引脚有关的参数定义,例如标准驱动强度。
不过,还有其它类型的物理约束,包括布局、布线、I/O 和配置约束等。
布局约束能够定义单元的位置,而布线约束可用来定义信号的布线。
I/O 约束可用来定义 I/O 位置及其参数。
最后,配置约束可用来定义配置办法。
同样,也有一些约束不属于这几组约束。
Vivado 设计套件包含三种这样的约束,它们主要用于网表中。
DONT_TOUCH –该约束可用来阻挡优化,这样当实现平安关键型或高牢靠性系统时该约束会十分实用。
第1页共4页。
FPGA设计中的约束时序
FPGA设计中的约束文件有3类:用户设计文件(.UCF文件)、网表约束文件(.NCF 文件)以及物理约束文件(.PCF文件),可以完成时序约束、管脚约束以及区域约束。
3类约束文件的关系为:用户在设计输入阶段编写UCF文件,然后UCF文件和设计综合后生成NCF文件,最后再经过实现后生成PCF 文件。
UCF文件是ASC 2码文件,描述了逻辑设计的约束,可以用文本编辑器和Xilinx约束文件编辑器进行编辑。
NCF约束文件的语法和UCF文件相同,二者的区别在于:UCF文件由用户输入,NCF文件由综合工具自动生成,当二者发生冲突时,以UCF文件为准,这是因为UCF的优先级最高。
PCF文件可以分为两个部分:一部分是映射产生的物理约束,另一部分是用户输入的约束,同样用户约束输入的优先级最高。
一般情况下,用户约束都应在UCF文件中完成,不建议直接修改NCF文件和PCF文件。
约束文件的后缀是.ucf,所以一般也被称为UCF文件。
创建约束文件有两种方法,一种是通过新建方式,另一种则是利用过程管理器来完成。
第一种方法:新建一个源文件,在代码类型中选取“Implementation Constrains File”,在“Fi le Name”中输入约束文件的名称。
单击“Next”按键进入模块选择对话框,选择要约束的模块,然后单击“Next”进入下一页,再单击“Finish”按键完成约束文件的创建。
第二种方法:在工程管理区中,将“Source for”设置为“Synthesis/Implementation”。
“Constrains Editor”是一个专用的约束文件编辑器,双击过程管理区中“User Constrains”下的“Create Timing Constrains”就可以打开“Constrains Editor”。
需要注意的是,UCF文件是大小敏感的,端口名称必须和源代码中的名字一致,且端口名字不能和关键字一样。
赛灵思(Xilinx)FPGA 设计约束的分类
赛灵思(Xilinx)FPGA设计约束的分类赛灵思中文社区本文主要通过一个实例具体介绍ISE中通过编辑UCF文件来对FPGA设计进行约束,主要涉及到的约束包括时钟约束、群组约束、逻辑管脚约束以及物理属性约束。
Xilinx定义了如下几种约束类型:•“Attributes and Constraints”•“CPLD Fitter”•“Grouping Constraints”•“Logical Constraints”•“Physical Constraints”•“Mapping Directives”•“Placement Constraints”•“Routing Directives”•“Synthesis Constraints”•“Timing Constraints”•“Configuration Constraints”通过编译UCF(user constraints file)文件可以完成上述的功能。
还是用实例来讲UCF的语法是如何的。
图1 RTL Schematic图1是顶层文件RTL图,左侧一列输入,右侧为输出,这些端口需要分配相应的FPGA 管脚。
表1 UCF example对上面的UCF文件进行一些注释该UCF文件主要是完成了管脚的约束、时钟的约束,以及组的约束。
第一、二行:主要定义了时钟以及对应的物理管脚。
第一行,端口pin_sysclk_i 分配到FPGA管脚AD12,并放到了pin_sysclk_i group中。
那如何得知是AD12的管脚呢,请看图2,FPGA管脚AD12是一个66MHz的外部时钟。
FPGA的开发板肯定有电路原理图供你分配外部管脚。
图2电路原理图图2,电路原理图第二行:时钟说明:周期15ns,占空比50%。
关键词TIMESPEC(Timing Specifications),即时钟说明。
一般的语法是:TIMESPEC "TSidentifier"=PERIOD "timegroup_name" value [units];其中TSidentifier用来指定TS(时钟说明)的唯一的名称。
FPGA时序约束、时序分析
FPGA设计之——时序设计FPGA设计一个很重要的设计是时序设计,而时序设计的实质就是满足每一个触发器的建立(Setup)/保持(Hold)时间的要求。
建立时间(Setup Time):是指在触发器的时钟信号上升沿到来以前,数据稳定不变的时间,如果建立时间不够,数据将不能在这个时钟上升沿被打入触发器;保持时间(Hold Time):是指在触发器的时钟信号上升沿到来以后,数据稳定不变的时间,如果保持时间不够,数据同样不能被打入触发器。
FPGA设计分为异步电路设计和同步电路设计,然而很多异步电路设计都可以转化为同步电路设计,在设计时尽量采用同步电路进行设计。
对于同步电路可以转化的逻辑必须转化,不能转化的逻辑,应将异步的部分减到最小,而其前后级仍然应该采用同步设计。
为了让同步电路可靠地运行,就要对时钟偏差进行控制,以使时钟偏差减小到可用的范围。
影响时钟偏差的主要有以下几个因素:o用于连接时钟树的连线o钟树的拓扑结构o时钟的驱动o时钟线的负载o时钟的上升及下降时间在通常的FPGA设计中对时钟偏差的控制主要有以下几种方法:o控制时钟信号尽量走可编程器件的的全局时钟网络。
在可编程器件中一般都有专门的时钟驱动器及全局时钟网络,不同种类、型号的可编程器件,它们中的全局时钟网络数量不同,因此要根据不同的设计需要选择含有合适数量全局时钟网络的可编程器件。
一般来说,走全局时钟网络的时钟信号到各使用端的延时小,时钟偏差很小,基本可以忽略不计。
o若设计中时钟信号数量很多,无法让所有的信号都走全局时钟网络,那么可以通过在设计中加约束的方法,控制不能走全局时钟网络的时钟信号的时钟偏差。
o异步接口时序裕度要足够大。
局部同步电路之间接口都可以看成是异步接口,比较典型的是设计中的高低频电路接口、I/O接口,那么接口电路中后一级触发器的建立-保持时间要满足要求,时序裕度要足够大。
o在系统时钟大于30MHz时,设计难度有所加大,建议采用流水线等设计方法。
FPGA时序约束方法
FPGA时序约束方法以下是一些常见的FPGA时序约束方法:1.基本时序约束:-设置时钟频率:通过指定主时钟频率,可以限制设计中时序路径的最小时间。
-设置时钟约束:通过指定主时钟边沿的时刻,可以确保设计在正确的时刻进行时序采样。
-设置时钟分频比:通过设置时钟分频比,可以控制时钟的有效时间。
2.时序路径约束:-设置最大延迟:通过设置时序路径的最大延迟,可以确保时序路径在指定的时间范围内完成,避免过长的时序路径导致的性能问题。
-设置最小延迟:通过设置时序路径的最小延迟,可以确保时序路径在指定的时间范围内完成,避免过短的时序路径导致的稳定性问题。
-限制时钟频率:通过限制时序路径上的时钟频率,可以避免时钟频率过高导致的时序问题。
3.输入输出约束:-设置数据到达时间:通过设置输入数据到达时间,可以确保输入数据在有效时钟边沿之前稳定。
-设置数据输出时间:通过设置输出数据的稳定时间,可以确保输出数据在有效时钟边沿之后稳定。
4.时序分析和优化:-时序分析:使用时序分析工具来评估设计中的时序路径,并查找潜在时序问题。
-时序优化:根据时序分析的结果,对设计中的时序路径进行改进,以达到更好的时序性能。
5.约束语言:- 静态时序约束:使用硬件描述语言(如Verilog或VHDL)的时序约束语法,以标记和约束特定的时序路径。
-动态时序约束:使用专门的时序约束语言(例如SDC或SDF)来描述更复杂的时序关系,以支持更精确的时序约束。
6.约束验证:-时序约束检查:使用约束检查工具来验证时序约束的正确性和完整性。
-时序仿真:使用时序仿真工具来验证设计在特定时序约束下的行为和性能。
总结起来,FPGA时序约束方法是通过设置主时钟频率、时钟约束、时序路径约束、输入输出约束等来确保设计在FPGA器件上满足预期的时序要求。
时序约束语言和约束验证工具则提供了有效的手段来描述和验证这些约束,以确保设计的正确性和性能。
FPGA时序分析时序约束知识
FPGA时序分析时序约束知识一、FPGA时序分析的基本概念1.时序分析的定义时序分析是指通过计算和模拟来评估数字电路在不同条件下的时序要求是否能够满足。
它主要包括时钟周期、时钟偏移、时钟抖动、信号传输延迟等方面的考虑。
2.时序要求时序要求是指数字电路在设计中必须满足的时序条件。
常见的时序要求包括时钟频率、最小信号保持时间、最小信号恢复时间等。
3.时序路径时序路径是指数字电路中信号从输入到输出所经过的所有逻辑门和寄存器。
4.时序违规时序违规是指数字电路在设计中无法满足时序要求的情况。
时序违规可能导致电路功能失效,甚至硬件故障。
二、FPGA时序分析的关键步骤1.时序约束的设置时序约束是在FPGA设计中非常重要的一部分,它用于定义时钟频率、时钟边沿以及其他关键参数。
时序约束通常以SDC(Synopsys Design Constraints)的格式提供。
时序约束的设置需要综合考虑到电路的功能需求、时钟分频、时钟域划分以及时钟边沿和信号的传输延迟等各种因素。
时序约束应该准确地描述信号的起始时间、到达时间和关系,以确保设计满足时序要求。
2.时序路径分析时序路径分析是指通过分析不同信号路径的延迟和时间关系来评估设计是否满足时序要求。
时序路径分析可以通过静态分析和动态仿真两种方式进行。
静态分析主要是利用逻辑综合工具对电路的时序路径进行分析和计算。
动态仿真则是通过对电路进行时钟驱动的行为级仿真来评估时序路径。
两种方法都可以获得电路的路径延迟和时间关系,以判断设计是否满足时序要求。
3.时序修复当时序分析发现设计存在时序违规时,需要进行时序修复来解决问题。
时序修复主要包括时钟域划分、时钟频率调整、逻辑重构等方法。
时钟域划分是指将设计划分为不同的时钟域,确保时钟边沿的一致性。
时钟频率调整是通过逻辑优化和时序约束调整来改善设计的时序性能。
逻辑重构则是通过改变电路的结构和时序路径,以使设计满足时序要求。
三、时序约束的知识1.时钟频率设置时钟频率设置是指设置时钟的工作频率,以控制电路的运行速度和性能。
FPGA时序约束方法
FPGA时序约束方法FPGA时序约束是一种确定FPGA设计中数据传输和逻辑运算的时序关系的方法。
它用于确保设计能够在给定的时钟频率下正常工作,并满足时序要求。
时序约束的准确性对于FPGA设计的性能和可靠性至关重要。
在下面的文章中,我将详细介绍FPGA时序约束的方法。
1.时钟约束:时钟约束是FPGA设计中最重要的时序约束之一、它用于指定时钟信号的起始时间和周期。
时钟约束通常包括时钟频率、时钟边沿类型(上升沿、下降沿)以及时钟延迟等参数。
时钟约束的准确性对于FPGA设计的性能和稳定性至关重要。
2.输入约束:输入约束用于指定输入信号到达FPGA时钟边沿之前的最大和最小延迟。
通过设置输入约束,可以确保输入信号能够在时钟信号出现之前到达,并且达到正确的稳定水平。
输入约束还可以帮助设计人员优化信号传输的延迟,从而提高设计的性能。
常见的输入约束包括设置最大延迟、最小延迟和最大转换时间等参数。
3.输出约束:输出约束用于指定输出信号的最大和最小延迟。
通过设置输出约束,可以确保输出信号能够在时钟边沿之后的规定时间内稳定下来,并且达到正确的值。
输出约束还可以帮助设计人员优化信号传输的延迟,从而提高设计的性能。
常见的输出约束包括设置最大延迟、最小延迟和时钟关系等参数。
4.路径约束:路径约束用于指定数据在FPGA内部的路径以及路径上各个元件之间的时序关系。
路径约束可以确保数据在各个元件之间的传输速度和时序关系满足设计要求。
常见的路径约束包括设置最大延迟、最小延迟和时钟关系等参数。
5.时序分析工具:时序分析工具是用于验证FPGA设计是否满足时序约束的关键工具。
常见的时序分析工具包括Xilinx的Timing Analyzer 和Altera的TimeQuest等。
这些工具可以分析FPGA设计中各个信号的时序关系,并生成时序报告。
设计人员可以根据时序报告来优化设计,并确保设计满足时序要求。
总之,FPGA时序约束是保证FPGA设计性能和可靠性的重要方法。
手把手课堂-Xilinx FPGA设计时序约束指南
手把手课堂:Xilinx FPGA 设计时序约束指南
作为赛灵思用户论坛的定期访客,我注意到新用户往往对时序收敛以
及如何使用时序约束来达到时序收敛感到困惑。
为帮助FPGA 设计新手实现时序收敛,让我们来深入了解时序约束以及如何利用时序约束实现FPGA 设计的最优结果。
何为时序约束?
为保证设计的成功,设计人员必须确保设计能在特定时限内完成指定任务。
要实现这个目的,我们可将时序约束应用于连线中从某FPGA 元件到FPGA 内部或FPGA 所在PCB 上后续元件输入的一条或多条路径。
在FPGA 设计中主要有四种类型的时序约束:PERIOD、OFFSET IN、OFFSET OUT 以及FROM: TO(多周期)约束。
PERIOD 约束与建组
每个同步设计要有至少一个PERIOD 约束(时钟周期规格),这是最基本的约束类型,指定了时钟周期及其占空比。
若设计中有不止一个时钟,则每
个时钟都有自己的PERIOD 约束。
PERIOD 约束决定了我们如何进行布线,来满足设计正常工作的时序要求。
为简化时序约束应用过程,常常可将具有类似属性的连线分组为一组总
线或一组控制线。
这样做有助于完成正确为设计约束定义优先级这一关键步骤。
设计约束优先次序排列
若设计有多重约束,则需进行优先次序排列。
一般来说,约束的一般性
越强,其优先级越低。
相反,约束的针对性越强,其优先级越高。
举例来说,
时钟网络上的某个一般性PERIOD 约束将被特定网络的具有更高优先级的。
第九章 XILINX FPGA设计技术1-时序约束
PADA
FLOP D Q LATCH D G Q
CLK BUFG PADB
RAM
OUT1
OUT2 PADC
提纲
简介 全局约束 约束编辑器 小结
提纲
简介 全局约束 约束编辑器 小结
问题与回顾
给定系统框图如下,在约束编辑器中如何编辑才能使系统工 作在100MHz? -假定设备之间没有时钟延迟与抖动
Upstream Device Downstream Device 5 ns
4 ns
答案
给定系统框图如下,在约束编辑器中如何编辑才能使系统工 作在100MHz?
RAM D
OUT2
偏移约束
偏移约束覆盖的路径包括:
输入 pads 到同步单元 (OFFSET IN) 同步单元到输出 pads (OFFSET OUT) OFFSET IN
ADATA
CLK BUFG
FLOP D Q FLOP D Q FLOP D Q FLOP D Q FLOP D Q
OFFSET OUT
执行约束编辑器
在项目源文件窗口上展开 User Constraints 双击 Create Timing Constraints
进入周期和Pad-to-Pad 约束
通过全局Tab进入周期 和 Pad-to-Pad 约束 双击这里来建立周期 约束 全局Pad-to-Pad 约束 约束可以通过选择 <Delete>来删除
Upstream Device 4 ns
Downstream Device
FPGA开发全攻略——时序约束
FPGA开发全攻略——时序约束一般来讲,添加约束的原则为先附加全局约束,再补充局部约束,而且局部约束比较宽松。
其目的是在可能的地方尽量放松约束,提高布线成功概率,减少ISE 布局布线时间。
典型的全局约束包括周期约束和偏移约束。
在添加全局时序约束时,需要根据时钟频率划分不同的时钟域,添加各自的周期约束;然后对输入输出端口信号添加偏移约束,对片内逻辑添加附加约束。
1.周期约束周期约束是附加在时钟网路上的基本时序约束,以保证时钟区域内所有同步组件的时序满足要求。
在分析时序时,周期约束能自动处理寄存器时钟端的反相问题,如果相邻的同步元件时钟相位相反,则其延迟会被自动限制为周期约束值的一半,这其实相当于降低了时钟周期约束的数值,所以在实际中一般不要同时使用时钟信号的上升沿和下降沿。
硬件设计电路所能工作的最高频率取决于芯片内部元件本身固有的建立保持时间,以及同步元件之间的逻辑和布线延迟。
所以电路最高频率由代码和芯片两部分共同决定,相同的程序,在速度等级高的芯片上能达到更高的最高工作频率;同样,在同一芯片内,经过速度优化的代码具有更高的工作频率,在实际中往往取二者的平衡。
在添加时钟周期之前,需要对电路的期望时钟周期有一个合理的估计,这样才不会附加过松或过紧的周期约束,过松的约束不能达到性能要求,过紧的约束会增加布局布线的难度,实现的结果也不一定理想。
常用的工程策略是:附加的时钟周期约束的时长为期望值的90%,即约束的最高频率是实际工作频率的110% 左右。
附加时钟周期约束的方法有两个:一是简易方法,二是推荐方法。
简易方式是直接将周期约束附加到寄存器时钟网线上,其语法如下所示:[ 约束信号] PERIOD = { 周期长度} {HIGH | LOW} [ 脉冲持续时间];其中,[] 内的内容为可选项,{} 中的内容为必选项,“|”表示选择项。
[ 约束信号] 可为“Net net_name”或“TIMEGRP group_name”,前者表示周期约束作用到线网所驱动的同步元件上,后者表示约束到TIMEGRP所定义的信号分组上( 如触发器、锁存器以及RAM 等)。
FPGA中的时序约束--从原理到实例
FPGA中的时序约束--从原理到实例FPGA中的时序问题是⼀个⽐较重要的问题,时序违例,尤其喜欢在资源利⽤率较⾼、时钟频率较⾼或者是位宽较宽的情况下出现。
本⽂介绍时序分析的原理以及出现时序问题时⼀般的解决办法。
基本概念建⽴时间和保持时间是FPGA时序约束中两个最基本的概念,同样在芯⽚电路时序分析中也存在。
电路中的建⽴时间和保持时间其实跟⽣活中的红绿灯很像,建⽴时间是指在绿灯(clk的上升沿)亮起之前⾏⼈或者车辆(data数据)在路⼝提前等待的时间(只允许绿灯亮起的⼀刹那在路⼝的车辆才允许通⾏),⽽保持时间,则是绿灯亮起后必须保持的时间,这样⾏⼈或者数据才能够通过这个⼗字路⼝,否则hold时间就不满⾜。
同时,红绿灯默认都是周期性的(clk也是周期性的),车辆不允许在两个相邻的红绿灯之间通过的时间超过⼀个clk的周期(组合逻辑时延不能过⼤)。
建⽴时间(Tsu):是指在时钟沿到来之前数据从不稳定到稳定所需的时间,如果建⽴的时间不满⾜要求,在时钟上升沿,寄存器将不能正确采到数据值。
如下图(左)所⽰:保持时间(Th):是指在时钟上升沿后数据保持稳定的时间,如果保持时间不满⾜要求那么数据同样也不能被正确采集到。
保持时间⽰意图如下图(右)所⽰:如图1.3,这是⼀个FPGA输⼊数据的模型,输⼊端⼝到第⼀个寄存器之间的路径需要进⾏时序约束。
⼀般我们需要告知FPGA输⼊输出接⼝的最⼤最⼩延迟,使EDA⼯具在进⾏布局布线时能够尽可能的优化输⼊端⼝到第⼀级寄存器之间的延迟,使FPGA中时钟的上升沿能够正确采集到输⼊的数据。
在sdc约束中,输⼊延时是从上游器件发出数据到FPGA输⼊端⼝的延时时间。
如图,1.4所⽰,输⼊接⼝时序清楚反应了FPGA在接收数据时应满⾜的建⽴和保持时间要求。
说明:OSC :系统时钟ASSP.CLk :外部器件寄存器的时钟ASSP.Q :外部器件数据输出FPGA.D :FPGA数据输⼊FPGA.CLK :FPGA内部寄存器的时钟Tclk1 :系统时钟到外部器件之间的延时Tclk2 :系统时钟到FPGA之间的延时Tco :数据经过外部器件寄存器输出后相对于ASSP.CLK的偏移Tpcb :数据在pcb电路板上的延时FTsu :FPGA上寄存器的建⽴时间要求FTh :FPGA上寄存器的保持时间要求setup slack :建⽴时间余量,必须⼤于等于0才能满⾜建⽴时间的时序要求hold slack :保持时间余量,必须⼤于等于0才能满⾜保持时间的时序要求T: 系统时钟频率c. 输出延时即为FPGA输出数据后到达外部器件的延时时间。
FPGA时序约束的6种方法
FPGA时序约束的6种方法对自己的设计的实现方式越了解,对自己的设计的时序要求越了解,对目标器件的资源分布和结构越了解,对EDA 工具执行约束的效果越了解,那么对设计的时序约束目标就会越清晰,相应地,设计的时序收敛过程就会更可控。
下文总结了几种进行时序约束的方法。
按照从易到难的顺序排列如下:0.核心频率约束这是最基本的,所以标号为0.1.核心频率约束+时序例外约束时序例外约束包括FalsePath、MulticyclePath、MaxDelay、MinDelay.但这还不是最完整的时序约束。
如果仅有这些约束的话,说明设计者的思路还局限在FPGA 芯片内部。
2.核心频率约束+时序例外约束+I/O 约束I/O 约束包括引脚分配位置、空闲引脚驱动方式、外部走线延时(InputDelay、OutputDelay)、上下拉电阻、驱动电流强度等。
加入I/O 约束后的时序约束,才是完整的时序约束。
FPGA 作为PCB 上的一个器件,是整个PCB 系统时序收敛的一部分。
FPGA 作为PCB 设计的一部分,是需要PCB 设计工程师像对待所有COTS 器件一样,阅读并分析其I/O Timing Diagram 的。
FPGA 不同于COTS 器件之处在于,其I/O Timing 是可以在设计后期在一定范围内调整的;虽然如此,最好还是在PCB 设计前期给与充分的考虑并归入设计文档。
正因为FPGA 的I/O Timing 会在设计期间发生变化,所以准确地对其进行约束是保证设计稳定可控的重要因素。
许多在FPGA 重新编译后,FPGA 对外部器件的操作出现不稳定的问题都有可能是由此引起的。
3.核心频率约束+时序例外约束+I/O 约束+Post-fit Netlist引入Post-fit Netlist 的过程是从一次成功的时序收敛结果开始,把特定的一组逻辑(Design Partition)在FPGA 上实现的布局位置和布线结果(Netlist)固定下来,保证这一布局布线结果可以在新的编译中重现,相应地,这一组逻辑的时序收敛结果也就得到了保证。
FPGA四种路径添加时序约束方法
在给FPGA做逻辑综合和布局布线时,需要在工具中设定时序的约束。
通常,在FPGA设计工具中都FPGA中包含有4种路径:从输入端口到寄存器,从寄存器到寄存器,从寄存器到输出,从输入到输出的纯组合逻辑。
通常,需要对这几种路径分别进行约束,以便使设计工具能够得到最优化的结果。
下面对这几种路径分别进行讨论。
1、从输入端口到寄存器:这种路径的约束是为了让FPGA设计工具能够尽可能的优化从输入端口到第一级寄存器之间的路径延迟,使其能够保证系统时钟可靠的采到从外部芯片到FPGA的信号。
约束名称:input delay. 约束条件的影响主要有4个因素:外部芯片的Tco,电路板上信号延迟Tpd,FPGA的Tsu, 时钟延迟Tclk. Tco的参数通常需要查外部芯片的数据手册。
计算公式:input delay = Tco+Tpd+Tsu-Tclk. FPGA的Tsu也需要查FPGA芯片的手册。
FPGA速度等级不同,这个参数也不同。
Tpd和Tclk需要根据电路板实际的参数来计算。
通常,每10cm的线长可以按照1ns来计算. 例如:系统时钟100MHz, 电路板上最大延迟2ns, 时钟最大延迟1.7ns, Tco 3ns, FPGA的Tsu为0.2ns. 那么输入延迟的值: max Input delay= 2+3+0.2-1.7=3.5ns. 这个参数的含义是指让FPGA的设计工具把FPGA的输入端口到第一级寄存器之间的路径延迟(包括门延迟和线延迟)控制在10ns-3.5ns=6.5ns 以内。
2、寄存器到寄存器:这种路径的约束是为了让FPGA设计工具能够优化FPGA内寄存器到寄存器之间的路径,使其延迟时间必须小于时钟周期,这样才能确保信号被可靠的传递。
由于这种路径只存在于FPGA内部,通常通过设定时钟频率的方式就可以对其进行约束。
对于更深入的优化方法,还可以采用对寄存器的输入和寄存器的输出加入适当的约束,来使逻辑综合器和布线器能够对某条路径进行特别的优化。
XilinxFPGA编程技巧之常用时序约束详解
Xilinx FPGA编程技巧之常用时序约束详解i.基本的约束方法为了保证成功的设计,所有路径的时序要求必须能够让执行工具获取。
最普遍的三种路径为: .输入路径(In put Path ),使用输入约束.寄存器到寄存器路径(Register-to-Register Path ),使用周期约束.输出路径(Output Path ),使用输出约束.具体的异常路径(Path specific exceptio ns ),使用虚假路径、多周期路径约束1.1. 输入约束In put Co nstrai ntOFFSET IN约束限定了输入数据和输入时钟边沿的关系。
1.1.1. 系统同步输入约束System Sy nchron ous In put在系统同步接口中,同一个系统时钟既传输数据也获取数据。
考虑到板子路径延时和时钟抖动,接口的操作频率不能太高。
1-1简化的系统同步输入SDR接口电路图1-2SDR系统同步输入时序上述时序的约束可写为:NET "SysCIk" TNM_NET = "SysCIk";TIMESPEC "TS_SysClk" = PERIOD "SysClk" 5 ns HIGH 50%;OFFSET = IN 5 ns VALID 5 ns BEFORE "SysClk";1.1.2. 源同步输入约束Source Syn chro nous In put在源同步接口中,时钟是在源设备中和数据一起产生并传输。
1-3简化的源同步输入DDR接口电路1-4DDR源同步输入时序上图的时序约束可写为:NET "SysCIk" TNM_NET = "SysCIk";TIMESPEC "TS_SysCIk" = PERIOD "SysCIk" 5 ns HIGH 50%;OFFSET = IN 1.25 ns VALID 2.5 ns BEFORE "SysClk" RISING;OFFSET = IN 1.25 ns VALID 2.5 ns BEFORE "SysClk" FALLING;1.2. 寄存器到寄存器约束Register-to-Register Constraint寄存器到寄存器约束往往指的是周期约束,周期约束的覆盖范围包括:.覆盖了时钟域的时序要求.覆盖了同步数据在内部寄存器之间的传输.分析一个单独的时钟域内的路径.分析相关时钟域间的所有路径.考虑不同时钟域间的所有频率、相位、不确定性差异1.2.1. 使用DLL, DCM, PLL, and MMCM 等时钟器件自动确定同步关系使用这一类时钟IP Core,只需指定它们的输入时钟约束,器件将自动的根据用户生成IP Core时指定的参数约束相关输出,不需用户手动干预。
XILINX 时序约束使用指南中文翻译
XILINX时序约束使用指南笔记(UG612)第一章时序约束介绍第二章时序约束方法第三章时序约束原则第四章在XST中指定时序约束第五章在Synplify中指定时序约束方法第六章时序约束分析第一章时序约束介绍基本的时序约束包括:“PERIOD Constraints”“OFFSET Constraints”“FROM:TO(Multi-Cycle)约束”第二章时序约束方法1,简介:2,基本的约束方法根据覆盖的路径不同,时序要求变成一些不同的全局约束。
最普通的路径类型包括:1,输入路径2,同步元件到同步元件路径3,指定路径4,输出路径XILINX的时序约束与每一种全局约束类型都有关。
最有效的方法就是一开始就指定全局约束然后再加上指定路径的约束。
在很多案例中,只要全局约束就可满足需求。
FPGA器件执行工具都是由指定的时序要求驱动的。
如果时序约束过头的话,就会导致内存使用增加,工具运行时间增加。
更重要的是,过约束还会导致性能下降。
因此,推荐使用实际设计要求的约束值。
3,输入时序约束输入时序约束包括2种“系统同步输入”“源同步输入”输入时钟约束覆盖了输入数据的FPGA外部引脚到获取此数据的寄存器之间的路径。
输入时钟约束经常用”OFFSET IN”约束。
指定输入时钟要求的最好方法,取决于接口的类型(源/系统同步)和接口是SDR还是DDR。
OFFSET IN定义了数据和在FPGA引脚抓取此数据的时钟沿之间的关系。
在分析OFFSET IN 约束时,时序分析工具自动将影响时钟和数据延迟的因素考虑进去。
这些因素包括:时钟的频率和相位转换时钟的不确定数据延迟调整除了自动调整,还可以在与接口时钟相关的”PERIOD”约束中另外增加时钟不确定。
关于增加”INPUT_JITTER”的更多信息,参见第三章的”PERIOD Constraints”。
“OFFSET IN”与单输入时钟有关,默认情况下,OFFSET IN约束覆盖了从输入pad到内部同步元件之间的所有路径。
XilinxFPGA编程技巧之常用时序约束详解
Xilinx FPGA编程技巧之常用时序约束详解1. 基本的约束方法为了保证成功的设计,所有路径的时序要求必须能够让执行工具获取。
最普遍的三种路径为:. 输入路径(Input Path),使用输入约束. 寄存器到寄存器路径(Register-to-Register Path),使用周期约束. 输出路径(Output Path),使用输出约束. 具体的异常路径(Path specific exceptions),使用虚假路径、多周期路径约束1.1. 输入约束Input ConstraintOFFSET IN约束限定了输入数据和输入时钟边沿的关系。
1.1.1. 系统同步输入约束System Synchronous Input在系统同步接口中,同一个系统时钟既传输数据也获取数据。
考虑到板子路径延时和时钟抖动,接口的操作频率不能太高。
1-1简化的系统同步输入SDR接口电路图1-2SDR系统同步输入时序上述时序的约束可写为:NET "SysClk" TNM_NET = "SysClk";TIMESPEC "TS_SysClk" = PERIOD "SysClk" 5 ns HIGH 50%;OFFSET = IN 5 ns VALID 5 ns BEFORE "SysClk";1.1.2. 源同步输入约束Source Synchronous Input在源同步接口中,时钟是在源设备中和数据一起产生并传输。
1-3简化的源同步输入DDR接口电路1-4DDR源同步输入时序上图的时序约束可写为:NET "SysClk" TNM_NET = "SysClk";TIMESPEC "TS_SysClk" = PERIOD "SysClk" 5 ns HIGH 50%;OFFSET = IN 1.25 ns VALID 2.5 ns BEFORE "SysClk" RISING;OFFSET = IN 1.25 ns VALID 2.5 ns BEFORE "SysClk" FALLING;1.2. 寄存器到寄存器约束Register-to-Register Constraint寄存器到寄存器约束往往指的是周期约束,周期约束的覆盖范围包括:. 覆盖了时钟域的时序要求. 覆盖了同步数据在内部寄存器之间的传输. 分析一个单独的时钟域内的路径. 分析相关时钟域间的所有路径. 考虑不同时钟域间的所有频率、相位、不确定性差异1.2.1. 使用DLL, DCM, PLL, and MMCM等时钟器件自动确定同步关系使用这一类时钟IP Core,只需指定它们的输入时钟约束,器件将自动的根据用户生成IP Core时指定的参数约束相关输出,不需用户手动干预。
在FPGA设计环境下添加时序约束的方法
在FPGA设计环境下添加时序约束的方法如何在FPGA设计环境中加时序约束SDC在给FPGA做逻辑综合和布局布线时,需要在工具中设定时序的约束。
通常,在FPGA设计工具中都FPGA中包含有4种路径:从输入端口到寄存器,从寄存器到寄存器,从寄存器到输出,从输入到输出的纯组合逻辑。
通常,需要对这几种路径分别进行约束,以便使设计工具能够得到最优化的结果。
下面对这几种路径分别进行讨论:从输入端口到寄存器:这种路径的约束是为了让FPGA设计工具能够尽可能的优化从输入端口到第一级寄存器之间的路径延迟,使其能够保证系统时钟可靠的采到从外部芯片到FPGA的信号。
约束名称:input delay。
约束条件的影响主要有4个因素:外部芯片的T co,电路板上信号延迟Tpd,FPGA的Tsu/Th,时钟延迟Tclk。
T co的参数通常需要查外部芯片的数据手册。
计算公式:input delay = T co+Tpd+Tsu-T clk。
FPGA的Tsu也需要查FPGA芯片的手册,FPGA速度等级不同,这个参数也不同。
Tpd和Tclk需要根据电路板实际的参数来计算。
通常,每10 cm 的线长可以按照1ns来计算. 例如:系统时钟100MHz,电路板上最大延迟2 ns,时钟最大延迟为1.7 ns,T co为3 ns,FPGA的Tsu为0.2 ns。
那么输入延迟的值:max input delay = 2+3+0.2-1.7=3.5 ns。
这个参数的含义是指让FPGA 的设计工具把FPGA的输入端口到第一级寄存器之间的路径延迟(包括门延迟和线延迟)控制在10 ns - 3.5 ns = 6.5 ns 以内。
对于min input delay,则类似考虑FPGA寄存器的Th参数等。
寄存器到寄存器:这种路径的约束是为了让FPGA设计工具能够优化FPGA内寄存器到寄存器之间的路径(register-to-register),使其延迟时间必须小于时钟周期,这样才能确保信号被可靠的传递。
FPGA时序约束方法
FPGA时序约束方法FPGA时序约束是一种用于指导和优化FPGA设计中时序性能的方法。
它可以确保电路在程序执行期间满足特定的时序要求,例如信号的最大延迟、最小持续时间和时钟频率等。
时序约束的正确使用可以提高设计的稳定性、可靠性和性能。
本文将介绍FPGA时序约束的基本原则和常用方法。
1.时序规范与分析时序规范是指描述设计的时序要求的文档。
它通常包含输入输出的最大延迟要求、时钟频率限制和时序路径等信息。
在进行FPGA设计之前,应先明确时序规范,并基于规范进行时序分析。
分析工具可以帮助识别潜在的时序问题,并对设计和约束进行优化。
2.确定时钟时钟是FPGA设计中最重要的时序信号之一、在FPGA设计中,应明确定义主时钟和所有其他时钟。
主时钟应具有稳定的周期,并且所有时序路径都应相对于主时钟进行分析和约束。
其他时钟应与主时钟存在特定的时钟域关系,例如分频、相位偏移等。
3.最大延迟约束最大延迟约束用于限制信号从输入到输出的最大延迟。
在FPGA设计中,输入和输出被称为时序路径。
最大延迟约束可以确保电路在给定时钟频率下能够按时完成计算,满足系统的实时性要求。
最大延迟约束通常是在时序规范中指定的。
4.最小持续时间约束最小持续时间约束用于确保特定信号在时钟沿上保持稳定的最短时间。
这通常用于保证数据稳定性和防止时序违规,例如锁存器保持时间和数据传输时间等。
5.时钟频率约束时钟频率约束用于限制电路的时钟频率。
它可以确保电路在给定时钟频率下保持正确的功能和时序性能。
时钟频率约束可以通过分析工具自动计算生成,也可以手动指定。
对于高性能的设计,使用时钟频率约束可以帮助设计人员优化电路并提高系统的性能。
6.时序路径分析与优化时序路径分析是一种用于分析和优化电路中时序路径的方法。
通过时序路径分析,可以确定关键路径和瓶颈,并优化设计以满足时序规范。
常见的时序路径优化方法包括添加缓冲器、重新布局电路、优化逻辑等。
总之,FPGA时序约束是一种重要的设计方法,用于指导和优化FPGA设计中的时序性能。
fpga的时序约束
fpga的时序约束FPGA的时序约束FPGA(Field-Programmable Gate Array)是一种可编程逻辑器件,具有灵活性和可重构性。
在FPGA设计中,时序约束是一项重要的任务,它定义了电路中信号的传输时间和时序关系。
时序约束的正确设置对电路的性能和稳定性至关重要。
本文将介绍FPGA的时序约束及其相关内容。
一、时序约束的基本概念时序约束是指在FPGA设计中,对电路中信号的传输时间、时钟频率、延迟等进行限制和定义。
它是一种关于信号传输时序关系的约束条件,确保设计在特定时钟频率下能够正常工作。
时序约束通常包括以下几个方面:1. 时钟频率:指定电路中时钟信号的频率,即时钟周期的倒数。
时钟频率决定了电路的工作速度和性能。
2. 输入延迟:指定输入信号到达FPGA引脚到被FPGA内部逻辑电路采样的时间。
输入延迟主要取决于信号的传输路径和FPGA的布局。
3. 输出延迟:指定FPGA内部逻辑电路输出信号从采样到输出引脚的时间。
输出延迟决定了输出信号的稳定性和正确性。
4. 约束路径:指定电路中的关键路径,并要求这些路径满足一定的时序要求。
关键路径是决定电路性能的主要路径。
5. 时序检查:对设计中的时序约束进行验证,确保电路能够在特定时钟频率下正常工作。
时序检查常常使用时序分析工具进行。
二、时序约束的设置方法在FPGA设计中,时序约束通常通过HDL(Hardware Description Language)代码或专用的约束文件进行设置。
常见的HDL语言有VHDL和Verilog,这些语言提供了丰富的语法和语义来描述电路的时序行为。
时序约束的设置包括以下几个步骤:1. 确定时钟频率:根据设计的需求和目标平台的性能,确定适当的时钟频率。
时钟频率应根据FPGA器件的特性和设计的复杂度进行选择。
2. 分析设计中的关键路径:通过时序分析工具,分析设计中的关键路径。
关键路径是决定电路性能的主要路径,需要特别关注和设置时序约束。
- 1、下载文档前请自行甄别文档内容的完整性,平台不提供额外的编辑、内容补充、找答案等附加服务。
- 2、"仅部分预览"的文档,不可在线预览部分如存在完整性等问题,可反馈申请退款(可完整预览的文档不适用该条件!)。
- 3、如文档侵犯您的权益,请联系客服反馈,我们会尽快为您处理(人工客服工作时间:9:00-18:30)。
手把手课堂:赛灵思FPGA设计时序约束指南作者:Austin Lesea,首席工程师 Xilinx Inc. Austin.lesea@作为赛灵思用户论坛的定期访客(见),我注意到新用户往往对时序收敛以及如何使用时序约束来达到时序收敛感到困惑。
为帮助FPGA设计新手实现时序收敛,让我们来深入了解时序约束以及如何利用时序约束实现FPGA 设计的最优结果。
何为时序约束?为保证设计的成功,设计人员必须确保设计能在特定时限内完成指定任务。
要实现这个目的,我们可将时序约束应用于连线中——从某 FPGA 元件到 FPGA 内部或 FPGA 所在 PCB 上后续元件输入的一条或多条路径。
在 FPGA 设计中主要有四种类型的时序约束:PERIOD、OFFSET IN、OFFSET OUT 以及 FROM: TO(多周期)约束。
PERIOD 约束与建组每个同步设计要有至少一个PERIOD 约束(时钟周期规格),这是最基本的约束类型,指定了时钟周期及其占空比。
若设计中有不止一个时钟,则每个时钟都有自己的 PERIOD 约束。
PERIOD约束决定了我们如何进行布线,来满足设计正常工作的时序要求。
为简化时序约束应用过程,常常可将具有类似属性的连线分组为一组总线或一组控制线。
这样做有助于完成正确为设计约束定义优先级这一关键步骤。
设计约束优先次序排列若设计有多重约束,则需进行优先次序排列。
一般来说,约束的一般性越强,其优先级越低。
相反,约束的针对性越强,其优先级越高。
举例来说,时钟网络上的某个一般性 PERIOD 约束将被特定网络的具有更高优先级的 FROM: TO 约束所覆盖。
特定 FROM: TO(或 FROM: THRU:TO)约束在时钟域内任意网络中的重要性均高于一般性约束。
为便于进行约束的优先级排列,可运行赛灵思时序分析器(ISE® Design Suite 中的静态时序分析工具),并生成时序规格迭代报告,即常说的 .tsi 报告。
该报告说明了各约束间是如何迭代的,以及该工具如何为各约束设置默认优先级。
采用 PRIORITY 约束关键词可手动设置任一时序约束的优先级并使其优先于默认的或预先设定的优先级。
这对同一路径上的两个或多个时序约束发生冲突时尤为有用。
这里的优先级指的是同一路径上有两个或多个时序约束时,该应用哪一个。
其余的低优先级约束则被忽略。
优先级可在 -10 ~ +10 的范围内设置。
PRIORITY 值越低,优先级越高。
注意该值不会影响到哪些路径应率先布局和走线,只有当优先级相同的两个约束出现在同一路径上时,它才会影响由哪个约束控制该路径。
下面将以 PERIOD 只控制从同步元件到同步元件之间的网络,如 FFS 到FFS 为例来进一步介绍(约束以蓝色显示如下):创建名为 tnm_clk20 的 TIMEGRP(时序分组),包含网络 clk20 驱动的所有下游同步组件。
这些同步元件间的所有路径均受时序规格“TS_clk20: 20ns”(同步元件到同步元件 20 纳秒的时间要求)的约束。
“HIGH 50%”指 clk20 的占空比为50/50。
在第二个例子中,我们使用 FROM:TO 约束来定义对两个分组间路径的要求,即:该命令的作用是告知工具,确保数据从时序分组“my_from_grp”包含的元件到“my_to_grp”的元件所用时间为 40纳秒。
时序分析器仍将计算从源分组到目标分组的时钟偏移,不过若时钟关联,则优先级较低。
也可使用如下预定义分组:若不选定时间单位(纳秒、皮秒等),则工具将自动默认为纳秒。
例如,可这样写约束:也可只写From 或只写To ,以使其更具一般性:如前所述,工具将自动默认上文所述所有 FROM: TO 约束的优先级高于PERIOD 约束,除非另有规定。
详细查看 .tsi 报告除帮助查看时序约束迭代外,.tsi 报告还就如何改进通用约束文件 (UCF) 中的约束提供方法建议。
该报告还会告知是否有路径受多重时钟域的约束。
下面是约束迭代报告的例子:在本例中,高优先级的 FROM: TO约束(仅一个)将优先于 PERIOD 约束应用。
建立和保持在实际的同步数字系统中,数据必须先于进行采样的时钟脉冲边沿到达。
达到这一目标所需的最短时间称为“建立时间”。
除了先于时钟脉冲边沿到达外,数据必须在时钟脉冲边沿保持一定时间,这一时间称为“保持时间”。
保持时间可以为负,此时数据在时钟脉冲边沿到达前便已结束;可以为零,此时数据保持到时钟脉冲边沿采样;也可为正,此时数据保持到时钟脉冲边沿采样完毕后一段时间。
根据设计,在 FPGA 架构中,对所有速度等级,保持时间均不为正(或零或负)。
这样可简化布局和布线,因数据只需先于时钟脉冲边沿到达,并可在时钟脉冲边沿采样发生后即刻发生变化。
数据超出最小建立时间的值称为时序裕量。
时序裕量应总是为正。
若报告上出现时序裕量负值,则说明建立时序尚未得到充分满足,数据到达太迟。
时钟路径本身也有延迟或偏移。
因此,要分析时序,工具需计算出数据和时钟到达所分析触发器的时间。
约束违例的简便补救办法重申一下:PERIOD 约束定义的是触发器等同步元件的时钟周期。
可使用时序分析器来验证同步元件之间的所有路径是否满足设计的建立和保持时序要求。
PERIOD 约束违例将以负的时序裕量显示在在时序报告,并说明到底是建立时间还是保持时间要求出现违例。
所以若报告显示发生了建立时间违例时该作何处理?应找出两个所分析的同步元件间一条较快路径,或至少是某种方法来确保数据在合适时间内到达并保持足够长的时间,以便时钟脉冲边沿能够正确采样。
若布局布线软件无法找到更快的路径,则可从 FPGA Editor 工具中手动进行布线。
不过这是最后的手段。
在弄清楚不用它如何解决问题之前,请尽量不要使用这种方法。
只使用 FPGA Editor 查看底层结构“知其所以然”,了解工具对设计的所做的处理,以达到让设计恰当的使用FPGA 资源来实现的目的。
首先试试重构电路来满足设计的时序要求。
一个比较简单的方法就是在路径上及早布置一个触发器。
该技术即为流水线,它会增加信号的延迟,不过也可使信号值得到正确地采样。
若出现保持时间违例(数据在时钟脉冲边沿到来之前便已结束),则往往说明存在设计问题(架构不良)。
数值只能在时钟脉冲边沿发生变化,而不是之前。
若外部信号值在时钟脉冲边沿之前发生变化,则需使用 DCM 或 PLL 延迟时钟脉冲边沿,这样数据才能由新的延迟时钟正确采样。
有一种替代方法,就是在输入/ 输出模块中使用 IDELAY 元件,将数据移到时钟有效的位置上。
数据有效窗口与亚稳态时钟脉冲边沿之前的时间(建立)加上时钟脉冲边沿之后的时间(保持)即为“数据有效窗口”,也就是数据保持稳定,以进行正常采样的时间。
若数据在此期间没有保持有效,则结果存在不确定性,或不可知。
不过,数据的有效时间未达到规定的长度,并不意味着触发器输出为亚稳态。
亚稳态不同于不确定。
若不能满足时序要求,则输出可能为随机的 1 或 0。
亚稳态是指时钟脉冲边沿“几乎”能进行状态采集,而触发器输出则在时钟脉冲边沿之后的一段时间内处于某种中间状态(非 1 非 0)。
亚稳态无法避免,因其为时钟脉冲边沿和数据几乎完全“错过”时的电路物理状态。
在设计合理的同步系统中,亚稳态不是什么问题。
当出现异步情况(如敲击键盘上的一个键)或当两个同步时钟彼此异步时,亚稳态就会成为问题。
一般而言,若出现异步情况,则需进行同步处理。
关于如何处理亚稳态的情况,这里有篇不错的专题文章:/class/ee183/handouts_spr2003/synchronization_pres.pdf 。
(要深入了解亚稳态,请查看本期第二篇文章 FPGA101)传输时间与 OFFSET 约束信号从 A 点到达 B 点所用的时间称为传输时间。
它取决于传输介质中光传播的速度。
例如,PCB 电路板上的走线以 6~7 皮秒/ 毫米来传输信号。
可采用多种方法来确定这一时间值,例如进行仿真,或在材料介电常数与走线几何结构已知的情况下,列方程求解。
在芯片内,信号的行为方式也很类似,不过也会因通过缓存器、反相器、逻辑和互联等有源电路而发生延迟。
传输时间是可测量的,通常用示波器来测量。
当路径上无有源元件时,传输时间一般不会有太大变化。
若路径在芯片内,则晶体管的作用会使路径延迟在最大值与最小值之间变化。
设计需同时满足二者的时序要求。
为告诉工具数据何时到达特定位置,需使用另一种名为“OFFSET_IN”的约束。
“OFFSET_IN”约束在时钟和数据进入器件时,对其关系进行了定义。
以如下约束为例:该约束告知工具,数据将在 clk20 脉冲上升沿之前 2 纳秒建立在 PAD 上,并在到达后 16 纳秒内保持有效。
该约束只对那些进入由 clk20 或其衍生(衍生约束)提供时钟的寄存器的 PAD 有效。
OFFSET 要求在 clk20 上有一个PERIOD 约束,这样才能理解时钟结构。
如下这样也可接受:不过,该约束不会检查保持时间,因不清楚数据何时会从 FPGA 的引脚结束。
若数据在时钟脉冲边沿 2 纳秒之后才建立,则使用如下方案:OFFSET_IN 适用于进入器件的时钟与数据之间的关系,另一种常见的OFFSET_OUT 约束定义时钟在 FPGA 输入处发生跳变后数据离开器件所需的时间。
以下为常见的 OFFSET_OUT 用法:该约束告知工具,需确保输入时钟在 FPGA 输入跳变后 3 纳秒时长后,数据出现在 FPGA 的输出引脚上。
该约束仅应用于由 clk20 或其衍生(衍生约束)提供时钟的寄存器驱动的 PAD。
OFFSET 要求在 clk20 上有 PERIOD 约束,这样才能理解时钟结构。
保持时间不受 OFFSET_OUT 的约束。
若需要数据在时钟脉冲边沿前 2 纳秒到达FPGA 输出,则使用:分组与分组名称时间分组是用来识别对于同步元件间的路径集或连线集的约束的一种方式。
向时序分组添加组件,应使用 TNM、TNM_NET 或 TIMEGRP。
通过定义分组并给定分组之间的时序要求,可对路径进行约束。
部分约束不需要时序分组,如 NET MAXDELAY。
这一最大延迟 (MAXDELAY) 属性定义了一条连线上允许的最大延迟。
时序名称向用户定义的分组添加组件,可这样处理:在此,“TNM”为保留字,用于定义时序分组的名称。
在这种情况下,object_name 为带分组元件或信号的名称,predefined_group 为可选关键词,标示符可以是字母、数字和下划线的任意组合。
不能使用诸如 FFS、LATCHES 或RAMS 这样的保留字。
该变量对大小写敏感。
(TNM=abc 不等于TNM=ABC)。