ImageVerifierCode 换一换
格式:PPTX , 页数:30 ,大小:290.98KB ,
文档编号:4774408      下载积分:22 文币
快捷下载
登录下载
邮箱/手机:
温馨提示:
系统将以此处填写的邮箱或者手机号生成账号和密码,方便再次下载。 如填写123,账号和密码都是123。
支付方式: 支付宝    微信支付   
验证码:   换一换

优惠套餐
 

温馨提示:若手机下载失败,请复制以下地址【https://www.163wenku.com/d-4774408.html】到电脑浏览器->登陆(账号密码均为手机号或邮箱;不要扫码登陆)->重新下载(不再收费)。

已注册用户请登录:
账号:
密码:
验证码:   换一换
  忘记密码?
三方登录: 微信登录  
下载须知

1: 试题类文档的标题没说有答案,则无答案;主观题也可能无答案。PPT的音视频可能无法播放。 请谨慎下单,一旦售出,概不退换。
2: 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。
3: 本文为用户(晟晟文业)主动上传,所有收益归该用户。163文库仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对上载内容本身不做任何修改或编辑。 若此文所含内容侵犯了您的版权或隐私,请立即通知163文库(点击联系客服),我们立即给予删除!。
4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
5. 本站仅提供交流平台,并不能对任何下载内容负责。
6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。

版权提示 | 免责声明

1,本文(北大数字集成电路verilog的延时模型课件.pptx)为本站会员(晟晟文业)主动上传,163文库仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对上载内容本身不做任何修改或编辑。
2,用户下载本文档,所消耗的文币(积分)将全额增加到上传者的账号。
3, 若此文所含内容侵犯了您的版权或隐私,请立即通知163文库(发送邮件至3464097650@qq.com或直接QQ联系客服),我们立即给予删除!

北大数字集成电路verilog的延时模型课件.pptx

1、第第8 8章章 延时模型延时模型学习内容学习内容:1.如何说明块延时如何说明块延时2.如何说明分布延时如何说明分布延时3.如何说明路径延时如何说明路径延时4.怎样在模块中说明时序检查怎样在模块中说明时序检查5.标准延时格式标准延时格式SDF(Standard Delay Format)术语及定义术语及定义模块路径模块路径(module path):穿过模块,连接模块输入穿过模块,连接模块输入(input端口或端口或inout端口)到模块输出端口)到模块输出(output端口或端口或inout端口)的路径。端口)的路径。路径延时路径延时(path delay):与特定路径相关的延时与特定路径相关

2、的延时PLI:编程语言接口,提供编程语言接口,提供 Verilog数据结构的过程访问。数据结构的过程访问。时序检查时序检查(timing check):监视两个输入信号的关系并检查的系统任务,监视两个输入信号的关系并检查的系统任务,以保证电路能正确工作。以保证电路能正确工作。时序驱动设计时序驱动设计(timing driven design):从前端到后端的完整设计流程从前端到后端的完整设计流程中,用时序信息连接不同的设计阶段中,用时序信息连接不同的设计阶段延时模型类型延时模型类型(Delay Modeling Types)延时有三种描述模型:延时有三种描述模型:将全部延时集中将全部延时集中到

3、最后一个门到最后一个门延时分布在延时分布在每一个门上每一个门上用专用块说明每用专用块说明每一个路径一个路径pin-to-pin延时延时典型的延时说明:典型的延时说明:Delay from A to O=2Delay from B to O=3Delay from C to O=1分布延时分布延时块延时块延时路径延时路径延时块延时块延时(Lumped Delay)块延时方法是将全部延时集中到最后一个门上。这种模型简单但不块延时方法是将全部延时集中到最后一个门上。这种模型简单但不够精确,只适用于简单电路。因为当到输出端有多个路径时不能描够精确,只适用于简单电路。因为当到输出端有多个路径时不能描述不

4、同路径的不同延时。述不同路径的不同延时。可以用这种方法描述器件的传输延时,并且使用最坏情况下的延时可以用这种方法描述器件的传输延时,并且使用最坏情况下的延时(最大延时)。最大延时)。timescale 1ns/1nsmodule noror(Out,A,B,C);output Out;input A,B,C;nor n1(net1,A,B);or#3 o1(Out,C,net1);endmodule用块延时描述时,不同路径的延用块延时描述时,不同路径的延时完全相同,左边例中各路径延时完全相同,左边例中各路径延时为:时为:A-Out is 3 ns B-Out is 3 ns C-Out is

5、3 ns分布延时分布延时(Distributed Delays)分布延时方法是将延时分散到每一个门。在相同的输出端上,不同分布延时方法是将延时分散到每一个门。在相同的输出端上,不同的路径有不同的延时。分布延时有两个缺点:的路径有不同的延时。分布延时有两个缺点:在结构描述中随规模的增大而变得异常复杂。在结构描述中随规模的增大而变得异常复杂。仍然不能描述基本单元仍然不能描述基本单元(primitive)中不同引脚上的不同延时。中不同引脚上的不同延时。timescale 1ns/1nsmodule noror(Out,A,B,C);output Out;input A,B,C;nor#2 n1(ne

6、t1,A,B);or#1 o1(Out,C,net1);endmodule这种描述方法描述的不同路径的这种描述方法描述的不同路径的延时。例中各路径延时为:延时。例中各路径延时为:A-Out is 3 ns B-Out is 3 ns C-Out is 1 ns模块路径延时模块路径延时(Module Path Delays)module noror(O,A,B,C);output O;input A,B,C;nor n1(net1,A,B);or o1(O,C,net1);specify (A=O)=2;(B=O)=3;(C=O)=1 endspecifyendmodule例中各路径延时为:例中

7、各路径延时为:A-Out is 2 ns B-Out is 3 ns C-Out is 1 ns 在专用的在专用的specify块描述模块从输入端到输出端的路径延时。块描述模块从输入端到输出端的路径延时。精确性:所有路径延时都能精确说明。精确性:所有路径延时都能精确说明。模块性:时序与功能分开说明模块性:时序与功能分开说明路径必须括路径必须括在圆括号内在圆括号内结构描述的零延时反馈结构描述的零延时反馈(Loop)当事件队列中所有事件结束时仿真前进一个时片。在某种零延时反馈情况下,当事件队列中所有事件结束时仿真前进一个时片。在某种零延时反馈情况下,新事件在同一时片不断的加入,致使仿真停滞在那个时

8、片。新事件在同一时片不断的加入,致使仿真停滞在那个时片。若在结构描述中出现从输出到输入的零反馈情况,多数仿真器会检测到这个若在结构描述中出现从输出到输入的零反馈情况,多数仿真器会检测到这个反馈并产生错误信息。反馈并产生错误信息。Verilog的的lint checker对这种情况会提出警告。对这种情况会提出警告。解决这个问题的方法是在电路中加入分布延时。路径延时不能解决零延时振解决这个问题的方法是在电路中加入分布延时。路径延时不能解决零延时振荡问题,因为输出信号在反馈前不会离开模块。荡问题,因为输出信号在反馈前不会离开模块。精确延时控制精确延时控制在在Verilog中,可以:中,可以:说明门和

9、模块路径的上升说明门和模块路径的上升(rise)、下降、下降(fall)和关断和关断(turn-off)延时延时 and#(2,3)(out,in1,in2,in3);/rise,fall bufif0#(3,3,7)(out,in,ctrl);/rise,fall,turn-off (in=out)=(1,2);/rise,fall (a=b)=(5,4,7);/rise,fall,turn-off在路径延时中可以说明六个延时值在路径延时中可以说明六个延时值(0 1,1 0,0 Z,Z 1,1 Z,Z 0)(C=Q)=(5,12,17,10,6,22);在路径延时中说明所有在路径延时中说明所

10、有12个延时值个延时值(0 1,1 0,0 Z,Z 1,1 Z,Z 0,0 X,X 1,1 X,X 0,X Z,Z X)(C=Q)=(5,12,17,10,6,22,11,8,9,17,12,16);上面所说明的每一个延时还可细分为最好、典型、最坏延时。上面所说明的每一个延时还可细分为最好、典型、最坏延时。or#(3.2:4.0:6.3)o1(out,in1,in2);/min:typ:max not#(1:2:3,2:3:5)(o,in);/min:typ:max for rise,fall user_module#(1:2:3,2:3:4)();在在Cadence Verilog中还不支持

11、中还不支持 (b=y)=(2:3:4,3:4:6,4:5:8);/min:typ:max for rise,fall,and turnoff精确延时控制(续)精确延时控制(续)上升延时是输出转换为上升延时是输出转换为1时的延时时的延时下降延时是输出转换为下降延时是输出转换为0时的延时时的延时关断延时输出转换为三态时的延时关断延时输出转换为三态时的延时到到X的转换延时是最小延时,而从的转换延时是最小延时,而从X到其它值的转换使用最坏延时到其它值的转换使用最坏延时 如果说明了上升、下降和关断延时,则如果说明了上升、下降和关断延时,则1-X的转换延时使用上升和关断延的转换延时使用上升和关断延时的最小

12、值。时的最小值。X-0的延时为下降延时;的延时为下降延时;X-Z的转换为关断延时。的转换为关断延时。如果只说明了上升和下降延时,则如果只说明了上升和下降延时,则1-X和和X-0使用下降延时,使用下降延时,X-Z使用上使用上升和下降延时的最小延时升和下降延时的最小延时 如果只说明了一个延时,则所有转换使用这个延时。如果只说明了一个延时,则所有转换使用这个延时。如果说明了六个延时,则如果说明了六个延时,则1-X使用使用1-X和和1-Z中最小延时;中最小延时;X-0使用使用1-0和和X-0的最大延时;的最大延时;X-Z使用使用1-Z和和0-Z中的最大延时。中的最大延时。延时说明定义的是门或模块的延时

13、说明定义的是门或模块的固有延时固有延时。输入上的任何变化要经过说明的。输入上的任何变化要经过说明的延时才能在输出端反映出来。如果没有延时说明,则延时才能在输出端反映出来。如果没有延时说明,则基本单元基本单元的延时为的延时为0。分布。分布关断延时关断延时只对三态基本单元有效。只对三态基本单元有效。Specify块块specify块定义了模块的时序部分块定义了模块的时序部分 时序信息和功能在不同的块中描述,这样功能验证独立于时序验证。时序信息和功能在不同的块中描述,这样功能验证独立于时序验证。specify块在块在不同的抽象级中保持不变。不同的抽象级中保持不变。设计的功能描述中的延时,如设计的功能

14、描述中的延时,如#delay在综合时不起作用在综合时不起作用specify块由块由specify开始,开始,到到endspecify结束,并且在模块内部结束,并且在模块内部使用关键字使用关键字specparam在在specify中进行参数声明。不要同模块参数中进行参数声明。不要同模块参数(由由parameter说明说明)混淆。混淆。specparam只能在只能在specify块内声明参数并使用;而块内声明参数并使用;而parameter也只能在也只能在specify外声明参数并使用。外声明参数并使用。specify块可以:块可以:描述穿过模块的路径及其延时描述穿过模块的路径及其延时描述时序检查

15、以保证器件的时序约束能够得到满足描述时序检查以保证器件的时序约束能够得到满足定义特定模块或特定模块路径的时钟过滤限制定义特定模块或特定模块路径的时钟过滤限制模块路径的并行连接和全连接(模块路径的并行连接和全连接(specify续)续)*表示全连接,也就是所有输入连接到所有输出表示全连接,也就是所有输入连接到所有输出=表示并行连接,也就是信号对之间的连接表示并行连接,也就是信号对之间的连接 (a,b=q,qb)=15;等价于:等价于:(a=q)=15;(b=qb)=15;(a,b*q,qb)=15;等价于:(a=q)=15;(b=q)=15;(a=qb)=15;(b=qb)=15;模块路径的并行

16、连接和全连接(模块路径的并行连接和全连接(specify续)续)这里有一些路径延时说明的例子:这里有一些路径延时说明的例子:/从从 a 到到 out 和从和从 b 到到 out的路径延时说明的路径延时说明 (a,b=out)=2.2;/从从 r 到到 o1 和和 o2 的上升、下降延时说明的上升、下降延时说明 (r*o1,o2)=(1,2);/从从 a1 到到 b1 和和 从从 a0 到到 b0 的路径延时说明的路径延时说明 (a 1:0=b 1:0)=3;/并行连接并行连接/从从 a 到到 o 的全路径延时说明的全路径延时说明 (a7:0*o7:0)=6.3;/full connection

17、specify块参数块参数 specify块中的参数由关键字块中的参数由关键字specparam说明。说明。specparam参数和模块中参数和模块中parameter定义的参数作用范围不同,并且定义的参数作用范围不同,并且specparam定义的参数不能重载。定义的参数不能重载。下面总结了两种参数的差别:下面总结了两种参数的差别:specify参数参数 关键字为关键字为specparam声明声明 必须在必须在specify块内声明块内声明 只能在只能在specify块内使用块内使用 不能使用不能使用defparam重载重载模块参数模块参数 使用关键字使用关键字parameter声明声明 必须

18、在必须在specify块外声明块外声明 只能在只能在specify块外使用块外使用 可以用可以用defparam重载重载 占用存储器,因为在每个模块占用存储器,因为在每个模块实例中复制实例中复制module noror(O,A,B,C);output O;input A,B,C;nor n1(net1,A,B);or o1(O,C,net1);specify specparam ao=2,bo=3,co=1;(A=O)=ao;(B=O)=bo;(C=O)=co;endspecifyendmodule使用使用specparam定义参数的例子:定义参数的例子:状态依赖路径延时状态依赖路径延时SDP

19、D状态依赖路径延时在说明的条件成立时赋予路径一个延时。状态依赖路径延时在说明的条件成立时赋予路径一个延时。module XOR2(x,a,b);input a,b;output x;xor(x,a,b);specify if(a)(b=x)=(5:6:7);if(!a)(b=x)=(5:7:8);if(b)(a=x)=(4:5:7);if(!b)(a=x)=(5:7:9);endspecifyendmodule有时路径延时可能依赖于其它输入的有时路径延时可能依赖于其它输入的逻辑值。逻辑值。SDPD就是用于说明这种情就是用于说明这种情况。在例子中,况。在例子中,a到到out的延时依赖于的延时依赖

20、于b的状态。的状态。SDPD说明语法:说明语法:if 路径延时说明路径延时说明;SDPD说明不使用说明不使用else子句。条件值子句。条件值为为X或或Z则认为条件成立。当一个路则认为条件成立。当一个路径中有多个条件成立时使用最小值。径中有多个条件成立时使用最小值。所有输入状态都应说明。若没有说明所有输入状态都应说明。若没有说明则使用分布延时则使用分布延时(若说明了分布延时若说明了分布延时),否则使用零延时。否则使用零延时。条件有一些限制,但许多仿真器并不条件有一些限制,但许多仿真器并不遵循遵循IEEE标准的限制。标准的限制。惯性惯性(inertial)和传输和传输(transport)延时模型

21、延时模型对于惯性延迟,若路径延时小于门的固有延时,信号会被淹没。对于惯性延迟,若路径延时小于门的固有延时,信号会被淹没。对于传输延迟,输入上每个变化都会反映到输出上。对于传输延迟,输入上每个变化都会反映到输出上。惯性延迟与传输延时的比较惯性延迟与传输延时的比较固有延时固有延时2ns小于小于2ns固有延时的脉冲固有延时的脉冲在输出上没有反映在输出上没有反映输入的任何变化输入的任何变化反映到输出反映到输出1ns宽度的脉冲宽度的脉冲 仿真器使用缺省的延迟模型,有的可以用命令行选项,有的用仿真器专用的仿真器使用缺省的延迟模型,有的可以用命令行选项,有的用仿真器专用的编译指导指定延迟模型。编译指导指定延

22、迟模型。路径脉冲控制路径脉冲控制使用使用specparam参数参数PATHPULSE$控制模块路径对脉冲的处理。控制模块路径对脉冲的处理。语法:语法:PATHPULSE$=(,?)PATHPULSE$=(,?)specify (en=q)=12;(data=q)=10;(clr,pre*q)=4;specparam PATHPULSE$=3,PATHPULSE$en$q=(2,9),PATHPULSE$clr$q=1;endspecifyen输入波形输入波形输出输出q带倾斜波形带倾斜波形硬件可能产生的波形硬件可能产生的波形 例子例子路径脉冲控制路径脉冲控制可以用可以用PATHPULSE$声明的

23、声明的 specparam参数覆盖全局脉冲控制参数覆盖全局脉冲控制PATHPULSE$声明的声明的 specparam参数缩小了指定模块或模块内特定路径的模参数缩小了指定模块或模块内特定路径的模块路径延时的范围。块路径延时的范围。只声明一个值时,只声明一个值时,error_value和和reject_value相同,如相同,如 PATHPULSE$=3;等价于等价于 PATHPULSE$=(3,3);脉冲宽度小于脉冲宽度小于reject_value的信号将被滤掉,而小于的信号将被滤掉,而小于error_value的值会使输的值会使输出产生不定状态。出产生不定状态。由上面带斜率的波形可以看出,模

24、块中由上面带斜率的波形可以看出,模块中en信号在时间信号在时间t发生变化并开始影响发生变化并开始影响q;若若en脉冲在时间脉冲在时间t+2结束,则结束,则q没有被完全驱动,没有被完全驱动,q将恢复原值,如点波形所将恢复原值,如点波形所示。若示。若en脉冲在时间脉冲在时间t+9结束,结束,q则可能完成驱动,也可能没有,处于未知状则可能完成驱动,也可能没有,处于未知状态。如果态。如果en到到t+9一直有效,一直有效,q将输出新值。将输出新值。Verilog时序检查时序检查 使用时序检查以验证设计的时序使用时序检查以验证设计的时序 时序检查完成下列工作:时序检查完成下列工作:确定两个指定事件之间的时

25、差确定两个指定事件之间的时差 比较时差与指定的时限比较时差与指定的时限 如果时差超过指定时限则产生时序不能满足的报告。这如果时差超过指定时限则产生时序不能满足的报告。这个报告只是一个警告信息,不影响模块的输出个报告只是一个警告信息,不影响模块的输出 Verilog支持的时序检查有:支持的时序检查有:setup(setup(建立时间)建立时间)holdhold(保持时间)(保持时间)pulse widthpulse width(脉冲宽度)(脉冲宽度)clock periodclock period(时钟周期)(时钟周期)skewskew(倾斜)(倾斜)recoveryrecovery(覆盖)(覆

26、盖)Verilog时序检查(续)时序检查(续)系统任务系统任务$setup在数据变化到时钟沿的时差小于时限则报告一个在数据变化到时钟沿的时差小于时限则报告一个violation,如如$setup(data,posedge clk,4);系统任务系统任务$hold在时钟沿到数据变化的时差小于时限则报告一个在时钟沿到数据变化的时差小于时限则报告一个violation,如如$hold(posedge clk,data,3);$setuphold是是$setup和和$hold的联合。的联合。$setuphold(posedge clk,data,4,3);Verilog时序检查(续)时序检查(续)建立

27、时间:建立时间:$setup(data_event,clk_event,limit,notifier);保持时间:保持时间:$hold(clk_event,data_event,limit,notifier);建立建立/保持时间:保持时间:$setuphold(clk_event,data_event,s_limit,h_limit,notifier);覆盖:覆盖:$recovery(reference_event,data_event,limit,notifier);$removal(ctrl_event1,ctrl_event2,limit,notifier);$recrem(refere

28、nce_event,data_event,rec_limit,rem_limit,notifier);$width(ctrl_event,limit,threshold,notifier);$period(ctrl_event,limit,notifier);$skew(ctrl_event1,ctrl_event2,limit,notifier);时序检查中的通知时序检查中的通知(notifier)(续)(续)可以说明并使用一个可以说明并使用一个notifier来显示时序不满足来显示时序不满足(violation)$setuphold(ref_event,data_event,s_limit

29、,h_limit,NOTIFY);notifier是可选的是可选的notifier是一个是一个1位的寄存器位的寄存器时序检查产生时序检查产生violation时,时,Verilog报告信息并使报告信息并使notifier翻转翻转当时序当时序violation产生时,可以用产生时,可以用notifier使输出变为未定义值。使输出变为未定义值。有两种方法使有两种方法使notifier影响输出值影响输出值将将notifier作为作为UDP的一个输入端口的一个输入端口在高级行为模块中,不需要为在高级行为模块中,不需要为notifier声明一个端口也可以对其进行操作。声明一个端口也可以对其进行操作。no

30、tifier举例举例timescale 1ns/1nsmodule dff_notifier(q,ck,d,rst);input ck,d,rst;output q;reg FLAG;/1-bit notifier/dff netlist goes here specify (ck=q)=(2:3:4);$setup(d,posedge ck,2,FLAG);endspecifyendmodulemodule test;reg ck,d,rst;dff_notifier(q,ck,d,rst);/stimulus and response checking goes here always(n

31、otifier)begin rst=1;#10 rst=0;endendmodulenotifier初始值为初始值为X;第一个产;第一个产生时序生时序violation时,其值变为时,其值变为1。其后每次产生时序。其后每次产生时序violation,其值翻转。,其值翻转。时序检查时序检查 条件时序检查条件时序检查module dff(data,clk,rst,q,qb);input data,clk,rst;output q,qb;/instantiate the primitives for the basic flip-flop udp_dff(q_int,data,clk,rst);bu

32、f b1(q,q_int);not n1(qb,q_int);/create timing checks specify$setup(data,posedge clk&rst,12);$hold(posedge clk,data&rst,5);$width(posedge clk,25);endspecifyendmodule在条件时序检查中,是否进行时序检查取决于条件表达式的计算在条件时序检查中,是否进行时序检查取决于条件表达式的计算值值专用操作符专用操作符&在时在时序检查中设置条件。序检查中设置条件。只当条件表达式为真时只当条件表达式为真时才进行时序检查才进行时序检查当当rst为高时进行为

33、高时进行setup和和hold检查检查width检查检查与与rst无关无关时序检查时序检查 条件时序检查条件时序检查条件表达式中条件只能是一个标量信号,这个信号可以:条件表达式中条件只能是一个标量信号,这个信号可以:用位反操作符(用位反操作符()取反。)取反。用等于操作符(用等于操作符(=或!或!=)与一个标量常量进行比较)与一个标量常量进行比较 用相同操作符用相同操作符(=或!或!=)与一个标量常量进行比较)与一个标量常量进行比较 若条件表达式计算值为若条件表达式计算值为1、x或或z则认为条件成立。则认为条件成立。由于条件时序检查的条件表达式中只能有一个信号,因此需要多个信由于条件时序检查的

34、条件表达式中只能有一个信号,因此需要多个信号产生条件时必须使用哑逻辑使将它们表达为一个内部信号表示才能号产生条件时必须使用哑逻辑使将它们表达为一个内部信号表示才能用于条件时序检查。用于条件时序检查。SDF(Stand Delay Format)文件文件增量或绝对延时,如模块路径,器件、内部连接和端口增量或绝对延时,如模块路径,器件、内部连接和端口(包括输入端口延时)包括输入端口延时)时序检查,如时序检查,如setup,hold,recovery,skew,width period时序约束,如时序约束,如path条件或无条件模块路径延时条件或无条件模块路径延时设计、实例、类型或库的专用数据设计、

35、实例、类型或库的专用数据比例、环境、工艺及用户定义基本单元比例、环境、工艺及用户定义基本单元 标准延时格式(标准延时格式(SDF)是一种标准的,与工具无关的表示时序数据的文本)是一种标准的,与工具无关的表示时序数据的文本格式。格式。SDF文件通常用于文件通常用于Verilog仿真。教程不对仿真。教程不对SDF做详细介绍。做详细介绍。应注意的是,应注意的是,Verilog仿真器必须能够将仿真器必须能够将SDF文件中的数据标注用于仿真。文件中的数据标注用于仿真。这些数据包括:这些数据包括:SDF允许不同工具共享延时数据。可以将关键路径信息由综合器传递给布允许不同工具共享延时数据。可以将关键路径信息

36、由综合器传递给布局布线工具,也可将内部连接线延时信息由布局布线工具反传给仿真器。局布线工具,也可将内部连接线延时信息由布局布线工具反传给仿真器。内部连接延时内部连接延时内部连接延时是对器件之间连接线延时的估算。例如:内部连接延时是对器件之间连接线延时的估算。例如:(INSTANCE)(DELAY (ABSOLUTE (INTERCONNECT u1.u2.u3.o1 u1.u4.i3(5:6:7)(5.5:6:6.5)内部连接延时内部连接延时上面的例子中的内部连接延时说明了一个上面的例子中的内部连接延时说明了一个inputinput到到outputoutput连接的线延时。连接的线延时。延时分

37、上升、下降和关断延时,每种延时又有最好、典型和最坏值。延时分上升、下降和关断延时,每种延时又有最好、典型和最坏值。限定于敏感边沿的限定于敏感边沿的iopathiopath,时钟到输出;用上升、下降的最好、典型、最坏值说明。,时钟到输出;用上升、下降的最好、典型、最坏值说明。条件条件iopathiopath,inputinput到到outputoutput;用上升、下降和关断的最好、典型、最坏值说明;用上升、下降和关断的最好、典型、最坏值说明IOPATH延时延时IOPATH延时是器件从输入端口到输出端口的一个合法路径上的延时。延时是器件从输入端口到输出端口的一个合法路径上的延时。例如:例如:(I

38、NSTANCE test.u1.u2)(DELAY(ABSOLUTE (IOPATH in o1(1:2:3)(1:3:4)(IOPATH(posedge ck)o1(2:3:4)(4:5:6)(COND en(IOPATH in o2(2:4:5)(4:5:6)(4:5:7)IOPATH延时延时端口端口IOPATH,从输入到输出;用最好、典型和最坏值说明上升和下降延时。,从输入到输出;用最好、典型和最坏值说明上升和下降延时。限定敏感边沿的限定敏感边沿的IOPATH,从时钟到输出,用最好、典型和最坏值描述其上升,从时钟到输出,用最好、典型和最坏值描述其上升和下降延时。和下降延时。条件条件IOP

39、ATH,从输入到输出;用最好、典型和最坏值描述其上升、下降和关,从输入到输出;用最好、典型和最坏值描述其上升、下降和关断延时。断延时。在上面在上面IOPATH延时的例子中包括:延时的例子中包括:在上面在上面IOPATH延时的例子中,实例延时的例子中,实例test.u1.u2 需要一个如下面所示的需要一个如下面所示的specify块用于反标注。块用于反标注。specify (in=o1)=(1:2:3,1:3:4);(ck=o1)=(2:3:4,4:5:6);if(en)(in=o2)=(2:4:5,4:5:6,4:5:7);endspecifySDF文件中的时序信息覆盖specify块中的时序

40、信息注意:复习复习问题:问题:哪一种延时说明是最精确的?哪一种延时说明是最精确的?怎样防止一个结构化零延时反馈?怎样防止一个结构化零延时反馈?为什么不能在为什么不能在specify块中使用模块参数块中使用模块参数(parameter)?Verilog仿真时在哪里说明一个线延时?仿真时在哪里说明一个线延时?Verilog仿真时在哪里说明时序检查?仿真时在哪里说明时序检查?解答:解答:在在specify块中说明的延时信息是最精确的。因为可以说明块中说明的延时信息是最精确的。因为可以说明pin-to-pin的路径延时的路径延时在门加上一个在门加上一个#延时来防止零延时组合逻辑反馈。延时来防止零延时组合逻辑反馈。模块延时在每次实例化时都复制一份。而低层元件必须大量应用参数,并且其模块延时在每次实例化时都复制一份。而低层元件必须大量应用参数,并且其实例化次数也非常多。因此使用实例化次数也非常多。因此使用specparam节省了大量存储器。节省了大量存储器。在在SDF文件中。在编译或仿真时标注这些延时文件中。在编译或仿真时标注这些延时在在specify块中描述,可以由块中描述,可以由SDF文件中的时序检修改或代替。文件中的时序检修改或代替。

侵权处理QQ:3464097650--上传资料QQ:3464097650

【声明】本站为“文档C2C交易模式”,即用户上传的文档直接卖给(下载)用户,本站只是网络空间服务平台,本站所有原创文档下载所得归上传人所有,如您发现上传作品侵犯了您的版权,请立刻联系我们并提供证据,我们将在3个工作日内予以改正。


163文库-Www.163Wenku.Com |网站地图|