数字系统设计12_第1页
数字系统设计12_第2页
数字系统设计12_第3页
数字系统设计12_第4页
数字系统设计12_第5页
已阅读5页,还剩36页未读 继续免费阅读

付费下载

下载本文档

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

文档简介

1、PATHPULSE$Specparam可以在specify block中使用控制脉冲传播。 脉冲在模块的输出上有两个比通过模块输出延迟短的预定跳变。缺省情况下,脉冲会被模拟器滤掉;这意味着只有长于延迟的跳变才会通过模块传输。这种效果叫做惯性延迟。PATHPULSE$可以改变缺省的行为方式。还可以用于指定促使输出出现x的脉冲宽度范围。路径脉冲控制使用PATHPULSE$控制模块路径脉冲保持。Syntax:PATHPULSE$ = ( reject_limit, error_limit); PATHPULSE$Input$Output = (reject_limit, error_limit);

2、Limit = ConstantMinTypMaxExpression如果error limit 没给出,则它与reject limit相同。短于reject limit的脉冲将不被传输到输出。比reject limit长但是比error limit短的脉冲会被当做1bX传输。比error limit长的脉冲则正常传输 。PATHPULSE$input$output specparam优先于 普通的同一模块中的PATHPULSE$ specparam 起作用。specify(en = q) = 12;(data = q) = 10;(clr, pre * q) = 4;specparamPAT

3、HPULSE$ = 3,PATHPULSE$en$q = ( 2, 9 ) ,PATHPULSE$clr$q = 1 ;endspecify定时校验任务定时检查用于校验设计的定时。定时检查完成以下功能:测定两个事件之间的共用时间。比较共用时间和指定的时间限制。如果共用时间超指定的时间限制报告时间冲突。(冲突被当作warning报告并不影响模块输出。)Verilog执行的时间检查有:建立保持脉冲宽度时钟周期倾斜恢复定时校验任务$hold$nochange$period$recovery$setup$setuphold$skew$width$setup$setup( DataEvent, Refe

4、renceEvent, Limit, Notifier);如果(time_of_reference_event - time_of_data_event ) limit则报告时序冲突(timing violation);系统调用实例如下:$setup(data, posedge clk, 4);$hold$hold( ReferenceEvent, DataEvent, Limit , Notifier);如果(time_of_data_event - time_of_reference_event ) limit ,则报数据保持时间时序冲突。例如:$hold(posedge clk, dat

5、a, 3);$setuphold系统任务$setuphold是$setup和$hold任务的结合:$setuphold( ReferenceEvent, DataEvent, SetupLimit, HoldLimit , Notifier);实例:$setuphold(posedge clk, data, 4, 3);$width$width( ReferenceEvent, Limit , Threshold , Notifier);则检查信号的脉冲宽度限制,如果threshold (time_of_data_event - time_of_reference_event) limit则报

6、告信号上出现脉冲宽度不够宽的时序错误。数据事件来源于基准事件:它是带有相反边沿的基准事件,例如:$width(negedge Ck , 10, 0.3 ) ;$period$period( ReferenceEvent, Limit , Notifier);检查信号的周期,若( time_of_data_event - time_of_reference_event ) limit则报告信号之间出现时序偏斜太大的错误。如果data_event的时间等于reference_event的时间,则不报出错。$recovery$recovery( ReferenceEvent, DataEvent,

7、Limit , Notifier);主要检查时序状态元件(触发器、锁存器、RAM和ROM等)的时钟信号与相应的置/复位信号之间的时序约束关系,若( time_of_data_event - time_of_reference_event ) EventName; Trigger the eventEvent声明可以出现在以下位置: module-endmodulebegin : Label-endfork : Label-jointask-endtaskfunction-endfunction命名事件module add_mult (out,a,b);input 2:0a,b;output 3

8、:0out;reg 3:0out;event add, mult; / define eventsalways (a or b)if (ab)-add; / trigger event else-mult; / trigger eventalways (add) /respond to an event triggerout = a + b;always (mult) /respond to an event triggerout = a * b;endmoduleEvents没有值或者延迟,是简单的事件触发语句触发的事件,并且有边沿敏感定时控制检测。命名事件在测试和系统级建模时,同一module 中两个always块之间或者层次化中不同module之间通讯是很有用的。不可综合。层次路径名Verilog HDl中的标识符具有一个唯一的层次路径名。层次路径名通过由句点(.)隔开的名字组成。新层次由以下定义:1) 模块实例化2) 任务定义3) 函数定义4) 命名程序块所有的nets, regist

温馨提示

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

评论

0/150

提交评论