[转发]时序约束教程

[转发]时序约束教程

Provider: USTC-NSRL-Wu RZ
Time :      2020.11.1
Version:   1.0

Download Source Document

此处仅引用其中的【引入】章节,供入门参考。

CC-BY-NC

This content by USTC-NSRL-Wu RZ is licensed under a Creative Commons Attribution-NonCommercial 4.0 International license.

1. 引入 主要涉及内容包含     时序特性,延迟计算,时序分析,约束创建,验证工作。



ASIC设计与FPGA设计的区别

ASIC 设计流程 ASIC  的制造能够分为 逻辑设计与 物理设计 两个部分 。 逻辑设计从高层次的设计要求和芯片架构开始,需要满足各种特定要求。接着便是对应的 寄存器传输级 设计 , 简称为 RTL 设计 。这是一种是使用硬件描述语言进行高层次抽象设计的过程。随后的逻辑综合将RTL级别的抽象描述转化为门级的等效实现。在这一步中,设计者能够根据等效门级实现对系统中的时序进行一定的处理,来满足芯片设计的时序要求。在时序满足后将会插入相应的时序检测端口,用于检测芯片的性能。

随后,将对未加入时序检测的设计和插入时序检测的设计进行时序上新验证,以确保插入的时序检测电路不会对原有的时序逻辑产生影响。在上述的时序检测中,所有使用的技术被称为 STA 静态时序分析 。
STA是一种静态检查设计能力以满足预定时序要求的方法,无需仿真。大多数STA引擎要求设计者指定时序约束。STA步骤完成了逻辑设计步骤,是逻辑设计和物理设计之间的桥梁。
物理设计从平面规划开始。经过初步的时序分析,设计的逻辑块被放置在优化的区域,宽高比,以及块之间的信号如何交互。目的是确保没有太多的块间交互导致拥塞或路由困难。这些因素直接影响功率、面积、时间和性能。一旦实现了最优的平面布置图,块之间的连接就被布线。 在综合阶段,人们对时钟网络做了许多假设,因为在平面布置图之后才能获得该级别的设计信息。之后再进行时钟树综合,尽可能均匀地分配时钟,以减少设计不同部分之间的时钟偏差。          平面规划、布置和布线的这一步称为设计布局。在物理设计过程中,由于在初始实现过程中所做的假设逐渐固化,STA可以多次执行以执行更精确的时序分析。

随后,需要将设计布局与综合网表之间进行匹配。再进行 DRC 设计规则检查的流程。最后可以生成整体的设计。
FPGA的设计流程
在逻辑设计部分,FPGA设计流程与ASIC流程类似。用户使用HDL编写RTL描述。通过仿真验证了HDL的功能,并将其合成为逻辑门。但是,物理设计取决于生产商。合成后,网络列表被编译成需要映射到的FPGA上。这个编译步骤包括将网络列表功能映射到逻辑块,放置逻辑块,并使用目标FPGA中可用的轨迹在块之间进行布线。地点和路线是由时序约束驱动的,以确保满足集成电路的时序要求。一旦地点和路线完成,电路的延迟将以SDF(标准延迟格式)生成。该SDF文件与布局后网络列表一起用于进行带后注释的全时序门级仿真(FTGS)。由于仿真并不总是详尽无遗的,因此在这一阶段也要进行精确的静态时序分析。所有验证完成后,设备即被编程。

由于FPGA流的执行速度更快,因此使用FPGA制作ASIC和SOC的原型变得非常普遍。这就是所谓的FPGA原型。



综合的概念
综合过程是整个设计中涉及到时序的第一步。综合意味着从高层次的设计转化为门级电路的网表文件。除了这种功能之外,综合也能够满足一些其余的要求,例如 功耗,频率等等。综合工具对于不同类型的电路有不同的划分: 时钟树综合工具,数据路径综合工具,逻辑综合工具 。通常所指的综合被称为 逻辑综合工具。
综合所能做的工作 

优化在面积,功耗,性能上进行衡量,选择能够满足要求的参数
输入重排改变输入的连接,使得信号之间的时间延迟变小
输入,输出缓冲避免驱动能力不足的情况

时间分析与约束简述
时间分析包含两类,动态时序分析(DTA)与静态时序分析(STA)。动态时序分析是指我们在输入端应用一组向量,观察信号到达电路中不同点的时间。通过了解所应用的输入和观察到的信号之间的时间差,我们就知道了信号经过特定路径段需要多长时间。对于触发器,通过观察D输入相对于CLK输入何时到达,我们知道具体的触发器是否满足设置和保持要求。因此,这个过程依赖于时间模拟,也依赖于所应用的刺激。另一方面,静态时序分析分析分析电路的拓扑结构,以计算相同的信息,而不需要任何输入向量。 STA工具可以从设计描述中得到相应的电路描述。通过设置时序约束条件,检查对应的时序是否得到要求。而约束为工程师提供了一种向STA工具指定时序要求的方法。STA用于进行 setup 和 hold 分析,并计算时序路径的 slack 。为了进行这种分析,STA在很大程度上依赖于延迟计算。

Timing Paths时序路径是指设计中数据信号传播过程中所经过的逻辑路径。每一条时序路径都存在与之对应的一个始发点和一个终止点。
时序分析中定义的始发点分为:组合逻辑单元的数据输入端口和时序单元的时钟输入端口。
时序分析中定义的终止点分为:组合逻辑单元的数据输出端口和时序单元的数据输入端口。
Setup and Hold建立时间与保持时间
建立时间 =   数据的到达时间 – 数据的时钟采样时间
保持时间 =  数据的去除时间 – 数据的时钟采样时间
pulse-width , recovery , removal脉冲宽度,异步信号的恢复,去除时间
slackSetup slack 建立松弛 = (数据建立时间 – 满足时序要求的最小数据建立时间)= Ma – SHold slack 保持松弛 = (数据去除时间 – 满足时序要求的最小数据保持时间)= H – Mi

基于 TCL 语言 的 约束 SDC
TCL 语言语法 【 关于此语言基础 需要专门进行学习 】可查看对应的附件文档 Tcl 教程的相关内容 
SDC 语言

1. Constraints for timing                                                  时序约束语句

2. Constraints for area and power                                   面积与功耗约束语句

3. Constraints for design rules                                         设计规则约束语句

4. Constraints for interfaces                                              接口约束语句

5. Constraints for specific modes and configurations      特殊模型与配置语句

6. Exceptions to design requirements                              时序例外的设计要求语句

7. Miscellaneous commands                                             其余命令  

8. Design Query in SDC

RobertLiang

A post-graduate in USTC.

You must be logged in to post a comment