verilog - 在 SystemVerilog 中使用 typedef 和 wire

标签 verilog typedef system-verilog edaplayground

当使用 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,而reglogic 是。 wirenet_type

关于verilog - 在 SystemVerilog 中使用 typedef 和 wire,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/70544655/

相关文章:

verilog - 非阻塞分配在 Vivado 仿真中立即分配

verilog - 如何在verilog中给二维数组一个初始值

verilog - 运行执行后出错

c - 如何在C中转发声明结构

c++ - 前向声明 typedef

system-verilog - 覆盖组的接口(interface)对象

vhdl - 从VHDL转换为Verilog,具体案例

concatenation - verilog 连接的方向

c++ - typedef 和模板的 undefined symbol ?

Verilog:为什么我不能反转电线?