ise时序约束
- 格式:doc
- 大小:415.00 KB
- 文档页数:4
ISE时序约束笔记ISE时序约束笔记1——Global Timing Constraints时序约束和你的工程执行工具不会试图寻找达到最快速的布局&布线路径。
——取而代之的是,执行工具会努力达到你所期望的性能要求。
性能要求和时序约束相关——时许约束通过将逻辑元件放置的更近一些以缩短布线资源从而改善设计性能。
没有时序约束的例子该工程没有时序约束和管脚分配——注意它的管脚和放置——该设计的系统时钟频率能够跑到50M时序约束的例子和上面是相同的一个设计,但是加入了3个全局时序约束。
——它最高能跑到60M的系统时钟频率——注意它大部分的逻辑的布局更靠近器件边沿其相应管脚的位置更多关于时序约束时序约束应该用于界定设计的性能目标1.太紧的约束将会延长编译时间2.不现实的约束可能导致执行工具罢工3.查看综合报告或者映射后静态时序报告以决定你的约束是否现实执行后,查看布局布线后静态时序报告以决定是否你的性能要求达到了——如果约束要求没有达到,查看时序报告寻找原因。
路径终点有两种类型的路径终点:1.I/O pads2.同步单元(触发器,锁存器,RAMs)时序约束的两个步骤:1.路径终点生产groups(顾名思义就是进行分组)2.指点不同groups之间的时序要求全局约束使用默认的路径终点groups——即所有的触发器、I/O pads等ISE时序约束笔记2——Global Timing Constraints问题思考单一的全局约束可以覆盖多延时路径如果箭头是待约束路径,那么什么是路径终点呢?所有的寄存器是否有一些共同点呢?问题解答什么是路径终点呢?——FLOP1,FLOP2,FLOP3,FLOP4,FLOP5。
所有的寄存器是否有一些共同点呢?——它们共享一个时钟信号,约束这个网络的时序可以同时覆盖约束这些相关寄存器间的延时路径。
周期约束周期约束覆盖由参考网络钟控的的同步单元之间的路径延时。
周期约束不覆盖的路径有:input pads到output pads之间的路径(纯组合逻辑路径),input pads到同步单元之间的路径,同步单元到output pads之间的路径。
ISE时序约束笔记6——Timing Groups and OFFSET Constraints
回顾全局OFFSET约束
在时钟行中用法Pad-to-Setup和Clock-to-Pad列为全部出于该时钟域的I/O路径指定OFFSETs。
为大多数I/O路径举行约束的最容易办法——然而,这将会导致一个过约束的设计。
指定管脚的OFFSET约束
用法Pad-to-Setup和Clock-to-Pad列为每个I/O路径指定OFFSETs。
这种约束办法适用于惟独少数管脚需要不同的时序约束。
更常用的办法是:
1. 为Pads生成Groups
2. 对生成的指定Groups举行OFFSET IN/OUT约束
双沿时钟的OFFSET约束OFFSET约束指明白管脚的输入数据和初始时钟之间的关系。
初始时钟沿在周期约束定义中浮现关键词“高”和“低”。
——高:初始时钟升高沿(默认),即升高沿锁存数据
——低:初始时钟下降沿
假如全部的I/O都由时钟的一个沿控制,那么你可以用法这个关键字高或低举行周期约束。
假如两个沿都用到,你就必需举行两个OFFSET的约束。
——每个OFFSET对应一个时钟沿
——DDR寄存器也是这样用法的一个例子
双沿时钟的OFFSET IN约束
输入数据在升高沿或者下降沿之前3ns有效——周期约束为10ns,初
第1页共3页。
引言:概述:ISE软件是由Xilinx公司开发的一款集成电路设计工具,使用该软件可以进行数字电路设计、仿真、验证以及实现等多个阶段的工作。
在设计阶段,ISE软件提供了丰富的组件库和设计工具,方便用户进行电路原理图的绘制和逻辑设计。
在验证阶段,ISE软件可以进行功能仿真和时序仿真,以确保设计的正确性和稳定性。
在实现阶段,ISE软件提供了先进的布局与布线工具,能够将设计转化为实际的电路板。
正文内容:1.安装与启动1.1ISE软件安装包1.2安装ISE软件1.3启动ISE软件2.项目管理2.1创建新项目2.2导入已有项目2.3添加设计文件2.4设定项目属性2.5保存和备份项目3.设计流程3.1电路原理图设计3.1.1组件选择3.1.2连接元件3.1.3设置元件属性3.2逻辑设计3.2.1设计约束3.2.2逻辑优化3.2.3时序约束3.3约束文件编辑3.3.1约束规则3.3.2约束语法3.3.3约束检查3.4时序仿真3.4.1创建仿真波形3.4.2设定初始状态3.4.3运行仿真3.5功能仿真3.5.1设置输入信号3.5.2运行仿真3.5.3分析仿真结果4.仿真与验证4.1时序分析4.1.1设定时钟4.1.2时序路径分析4.1.3时序优化4.2时序约束验证4.2.1满足约束4.2.2修复时序错误4.3灵敏度分析4.3.1设定输入敏感性4.3.2分析敏感性4.4逻辑分析4.4.1切换敏感性4.4.2分析逻辑状态5.布局与布线5.1物理约束5.1.1面积约束5.1.2信号完整性约束5.1.3电源与接地约束5.2布局5.2.1网表导入5.2.2管理物理资源5.2.3进行布局布线5.3时序优化5.3.1满足时序约束5.3.2缩短信号传输路径5.3.3优化时钟分配5.4布线5.4.1管理布线资源5.4.2进行布线5.4.3路由与优化5.5设计规约检查5.5.1检查布局布线规约5.5.2修复设计规约错误总结:引言概述:ISE软件是一款功能强大的集成开发环境工具,广泛应用于数字电路设计和实现。
按:早就想研究一下fpga约束设置,现在总算有时间静下心来看看了1.约束文件的概念FPGA设计中的约束文件有3类:用户设计文件(.UCF文件)、网表约束文件(.NCF 文件)以及物理约束文件(.PCF文件),可以完成时序约束、管脚约束以及区域约束。
3类约束文件的关系为:用户在设计输入阶段编写UCF文件,然后UCF 文件和设计综合后生成NCF文件,最后再经过实现后生成PCF 文件。
本节主要介绍UCF文件的使用方法。
UCF文件是ASC 2码文件,描述了逻辑设计的约束,可以用文本编辑器和Xilinx 约束文件编辑器进行编辑。
NCF约束文件的语法和UCF文件相同,二者的区别在于: UCF文件由用户输入,NCF文件由综合工具自动生成,当二者发生冲突时,以UCF文件为准,这是因为UCF的优先级最高。
PCF文件可以分为两个部分:一部分是映射产生的物理约束,另一部分是用户输入的约束,同样用户约束输入的优先级最高。
一般情况下,用户约束都应在UCF文件中完成,不建议直接修改 NCF 文件和PCF文件。
2.创建约束文件约束文件的后缀是.ucf,所以一般也被称为UCF文件。
创建约束文件有两种方法,一种是通过新建方式,另一种则是利用过程管理器来完成。
第一种方法:新建一个源文件,在代码类型中选取“Implem entation Constrains File”,在“File Name”中输入“one2two_ucf”。
单击“Next”按键进入模块选择对话框,选择模块“one2two”,然后单击“Next”进入下一页,再单击“Finish”按键完成约束文件的创建。
第二种方法:在工程管理区中,将“Source for”设置为“Synthesis/Implementation”。
“Constrains Editor”是一个专用的约束文件编辑器,双击过程管理区中“User Constrains”下的“Create T iming Constrains”就可以打开“Constrains Editor”,其界面如图所示:图启动Constrains Editor引脚约束编辑在“Ports”选项卡中可以看到,所有的端口都已经罗列出来了,如果要修改端口和FPGA管脚的对应关系,只需要在每个端口的“Location”列中填入管脚的编号即可。
时序约束的两个步骤:1.路径终点生产groups(顾名思义就是进行分组)2.指点不同groups之间的时序要求全局约束使用默认的路径终点groups——即所有的触发器、I/O pads等ISE时序约束笔记2——Global Timing Constraints问题思考单一的全局约束可以覆盖多延时路径如果箭头是待约束路径,那么什么是路径终点呢?所有的寄存器是否有一些共同点呢?问题解答什么是路径终点呢?——FLOP1,FLOP2,FLOP3,FLOP4,FLOP5。
所有的寄存器是否有一些共同点呢?——它们共享一个时钟信号,约束这个网络的时序可以同时覆盖约束这些相关寄存器间的延时路径。
周期约束周期约束覆盖由参考网络钟控的的同步单元之间的路径延时。
周期约束不覆盖的路径有:input pads到output pads之间的路径(纯组合逻辑路径),input pads到同步单元之间的路径,同步单元到output pads之间的路径。
周期约束特性周期约束使用最准确的时序信息,使其能够自动的计算:1.源寄存器和目的寄存器之间的时钟偏斜(Clock Skew)2.负沿钟控的同步单元3.不等同占空比的时钟4.时钟的输入抖动(jitter)假设:1.CLK信号占空比为50%2.周期约束为10ns3.由于FF2将在CLK的下降沿触发,两个触发器之间的路径实际上将被约束为10ns的50%即5ns时钟输入抖动(Clock Input Jitter)时钟输入抖动是源时钟的不确定性(clock uncertainty)之一时钟的不确定时间必须从以下路径扣除:——周期约束建立时间路径——OFFSET IN约束的建立时间路径时钟的不确定时间必须添加到以下路径中:——周期约束保持时间路径——OFFSET IN约束保持时间路径——OFFSET OUT约束路径Pad-to-Pad约束——不包含任何同步单元的纯组合逻辑电路——纯组合逻辑延时路径开始并结束于I/O pads,所以通常会被我们遗漏而未约束ISE时序约束笔记3——Global Timing Constraints问题思考哪些路径是由CLK1进行周期约束?哪些路径是由pad-to-pad进行约束?OFFSET约束OFFSET约束覆盖以下路径:——从input pads到同步单元(OFFSET IN)——从同步单元到output pads(OFFSET OUT)OFFSET约束特性OFFSET约束自动计算时钟分布延时1.提供最准确的时序信息2.大量增加输入信号到达同步单元的时间(时钟和数据路径并行)3.大量减少输出信号到达输出管脚的时间(时钟和数据路径先后)OFFSET约束也可以解释时钟输入抖动——使用抖动确定关联的周期约束时钟延时数据路径延时和时钟分布延时都需要在OFFSET计算中使用到——OFFSET IN = T_data_in –T_clk_in——OFFSET OUT = T_data_out + T_clk_outISE时序约束笔记4——Global Timing Constraints问题思考在这个电路中哪些路径是由OFFSET IN 和OFFSET OUT来约束的?问题解答:——OFFSET IN:PADA to FLOP and PADB to RAM——OFFSET OUT:LATCH to OUT1, LATCH to OUT2, and RAM to OU T1问题思考下面给出的系统框图里,你将给出什么样的约束值以使系统能够跑到100M Hz?——假设在下面的器件之间没有时钟偏斜问题解答:PERIOD = 10 ns , OFFSET IN (BEFORE) = 7 ns and OFFSET OUT (AF TER) = 8 ns小结1.性能期望和时序约束相关联2.周期约束覆盖同步单元之间的延时路径3.OFFSET约束覆盖从输入管脚到同步单元和从同步单元到输出管脚之间的延时路径ISE时序约束笔记5——Timing Groups and OFFSET C onstraints特定路径时序约束使用全局时序约束(PERIOD,OFFSET,PAD-TO-PDA)将约束整个设计仅仅使用全局约束通常会导致过约束——约束过紧——编译时间延长并且可能阻止实现时序目标——通过综合工具或者映射后时序报告重新审视性能评估特定路径约束能够覆盖全局时序约束在特定路径上的约束——这就允许设计者放宽特定路径的时序要求更多关于特定路径约束你的设计器件的内部面积将会从特定路径约束收益1.多周期路径Multi-cycle paths2.跨时钟域路径3.双向总线4.I/O时序特定路径约束应该由你的性能目标来界定,不能够不加限制的随意放置全局约束回顾使用全局PERIOD,OFFSET IN和OFFSET OUT约束将约束所有以下的路径这使得控制设计的总体性能更加容易特定路径约束实例一条特定路径约束对于路径本身的优化微乎其微这有助于你更好的控制设计性能,并带给执行工具更大的灵活性以达到你的性能和使用要求生成特定路径约束需要两个步骤:1.多个有共同时序要求的特定路径终点生成一个groups2.关联两个groups,指定它们的特定路径的时序要求生成终点路径的Groups特定路径时序约束在终点路径较好的分组后会更加高效——否则,约束一个大的工程将极其耗时耗力。
ISE时序约束笔记7——Path
时钟升高沿和下降沿之间的时序约束
周期约束可以自动计算两个沿的的约束——包括调节非50%占空比的时钟。
例:一个CLK时钟周期约束为10ns,能够应用5ns的约束到两个寄存器之间。
不需要特定路径应用到这个例子中。
相关时钟域的约束
为一个时钟举行周期约束——以这个周期约束确定相关的时钟。
执行工具将按照它们的关系来打算如何处理跨时钟域。
DCM有多个输出:——确定DCM输入时钟的周期约束
——执行工具将会从这个周期约束推导出其输出的约束
——全部的约束将会和原始的周期约束相关
不相关时钟域的约束
在这个例子中,周期约束不笼罩处处于两个时钟域之间的任何延时路径。
——这是默认的处理方式。
你必需添加一个约束笼罩到相关时钟域之间的路径中。
——例如,频率相同,但是CLK_B有一些相位偏移。
在两个不相关的时钟域你就必需添加一些同步。
约束两个时钟域之间的路径。
——用法Groups by NETs选项为CLK_A和CLK_B定义groups,假如
第1页共4页。
ISE时序约束笔记1——Global Timing Constraints时序约束和你的工程执行工具不会试图寻找达到最快速的布局&布线路径。
——取而代之的是,执行工具会努力达到你所期望的性能要求。
性能要求和时序约束相关——时许约束通过将逻辑元件放置的更近一些以缩短布线资源从而改善设计性能。
没有时序约束的例子该工程没有时序约束和管脚分配——注意它的管脚和放置——该设计的系统时钟频率能够跑到50M时序约束的例子和上面是相同的一个设计,但是加入了3个全局时序约束。
——它最高能跑到60M的系统时钟频率——注意它大部分的逻辑的布局更靠近器件边沿其相应管脚的位置更多关于时序约束时序约束应该用于界定设计的性能目标1.太紧的约束将会延长编译时间2.不现实的约束可能导致执行工具罢工3.查看综合报告或者映射后静态时序报告以决定你的约束是否现实执行后,查看布局布线后静态时序报告以决定是否你的性能要求达到了——如果约束要求没有达到,查看时序报告寻找原因。
路径终点有两种类型的路径终点:1.I/O pads2.同步单元(触发器,锁存器,RAMs)时序约束的两个步骤:1.路径终点生产groups(顾名思义就是进行分组)2.指点不同groups之间的时序要求全局约束使用默认的路径终点groups——即所有的触发器、I/O pads等ISE时序约束笔记2——Global Timing Constraints问题思考单一的全局约束可以覆盖多延时路径如果箭头是待约束路径,那么什么是路径终点呢?所有的寄存器是否有一些共同点呢?问题解答什么是路径终点呢?——FLOP1,FLOP2,FLOP3,FLOP4,FLOP5。
所有的寄存器是否有一些共同点呢?——它们共享一个时钟信号,约束这个网络的时序可以同时覆盖约束这些相关寄存器间的延时路径。
周期约束周期约束覆盖由参考网络钟控的的同步单元之间的路径延时。
周期约束不覆盖的路径有:input pads到output pads之间的路径(纯组合逻辑路径),input pads到同步单元之间的路径,同步单元到output pads之间的路径。
FPGA开发全攻略——时序约束一般来讲,添加约束的原则为先附加全局约束,再补充局部约束,而且局部约束比较宽松。
其目的是在可能的地方尽量放松约束,提高布线成功概率,减少ISE 布局布线时间。
典型的全局约束包括周期约束和偏移约束。
在添加全局时序约束时,需要根据时钟频率划分不同的时钟域,添加各自的周期约束;然后对输入输出端口信号添加偏移约束,对片内逻辑添加附加约束。
1.周期约束周期约束是附加在时钟网路上的基本时序约束,以保证时钟区域内所有同步组件的时序满足要求。
在分析时序时,周期约束能自动处理寄存器时钟端的反相问题,如果相邻的同步元件时钟相位相反,则其延迟会被自动限制为周期约束值的一半,这其实相当于降低了时钟周期约束的数值,所以在实际中一般不要同时使用时钟信号的上升沿和下降沿。
硬件设计电路所能工作的最高频率取决于芯片内部元件本身固有的建立保持时间,以及同步元件之间的逻辑和布线延迟。
所以电路最高频率由代码和芯片两部分共同决定,相同的程序,在速度等级高的芯片上能达到更高的最高工作频率;同样,在同一芯片内,经过速度优化的代码具有更高的工作频率,在实际中往往取二者的平衡。
在添加时钟周期之前,需要对电路的期望时钟周期有一个合理的估计,这样才不会附加过松或过紧的周期约束,过松的约束不能达到性能要求,过紧的约束会增加布局布线的难度,实现的结果也不一定理想。
常用的工程策略是:附加的时钟周期约束的时长为期望值的90%,即约束的最高频率是实际工作频率的110% 左右。
附加时钟周期约束的方法有两个:一是简易方法,二是推荐方法。
简易方式是直接将周期约束附加到寄存器时钟网线上,其语法如下所示:[ 约束信号] PERIOD = { 周期长度} {HIGH | LOW} [ 脉冲持续时间];其中,[] 内的内容为可选项,{} 中的内容为必选项,“|”表示选择项。
[ 约束信号] 可为“Net net_name”或“TIMEGRP group_name”,前者表示周期约束作用到线网所驱动的同步元件上,后者表示约束到TIMEGRP所定义的信号分组上( 如触发器、锁存器以及RAM 等)。
ISE的使用说明ISE(Integrated Software Environment)是一种集成软件环境,用于设计和验证硬件开发项目。
它由Xilinx公司开发,旨在为FPGA(Field-Programmable Gate Array)和SoC(System-on-a-Chip)设计提供完整的解决方案。
ISE具有多种功能和工具,可以帮助工程师在整个开发过程中完成各种任务。
ISE的安装:ISE的主要功能:ISE为硬件设计和验证提供了全面的解决方案。
以下是ISE的主要功能:2.综合和优化:ISE包含了综合和优化工具,将HDL代码转换为布尔函数表示。
综合工具会分析代码并生成等效的硬件电路电路。
优化工具会尝试将电路改进为更有效的形式,以提高性能和减少资源消耗。
3.约束和分析:在设计过程中,您通常需要对硬件进行约束,以满足特定的要求。
ISE提供了工具来定义时序约束、电气约束和物理约束,并分析设计是否满足这些约束。
4.实现和布局:一旦设计和优化完成,ISE将使用实现和布局工具将电路映射到目标FPGA或SoC中。
这些工具将选择适当的逻辑资源,并将其布局在特定的芯片区域,以最大程度地提高性能和效率。
5.仿真和调试:在设计过程中,您需要对硬件进行仿真和调试,以验证其正确性和性能。
ISE提供了仿真工具,可以对设计进行功能仿真、时序仿真和混合信号仿真。
它还提供了调试功能,可帮助您定位和解决问题。
以下是使用ISE的一般步骤:1.创建新工程:在ISE中,您需要先创建一个新的工程,用于存储和组织设计文件。
可以在ISE中创建一个新的工程,并选择适当的目标设备。
2. 添加设计文件:一旦工程创建完成,您可以添加设计文件到工程中。
通过右键单击工程文件夹,并选择“Add Source”来添加设计文件。
选择适当的文件类型,并在文件对话框中选择要添加的文件。
3. 设置约束:在设计过程中,您需要为硬件设计设置约束,以满足特定的要求。
通过右键单击工程文件夹,并选择“Add Constraints”来添加约束文件。
Timing Groups and OFFSET ConstraintsObjectivesAfter completing this module, you will be able to:•Use the Constraints Editor to create groups of path endpoints •Use the Constraints Editor to create path-specific OFFSET constraintsOutline•Introduction •Creating Groups •OFFSET Constraints •SummaryPath-Specific TimingConstraints•Using global timing constraints (PERIOD, OFFSET, and PAD-TO-PAD) will constrain your entire design•Using only global constraints often leads to over-constrained designs –Constraints are too tight–Increases compile time and can prevent timing objectives from being met–Review performance estimates provided by your synthesis tool or the Post-Map Static Timing Report•Path-specific constraints override the global constraints on specified paths –This allows you to loosen the timing requirements on specific pathsMore About Path-Specific Timing Constraints•Areas of your design that may benefit from path-specific constraints –Multi-cycle paths–Paths that cross between clock domains–Bidirectional buses–I/O timing•Path-specific timing constraints should be used to define your performance objectives and should not be indiscriminately placedGlobal Constraint Review•Using the global PERIOD, OFFSET IN, and OFFSET OUT constraints will constrain all of these paths•This makes it easy to control the overall performance of your designCDATAPath-Specific Constraint Example• A path-specific constraint can optimize as little as one path•This gives you greater control over your design’s performance and gives the implementation tools the greatest flexibility in meeting your performanceand utilization needsCDATAThe Advanced Tab of the Constraints Editor•Creating path-specificconstraints requires two steps–Step 1:Create groups of pathend points–Step 2:Communicate thetiming objective between thegroups•The constraints we discuss inConstraints EditorOutline •Introduction•Creating Groups •OFFSET Constraints •SummaryCreating Groups of Endpoints•Path-specific timing constraints will only be effective if path end points can be easily grouped together–Otherwise, constraining a large design would be time consuming and painstaking•The Constraints Editor makes this easy by allowing you to define groups of path end points (pads, flip-flops, latches, and RAMs)•Specific delay paths can then be constrained with advanced timing constraintsCreating Groups of Endpoints•With the Constraints Editor,grouping path end points ismade easy with the followingoptions:–Group by nets–Group by instance name–Group by hierarchy–Group by output net name–Timing THRU Points option–Group by clock edgeGrouping by Nets orOutput Net Name •Step 1: Enter a group name•search for–Optional filter string•Available list•Step 3: Select nets and click Add–Nets appear in the Time NameTargets listGrouping by Nets versusOutput Net Name•Grouping by net “NET_A”will create a group containing FLOP2 only –Group contains flip-flops that are driven by the selected net •Grouping by output new “NET_A”will create a group containing FLOP1only–Group contains the flip-flop that sources the selected net•Steps are the same•Design Element Types are different–Instance Name: FFs, pads, latches, RAMs–Hierarchy: User levels, Xilinx-created levelsGrouping by Instance Nameor Hierarchy••defined group–the group•Step 3: Select clock edgeGrouping by Clock EdgeTiming THRU Points•Allows you to optimize paths through specific nets and 3-state buffers•In this example, a group of nets was named TEOUTS. A constraint can now be referenced such that only the delay paths through the TEOUTS nets will be optimizedTiming THRU Points•Group nets or 3-state buffers •Use these groups to identifyspecific paths to be constrainedManaging Groups•Groups that you have defined are written into the UCF file–INST <element_name> TNM = <group_name>; OR–NET <net_name> TNM_NET = <group_name>; OR–TIMEGRP <group_name> = <elements>;•To add items to an existing group, click one of the grouping buttons and use the same Time Name–Not allowed when grouping by output net name•To delete a group, right-click on the line in the Constraints window and select Delete Constraint–Or delete the line with a text editor•You cannot remove items from a group with the Constraints Editor –Edit the UCF file with a text editorOutline•Introduction •Creating Groups•OFFSET constraints •SummaryReview of Global OFFSETConstraints•Use the Pad-to-Setup and Clock-to-Pad columns to specify OFFSETs for all I/O paths on each clock domain•Easiest way to constrain most I/O paths–However, this may lead to an over-constrained designPin-Specific OFFSETConstraints•Use the Pad-to-Setup and Clock-to-Pad columns to specify OFFSETs for each I/O pin•Use this type of constraint when only a few I/O pins need different timingCreating Groups of Pads •Groups of I/O pads can be made in the Ports tab–Use Shift-click or CTRL-click to select multiple pads–Enter a group name and click the Create Group button•Click the Pad to Setup or Clock to Pad button to define group OFFSETs –Or use the Advanced tabCreating Group OFFSETConstraints•OFFSET IN/OUTconstraints can also beentered in theAdvanced tab•The Pad-to-Setup andClock-to-Pad optionsallow you to enterOFFSET IN/OUTconstraints on specificgroups of padsGroup OFFSET Constraints•••Select a clock domain•Source SynchronousOFFSET Constraints•For source synchronous inputs, youcan specify the width of the validdata windowOFFSET Constraints withTwo-Phase Clocks•OFFSET constraints define the relationship between the data and the initial clock edge at the pins of the FPGA•Initial clock edge is defined in the global PERIOD constraint using the HIGH or LOW keyword–HIGH: Initial edge rising (default)–LOW: Initial edge falling•If all I/O are clocked on a single edge, use the HIGH/LOW keywords in the PERIOD constraint to define which edge is used•If both clock edges are used, create two OFFSET constraints –One for each clock edge–This includes cases where DDR flip-flops are usedOFFSET IN Using Both Clock Edges •Input data is valid 3 ns before rising and falling edge –PERIOD constraint is 10 ns, initial edge rising, 50-percent duty cycle •Create groups of flip-flops for each clock edge •For inputs clocked on a rising edge, OFFSET = IN 3 ns BEFORE clk;•For inputs clocked on a falling edge, OFFSET = IN –2 ns BEFORE clk;– 2 ns after initial (rising) edge = 3 ns before falling edgeclkOFFSET OUT Using Both Clock Edges•Output data must be valid 3 ns after rising and falling edge –PERIOD constraint is 10 ns, initial edge rising, 50-percent duty cycle •Create groups of flip-flops for each clock edge •For outputs clocked on a rising edge, OFFSET = OUT 3 ns AFTER clk;•For outputs clocked on a falling edge, OFFSET = OUT 8 ns AFTER clk;–8 ns after initial (rising) edge = 3 ns after falling edgeclkOutline•Introduction •Creating Groups •OFFSET Constraints•SummaryReview Questions•How do path-specific timing constraints improve your design’s performance?•How would you constrain this design to get an internal clock frequency of 100 MHz?•The input will be valid at least 3 ns before the rising edge of CLK. The output must be valid 4 ns after the falling edge of CLK. Write the appropriateOFFSET constraintsINCLKRESET_ARESET_BAnswers•How do path-specific timing constraints improve your design’s performance?–They give the implementation tools more flexibility to meet all of your timing objectives•How would you constrain this design to get a maximum internal clock frequency of 100 MHz?–Enter a global PERIOD constraint of 10 ns on the CLK signal•Write the appropriate OFFSET constraints.–Assuming that the PERIOD constraint uses the HIGH keyword and 50-percent duty cycle:•OFFSET = IN 3 ns BEFORE CLK;•OFFSET = OUT 9 ns AFTER CLK;Summary•Path-specific constraints are used to override global constraints –Keeps your design from becoming over-constrained–Allows the software to make intelligent trade-offs to meet all of your performance goals•Creating path-specific constraints is a two-step process–Create groups of path endpoints–Communicate the timing objective between the groups•Path-specific OFFSET constraints can be entered on either the Ports tab or the Advanced tab•When using both clock edges for I/O, write separate OFFSET constraints for each clock edgeWhere Can I Learn More?•Timing Presentation on the Web: →Tech Tips →Timing & Constraints•Constraints Guide: →Software Documentation –Documentation may also be installed on your local machine。
ISE工具时序约束主要约束主要包括周期约束,pad to pad 约束和偏移约束:
(1)周期约束的计算如下图所示:
(2)pad to pad 约束是存粹的组合逻辑约束;
(3)偏移约束主要包括输入偏移和输出偏移,规定了外部时钟和数据与输入输出管脚之间的时序关系,不是用来约束内部逻辑的;
(转)FPGA时序分析,时序约束知识
时序约束目的:一、提高设计的工作频率二、获得正确的时序分析报告(STA:静态时序分析)
常用的时序概念:周期,最大时钟频率、时钟建立时间、时钟保持时间、时钟到输出延时、管脚到管脚延时、Slack和时钟偏斜(Skew).
周期:如图1是周期示意图,当计算出Tperiod,那么当然fm ax=1/Tperiod,fm ax是显示设计最重要的性能指标之一。
时钟建立时间:如图3所示是时钟建立时间的计算方法
时钟保持时间:同样利用图3的模型计算Th=clkdelay-datadelay+Microhold
注意:前两个公式中提到的Microsetup 和Microhold一般均是一个小于1ns的常量。
时钟输出延迟:他是指在时钟有效到数据有效的最大时钟间隔如图4所示
Tco=clkdelay+datadelay+Microco
slack:表示设计是否满足时序的一个称谓:正的slack表示满足时序,负的slack表示不满足时序。
保持时间slac k是一个重要的概念,引起不满足的主要原因是时钟偏斜大于数据路径的偏斜。
Quartus2时序分析工具和优化向导:
常用的三种时序约束设置方法:1 通过Assignment/timing settings 2 Assignment/timing wiard
tool 3 Assignment/Assignment editor选择在图形界面下完成对设计的时序约束。
一般情况下前两种是做全局的时序约束,后一种是做局部的时序约束,另外还可以通过修改.qsf文件来实现。
时序约束思想:时序约束一般都是先全局后个别,如果冲突则个别的优先级更高。
一、将编绎器设置为时序驱动编绎,即是指让编绎过程尽量向着满足时序约束方向努力!assignment/settings/fitter setting.
二、全局时钟设置如果在设计中只有一个全局时钟,或者所有的时钟同频,可以在Quartus2中只设置一个全局时钟约束。
Assignment/timing settings 三、时序向导在用记对时序约束设置不熟悉的情况下,可以选择使用向导。
Assignment/classic timing analyser wizards.
四、可以设置独立时钟与衍生时钟,衍生时钟是由独立时钟变化而来的,他是由独立时钟分频,倍频,移相等变化而来的,可以在设置中确定二者的关系Assignment/settings/timing analyse setting/classic timing analyse setting/individual clock。
五、通过assignment editor 设置个别时钟约束
Tperiod的计算公式
逻辑延时与互连延时
时钟建立时间计算
时钟到输出计算方法。