【问题标题】:clock switching in systemverilog test-benchsystemverilog 测试台中的时钟切换
【发布时间】:2021-12-14 08:39:41
【问题描述】:

为了验证我的模块的 DVFS 功能,DUT 的时钟应该根据一个事件切换。 例如,如果控制寄存器更新到快速模式,我的TB需要增加时钟频率,如果控制寄存器更新到慢速模式,我的TB需要降低时钟频率。

如何使用 TB 中的 systemverilog 执行此操作? 在我的简单 TB 中,时钟始终处于固定频率。

【问题讨论】:

  • 例如,您可以在测试台中生成多个时钟并使用多路复用器来选择一个。
  • 不错,不错的选择。

标签: verilog system-verilog clock uvm


【解决方案1】:

您可以在测试台中通过可变周期控制时钟频率

bit clk;
real period = 10ps;
initial forever
   #(period/2.0) clk = !clk;

如果您的测试台正在更新控制寄存器,那么它也可以在此期间进行。既然你用UVM 标记了这个,人们通常做的是创建一个用于驱动时钟和复位的接口,以及一个控制频率和应用复位的序列。然后把我上面写的代码放到一个接口里面,驱动可以通过虚拟接口设置周期。

【讨论】:

  • 是的,我的环境是基于 UVM,我会尝试这个解决方案,谢谢。
猜你喜欢
  • 1970-01-01
  • 2015-08-05
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 2016-01-12
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
相关资源
最近更新 更多