




版权说明:本文档由用户提供并上传,收益归属内容提供方,若内容存在侵权,请进行举报或认领
文档简介
1、Verilog HDL 数字系统设计PATHPULSE$nSpecparam可以在specify block中使用控制脉冲传播。 脉冲在模块的输出上有两个比通过模块输出延迟短的预定跳变。n缺省情况下,脉冲会被模拟器滤掉;这意味着只有长于延迟的跳变才会通过模块传输。这种效果叫做惯性延迟。PATHPULSE$可以改变缺省的行为方式。n还可以用于指定促使输出出现x的脉冲宽度范围。Verilog HDL 数字系统设计路径脉冲控制n使用PATHPULSE$控制模块路径脉冲保持。nSyntax:PATHPULSE$ = ( reject_limit, error_limit); PATHPULSE$Inp
2、ut$Output = (reject_limit, error_limit); Limit = ConstantMinTypMaxExpressionVerilog HDL 数字系统设计n如果error limit 没给出,则它与reject limit相同。n短于reject limit的脉冲将不被传输到输出。n比reject limit长但是比error limit短的脉冲会被当做1bX传输。n比error limit长的脉冲则正常传输 。nPATHPULSE$input$output specparam优先于 普通的同一模块中的PATHPULSE$ specparam 起作用。Veri
3、log HDL 数字系统设计specify(en = q) = 12;(data = q) = 10;(clr, pre * q) = 4;specparamPATHPULSE$ = 3,PATHPULSE$en$q = ( 2, 9 ) ,PATHPULSE$clr$q = 1 ;endspecifyVerilog HDL 数字系统设计定时校验任务n定时检查用于校验设计的定时。n定时检查完成以下功能:n测定两个事件之间的共用时间。n比较共用时间和指定的时间限制。1.如果共用时间超指定的时间限制报告时间冲突。(冲突被当作warning报告并不影响模块输出。)Verilog HDL 数字系统设计
4、nVerilog执行的时间检查有:n建立n保持n脉冲宽度n时钟周期n倾斜n恢复Verilog HDL 数字系统设计定时校验任务n$holdn$nochangen$periodn$recoveryn$setupn$setupholdn$skewn$widthVerilog HDL 数字系统设计$setupn$setup( DataEvent, ReferenceEvent, Limit, Notifier);n如果(time_of_reference_event - time_of_data_event ) limit则报告时序冲突(timing violation);n系统调用实例如下:n$s
5、etup(data, posedge clk, 4);Verilog HDL 数字系统设计$holdn$hold( ReferenceEvent, DataEvent, Limit , Notifier);n如果(time_of_data_event - time_of_reference_event ) limit ,n则报数据保持时间时序冲突。n例如:n$hold(posedge clk, data, 3);Verilog HDL 数字系统设计$setupholdn系统任务$setuphold是$setup和$hold任务的结合:n$setuphold( ReferenceEvent, D
6、ataEvent, SetupLimit, HoldLimit , Notifier);n实例:n$setuphold(posedge clk, data, 4, 3);Verilog HDL 数字系统设计$widthn$width( ReferenceEvent, Limit , Threshold , Notifier);n则检查信号的脉冲宽度限制,如果threshold (time_of_data_event - time_of_reference_event) limit则报告信号上出现脉冲宽度不够宽的时序错误。n数据事件来源于基准事件:它是带有相反边沿的基准事件,例如:n$width
7、(negedge Ck , 10, 0.3 ) ;Verilog HDL 数字系统设计$periodn$period( ReferenceEvent, Limit , Notifier);n检查信号的周期,若( time_of_data_event - time_of_reference_event ) limit则报告信号之间出现时序偏斜太大的错误。如果data_event的时间等于reference_event的时间,则不报出错。Verilog HDL 数字系统设计$recoveryn$recovery( ReferenceEvent, DataEvent, Limit , Notifie
8、r);n主要检查时序状态元件(触发器、锁存器、RAM和ROM等)的时钟信号与相应的置/复位信号之间的时序约束关系,若( time_of_data_event - time_of_reference_event ) EventName; Trigger the eventVerilog HDL 数字系统设计nEvent声明可以出现在以下位置: nmodule-endmodulenbegin : Label-endnfork : Label-joinntask-endtasknfunction-endfunctionVerilog HDL 数字系统设计命名事件module add_mult (ou
9、t,a,b);input 2:0a,b;output 3:0out;reg 3:0out;event add, mult; / define eventsalways (a or b)if (ab)-add; / trigger event else-mult; / trigger eventVerilog HDL 数字系统设计always (add) /respond to an event triggerout = a + b;always (mult) /respond to an event triggerout = a * b;endmoduleVerilog HDL 数字系统设计n
10、Events没有值或者延迟,是简单的事件触发语句触发的事件,并且有边沿敏感定时控制检测。n命名事件在测试和系统级建模时,同一module 中两个always块之间或者层次化中不同module之间通讯是很有用的。n不可综合。Verilog HDL 数字系统设计层次路径名nVerilog HDl中的标识符具有一个唯一的层次路径名。层次路径名通过由句点(.)隔开的名字组成。新层次由以下定义:1) 模块实例化2) 任务定义3) 函数定义4) 命名程序块Verilog HDL 数字系统设计n所有的nets, registers, events, parameters, tasks和functions都可
11、以通过层次名从block外访问。n数据不仅可读,而且可以通过路径名更新任何层次中的数据项的值。n较低层模块能够通过使用模块实例名限定变量引用高层(称为向上引用)或低层(称为向下引用)模块。Verilog HDL 数字系统设计module Separate;parameter P = 5; / Separate.Pendmodulemodule Top;reg R; / Top.RBottom U1();endmoduleVerilog HDL 数字系统设计module Bottom;reg R; / Top.U1.Rtask T; / Top.U1.Treg R; / Top.U1.T.R;.
12、endtaskVerilog HDL 数字系统设计initialbegin : InitialBlockreg R; / Top.U1.InitialBlock.R;$display(Bottom.R); /向上引用Top.U1.R$display(U1.R); /向上引用Top.U1.R.endendmoduleVerilog HDL 数字系统设计共享任务和函数n一种在不同模块间共享任务和函数的方法是在文本文件中编写共享任务和函数的定义,然后使用include编译指令在需要的模块中包含这些定义。n另一种可选的方法是在模块内定义共享任务和函数,然后用层次名在不同的模块中引用需要的任务或函数。V
13、erilog HDL 数字系统设计share.hfunction SignedPlus;. . .endfunctionfunction SignedMinus;. . .endfunctiontask PresetClear;. . .endtaskVerilog HDL 数字系统设计module SignedAlu (A, B, Operation, Z ) ;input 0:3 A, B;input Operation;output 0:3 Z;reg 0:3 Z;/ /包含共享函数的定义。include “share.h”Verilog HDL 数字系统设计always (A or B
14、 or Operation)if (Operation)Z = SignedPlus (A, B);elseZ = SignedMinus (A, B);endmoduleVerilog HDL 数字系统设计module Share ;function SignedPlus ;. . .endfunctionfunction SignedMinus;. . .endfunctiontask PresetClear;. . .endtaskendmoduleVerilog HDL 数字系统设计module SignedAlu2 (A, B, Operation, Z ) ;input 0:3 A
15、, B;input Operation;output 0:3 Z;reg 0:3 Z;always (A or B or Operation)if (Operation)Z = Share.SignedPlus (A, B) ;elseZ = Share.SignedMinus (A, B) ;endmoduleVerilog HDL 数字系统设计值变转储文件n值变转储(VCD)文件包含设计中指定变量取值变化的信息。它的主要目的是为其它后处理工具提供信息。nVerilog提供了一套系统任务用于以标准VCD格式记录信号值的变化。大多数的波形显示工具读取这种格式。Verilog HDL 数字系统设
16、计$dumpfile(“file.dump”); 为记录打开一个VCD文件$dumpvars(); 为记录选择信号$dumpflush; 刷新所有的VCD数据$dumpoff; 停止记录$dumpon; 再次开始记录$dumplimit (); 限制创建的VCD文件的大小$dumpall; 转储所有当前指定的变量值Verilog HDL 数字系统设计nVCD文件记录你的设计模拟期间所发生的数据信号变化。 你可以指定所要记录的信号。n除了$dumpvars其他所有其他所有$dump系统任务都很简单。Verilog HDL 数字系统设计n必须首先用$dumpfile系统任务打开一个VCD文件,并且
17、每次模拟只能打开一个。n为了看到全部的历史值,必须在0时刻就探测波形。n周期性的刷新磁盘数据是一个好方法,这可以避免记录任何意外的系统错误。nVCD数据库不记录模拟结束时刻,因此如果要波形工具在最后模拟值变化后显示波形,必须在仿真结束前用$dumpall(转储当前值)。(转储当前值)。Verilog HDL 数字系统设计n$dumpvars(, *);nscope 引用信号、实例或层次化模块。nLevels是要转储的指定模块的层次,0转储指定的层次和低级的所有实例,1只转储指定层次 。n如果没有参数,设计中的所有变量都被转储。.n$dumpvars可以多次调用,但是必须在同一时刻(通常在仿真起
18、始时)。Verilog HDL 数字系统设计51 2之间计数的可逆计数器module CountUpDown (Clk, Count, Up_Down ) ;input Clk, Up_Down;output 0:3 Count;reg 0:3 Count;initial Count = d5 ;always (posedge Clk) Verilog HDL 数字系统设计beginif (Up_ Down)beginCount = Count + 1;if (Count 12)Count = 12;endelseVerilog HDL 数字系统设计beginCount = Count1;if
19、 (Count 5)Count = 5;endendendmoduleVerilog HDL 数字系统设计module Test;reg Clock, UpDn;wire 0:3 Cnt_Out;parameter ON_DELAY = 1, OFF_DELAY = 2;CountUpDown C1(Clock, Cnt_Out, UpDn ) ;Verilog HDL 数字系统设计alwaysbeginClock = 1;#ON_DELAY;Clock = 0;#OFF_DELAY ;endVerilog HDL 数字系统设计initialbeginUpDn = 0;#50 UpDn = 1
20、;#100 $dumpflush;$stop; /停止模拟。endVerilog HDL 数字系统设计initialbegin$dumpfile (count.dump”) ;$dumplimit (4096) ;$dumpvars (0, Test;)$dumpvars (0, Cl.Count, Cl.Clk, C1.Up_Down ) ;endendmoduleVerilog HDL 数字系统设计VCD文件格式nVCD文件是ASCII文件。VCD文件包含如下信息: 文件头信息:提供日期、模拟器版本和时间标度单位。 节点信息:定义转储作用域和变量类型。 取值变化:实际取值随时间变化。记录绝
21、对模拟时间。Verilog HDL 数字系统设计V C D文件实例Verilog HDL 数字系统设计Verilog HDL 数字系统设计Verilog HDL 数字系统设计Verilog HDL 数字系统设计强度n在Verilog HDL中除了指定四个基本值0、1、x和z外,还可以对这些值指定如驱动强度和电荷强度等属性。n逻辑强度建模是Verilog建模的一个重要部分。 一般只用于元件建模(如FPGA、ASIC library 开发工具),电路设计者必须了解电路的各种可能性。Verilog HDL 数字系统设计nVerilog提供了多个级别的逻辑强度。 n逻辑强度建模解决信号组合跳变为已知和
22、未知值,以最大精度描述硬件行为。 n逻辑强度建模的几种情况:n集电极开路输出 (pullup required)n单一节点的多个三态驱动nMOS电荷存储n射极耦合逻辑门(ECL Gates)Verilog HDL 数字系统设计Verilog HDL 数字系统设计驱动强度n驱动强度可以在如下情况中指定:1) 在线网说明中带赋值的线网。2) 原语门实例中的输出端口。3) 在连续赋值语句中。n驱动强度定义有两个值:一个是线网被赋值为1时的强度值;另一个是线网被赋值为0时的强度值。形式如下:(strength_for_1, strength_for_0 )Verilog HDL 数字系统设计n对于值1
23、的赋值,允许如下的信号驱动强度: supply1 strong1 pull1 weak1 highz1(禁止对门级原语使用)Verilog HDL 数字系统设计n对于值0的赋值,允许如下的信号驱动强度: supply0 strong0 pull0 weak0 highz0 (禁止对门级原语使用)Verilog HDL 数字系统设计n缺省的信号驱动强度定义为(strong0, strong1)。n线网的强度:wire (pull1, weak0) # (2,4) Lrk = Pol & Ord;n信号的驱动强度定义仅适用于标量类型的信号,如:wire、wand、wor 、tri、tria
24、nd、trior、trireg、tri0和tri1。Verilog HDL 数字系统设计n门级原语输出端口的驱动强度定义:nnand (pull1, strong0) # (3:4:4) A1 (Mout, MinA, MinB, MinC ) ;n信号驱动强度仅适用于定义下列门级原语的外部端口: and、or、xor、nand、nor、xnor、buf、bufif0、bufif1、not、notif0、notif1、pulldown和pullup。Verilog HDL 数字系统设计n连续赋值语句中的强度定义:nassign (weak1, pull0) #2.56 Wrt = Ctrl;n线网的驱动强度可以在显示任务中用% v格式定义输出。例如:n$display ( Prq is %v, Prq) ;n结果为:nPrq is We1Verilog HDL 数字系统设计%v输出信号强度如下nsupply - Su, nstrong - St, nPull - Pu, nLarge - La,nWeak - We, nMedium - Me, nSmall - Sm, nHighz - Hi. n%v也输出信号H和L(它们被输出为二进制形式)Verilo
温馨提示
- 1. 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。图纸软件为CAD,CAXA,PROE,UG,SolidWorks等.压缩文件请下载最新的WinRAR软件解压。
- 2. 本站的文档不包含任何第三方提供的附件图纸等,如果需要附件,请联系上传者。文件的所有权益归上传用户所有。
- 3. 本站RAR压缩包中若带图纸,网页内容里面会有图纸预览,若没有图纸预览就没有图纸。
- 4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
- 5. 人人文库网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对用户上传分享的文档内容本身不做任何修改或编辑,并不能对任何下载内容负责。
- 6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
- 7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。
最新文档
- 机构拓展活动方案
- 木门类活动策划方案
- 智慧景区活动方案
- 暑期体育教研活动方案
- 机关单位美食活动方案
- 普及金融知识活动方案
- 晨间入园游戏活动方案
- 木门工厂活动方案
- 春装促销活动方案
- 杨尚昆故居活动方案
- 2025-2030中国氧化锌行业发展现状及发展趋势与投资风险分析
- 期末模拟卷译林版八年级英语下学期
- 2025年湖北省中考英语真题试卷
- 沈阳市重点中学2025届英语七下期末监测模拟试题含答案
- 智能印章使用管理制度
- 消防高温防暑讲评课件
- 2025年中国邮政集团有限公司辽宁省分公司人员招聘笔试备考试题及答案详解1套
- 充电站建设管理制度
- 美好生活大调查:中国居民消费特点及趋势报告(2025年度)
- 2024-2025学年度第二学期二年级语文暑假作业有答案共25天
- 2025河南省豫地科技集团有限公司社会招聘169人笔试参考题库附带答案详解
评论
0/150
提交评论