gpt4 book ai didi

enums - 我可以用它的数值设置一个枚举吗?

转载 作者:行者123 更新时间:2023-12-04 23:02:44 25 4
gpt4 key购买 nike

我想用数值设置一个枚举。以下代码对 SystemVerilog 是否合法?

`define DEC_ADDR   32'hC001CAFE

typedef enum bit [31:0] {
ILLEGAL_ADDR_0=0,
DEC_ADDR=`DEC_ADDR
} my_addr_e;

module tb;

initial begin

my_addr_e addr_name;
bit [31:0] reg_addr;

reg_addr = `DEC_ADDR;
addr_name = reg_addr; // PROBLEM

end

endmodule

这是 EDA Playground 上的完整代码: http://www.edaplayground.com/s/4/219

最佳答案

从技术上讲,使用数值设置枚举是不合法的 SystemVerilog。 SystemVerilog 是一种强类型语言,因此应使用其命名值设置枚举。

也就是说,一些模拟器允许使用数值设置枚举。

上面的代码可以通过添加静态转换来修复:

addr_name = my_addr_e'(reg_addr);

关于enums - 我可以用它的数值设置一个枚举吗?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/19298954/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com