基于Quartus-II软件实现一个1位全加器的设计

一、全加器的概念

1.1 半加器

1.1.1何为半加器

半加器电路是指对两个输入数据位相加,输出一个结果位和进位,没有进位输入的加法器电路。 是实现两个一位二进制数的加法运算电路。

1.1.2 原理图
在这里插入图片描述
在这里插入图片描述
1.1.3 实现

半加器不考虑低位向本位的进位,因此它不属于时序逻辑电路,有两个输入端和两个输出。

设加数(输入端)为A、B ;和为S;向高位的进位为Ci+1

逻辑表达式:
S = A ⨁ B ; C = A ⋅ B 。 S=A\bigoplus B;C =A\cdot B。 S=AB;C=AB
1.1.4 输入和输出:

半加器有两个输入和两个输出,输入可以标识为A、B,输出通常标识为求和(Sum)和进位(Carry)。输入经异或(XOR)运算后即为S,经和(AND)运算后即为C。
半加器有两个二进制的输入,其将输入的值相加,并输出结果到和(Sum)和进位(Carry)。半加器虽能产生进位值,但半加器本身并不能处理进位值。

1.1.5 与全加器的区别

半加器没有接收进位的输入端,全加器有进位输入端,在将两个多位二进制数相加时,除了最低位外,每一位都要考虑来自低位的进位,半加器则不用考虑,只需要考虑两个输入端相加即可。

1.2 全加器

1.2.1 概念

全加器英语名称为full-adder,是用门电路实现两个二进制数相加并求出和的组合线路,称为一位全加器。一位全加器可以处理低位进位,并输出本位加法进位。多个一位全加器进行级联可以得到多位全加器。常用二进制四位全加器74LS283。

1.2.2 真值表
一位全加器的真值表如下图,其中Ai为被加数,Bi为加数,相邻低位来的进位数为Ci-1,输出本位和为Si。向相邻高位进位数为Ci 。
在这里插入图片描述
1.2.3 描述
一个全加器的表达式如下:
S i = A i ⨁ B i ⨁ C i − 1 ; C i = A i B i + C i − 1 ( A i + B i ) S_i = A_i \bigoplus B_i \bigoplus C_{i-1}; C_i = A_iB_i +C_{i-1}(A_i+B_i) Si=AiBiCi1;Ci=AiBi+Ci1(Ai+Bi)
第二个表达式也可以用一个异或门来代替或门对其中两个输入信号进行求和:
C i = A i B i + C i − 1 ( A i ⨁ B i ) C_i = A_iB_i + C_{i-1}(A_i \bigoplus B_i) Ci=AiBi+Ci1(AiBi)

二、项目创建

2.1 实验准备

实验软件:Quartus

软件的安装就不多做介绍了,直接开始进行实验。

2.2 工程创建

2.2.1 元件实现1位全加器
2.2.1.1 半加器的创建

2.2.1.1.1 实验半加器元件的创建
在这里插入图片描述
在这里插入图片描述
点击next;
在这里插入图片描述
一直next到Finish就好了。
2.2.1.1.2 创建元件图原理编辑文件,也就是下面这个。
在这里插入图片描述
2.2.1.1.3 开始编辑元件
点击如图所示插头图像,搜索你想要的元件,这里准备编辑半加器,需要的元件分别为and2,xor。
在这里插入图片描述
在这里插入图片描述

在这里插入图片描述
成品图:
在这里插入图片描述
点击开始编译,当然也可以是这个。
在这里插入图片描述
在这里插入图片描述
2.2.1.1.4 把自己编辑的元件生成后面要用的元件
查看生成元件的模型
在这里插入图片描述
在这里插入图片描述

先把模型图置于最上层
在这里插入图片描述

在这里插入图片描述
在这里插入图片描述
重中之重,生成实物元件
如图操作,方可完成
在这里插入图片描述

2.2.1.1.5 创建vmf波形文件进行仿真调试
在这里插入图片描述
在这里插入图片描述
半加器基本就这个造型了。

2.2.1.2 全加器的创建

上面已经讲过创建步骤了,这里直接放图。

在这里插入图片描述
在这里插入图片描述
同理,这个也要进行仿真调试
在这里插入图片描述

2.2.2 使用Verilog生成元件原理图

2.2.2.1 在上述工程中新建一个verilog文件。
在这里插入图片描述
2.2.2.2 输入代码:

module full_adder(
	//输入信号:sin表示被加数,bin表示加数,cin表示低位向高位的进位
	input sin,bin,cin,
	//输出信号:cout表示向高位的进位,sum表示本位的相加和
	output reg cout,sum

);
reg a1,a2,a3;
always @(sin or bin or cin) begin
	sum=(sin^bin)^cin;//本位和输出表达式
	a1=sin&cin;
	a2=bin&cin;
	a3=sin&bin;
	cout=(a1|a2)|a3;//高位进位输出表达式
end
endmodule

在这里插入图片描述
2.2.2.3 创建vmff进行仿真
在这里插入图片描述

三、下载调试

3.1 芯片引脚
在这里插入图片描述
在这里插入图片描述
在这里插入图片描述
3.2 设置引脚
在这里插入图片描述
3.3 原理图
在这里插入图片描述
调试过程出了点问题。
补充:实际上是由于没有注册软件,仿真下载那一部分无法进行造成无法下载的问题。后来我成功搞定软件之后就可以正常下载了。
下面是下载界面:
在这里插入图片描述

四、小结

第一次使用FPGA板子,很多东西都还不熟悉。

五、资料引用

FPGA——1位全加器的实现

评论 2
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值