求助:有什么办法可以传递parameter到monitor中的interface?
时间:10-02
整理:3721RD
点击:
各位:
因为我想做个可变位宽的interface,因此采用了parameter来配置一个interface。monitor和driver中当然也要使用该interface,但是driver和monitor中该如何获取我在top.sv中例化该interface所使用的参数配置呢?
有个笨方法当然是从tb_env-->signal_env-->agent-->monitor这样的顺序逐层传递,但是这样的话,改变值的时候很麻烦,得逐层改变。有什么办法能简单快捷的实现该功能么?
因为我想做个可变位宽的interface,因此采用了parameter来配置一个interface。monitor和driver中当然也要使用该interface,但是driver和monitor中该如何获取我在top.sv中例化该interface所使用的参数配置呢?
有个笨方法当然是从tb_env-->signal_env-->agent-->monitor这样的顺序逐层传递,但是这样的话,改变值的时候很麻烦,得逐层改变。有什么办法能简单快捷的实现该功能么?
为什么连接dut的driver中的interface的位宽还是可配置的?一个DUT,位宽肯定是固定的。可以在top.sv中指定与该DUT匹配的interface的位宽。但不知道为何还要把这个parameter传递到driver/monitor中去。
或者用`define宏试试
用`define是全局的,如果同时有两个monitor,但是它们各自监控的interface的位宽不一样,这种情况就不行了。
有一个建议,我没尝试过:也许interface的使用和module一样,你可以在interface里面定义parameter,然后例化的时候,按照例化module的用法改变它,也许能够实现你要的,因为interface里面有setup/hold time的参数,可以修改的,我觉得自定义的也许能行,你看看呢?