小编Jef*_*ffW的帖子

处理SystemVerilog包中的参数化

SystemVerilog添加了包以提供公共代码段(函数,类型,常量等)的命名空间.但由于软件包未实例化,因此无法对其进行参数化,因此处理参数化成员是有问题的.在实践中,我发现这是非常有限的,因为我的自定义类型通常有一些参数指示字段宽度等.

我通常通过使用带有默认值的参数处理这个问题,并且只是理解我需要返回更改某些应用程序的包源代码,这对我来说似乎非常错误.但我还没有找到一种方法来更清洁地处理这个问题.例如:

package my_pkg;
    parameter ADDR_MSB = 7;
    parameter DATA_MSB = 31;

    typedef struct {
        logic [ADDR_MSB:0] address;
        logic [DATA_MSB:0] data;
    } simple_struct_t;

endpackage
Run Code Online (Sandbox Code Playgroud)

有没有人找到一个更清洁的方式处理这个?我很乐意听到它,因为我认为软件包是SV的一个非常强大的补充,可以实现更安全的代码重用,但这种限制非常严重.

verilog system-verilog

10
推荐指数
2
解决办法
1万
查看次数

标签 统计

system-verilog ×1

verilog ×1