在ISE下分析和约束时序
ise设计分析
![ise设计分析](https://img.taocdn.com/s3/m/2068fb80e53a580216fcfe72.png)
AES电路设计与分析本次的目的在于熟悉ISE中对静态时序的分析,以及如何对设计进行检错以及修改优化。
本次所要进行优化分析的代码是关于AES密码,本次使用的分析软件为ISE9.1.本次所要实现在过程如下:1.建一个关于AES的工程,输入AES代码后使用ISE9.1进行综合。
2.进行管脚约束。
3.进行面积约束。
4.分析综合报告,对静态时序进行分析。
5.根据综合报告观察时钟是否能够满足要求。
6.如果不满足要求不断的进行修改,直到能满足时序要求为止。
7.最后进行一定的优化。
分析方法与步骤如下:1.打开ISE9.1新建一个工程,并添加源代码,本次使用的设计参数为xc4vfx140-11ff1517。
选择user constraints-assign package pins进行管脚约束。
进入xilinx pace界面以后选择package view,将管脚拉到package view 窗口中的空格子中,注意时钟必须放在正确的位置上,可以选择view-toolbars-legend在出现的窗口中有对各种类型的格子的说明。
设置完管脚后点击保存。
关闭窗口。
2.首先进行synthesize-XST分析,而在此分析中也可以对优化目标进行一些设置,选中synthesize-XST选项,右击选择属性(properties),得到的窗口如图1所示,其中的Global Optimization Goal选项指的是优化的目标,可以在此进行一定的设置,如图所示所有的时钟线,优化逻辑最大延迟,建立时间,保持时间等;图1双击synthesize-XST下的View synthesis Report,以下是其部分报告及分析:Timing Summary:---------------Speed Grade: -11Minimum period: 1.901ns (Maximum Frequency: 525.984MHz)Minimum input arrival time before clock: 3.180nsMaximum output required time after clock: 4.221nsMaximum combinational path delay: No path found分析:这里的第一项Minimum period指的是最小的逻辑延迟第二项Minimum input arrival time before clock指的是数据必须在时钟上升延到来之前的3.180ns把数据准备好,相当于建立时间。
ISE软件使用说明(两篇)
![ISE软件使用说明(两篇)](https://img.taocdn.com/s3/m/305510b705a1b0717fd5360cba1aa81145318f52.png)
引言:概述: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软件是一款功能强大的集成开发环境工具,广泛应用于数字电路设计和实现。
第六章-约束设计与时序分析
![第六章-约束设计与时序分析](https://img.taocdn.com/s3/m/8c1db275a26925c52cc5bfae.png)
第六章 约束设计与时序分析§6.1 概述对于一些普通的、低速的逻辑设计来说,在经过了ISE 6设计工具的综合、优化处理之后,不用再进行时序方面的任何分析和处理基本上就可达到和满足设计要求。
然而对于高速、高性能、高密度以及多时钟信号控制的逻辑设计,仅靠ISE 6的优化处理是远远不够的,而需要对设计进行时序方面的控制和处理并进行严格的时序分析,以判定所完成的设计是否达到我们的设计要求。
通常,在进行这些设计时,对时序问题作出判断和处理的越早越好。
Xilinx针对这些高端的逻辑设计,在ISE6设计工具提供了功能完善和强大的时序分析器(Timing Analyzer),其详细的时序报告功能方便确定高速信号的路径。
通过该工具,设计者可对设计中的时序冲突以及时序约束等进行细致的检查,找到设计中的时序瓶颈,然后通过一些特定的处理方法对时序进行调整。
这些设计和分析方式我们称为时序收敛(迭代)。
ISE6设计工具所提供的主动时序收敛(ProActive Timing Closure)技术,保证了FPGA器件的高速设计能力,从而降低总体设计成本以及整个设计流程所花费的时间。
作为构成时序收敛技术的一部分,ISE 6工具中新的时序约束(Timing Constraints)提供了可编程逻辑设计中最全面的时序约束语言。
这些都进一步简化了高速设计和分析。
通常,对于复杂的设计,需要进行反复的时序分析和约束设计,即多次迭代,以满足设计的要求。
Xilinx推荐的设计流程如图6-1所示。
图6-1 完整的Xilinx 逻辑设计和时序收敛流程约束设计条件可以在设计文件中直接设置,也可以通过用户约束文件UCF (User Constraint File)、网表约束文件NCF (Netlist Constraint File)、物理约束文件PCF(Physical Constraints File)等形式进行设置。
在Xilinx的CPLD/FPGA设计中,约束条件主要包括:⑴ CPLD约束(CPLD Fitter)--CPLD约束用于指定CPLD设计中的各类约束参数。
XilinxISE下的静态时序分析与时序优化
![XilinxISE下的静态时序分析与时序优化](https://img.taocdn.com/s3/m/c55e41233868011ca300a6c30c2259010202f3d1.png)
XilinxISE下的静态时序分析与时序优化单击Design Summary中的Static Timing就可以启动时序分析器(Timing Analyzer)。
在综合、布局布线阶段ISE就会估算时延,给出⼤概的时延和所能达到的最⼤时钟频率,经过PAR后,在Static Timing中给出的是准确的时延,给出的时序报告可以帮助我们找到关键路径,然后针对其进⾏优化,提⾼系统的时钟频率。
这⾥的Minimum period指的是最⼩的逻辑延迟;造成时序性能差的原因很多,主要缘由以下⼏种:1. 布局太差⼀般和代码本⾝没有关系。
解决⽅案:只能从软件⾃⾝的布局算法考虑(调整布局的努⼒程度)或者使⽤⾼端芯⽚2. 逻辑级数太多逻辑级数越多,资源的利⽤率越⾼,但是对⼯作频率的影响也越⼤。
解决⽅案:1.使⽤流⽔线技术;2.如果是多周期路径,添加多周期约束;3.良好的编码习惯,不要过多嵌套if-else,尽量使⽤case代替if语句。
3. 信号扇出过⾼⾼扇出会造成信号传输路径过长,从⽽降低时序性能。
解决⽅案:1.逻辑复制;2.区域约束,想过逻辑放置在⼀起。
4. 不要同时使⽤双边沿触发FPGA的底层⼯艺都是单向的同步电路,所以本⾝不⽀持统⼀信号的双边沿触发,ISE在实际处理的时候,会⾃动将该信号2倍频,然后利⽤第⼀个沿处理上升沿,第⼆个沿处理下降沿。
这样在分析时序时,⾃动把约束升级为ucf⽂件中的两倍。
5. Xilinx最优时序解决⽅案1.I/O约束 根据Xilinx器件的特点,控制信号置于器件的顶部或底部,且垂直布置;数据总线的I/O置于器件的左右两侧,且⽔平布置,这样可以最⼤程度的利⽤芯⽚底层结构。
2.ISE实现⼯具 ISE中的⼯具具备不同的努⼒程度,直接使⽤最⾼级别的可以提⾼时序性能,但是会耗费很多时间,所以应该逐步调整努⼒程度。
第⼀遍使⽤默认的参数选项,如果不满⾜再调整综合、映射、布局布线的参数。
时序优化的若⼲策略优化⽅向⼀:合理使⽤Blcok RAM和Distributed RAM1. 均衡Block RAM和Distributed RAM的使⽤。
ISE软件使用说明
![ISE软件使用说明](https://img.taocdn.com/s3/m/8932a71d3a3567ec102de2bd960590c69ec3d8e8.png)
ISE软件使用说明ISE(Integrated Software Environment)软件是由赛灵思公司(Xilinx Inc.)开发的一款用于设计和开发数字电路的软件工具。
该软件提供了一个集成的环境,用于设计、模拟和验证数字电路。
本文将介绍ISE软件的安装和基本使用方法,以帮助用户快速上手。
一、安装ISE软件2.根据安装程序的提示,选择安装的目标文件夹和所需的组件。
3.等待安装程序完成安装。
二、打开ISE软件打开ISE软件后,会出现一个欢迎界面,用户可以选择新建项目、打开已有项目或者直接进入ISE工具链。
三、创建新项目1. 点击“New Project”按钮,进入新项目设置页面。
2.输入项目的名称和路径,选择项目类型和芯片系列。
3. 点击“Next”按钮,进入项目配置页面。
4.在此页面中,用户可以添加需要使用的源文件、约束文件和IP核等。
5. 点击“Next”按钮,进入总结页面。
6. 点击“Finish”按钮,完成项目创建。
四、设计源文件在ISE软件中,用户可以使用HDL(硬件描述语言)进行设计源文件的编写。
ISE软件支持的HDL语言有VHDL和Verilog。
1. 在项目视图中,右键点击“Source”文件夹,选择“New Source”。
2.在弹出的对话框中,选择源文件类型和语言。
3. 输入文件的名称和路径,点击“Finish”按钮。
五、添加约束文件约束文件用于定义电路的时序、引脚映射等信息,以确保电路的正常工作。
1. 在项目视图中,右键点击“Constraints”文件夹,选择“New Source”。
2.在弹出的对话框中,选择约束文件类型。
3. 输入文件的名称和路径,点击“Finish”按钮。
六、综合与实现在进行综合和实现之前,需要根据设计需求进行一些设置和配置。
1. 在项目视图中,右键点击项目名称,选择“Properties”。
2.在弹出的对话框中,选择“SYNTHESIS”或“IMPLEMENTATION”选项卡。
ISE的使用说明
![ISE的使用说明](https://img.taocdn.com/s3/m/67f4800ff6ec4afe04a1b0717fd5360cba1a8d25.png)
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”来添加约束文件。
ISE时序约束总结2
![ISE时序约束总结2](https://img.taocdn.com/s3/m/99ddef09763231126edb1110.png)
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时钟约束写法
![ise时钟约束写法](https://img.taocdn.com/s3/m/8042ed6c59fb770bf78a6529647d27284b733705.png)
ise时钟约束写法
ISE (Integrated Software Environment) 是Xilinx公司的一款集成开发环境软件,用于FPGA设计。
在ISE中,时钟约束是指对时钟信号进行约束,以确保设计在时序上能够正确工作。
时钟约束的写法包括以下几个方面:
1. 周期约束,时钟的周期约束是指规定时钟信号的周期,以确保设计能够在指定的时钟周期内完成操作。
在ISE中,可以使用语法类似于“create_clock -period 10 [get_ports clk]”来指定时钟信号的周期为10个时钟周期。
2. 约束时钟延迟,除了周期约束外,还可以对时钟信号的延迟进行约束。
这可以通过语法类似于“set_clock_latency -max 2 [get_clocks clk]”来实现,其中“-max 2”表示最大延迟为2个时钟周期。
3. 时钟分配约束,在设计中可能存在多个时钟域,需要对时钟进行分配约束,以确保时序正确。
可以使用语法类似于
“create_clock -period 10 -name clk [get_ports clk]”来为特定时钟信号分配时钟域。
4. 时钟域约束,除了时钟分配约束外,还可以对时钟域进行约束,以确保时序正确。
可以使用语法类似于“derive_clocks -period 10 [get_pins {/clk}]”来为时钟域添加约束。
总之,在ISE中,时钟约束的写法需要遵循特定的语法规则,并且需要根据设计的实际情况进行合理的约束设置,以确保设计在时序上能够正确工作。
希望以上信息能够帮助你更好地理解时钟约束的写法。
ISE 约束文件的基本操作
![ISE 约束文件的基本操作](https://img.taocdn.com/s3/m/de2e97610b1c59eef8c7b403.png)
ISE 约束文件的基本操作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文件。
创建约束文件有两种方法,一种是通过新建方式,另一种则是利用过程管理器来完成。
第一种方法:新建一个源文件,在代码类型中选取“Implementation Constrains File”,在“File Name”中输入“one2two_ucf”。
单击“Next”按键进入模块选择对话框,选择模块“one2two”,然后单击“Next”进入下一页,再单击“Finish”按键完成约束文件的创建。
第二种方法:在工程管理区中,将“Source for”设置为“Synthesis/Implementation”。
“Constrains Editor”是一个专用的约束文件编辑器,双击过程管理区中“User Constrains”下的“Create Timing Constrains”就可以打开“Constrains Editor”,其界面如图所示:图启动Constrains Editor引脚约束编辑在“Ports”选项卡中可以看到,所有的端口都已经罗列出来了,如果要修改端口和FPGA管脚的对应关系,只需要在每个端口的“Location”列中填入管脚的编号即可。
ISE的使用说明
![ISE的使用说明](https://img.taocdn.com/s3/m/bcba7d420640be1e650e52ea551810a6f524c8ad.png)
ISE的使用说明ISE是集成电路设计中常用的一种工具,是一种综合软件环境,它用于设计目的,例如创建和测试电路设计的逻辑模型。
本文将详细介绍ISE 的使用说明,包括安装步骤、主要功能、常用操作和调试技巧。
一、安装步骤2.运行安装程序:双击安装程序启动安装流程,按照提示完成安装向导。
3.设置安装选项:在安装向导中,您可以选择安装目录、添加快捷方式和其他个性化设置。
4.完成安装:等待安装程序完成所有必要文件的复制和配置,安装完成后重启计算机。
二、主要功能1.逻辑设计:ISE提供了丰富的逻辑设计工具,包括原理图设计、硬件描述语言编写和逻辑优化等功能。
用户可以通过拖放元件、连接线和逻辑门,创建电路的逻辑模型。
2.约束设置:ISE允许用户定义各种约束条件,如时钟频率、延迟限制和电气规范等。
这些约束条件对于确保设计的正确性和性能至关重要。
3.仿真和验证:ISE提供了强大的仿真和验证工具,以验证设计的功能和时序正确性。
用户可以模拟不同输入情况下的电路行为,并通过波形查看器等工具进行调试和分析。
4.综合和布局布线:ISE可以将逻辑设计综合为电路网表,并根据指定的目标器件和约束条件进行布局布线。
综合和布局布线的结果直接影响电路的性能和可靠性。
6.文档生成:ISE可以根据设计规范和用户的需求,自动生成各种设计文档,如用户手册、接口定义和设计报告等。
这些文档对于设计团队的交流和项目管理非常重要。
三、常用操作2.添加文件:在工程中,用户可以添加设计文件、约束文件和仿真文件等。
这些文件描述了电路的结构、约束条件和仿真模型,是设计的基础。
3.进行综合和优化:在添加文件后,用户需要对设计进行综合和优化,以便生成电路网表。
综合和优化的操作可以通过综合工具和约束文件完成。
4.进行布局布线:综合完成后,用户需要对设计进行布局布线,以生成具体的物理布局。
布局布线的操作可以通过布局布线工具和约束文件完成。
5.进行仿真和验证:在布局布线完成后,用户可以使用ISE提供的仿真和验证工具,对设计进行功能和时序验证。
[新版]ISE-时序束缚
![[新版]ISE-时序束缚](https://img.taocdn.com/s3/m/e3becf5f68eae009581b6bd97f1922791688be9a.png)
赛灵思FPGA设计时序约束指南更新于2010-12-23 13:06:39 文章出处:博客时序fpga XILINX何为时序约束?为保证设计的成功,设计人员必须确保设计能在特定时限内完成指定任务。
要实现这个目的,我们可将时序约束应用于连线中——从某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 Sui t e中的静态时序分析工具),并生成时序规格迭代报告,即常说的 .tsi 报告。
该报告说明了各约束间是如何迭代的,以及该工具如何为各约束设置默认优先级。
采用PRIORITY 约束关键词可手动设置任一时序约束的优先级并使其优先于默认的或预先设定的优先级。
这对同一路径上的两个或多个时序约束发生冲突时尤为有用。
这里的优先级指的是同一路径上有两个或多个时序约束时,该应用哪一个。
ise时序约束
![ise时序约束](https://img.taocdn.com/s3/m/4b234bc56137ee06eff9182a.png)
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+Microcoslack:表示设计是否满足时序的一个称谓:正的slack表示满足时序,负的slack表示不满足时序。
保持时间slac k是一个重要的概念,引起不满足的主要原因是时钟偏斜大于数据路径的偏斜。
Quartus2时序分析工具和优化向导:常用的三种时序约束设置方法:1 通过Assignment/timing settings 2 Assignment/timing wiardtool 3 Assignment/Assignment editor选择在图形界面下完成对设计的时序约束。
一般情况下前两种是做全局的时序约束,后一种是做局部的时序约束,另外还可以通过修改.qsf文件来实现。
时序约束思想:时序约束一般都是先全局后个别,如果冲突则个别的优先级更高。
集成电路设计中的时序约束分析
![集成电路设计中的时序约束分析](https://img.taocdn.com/s3/m/5df1971eae45b307e87101f69e3143323968f588.png)
集成电路设计中的时序约束分析随着科技的不断发展,集成电路在许多领域得到广泛应用。
集成电路设计中的时序约束分析是保证电路正确运行的关键之一。
本文将从什么是时序约束,时序约束的分析方法和时序约束优化三个方面进行阐述。
一、什么是时序约束时序约束是指在完成集成电路设计之前对其进行的规定性的要求,用来保证在实际应用中电路的正确性和性能稳定性。
这些要求包括输入和输出电平的稳定性、时钟频率和同步信号的稳定性等。
在集成电路设计中,时序约束是非常重要的,它可以保证电路的正常运行和避免潜在的故障。
此外,合理的时序约束可以帮助设计人员在尽量缩短电路设计时间的情况下实现高性能的电路。
二、时序约束的分析方法在集成电路设计中时序约束的分析包括单个时序分析和时序路由分析两种类型。
单个时序分析主要是通过分析电路中的各个信号之间的时间关系,并根据这些关系来确定电路中的时序约束。
这种方法可以帮助设计人员在保证电路稳定性的前提下尽量提高电路性能。
另外,单个时序分析还可以检测电路的故障,并对电路进行排查和修复。
时序路由分析又称为时序优化,它是在单个时序分析的基础上,通过对电路的布局和路由进行优化,进一步提高电路的性能。
时序路由分析主要是通过改变电路中的信号路径,以满足不同的时序约束要求。
三、时序约束优化在集成电路设计中,时序约束优化是提高电路性能的关键之一。
合理的时序约束优化可以最大程度地利用电路资源,提高电路的工作效率和性能,降低电路的功耗。
对于时序约束的优化,主要需要考虑以下几个方面:1、资源利用率:合理的时序约束可以充分利用电路中的资源,避免浪费,提高电路的资源利用率。
2、功耗:合理的时序约束可以降低电路的功耗,提高电路的效率。
3、可靠性:合理的时序约束可以保证电路的正常运行,并降低电路故障率。
总之,时序约束分析是集成电路设计中的重要环节,它直接影响到电路的性能和可靠性。
通过对时序约束的分析和优化,可以最大程度地利用电路资源,提高电路的性能和稳定性,同时也可以提高电路的可靠性。
FPGA开发全攻略——时序约束
![FPGA开发全攻略——时序约束](https://img.taocdn.com/s3/m/57087219cd1755270722192e453610661fd95a42.png)
FPGA开发全攻略——时序约束一般来讲,添加约束的原则为先附加全局约束,再补充局部约束,而且局部约束比较宽松。
其目的是在可能的地方尽量放松约束,提高布线成功概率,减少ISE 布局布线时间。
典型的全局约束包括周期约束和偏移约束。
在添加全局时序约束时,需要根据时钟频率划分不同的时钟域,添加各自的周期约束;然后对输入输出端口信号添加偏移约束,对片内逻辑添加附加约束。
1.周期约束周期约束是附加在时钟网路上的基本时序约束,以保证时钟区域内所有同步组件的时序满足要求。
在分析时序时,周期约束能自动处理寄存器时钟端的反相问题,如果相邻的同步元件时钟相位相反,则其延迟会被自动限制为周期约束值的一半,这其实相当于降低了时钟周期约束的数值,所以在实际中一般不要同时使用时钟信号的上升沿和下降沿。
硬件设计电路所能工作的最高频率取决于芯片内部元件本身固有的建立保持时间,以及同步元件之间的逻辑和布线延迟。
所以电路最高频率由代码和芯片两部分共同决定,相同的程序,在速度等级高的芯片上能达到更高的最高工作频率;同样,在同一芯片内,经过速度优化的代码具有更高的工作频率,在实际中往往取二者的平衡。
在添加时钟周期之前,需要对电路的期望时钟周期有一个合理的估计,这样才不会附加过松或过紧的周期约束,过松的约束不能达到性能要求,过紧的约束会增加布局布线的难度,实现的结果也不一定理想。
常用的工程策略是:附加的时钟周期约束的时长为期望值的90%,即约束的最高频率是实际工作频率的110% 左右。
附加时钟周期约束的方法有两个:一是简易方法,二是推荐方法。
简易方式是直接将周期约束附加到寄存器时钟网线上,其语法如下所示:[ 约束信号] PERIOD = { 周期长度} {HIGH | LOW} [ 脉冲持续时间];其中,[] 内的内容为可选项,{} 中的内容为必选项,“|”表示选择项。
[ 约束信号] 可为“Net net_name”或“TIMEGRP group_name”,前者表示周期约束作用到线网所驱动的同步元件上,后者表示约束到TIMEGRP所定义的信号分组上( 如触发器、锁存器以及RAM 等)。
在ISE下分析和约束时序
![在ISE下分析和约束时序](https://img.taocdn.com/s3/m/373cba923186bceb18e8bb38.png)
1.在ISE下分析和约束时序3.1ISE的时序约束工具入门像TimeQuest一样,ISE软件工具也有自己的时序约束及分析工具。
ISE界面的processes当中,有一个user constraints列表,其中的Creat Timing Constrain 可以提供用户添加指定的时序约束。
ISE使用的时序约束信息跟其他的物理约束,电气约束等信息全部都放置在后缀名为ucf(user constrain file)的文件中,在使用图形化界面编辑约束后,用户还可以直接编辑UCF文件对时序等要求进行修改。
此外,PlanAhead Post synthesis工具在提供管脚,区域约束等功能之外,也提供了时序约束及分析的功能。
所以设计者在约束设计时序时可以有多种方法。
使用Creat Timing Constrain时界面的约束类型部分如下图所示:图ISE时序约束类型从图中我们看到,这个工具对于时序约束的理解与altera的一致,需要约束时钟,输入输出信号,以及指定一些时序例外,也有将约束组成Group的功能。
Xilinx公司对于其FPGA约束的名称与altera略有不同,但含义一样。
分别是Period constrain(时钟周期约束),OFFSET constrain(输入输出偏移约束),以及FROM TO constrain,当然也有multi-cycle constrain等。
双击unconstrained clks窗口的clk项,出现的以下对话框可以对设计的时钟信息进行指定。
图ISE下约束时钟界面这个界面可以设置时钟的周期,占空比,以及初始边沿是上升沿还是下降沿。
或者如果这个时钟是从其他指定的时钟生成的,也可以指定生成的关系从而软件自己计算生成时钟的信息。
unconstrained clks窗口将设计中没有约束的时钟列出来,在对每个时钟一一指定之后,窗口内容逐一消失。
而其上方另一个窗口将显示约束的具体信息,并且也可从中选择一条约束进行逐一修改。
ISE 约束文件的基本操作
![ISE 约束文件的基本操作](https://img.taocdn.com/s3/m/908f7b01a6c30c2259019e90.png)
按:早就想研究一下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”列中填入管脚的编号即可。
约束、时序分析的概念
![约束、时序分析的概念](https://img.taocdn.com/s3/m/a2b151553c1ec5da50e270bb.png)
约束、时序分析的概念很多人询问关于约束、时序分析的问题,比如:如何设置setup,hold时间?如何使用全局时钟和第二全局时钟(长线资源)?如何进行分组约束?如何约束某部分组合逻辑?如何通过约束保证异步时钟域之间的数据交换可靠?如何使用I/O逻辑单元内部的寄存器资源?如何进行物理区域约束,完成物理综合和物理实现?为了解决大家的疑难,我们将逐一讨论这些问题。
(注:以下主要设计时序约束)A 时序约束的概念和基本策略时序约束主要包括周期约束(FFS到FFS,即触发器到触发器)和偏移约束(IPAD到FFS、FFS到OPAD)以及静态路径约束(IPAD到OPAD)等3种。
通过附加约束条件可以使综合布线工具调整映射和布局布线过程,使设计达到时序要求。
例如用OFFSET_IN_BEFORE约束可以告诉综合布线工具输入信号在时钟之前什么时候准备好,综合布线工具就可以根据这个约束调整与IPAD相连的Logic Circuitry的综合实现过程,使结果满足FFS的建立时间要求。
附加时序约束的一般策略是先附加全局约束,然后对快速和慢速例外路径附加专门约束。
附加全局约束时,首先定义设计的所有时钟,对各时钟域内的同步元件进行分组,对分组附加周期约束,然后对FPGA/CPLD 输入输出PAD附加偏移约束、对全组合逻辑的PAD TO PAD路径附加约束。
附加专门约束时,首先约束分组之间的路径,然后约束快、慢速例外路径和多周期路径,以及其他特殊路径。
B 附加约束的基本作用1、提高设计的工作频率对很多数字电路设计来说,提高工作频率非常重要,因为高工作频率意味着高处理能力。
通过附加约束可以控制逻辑的综合、映射、布局和布线,以减小逻辑和布线延时,从而提高工作频率。
2、获得正确的时序分析报告几乎所有的FPGA设计平台都包含静态时序分析工具,利用这类工具可以获得映射或布局布线后的时序分析报告,从而对设计的性能做出评估。
静态时序分析工具以约束作为判断时序是否满足设计要求的标准,因此要求设计者正确输入约束,以便静态时序分析工具输出正确的时序分析报告。
ise管脚约束设置参数详解
![ise管脚约束设置参数详解](https://img.taocdn.com/s3/m/7c448fe7ac51f01dc281e53a580216fc700a5331.png)
ise管脚约束设置参数详解以ISE管脚约束设置参数详解概述ISE(Integrated Software Environment)是Xilinx公司开发的一款用于设计和实现FPGA(Field-Programmable Gate Array)的软件工具。
在使用ISE进行FPGA设计时,管脚约束是非常重要的一部分,它用于指定FPGA芯片上的输入输出引脚的功能和连接关系,以确保设计的正确性和可靠性。
本文将详细介绍ISE管脚约束设置参数的相关知识。
1. 管脚约束的作用管脚约束是将设计的逻辑电路与FPGA芯片上的引脚进行连接的关键步骤。
通过正确设置管脚约束参数,可以确保逻辑电路与硬件之间的正确通信,同时还可以优化电路性能和资源利用率。
在ISE中,管脚约束的设置包括输入输出管脚的引脚类型、电平标准、时钟频率等多个方面。
2. 管脚约束的设置方法在ISE中,可以使用UCF(User Constraints File)文件或XDC (Xilinx Design Constraints)文件来进行管脚约束的设置。
UCF 文件是ISE早期版本使用的约束文件格式,而XDC文件是ISE 14.1及以后版本引入的新约束文件格式。
下面将分别介绍这两种约束文件的设置方法。
2.1 UCF文件的设置方法UCF文件是一种文本文件,可以使用任何文本编辑器进行编辑。
UCF文件中的每一行都对应着一个管脚的约束设置。
以下是UCF文件的一些常用约束参数及其设置方法:- NET:用于定义逻辑电路中的信号名称;- LOC:用于定义信号连接到FPGA芯片上的具体引脚位置;- IOSTANDARD:用于定义引脚的电平标准;- SLEW:用于定义引脚的输出斜率控制;- DRIVE:用于定义引脚的驱动能力;- PULLUP:用于定义引脚的上拉电阻;- PULLDOWN:用于定义引脚的下拉电阻。
通过在UCF文件中逐行设置这些约束参数,可以完成对管脚的约束设置。
ISE时序约束笔记
![ISE时序约束笔记](https://img.taocdn.com/s3/m/569836136137ee06eef91869.png)
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设计流程范文
![ISE设计流程范文](https://img.taocdn.com/s3/m/02ea7d368f9951e79b89680203d8ce2f00666588.png)
ISE设计流程范文一、引言ISE(Integrated System Environment)是一种功能强大的电子系统设计工具,可用于设计和验证集成电路(IC)和程序可编程门阵列(FPGA)等复杂系统。
本文将介绍ISE的设计流程范文,以帮助读者理解ISE的使用方法和设计流程。
二、设计流程概述ISE的设计流程包括项目设置、RTL设计、综合、实施和验证等几个主要阶段。
在项目设置阶段,用户需要创建一个新项目并设置设计参数。
在RTL设计阶段,用户将设计需求翻译为硬件描述语言(HDL)代码并进行功能验证。
在综合阶段,用户将HDL代码转换为门级网表,并进行时序优化和约束设置。
在实施阶段,用户将门级网表映射到目标设备,并生成最终的配置文件。
最后,在验证阶段,用户将验证设计是否满足预期功能,并进行性能分析和调优。
三、项目设置在ISE中创建新项目时,用户需要选择要设计的设备类型、工程目录和项目名称等参数。
设备类型将影响后续的综合和实施阶段,因此需要根据实际需求选择合适的设备。
工程目录用于保存设计文件和生成的中间文件,用户需要选择一个合适的目录路径,并创建一个新的项目文件夹。
项目名称用于标识项目,可以根据实际需求进行命名。
设置完成后,用户可以开始进行RTL设计。
四、RTL设计RTL设计是ISE设计流程的核心阶段,用户需要将设计需求转化为HDL代码,并进行功能验证。
RTL设计可以使用Verilog、VHDL或SystemVerilog等硬件描述语言来实现。
用户需要根据设计需求,编写相应的代码,并进行模块化设计。
在设计过程中,用户需要合理使用寄存器、组合逻辑和时序逻辑等元件,以满足设计要求。
完成RTL设计后,用户需要进行功能验证,即通过仿真和测试来验证设计是否满足预期的功能和性能。
五、综合综合是将HDL代码转换为门级网表的过程,它将具有不同功能的模块合并为一个整体,优化逻辑电路结构,并对时序进行约束和优化。
在综合过程中,用户需要提供时钟频率和约束文件等参数,以便综合工具可以进行时序优化。
- 1、下载文档前请自行甄别文档内容的完整性,平台不提供额外的编辑、内容补充、找答案等附加服务。
- 2、"仅部分预览"的文档,不可在线预览部分如存在完整性等问题,可反馈申请退款(可完整预览的文档不适用该条件!)。
- 3、如文档侵犯您的权益,请联系客服反馈,我们会尽快为您处理(人工客服工作时间:9:00-18:30)。
1. 在ISE下分析和约束时序3.1 ISE的时序约束工具入门像TimeQuest一样,ISE软件工具也有自己的时序约束及分析工具。
ISE界面的processes当中,有一个user constraints列表,其中的Creat Timing Constrain可以提供用户添加指定的时序约束。
ISE使用的时序约束信息跟其他的物理约束,电气约束等信息全部都放置在后缀名为ucf(user constrain file)的文件中,在使用图形化界面编辑约束后,用户还可以直接编辑UCF文件对时序等要求进行修改。
此外,PlanAhead Post synthesis工具在提供管脚,区域约束等功能之外,也提供了时序约束及分析的功能。
所以设计者在约束设计时序时可以有多种方法。
使用Creat Timing Constrain时界面的约束类型部分如下图所示:图 ISE时序约束类型从图中我们看到,这个工具对于时序约束的理解与altera的一致,需要约束时钟,输入输出信号,以及指定一些时序例外,也有将约束组成Group的功能。
Xilinx公司对于其FPGA约束的名称与altera略有不同,但含义一样。
分别是Period constrain(时钟周期约束),OFFSET constrain(输入输出偏移约束),以及FROM TO constrain,当然也有multi-cycle constrain等。
双击unconstrained clks窗口的clk项,出现的以下对话框可以对设计的时钟信息进行指定。
图ISE下约束时钟界面这个界面可以设置时钟的周期,占空比,以及初始边沿是上升沿还是下降沿。
或者如果这个时钟是从其他指定的时钟生成的,也可以指定生成的关系从而软件自己计算生成时钟的信息。
unconstrained clks窗口将设计中没有约束的时钟列出来,在对每个时钟一一指定之后,窗口内容逐一消失。
而其上方另一个窗口将显示约束的具体信息,并且也可从中选择一条约束进行逐一修改。
约束类型菜单下的Inputs 选中双击后,会出现如下图所示的对话框,指定了输入偏移约束的类型之后,选择next。
这里的OFFSET IN 的类型包括,输入信号是源同步还是系统同步(时钟的来源不同),是单边沿触发还是双边沿触发的信号,以及有效边沿类型。
通常在设计中,若非特殊的DDR数据,或者使用了外部随路时钟,就选择SDR以及系统同步即可。
图指定输入偏移约束的类型指定了偏移约束类型后选择next会出现下图所示页面,在这个页面中可以约束输入信号的时序。
图 OFFSET IN 约束设置页面在这个页面中,左上角表明了系统中使用的时钟的信息。
若有多个时钟,则可以选择输入信号建立相关的时钟。
在Input pad timegroup/net中,可以选择要指定约束的目标端口。
若没有对信号合并分组,就选择input pad net,然后选择需要约束的输入管脚即可。
画红色*号的必须指定的地方,会有External setup time,此即为需要设置的offset in 约束。
通过计算外部器件输出时序以及电路板上延时之后,设计者可以在此指定一个值,表示的是输入端口信号建立时间与时钟信号有效边沿的延时。
仿照上面OFFSET IN的设置,读者可以设置OFFSET OUT的约束。
它约束的是输出端口信号与参考时钟有效边沿之间的延时关系。
其数值需要查阅下一级芯片输入数据时钟的建立关系及电路板上时钟,信号线延时关系计算获得。
约束了设计中使用的时钟,同时约束了输入输出端口的时序之后,整个设计的约束就是完整的。
但完整的约束不一定是正确的,过于严格的约束会挤占布局布线的资源从而造成无法进行最优布线。
所以还需要对一些不必要的,过于严格的约束进行时序例外的声明。
这些读者可以通过尝试软件工具及阅读软件用户手册来学习。
保存了设置的时序后,在工程目录下的Ucf文件将进行更新,最新设置的时序结果将以文本形式体现在ucf文件中,例如以下字段:#Created by Constraints Editor (xc5vsx50t-ff1136-3) - 2011/09/04NET "clk" TNM_NET = clk;TIMESPEC TS_clk = PERIOD "clk" 20 ns HIGH 50%;NET "bu" OFFSET = IN 2 ns VALID 20 ns BEFORE "clk" RISING;这些不仅包括了时序约束,还以注释的形式将约束生成的日期以及针对的器件型号列出了。
设计者甚至可以通过编辑修改这里的文本来快速修改时序约束。
生成的ucf已经是在工程下了。
添加了约束后XST工具不需要重新运行,但是Implement Design下每一步都需要重新执行。
重新执行时,便是在我们设置的约束下进行映射及布局布线了。
下面是PlanAhead Post synthesis工具启动后设置时序约束的页面。
图PlanAhead Post synthesis工具下的时序约束界面从上图可以看出这里的时序约束包括了Clk period,Pad-clk offset,path delay,Time group,False path以及off chip delay等项。
双击其中的任何一项可以出现下图所示的对话框:图设置新的时序约束对话框这个对话框列出了所有能够设置的时序约束,这里的约束设置比Creat Timing Constrain工具更加简洁,如图中所示,在选择了Input pad to clk offset 之后,右边出来的界面中,选择data arrival为Before clock,时钟选择的clk为系统时钟,有效边沿选择上升沿,勾选Delay value,设置为2ns。
Pad net勾选后可以选择需要设置的端口名称。
这样的设置与前文所述的Creat Timing Constrain工具约束输入端口时序是一致的。
可见这个工具会更加简洁。
3.2 ISE下查看时序结果查看时序报告时,在ISE工具下也有多种方式。
比如,在ISE工具下可以选择Timing,然后在出现的对话框选择run analysis。
会出现下图所示界面。
在这个界面中可以选择需要分析的pad, net或者是寄存器(Flip-Flop)。
这样工具会给出你选择的路径的时序分析报告。
图 Run Timing Analysis对话框或者不选择分析的具体内容,而是直接在tools下选择Timing Analyzer,或者是在Place&Route下选择Generate post-Place&Route Static Timing下面的Analyze post-Place&Route Static Timing,都会出现一个以工程头文件命名的后缀为twx的一个报告框,这里面将包含设计的时序信息。
其中Timing summary下会有诸如以下的英文:Timing summary:---------------Timing errors: 0 Score: 0 (Setup/Max: 0, Hold: 0)Constraints cover xxx paths, xx nets, and xx connectionsDesign statistics:Minimum period: xxx ns{1} (Maximum frequency: xxx MHz)从这个报告一眼可以看出是否会存在时序错误,以及错误路径数量。
还包括时序约束信息覆盖的路径,网络以及连接关系,最后是最小周期,同时计算出该设计最高能够正确运行的频率。
在Timing constraints下,能够看到设计的一些时序约束信息,并且给每一条约束进行对应的分析,给出报告看是否能够满足约束。
典型摘录下来的一段如下:Paths for end point cnt_21 (SLICE_X24Y43.CIN), 20 paths--------------------------------------------------------------------------------Slack (setup path): 18.421 ns (requirement - (data path - clock path skew + uncertainty)) Source: cnt_0 (FF)Destination: cnt_21 (FF)Requirement: 20.000nsData Path Delay: 1.404ns (Levels of Logic = 6)Clock Path Skew: -0.140ns (1.095 - 1.235)Source Clock: clk_BUFGP rising at 0.000nsDestination Clock: clk_BUFGP rising at 20.000nsClock Uncertainty: 0.035nsClock Uncertainty: 0.035ns ((TSJ^2 + TIJ^2)^1/2 + DJ) / 2 + PETotal System Jitter (TSJ): 0.070nsTotal Input Jitter (TIJ): 0.000nsDiscrete Jitter (DJ): 0.000nsPhase Error (PE): 0.000nsMaximum Data Path: cnt_0 to cnt_21Location Delay type Delay(ns) Physical ResourceLogical Resource(s)------------------------------------------------- -------------------SLICE_X24Y38.AQ Tcko 0.346 cnt<3>cnt_0SLICE_X24Y38.A4 net (fanout=1) 0.278 cnt<0> SLICE_X24Y38.COUT Topcya 0.384 cnt<3>Mcount_cnt_lut<0>_INV_0Mcount_cnt_cy<3>SLICE_X24Y39.CIN net (fanout=1) 0.000 Mcount_cnt_cy<3> SLICE_X24Y39.COUT Tbyp 0.082 cnt<7>Mcount_cnt_cy<7>SLICE_X24Y40.CIN net (fanout=1) 0.000 Mcount_cnt_cy<7> SLICE_X24Y40.COUT Tbyp 0.082 cnt<11>Mcount_cnt_cy<11>SLICE_X24Y41.CIN net (fanout=1) 0.000 Mcount_cnt_cy<11> SLICE_X24Y41.COUT Tbyp 0.082 cnt<15>Mcount_cnt_cy<15>SLICE_X24Y42.CIN net (fanout=1) 0.000 Mcount_cnt_cy<15> SLICE_X24Y42.COUT Tbyp 0.082 cnt<19>Mcount_cnt_cy<19>SLICE_X24Y43.CIN net (fanout=1) 0.000 Mcount_cnt_cy<19> SLICE_X24Y43.CLK Tcinck 0.068 cnt<22>Mcount_cnt_xor<22>cnt_21------------------------------------------------- ---------------------------Total 1.404ns (1.126ns logic, 0.278ns route)(80.2% logic, 19.8% route)该报告分析了从cnt_0到 cnt_21的路径中延时最大的一条。