第7章 约束与时延分析

  1. 1、下载文档前请自行甄别文档内容的完整性,平台不提供额外的编辑、内容补充、找答案等附加服务。
  2. 2、"仅部分预览"的文档,不可在线预览部分如存在完整性等问题,可反馈申请退款(可完整预览的文档不适用该条件!)。
  3. 3、如文档侵犯您的权益,请联系客服反馈,我们会尽快为您处理(人工客服工作时间:9:00-18:30)。

6.3 时序约束的基本概念



时序约束是指路径之间的约束,任何一条路径 都有起点和终点,最重要的是,路径是不能穿 过触发器的 CPLD/FPGA至少有三种不同的基本路径: 一是触发器到触发器之间的路径; 一是从输入端口到内部触发器之间的路径; 一是从内部触发器到输出端口之间的路径。 时序约束有几个重要的基本概念:建立时间、 保持时间、时钟到输出延时、传播延时等等。
源端 D
SET
目的端
Q
B
D
SET
Q
Tclk1 clk
CLR
Q
CLR
Tclk2
Q
Tclk2 -Tclk1 Tco +Tpd +Tsu
Tco(min) Tpd | Tskew(max) | Th (min)
图 6–15 时序约束示意图

图 6–16 异步时序逻辑示意图
源端 D
SET
目的端

芯片内部的Fmax的计算方法如下
f max
1 B ( E C ) Tco Tsu

整个系统时钟频率 Fmax的计算方法为:
f max
1 Max{cycle _ input _ clk , cycle _ in _ clk , cycle _ output _ clk}


当对Clock-to-PAD路径进行时序约束时,需要 电路设计工程师、CPLD/FPGA工程师和布局布 线工程师共同决定信号在Clock-to-PAD路径的 延时、信号在PCB板上的延时以及接收端芯片 可承受的延时容限各为多少,最后以文档的形 式确定时序约束。

PAD-to-Setup路径 图6-6是另外一种常见的时序模型,也叫做输入模型。
6.2 管脚约束及电气标准设定

管脚约束是CPLD/FPGA的基础之一。 管脚约束主要有三种方式: 一是采用各家公司的集成开发环境来 实现管脚约束 二是设计专门的管脚约束文件 三是采用注释的方式在代码中自动锁 定
6.2.1 管脚约束文件

不同的厂商支持不同的管脚约束文件 如Lattice所采用的管脚约束文件为.lpf文件 Xilinx支持的管脚约束文件为.ucf文件 Altera所使用的管脚约束文件为.qsf文件。

图 6–1 简单的时序模型
6.3.1路径

Clock-to-setup路径 Clock-to-setup路径是我们常见到的时序模型,一般用来描述 CPLD/FPGA内触发器之间的延时。
D
SET
Q
逻辑和布线 延时
D
SET
Q
CLR
Q
CLR
Q
REG1 clk
REG2

图 6–2 时序模型示意图
图 6–3 时序逻辑波形示意图


路径的延时包括: 源端触发器的时钟端到输出端的延时 逻辑和布线延时 时钟的布线延时 建立时间 通过计算可以读出最小的时钟周期和最高的时钟频率 。

Clock-to-PAD路径

输出模型。任何一个CPLD/FPGA在系统中都不是单独 存在的,而CPLD/FPGA的时序不仅仅只是内部的时序 模型,同样它可以驱动下一级芯片,从而产生一个新 的时序模型
D
SET
Q
逻辑和布线 延时
PAD
CLR
Q
clk

图 6–4 Clock-to-PAD路径
CLK data Tco Tpd Tobuf Valid

图 6–5 Clock-to-PAD路径波形图
Clock-to-PAD设计注意点:


从系统层面来看,Clock-to-PAD路径是整个系 统中路径延时的一部分,要计算整个路径延时 和最小的时钟周期还需要考虑信号在PCB上的 走线延时、飞行时间以及下一级接收芯片的输 入时序模型。 从CPLD/FPGA层面上来看,它包括时钟端到触 发器输出端延时、逻辑和布局布线延时、输出 缓冲延时等等。



内连线延时比逻辑延时大得多,现在的光刻制程不能够 产生足够的精确形状,产生的趋肤效应却很明显。 解决的方案之一是采用统计静态时延分析(SSTA), 它的基本理念就是为每一条线路的每一段上的每一个 信号延迟生成一个概率函数,然后再估算信号通过整 个路径的总延时概率函数。 避免单次静态时延分析生成的报告失真,从统计学的 角度观察整个芯片时延状况 要求的软件算法非常复杂
Tco(min) Tpd | Tskew(max) | Th (min)

异步电路的基本设计,它有许多种情况 如同频异相、同相异频、既不同相也不同频 等等。 总体的原则还是需要确保建立时间和保持时 间满足设计的要求。 如果频率不同,相位差恒定的话,可以采用 下面的公式来设计时钟约束 如果既不同频也不同相,则需要从电路设计 的角度去考虑其稳定性。
D
SET
Q
CLR
Q
clk
逻辑和布线 延时

图 6–8 Paths Ending at Clock Pin of Flip-Flop
clk Clk_FF

图 6–9 Paths Ending at Clock Pin of Flip-Flops波形图

PAD to PAD路径

图6-10表示为一条纯组合逻辑的路径,从芯片输入 的管脚开始,经过任意级的组合逻辑电路,然后从 另外一个输出管脚输出。

时钟偏斜与抖动 时钟偏斜是指同一时钟源产生的时钟信号由 于经过不同的布局布线延时到达两个不同的 寄存器的时钟端的时间之差。 建议采用全局时钟资源来驱动设计中的主要 时钟信号,以减少时钟偏斜。


时钟抖动与时钟偏斜的概念不一样。 时钟抖动有很多种情况 周期抖动 频率抖动 相位抖动 在时序约束中,我们主要考虑的是周期抖动。 所谓的周期抖动是指实际的时钟周期与理想中的时 钟之间的偏差。

建立时间 建立时间就是指数据必须在时钟有效沿到来之前稳 定的最小时间长度。 当建立时间不够的时候,触发器采集不到数据, 或者采集到的数据是错误的数据,从而导致整个 时序逻辑的错误。 任何一个时序逻辑芯片都会存在建立时间这个概念 ,一般使用 Tsu来表示
MicroTsu data 数据延时 D
逻辑和布线 延时

图 6–10 PAD to PAD路径


整条路径的延时分为输入延时、输出延时以及 中间的逻辑和布局布线延时。 如果放在整个系统层面来看,严格来说不能称 之为路径

因为这个时延路径的源端和目的端都不在这个芯片 里面,而在上一级或者上上级的芯片中和下一级的 芯片中。
6.3.2 时序约束参数

Paths Ending at Clock Pin of Flip-Flops


此路径是指时钟信号从源端到达各个具体触发器的 时钟端的路径。 在CPLD/FPGA中,设计工程师都推荐采用全局时钟 来驱动触发器 但是尽管采用全局时钟,时钟到达触发器之间还 是有一段延时时间,这段时间在计算时延的时候 必须考虑进去。
Q
B
D
SET
Q
CLR
Q
clk2
CLR
Q
clk1
clk1 clk2
6.5 静态时延分析

静态时延分析是CPLD/FPGA设计中的一个很重要的时 序分析手段 在设计中主要有三个阶段需要涉及静态时延分析: 逻辑综合阶段——需要检查综合的时序质量 在布局后——需要检查布局对信号时序的影响 在布线后——需要整体考虑信号的质量,包括逻辑 时延和布线延时。
第7章 约束与时延分析
本章主要内容

约束的基本概念 管脚约束 时序约束 约束的分析方法 静态时延分析
6.1约束的目的


约束的终极目的就是为了设计达到所要 实现的功能 主要有如下几个方面的作用。 管脚位置锁定及电气标准设定。 提高设计的工作频率。 获得正确的时序分析报告。
源端 A D
SET
目的端
Q
B
D
SET
Q
CLR
Q
CLR
Q
1.2ns clk 2.12ns
图 6–14 时钟偏斜示意图
6.4 时序约束的本质


时序约束的本质就是要使建立时间和保持时间 满足设计的要求 当设计同步电路的时候,要使电路正常工作则 需要保证时钟周期要不小于数据的路径延时。
Tco(max) + Tpd(max) + Tsu <= Tcycle + Tskew(max)

slack _ clock _ period 是指两个不同时钟的有效边沿之差




如果slack为负,数据保持时间不够,主要是由于数据 路径延时大于时钟延时而造成的。 从建立时间来来考虑,最坏的情况是slack是一个时钟 周期减去时钟抖动的最大绝对值 而从保持时间来考虑,最坏的情况是slack一个时钟周 期加上时钟抖动的最大绝对值。 对于异步电路来说,由于采用不同的时钟信号进行驱 动,

Xilinx公司的管脚约束文件.ucf文件的语法规则: 通用规则: .ucf文件对于大小写敏感,

也就是是说同一单词的大小写不同表示不同的含义 ,标识符必须与代码中的名字一致。但是约束中的 关键字对大小写不敏感。


语句以分号结尾,一个语句可以多行表述。 语句之间不分先后次序,不过建议管脚约束顺 序与代码中管脚列表顺序一致。 采用“#”或者“ ”的方式来进行注释
PAD
逻辑和布线 延时
D
SET
Q
CLR
Q
clk

图 6–6 PAD-to-Setup路径
CLK Valid Tibuf Tpd

Tsu Valid
图 6–7 PAD-to-Setup路径波形图



从CPLD/FPGA层面来看输入模型的路径延时包括了输入 缓冲延时、逻辑及布局布线延时以及建立时间 从系统角度来看,整条路径的延时还需要包括上一级芯片 的输出模型延时以及PCB走线延时和信号的飞行时间 因此要确定对此路径进行时序约束,需要召集电路设计工 程师和布局布线工程师一起讨论最后决定此路径的时序约 束。
6.7 动态时延分析




动态时延分析(DTA)是另外一种时延分析的 方法,目前已经不常用。 不仅需要使用事件驱动仿真器,而且必须使用 Testbench。 动态时序分析采用延时对来估算信号变化引起 的事件。 在动态延时分析中,需要引入两个新的状态: “一定会变成高电平,但是时间未知” “一定会变成低电平,但是时间未知”。
SET
Q
数据延时
D
SET
Q
数据延时
CLR
Q
CLR
Q
时钟延时 clk

图 6–12 计算建立时间的时序模型图

保持时间


保持时间是指当时钟信号有效沿到来之后, 数据必须保持的最小的稳定时间 一般采用Th来表示。 当保持时间不够的时候,数据传输将出现紊 乱,系统将出现亚稳态的问题。


时钟到输出延时 当时钟到达一个触发器并成功地采样到数据端的数 据的时候,并不会立即就表现在输出端上,这之间 会有一段延时时间,叫做时钟到输出延时时间 一般用 Tco表示。 传播延时 数据从寄存器出来以后,到达下一级寄存器之间的 逻辑和布线延迟,就叫做传播延时 一般使用Tpd 表示。
Slack Slack用来衡量一个设计是否满足时序——正的slack表示满足时 序,而负的slack则表示不满足时序。
slack required _ clock _ cycle actual _ clock _ cycle
slack slack _ clock _ period (Tco Tpd Tsu )



静态时延设计特别适合于经典的同步设计和流水线 结构, 静态时延设计不仅速度很快,而且不需要 Testbench,最重要的是能够完全测试每一条路径 外。 静态时延分析工具在处理锁存器、异步电路和组合 反馈逻辑的时候存在不足。

静态时延分析时,需要考虑以下方面: 在分析之前,需要先审查电路是否是同步电 路,时钟有无毛刺,异步复位置位信号是否 有毛刺等逻辑问题。 先检查布局布线的约束文件,确保约束全面 。

wenku.baidu.com
Fmax


对于芯片内部而言,它是寄存器到寄存器之间的延时 对于整个芯片而言,还需要考虑进入芯片的建立保持时间以及输出 芯片的 Tco。 把它取反就是最小时钟周期的概念。
源端 目的端
外部输入延时
A
D
SET
Q
B
D
SET
Q
Q
外部输出延 时
CLR
Q
E
CLR
Q
C clk
图 6–13 计算Fmax的时序模型示意图

静态时延分析时,需要考虑以下方面: 需要特别注意双沿都被使用的时钟信号,延 时要求只能是半个周期。

如果时钟信号的占空比不是50%,那么延时要求 只能是有效边沿之差。


对于有I/O管脚的路径,需要考虑输入和输 出延时。 时钟信号尽量使用全局时钟管脚,否则要考 虑时钟偏斜并加以约束。
6.6 统计静态时延分析
相关文档
最新文档