《时序分析教程.pdf》由会员分享,可在线阅读,更多相关《时序分析教程.pdf(6页珍藏版)》请在taowenge.com淘文阁网|工程机械CAD图纸|机械工程制图|CAD装配图下载|SolidWorks_CaTia_CAD_UG_PROE_设计图分享下载上搜索。
1、 时序分析教程 The document was prepared on January 2,2021 一、时序分析术语 1.时序分析的基本模型 时序分析是 FPGA 的重中之重。开始之前请记住时序分析的基本模型 为经过寄存器 R1 的传输延时 为经过组合逻辑的传输延时 为 R2 本身的建立时间;(clock slew)为时钟到 R1 和 R2 的偏差 2.Launch edge 和 Latch edge Launch edge 和 Latch edge 分别是时序分析的起点和终点。需要指出的是 Latch edge 时间=Launch edge 时间+期望系统周期时间 3.Data Arri
2、val Time 和 Data Required Time 这两项时间是 TimeQuest 时序分析的基础,所有的和都是根据这两项时间来决定的。Data Arrival Time=Launch Edge+Source Clock Delay+tCO+Register to Register Delay Data Required Time=Latch Edge+Destination Clock Delay tSU 需要注意的是 Data Arrival Time 和 Data Required Time 在分析不同的时序节点时,计算的公式有所差别。4.建立时间余量 Clock Setup
3、Slack 建立关系是指寄存器 R1 发送的数据在下一次更新(更换)之前,寄存器R2 可用最短时间去锁存数据 建立时间余量是指从 Launch edge 经过一些列延迟数据输出稳定后到 Latch edge 的长度。Clock Setup Slack=Data Required Time Data Arrival Time Internal Register-to-Register paths Data Arrival Time=Launch Edge+Clock Network Delay to Source Register tCO+Register-to-Register Delay D
4、ata Required Time=Latch Edge+Clock Network Delay to Destination Register tSU Setup Uncertainty Input Port to Internal Register Data Arrival Time=Launch Edge+Clock Network Delay Input Maximum Delay+Port-to-Register Delay Data Required Time=Latch Edge+Clock Network Delay to Destination Register tSU Se
5、tup Uncertainty Internal Register to Output Port Data Arrival Time=Launch Edge+Clock Network Delay To Source Register tCO+Register-to-Port Delay Data Required Time=Latch Edge+Clock Network Delay to Output Port Output Maximum Delay tCO 指寄存器 R1 的自身特性 tSU 指寄存器 R2 的自身特性 如上图所示:Data Arrival Time =启动沿时间+Tc
6、lk1+Tco+Tdata =0ns+=4ns Data Required Time =锁存沿时间+Tclk2-Tsu =10ns+2ns-=所以:Setup Slack =Data Required Time-Data Arrival Time =-4ns =5.保持时间余量Clock Hold Slack 保持时间余量是在两个节点(寄存器)之间,在分析保持关系的过程中“到底有多少剩时间可以提供给寄存器用来确保已存数据的稳定”。Clock Hold Slack=Data Arrival Time Data Required Time 由于保持时间余量是指当前 Latch edge 和下一个
7、Launch edge 的距离。所以上面公式可以写成:Clock Hold Slack=Data Arrival Time+数据周期时间 Data Required Time Internal Register-to-Register paths Data Arrival Time=Launch Edge+Clock Network Delay to Source Register tCO+Register-to-Register Delay Data Required Time=Latch Edge+Clock Network Delay to Destination Register+tH
8、+Hold Uncertainty Input Port to Internal Register Data Arrival Time=Launch Edge+Clock Network Delay Input Maximum Delay+Port-to-Register Delay Data Required Time=Latch Edge+Clock Network Delay to Destination Register +tH Internal Register to Output Port Data Arrival Time=Launch Edge+Clock Network De
9、lay To Source Register tCO+Register-to-Port Delay Data Required Time=Latch Edge+Clock Network Delay Output Maximum Delay Data Arrival Time =启动沿+Tclk1+Tco+Tdata+数据周期时间 =0ns+10ns =14ns Data Required Time =锁存沿+Tclk2+Th =10ns+2ns+=所以,Hold Slack =数据保持时间-数据锁存(获取|读取)时间 =14ns-=6.Recovery and Removal Time 7.
10、多周期路径 Multicycle Paths 8.亚稳态 Metastability 二、时序约束类型 1.时钟 为了确保精确的静态时序计算结果,必须指定设计中所有使用到的时钟。A.Base Clock 基准时钟 设计中最主要的输入时钟。不同于从 PLL 中生成的时钟,基准时钟是由片外 OSC或者其他器件生成的。Example 100 MHz Shifted by 90 Degrees Clock Creation create_clock-period 10-waveform get_ports clk_sys B.Virtual Clock 虚拟时钟 虚拟时钟在设计中不存在真实的时钟源或者
11、对设计没有直接影响的一个时钟。例如,如果一个时钟不是设计中的时钟,而仅仅作为一个外部器件的时钟源,并且外部器件和该设计有输入或者输出的管脚,那么就认为这个时钟是虚拟时钟。主要方便 TimeQuest 正确的分析外部寄存器和内部寄存器的时序关系。Example Create Virtual Clock create_clock-period 10-name my_virt_clk C.Multifrequency clocks 多频率时钟 某些情况下,设计中会有很多个时钟源向一个时钟节点提供信号。增加的时钟也许扮演一个低频率低功耗时钟的角色。D.Generated Clocks 派生时钟 派生时
12、钟是指在设计中修改了相位、频率、偏移、占空比的基准时钟。如分频时钟。在 sdc 文件中,PLL 输出或者寄存器分配的 Generated Clocks 在所有的基准时钟之后约束。E.Deriving PLL Clocks 锁相环时钟 使用derive_pll_clocks命令直接让 TimeQuest 自动搜索未约束的 PLL 输出时钟。derive_pll_clocks命令自动调用create_generated_clock 命令给每个 PLL 输出创建 F.Clock Groups 时钟组 如果两个或者多个时钟具有相同的 source 和固定的相位差,那么这些时钟是同步时钟。如果两个或者多
13、个时钟之间没有任何关系,则称之为异步时钟。如果两个时钟不会相互作用,那么称这两个时钟为互斥时钟。如果在约束中没有特别说明,TimeQuest 假设所有的时钟都是相关的。使用set_clock_groups 命令指定设计中指出那些时钟是互斥的或者异步的。set_clock_groups 命令将不同时钟组时序分开分析,并且执行同样的分析,不管有没有指定-exclusive 或者-asynchronous 选项。做时序分析时,在创建好所有的时钟后,需要定义这些时钟之间的关系。我们可以把同步时钟放到一个 group 中,然后在定义时钟之间的关系时,可以使用group 来定义。如果设计中有异步时钟,就需
14、要用命令把异步时钟分组并定义出来。2.输入约束 Input Constrants 外部器件发送数据到 FPGA 系统模型如下图所示。对 FPGA 的 IO 口进行输入最大最小延时约束是为了让FPGA 设计工具能够尽可能的优化从输入端口到第一级寄存器之间的路径延迟,使其能够保证系统时钟可靠的采到从外部芯片到 FPGA 的信号。3.输出约束 Output Constrants FPGA 输出数据给外部器件模型如下图所示。对 FPGA 的 IO 口进行输出最大最小延时约束是为了让 FPGA 设计工具能够尽可能的优化从第一级寄存器到输出端口之间的路径延迟,使其能够保证让外部器件能准确的采集到 FPGA
15、 的输出数据 4.时序例外 Timing Exceptions A.Falsh Paths 从逻辑上考虑,与电路正常工作不相关的那些路径,比如测试逻辑,静态或准静态逻辑。从时序上考虑,我们在综合时不需要分析的那些路径,比如跨越异步时钟域的路径。Clock Latency:时钟延迟 clock 源到时序器件的 clk 脚的延迟叫做 clock latency。有两种形式的 Clock Latency,时钟源延迟clock source latency和时钟网络延迟clock network latency。时钟源延迟指从初始时钟到定义点时钟的传播延迟。时钟网络延迟指时钟定义点到寄存器的时钟引脚。
16、clock uncertainty:clock 在时序器件 clk 脚上的不确定性。有三种类型的时钟到时钟转移:intraclock transfers interclock transfers I/O interface clock transfers.Altera 对于 fmax 的计算公式。fmax:电路能跑的最大频率 Tclk:电路能跑的最短周期 Tco:register 本身的 clk 输出 delay(clk to output)Tdata:组合逻辑本身所造成的 data delay Tsu:register 本身的 setup time Tclk_skew:clock skew
17、Pin to Pin Delay(tpd)tpd 指输入管脚通过纯组合逻辑到达输出管脚这段路径的延时,特别需要说明的是,要求输入到输出之间只有组合逻辑,才是 tpd 延时 同步设计基本模型图 launch edge,是源寄存器发送数据的时钟沿,是时序分析的起点。latch edge,是目的寄存器捕获数据的时钟沿,是时序分析的终点。Data Arrival Time:从 launch edge 开始,data 实际到达 Reg2 D 端的时间。Data Arrival Time=Launch Edge+Source Clock Delay+tCO+Register-to-Register Delay Data Required Time Data Required Time=Latch Edge+Destination Clock Delay tSU 为经过寄存器 T1 的传输延时 为经过组合逻辑的传输延时 为 T2 本身的建立时间;(clock slew)为时钟到 T1 和 T2 的偏差 在一个时钟周期 T 之内,数据从寄存器 T1 传出,需要经过延时 Tco,然后经过组合逻辑,需要经过延时 Tdelay,最后到达寄存器 T2,然后在寄存器 T2 建立起来,需要经过延时 Tsetup,那么可以得出建立时间的要求:+()()+()()之所以需要加上是因为时钟也有可能存在传输的偏移