数字系统设计(1).ppt

  1. 1、下载文档前请自行甄别文档内容的完整性,平台不提供额外的编辑、内容补充、找答案等附加服务。
  2. 2、"仅部分预览"的文档,不可在线预览部分如存在完整性等问题,可反馈申请退款(可完整预览的文档不适用该条件!)。
  3. 3、如文档侵犯您的权益,请联系客服反馈,我们会尽快为您处理(人工客服工作时间:9:00-18:30)。

$recovery
$recovery( ReferenceEvent, DataEvent, Limit [, Notifier]); 主要检查时序状态元件(触发器、锁存器、RAM和 ROM等)的时钟信号与相应的置/复位信号之间的时序 约束关系,若 ( time_of_data_event - time_of_reference_event ) < limit




如果(time_of_data_event time_of_reference_event ) < limit , 则报数据保持时间时序冲突。 例如: $hold(posedge clk, data, 3);
$setuphold


系统任务$setuphold是$setup和$hold任务 的结合: $setuphold( ReferenceEvent, DataEvent, SetupLimit, HoldLimit [, Notifier]);
$period

$period( ReferenceEvent, Limit [, Notifier]);


检查信号的周期,若( time_of_data_event - time_of_reference_event ) < limit则报告 时序错误。 基准事件必须是边沿触发事件。数据事 件来源于基准事件:它是带有相同边沿 的基准事

则报告时序冲突。该系统任务的基准事件必须是边沿 触发事件。该系统任务在执行定时校检前记录新基准 事件时间;因此,如果数据事件和基准事件在相同的 模拟时间同时发生,就报告时序冲突错误。
$nochange

$nochange( ReferenceEvent, DataEvent, StartEdgeOffset, EndEdgeOffset [, Notifier]);
PATHPULSE$



Specparam可以在specify block中使用控制脉 冲传播。 脉冲在模块的输出上有两个比通过模 块输出延迟短的预定跳变。 缺省情况下,脉冲会被模拟器滤掉;这意味着 只有长于延迟的跳变才会通过模块传输。这种 效果叫做惯性延迟。PATHPULSE$可以改变 缺省的行为方式。 还可以用于指定促使输出出现x的脉冲宽度范 围。
specify (en => q) = 12; (data => q) = 10; (clr, pre *> q) = 4; specparam PATHPULSE$ = 3, PATHPULSE$en$q = ( 2, 9 ) , PATHPULSE$clr$q = 1 ; endspecify
定时校验任务
1. 2. 3.
定时检查用于校验设计的定时。 定时检查完成以下功能: 测定两个事件之间的共用时间。 比较共用时间和指定的时间限制。 如果共用时间超指定的时间限制报告时 间冲突。(冲突被当作warning报告并不 影响模块输出。)
1. 2. 3. 4. 5. 6.
Verilog执行的时间检查有: 建立 保持 脉冲宽度 时钟周期 倾斜 恢复
路径脉冲控制


使用PATHPULSE$控制模块路径脉冲保 持。 Syntax:
PATHPULSE$ = ( reject_limit[, error_limit]); PATHPULSE$Input$Output = (reject_limit[, error_limit]); Limit = ConstantMinTypMaxExpression


如果error limit 没给出,则它与reject limit相同。 短于reject limit的脉冲将不被传输到输出。 比reject limit长但是比error limit短的脉冲会被 当做1‘bX传输。 比error limit长的脉冲则正常传输 。 PATHPULSE$input$output specparam优先于 普通的同一模块中的PATHPULSE$ specparam 起作用。
ຫໍສະໝຸດ Baidu
$skew

$skew( ReferenceEvent, DataEvent, Limit [, Notifier]);

检查信号之间(尤其是成组的时钟控制 信号之间)的偏斜(skew)是否满足要 求,若time_of_data_event time_of_reference_event > limit则报告信 号之间出现时序偏斜太大的错误。如果 data_event的时间等于reference_event的时 间,则不报出错。
定时校验任务
1. 2. 3. 4. 5. 6. 7. 8.
$hold $nochange $period $recovery $setup $setuphold $skew $width
$setup

$setup( DataEvent, ReferenceEvent, Limit, [ Notifier]);


如果(time_of_reference_event time_of_data_event ) < limit则报告时序冲 突(timing violation); 系统调用实例如下: $setup(data, posedge clk, 4);
$hold

$hold( ReferenceEvent, DataEvent, Limit [, Notifier]);
实例:


$setuphold(posedge clk, data, 4, 3);
$width

$width( ReferenceEvent, Limit [, Threshold [, Notifier]]);



则检查信号的脉冲宽度限制,如果threshold < (time_of_data_event - time_of_reference_event) < limit则报告信号上出现脉冲宽度不够宽的时序 错误。 数据事件来源于基准事件:它是带有相反边沿 的基准事件,例如: $width(negedge Ck , 10, 0.3 ) ;
相关文档
最新文档