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

文章目录

  • 一、全加器的概念
      • 1.1 半加器
      • 1.2 全加器
  • 二、项目创建
      • 2.1 实验准备
      • 2.2 工程创建
        • 2.2.1 元件实现1位全加器
          • 2.2.1.1 半加器的创建
          • 2.2.1.2 全加器的创建
        • 2.2.2 使用Verilog生成元件原理图
  • 三、下载调试
  • 四、小结
  • 五、资料引用

一、全加器的概念

1.1 半加器

1.1.1何为半加器

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

1.1.2 原理图
基于Quartus-II软件实现一个1位全加器的设计_第1张图片
基于Quartus-II软件实现一个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 。
基于Quartus-II软件实现一个1位全加器的设计_第3张图片
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 实验半加器元件的创建
基于Quartus-II软件实现一个1位全加器的设计_第4张图片
基于Quartus-II软件实现一个1位全加器的设计_第5张图片
点击next;
基于Quartus-II软件实现一个1位全加器的设计_第6张图片
一直next到Finish就好了。
2.2.1.1.2 创建元件图原理编辑文件,也就是下面这个。
基于Quartus-II软件实现一个1位全加器的设计_第7张图片
2.2.1.1.3 开始编辑元件
点击如图所示插头图像,搜索你想要的元件,这里准备编辑半加器,需要的元件分别为and2,xor。
基于Quartus-II软件实现一个1位全加器的设计_第8张图片
基于Quartus-II软件实现一个1位全加器的设计_第9张图片

基于Quartus-II软件实现一个1位全加器的设计_第10张图片
成品图:
基于Quartus-II软件实现一个1位全加器的设计_第11张图片
点击开始编译,当然也可以是这个。
在这里插入图片描述
基于Quartus-II软件实现一个1位全加器的设计_第12张图片
2.2.1.1.4 把自己编辑的元件生成后面要用的元件
查看生成元件的模型
基于Quartus-II软件实现一个1位全加器的设计_第13张图片
基于Quartus-II软件实现一个1位全加器的设计_第14张图片

先把模型图置于最上层
基于Quartus-II软件实现一个1位全加器的设计_第15张图片

基于Quartus-II软件实现一个1位全加器的设计_第16张图片
基于Quartus-II软件实现一个1位全加器的设计_第17张图片
重中之重,生成实物元件
如图操作,方可完成
基于Quartus-II软件实现一个1位全加器的设计_第18张图片

2.2.1.1.5 创建vmf波形文件进行仿真调试
基于Quartus-II软件实现一个1位全加器的设计_第19张图片
基于Quartus-II软件实现一个1位全加器的设计_第20张图片
半加器基本就这个造型了。

2.2.1.2 全加器的创建

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

基于Quartus-II软件实现一个1位全加器的设计_第21张图片
基于Quartus-II软件实现一个1位全加器的设计_第22张图片
同理,这个也要进行仿真调试
基于Quartus-II软件实现一个1位全加器的设计_第23张图片

2.2.2 使用Verilog生成元件原理图

2.2.2.1 在上述工程中新建一个verilog文件。
基于Quartus-II软件实现一个1位全加器的设计_第24张图片
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

基于Quartus-II软件实现一个1位全加器的设计_第25张图片
2.2.2.3 创建vmff进行仿真
基于Quartus-II软件实现一个1位全加器的设计_第26张图片

三、下载调试

3.1 芯片引脚
基于Quartus-II软件实现一个1位全加器的设计_第27张图片
基于Quartus-II软件实现一个1位全加器的设计_第28张图片
在这里插入图片描述
3.2 设置引脚
基于Quartus-II软件实现一个1位全加器的设计_第29张图片
3.3 原理图
基于Quartus-II软件实现一个1位全加器的设计_第30张图片
调试过程出了点问题。
补充:实际上是由于没有注册软件,仿真下载那一部分无法进行造成无法下载的问题。后来我成功搞定软件之后就可以正常下载了。
下面是下载界面:
基于Quartus-II软件实现一个1位全加器的设计_第31张图片

四、小结

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

五、资料引用

FPGA——1位全加器的实现

你可能感兴趣的:(嵌入式项目设计,fpga)