FPGA时序分析笔记(一)

Timing paths(时序路径分类):

  1. input - to - register timing path (输出到寄存器路径)
    1.png

  2. register – to – register timing path (寄存器到寄存器路径)2.png

  3. register – to – output timing path (寄存器到输出路径)3.png

  4. Combinational Paths (组合逻辑路径)4.png

Input 输入后没有经过时序处理,纯组合逻辑到output输出。

Input delay (输入延时)
Input delay.png
依据原则就是,将其补成一个register – to – register path
所以外围模拟计算input delay时clk用的时input的clk
T input delay <=> Tc-q + 到达in之前的路径延迟

Output delay
Output delay.png

依据原则同样是,将其补成一个register – to – register path
所以外围模拟计算output delay时clk与前一个触发器的用同一个时钟源
T output delay <=>从out之后到外围下一个触发器之前的路径延迟 + Tsetup

Constraining Combinational Paths by Virtual Clock (通过虚拟时钟约束组合逻辑路径)
Constraining Combinational Paths by Virtual Clock.png

在某些情况下,有必要创建一个存在于系统中但不在设计中的时钟。
如果未指定源对象,则使用虚拟时钟,该时钟在设计中实际上不存在。
源对象表示设计中时钟的位置。 源对象可以是设计的输入端口或设计内的引脚
虚拟时钟没有来源。
它存在于内存中,但不是设计的一部分。
虚拟时钟指定相对于时钟的输入和输出延迟
虚拟时钟未连接到当前设计中的任何端口或引脚。

同步时钟 :

  • 从同一个时钟源出来的 可以经过pll分频成不同的频率 但其相位关系已知 故同步
  • 从不同时钟源出来的,即使频率相同 也不同步, 即: 同源同频 <=>同步 ,同源不同频 <=>同步 ,同频不同源 <=> 不同步

静态时序分析:

时骗路径.png

在一个时钟驱动下数据在时钟上升沿从FFI出来 经过组合逻辑运算之后
在下一个时钟上升沿来临前至少setup时间 到达FF2让其寄存住数据
(附加:在流水线中,其中一步是比较大的组合逻辑,运算时间比较久,而下一级计算比较简单,根据上图可以得到启示,向下一级借时间。具体做法是:比如上图FF1,FF2之间为本级运算,那么可以在FF2的CLK前加一些buff,使其向后偏移一定时间,则该级拥有了比之前长的计算时间,但是由于下一级的时钟沿(FF3)到达时间不变,则相当于缩短了下一级的计算时间)
时间裕量.png

如果slack为正则说明有时间裕量,时序要求满足。

fpga时序分析笔记一
fpga时序分析笔记二
fpga时序分析笔记三
fpga时序分析笔记四

编辑 重设标签(回车键确认) 标为违禁 关闭 合并 删除

提问于 2019-04-27 08:38:31 +0800

这个帖子被标记为一个社区wiki

这个帖子是一个wiki(维基). 任何一个积分 >500的人都可以完善它