UVM TB和DUT参数控制

时间:2016-11-29 14:46:45

标签: uvm

请帮助解决我在规划结核病时面临的一个问题。 我们假设我的DUT有一些输入端口,它是参数,如:

module Multiplier #(parameter WIDTH = 8) (
    input [WIDTH-1:0] addr,

现在我希望我的测试控制这个WIDTH参数。 我希望测试随机化WIDTH参数,然后将该参数应用于DUT。并且基于该参数值,我的整个测试平台将更改事务信号,驱动程序,监视器等。 实现此参数测试的最佳方法是什么?

我想在测试类中使用WIDTH参数,然后将其随机化。然后在实例化期间将其分配给DUT。对于TB,将randomize值放在config_db中并在代理中获取它并将其分配给config类适当的参数。

由于 Hayk酒店

1 个答案:

答案 0 :(得分:0)

我会在Makefile(或者你正在使用的任何构建/编译系统)中生成一个随机变量。然后根据您的模拟器,从模拟运行命令设置参数。

<强>的ModelSim: 可以使用ModelSim模拟器中的'vsim'命令传递Parameters值。假设我们想要为所有模块提供全局参数值:

-gWIDTH=<random_value>

<强> VCS

-pvalue+hierarchical_name_of_parameter=<random_value>

所有模拟器都具有等效功能。