怎样用Verilog实现4选1数据选择器

Posted

tags:

篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了怎样用Verilog实现4选1数据选择器相关的知识,希望对你有一定的参考价值。

参考技术A

module mux4_1(out,in0,in1,in2,in3,sel);

output out;

input in0,in1,in2,in3;

input[1:0] sel;

reg out;

always @(in0 or in1 or in2 or in3 or sel) //敏感信号列表

case(sel)

2'b00: out=in0;

2'b01: out=in1;

2'b10: out=in2;

2'b11: out=in3;

default: out=2'bx;

endcase

endmodule

扩展资料:

注意事项

由于选择器使用条件触发的方法对应真值表进行匹配输出与输入,因此可以联想到在C程序设计中的条件语句“If”和“Case”两种。

Case语句下可能出现锁存器。注释case条件下的case语句块的某一行可以得到不完整的case语句下的2位四路选择器。由不完整case语句下的2位四路选择器可知:

由于case语句所有分支处于同一优先级,所以当条件不完整时,对于处理结果,它不取决于语句的先后顺序,只取决于待处理信号,而处理结果为与待处理信号相差1’b1的信号的处理结果,在这一条件下相当于与待处理信号相差1’b1的信号的处理结果得到了锁存,锁存器因此产生。

对与锁存器而言,锁存器在待处理信号存在Glitch的情况下,可能会对Glitch产生锁存,从而导致锁存出现严重错误,是目标信号处理结果与预期目的产生极大的偏差,因此锁存器存在不稳定因素,所以在使用锁存器时,要牢记优先消除待处理信号的Glitch。

Verilog 如何用持续赋值语句实现2选1多路选择器

Verilog 如何用持续赋值语句实现2选1多路选择器

参考技术A 持续赋值定义的2选1多路选择器
module MUX2_1(out,a,b,sel);
input a, b, sel;
output out;
assign out = (sel==0)?a:b;
endmodule
参考技术B 画真值表:
assign out=(IN1&(~SEL)) | (IN2&SEL) ;
参考技术C assign out = select ? IN1 : IN2;

以上是关于怎样用Verilog实现4选1数据选择器的主要内容,如果未能解决你的问题,请参考以下文章

2选1多路选择器的Verilog hdl

Verilog 如何用持续赋值语句实现2选1多路选择器

多周期cpu设计(verilog)

Verilog中如何用assign条件判断语句构造三选一数据选择器?

多路选择器实现总线结构——Verilog

VHDL程序设计中,用WITH_SELECT_WHEN语句描述4个16位至1个16位输出的4选1多路选择器