首页 | 新闻 | 新品 | 文库 | 方案 | 视频 | 下载 | 商城 | 开发板 | 数据中心 | 座谈新版 | 培训 | 工具 | 博客 | 论坛 | 百科 | GEC | 活动 | 主题月 | 电子展
返回列表 回复 发帖

时序分析/约束(二)——静态时序分析(STA)

时序分析/约束(二)——静态时序分析(STA)

1. 时序分析的作用
工作频率对数字电路而言至关重要。提高工作频率意味着更强大的处理能力,但是也带来了时序瓶颈:时序冲突的概率变大,电路的稳定性降低。所以为了使电路的性能达到设计的预期目标,并满足电路工作环境的要求,必须对一个电路设计进行时序、面积、负载等多方面的约束,并自始至终使用这些约束来驱动EDA软件工作。

ISE 具有一定的自动优化能力,对于一般的低速设计(处理时钟不超过100MHz),基本上不需要时序方面的任何手动分析和处理;但是对于高速和大规模设计,需要设计人员自行添加时序方面的控制和处理,通过多次反复操作,根据反馈结果逐步调整设定,直到满足要求为止。
以前小规模FPGA设计,只需要做动态的门级时序仿真就课同时完成逻辑功能验证和时序验证;随着FPGA设计规模和速度的提升,有必要将逻辑功能验证和时序验证分开:首先,逻辑功能的正确性,可以通过RTL级或者门级的功能仿真来验证;其次,时序分析通过STA(Static Timing Analysis,静态时序分析)验证。
时序分析的主要作用就是查看FPGA内部逻辑和布线的延迟,验证其是否满足设计者的约束。
确定芯片最高工作频率
控制工程的综合、映射、布局布线等关键环节,减少逻辑和布线的延迟,从而尽可能提高工作频率。一般情况下,处理时钟高于100MHz的时候,必须添加合理的时序约束文件。

检查时序约束是否满足
检查目标模块是否满足约束,若不满足,通过时序分析器定位程序中不满足的部分,并给出具体原因,然后设计人员修改程序,直到满足约束。

分析时钟质量
当采用了全局时钟等优质资源后,仍然不满足目标约束,则需要降低所约束的时钟频率。

确定分配引脚的特性
通过时序分析可以指定I/O引脚所支持的接口标准、接口速率和其他电气特性。

2. STA的原理
STA的目的就是要保证DUT(Device Under Test)中所有的路径满足内部时序单位对建立时间和保持时间的要求。信号可以及时的从任一时序路径的起点传递到终点,同时要求在电路正常工作所需的时间内保持恒定。

STA是通过“穷举法”抽取整个设计电路的所有时序路径,按照约束条件分析电路中是否有违反设计规则的问题,并计算出设计的最高频率。STA是基于时序路径的,它将DUT分解为4种主要的时序路径。时序分析的起点为源寄存器,终点是目的寄存器。起点只能是设计的基本输入端口或者是内部寄存器的时钟输入端口;终点只能是设计的基本输出端口或者内部寄存器的数据输入端口。起点和终点排列组合一共有4种基本时序路径:
输入端口 -> 触发器的数据D端 (Pad-to-Setup)
输入端口 -> 输出端口 (Pad-to-Pad)
触发器的clk端 -> 触发器的数据D端 (Clock-to-Setup)
触发器的clk端 -> 输出端口 (Clock-to-Pad)

STA在分析时,计算时序路径上数据信号的到达时间和要求时间的差值,以判断是否存在违反设计规则的错误。数据到达时间:数据从起点到终点经过的所有器件和连线延迟时间之和。要求时间:根据约束条件计算出的从起点到终点的理论时间,默认参考值为一个时钟周期。计算公式如下:
Slack = Trequired_time - Tarrival_time

如果时序裕量Slack为正,表示满足时序,负值表示不满足时序。STA按照上式分析设计中所有路径,如果Slack为负值,则该路径为影响设计的关键路径,需要修改设计以达到时序要求。
3. 约束方法
对于4种不同的路径,有不同的约束语法。在ISE 中,新建ucf文件,双击后按照向导可以很方便的添加各种约束。

1. Clock-to-Setup
起点是源触发器的clk端,终点是目的触发器的数据D端。包含了源触发器内部clock-to-Q的延迟 + 触发器之间组合逻辑的延迟 + 目的触发器的建立时间。用周期约束来限制。

2. Clock-to-Pad
起点是源触发器的clk端,终点是芯片的输出引脚。包含了源触发器内部clock-to-Q的延迟 + 目的触发器到输出引脚之间的逻辑延迟。用OFFSET/FROM:TO来限制。如果OFFSET,计算延迟时会包含时钟输入buffer/routing延时;使用FROM:TO约束,延时从触发器自身开始,不包含输入路径,比较精确,所以使用相对频繁一些。

3. Pad-to-Setup
起点是芯片的输入信号端口,终点是同步电路模块(触发器,锁存器,RAM)。包含了经过输入buffer和所有的组合逻辑,不包含任何同步电路模块和双向端口,是数据到达芯片的最大时间要求。用OFFSET/FROM:TO来限制。

4. Pad-to-Pad
起点是芯片输入信号端口,终点是芯片输出信号端口。包含了中间的所有组合逻辑,但不包含任何同步逻辑。用FROM:TO来限制。

参考资料:
1. 《xilinx FPGA开发实用教程》田耘 徐文波
记录学习中的点点滴滴,让每一天过的更加有意义!
返回列表