当使用 typedef 声明用户定义类型时,EDA Playground 接受这两种形式:
typedef reg[4:0] reg5;
typedef logic[4:0] logic5;
但是,如果基于 wire
类型做类似的事情,那么这种格式会失败:
typedef wire[4:0] wire5;
我收到“语法错误”。
这怎么解释?
最佳答案
根据 IEEE 标准 1800-2017,使用 wire
类型声明 typedef
是非法的。引用第 6.18 节用户自定义类型:
type_declaration ::= // from A.2.1.3
typedef data_type type_identifier { variable_dimension } ;
wire
不是data_type
,而reg
和logic
是。 wire
是 net_type
。
关于verilog - 在 SystemVerilog 中使用 typedef 和 wire,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/70544655/