参数化接口的参数化seq_items

时间:2019-07-11 10:46:48

标签: factory system-verilog uvm

我尝试实现here中所述的参数化接口支持。我建立了一个简单的示例,但现在我认为parameterized interface必须由parameterized sequence_item驱动。
上面链接中的papper解释了如何通过config_db传递参数化的接口,但没有说明如何处理序列项的参数化,而序列项必须通过相应的接口进行参数化。

我要问的是:“我是否应该不对seq项进行参数化,而只是将其字段的宽度设置为最大大小,或者我需要对它们进行参数化,如果是,那么我应该怎么做?

据我了解,我不需要将seq_item字段设置为最大长度,我需要像使用seq_item一样将基base_if类重写为某些参数化版本课。
除了set_type_override之外,我不太了解这种set_override魔术,它只是使工厂创建某些子类对象而不是父类对象。但是,如果我将一种类型转发给第一个驱动程序,而将另一种类型转发给第二个驱动程序,则它将不起作用。
我认为我需要一些override function来使用指向不同的重写类的路径,但是我不知道(除了上一页中的实例重写)。

The Cookbook也没有给我解决方案。

例如,我有这样一个课:

class my_driver extends uvm_driver(my_seq_item);

如果我想对接口进行参数化,则需要对my_seq_item进行参数化,在这种情况下,我必须对my_driver进行参数化,以将参数传递给my_seq_item#(),并且必须对所有其他使用my_seq_item的组件进行参数化。我不相信我应该采用这种方式,我认为我应该创建子参数化的类并使用一些覆盖函数来更新所有使用my_seq_item的类。

0 个答案:

没有答案