怎样用Verilog实现4选1数据选择器
Posted
tags:
篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了怎样用Verilog实现4选1数据选择器相关的知识,希望对你有一定的参考价值。
参考技术Amodule 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数据选择器的主要内容,如果未能解决你的问题,请参考以下文章