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

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


对应的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

时序仿真结果:

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
时间: 2024-12-23 21:49:02

多路选择器,加法器原理及verilog实现的相关文章

Verilog 二选一多路选择器 Modelsim设计。

一个简单的二选一多路选择器 逻辑图 Verilog源程序 module Mux_Two ( input a, //Data input b, //Data input sl, //High: b ;Low: a output reg out ); always@(sl or a or b) if(!sl) out=a; else out=b; endmodule Modelsim架构文件 a为输入25MHz方波,b为输入12.5MHz的方波,sl为输入6.25MHz的方波.sl为高电平时,out

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

1 ////////////////////////////////////////////////////////////////////////////////// 2 //该程序完成通过多路选择器MUX完成总线读写的功能. 3 module MuxBus(input request1,input request2,input request3,input request4,input[7:0] unit0_out,input[7:0] unit1_out, 4 input[7:0] uni

两种不同的多路选择器?

综合后遇到两种不同的多路选择器. 第一种,通过sel输入选择输出是A[7:0]还是E[7:0]. 第二种,通过sel输入选择输出是ABCD中的某一个. 值得注意的是当ABCD变成多位的时候,综合后的结果就变成这样了: 看起来MUX只能做一位的选择,不能选择多位向量. 我想知道前两种“多路选择器都是一样的吗?”

cordic算法原理及verilog实现

cordic算法原理及verilog实现 算法原理 由此我们可以推出,当(x0,y0)与(x1,y1)的夹角为Θ时,满足如下关系:  由此可得,当(x1,y1)长度为1时,,当根据坐标旋转法旋转Θ角度后,坐标点变为(1,0).因此,根据cordic算法求就是将初始线段旋转至(1,0)后,所得的(x,y)的值. 下面,我们将这些旋转步骤细化,看看每一步是如何工作的. 假设第n次旋转为顺时针旋转时,会得到如下结果:  此时提取会得到如下公式:  令每次旋转的角度Θ满足,则每次旋转最终的角度Θ满足:,

多路选择器(multiplexer)简介

简称:多路器 功能:多输入  单输出   组合逻辑电路 verilog代码实现: module Mux_8(addr,in1,in2,in3,in4,in5,in6,in7,in8,Mout,nCS); input[2:0] addr; input[width-1:0] in1,in2,in3,in4,in5,in6,in7,in8; input nCS; output[width-1:0] Mout; reg[width-1:0] Mout; parameter width=8; [email

关于前端选择器设计原理与实现

1 选择器的概念 选择器其实是一种较小数据源,供我们选择参数值使用,同时提供参数让选择器回显.选择器的表现形式多种多样,可以是模态弹出框,也可以是非模态扁平化弹出层.如我们常见的下拉选择器,下拉树形选择器 地址选择器.表现形式多种多样 2 选择器形式分类 既然选择器是提供一个数据源被用户选择,和回显用户选择的数据项,那么我们可以知道以下几点: 第一:被选中的数据结构,他可以是简单的数据类型,string,bool,或者number,也可以是复杂的array和object类型.对于array无外乎

寄存器,移位寄存器的电路原理以及verilog代码实现

寄存器:用以存放二进制代码的电路,下图为由维特阻塞D触发器组成的4位数码寄存器: 逻辑功能分析: 1.异步端CR置0时,输出置0: 2.同步并行置数:D0~D3为4个输入代码,当CP上升沿到达时,D0~D3被同时并行置入. 3.在置数端为1,CP端为0时,保持不变. 2.移位寄存器:具有存放数码和使数码逐位右移或左移的电路称为移位寄存器. 移位寄存器按照不同的分类方法可以分为不同的类型. 如果按照移位寄存器的移位方向来进行分类, 可以分为左移移位寄存器.移位寄存器和双向移位寄存器等:如果按照工作

FPGA学习笔记(四)——Verilog基本语法

###### [该随笔部分内容转载自小梅哥] ######### 组合逻辑:    多路选择器.加法器.译码器.乘法器 时序逻辑:    计数器.分频器.定时器.移位寄存器 一.Verilog文件的基本结构 1.模块声明     模块名    端口列表 2.端口类型.位宽定义 3.功能描述 //模块描述方式一(先列出端口,再描述端口类型) //此方式虽然行数多,但是方便后面例化端口,推荐使用 module name( , , //最后一个不需要"," ); //端口类型描述 //功能描

Verilog case coding style

1.一般情况下,综合器将case语句综合成多路选择器,但也可能综合成优先级译码器. 2.case语句中,如果条件列举不完全,将综合出不必要的锁存器. 综合器指令://synopsys parallel_case & //synopsys full_case 使用//synopsys parallel_case可以引导综合器生成多路选择器. 1 always @(cs_state) 2 begin 3 case(cs_state) // synopsys parallel_case 4 2'b00