FPGA静态时序分析
合集下载
相关主题
- 1、下载文档前请自行甄别文档内容的完整性,平台不提供额外的编辑、内容补充、找答案等附加服务。
- 2、"仅部分预览"的文档,不可在线预览部分如存在完整性等问题,可反馈申请退款(可完整预览的文档不适用该条件!)。
- 3、如文档侵犯您的权益,请联系客服反馈,我们会尽快为您处理(人工客服工作时间:9:00-18:30)。
CLK ASYNC
Recovery:
CLR
The minimum time an asynchronous signal must be stable BEFORE clock edge
The minimum time an asynchronous signal must be stable AFTER clock edge
• 输入的路径 • 内部(寄存器到寄存器)的路径 • 输出的路径 22
课程安排
• FPGA设计基本流程 • 静态时序分析基本概念 • 寄存器的基本参数 • 时钟参数满足的条件 • 实例:电路的时序分析方法
23
路径和分析类型
Async Path
PRE D Q
Data Path
PRE D Q
CLR
CLR
tc-o:寄存器从有效时钟沿到来到输出有效的最大时间
违反建立或保持时间,都会造成触发器工作异常,产生Metastability。 为了可靠工作,在建立时间开始到保持时间为止的这段时间内,触发器 的输入端信号不应发生变化。
26
Recovery & Removal
SET
D Q
CLK
Trec Trem
ASYNC Valid
REG1
PRE
REG2
D
Q
Comb. Logic
PRE
D
Q
CLR
CLR
Tclk2
Th
Latch Edge CLK
Data must remain valid to here REG2.CLK REG2.D Data Valid
Tclk2
Th
36
Data Required Time = Clock Arrival Time + T h
34
数据要求时间- Setup
The minimum time required for the data to get latched into the destination register
REG1
PRE
REG2
D
Q
Comb. Logic
PRE
D
Q
CLR
CLR
Tclk2
Tsu
Latch Edge CLK
FPGA静态时序分析
1
课程安排
• FPGA设计基本流程 • 静态时序分析基本概念 • 寄存器的基本参数 • 时钟参数满足的条件 • 实例:电路的时序分析方法
2
课程安排
• FPGA设计基本流程 • 静态时序分析基本概念 • 寄存器的基本参数 • 时钟参数满足的条件 • 实例:电路的时序分析方法
3
FPGA设计流程
15
课程安排
• FPGA设计基本流程 • 静态时序分析基本概念 • 寄存器的基本参数 • 时钟参数满足的条件 • 实例:电路的时序分析方法
16
时序分析的目的
• 电路的正常工作依赖于电路工作的快慢,即电路 的时序特征 • 时序分析可以在芯片设计阶段,为设计者提供电 路的时序特征。
• 时序分析可以为电路的正常工作提供时序保证。 它可以完成对电压、温度、工艺等参数的分析。
调用模块的 行为仿真模 型
RTL代码
测试程序 (test benc h)
测试数据
逻辑仿真器
9
逻辑综合
• 通过映射和优化,把逻辑设计描述转换为和物理 实现密切相关的工艺网表:
RTL代码 调用模块的 黑盒子接口 设置综合目标 和约束条件
逻辑综合器
EDIF网表 (netlist)
HDL网表 (netlist)
Setup Slack
The margin by which the setup timing requirement is met. It ensures launched data arrives in time to meet the latching requirement. T REG1 REG2
Input
D
Q
CLK Clock
时钟不确定性
输入时钟抖动是时钟不确定性的原因之一(Clock Uncertainty)
时钟偏斜(clock skew)
• 所有时序设计和分析都以时钟网络为参考。路径延迟分析 必须考虑时钟质量。 • 时钟偏斜是一个时钟信号沿着同一个时钟网络到达源触发 器和目标触发器的时间差。. • 所有时钟网络布线应该使用FPGA提供的专用时钟资源,否 则时钟偏斜会非常严重。 • 时钟偏斜分为负时钟偏斜和正时钟偏斜,主要对时钟周期 产生影响。时序分析器能够报告时钟偏斜问题。
17
怎么办?
• 功能是否可以和时序分开?
• 关心信号变化发生的时刻,而不是信号如何发 生变化。
18
静态时序分析的模型
• 电路是同步运行的。 • 电路被触发器分割。
触发器
组合电路
触发器
19
基本原理
• 不考虑长时间的仿真序列
• 将信号的各种变化“ 折叠”到一个时钟周期 • 寻找信号最晚进入稳定的时刻 • 寻找信号最早脱离稳定的时刻 • 通过电路在极端情况下的分析保证电路在各种情况下 都可以正常工作 • “静态”相对于“动态”是指没有仿真。
20
静态时序分析
• 定义:在不模拟的条件下,计算电路是否符合 时延约束。
• 步骤: • 设计分解为一系列的时延路径 • 每一条路径都计算延时 • 检查所有的路径
21
同步电路的简单时延约束
• 同步电路设计 • 数据的来源是时钟触发的器件 • 数据的目的是时钟触发的器件
• 目的 • 规定设计中的所有路径的时延约束
6
设计的整体规划
• 设计规模的初步估计,大致应该选择哪一层次的 芯片;
• 设计时序的宏观规划: • 频率和时钟结构; • 可能的关键路径,着重优化; • 模块的进一步细化,考虑可重用性等的规划: • 可以考虑基本单元,比如加法、乘法器和寄存 器等。
7
设计实现
• 用电路框图或者HDL描述实现自己的设计:
FPGA 设计流程
tclk
时序分析
- 确认性能满足要求 - 静态时序分析
门级模拟
- 时序仿真 - 确认设计在目标工艺中的正常工作
板级模拟&测试
- 仿真版设计 - 板上程序&测试
5
系统规划和预算
• 系统功能的总体规划: • 功能集的定义; • 端口的定义;
• 模块的基本划分和功能定义: • 每个模块应该完成的功能; • 模块之间的接口定义; • 模块间通讯的问题一定要考虑好,硬件通信的成本 一般比较大。
Data must be valid here REG2.CLK REG2.D Data Valid
Tclk2
Tsu
Data Required Time = Clock Arrival Time - Tsu
35
数据要求时间- Hold
The minimum time required for the data to get latched into the destination re gister
30
时钟偏斜(clock skew)
• Clock skew: Variation of in arrival time of a clock transition to flops • Clock skew is caused by mismatches in the clock paths:
• • • • • Unequal wire length Unequal buffer delay Unequal load IR drop In-die process variation
设计规范
设计导入/RTL实现
- 面向结构或功能的描述
RTL 仿真
- 功能仿真 - 确认逻辑功能不考虑延时等因素
LE
M4K
M512
综合
I/O
- 将设计转化成和器件相关的描述 - 优化以达到面积和性能的要求
布局布线
- 将逻辑实体映射到目标器件中去,并使其满足面 积和性能的要求。 - 确定布线需要的资源
4
时钟到达时间
The time for clock to arrive at destination register’s clock input
REG1
PRE
REG2
D
Q
Comb. Logic
PRE
D
Q
CLR
CLR
Tclk2
Latch Edge
CLK
Tclk2
REG2.CLK
Clock Arrival Time = latch edge + T clk2
逻辑综合器
EDIF网 表 (netlist)
调用模块 的 综合模型
设置布局布 线约束条件
FPGA厂家工具
下载/编程文 件
HDL网表 (netlist)
SDF文件 (标准延时格 式)
12
时序逼近
• 时序逼近流程是一个推荐的设计方法可以帮助设 计满足它们的时序目标
13
时序仿真
测试数据
FPGA厂家工具
• 简单的设计可以用电路框图; • 大型复杂的一般倾向于用HDL描述; • HDL描述和计算机编程中的高级语言描述有很大不 同,每一个描述都要考虑硬件的实现能力,是不是 可以综合的等等,目前HDL语言标准中仍然有不能 被综合的语法,这些要尤其注意。
8
功能仿真
• 对逻辑功能进行验证:
• 不考虑时序问题,认为门都是理想门,没有延时; • 详细一些的可以认为门延时都是一样,而忽略互连线的延时。
24
Launch & Latch Edges
REG1
D
SET
Q
Comb. Logic
REG2
D
SET
Q
CLR
CLR
CLK
Launch Edge
CLK
DATA Data Valid
Latch Edge
Launch Edge: Latch Edge:
25
the edge which “launches” the data from source register the edge which “latches” the data at destination regist er (with respect to the launch edge, selected by timing a nalyzer; typically 1 cycle)
31
课程安排
• FPGA设计基本流程 • 静态时序分析基本概念 • 寄存器的基本参数 • 时钟参数满足的条件 • 实例:电路的时序分析方法
32
数据到达时间
The time for data to arrive at destination register’s D input
REG1
PRE
D
Q
HDL网表 (netlist)
பைடு நூலகம்
SDF文件 (标准延时格式)
FPGA基本单 元仿真模型
测试程序 (test bench)
逻辑仿真器
14
物理验证
• 将生成的二进制配置文件下载到FPGA上,进行实际的 功能和时序的测试; • 由于FPGA常常是作为整个系统一部分,因此还应该将F PGA放到整个系统中进行验证,整个系统工作正常,才 算完成了开发过程。
Removal:
27
Recovery Time
• Recovery time - is the minimum length of time that the act ive low set or reset signal must remain high before the ac tive edge of the clock to ensure correct functioning of th e cell.
Register的参数
T D Q Clk Clk
D
tsu Q
thold tc-o
tsu:建立时间,在时钟有效沿到来之前寄存器数据输入应保持稳定的时 间,它间接约束了组合逻辑的最大延时
thold:保持时间,在寄存器数据输入的引脚的数据在系统有效时钟沿到 来后需要保持稳定的时间,它间接约束了组合逻辑的最小延时
Clock Paths Async Path
Three types of Paths: 1. Clock Paths 2. Data Path 3. Asynchronous Paths* Two types of Analysis: 1. Synchronous – clock & data paths 2. Asynchronous* – clock & async paths
10
门级仿真
逻辑综合器
HDL网表 (netlist)
调用模块 的行为仿 真模型
测试程序 (test benc h)
测试数据
逻辑仿真器
一般来说,对FPGA设计这一步可以跳过不做,
但可用于debug综合有无问题
11
布局布线
• 将综合生成的网表,在FPGA内部进行布局布线的设计, 并最终生成用于下载的二进制配置文件;
Tclk1
CLR
Comb. Logic
Tdata
REG2
PRE
D
Q
CLR
TCO
Launch Edge CLK
REG1.CLK REG1.Q
Tclk1 Tco
Data Valid
Tdata
REG2.D Data Valid
33
Data Arrival Time = launch edge + T clk1 + Tco +Tdata