DC综合中的时序约束、时序分析
- 格式:doc
- 大小:79.50 KB
- 文档页数:4
dc综合时钟约束规则
摘要:
一、引言
二、DC 综合时钟约束规则的定义与作用
三、DC 综合时钟约束规则的具体内容
1.规则一
2.规则二
3.规则三
四、实施DC 综合时钟约束规则的意义
五、结论
正文:
一、引言
在我国,DC 综合时钟约束规则在设计和实施过程中具有重要意义。
本文将对DC 综合时钟约束规则进行详细介绍,以帮助大家更好地理解和应用这一规则。
二、DC 综合时钟约束规则的定义与作用
DC 综合时钟约束规则是指在数字电路设计中,对时钟信号进行约束以满足设计要求的一系列规定。
其主要作用是确保电路在各种工作条件下都能正常运行,提高电路的稳定性和可靠性。
三、DC 综合时钟约束规则的具体内容
DC 综合时钟约束规则包括以下三个主要内容:
1.规则一:时钟信号的边沿必须满足一定的要求。
例如,时钟信号的上升沿和下降沿必须在一定的时间范围内,以确保数字电路能够正确识别时钟信号的边沿。
2.规则二:时钟信号的周期必须满足一定的要求。
例如,时钟信号的周期必须在一定的时间范围内,以确保数字电路能够按预期进行计数。
3.规则三:时钟信号的相位必须满足一定的要求。
例如,时钟信号的相位必须在一定的时间范围内,以确保数字电路能够正确识别时钟信号的相位。
四、实施DC 综合时钟约束规则的意义
实施DC 综合时钟约束规则有助于确保数字电路的稳定性和可靠性,提高电路的运行效率。
同时,这一规则还有助于降低电路设计和验证的复杂度,缩短设计周期。
五、结论
总之,DC 综合时钟约束规则在数字电路设计和实施过程中具有重要意义。
异步fifo的sdc约束
异步FIFO的时序约束是设计异步FIFO时非常重要的一步,它确保了数据在FIFO中的稳定传输。
在进行时序约束时,需要考虑时钟域的转换、数据传输的延迟以及时序分析等因素。
以下是针对异步FIFO的SDC约束的多角度回答:
1. 时钟域转换,在异步FIFO中,往往会涉及到不同时钟域之间的数据传输,因此需要在时序约束中明确指定数据从一个时钟域到另一个时钟域的延迟限制。
这样可以确保数据在时钟域之间的稳定传输。
2. 时钟频率,在SDC约束中,需要指定异步FIFO所使用的时钟频率。
这有助于综合工具正确地分析和优化FIFO的时序性能。
3. 数据传输延迟,对于异步FIFO的写入和读取操作,需要在SDC约束中指定数据传输的延迟限制。
这有助于确保数据能够按时到达目的地,并且在读取时能够正确地被采样。
4. 时序分析,在SDC约束中,需要进行综合和时序分析,以确保异步FIFO在不同工艺、温度和电压条件下都能正常工作。
这包括
时序收敛、时序边界的定义等方面的约束。
5. 时序路径约束,在异步FIFO的时序约束中,需要指定关键
路径和时序收敛路径,以确保FIFO的关键路径能够满足时序要求,
并且各个路径能够在设计规定的时钟周期内完成。
综上所述,异步FIFO的SDC约束涉及到时钟域转换、时钟频率、数据传输延迟、时序分析以及时序路径约束等方面。
合理设置这些
约束可以确保异步FIFO在实际应用中能够稳定可靠地工作。
dc异步电路约束方法DC异步电路约束方法DC异步电路约束方法是在数字电路设计中常用的一种技术,用于控制电路的时序和数据流。
在设计数字电路时,为了确保电路的正确性和稳定性,需要对电路进行一系列的约束。
本文将介绍DC异步电路约束方法,并通过具体的案例来说明如何应用这些方法。
一、时序约束时序约束是指对电路中信号的传输时间进行限制,以确保电路在正确的时间顺序下工作。
时序约束的主要目的是避免电路中的冲突和竞争条件,防止出现时序违规的情况。
1. 时钟约束:在异步电路中,时钟信号是非常关键的。
在设计时,需要明确时钟信号的频率、占空比以及时钟的相位关系。
时钟约束的目的是确保时钟信号的稳定性和正确性,避免时钟抖动和时钟偏移等问题。
2. 时序路径约束:时序路径是指信号从输入端到输出端的传输路径。
在设计时,需要对时序路径进行约束,以确保信号在规定的时间内能够传输到目标端口。
时序路径约束的主要目的是避免信号延迟和时序违规问题。
3. 清零和复位约束:在异步电路中,清零和复位信号是非常重要的。
在设计时,需要明确清零和复位信号的时序关系,以确保电路能够正确地进行清零和复位操作。
二、数据流约束数据流约束是指对电路中数据的传输和处理进行限制,以确保电路能够正确地处理和输出数据。
数据流约束的主要目的是避免数据竞争和数据错误问题。
1. 数据有效性约束:在设计时,需要明确数据的有效性和无效性条件,以确保电路能够正确地判断数据的有效性和无效性。
数据有效性约束的主要目的是避免数据竞争和数据错误问题。
2. 数据延迟约束:在设计时,需要对数据的传输延迟进行约束,以确保数据能够在规定的时间内到达目标端口。
数据延迟约束的主要目的是避免数据延迟和时序违规问题。
3. 数据处理约束:在设计时,需要对数据的处理进行约束,以确保电路能够正确地处理和输出数据。
数据处理约束的主要目的是避免数据竞争和数据错误问题。
三、案例分析为了更好地理解DC异步电路约束方法的应用,我们以一个简单的异步计数器电路为例进行分析。
DC综合归纳总结Author:WJDate:Dec 11 2014 概述:●综合是将RTL源代码转换成门级网表的过程。
●电路的逻辑综合一般由三个步骤组成,即综合=转化+逻辑优化+映射(Synthesis=Translation+Logic Optimization+Mapping)●在综合过程中,优化进程尝试完成库单元的组合,使组合成的电路能最好地满足设计的功能、时序和面积的要求●综合是约束驱动(constraint driven)的,给定的约束是综合的目标。
约束一般是在对整个系统进行时序分析得到的,综合工具会对电路进行优化以满足约束的要求。
●综合以时序路径为基础进行优化。
(注意:电路中的cell,对于前一级是load,其电容越大负载能力越大;对于后一级是drive,其电阻越小驱动能力越大。
有:大器件大电容小电阻,小器件小电容大电阻)启动文件:1. search_path指定了综合工具的搜索路径。
2. target_library为综合的目标库,它一般是由生产线提供的工艺相关的库。
3.synthetic_library是综合库,它包含了一些可综合的与工艺无关的IP。
dw_foundation.sldb是Synopsys提供的名为Design Ware的综合库,它包含了基本的算术运算逻辑、控制逻辑、可综合存储器等IP,在综合是调用这些IP有助于提高电路性能和减少综合时间。
4. link_library是链接库,它是DC在解释综合后网表时用来参考的库。
一般情况下,它和目标库相同;当使用综合库时,需要将该综合库加入链接库列表中。
5. symbol_library为指定的符号库。
6. synlib_wait_for_design_license用来获得DesignWare-Foudation的许可(license)。
7. alias语句与UNIX相似,它定义了命令的简称。
8. 另外,在启动文件中用符号“/*” 和“*/” 进行注释。
DC学习(9)综合后处理时序分析DC时序分析与内部嵌⼊的时序分析仪(STA)⼀:编译及编译后步骤1: 第⼀次综合 compile_ultra | -no_boundary | -no_autoungroup | -scan | -timing | -retime2: 查看时序 report_constraint -all_violation report_timing3: 若第⼆步时序检查有violation,则可进⾏group_path增添路径,优化多条路径,改进时序约束等等。
group_path -critical -weight ......4:再次编译 complile_ultra......5: 若violation还有,继续修改,若violation改进不了,则返回rtl代码阶段,修改代码。
⼆:report_timing1:check_timing与report_timing区别 check_timing:检查路径是否都有约束,约束是否完整,在综合之前检查; report_timing:检查时序有没有问题,在综合之后检查。
2:时序报告的查看 下⾯主要介绍时序报告的检测,毕竟timing is everything。
关于时序报告的查看,前⾯也讲得很清楚了,这⾥再来具体讲述⼀下。
Design Compiler中,常⽤report_timing命令来报告设计的时序是否满⾜⽬标(Check_timing:检查约束是不是完整的,在综合之前查看,要注意不要与这个混淆)。
时间报告有四个主要部分:·第⼀部分是路径信息部分,如下所⽰:主要报告了⼯作条件,使⽤的⼯艺库,时序路径的起点和终点,路径所属的时钟组,报告的信息是作建⽴或保持的检查,以及所⽤的线负载模型。
·第⼆部分是路径延迟部分, 这个路径延迟部分是DC计算得到的实际延迟信息;命令执⾏后,对于下图中的路径,得到的⼀些路径信息,有了单元名称(point),通过该单元的延时(Incr),经过这个单元后路径的总延时等信息:上图的解释: 路径的起点是上⼀级D触发器的的时钟端。
第四章DC综合的设计约束第四章设计约束设计约束描述了设计的⽬标,这⾥所说的设计⽬标主要包括时延⽬标和⾯积⽬标两部分,相应的,设计约束也由时延约束和⾯积约束两部分组成。
4.1 时序电路的时延约束时序电路的时延约束主要包括时钟主频、输⼊延时、输出延时等内容。
4.1.1 创建时钟在DC中使⽤create_clock命令创建系统时钟(该命令对当前设计有效),该命令的语法如下:create_clock<端⼝名>-period <周期>-waveform <边沿列表>z<端⼝名>:设计的时钟端⼝z-period <周期>:时钟周期,单位⼀般为nsz-waveform <边沿列表>:时钟上升沿和下降沿的时刻,从⽽决定时钟信号的占空⽐。
⼀般上升沿的时刻设为0例4-1(为ddfs设计创建⼀个5ns的时钟,时钟端⼝为clk,占空⽐为1:1)current_design ddfscreate_clock clk –period 5 –waveform {0 2.5}由于时钟端的负载很⼤, DC会使⽤Buffer来增加其驱动能⼒。
但是⼀般情况下,设计者都使⽤布局布线⼯具来完成这项⼯作,所以有必要指⽰DC不要对时钟⽹络进⾏修改,可以使⽤以下命令:set_dont_touch_network clk在图形界⾯中,进⼊ddfs的符号描述,选中其时钟端(clk),选择Attributes -> Clocks -> Specify菜单。
在弹出的Specify Clock 对话框的Period域中填⼊指定的周期值(本例中是10),并选择Don’t Touch Network复选框即可(如图4-1所⽰)。
完成以上步骤后,可以在ddfs的clk端⼝上看到红⾊的⽅波标志(如图4-2所⽰)。
(a) Specify Clock菜单 (b) 创建时钟对话框中创建时钟图4-1 在Design Analyzer4.1.2 设置输⼊延时输⼊延时的概念可⽤图4-3来解释。
DC中关于Clock Latency的设置1. 介绍时钟延迟对于数字电路设计来说是一个非常重要的概念。
在DC综合工具中,时钟延迟的设置可以对数字电路的性能和功耗产生重大影响。
正确地设置时钟延迟可以帮助设计人员优化数字电路的性能和功耗,并确保电路能够按照设计要求正常运行。
2. 时钟延迟的定义时钟延迟是指时钟信号从发出到实际被接收的时间延迟。
在数字电路设计中,时钟延迟直接影响着电路中各个时序元件的工作状态。
时钟延迟主要包括时钟上升沿到达各个时序元件的时间差和各个时序元件的时钟上升沿到输出信号稳定的时间。
3. DC中的时钟延迟设置在DC综合工具中,时钟延迟可以通过设置时钟时序约束来实现。
时钟时序约束包括时钟到达时间(clock arrival time)和时钟延迟时间(clock latency)。
时钟到达时间指的是时钟信号到达时序元件的时间,而时钟延迟时间则是指时钟信号的延迟时间。
4. 时钟延迟的重要性正确地设置时钟延迟对于数字电路设计来说是非常重要的。
在实际应用中,时钟延迟的设置可以影响电路的时序性能、功耗以及时序分析的准确性。
如果时钟延迟设置不当,可能导致电路的工作不稳定,甚至无法满足设计时序要求。
5. 时钟延迟设置的优化策略在DC中,可以通过设置时钟延迟来优化电路的性能和功耗。
一般来说,可以采用以下策略来优化时钟延迟的设置:5.1 根据时序分析结果调整时钟延迟,确保电路的时序性能满足设计要求。
5.2 结合时序优化工具,对时钟延迟进行全局优化,以降低电路的功耗和时序容忍窗口,提高电路的性能。
5.3 对时钟树进行时钟延迟的设置,以确保时钟到达各个时序元件的时间是稳定和一致的。
6. 结语时钟延迟的设置在数字电路设计中起着非常重要的作用。
在DC综合工具中,正确地设置时钟延迟可以帮助设计人员优化数字电路的性能和功耗。
通过合理地设置时钟延迟,可以确保电路能够按照设计要求正常运行,并且在实际应用中取得良好的性能和功耗表现。
DC综合中的时序约束、时序分析
A时序约束的概念和基本策略
时序约束主要包括周期约束(FFS到FFS,即触发器到触发器)和偏移约束(IPAD到FFS、FFS到OPAD)以及静态路径约束(IPAD到OPAD)等3种。
通过附加约束条件可以使综合布线工具调整映射和布局布线过程,使设计达到时序要求。
例如用OFFSET_IN_BEFORE约束可以告诉综合布线工具输入信号在时钟之前什么时候准备好,综合布线工具就可以根据这个约束调整与IPAD相连的Logic Circuitry的综合实现过程,使结果满足FFS的建立时间要求。
附加时序约束的一般策略是先附加全局约束,然后对快速和慢速例外路径附加专门约束。
附加全局约束时,首先定义设计的所有时钟,对各时钟域内的同步元件进行分组,对分组附加周期约束,然后对FPGA/CPLD输入输出PAD附加偏移约束、对全组合逻辑的PAD TO PAD路径附加约束。
附加专门约束时,首先约束分组之间的路径,然后约束快、慢速例外路径和多周期路径,以及其他特殊路径。
附加约束的基本作用
提高设计的工作频率
对很多数字电路设计来说,提高工作频率非常重要,因为高工作频率意味着高处理能力。
通过附加约束可以控制逻辑的综合、映射、布局和布线,以减小逻辑和布线延时,从而提高工作频率。
获得正确的时序分析报告
几乎所有的前端设计平台都包含静态时序分析工具,利用这类工具可以获得映射或布局布线后的时序分析报告,从而对设计的性能做出评估。
静态时序分析工具以约束作为判断时序是否满足设计要求的标准,因此要求设计者正确输入约束,以便静态时序分析工具输出正确的时序分析报告。
周期(PERIOD)的含义
周期的含义是时序中最简单也是最重要的含义,其它很多时序概念会因为软件商不同略有差异,而周期的概念确是最通用的,周期的概念是FPGA/ASIC时序定义的基础概念。
后面要讲到的其它时序约束都是建立在周期约束的基础上的,很多其它时序公式,可以用周期公式推导。
周期约束是一个基本时序和综合约束,它附加在时钟网线上,时序分析工具根据PERIOD约束检查时钟域内所有同步元件的时序是否满足要求。
PERIOD约束会自动处理寄存器时钟端的反相问题,如果相邻同步元件时钟相位相反,那么它们之间的延迟将被默认限制为PERIOD约束值的一半。
如下图所示
时钟的最小周期为:
TCLK = TCKO +TLOGIC +TNET +TSETUP -TCLK_SKEW
TCLK_SKEW =TCD2 -TCD1
其中TCKO为时钟输出时间,TLOGIC为同步元件之间的组合逻辑延迟,TNET为网线延迟,TSETUP为同步元件的建立时间,TCLK_SKEW为时钟信号TCD2和TCD1延迟的差别。
数据和时钟之间的约束
为了确保芯片数据采样可靠和下级芯片之间正确地交换数据,需要约束外部时钟和数据输入输出引脚之间的时序关系(或者内部时钟和外部输入/输出数据之间的关系,这仅仅是从采用了不同的参照系罢了)。
约束的内容为告诉综合器、布线器输入数据到达的时刻,或者输出数据稳定的时刻,从而保证与下一级电路的时序关系。
这种时序约束在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表示。
其实他们所要描述的是同一个问题,仅仅是时间节点的定义上略有不同。
下面依次介绍。
关于输入到达时间
输入到达时间的计算,时序描述如下图所示:
定义的含义是输入数据在有效时钟沿之后的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 <TCLK 公式3
这就是Tarrival应该满足的时序关系。
其中TINPUT为输入端的组合逻辑、网线和PAD 的延迟之和,TSETUP为输入同步元件的建立时间。
数据延时和数据到达时间的关系
TDELAY为要求的芯片内部输入延迟,其最大值TDELAY_MAX与输入数据到达时间TARRIVAL的关系如上图所示。
也就是说:TDELAY_MAX+TARRIVAL=TPERIOD
所以:
TDELAY<TDELAY_MAX=TPERIOD-TARRIVAL
要求输出的稳定时间
从下一级输入端的延迟可以计算出当前设计输出的数据必须在何时稳定下来,根据这个数据对设计输出端的逻辑布线进行约束,以满足下一级的建立时间要求,保证下一级采样的数据是稳定的。
计算要求的输出稳定时间如下图所示:
公式的推导如下:
定义: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<TCLK
这个公式就是TSTABLE必须要满足的基本时序关系,即本级的输出应该保持怎么样的稳定状态,才能保证下级芯片的采样稳定。
有时我们也称这个约束关系是输出数据的保持时间的时序约束关系。
只要满足上述关系,当前芯片输出端的数据比时钟上升沿提早TSTABLE 时间稳定下来,下一级就可以正确地采样数据。
其中TOUTPUT为设计中连接同步元件输出端的组合逻辑、网线和PAD的延迟之和,TCKO为同步元件时钟输出时间。
实施时序约束的方法和命令
实施上述约束的基本方法是,根据已知时序信息,推算需要约束的时间值,实施约束。
具体地说是这样的,首先对于一般设计,首先掌握的是TCLK,这个对于设计者来说是个已知量。
前面介绍公式和图中的TCKO和TSETUP(注:有的工具软件对TCKO和TSETUP 的定义与前面图形不同,还包含了到达同步器件的一段logic的时延)是器件内部固有的一个时间量,比较难以确定的是TINPUT和TOUTPUT两个时间量。
约束输入时间偏移,需要知道TINPUT,TINPUT为输入端的组合逻辑、网线和PAD的延迟之和,PAD的延时也根据器件型号也有典型值可选,但是到达输入端的组合逻辑电路和网线的延时就比较难以确定了,只能通过静态时序分析工具分析,或者通过底层布局布线工具量取,有很大的经验和试探的成分在里面。
约束输出时间偏移,需要知道TOUTPUT,TOUTPUT为设计中连接同步元件输出端的组合逻辑、网线和PAD的延迟之和,仍然是到达输出端的组合逻辑电路和网线的延时就比较难以确定,需要通过静态时序分析工具分析,或者通过底层布局布线工具量取,有很大的经验和试探的成分在里面。
输入偏移约束:时钟周期为20ns,前级寄存器的TCKO选择1ns,前级输出逻辑延时TOUTPUT为3ns,中间逻辑TLOGIC的延时为10ns,那么TARRIV AL=14ns,于是可以在数据输入引脚附加NET DA TA_IN OFFET=IN 14ns AFTER CLK约束,也可以使用OFFSET_IN_BEFORE对芯片内部的输入逻辑进行约束,其语法如下:
NET DATA_IN OFFET=IN TDELAY BEFORE CLK
其中TDELAY为要求的芯片内部输入延迟,其最大值与输入数据到达时间TARRIV AL 的关系:TDELAY_MAX + TARRIV AL = TPERIOD,所以TDELAY < TPERIOD - TARRIV AL = 20 - 14 =6 ns。
输出偏移约束:设时钟周期为20ns,后级输入逻辑延时TINPUT为4ns、建立时间TSETUP 为1ns,中间逻辑TLOGIC的延时为10ns,那么TSTABLE=15ns,于是可以在数据输入引脚附加NET DATA_OUT OFFET=OUT 15ns BEFORE CLK约束,也可以直接对芯片内部的输出逻辑直接进行约束,NET DA TA_OUT OFFET=OUT TOUTPUT_DELAY AFTER CLK,其中TOUTPUT_DELAY为要求的芯片内部输出延迟,其最大值与要求的输出数据稳定时间TSTABLE的关系为:
TOUTPUT_DELAY_MAX+TSTABLE= TPERIOD。
TOUT_DELAY< TPERIOD - TSTABLE = 20 - 15 = 5ns。