集成电路设计课件:8 静态时序分析_第1页
集成电路设计课件:8 静态时序分析_第2页
集成电路设计课件:8 静态时序分析_第3页
集成电路设计课件:8 静态时序分析_第4页
集成电路设计课件:8 静态时序分析_第5页
已阅读5页,还剩78页未读 继续免费阅读

下载本文档

版权说明:本文档由用户提供并上传,收益归属内容提供方,若内容存在侵权,请进行举报或认领

文档简介

1、静态时序分析什么是静态时序分析(STA)什么是静态时序分析(STA)先来看看Path-Based这种分析方式。如图所示,信号从A点及B点输入,经由4个逻辑闸组成的电路到达输出Y点。套用的Timing Model标示在各逻辑闸上,对于所有输入端到输出端都可以找到相对应的延迟时间。什么是静态时序分析(STA)而使用者给定的Timing Constraint为:1. 信号A到达电路输入端的时间点为2(AT=2,AT为Arrival Time)。2. 信号B到达电路输入端的时间点为5(AT=5)。3. 信号必须在时间点10之前到达输出端Y(RT=10,RT为Required Time)。什么是静态时序

2、分析(STA)现在我们针对P1及P2两条路径(Path)来做分析。P1的起始点为A,信号到达时间点为2。经过第1个逻辑闸之后,由于此闸有2单位的延迟时间,所以信号到达此闸输出的时间点为4(2+2)。依此类推,信号经由P1到达输出Y的时间点为7(2+2+3)。在和上述第三项Timing Constraint比对之后,我们可以得知对P1这个路径而言,时序(Timing)是满足使用者要求的。什么是静态时序分析(STA)按照同样的方式可以得到信号经由路径B到达输出Y的时间点为11(5+1+3+2),照样和上述第三项Timing Constraint比对,我们可以得知对P2这个路径而言,Timing是不

3、满足使用者要求的。举例分析所有逻辑门在输出信号上升时最长的延迟时间为3ns,最短为2ns。所有逻辑门在输出信号上升时最长的延迟时间为2ns,最短为1ns。所有联机(Net)最长的延迟时间为2ns,最短为1ns。所有Flip-Flop Clock到Q的延迟时间为3ns。所有Flip-Flop的Setup Time为1ns(Ts)。所有Flip-Flop的Hold Time为1ns(Th)。举例分析Clock周期为14ns(Dclkp)。Clock source latency为2ns(Dclks)。Clock network latency为3ns(Dclkn)。Clock uncertaint

4、y为1ns(Dclku)。A、B及C的input delay皆为1ns(Da、Db、Dc)。Y的output delay为3ns(D)。举例分析首先找出所有Timing Path,我们只列出具代表性的3条Timing Path来加以说明。举例分析假设输入A信号由0变1,计算第1条Path终点信号到达的时间(Arrival Time简称AT)。(Net)最长的延迟时间为2ns;逻辑门在输出信号上升时最长的延迟时间为3nsA的input delay为1ns输入端口到触发器的数据端Setup Timing举例分析假设输入A信号由1变0,计算第1条Path终点AT。(Net)最长的延迟时间为2ns;逻

5、辑门在输出信号下降时最长的延迟时间为2nsA的input delay为1ns输入端口到触发器的数据端Setup Timing举例分析计算第1条Path终点的需求时间(Required Time,简称RT)。(Net)最长的延迟时间为2ns;Clock周期为14ns。Clock source latency为2ns。Clock network latency为3ns。Clock uncertainty为1ns。所有Flip-Flop的Setup Time为1ns输入端口到触发器的数据端Setup Timing举例分析假设输入A信号由0变1,计算第1条Path终点的Slack。Slack等于RT和

6、AT的差值对于Setup Time验证来说等于RT AT对于Hold Time验证来说等于AT - RT。在此Setup Time范例中,Slack为正,表示信号实际到达Path终点时间比必须到达的时间还早,因此Timing是满足的。输入端口到触发器的数据端Setup Timing举例分析假设输入A信号由1变0,计算第1条Path终点的Slack。Slack等于RT和AT的差值对于Setup Time验证来说等于RT AT对于Hold Time验证来说等于AT - RT。Slack为正,因此Timing是满足的。输入端口到触发器的数据端Setup Timing举例分析假设前级Flip-Flop

7、的信号由0变1,计算第2条Path终点的AT。所有Flip-Flop Clock到Q的延迟时间为3ns(Net)最长的延迟时间为2ns;逻辑门在输出信号上升时最长的延迟时间为3nsClock周期为14ns。Clock source latency为2ns。Clock network latency为3ns。Clock uncertainty为1ns。时钟端口到触发器的数据端Setup Timing举例分析假设前级Flip-Flop的信号由1变0,计算第2条Path终点的AT。所有Flip-Flop Clock到Q的延迟时间为3ns(Net)最长的延迟时间为2ns;逻辑门在输出信号上升时最长的延

8、迟时间为3nsClock周期为14ns。Clock source latency为2ns。Clock network latency为3ns。Clock uncertainty为1ns。时钟端口到触发器的数据端Setup Timing举例分析计算第2条Path终点的RT。所有Flip-Flop的Setup Time为1nsClock周期为14ns。Clock source latency为2ns。Clock network latency为3ns。Clock uncertainty为1ns。时钟端口到触发器的数据端Setup Timing举例分析假设前级Flip-Flop的信号由0变1,计算第

9、2条Path终点的Slack。Slack等于RT和AT的差值对于Setup Time验证来说等于RT AT对于Hold Time验证来说等于AT - RT。Slack为负,因此Timing不满足。时钟端口到触发器的数据端Setup Timing举例分析假设前级Flip-Flop的信号由1变0,计算第2条Path终点的Slack。Slack等于RT和AT的差值对于Setup Time验证来说等于RT AT对于Hold Time验证来说等于AT - RT。Slack为负,因此Timing不满足。综上所述,第2条Path的setup Timing不满足,其Slack为-3。时钟端口到触发器的数据端S

10、etup Timing举例分析假设前级Flip-Flop的信号由0变1,计算第3条Path终点的AT。 所有Flip-Flop Clock到Q的延迟时间为3ns所有Net最长的延迟时间为2ns所有逻辑门在输出信号上升时最长的延迟时间为3ns时钟端口到输出端口Setup Timing举例分析假设前级Flip-Flop的信号由1变0,计算第3条Path终点的AT。 所有Flip-Flop Clock到Q的延迟时间为3ns所有Net最长的延迟时间为2ns所有逻辑门在输出信号上升时最长的延迟时间为3ns时钟端口到输出端口Setup Timing举例分析计算第3条Path终点的RT。 Clock周期为1

11、4ns;Clock source latency为2ns。Clock network latency为3ns;Clock uncertainty为1ns。Y的output delay为3ns时钟端口到输出端口Setup Timing举例分析假设前级Flip-Flop的信号由0变1,计算第3条Path终点的SlackSlack等于RT和AT的差值对于Setup Time验证来说等于RT AT对于Hold Time验证来说等于AT - RT。Slack为负,因此Timing不满足。时钟端口到输出端口Setup Timing举例分析假设前级Flip-Flop的信号由1变0,计算第3条Path终点的S

12、lackSlack等于RT和AT的差值对于Setup Time验证来说等于RT AT对于Hold Time验证来说等于AT - RT。Slack为负,因此Timing不满足。综上所述,第3条Path Timing不符合要求,其Slack为-4。时钟端口到输出端口Setup TimingTiming model两种:slow corner(默认)和fast corner建立时间在slow corner中必须满足; 保持时间在fast corner中必须满足;用get_available_operating_conditions命令获得器件支持的时序模型; Timing model在Quartus

13、II中使用Timequest在QuartusII中使用Timequest在QuartusII中使用Timequest使用timequest的步骤1.生成网表2.约束:读入SDC文件或者写入约束3.updata网表4.report,check timing5.保存约束(操作说明)SDC术语SDC术语SDC约束的类型三类约束:1. 时钟(基本时钟,衍生时钟和虚拟时钟)2. IO延迟(set input/output delay)3. 时序例外(exception)Timequest只报告约束了的路径建议约束所有的时钟和输入输出portSDC约束的类型时钟约束Timequest中默认所有的时钟都相关

14、;基本时钟:create_clock 虚拟时钟:create_clock 衍生时钟:create_generated_clock 或derive_pll_clocks 时钟约束检测系统中的所有时钟: derive_clocks period 运行该命令后,再运行report_clocks 命令,即可观察系统中都有哪些时钟,以便对所有时钟都进行约束; 该命令只作为检测时钟用,最后的约束不能使用这个命令;时钟约束基本时钟和衍生时钟时钟约束基本时钟和虚拟时钟基本时钟: create_clock -period 10 name clk1 get_ports clk虚拟时钟:create_clock -

15、period 10 name clk1 =虚拟时钟在源同步接口中会使用到。时钟约束虚拟时钟:是一个在设计中没有真正源或者说与设计没有直接关系的一个时钟。例如,如果一个时钟不是设计中的时钟,而仅仅作为一个外部器件的时钟源,并且外部器件和该设计有输入或者输出的管脚,那么就认为这个时钟是虚拟时钟。时钟约束虚拟时钟:#create base clock for the designcreate_clock -period 5 get_ports system_clk#create the virtual clock for the external registercreate_clock -peri

16、od 10 -name virt_clk -waveform 0 5 #set the output delay referencing the virtual clockset_output_delay -clock virt_clk -max 1.5 get_ports dataout时钟约束时钟复用 1.通过多个时钟引脚接入多个时钟; 2.一个时钟输入引脚上接多个频率的时钟,时钟复用在器件外部实现; 3.使用pll的switch-over模式timequest支持对复用时钟进行约束: 时钟约束时钟复用 create_clock的 add 选项 set_clock_group时钟约束#Cr

17、eate the first input clock clkA to the muxcreate_clock -period 10.000 -name clkA get_ports clkA#Create the second input clock clkB to the muxcreate_clock -period 20.000 -name clkB get_ports clkB#Cut paths between clkA and clkBset_clock_groups exclusive -group clkA -group clkB多个引脚接入时钟约束# The clk port

18、 can be driven at 100MHz (10ns) or# 50MHz (20ns)# clkA is 10nscreate_clock -period 10.000 -name clkA get_ports clk# clkB is 20ns assigned to the same port Requires -add optioncreate_clock -period 20.000 -name clkB get_ports clk -addset_clock_groups -exclusive -group clkA -group clkB外部复用时钟约束#create a

19、 10ns clock for clock port clk0create_clock -period 10.000 -name clk0 get_ports clk0#create a 20ns clock for clock port clk1create_clock -period 20.000 -name clk1 get_ports clk1#automatically create clocks for the PLL output clocksderive_pll_clocksPLL两个输入时钟时钟约束set_clock_latency两种:network latency和sou

20、rce latency; network latency:时钟(如,一个clock port)到寄存器pin之间的时钟网路延迟; source latency:时钟源到时钟之间的时钟网络延迟;Timequest自动计算network latency,所以set_clock_latency只设置source latency(- source 选项不可少)PLL输出时钟反馈到FPGA时钟输入引脚时特别有用;这种latency可以通过在chip planner中查看到。时钟约束set_clock_uncertainty 为时钟或者时钟到时钟传输指定了时钟不确定时间(uncertainty)或时钟偏斜

21、(skew)。可以为个别的建立和保持时间指定不确定时间,也可以为个别时钟传输指定上升沿或下降沿。 Timequest为每个合适路径data required time里扣除建立不确定时间,为每个合适路径的data required time加上保持不确定时间。时钟约束clock uncertainty = clock jitter + clock skew. jitter 是 由时钟源产生的抖动。skew是时钟树不平衡引起的到达两个寄存器的延迟差。在cts之后,skew由工具算出,因此sta的时候clock uncertainty 可以设一个比较小的值。另外做hold check的时候因为检查

22、的是同一个时钟沿,因此没有jitter只有skew.时钟约束set_clock_groups设计中有很多时钟,并不是每个时钟之间都有关系set_clock_groups -asynchronous |-exclusive -group -group -group .-asynchronous:两个时钟之间没有相位关系,并且同时有效;-exclusive:两个时钟是互斥的,如复用到一个时钟引脚的两个时钟;-group:group之内的时钟之间相关, group之间的时钟互不相关;时钟约束时钟之间没有整数倍关系,时钟的周期也不是ns的整数倍时,可能会出现latch和launch沿之间只有几个ps的

23、建立时间,这时候,需要对时钟进行约束;Set_max_delay和set_min_delay时钟约束set_max_delay -from get_clocks clk_a -to get_clocks clk_b 3.333set_min_delay -from get_clocks clk_a -to get_clocks clk_b 0IO约束纯组合IO接口同步IO接口源同步IO接口IO约束纯组合IO接口set_max_delay 和 set_min_delayIO约束set_max_delay from get_ports in1 to get_ports out* 5.0set_ma

24、x_delay from get_ports in2 to get_ports out* 7.5set_max_delay from get_ports in3 to get_ports out* 9.0set_min_delay from get_ports in1 to get_ports out* 1.0set_min_delay from get_ports in2 to get_ports out* 2.0set_min_delay from get_ports in3 to get_ports out* 3.0纯组合IO接口IO约束同步输入接口:保证fpga满足建立保持时间IO约束

25、输入最大延迟:包含了FPGA之外的所有延迟,数据从外部器件经过最长的时间到达FPGA后,仍然要满足FPGA的建立时间。input delay max = Board Delay (max) - Board clock skew (min) + Tco(max) = (Tdata_PCB(max)+ TCL) - (Tclk2ext(min)-Tclk1(max) + Tco(max)IO约束输入最小延迟:包含了FPGA之外的所有延迟,数据从外部器件经过最段的时间到达FPGA后,仍然要满足FPGA的保持时间。input delay min = Board Delay (min) - Board

26、clock skew (max) + Tco(min) = (Tdata_PCB(min)+ TCL) - (Tclk2ext(max)-Tclk1(min) + Tco(min)IO约束最大延迟和最小延迟都要定义,如果只定义了一种,会有warning,并且另外一种类型的延迟会默认的等于已定义的类型的延迟的值。IO约束同步输出接口:保证fpga的tco满足要求IO约束输出最大延迟:包含了FPGA之外的所有延迟,数据经过最长的时间到达外部器件,仍然满足外部器件的建立时间output delay max = Board Delay (max) - Board clock skew (min) +

27、Tsu = (Tdata_PCB(max)+ TCL) - (Tclk2(min) -Tclk1ext(max) + TsuIO约束输出最大延迟:包含了FPGA之外的所有延迟,数据经过最短的时间到达外部器件,仍然满足外部器件的保持时间output delay min = Board Delay (min) - Board clock skew (max) - Th = (Tdata_PCB(min)+ TCL) - (Tclk2(max) Tclk1ext(min) - ThIO约束源同步接口:时钟和数据一起从源器件发送到接收器件System_approach的计算方式,考虑板上的延迟IO约束

28、源同步输出IO约束IO约束源同步输出output delay max = Board Delay (max) - Board clock skew (min) + Tsu =2-1.4+2=2.6output delay min = Board Delay (min) - Board clock skew (max) - Th =1.5-1.7-0.5=-0.7IO约束IO约束IO约束源同步输入IO约束IO约束input delay max = Board Delay (max) - Board clock skew (min) + Tco(max) =2-1.4+3=3.6input delay min = Board Delay (min) - Board clock skew (max) + Tco(min) =1.5-1.7+1=0.8IO约束IO约束IO约束对输出,Delay的value是指在fpga的端口上,数据在时钟的有效沿多久之前稳定,这样,到达外部器件的寄存器后,才能满足建立时间和保持时间。类似于在fpga端口上数据的建立时间和保持时间要求。对输入,Delay的value是指当到达fpga的寄存器时,数据会在时钟有效沿多久之后稳定;不论是输入延迟还是输出延迟,都是data 在 fpga port处相对于与时钟的延迟。 时序例外包括三项(按优先级

温馨提示

  • 1. 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。图纸软件为CAD,CAXA,PROE,UG,SolidWorks等.压缩文件请下载最新的WinRAR软件解压。
  • 2. 本站的文档不包含任何第三方提供的附件图纸等,如果需要附件,请联系上传者。文件的所有权益归上传用户所有。
  • 3. 本站RAR压缩包中若带图纸,网页内容里面会有图纸预览,若没有图纸预览就没有图纸。
  • 4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
  • 5. 人人文库网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对用户上传分享的文档内容本身不做任何修改或编辑,并不能对任何下载内容负责。
  • 6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
  • 7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。

最新文档

评论

0/150

提交评论