Verilog: wire
和 reg
的区别
1 引言
看Verilog例子过程中,总是分不清 wire
和 reg
的区别。这篇文章把两者放在一起总结一下,并且对比何时使用它们。
1.1 wire
:组合逻辑
wire
是 Verilog 设计中的简单导线(或任意宽度的总线)。使用 wire
时的语法规则如下:
wire
用于连接模块实例化的输入和输出端口以及设计中的其他元素。wire
用作实际模块声明中的输入和输出。wire
必须由其他信号驱动,不能自行存储值。wire
不能用作always@
块中的左值(=
或<=
)。wire
是assign
语句左侧的唯一合法类型。wire
是一种无状态的连接方式,仅用于组合逻辑。
程序 1 显示了 wire
的各种合法用法。
程序 1 wire
用法
wire A, B, C, D, E; // 简单的一位宽导线
wire [8:0] Wide; // 9 位宽导线
reg I;
assign A = B & C; // 使用