北大数字集成电路verilog的延时模型课件.pptx
- 【下载声明】
1. 本站全部试题类文档,若标题没写含答案,则无答案;标题注明含答案的文档,主观题也可能无答案。请谨慎下单,一旦售出,不予退换。
2. 本站全部PPT文档均不含视频和音频,PPT中出现的音频或视频标识(或文字)仅表示流程,实际无音频或视频文件。请谨慎下单,一旦售出,不予退换。
3. 本页资料《北大数字集成电路verilog的延时模型课件.pptx》由用户(晟晟文业)主动上传,其收益全归该用户。163文库仅提供信息存储空间,仅对该用户上传内容的表现方式做保护处理,对上传内容本身不做任何修改或编辑。 若此文所含内容侵犯了您的版权或隐私,请立即通知163文库(点击联系客服),我们立即给予删除!
4. 请根据预览情况,自愿下载本文。本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。
5. 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007及以上版本和PDF阅读器,压缩文件请下载最新的WinRAR软件解压。
- 配套讲稿:
如PPT文件的首页显示word图标,表示该PPT已包含配套word讲稿。双击word图标可打开word文档。
- 特殊限制:
部分文档作品中含有的国旗、国徽等图片,仅作为作品整体效果示例展示,禁止商用。设计者仅对作品中独创性部分享有著作权。
- 关 键 词:
- 北大 数字集成电路 verilog 延时 模型 课件
- 资源描述:
-
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)延时模型
展开阅读全文