verilog HDL写四选一选择器带使能信号的
时间: 2023-09-16 17:13:08 浏览: 98
verilog实现四选一片选功能
以下是一个Verilog HDL实现的四选一选择器带使能信号的例子:
```
module mux4en(input [3:0] data_in, input [1:0] sel, input en, output reg data_out);
always @ (en or sel or data_in)
begin
if (en == 1'b1) // 使能信号为1时
begin
case(sel)
2'b00: data_out = data_in[0];
2'b01: data_out = data_in[1];
2'b10: data_out = data_in[2];
2'b11: data_out = data_in[3];
default: data_out = 1'b0;
endcase
end
else // 使能信号为0时
begin
data_out = 1'b0;
end
end
endmodule
```
这个模块有四个输入端口:`data_in`是一个4位向量,用于输入4个数据值;`sel`是一个2位向量,用于选择要输出的数据值;`en`是一个使能信号,用于控制输出是否有效;`data_out`是一个1位寄存器,用于输出选择的数据值。
在该模块中,我们使用了always块来定义组合逻辑。如果使能信号为1,我们使用一个case语句来选择要输出的数据值。否则,我们将输出置为0。
请注意,我们使用了`reg`关键字来定义`data_out`。这是因为我们要在always块中对其进行赋值,并且需要在下一个时钟周期中保持其值。
阅读全文