timequest时序分析总结 - 图文

更新时间:2023-11-07 20:37:01 阅读量: 教育文库 文档下载

说明:文章内容仅供预览,部分内容可能不全。下载后的文档,内容与下面显示的完全一致。下载之前请确认下面内容是否您想要的,是否完整无缺。

TimeQuest就一定要搞定——时序分析基本概念 上网时间:2007年04月26日

以下内容译自Quartus II Version 7.0 Handbook, Volume 3:Verification的6-13:Timing Analysis Overview部分。 riple

TimeQuest需要读入布局布线后的网表才能进行时序分析。读入的网表是由以下一系列的基本单元构成的: riple

1. Cells:Altera器件中的基本结构单元。LE可以看作是Cell。 riple

2. Pins:Cell的输入输出端口。可以认为是LE的输入输出端口。注意:这里的Pins不包括器件的输入输出引脚,代之以输入引脚对应LE的输出端口和输出引脚对应LE的输入端口。3. Nets:同一个Cell中,从输入Pin到输出Pin经过的逻辑。特别注意:网表中连接两个相邻Cell的连线不被看作Net,被看作同一个点,等价于Cell的Pin。还要注意:虽然连接两个相邻Cell的连线不被看作Net,但是这个连线还是有其物理意义的,等价于Altera器件中一段布线逻辑,会引入一定的延迟(IC,Inter-Cell)。 riple 4. Ports:顶层逻辑的输入输出端口。对应已经分配的器件引脚。 riple 5. Clocks:约束文件中指定的时钟类型的Pin。不仅指时钟输入引脚。 riple 6. Keepers:泛指Port和寄存器类型的Cell。 riple

7. Nodes:范围更大的一个概念,可能是上述几种类型的组合,还可能不能穷尽上述几种类型。 riple 下面这幅图给出了一个时序网表的示例,展示了基本单元中的一部分。 riple

有了网表的基本单元,我们就可以描述TimeQuest进行时序分析的对象:Edges。 riple

Edges:Port-Pin,Pin-Pin,Pin-Port的连接关系都是Edges。注意,这里的Pin-Pin连接关系既包括Cell内部

的连接(Net),也包括相邻Cell外部的Pin-Pin连接。 riple

Edges根据起止路径分为三类。riple

1. Clock paths:从Clock Port或内部生成的clock Pin到寄存器Cell的时钟输入Pin。riple

2. Data paths:从输入Port到寄存器Cell的数据输入Pin,或从寄存器Cell的数据输出Pin到另一个寄存器Cell的数据输入Pin。riple

3. Asynchronous paths:从输入Port到寄存器Cell的异步输入Pin,或从寄存器Cell的数据输出Pin到另一个寄存器Cell的异步输入Pin。riple

下面这幅图给出了三种不同的Edges。riple

还要注意这样一组概念,这里的edge指的是时钟沿:riple

1. Launch Edge:前级寄存器发送数据对应的时钟沿,是时序分析的起点。riple 2. Latch Edge:后级寄存器捕获数据对应的时钟沿,是时序分析的终点。riple 下面这幅图给出了发送、捕获时钟沿的示意图。riple

有了上述的诸多概念,我们就可以得到时序分析公式的基本项了:riple

1. Data Arrival Time:Launch Edge +前级寄存器Clock path的延时 +前级寄存器Cell从时钟Pin到数据输出Pin的Net延时(uTco) + Data path的延时。riple

2. Data Required Time:Latch Edge +后级寄存器Clock path的延时 (+ uTh)或(- uTsu)。 3. Clock Arrival Time:Latch Edge +后级寄存器Clock path的延时。riple 在下一篇分析建立时间和保持时间时,就必须用到上述三个概念。

TimeQuest就一定要搞定——图解Setup Time时序余量计算 上网时间:2008年01月21日

一图胜千言。Quartus II 7.2版的TimeQuest Timing Analysis工具中新添加了―波形察看‖功能,可以帮助设计者更直观地理解特定路径上寄存器之间的时序关系。 riple

对于时序分析初学者来说,理解时序分析的公式与实际器件的物理特性之间的对应关系是一大难点,这一难点也是掌握时序分析方法的关键点。借助TimeQuest的Waveform视图,再结合Quartus的其他视图工具,理解这一难点就容易多了。 riple

下面就是一个简单的Setup Time时序分析的图解: riple

图一

图一:查看RTL Viewer。图中start_sync引脚是本设计的输入引脚。之所以命名为_sync,是因为在这个简化了的局部的设计中,start_sync虽然是FPGA的输入引脚,但是可以认为在FPGA外部驱动这一引脚的电路是与本设计同步的。对于start_sync信号,只要设置适当的input_delay约束,就可以进行时序分析。另外,在图中还有一个引脚是ack_async,之所以命名为_async,是因为该引脚是一个异步输入引脚,在FPGA外部驱动这一引脚的电路与本设计的时钟关系不确定。对于ack_async信号,没有必要进行时序分析(需要设置false_path约束),而且还需要进行跨时钟域信号传播的两级同步处理。start_sync是本示例时序分析的起点。 riple

图二

图二:查看Technology Map Viewer。图中具有双层结构的模块是FPGA器件一个Logic Cell的示意图,这个Logic Cell对应了设计中的sreg.01寄存器和其次态逻辑。从该图中可以看出,典型的LC由实现组合逻辑的LUT(内层框内图形)和实现时序逻辑的REG(外层D触发器)构成。本文举例进行时序分析的对象是从―FPGA输入引脚start_sync‖到―sreg.01的REG寄存器D输入端‖之间的路径。 riple

图三

图三:查看Chip Planner视图。图中所示是start_sync所在的I/O Cell与sreg.01所在的Logic Cell之间的Inter-Cell延时,该延时值为3.940ns,在图六的时序分析计算公式中会引用。在图四和图五中分别给出了I/O Cell和Logic Cell的内部视图。 riple

图四

图四:查看start_sync输入引脚的I/O Cell。图中所示是start_sync所在的I/O Cell的Resource Property Editor

本文来源:https://www.bwwdw.com/article/ow62.html

Top