写一个verilog的多bit DEMUX
时间: 2024-10-18 22:09:39 浏览: 25
单bit多bit跨时钟域verilog代码
在Verilog语言中,一个多比特选择器(Demultiplexer,简称DEMUX)是一个数字逻辑部件,它接受多个输入信号和一个选择信号,然后根据选择信号的不同值将其中的一个输入信号作为输出。下面是一个简单的多位DEMUX的Verilog模块示例,这里假设我们有一个4:1 DEMUX,即有4个输入端(I0、I1、I2、I3),一个选择信号(Sel)和一个公共的数据输出端(Out):
```verilog
module multi_bit_demux(
input [3:0] sel, // 4选1的选择信号
input [7:0] inputs, // 输入数据,8位宽
output reg [7:0] out // 输出数据,8位宽
);
always @* begin
case(sel) // 根据sel选择不同的输入
4'b0000: out = inputs[0]; // 当Sel=0时,选通I0
4'b0001: out = inputs[1];
4'b0010: out = inputs[2];
4'b0011: out = inputs[3];
default: out = 8'hFF; // 如果选择无效,输出默认全1
endcase
end
// 端口声明结束
endmodule
```
在这个例子中,`*` 表示任何时候这个always块都会执行。`case`结构用于实现多路选择,当`sel`等于不同的四位二进制数时,就会选择相应的输入。
阅读全文