FPGA时序约束、时序分析
- 格式:pdf
- 大小:298.39 KB
- 文档页数:11
静态时序分析原理解读及实例应用摘要:静态时序分析(Static Timing Analysis)是FPGA(现场可编程逻辑器件)分析电路时序的最坏情况,验证此时的电路性能是否满足用户的时序要求。
静态时序分析的目的是提高系统工作主频及增加系统的稳定性。
关键词:静态时序分析;FPGA;关键路径引言静态时序分析是基于电路的拓扑结构,计算逻辑单元延时和互联延时,提取出整个电路的所有时序路径,找出延时最大的关键路径,确定电路工作时所能达到的最大频率,并检查建立时间和保持时间余量,其目的是检查FPGA 芯片中设计电路的延时和速度等性能指标,分析电路时序的最坏情况,验证此时的电路性能是否满足用户的时序要求。
相比较于动态时序仿真具备更加高效和完备的特点。
目前比较流行的静态时序分析工具有Prime Time,TimeQuest Timing Analyzer、Vivado系列等工具。
1时序中的基本概念1.1时钟周期和最高频率时序路径分为输入端口到内部寄存器路径,内部寄存器到寄存器路径,内部寄存器到输出端口路径,FPGA内部时序分析的对象为“寄存器—寄存器”路径,时序逻辑设计都是基于时钟沿的。
在Quar tusⅡ下的时序分析器TimeQuest的时序报告中有启动沿和锁存沿的概念,它们是针对时钟而言的。
启动沿(launch edge):前级寄存器发送数据时对应的时钟沿,是时序分析的起点。
锁存沿(latch edge):后级寄存器捕获数据时对应的时钟沿,是时序分析的终点。
锁存沿一般默认与启动沿相差一个时钟周期。
时钟周期的概念是FPGA 中时序定义的基础,根据图1计算时钟最小周期。
图1时钟周期的计算时钟最小时钟周期计算式为:T clk= τco+ τdata_dalay+ τsu−τclk_skew(式1)其中τclkskew= τclk1−τclk2(式2)式1中,T clk是时钟的最小周期。
τco是寄存器固有的时钟到输出延迟,是寄存器的固有属性,指的是寄存器相应时钟沿有效,将数据送到输出端口的内部延时参数,典型值一般小于1ns。
xilinx fpga中时钟输入管脚的约束在Xilinx FPGA中,时钟输入管脚的约束是非常重要的,它们可以确保时钟信号的稳定性和一致性,从而保证设计的性能和可靠性。
因此,合理设置时钟输入管脚的约束是进行FPGA设计中不可忽视的一部分。
时钟输入管脚约束主要包括以下几个方面:1.频率约束:时钟输入管脚的频率约束指定了该管脚接收的时钟信号的频率范围。
在设计中,需要根据时钟源的特性和系统的工作要求来设置合适的频率约束。
2.总线延迟约束:在一些应用中,时钟信号可能需要进行时序约束,以确保各个时钟域之间的同步稳定性。
总线延迟约束指定了时钟信号与其他信号的最大传播延迟,这样可以避免时序问题和死锁。
3.约束路径的设置:时钟输入管脚的约束路径设置是确保时钟信号按照设计要求正确到达目标寄存器的关键。
通过设置约束路径,可以规定时钟信号到达目标寄存器的最长路径,确保时钟信号的稳定性,减少时钟抖动和时钟周期不稳定等问题。
4.时钟输入和输出约束:时钟输入管脚还可能有一些其他的约束设置,如时钟输入和输出的相位约束、时钟输入和输出的组合约束等。
这些约束的目的是保证时钟信号的稳定性和相位一致性。
除了上述的基本约束外,还有一些特殊的约束需要注意:1.编译工具约束:在进行FPGA设计时,可以使用Xilinx的编译工具对设计进行优化和约束分析。
通过正确设置时钟输入管脚的约束,可以使编译工具更好地理解设计的时钟域和时序要求,从而提高设计的性能和可靠性。
2.时钟插入延迟约束:在一些高速设计中,时钟插入延迟约束非常重要。
它指定了时钟信号从输入管脚到达目标寄存器之间的最小插入延迟。
通过设置时钟插入延迟约束,可以在设计中引入适当的延迟,从而使时钟信号的到达时间更加可控和稳定。
3.锁定时钟约束:在一些需要时钟同步的设计中,可能需要设置锁定时钟约束。
这个约束规定了时钟信号之间的相位关系,确保它们在设定的相位范围内保持同步。
这对于一些高速通信和信号处理系统中的数据同步非常重要。
vivado 分频器时序约束以Vivado分频器时序约束为标题的文章一、引言Vivado是由Xilinx公司开发的一款集成化设计环境软件,用于FPGA设计和开发。
在FPGA设计中,分频器是一个常用的模块,用于降低时钟频率或者将时钟信号分频为其他频率。
然而,在设计中,时序约束是非常重要的,它能够确保设计在时序上满足要求,避免时序违规的问题。
本文将详细介绍在Vivado中如何进行分频器时序约束。
二、时序约束的重要性时序约束是FPGA设计中的关键步骤,它能够确保设计在时序上满足要求,避免时序违规的问题。
时序违规可能导致时钟偏移、数据错误以及系统不稳定等问题,严重影响设计的可靠性和性能。
而分频器作为一个常用的模块,在时序约束中也有着重要的作用。
三、时序约束的基本原理时序约束通常包括时钟频率、时钟延迟、数据路径延迟等信息。
在Vivado中,我们可以通过约束文件(Constraints File)来设置时序约束。
时序约束文件是一种特殊的文本文件,其中包含了关于时钟频率、时钟延迟、数据路径延迟等信息。
通过约束文件,我们可以告诉Vivado如何对设计进行时序分析和优化。
四、分频器的时序约束在Vivado中,我们可以使用时序约束来确保分频器的工作稳定和准确。
下面,我们将以一个简单的例子来介绍如何设置分频器的时序约束。
假设我们需要将一个100MHz的时钟信号分频为10MHz的时钟信号,我们可以使用一个分频因子为10的分频器来完成。
以下是一个简单的分频器的Verilog代码:```verilogmodule divider (input wire clk,input wire rst,output wire clk_out);reg [3:0] counter;always @(posedge clk or posedge rst)beginif (rst)counter <= 0;else if (counter == 9)counter <= 0;elsecounter <= counter + 1;endassign clk_out = counter[3];endmodule```在这个例子中,我们使用一个4位的计数器来实现分频功能。
FPGA时序约束的6种方法对自己的设计的实现方式越了解,对自己的设计的时序要求越了解,对目标器件的资源分布和结构越了解,对工具执行约束的效果越了解,那么对设计的时序约束目标就会越清楚,相应地,设计的时序收敛过程就会更可控。
下文总结了几种举行时序约束的办法。
根据从易到难的挨次罗列如下:0.核心频率约束这是最基本的,所以标号为0.1.核心频率约束+时序例外约束时序例外约束包括FalsePath、MulticyclePath、MaxDelay、MinDelay.但这还不是最完整的时序约束。
假如仅有这些约束的话,解释设计者的思路还局限在芯片内部。
2.核心频率约束+时序例外约束+I/O约束I/O约束包括引脚分配位置、空闲引脚驱动方式、外部走线延时(InputDelay、OutputDelay)、上下拉、驱动强度等。
加入I/O约束后的时序约束,才是完整的时序约束。
FPGA作为上的一个器件,是囫囵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上实现的布局位置和布线第1页共4页。
FPGA中LVDS传输的时钟约束在FPGA设计中,LVDS(Low Voltage Differential Signaling)是一种常用的高速串行通信接口。
LVDS传输方式通过使用两个电平相反的信号进行数据传输,具有高抗噪声能力和较低的功耗,因此在许多高速数据传输场景中得到广泛应用。
而在LVDS传输中,时钟约束则是至关重要的一部分,它直接影响着数据传输的稳定性和可靠性。
时钟约束是指在FPGA设计中,LVDS传输时钟信号与数据信号之间的时间关系。
合理的时钟约束设计能够保证数据的稳定传输和准确采样,同时最大限度地减小时钟和数据之间的延迟不匹配带来的问题。
下面,我将结合基础理论和实际案例,深入探讨FPGA中LVDS传输的时钟约束。
1. LVDS传输的基本原理LVDS传输采用两个电平相反的差分信号进行数据传输,其中一个信号是正向传输,另一个信号是负向传输。
这两个信号相减后得到的差分电压代表了实际的数据信息,通过差分信号的传输,可以有效地减少电磁干扰和信号衰减,保证数据的稳定传输。
而在LVDS传输中,时钟信号也是由差分信号构成,因此时钟约束对于确保时钟和数据的同步至关重要。
2. 时钟约束的重要性对于LVDS传输来说,时钟信号的稳定性和精确性对于数据的采样和恢复具有重要影响。
合理的时钟约束可以保证时钟信号在数据传输过程中的稳定性和一致性,避免由于时钟不稳定或者时钟和数据不同步而导致的数据错误或者丢失。
在一些对数据准确性要求较高的场合,如高速通信、数据存储等领域,时钟约束更是至关重要。
3. 时钟约束的设计原则在FPGA设计中,时钟约束的设计原则可以总结为以下几点:(1)时钟源:确定LVDS时钟信号的输入源,选择稳定可靠的时钟源对于时钟约束的设计至关重要。
(2)时钟延迟:通过合理的时钟延迟设计,使得时钟信号与数据信号之间的相位关系能够得到合理控制,从而保证时钟和数据的同步。
(3)时钟分配:在FPGA设计中,合理的时钟分配是时钟约束设计中至关重要的一环,保证时钟信号能够准确到达每一个接收端,确保数据的稳定采样。
时序分析(2):时序约束原理⼀、基本概念1.时序:时钟和数据的对应关系2.约束:告诉综合⼯具,我们希望时序达到什么样的标准3.违例:时序达不到需要的标准4.收敛:通过调整布局布线⽅案来达到这个标准5.静态时序分析:电路未跑起来时,延时等已知,以此分析时序6.动态时序分析:电路跑起来,如Modelsim软件(理想状态)⼆、时序分析基本模型模型分为以下四种:(注:PAD指管脚)寄存器与寄存器之间输⼊PAD与寄存器之间寄存器与输出PA D之间输⼊PAD 与输出PAD之间(太极端,不讨论)知识补充:1、全局时钟:FPGA时钟到各个寄存器的时间⾮常接近。
2、⾃分频时钟:⾛的是数据线,到各个寄存器的时间差异⾮常⼤。
三、理想状态的建⽴时间和保持时间1、建⽴时间 Time setup(1) 接收时钟上升沿前,发送数据要准备好的时间(2) Tsu = 数据锁存沿(Latch)- 数据发送沿(Lanch)= 时钟周期2、保持时间 Time hold(1) 接收时钟上升沿后,发送数据要保持住的时间(2) Th = 发送端数据变化时 - 接收端数据锁存 = 03、补充(1) D触发器本⾝也有建⽴/保持时间的概念,称之为寄存器建⽴时间门限和寄存器保持时间门限,这是⼀个固有属性,是确定的、不变的。
当理想状态时,我们讨论建⽴/保持时间就相当于讨论D触发器的这⼀固有属性。
(2) FPGA所有时序问题,根本原因都是“建⽴时间和保持时间”的问题。
(3) 解决建⽴时间不⾜的⽅法是“减少延时”,⽽解决保持时间不⾜的⽅法是“增加延时”。
4、符号说明四、建⽴时间余量和保持时间余量Lunch edge:发射沿,以 clk_pad 为基准,⼀般看成 0 时刻。
实际时间是上⼀个寄存器所⽤的时间,因此⽤ clk1,看数据到达下⼀个寄存器的 D 端⽤了多久时间,结束时间⼜是多久。
Latch edge:接收沿,以 clk_pad 为基准,⼀般看成 0+Tcyc 时刻,要求时间是下⼀个寄存器计算的时间,所以⽤ clk2,看它⾃⾝需要的到达时间和结束时间是什么时候。
第1篇1. FPGA是什么?FPGA(现场可编程门阵列)是一种可编程逻辑器件,它可以根据用户的需求进行编程,实现各种数字电路功能。
FPGA具有高灵活性、高集成度、低功耗等优点,广泛应用于通信、工业控制、消费电子等领域。
答案:FPGA是一种可编程逻辑器件,可以根据用户需求进行编程,实现各种数字电路功能。
2. VHDL和Verilog的区别是什么?VHDL和Verilog都是硬件描述语言,用于描述数字电路和系统。
两者在语法和功能上存在一些差异:- VHDL是一种强类型语言,具有丰富的数据类型和操作符,易于编写复杂的数字电路描述。
- Verilog是一种弱类型语言,数据类型较为简单,但具有简洁的语法,便于快速编写代码。
答案:VHDL和Verilog的区别在于数据类型和语法,VHDL是强类型语言,Verilog 是弱类型语言。
3. 什么是FPGA的时钟域交叉问题?FPGA的时钟域交叉问题是指当多个时钟域的信号进行交互时,可能会出现信号竞争、数据丢失等现象,导致系统性能下降或功能失效。
答案:FPGA的时钟域交叉问题是指当多个时钟域的信号进行交互时,可能会出现信号竞争、数据丢失等现象。
4. 如何处理FPGA的时序问题?处理FPGA的时序问题主要包括以下几个方面:- 设计合理的时钟树,确保时钟信号在各个模块之间稳定传播。
- 合理设置时钟分频、倍频等参数,避免时钟抖动。
- 优化模块设计,减少信号路径长度,降低信号传播延迟。
- 进行时序仿真,确保满足设计要求。
答案:处理FPGA的时序问题主要包括设计合理的时钟树、设置时钟参数、优化模块设计和进行时序仿真。
5. FPGA的配置过程是怎样的?FPGA的配置过程主要包括以下几个步骤:- 编写配置文件:使用VHDL或Verilog等硬件描述语言编写配置文件,描述FPGA 内部电路的结构和功能。
- 编译配置文件:使用FPGA厂商提供的编译工具对配置文件进行编译,生成门级网表。
FPGA设计之——时序设计 FPGA设计一个很重要的设计是时序设计,而时序设计的实质就是满足每一个触发器的建立(Setup)/保持(Hold)时间的要求。 建立时间(Setup Time):是指在触发器的时钟信号上升沿到来以前,数据稳定不变的时间,如果建立时间不够,数据将不能在这个时钟上升沿被打入触发器; 保持时间(Hold Time):是指在触发器的时钟信号上升沿到来以后,数据稳定不变的时间, 如果保持时间不够,数据同样不能被打入触发器。 FPGA设计分为异步电路设计和同步电路设计,然而很多异步电路设计都可以转化为同步电路设计,在设计时尽量采用同步电路进行设计。对于同步电路可以转化的逻辑必须转化,不能转化的逻辑,应将异步的部分减到最小,而其前后级仍然应该采用同步设计。 为了让同步电路可靠地运行,就要对时钟偏差进行控制,以使时钟偏差减小到可用的范围。影响时钟偏差的主要有以下几个因素: o 用于连接时钟树的连线 o 钟树的拓扑结构 o 时钟的驱动 o 时钟线的负载 o 时钟的上升及下降时间 在通常的FPGA设计中对时钟偏差的控制主要有以下几种方法: o 控 制时钟信号尽量走可编程器件的的全局时钟网络。在可编程器件中一般都有专门的时钟驱动器及全局时钟网络,不同种类、型号的可编程器件,它们中的全局时钟网 络数量不同,因此要根据不同的设计需要选择含有合适数量全局时钟网络的可编程器件。一般来说,走全局时钟网络的时钟信号到各使用端的延时小,时钟偏差很 小,基本可以忽略不计。 o 若设计中时钟信号数量很多,无法让所有的信号都走全局时钟网络,那么可以通过在设计中加约束的方法,控制不能走全局时钟网络的时钟信号的时钟偏差。 o 异步接口时序裕度要足够大。局部同步电路之间接口都可以看成是异步接口,比较典型的是设计中的高低频电路接口、I/O接口,那么接口电路中后一级触发器的建立-保持时间要满足要求,时序裕度要足够大。 o 在系统时钟大于30MHz时,设计难度有所加大,建议采用流水线等设计方法。采用流水线处理方式可以达到提高时序电路的速度,但使用的器件资源也成倍增加。 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设计平台都包含静态时序分析工具,利用这类工具可以获得映射或布局布线后的时序分析报告,从而对设计的性能做出评估。静态时序分析工具以约束作为判断时序是否满足设计要求的标准,因此要求设计者正确输入约束,以便静态时序分析工具输出正确的时序分析报告。 3. 指定FPGA/CPLD引脚位置与电气标准 FPGA/CPLD的可编程特性使电路板设计加工和FPGA/CPLD设计可以同时进行,而不必等FPGA/CPLD引脚位置完全确定,从而节省了系统开发时间。这样,电路板加工完成后,设计者要根据电路板的走线对FPGA/CPLD加上引脚位置约束,使FPGA/CPLD与电路板正确连接。另外通过约束还可以指定IO引脚所支持的接口标准和其他电气特性。为了满足日新月异的通信发展,Xilinx新型FPGA/CPLD可以通过IO引脚约束设置支持诸如 AGP、BLVDS、CTT、GTL、GTLP、HSTL、LDT、LVCMOS、LVDCI、LVDS、LVPECL、LVDSEXT、LVTTL、 PCI、PCIX、SSTL、ULVDS等丰富的IO接口标准。另外通过区域约束还能在FPGA上规划各个模块的实现区域,通过物理布局布线约束,完成模 块化设计等。
C 周期(PERIOD)的含义 周期的含义是时序中最简单也是最重要的含义,其它很多时序概念会因为软件商不同略有差异,而周期的概念确是最通用的,周期的概念是FPGA/ASIC时序定义的基础概念。后面要讲到的其它时序约束都是建立在周期约束的基础上的,很多其它时序公式,可以用周期公式推导。周期约束是一个基本时序和综合约束,它附加在时钟网线上,时序分析工具根据PERIOD约束检查时钟域内所有同步元件的时序是否满足要求。PERIOD约束会自动处理寄存器时钟端的反相问题, 如果相邻同步元件时钟相位相反,那么它们之间的延迟将被默认限制为PERIOD约束值的一半。如下图所示,
图1 周期的定义 时钟的最小周期为: TCLK = TCKO +TLOGIC +TNET +TSETUP -TCLK_SKEW TCLK_SKEW =TCD2 -TCD1 其中TCKO为时钟输出时间,TLOGIC为同步元件之间的组合逻辑延迟,TNET为网线延迟,TSETUP为同步元件的建立时间,TCLK_SKEW为时钟信号TCD2和TCD1延迟的差别。
D 数据和时钟之间的约束 为了确保芯片数据采样可靠和下级芯片之间正确地交换数据,需要约束外部时钟和数据输入输出引脚之间的时序关系(或者内部时钟和外部输入/输出数据之间的关系,这仅仅是从采用了不同的参照系罢了)。约束的内容为告诉综合器、布线器输入数据到达的时刻,或者输出数据稳定的时刻,从而保证与下一级电路的时序关系。 这种时序约束在Xilinx中用Setup to Clock(edge),Clock(edge) to hold等表示。在Altera里常用tsu (Input Setup Times)、th (Input Hold Times)、tco (Clock to Out Delays)来表示。很多其它时序工具直接用setup和hold表示。其实他们所要描述的是同一个问题,仅仅是时间节点的定义上略有不同。下面依次介 绍。
E 关于输入到达时间 Xilinx的"输入到达时间的计算"时序描述如下图所示:
图2 输入到达时间示意图 定义的含义是输入数据在有效时钟沿之后的TARRIVAL时刻到达。则, TARRIVAL=TCKO+TOUTPUT+TLOGIC 公式1 根据上面介绍的周期(Period)公式,我们可以得到: Tcko+Toutput+Tlogic+Tinput+Tsetup-Tclk_skew=Tclk; 公式2 将公式1代入公式2: Tarrival+Tinput+Tsetup-Tclk_skew=Tclk, 而Tclk_skew满足时序关系后为负,所以 TARRIVAL +TINPUT+TSETUP 这就是Tarrival应该满足的时序关系。其中TINPUT为输入端的组合逻辑、网线和PAD的延迟之和,TSETUP为输入同步元件的建立时间。 F 数据延时和数据到达时间的关系 图3 数据延时和数据到达时间示意图 TDELAY为要求的芯片内部输入延迟,其最大值TDELAY_MAX与输入数据到达时间TARRIVAL的关系如上图所示。也就是说: TDELAY_MAX+TARRIVAL=TPERIOD 公式4 所以: TDELAY
G 要求输出的稳定时间 从下一级输入端的延迟可以计算出当前设计输出的数据必须在何时稳定下来,根据这个数据对设计输出端的逻辑布线进行约束,以满足下一级的建立时间要求,保证下一级采样的数据是稳定的。计算要求的输出稳定时间如下图所示:
图4 要求的输出稳定时间示意图 公式的推导如下: 定义:TSTABLE = TLOGIC +TINPUT +TSETUP 从前面帖子介绍的周期(Period)公式,可以得到(其中TCLK_SKEW=TCLK1-TCLK2): TCLK=TCKO+TOUTPUT+TLOGIC+TINPUT+TSETUP+TCLK_SKEW 将TSTABLE的定义代入到周期公式,可以得到: TCLK=TCKO+TOUTPUT+TSTABLE+TCLK_SKEW 所以:TCKO +TOUTPUT+TSTABLE这个公式就是TSTABLE必须要满足的基本时序关系,即本级的输出应该保持怎么样的稳定状态,才能保证下级芯片的采样稳定。有时我们也称这个约束关系是 输出数据的保持时间的时序约束关系。只要满足上述关系,当前芯片输出端的数据比时钟上升沿提早TSTABLE 时间稳定下来,下一级就可以正确地采样数据。其中TOUTPUT为设计中连接同步元件输出端的组合逻辑、网线和PAD的延迟之和,TCKO为同步元件时钟输出时间。
H 实施时序约束的方法和命令 实施上述约束的基本方法是,根据已知时序信息,推算需要约束的时间值,实施约束。具体地说是这样的,首先对于一般设计,首先掌握的是TCLK,这个对于设计者来说是个已知量。前面介绍公式和图中的TCKO和TSETUP(注:有的工具软件对TCKO和TSETUP的定义与前面图形不同,还包含了到达同步器件的一段logic的时延)是器件内部固有的一个时间量,一般我们选取典型值,对于FPGA,这个量值比较小,一般不大于1~2ns。比较难以确定的是TINPUT和TOUTPUT两个时间量。 约束输入时间偏移,需要知道TINPUT,TINPUT为输入端的组合逻辑、网线和PAD的延迟之和,PAD的延时也根据器件型号也有典型值可选,但是到 达输入端的组合逻辑电路和网线的延时就比较难以确定了,只能通过静态时序分析工具分析,或者通过底层布局布线工具量取,有很大的经验和试探的成分在里面。 约束输出时间偏移,需要知道TOUTPUT,TOUTPUT为设计中连接同步元件输出端的组合逻辑、网线和PAD的延迟之和,仍然是到达输出端的组合逻辑 电路和网线的延时就比较难以确定,需要通过静态时序分析工具分析,或者通过底层布局布线工具量取,有很大的经验和试探的成分在里面。 约束的具体命令根据约束工具不同而异,首先说使用Xilinx器件的情况下,实施上述约束的命令和方法。Xilinx把上述约束统称为:OFFSET约束 (偏移约束),一共有4个相关约束属性:OFFSET_IN_BEFORE、OFFSET_IN_AFTER、OFFSET_OUT_BEFORE和 OFFSET_OUT_AFTER。其中前两个属性叫做输入偏移(OFFSET_IN)约束,基本功能相似,仅仅是约束取的参考对象不同而已。后两个属性 叫做输出偏移(OFFSET_OUT)约束,基本功能相似,也是约束取的参考对象不同而已。为了便于理解,举例说明。 输入偏移约束:时钟周期为20ns,前级寄存器的TCKO选择1ns,前级输出逻辑延时TOUTPUT为3ns,中间逻辑TLOGIC的延时为10ns, 那么TARRIVAL=14ns,于是可以在数据输入引脚附加NET DATA_IN OFFET=IN 14ns AFTER CLK约束,也可以使用OFFSET_IN_BEFORE对芯片内部的输入逻辑进行约束,其语法如下: NET DATA_IN OFFET=IN TDELAY BEFORE CLK 其中TDELAY为要求的芯片内部输入延迟,其最大值与输入数据到达时间TARRIVAL的关系:TDELAY_MAX + TARRIVAL = TPERIOD,所以TDELAY < TPERIOD - TARRIVAL = 20 - 14 =6 ns。 输出偏移约束:设时钟周期为20ns,后级输入逻辑延时TINPUT为4ns、建立时间TSETUP为1ns,中间逻辑TLOGIC的延时为10ns,那 么TSTABLE=15ns,于是可以在数据输入引脚附加NET DATA_OUT OFFET=OUT 15ns BEFORE CLK约束,也可以直接对芯片内部的输出逻辑直接进行约束,NET DATA_OUT OFFET=OUT TOUTPUT_DELAY AFTER CLK,其中TOUTPUT_DELAY为要求的芯片内部输出延迟,其最大值与要求的输出数据稳定时间TSTABLE的关系为: