没有合适的资源?快使用搜索试试~ 我知道了~
首页TimeQuest就一定要搞定-完整版.pdf
资源详情
资源评论
资源推荐

一
一一
一、
、、
、为什么一定要搞定
为什么一定要搞定为什么一定要搞定
为什么一定要搞定
时序分析在 ASIC 设计中的重要性毋须多说(我也不甚了解)。在 FPGA 设计中,很少
进行细致全面的时序约束和分析,Fmax 是最常见也往往是一个设计唯一的约束。这一方面
是由 FPGA 的特殊结构决定的,另一方面也是由于缺乏好用的工具造成的。好的时序约束可
以指导布局布线工具进行权衡,获得最优的器件性能,使设计代码最大可能的反映设计者的
设计意图。
花些功夫在静态时序分析上既可以保证设计质量,也可以促使设计者再认识自己的代
码。这后一点,对于我们这些逻辑设计初学者来说,尤为重要。从门级(在 Altera 的 FPGA
器件中是 LE 级)再认识自己的代码,可以更深入地体会语言的特点,也可以更深入地理解
综合工具对语言的处理,对于设计能力的提高帮助很大。
TimeQuest 是 Altera 在 6.0 版的软件中加入的具备 ASIC 设计风格的静态时序分析
(STA)工具。通过初步试用和观看网络教程,我感觉 TimeQuest 确实比 Timng Analyzer
功能强大一些,而且使用界面比较友好,易于进行深入的时序约束和结果分析。
TimeQuest 采用 Synopsys Design Constraints(SDC)文件格式作为时序约束输入,
不同于 Timing Analyzer 采用的 Quartus Settings File(QSF)约束文件。这正是 TimeQuest
的优点:采用行业通用的约束语言而不是专有语言,有利于设计约束从 FPGA 向 ASIC 设计流
程迁移;有利于创建更细致深入的约束条件。

二
二二
二、
、、
、时序分析基本概念
时序分析基本概念时序分析基本概念
时序分析基本概念
以下内容译自 Quartus II Version 10.0 Handbook, Volume 3:Verification 的
SectionII 7.3:Timing Analysis Overview 部分。
TimeQuest 需要读入布局布线后的网表才能进行时序分析。读入的网表是由以下一系列
的基本单元构成的:
1. Cells:Altera 器件中的基本结构单元(例如,查找表、寄存器、IO 单元、PLL、存
储器块等)。LE 可以看作是 Cell。
2. Pins:Cell 的输入输出端口。可以认为是 LE 的输入输出端口。注意:这里的 Pins
不包括器件的输入输出引脚,代之以输入引脚对应 LE 的输出端口和输出引脚对应 LE 的输入
端口。
3. Nets:同一个 Cell 中,从输入 Pin 到输出 Pin 经过的逻辑。特别注意:网表中连
接两个相邻 Cell 的连线不被看作 Net,被看作同一个点,等价于 Cell 的 Pin。还要注意:
虽然连接两个相邻 Cell 的连线不被看作 Net,但是这个连线还是有其物理意义的,等价于
Altera 器件中一段布线逻辑,会引入一定的延迟(IC,Inter-Cell)。
4. Ports:顶层逻辑的输入输出端口。对应已经分配的器件引脚。
5. Clocks:约束文件中指定的时钟类型的 Pin。不仅指时钟输入引脚。
6. Keepers:泛指 Port 和寄存器类型的 Cell。
7. Nodes:范围更大的一个概念,可能是上述几种类型的组合,还可能不能穷尽上述
几种类型。
下面这幅图给出了一个时序网表的示例,展示了基本单元中的一部分。

有了网表的 基本单元,我们就可以描述 TimeQuest 进行时序分析的对象:Edges。
Edges:Port-Pin,Pin-Pin,Pin-Port 的连接关系都是 Edges。注意,这里的 Pin-Pin
连接关系既包括 Cell 内部的连接(Net),也包括相邻 Cell 外部的 Pin-Pin 连接。
Edges 根据起止路径分为三类。
1. Clock paths:从 Clock Port 或内部生成的 clock Pin 到寄存器 Cell 的时钟输入
Pin。
2. Data paths:从输入 Port 到寄存器 Cell 的数据输入 Pin,或从寄存器 Cell 的数
据输出 Pin 到另一个寄存器 Cell 的数据输入 Pin。
3. Asynchronous paths:从输入 Port 到寄存器 Cell 的异步输入 Pin,或从寄存器
Cell 的数据输出 Pin 到另一个寄存器 Cell 的异步输入 Pin。
下面这幅图给出了三种不同的 Edges。
还要注意这样一组概念,这里的 edge 指的是时钟沿:
1. Launch Edge:前级寄存器发送数据对应的时钟沿,是时序分析的起点。
2. Latch Edge:后级寄存器捕获数据对应的时钟沿,是时序分析的终点。
下面这幅图给出了发送、捕获时钟沿的示意图。本例在 launch edge(0 ns)时寄存器
reg1 发送数据,在 latch(5 ns)时寄存器 reg2 捕获数据。

时序分析公式的基本公式:
内部寄存器到寄存器的路径
内部寄存器到寄存器的路径内部寄存器到寄存器的路径
内部寄存器到寄存器的路径(
((
(internal registe
internal registeinternal registe
internal register
rr
r-
--
-to
toto
to-
--
-register paths
register pathsregister paths
register paths)
))
)
(1)Data Arrival Time:Launch Edge + 前级寄存器 Clock path 的延时 + 前级寄存器
Cell 从时钟 Pin 到数据输出 Pin 的 Net 延时(uTco) + Data path 的延时。
(2)Data Required Time:Latch Edge + 后级寄存器 Clock path 的延时 (+ uTh)或(-
uTsu)。
(3)Clock Arrival Time:Latch Edge + 后级寄存器 Clock path 的延时。
(4)Clock Setup Slack = Data Required Time – Data Arrival Time
从外部输入引脚到内部寄存器
从外部输入引脚到内部寄存器从外部输入引脚到内部寄存器
从外部输入引脚到内部寄存器(
((
(path from an input port to a internal register
path from an input port to a internal registerpath from an input port to a internal register
path from an input port to a internal register)
))
)
(1)Clock Setup Slack = Data Required Time – Data Arrival Time
(2)Data Arrival Time = Launch Edge + Clock Network Delay +Input Maximum Delay +
Pin-to-Register Delay
(3)Data Required Time = Latch Edge + Clock Network Delay to Destination Register
– μtSU.
从内部寄存器到
从内部寄存器到从内部寄存器到
从内部寄存器到输出
输出输出
输出引脚
引脚引脚
引脚(
((
(path
path path
path from
fromfrom
from an internal register to an output port
an internal register to an output port an internal register to an output port
an internal register to an output port)
))
)
(1)Clock Setup Slack = Data Required Time – Data Arrival Time
数据到达时间
数据需要时间(建立or保持)
时钟到达时间
建立时间SLACK
外部器件到FPGA的时钟网络延时
FPGA输入引脚的最大延时
FPGA内部从输入引脚到目
的寄存器的延时
就是数据应该在什么
时候到达
FPGA---->外部器件

(2)Data Arrival Time = Launch Edge + Clock Network Delay to Source Register +
μtCO + Register-to-Pin Delay
(3)Data Required Time = Latch Edge + Clock Network Delay – Output Maximum Delay
of Pin
在下一篇分析建立时间和保持时间时,就必须用到上述三个概念。
三
三三
三、
、、
、时序分析基本公式
时序分析基本公式时序分析基本公式
时序分析基本公式
以下内容译自 Quartus II Version 7.0 Handbook, Volume 3:Verification 的 6-28:
Clock Analysis 部分。
TimeQuest 静态时序分析的对象包括:寄存器和寄存器之间的路径、I/O 之间、I/O 和
寄存器之间的路径、异步复位和寄存器之间的路径。TimeQuest 根据 Data Arrival Time 和
Data Required Time 计算出时序余量(Slack)。当时序余量为负值时,就发生了时序违规
(Timing Violation)。
需要特别指出的一点是:由于时序分析是针对时钟驱动的电路进行的,所以分析的对
象一定是“寄存器-寄存器”对。在分析涉及到 I/O 的时序关系对时,看似缺少一个寄存器
分析对象,构不成“寄存器-寄存器” 对,其实是穿过 FPGA 的 I/O 引脚,在 FPGA 外部虚拟
了一个寄存器作为分析对象。
一、 建立时间(Setup Time)检查:
时钟到源寄存器的延时(数
据是在时钟下传输的,所以
要加上时钟延时)
数据在存储器内部传输的时间
寄存器到输出引脚的延时
应该是可对于外部器件来说的
到达外部器件的时钟延时
?????????
不是很明白,现阶段
理解为FPGA的输出
引脚最大延时
剩余39页未读,继续阅读













Clock...
- 粉丝: 5
- 资源: 4
上传资源 快速赚钱
我的内容管理 收起
我的资源 快来上传第一个资源
我的收益
登录查看自己的收益我的积分 登录查看自己的积分
我的C币 登录后查看C币余额
我的收藏
我的下载
下载帮助

会员权益专享
安全验证
文档复制为VIP权益,开通VIP直接复制

评论0