|
EDA365欢迎您登录!
您需要 登录 才可以下载或查看,没有帐号?注册
x
1. 时序分析介绍+ }3 r5 c x" l4 ?* \
通过对设计的全面时序分析,使您能够对电路性能进行验证,识别时序违规,并推动 Fitter 的逻辑布局,从而满足您的时序目标。 Intel® Quartus® Prime Timing Analyzer 使用行业标准约束和分析方法对设计中所有的寄存器到寄存器,I/O 和异步复位路径的全部数据所需的时间,数据到达时间和时钟到达时间进行报告。
) \- f' S( H* j$ O# |; S4 M7 x% ETiming Analyzer 验证是否满足设计正常运行所要求的时序关系,并根据您指定的约束确认实际信号到达时间。本使用指南介绍了基本的时序分析概念,并对使用 Intel Quartus Prime Timing Analyzer 进行了逐步说明 。
# v2 y7 q' p5 \/ L' T, K
# |$ o0 V$ S9 o9 ~' k" Y( g1.1. 时序分析基本概念 D& F+ }: A W7 t7 B7 S5 X4 [
本用户指南对以下用于描述时序分析的概念作了介绍:& a5 @+ A& A( M6 W7 o
时序分析器术语(Timing Analyzer Terminology):2 r1 {# x- c* i. f
到达时间(Arrival time):相对于寄存器管脚上的所需时间,Timing Analyzer 计算寄存器管脚上数据和时钟到达时间。8 L+ d3 M& {1 m" B3 _
单元(Cell):包含查找表(LUT),寄存器,数字信号处理(DSP)模块,存储器模块或者输入/输出单元的器件资源。在 Intel Stratix® 系列器件中,LUT 和寄存器包含在逻辑单元(LE)中(modeled as cell)。
* W+ K( ?1 Y( T) u% \: s0 i. f2 Z时钟(Clock):命名信号,代表设计内部或外部的时钟域。" B; s2 ]. N, ?4 S# ]
时钟数据分析(Clock-as-data analysis):针对复杂路径的更精确时序分析,包括与时钟路径的 PLL 相关的任何相移,并考虑到针对数据路径的任何相关相移。' N7 z' E: }8 v$ Q$ h! `
时钟保持时间(clock hold time):从时钟输入上的一个有效跳变后到输入管脚(驱动数据输入或者时钟使能)上的信号必须稳定的最小时间间隔。, |: \8 h) t/ I# K* N6 ^$ m5 q
时钟启动和锁存沿(Clock launch and latch edge):启动沿(launch edge)是发送寄存器或者其他顺序单元数据的时钟沿,用作数据传输的源。锁存沿(latch edge)是采集寄存器或者其他顺序单元数据端口上的数据的有效时钟沿,用作数据传输的目的地。/ F+ \: p/ ^/ _$ t X# a' R
时钟悲观(clock pessimism):时钟悲观(clock pessimism)是指在静态时序分析期间使用与公共时钟路径相关联的最大(而非最小)延迟变化。
3 s( V. D$ |7 [) X; |) e# X时钟设置(Clock setup):在数据输入上一个信号的置位与时钟输入从低电平到高电平的跳变的置位之间的最小时间间隔。
4 \, p& s3 \3 |; s+ R+ QNet:两个或多个互连组件的集合。
$ T& h6 ?; h3 G! k% J节点(Node):代表承载一个信号的导线,信号在设计中不同逻辑组件之间传播。最基本的计时网表单元。用于表示端口,管脚和寄存器。( C7 b9 T/ ^% a9 }& z! v* ?
管脚(Pin):单元的输入或输出。
! W. b- d' M0 l( _4 {6 i* r4 |端口(Port):顶级模块输入或输出;例如,器件管脚。/ h$ r" r% f& G- O4 U
亚稳态(Metastability):当信号在不相关或异步时钟域中的电路之间传输时,可能出现亚稳态问题。Timing Analyzer分析设计中亚稳态的可能性,并计算同步寄存器链的MTBF。$ y* p" X( T$ U1 k+ b+ X
多角分析(Multicorner analysis):慢速和快速时序角的时序分析,在各种电压,工艺和温度操作条件下验证您的设计。* O! V$ Y( v V7 a W( h* C' f
8 V$ |/ L; b6 c0 t$ X% ]
1.1.1. 时序路径和时钟分析5 a) v8 k* E V& ?$ ?$ q
Timing Analyzer 对设计中确定的所有时序路径的时序性能进行测量。Timing Analyzer 需要一个时序网表,描述设计节点和连接以进行分析。Timing Analyzer 通过分析时钟的启动沿(launch edge)与锁存沿(latch edge)之间的时钟设置和发保持关系来对设计中的所有寄存器到寄存器传输进行时钟关系的确定。/ o4 f+ Q- j' a$ g+ B$ A
, q" W- |. B" a4 u* h1 B9 z, A
1.1.1.1. 时间网表
& f# @! F( a5 y# c* i U. [5 R相对于确定全部时序路径的所需要时间,Timing Analyzer 使用时序网表数据来确定设计中的数据和时钟到达时间。在运行 Fitter 或进行完整编译后,可以随时在 Timing Analyzer 中生成时序网表。 T4 q3 p+ z" l, M/ _
下图显示了时序网表如何将设计单元划分为单元,管脚,网络和端口来进行延迟的测量。
/ y. \4 n/ l6 F9 o7 T
- Q. B7 \) n. C! T8 Q1 g/ _3 B1 @. }( r
时序网表中简单设计原理图元素的划分:& t: e4 C$ X- z4 Q+ f
9 r8 }5 ]3 Z. O, c/ C
) U" j# H! T( [6 H4 E% F
1.1.1.2. 时序路径4 n5 W, p' ^& X R
时序路径连接两个设计节点,例如一个寄存器输出到另一个寄存器的输入。
3 `9 w Z. u2 a2 Z0 o- h& \了解时序路径的类型对时序收敛和优化很重要。Timing Analyzer 识别并分析以下时序路径:
$ [7 f% d; u M$ n• 边沿路径(Edge paths)—从端口到管脚,从管脚到管脚以及从管脚到端口的连接。
$ I, [) l7 Y3 Z& ~1 e• 时钟路径(Clock paths)—从器件端口或内部生成的时钟管脚到寄存器的时钟管脚的连接。
& v2 i% e6 L2 c, R4 G3 T" c• 数据路径(Data paths)—从顺序单元的端口或数据输出管脚到另一个顺序单元的端口或数据输入管脚的连接。
7 s' b$ x0 f. D4 \• 异步路径(Asynchronous paths)—从另一个顺序单元(例如异步复位或异步清除)的异步管脚或端口的连接。% L1 \& Q' f% B( L9 a
& { b' X5 \5 p% \5 O! MTiming Analyzer 通常分析的路径类型
% q T) J' V( I& M7 O, S) |+ L; X. ?
) ^! o% L& O- u3 O) q% C
除了识别设计中的各种路径外,Timing Analyzer 还分析时钟特性,计算单个寄存器到寄存器路径中任意两个寄存器之间的最坏情况要求(worst-case requirement)。在分析时钟特性之前,必须对设计中的所有时钟进行约束。
[$ Y' s% s9 _: C9 g
5 A" |) K5 z) m- m1.1.1.3. 数据和时钟到达时间# g0 f. i0 z% K! \9 @
Timing Analyzer 识别路径类型后,Timing Analyzer 能够报告寄存器管脚上的数据和时钟到达时间。
# W7 ?$ U9 Q$ ZTiming Analyzer 通过将启动沿时间加入到从时钟源到源寄存器的时钟管脚的延迟,源寄存器的微时钟到输出延迟(µtCO),从源寄存器的数据输出(Q)到目的寄存器的数据输出(D)的延迟来计算数据到达时间。
' k0 a, o: d2 n' mTiming Analyzer 通过将锁存沿时间加上目的寄存器的时钟端口与时钟管脚之间的延迟总和(包括时钟端口缓冲延迟),然后减去目的寄存器的微设置时间( µtSU)(其中 µtSU 是 FPGA 中内部寄存器的固有设置时间)来计算数据所需时间。
2 _& u8 Z, G& s" X
& v" O6 Z* r: d数据到达和数据所需时间:
8 L/ V/ ^& P+ E8 N" R/ n; x
1 s( X& K1 ]* D% j* o
+ m# s0 S3 Y x4 s( B1 ]: h1.1.1.4. 启动沿和锁存沿(Launch and Latch Edges)
3 g! r* ~4 T0 f; I: H5 A所有的时序分析都需要有一个或多个时钟信号。Timing Analyzer 通过分析时钟的启动沿和时钟锁存沿之间的时钟设置和保持关系来确定设计中所有寄存器到寄存器传输的时钟关系。
8 t: O) B- R: I/ M/ [% i时钟信号的启动沿(launch edge)是发送寄存器或者其他顺序单元数据的时钟沿,用作数据传输的源。锁存沿(latch edge)是采集寄存器或者其他顺序单元数据端口上的数据的有效时钟沿,用作数据传输的目的地。
( I# v" a5 j8 @( P; z" |' Z Q8 W, O1 K D8 m
1.1.2. 时钟设置分析
3 j& d2 Q+ E; U3 F( `要执行时钟设置检查,Timing Analyzer 通过分析每个寄存器到寄存器路径的每个启动沿和锁存沿来确定设置关系。" h+ R: M# x/ @ F( h' N8 \
对于目地寄存器上的每个锁存沿,Timing Analyzer 使用源寄存器上最接近的前一个时钟沿作为启动沿。下图显示了两种设置关系,设置 A 和设置 B。对于 10 ns 上的锁存沿,用作启动沿的最近时钟在 3 ns 上,并有设置 A 标签。对于 20 ns 上的锁存沿,用作启动沿的最近时钟在 19 ns 上,并有设置 B 标签。Timing Analyzer 对最具限制性的设置关系进行分析,在这种情况下为设置 B;如果此关系符合设计要求,那么默认情况下设置 A 符合要求。" W0 f4 k5 @7 Q: H
|
|