1 基于TimeQuest软件查看时序报告
2 分析时序路径
3 回顾基于RTL的逻辑时序优化的基本思路
4 在关键路径上插入寄存器来优化时序
如果不对设计加入约束,软件会自动设计中的时钟,给个默认的约束,1GHZ。
所有报告都在Timequest中来看。
全编译 - tools - Timequest timing analyzer - create timing netlist 创建网表 - read SDC
查看时序报告
查看时钟报告: 看设计中有哪些时钟,以及其属性
diagnostic(诊断) - report clocks 点击clocks summary
报告时钟: 查看 Fmax Summary
报告时钟的最大频率
datasheet - report Fmax Summary
查看关键路径余量(余量最小的路径)
建立时间余量 setup FPGA内部一般分析建立时间
slack 建立时间余量
from node 起点 源寄存器
to node 终点 目标寄存器
launch clock 源寄存器发射数据的时钟
latch clock 目的寄存器接受数据的时钟
relationship :launch clock edge 和 latch clock edge 的时间差 如果两个时钟非一个信号,而是有一定相位关系的同源时钟,则relationship不再是时钟的周期值。
skew : 时钟偏斜
data delay :
report top failing paths 对应最大情况的时钟路径
使用TimeQuest查看具体路径信息:
选中一条路径,右击,选择report timing
report timing
-
Data path 信号的每个路径
-
waveform launch到latch
时钟约束
clocks Summary - edit clock constriant
改成100MHZ 10ns时钟
没有错误路径,我们仍然想查看路径信息,此时手动报告路径
report timing : 手动去填写信息
clock delay: 即为Tclk1,到达源寄存器的延迟 2.631ns
data delay: Tco(时钟到达寄存器时钟端到q端的延迟) 和 传输路径延迟Tdata合并。
clock delay : 到达目的寄存器的延迟 Tclk2
数据通过Tclk1 和data——delay后,到达目的寄存器的D端口。
uTsu: 目的寄存器的建立时间 -0.021ns,Tsu为负值是合理的,是altera cyclone IV E系列寄存器时序模型的一个等效值。
报告中 clock Tskew = Tclk2 - Tclk1 + clock pessimism
分析计算Tclk2时候,会认为时钟从源端口出发按照最快的速度到达目的寄存器时钟端口,所以此处Tclk2处的值大于等于该值。
而Tclk1小于等于改值,会认为会认为时钟从源端口出发按照最慢的速度到达源寄存器时钟端口。
最终要分析slack最小的情况,需要Tclk2最小,Tclk2最大来算。 所以时钟到达目的寄存器和源寄存器。中间有一段路径是重合的,这样的结果是偏小的,所以要加入clock pessimism悲观时间。
时钟通过同一段路径按照不同速率计算出的时间在真实情况是不存在的,我们在分析时过分悲观,所以要加入这个时钟悲观值。
clock pessimism:0.015 改值被算入clock skew
clock uncertain: -0.02
clock uncertain:会导致可能时钟上升沿提前到来,Tsu也会向前推,slack最小 Tsu向左推。4
该值会被计算到data require time: 数据需求时间
总结:
Tco:时钟上升沿到达寄存器时钟端,到达源寄存器Q端口时间
Tsu:建立时间,寄存器要求的其数据端口的值,必须提前时钟上升沿到时钟端口的时间值。
数据到达时间:
Tclk1 + Tco + Tdata
数据需求时间:
Tclk + Tclk2 -Tsu:
Tclk + Tclk2 -Tsu+ clock uncertain + clock pessimism
余量: slack = Tclk + Tskew - Tsu - Tco -Tdata
= Tclk + Tclk2 + Tclock Pessimism + Tclock Uncertainy - Tsu -Tclk1-Tco -Tdata