systemverilog中clocking的用法-2.clocking实例分析

时间:2024-11-04 19:49:29
clocking bus @(posedge clock1);//定义了clocking为bus,由clock1的上升沿来驱动采样。
    default input 10ns output 2ns;//clocking所有信号默认为前10ns对其进行输入采样,在事件的后2ns对其进行输出驱动
    input data,reday,enable = top.mem1.enable//定义了输入信号
    output negedge ack;//定义了驱动信号,驱动信号的事件是时钟clock1的下降沿
    input #1step addr;//addr采用自身定义的采样时间,即clock1上升沿的1setp
endclocking

注意点:

  • clocking块不但可以定义在interface中,也可以定义在module和program中
  • clocking中列举的信号不是自己定义的,而是interface或其他声明clocking的模块定义的
  • clocking在声明完名字之后,应该伴随定义默认时间。如果没定义,默认在clocking采样事件前的1setp对输入进行采样,在采样事件后的#0对输出进行驱动。
  • 除了定义默认的采样和驱动事件,也可以在定义信号方向时,用新的采样事件对默认采样事件进行覆盖。