在quartus timequestt下怎么查看路径延迟

FPGA那些事儿--TimeQuest静态时序分析REV1.0-五星文库
免费文档下载
FPGA那些事儿--TimeQuest静态时序分析REV1.0
导读:写《工具篇I》不像写《VerilogHDL那些事儿》系列的笔记一样,虽然《VerilogHDL那些事儿》夹杂着许多笔者对Verilog的独特见解,而TimeQuest分析的对象就是硬模型的物理时序,第一章:TimeQuest静态时序分析模型...................,其中它(TimeQuest)用了一个“时序分析模型”作为物理时序的分析“框子”或,让我们暂时把VerilogHDL忘第1/32页 前言 这是笔者用两年构思准备一年之久的笔记,其实这也是笔者的另一种挑战。写《工具篇I》不像写《Verilog HDL那些事儿》系列的笔记一样,只要针对原理和HDL内容作出解释即可,虽然《Verilog HDL那些事儿》夹杂着许多笔者对Verilog的独特见解,不过这些内容都可以透过想象力来弥补。然而《工具篇I》需要一定的基础才能书写。两年前,编辑《时序篇》之际,笔者忽然对TimeQuest产生兴趣,可是笔者当时却就连时序是什么也不懂,更不明白时序有理想和物理之分,为此笔者先着手理想时序的研究。一年后,虽然已掌握解理想时序,但是笔者始终觉得理想时序和TimeQuest之间缺少什么,这种感觉就像磁极不会没有原因就相互吸引着?于是漫长的思考就开始了 ... 在不知不觉中就写出《整合篇》。 HDL描述的模块是软模型,modelsim仿真的软模型是理想时序。换之,软模型经过综合器总综合以后就会成为硬模型,也是俗称的网表。而TimeQuest分析的对象就是硬模型的物理时序。理想时序与物理时序虽然与物理时序有显明的区别,但它们却有黏糊的关系,就像南极和北极的磁性一样相互作用着。 编辑《工具篇I》的过程不也是一番风顺,其中也有搁浅或者灵感耗尽的情况。《工具篇I》给笔者最具挑战的地方就是如何将抽象的概念,将其简化并且用语言和图形表达出来。读者们可要知道《工具篇I》使用许多不曾出现在常规书的用词与概念 ... 但是,不曾出现并不代表它们不复存在,反之如何定义与实例化它们让笔者兴奋到夜夜失眠。 《工具篇I》的书写方式依然继承笔者往常的笔记风格,内容排版方面虽然给人次序不一的感觉,不过笔者认为这种次序对学习有最大的帮助。编辑《工具篇I》辛苦归辛苦,但是笔者却很热衷,心情好比小时候研究新玩具一般,一边好奇一边疑惑,一边学习一边记录。完成它让笔者有莫民的愉快感,想必那是笔者久久不失的童心吧!? (akuei2上 30-09-2013)目录前言 ................................................................................................................................... 1第一章:TimeQuest 静态时序分析模型 ........................................................................... 31.1模型的基础单位 ................................................................................................... 31.2理想的建立关系值和保持关系值 ......................................................................... 51.3 物理中的建立关系过程和建立余量 .................................................................... 71.4 令人误会的 建立关系 和 建立余量。 .............................................................121.5 建立余量 ............................................................................................................131.6 保持余量 ............................................................................................................20总结: .......................................................................................................................29 第一章:TimeQuest 静态时序分析模型 兜兜转转,然后又转转兜兜,最终还是需要站在 TimeQuest 的大门口。先自白一下,接下来的故事都是一位傻子对TimeQuest的理解,这个傻子的脑容量有限,处理能力不好,空白的地方都会用想象力自园。 TimeQuest 是 Altera - Quartus II 旗下的东西,其中它(TimeQuest)用了一个“时序分析模型”作为物理时序的分析“框子”或者“数学模型”。在这里笔者需要强调一下,TimeQuest中的“时序”和Verilog HDL中出现的时序是两个东西。所谓HDL的时序是指“模块的活动记录”等理想的波形;反之 TimeQuest 中出现的时序是指“物理上路径,各种延迟问题”的不理想波形。 让我们暂时把Verilog HDL忘了吧 ... 一般上分析物理时序有用一套方法称为“静态时序分析”的方法,关于静态时序分析网上有太多的解释了,但是TimeQuest 有属于自己一套“分析时序的模型”,所以我们可以“无视”其它。 1.1模型的基础单位 图1.1.1 模型的基础 TimeQuest的时序分析模型(以下简称模型)的基础,基本上需要两个节点才能发挥,如图1.1.1所示。节点的定义很模糊,因为节点本身没有个性,它处在什么就变什么 ... 如果用TimeQuest的话来讲,将一对节点放在fpga内部,节点就会化身成为寄存器。这也节点最常见的姿态。所以说,暂时让我们把节点看成寄存器吧! 图1.1.2 寄存器为节点 图1.1.2是把另个节点看成寄存器,亦即寄存器1(reg1)和寄存器2(reg2)。寄存器1和寄存器2共享同样的时钟信号。Signal(信号)从寄存器1的D进入,再由寄存器1的Q游走,然后从寄存器2的D进入,最后再经寄存器2的Q出走。上述的寄存器活包含总结汇报、人文社科、文档下载、教学研究、经管营销、党团工作、工作范文、外语学习以及FPGA那些事儿--TimeQuest静态时序分析REV1.0等内容。本文共8页
相关内容搜索&搞定TimeQuest鞭长莫及的特定路径例外约束
&&&&&& TimeQuestTimeQuestTimeQuest
&&&&&& sram_addr[0]sram_addr[1]
set_output_delay
-add_delay -max -clock [get_clocks {VIRLCLK}]&
15.500 [get_ports {sram_addr[0]}]
set_output_delay
-add_delay -min -clock [get_clocks {VIRLCLK}]&
0.000 [get_ports {sram_addr[0]}]
set_output_delay
-add_delay -max -clock [get_clocks {VIRLCLK}]&
15.500 [get_ports {sram_addr[1]}]
set_output_delay
-add_delay -min -clock [get_clocks {VIRLCLK}]&
0.000 [get_ports {sram_addr[1]}]
&&&&&& sram_addr[0]sram_addr[1]TimeQuestTimeQuest
&&&&&& sram_addr[0]1sram_addr[1]2
&&&&&& 23Data required path3
&&&&&& TimeQuestset maximum delayset minimum delaysram_addr[0]\sram_addr[1]
#**************************************************************
# Set Maximum
#**************************************************************
set_max_delay
-from [get_registers {sram_ctrl:uut_sram_ctrl|cstate.S_WRB
wr_gene:uut_wr_gene|addr_reg[0] wr_gene:uut_wr_gene|addr_reg[1]}] -to [get_ports
{sram_addr[0] sram_addr[1]}] 30.000
#**************************************************************
# Set Minimum
#**************************************************************
set_min_delay
-from [get_registers {sram_ctrl:uut_sram_ctrl|cstate.S_WRB
wr_gene:uut_wr_gene|addr_reg[0] wr_gene:uut_wr_gene|addr_reg[1]}] -to [get_ports
{sram_addr[0] sram_addr[1]}] 5.000
&&&&&& set maximum delayset minimum delay
&&&&&& sram_addr[0]4sram_addr[1]5
&&&&&& 3Data required path6
&&&&&& set maximum delayset minimum delayData required path
&&&&&& set maximum delaylatch edge time10ns30ns-20nsset minimum delay
旗下网站:
与非门科技(北京)有限公司 All Rights Reserved.
京ICP证:070212号
北京市公安局备案编号: 京ICP备:号扫扫二维码,随身浏览文档
手机或平板扫扫即可继续访问
TimeQuest就一定要搞定
举报该文档为侵权文档。
举报该文档含有违规或不良信息。
反馈该文档无法正常浏览。
举报该文档为重复文档。
推荐理由:
将文档分享至:
分享完整地址
文档地址:
粘贴到BBS或博客
flash地址:
支持嵌入FLASH地址的网站使用
html代码:
&embed src='/DocinViewer-4.swf' width='100%' height='600' type=application/x-shockwave-flash ALLOWFULLSCREEN='true' ALLOWSCRIPTACCESS='always'&&/embed&
450px*300px480px*400px650px*490px
支持嵌入HTML代码的网站使用
您的内容已经提交成功
您所提交的内容需要审核后才能发布,请您等待!
3秒自动关闭窗口3243人阅读
TimeQuest定时分析的基本概念
&&&&&&&& 全面的静态定时分析包括寄存器到寄存器、I/O、异步复位路径的分析,TimeQuest定时分析工具使用数据要求时间(data
required time)、数据到达时间(data arrival time)、时钟到达时间(clock arrival time)来验证电路性能和检测可能的违例。TimeQuest分析工具确定满足设计正常工作所必须的定时关系,检查到达时间是否满足要求的时间来验证定时关系,这一章概述一些为了使用TimeQuest分析你的设计你必须知道的基本概念。
基本概念:
Nodes:最基本的定时分析网表单元(most basic timing netlist unit),用来代表ports、pins、寄存器。
Cells:LUTs(look-up tables)、寄存器、DSP模块、内存模块、I/O元素等等。Stratix器件LUTs和寄存器包含在LE中,也属于cells
Pins:cells的输入输出
Nets:pins之间的连接
Ports:顶层模块的输入或输出,如器件的管脚
Clocks:抽象的对象,代表设计里或设计外的时钟域。
周期和最高频率:指时钟所能达到的最高工作频率。
时钟建立时间tsu:指时钟到达前,数据和使能信号已经准备好的最小时间间隔。
时钟保持时间th:指能保证有效时钟沿正确采样的数据和使能信号在时钟沿之后的最小稳定时间间隔。
时钟输出延迟tco:指从时钟有效沿到数据有效输出的最大时间间隔。
引脚到引脚的延时tpd:信号从输入管脚进来到达输出管脚的最大时间间隔。
Slack:是否满足时序的称谓。正德Slack表示满足时序,负的Slack表示不满足时序。
时钟偏斜Clock Slew:指同一个源时钟到达两个不同的寄存器时钟端的时间差别。
1.定时网络和定时路径(Timing Netlists和Timing Paths)
先要生成设计的定时网络,然后TimeQuest才可以对该设计进行定时分析。
1.1 Timing Netlist
图6-1是一个设计,图6-2是该设计的定时网络,它显示了不同的设计元素是如何划分成cells、pins、nets、ports。
1.2 Timing Paths
Timing Paths是两个nodes的连接,如一个寄存器的输出到另一个寄存器的输人,理解Timing Path的类型对定时分析和优化是非常重要的。TimeQuest通常使用如下几种类型的Timing
&&&&&&&& Edge Paths:from ports-to-pins、from pins-to-pins、from
pins-to-ports之间的连接。或者称从引脚到引脚的路径。
&&&&&&&& Clock Paths:从器件ports或内部产生的时钟pin到一个寄存器的时钟pin之间的连接
&&&&&&&& Data Paths:从一个ports或一个时序电路(a sequential element)的数据输出pin到一个port或另一个时序电路(a
sequential element)的数据输入pin之间的连接。
从管脚到寄存器
从寄存器到管脚
从寄存器到寄存器
&&&&&&&& Asynchronous Paths:从一个ports到另一个时序电路(a sequential element)的异步pin如异步复位或异步清除pin之间的连接。
图6-3显示这几种类型的路径:
除了标识出设计中的不同路径,TimeQuest还分析时钟特征,以单个register-to-register路径来计算在任何两个寄存器之间最坏情况的要求。在分析时钟特征之前,你必须对设计中的所有时钟进行约束。
1.3 Data and Clock Arrival Times
TimeQuest标示路径类型之后,它可以报告数据和时钟到达寄存器pins的时间。
TimeQuest计算数据到达时间(data arrival time),数据到达时间应该是4部分延迟的总和,数据到达时间的计算如下:
&&&&&&&& launch edge时间
&&&&&&&&&&&&&&&&&&&& + &从时钟源到源寄存器的时钟pin的延迟
&&&&&&&&&&&&&&&&&&&& +&
时钟源寄存器的micro clock-to-output延迟(utCO)
&&&&&&&&&&&&&&&&&&&& +&
从源寄存器的数据输出Q到目的寄存器的数据输入D的延迟
&&&&&&&& TimeQuest计算数据要求时间(data required time),数据要求时间应该是2部分延迟的总和,如下:
&&&&&&&& Latch edge时间
&&&&&&&&&&&&&&&&&&& &+&&
时钟port和目的寄存器clock pin之间的所有延迟(这包括时钟端口所有缓冲的延迟,减掉micro setup time(utSU,FPGA内部寄存器要求的固有建立时间)。
图6-4显示了如何计算数据到达时间和数据要求时间。
公式6-1数据到达时间和数据要求时间的基本计算,包括launch和latch edge。
1.4 Launch and Latch Edges
所有定时依赖于一个或多个时钟,除了分析路径,TimeQuest还确定你设计中的所有register-to-register关系。图6-5显示了launch
edge和latch edge,以及它们之间的关系。
Launch edge:指的是一个时钟沿,这个时钟沿将一个寄存器或一个时序电路的数据送出,因此,这个时钟沿充当数据传输的源(请理解好这个“源”的概念,应该是时间意义上来理解)。
Latch edge:指的也是一个时钟沿,这个时钟沿将一个寄存器或一个时序电路的输入端口的数据存储起来,因此,这个时钟沿充当数据传输的目的(请理解好这个“目的”的概念,应该从时间意义上来理解)。
让我们继续来理解图6-5,launch edge在0ns将数据从寄存器reg1输出,但是注意,这并不意味着reg1的数据在0ns就是出现了,一定要个延迟,这就是utCO,而reg2在10ns处的latch
edge捕捉这个数据。显然在10ns处的数据必须到达,因此这就是一个数据建立的时间关系,也就是图中红线所谓的Setup Relationship。如何理解图中的Hold relationship呢?显然,图中所指示的Hold
relaitionship并不是这个数据(就是0ns要launch的数据,或10ns要latch的数据)的保持关系,而是上个数据的Hold关系。
&&&&&&&& Latch edge和Launch Edge都是时间的概念,是指一个时刻(时钟沿的所在时刻),而非一个延迟时间的概念。
2.时钟建立检查(Clock Setup Check)
拿一个寄存器工作为例,直白地说,建立检查是要保证在时钟沿到达之前Tsu要锁存的数据必须出现。就是要保证Tsu。
需要认真仔细地理解好下面的图和公式:
TimeQuest计算setup B,而不需要计算setup A,因为B满足了,A自然满足,TimeQuest总是考虑最坏情况。
如果数据到达时间短于要求的数据到达时间(这句话的意思就是说在规定的时间内数据到达了,这里规定的时间就是Data Required Time,而数据到达的时间是Data Arrival Time),也即是Setup Slack为正,显然能够正常工作。为负,肯定不能正常工作。
公式6-2和6-3好理解,对于公式6-4,应该理解为这样的电路:前一级是一个FPGA内部寄存器,后一级是器件的管脚,我们必须保证管脚输出的时钟和数据能够被外部一个寄存器(或时序电路)正常接收,所以器件输出的时钟和数据信号应该满足一定的关系,这个关系就是等式6-4所要表达的意思。因为外部电路未知,所以公式6-4并不能完整描述器件输出的数据能被正常接收的条件,但是满足公式6-4是最基本的,是必须的。如果不满足(也即Setup
Slack是负),外部逻辑肯定没法接收器件输出的数据。
3.时钟保持检查(Clock Hold Check)
拿一个寄存器工作为例,直白地说,保持检查是要保证在时钟沿达到后规定的时间内数据不得变化。就是要保证Th。
需要认真仔细地理解好下面的图和公式,并把这些公式与建立时间检查的公式相比较,以加强对这些概念的理解。
TimeQuest进行A2情况下的Hold Check,因为这条件最严酷。Launch edge和Latch
edge相距越近,Hold关系就越严酷。TimeQuest总是分析最严酷条件下的时序关系。
如果数据要求的时间短于数据到达时间(这句话的意思就是规定的时间内数据不能变化,这个规定的时间就是Data Required Time,而数据发生变化的时间是Data Arrive Time。因为如果数据到达时间一到数据就变化了,就不能得到想要的结果),此时Hold
Slack为正,很显然就满足了HOLD Check,电路可以正常工作。
4.恢复和去除时间(Recovery and Removal Time)
恢复时间(Recovery Time)是指异步控制信号(如寄存器的异步清除和置位控制信号)在“下个时钟沿”来临之前变无效的最小时间长度。这个时间的意义是,如果保证不了这个最小恢复时间,也就是说这个异步控制信号的解除与“下个时钟沿”离得太近(但在这个时钟沿之前),没有给寄存器留有足够时间来恢复至正常状态,那么就不能保证“下个时钟沿”能正常作用,也就是说这个“时钟沿”可能会失效。
去除时间(Removal)是指异步控制信号(如寄存器的异步清除和置位控制信号)在“有效时钟沿”之后变无效的最小时间长度。这个时间的意义是,如果保证不了这个去除时间,也就是说这个异步控制信号的解除与“有效时钟沿”离得太近(但在这个时钟沿之后),那么就不能保证有效地屏蔽这个“时钟沿”,也就是说这个“时钟沿”可能会起作用。
换句话来说,如果你想让某个时钟沿起作用,那么你就应该在“恢复时间”之前是异步控制信号变无效,如果你想让某个时钟沿不起作用,那么你就应该在“去除时间”过后使控制信号变无效。如果你的控制信号在这两种情况之间,那么就没法确定时钟沿是否起作用或不起作用了,也就是说可能会造成寄存器处于不确定的状态。而这些情况是应该避免的。所以恢复时间和去除时间是应该遵守的。
Recovery Slack计算类似于时钟setup slack的计算。
如果异步复位信号来自于器件I/O port,为了TimeQuest执行这个path的recovery分析,你必须为异步复位port创建输入延迟约束。
&&&&&&&& Removal Slack的计算类似与时钟hold slack计算。
如果异步复位信号来自于器件I/O port,为了TimeQuest执行这个path的removal分析,你必须为异步复位port设置Input
Minimum Delay。
5.多周期路径(Multicycle Paths)
缺省情况下,在setup/hold检查中,我们假设数据从launch edge开始发送,在Latch edge被捕获,Launch edge和Latch
edge是相邻近的一对时钟,这种方式我们称之为缺省的setup/hold关系。在多周期路径检查中,我们仍然采用Launch/Latch edge的概念,但是,Launch/Latch edge不再是相邻的一对时钟沿,而是间隔一定时钟周期的一对时钟沿,间隔的时钟周期数由用户来指定。
图6-8显示了一个乘法器的输入寄存器和输出寄存器之间的Multicycle Path例子,这个例子里,目的寄存器在第二或第三等其它时钟沿锁存数据。
在图6-9中,显示了一个使用缺省setup和hold关系的寄存器到寄存器路径、目的和源时钟的定时图、缺省setup和hold关系,这里,src_clk时钟周期是10ns,dst_clk周期是5ns,缺省setup关系是5ns,缺省hold关系是0ns。
为了适应系统要求,你可以用multicycle timing exception来修改缺省setup和hold关系。图6-10显示了应用multicycle
timing exception之后的实际的setup关系。设置multicycle setup assignment为2,以使用第2个沿来锁存,这样从缺省的5ns变为10ns。
&&&&&& 在同步逻辑设计中,通常都是按照单周期关系考虑数据路径的。但是往往存在这样的情况:一些数据不需要在下一个时钟周期就稳定下来,可能在数据发送后几个时钟周期之后才起作用;一些数据经过的路径太复杂,延时太大,不可能在下一个时钟周期稳定下来,必须要在数据发送后数个时钟周期之后才能被采用。针对这两种情况,设计者的设计意图都是:数据的有效期在以Lauch edge为起始的数个时钟周期之后的Latch edge。这一设计意图不能够被时序分析工具猜度出来,必须由设计者在时序约束中指定;否则,时序约束工具会按照单周期路径检查的方式执行,往往会误报出时序违规。
不设置多周期路径约束的后果有两种:一是按照单周期路径检查的结果,虚报时序违规;二是导致布局布线工具按照单周期路径的方式执行,虽然满足了时序规范,但是过分优化了本应该多个周期完成的操作,造成过约束(Over-Constrain)。过约束会侵占本应该让位于其他逻辑的布局布线资源,有可能造成其他关键路径的时序违规或时序余量变小。
在多周期路径的建立时间(Setup Time)检查中,TimeQuest会按照用户指定的周期数延长Data Required Time,放松对相应数据路径的时序约束,从而得到正确的时序余量计算结果;在保持时间(Hold Time)检查中,TimeQuest也会相应地延长Data Required Time,不再按照单周期路径的分析方式执行(不再采用Launch edge最近的时钟沿,而是采用Latch edge最近的时钟沿),这就需要用户指定保持时间对应的多周期个数。TimeQuest计算Hold
Time的缺省公式等同于PrimeTime。PrimeTime会采用建立时间检查对应时钟沿的前一个时钟沿进行保持时间检查,并多会造成保持时间检查违规,需要用户指定保持时间检查对应的时钟沿为Launch edge最近的时钟沿。
TimeQuest缺省的Hold Time检查公式是需要用户修改的——针对Setup Time多周期路径的设置也会影响到Hold Time的检查。究其原因,多周期路径是为了解决信号传播太慢的问题,慢到一个周期都不够,所以要把Setup Time的检查往后推几个周期——扩大Setup Time检查的时间窗口。而Hold
Time检查信号是否传播得太快,如果把检查时刻往后推,就缩小了Hold Time检查的时间窗口。
“信号跳变抵达窗口”:对Latch寄存器来说,从previous时钟对应的Hold Time开始,到current时钟对应的Setup Time结束。
“信号电平采样窗口”:对Latch寄存器来说,从current时钟对应的Setup Time 开始,到current时钟对应的Hold Time结束。
Launch寄存器必须保证驱动的信号跳变到达Latch寄存器的时刻恰好处于“信号跳变抵达窗口”内,才能保证不破坏Latch寄存器的―信号电平采样窗口。
时序检查的目的就是确认信号跳变发生在“信号跳变抵达窗口”内,而不会发生在“信号电平采样窗口”内。
多周期路径的设置是通过延后Setup Time检查的时刻,扩大了“信号跳变抵达窗口”,放松了时序约束。通过窗口的概念,也很容易理解延后Hold Time,就会缩小“信号跳变抵达窗口”。
6.亚稳态(MetaStability)
&&&&&&&& Metastability可能会发生在一个信号在两个不相关的电路或者异步时钟域间的传输,因为设计者不能确保信号会满足setup和hold时间要求,为了使最小化由于metastability出错的概率,电路设计者通常使用一个组顺序寄存器,又称同步寄存器链,或同步器,在目的时钟域中用来重新同步数据信号到新的时钟域。
&&&&&&&& MTBF是一个由于metastability导致出错的平均时间估计。
&&&&&&&& TimeQuest分析你的设计中潜在的Metastability,为同步寄存器链计算MTBF,整个设计的MTBF是基于它包含的同步链的估计。
除了报告在设计中发现的同步寄存器链外,Quartus II软件还保护这些寄存器优化可能的MTBF负面影响,比如寄存器复制和逻辑重新定时,如果MTBF太低,Quatus II软件也优化你的设计的MTBF。
7.Common Clock Path Pessimism Removal
公共时钟路径pessimism removal引起与公共时钟路径相关联的最小和最大延迟值的变化,这种变化是在静态分析计算slack的时候,将公共时钟路径的最大和最小延迟值的差加到对应的slack公式。
最小和最大延迟变化可能会发生,当两个不同的延迟值被用于同样的时钟通道的时候,例如,在简单的setup分析时,到源寄存器的最大时钟路径延迟用来确定数据到达时间,到目的寄存器的最小时钟路径延迟用来确定数据要求时间,然而,如果到源寄存器和到目的寄存器的时钟路径共享一个公共时钟路径的时候,在定时分析期间,最大延迟和最小延迟都被用于公共时钟路径模型。最小和最大延迟的使用会产生一个由于2个不同延迟值的overlay
pessimistic分析,最大和最小延迟不可能被作为同一时钟路径模型。
图6-11显示了一个典型的register-to-register路径,最大和最小的延迟值标在路径上。
&&&&&&&& A段是reg1和reg2的公共时钟路径,最小延迟是5.0ns,最大延迟是5.5ns,最大和最小延迟的差等于公共时钟路径的pessimism
removal值,在这种情况下,公共时钟路径pessimism是0.5ns,TimeQuest会将公共时钟路径pessimism removal值加到相应的slack公式来得到总的slack,因此,在图6-11中如不加公共时钟通道pessimism
removal时的setup slack等于0.7,增加公共时钟通道pessimism removal之后就变成了1.2ns。
还可以使用公共时钟路径pessimism removal来确定一个寄存器的最小脉冲宽度,一个时钟信号必须满足一个寄存器的最小脉冲宽度的要求,以便寄存器能够做出响应。上升沿触发的寄存器有一个最小高电平脉冲宽度的参数要求,而下降沿触发的寄存器有一个最小低电平脉冲宽度的参数要求。脉冲不满足这个参数可能会导致寄存器不能正确地锁定输入数据。为了计算最小脉冲宽度的slack,TimeQuest分析器利用寄存器时钟端口人为设定的时钟参数要求来确定实际最小脉冲宽度,TimeQuest分析器依据最大/最小上升时间和最大/最小下降的时间来确定要求的最小脉冲宽度。图6-12显示了要求的最小高电平和低电平脉冲宽度。
利用公共时钟路径pessimism,最小脉冲宽度slack可以增加,增加量是最大上升时间减去最小上升时间与最大下降时间减去最小下降时间两个值中的较小的一个值。对图6-12,slack值增加了0.2ns,它是0.3ns(0.8ns-0.5ns)和0.2ns(0.9ns-0.7ns)两个值的较小的一个值。
8.Clock-As-Data分析
大部分设计是被称作数据通道或时钟通道的连接,一个数据通道连接2个同步单元的输出,一个时钟通道是同步单元的时钟pin的连接。然而,会存在如图6-13的路径,从port clk_in到port
clk_out这个路径,既是个时钟path又是个数据path,时钟path是从port clk_in到reg_data的时钟pin,数据path是从port
clk_in到port clk_out。
采用clock_as_data分析,TimeQuest提供更精确的基于用户约束的路径分析,对于时钟路径分析,同PLL相关的任何相位漂移都会被考虑,对于数据通道分析,同PLL相关的任何相位漂移都会被考虑而不是忽略。
&&&&&&&& Clock-as-data分析也应有于内部产生的时钟分频器,如图6-14,在这个图中,反相器反馈路径的波形在定时分析期间被分析。分频器寄存器的输出用来确定launch时间,寄存器的时钟port用来确定latch时间。
9.Multicorner分析
TimeQuest可以执行multicorner定时分析,以验证在不同的运行环境下(电压、处理速度、温度等)能否满足设计要求。
为了改变操作条件或速度等级可以使用set_operating_condition命令。
为了确保在不同条件下无违例发生,应该在不同的运行条件下执行静态定时分析,表6-2给出了低速和高速定时模型操作条件。
* 以上用户言论只代表其个人观点,不代表CSDN网站的观点或立场
访问:311147次
积分:4491
积分:4491
排名:第3097名
原创:58篇
转载:12篇
译文:77篇
评论:91条
(1)(7)(2)(4)(3)(3)(5)(4)(2)(1)(1)(5)(1)(1)(4)(2)(3)(8)(20)(21)(11)(3)(3)(1)(13)(19)}

我要回帖

更多关于 timequest 黑金 的文章

更多推荐

版权声明:文章内容来源于网络,版权归原作者所有,如有侵权请点击这里与我们联系,我们将及时删除。

点击添加站长微信