4选1数据选择器使用两位地址码A1A2产生4个地址信号,由A1A2等于“00”、“01”“10”“11”来选择输出。输入信号:4个数据源d0、d1、d2、d3。两位地址码a[1..0];使能端g。输出信号:输出选择则端y。
真值表如下:
程序代码:
module mux4(y,d0,d1,d2,d3,g,a);
output y;
input d0,d1,d2,d3;
input g;
input [1:0] a;
wire notal,nota0,x1,x2,x3,x4;
not(notal,a[1]);
(notal,a[0]);
and (x1,d0,notal,nota0);
(x2,d1,notal,nota[0]);
(x3,d2,a[1],nota0);
(x4,d3,a[1],nota[0]);
or (y1,x1,x2,x3,x4);
and (y,y1,g);
endmodule
扩展资料
语言要素:
Verilog的设计初衷是成为一种基本语法与C语言相近的硬件描述语言。
这是因为C语言在Verilog设计之初,已经在许多领域得到广泛应用,C语言的许多语言要素已经被许多人习惯。一种与C语言相似的硬件描述语言,可以让电路设计人员更容易学习和接受。
不过,Verilog与C语言还是存在许多差别。另外,作为一种与普通计算机编程语言不同的硬件描述语言,它还具有一些独特的语言要素,例如向量形式的线网和寄存器、过程中的非阻塞赋值等。总的来说,具备C语言的设计人员将能够很快掌握Verilog硬件描述语言。
参考资料来源:《基于Quartus II 的数字系统VerilogHDL 设计实例详解》 周润景 苏良碧 编著
电子工业出版社 第5章 组合逻辑电路设计范例 5.3 数据选择器
参考资料来源:百度百科--数据选择器
参考资料来源:百度百科--Verilog HDL
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。
本回答被网友采纳4选1数据选择器使用两位地址码A1A2生成4个地址信号,A1A2等于“00”、“01”“10““11”来选择输出。输入信号:四个数据源d0、d1、d2、d3。两位地址码a[1..0];使能端g。输出信号:输出选择则端y。
真值表如下:
程序代码:
modolemux4(y,d0,d1,d2,d3,g,a)
outputy
inputd0、d1、d2、d3
inputg
input[1:0]a
wirenotal,nota0,x1,x2,x3,x4
not(notal,a[1])
(notal,a[0])
and(x1,d0,notal,nota0)
(x2,d1,notal,nota[0])
(x3,d2,a[1],nota[0])
(x4,d3,a[1],nota[0])
or(y1、x1、x2、x3、x4)
and(y,y1,g)
endmodule
扩展资料:
语言元素:
Verilog是一种硬件描述语言,其基本语法类似于C语言。
1.这是因为C语言在Verilog设计之初就被广泛应用于许多领域。C语言的许多语言元素,已经被许多人使用。一种类似于C语言的硬件描述语言可以使电路设计者更容易地学习和接受。
2.但是Verilog和C语言有很多不同之处,另外,作为一种不同于一般计算机编程语言的硬件描述语言,Verilog也有一些独特的语言元素,如向量形式的行网和寄存器、进程中的非阻塞赋值等,使用C语言的设计师将能够掌握Verilog硬件描述语言。
参考资料来源:百度百科--数据选择器
本回答被网友采纳