多路选择器,加法器原理及verilog实现

帅比萌擦擦* 提交于 2020-03-04 18:58:03

1.数据选择器是指经过选择,把多个通道的数据传到唯一的公共数据通道上。实现数据选择功能的逻辑电路称为数据选择器,它的作用相当于多个输入的单刀多掷开关。本例程以四选一数据选择器(电平触发)为例。 四选一数据选择器书堆 4 个数据源进行选择, 使用量为地址 A1A0 产生 4 个地址信号,由 A1A0 等于“00” 、 “01” 、 “10” 、 “11”来选择输出,真值表如下:

image
对应的verilog代码为

module mux4(d0,d1,d2,d3,y,a,g);
input d0,d1,d2,d3; // 输入的四个数据
input g; // 输入使能端
input[1:0] a; // 输入的选择端
output y; // 输出数据
reg y;  // 输出数据寄存器
always@(d0 or d1 or d2 or d3 or g or a)  // 电平触发,当 d0,d1,d2,d3,a  有变化时
候、// 触发
begin
if(g==1'b0)  //当 当 g 为 为 0  时候
y=1'b0; //y 置 置 0
else
case(a)  // 判断 a  的取值,并作出相应的赋值
2'b00:y=d0;
2'b01:y=d1;
2'b10:y=d2;
2'b11:y=d3;
default:y=1'b0;  //a  为其他值得条件下,y  赋予 0
endcase
end
endmodule

时序仿真结果:

image

2.加法器是一种较为常见的算术运算电路,包括半加器(对两个输入数据相加,输出一个结果位和进位,没有进位输入的电路),全加器(有进位输入)。

如题,实现一个四位全加器:

module add4(a,b,ci,s,co);
input [3:0] a,b;  // 输入四位数据 a ,b
input ci; // 输入进位 ci
output [3:0] s; // 输出四位数据 s
output co;  // 输出进位 co
assign {co,s}=a+b+ci;  //把 把 a 、b 、ci  相加后的结果赋予 co 、s ,其中 co
// 放最高位,s  放低三位
endmodule
易学教程内所有资源均来自网络或用户发布的内容,如有违反法律规定的内容欢迎反馈
该文章没有解决你所遇到的问题?点击提问,说说你的问题,让更多的人一起探讨吧!