SV 接口中的clocking

发布时间 2023-12-26 23:28:26作者: Icer_Newer

接口








  • module可以例化模块,可以例化接口
  • 接口不能例化模块

采样和数据驱动


  • 时钟驱动数据,数据会有延迟,RTL仿真的时候,不会仿真出这个延时;RTL仿真的时候,不会仿真出寄存器的延时;只有在门级仿真的时候,才会表现出来
  • 时钟对于组合电路的驱动会默认增加一个无限最小的时间的延时(delta-cycle),该延时无法用绝对时间单位衡量




  • 在特定的光标处,展开delta-cycle

  • 对于时钟进行分频或者是添加clock gating或者其他组合逻辑,就会增加delta-cycle
  • 在45ns处,clk1采样到的值是1;clk2是由clk1进行驱动的,所以都会有delta-cycle的延时;d1得值也是clk1进行驱动的,也会有delta-cycle的延时,delta-cycle的延时具有不稳定性,当clk2进行采样的时候,d1可能没有变化,仍然采样到1,d1也可能发生了变化,采样到2

接口中的clking

  • clocking可以在module和interface中进行声明
  • 利用clocking对于信号进行驱动和采样





  • 根据时钟进行采样和根据clocking模块中的约束进行采样的结果是不同的



  • 在仿真过程中,时钟上升沿和vld信号是由时钟驱动,下行DUT会使用时钟上升沿采样vld信号;仿真的时候时钟和vld可能是没有延时的,但是在实际的时候会有delay,所以要通过人为插入delay来模拟时钟的延时
  • input #1 - 在时钟上升沿之前1ns采样
  • output #1 - 在时钟上升沿之后1ns进行采样
  • RTL仿真是没有任何的物理信息的
  • clocking中设置的延时是通过后端布局布线的时序信息