时序分析教程.docx
- 文档编号:4811643
- 上传时间:2022-12-09
- 格式:DOCX
- 页数:13
- 大小:329.80KB
时序分析教程.docx
《时序分析教程.docx》由会员分享,可在线阅读,更多相关《时序分析教程.docx(13页珍藏版)》请在冰豆网上搜索。
时序分析教程
时序分析术语
1.时序分析的基本模型
时序分析是FPGA的重中之重。
开始之前请记住时序分析的基本模型
Tdelay
rst
卜饰为经过寄存器R1的传输延时
詆矽为经过组合逻辑的传输延时
Fg为R2本身的建立时间;
M(clockslew)为时钟到R1和R2的偏差
2.Launchedge和Latchedge
Launchedge和Latchedge分别是时序分析的起点和终点。
launchandLatchEdges
Otis
20m
LaunchCiU*
|_
Hole(OkiKHnEhp
LaultClack,
需要指出的是Latchedge时间=Launchedge时间+期望系统周期时间
3.DataArrivalTime和DataRequiredTime
这两项时间是TimeQuest时序分析的基础,所有的和都是根据这两项时间来决定的。
QaftiArriTii-aodDWto*ReqvirsdTims-
n
OllaArrivalTm
)广
二A
Dais:
RecaLirK;Tiny
DataArrivalTime=LaunchEdge+SourceClockDelay+tco+Register-to-RegisterDelay[lateRequiredTlm^=LntchEdge+DestinationClorkDclny-tsv
需要注意的是DataArrivalTime和DataRequiredTime在分析不同的时序节点时,计算的公式有所差别。
4.建立时间余量ClockSetupSlack
建立关系是指寄存器R1发送的数据在下一次更新(更换)之前,寄存器R2可用最短时间去锁存数据
建立时间余量是指从Launchedge经过一些列延迟数据输出稳定后到Latchedge
的长度。
InternalRegister-to-Registerpaths
DataArrivalTime=LaunchEdge+ClockNetworkDelaytoSourceRegistertco+Register-to-RegisterDelay
DataRequiredTime=LatchEdge+ClockNetworkDelaytoDestinationRegister—tsu-Setup
Uncertainty
InputPorttoInternalRegister
DataArrivalTime=LaunchEdge+ClockNetworkDelayInputMaximumDelay+Port-to-RegisterDelay
DataRequiredTime=LatchEdge+ClockNetworkDelaytoDestinationRegister—tsu-Setup
Uncertainty
InternalRegistertoOutputPort
DataArrivalTime=LaunchEdge+ClockNetworkDelayToSourceRegistertco+
Register-to-PortDelay
DataRequiredTime=LatchEdge+ClockNetworkDelaytoOutputPort-OutputMaximumDelay
tCO指寄存器R1的自身特性
tSU指寄存器R2的自身特性
TslM(1
»Ttt»1±Kus-
CldEJkS
如上图所示:
DataArrivalTime
=启动沿时间+Tclk1+Tco+Tdata
=Ons+++
=4ns
DataRequiredTime
=锁存沿时间+Tclk2-Tsu
=10ns+2ns-
所以:
SetupSlack
=DataRequiredTime-DataArrivalTime
=-4ns
5.保持时间余量ClockHoldSlack
保持时间余量是在两个节点(寄存器)之间,在分析保持关系的过程中“到底有
多少剩时间可以提供给寄存器用来确保已存数据的稳定”。
CluckHoldSlack=DdbiArrivEilTiuio-Irl<-i■i:
由于保持时间余量是指当前Latchedge和下一个Launchedge的距离。
所以上面
公式可以写成:
CluckHoldShirk=D.iIh和r忡dlTi时+数据問期時闻-pi-1imt?
C*M*i.
CiQCKl
i
Oo«9n 4 Clock1 t 4 R— 1hG Clock2 4 1 On*WriB11ns «*-i—— 1 Ctocik1 r』 Clocks L InternalRegister-to-Registerpaths DataArrivalTime=LaunchEdge+ClockNetworkDelaytoSourceRegistertco+Register-to-RegisterDelay DataRequiredTime=LatchEdge+ClockNetworkDelaytoDestinationRegister+tH+HoldUncertainty InputPorttoInternalRegister DataArrivalTime=LaunchEdge+ClockNetworkDelayInputMaximumDelay+ Port-to-RegisterDelay DataRequiredTime=LatchEdge+ClockNetworkDelaytoDestinationRegister+tH InternalRegistertoOutputPort DataArrivalTime=LaunchEdge+ClockNetworkDelayToSourceRegistertco+ Register-to-PortDelay DataRequiredTime=LatchEdge+ClockNetworkDelay-OutputMaximumDelay Clock Clock1 Qs 6ns ・"1 * Regl-a 9IqIn ;ifl-fbQ6nt 4* Clock? rmi, *b 2ns r>*j町 4b 14ni DataArrivalTime =启动沿+Tclk1+Tco+Tdata+数据周期时间 =Ons++++10ns =14ns DataRequiredTime=锁存沿+Tclk2+Th 所以,HoldSlack =10ns+2ns+ =数据保持时间-数据锁存(获取|读取)时间 =14ns- 6.RecoveryandRemovalTime 7.多周期路径MulticyclePaths 8.亚稳态Metastability 二、时序约束类型 1.时钟 为了确保精确的静态时序计算结果,必须指定设计中所有使用到的时钟。 A.BaseClock基准时钟 设计中最主要的输入时钟。 不同于从PLL中生成的时钟,基准时钟是由片外OSC或者 其他器件生成的。 Example100MHzShiftedby90DegreesClockCreationcreateclock-period10-waveform{}[getportsclksys] B.VirtualClock虚拟时钟 虚拟时钟在设计中不存在真实的时钟源或者对设计没有直接影响的一个时钟。 例如, 如果一个时钟不是设计中的时钟,而仅仅作为一个外部器件的时钟源,并且外部器件和 该设计有输入或者输出的管脚,那么就认为这个时钟是虚拟时钟。 主要方便TimeQuest 正确的分析外部寄存器和内部寄存器的时序关系。 Virlual口BiurriTopolagy AlteraFPGAFilemalDevils wg_d ■lacam > ■_卫也伽: U: 1_> Afl U询iiTLcIkLIwt_dk ExampleCreateVirtualClock createclock-period10-namemyvirtclk C.Multifrequencyclocks多频率时钟 某些情况下,设计中会有很多个时钟源向一个时钟节点提供信号。 增加的时钟也许扮 演一个低频率低功耗时钟的角色。 D.GeneratedClocks派生时钟 派生时钟是指在设计中修改了相位、频率、偏移、占空比的基准时钟。 如分频时钟。 在sdc文件中,PLL输出或者寄存器分配的GeneratedClocks在所有的基准时钟之后 约束。 E.DerivingPLLClocks锁相环时钟 使用derive_pll_clocks命令直接让TimeQuest自动搜索未约束的PLL输出时钟。 derive_pll_clocks命令自动调用create_generated_clock命令给每个PLL输岀 创建 F.ClockGroups时钟组 如果两个或者多个时钟具有相同的source和固定的相位差,那么这些时钟是同步时 钟。 如果两个或者多个时钟之间没有任何关系,则称之为异步时钟。 如果两个时钟不会相互作用,那么称这两个时钟为互斥时钟。 CK1 异步时钟 互斥时钟 如果在约束中没有特别说明,TimeQuest假设所有的时钟都是相关的。 使用 set_clock_groups命令指定设计中指出那些时钟是互斥的或者异步的。 set_clock_groups命令将不同时钟组时序分开分析,并且执行同样的分析,不管有没有 指定-exclusive或者-asynchronous选项。 做时序分析时,在创建好所有的时钟后,需要定义这些时钟之间的关系。 我们可以把同步时钟放到一个group中,然后在定义时钟之间的关系时,可以使用group来定 义。 如果设计中有异步时钟,就需要用命令把异步时钟分组并定义出来。 2.输入约束InputConstrants 外部器件发送数据到FPGA系统模型如下图所示。 外部器件FPGA 对FPGA的10口进行输入最大最小延时约束是为了让FPGA设计工具能够尽可能 的优化从输入端口到第一级寄存器之间的路径延迟,使其能够保证系统时钟可靠的采到 从外部芯片到FPGA的信号。 3.输出约束OutputConstrants FPGA输出数据给外部器件模型如下图所示。 对FPGA的10口进行输出最大最小延时约束是为了让FPGA设计工具能够尽可能 的优化从第一级寄存器到输出端口之间的路径延迟,使其能够保证让外部器件能准确的 采集到FPGA的输出数据 4.时序例夕卜TimingExceptions A.FalshPaths 从逻辑上考虑,与电路正常工作不相关的那些路径,比如测试逻辑,静态或准静态 逻辑。 从时序上考虑,我们在综合时不需要分析的那些路径,比如跨越异步时钟域的路 径。 ClockLatency: 时钟延迟 clock源到时序器件的elk脚的延迟叫做clocklatency。 有两种形式的ClockLatency,时钟源延迟clocksourcelatency和时钟网络延迟clock networklatency。 时钟源延迟指从初始时钟到定义点时钟的传播延迟。 时钟网络延迟指时钟定义点到寄存器的时钟引脚。 clockuncertainty: clock在时序器件clk脚上的不确定性。 有三种类型的时钟到时钟转移: intraclocktransfers interclocktransfers I/Ointerfaceclocktransfers. Altera对于fmax的计算公式。 fmax: 电路能跑的最大频率 Tclk: 电路能跑的最短周期 Teo: register本身的clk输岀delay(clktooutput) Tdata: 组合逻辑本身所造成的datadelay Tsu: register本身的setuptime Tclk_skew: clockskew PintoPinDelay(tpd) tpd指输入管脚通过纯组合逻辑到达输出管脚这段路径的延时,特别需要说明的是,要求输入到输出之间只有组合逻辑,才是tpd延时 LaunchandLatchEdges I^is 20ns lainchCi«fc亠 I Holdr由tort怖Seftjf(etaUjftjhip LatenCkx*.. launchedge,是源寄存器发送数据的时钟沿,是时序分析的起点。 latchedge,是目的寄存器捕获数据的时钟沿,是时序分析的终点。 ? Data? ArrivalTime: 从launchedge开始,data实际到达Reg2D端的时间。 DataArrivalTime=LaunchEdge+SourceClockDelay+tco+Register-to-RegisterDelay DataRequiredTime DataRequiredTime=LatchEdge+DestinationClockDelay—tsu 同步设计基本模型图 '•为经过寄存器T1的传输延时 dilay为经过组合逻辑的传输延时 Fz为T2本身的建立时间; 圧(clockslew)为时钟到T1和T2的偏差 在一个时钟周期T之内,数据从寄存器T1传出,需要经过延时Tc。 然后经过组合逻辑,需要经过延时Tdelay,最后到达寄存器T2,然后在寄存器T2建立起来,需要经过延时Tsetup,那么可 以得出建立时间的要求: T+Tp(f-TmujtJ-deLay\max)~itftip—° T'yctwp£T+Tpj~Tfofmux)_T'jtlwytMiat) 之所以需要加上『P谀是因为时钟也有可能存在传输的偏移
- 配套讲稿:
如PPT文件的首页显示word图标,表示该PPT已包含配套word讲稿。双击word图标可打开word文档。
- 特殊限制:
部分文档作品中含有的国旗、国徽等图片,仅作为作品整体效果示例展示,禁止商用。设计者仅对作品中独创性部分享有著作权。
- 关 键 词:
- 时序 分析 教程