赞
踩
半加器是指对输入的两个一位二进制数相加(A与B),输出一个结果位(SUM)和进位(C),没有进位的输入加法器电路,是一个实现一位二进制数的加法电路。
真值表如下:
被加数A | 加数B | 和SUM | 进位C |
---|---|---|---|
0 | 0 | 0 | 0 |
0 | 1 | 1 | 0 |
1 | 0 | 1 | 0 |
1 | 1 | 0 | 1 |
逻辑表达式
根据上述的真值表,当A和B相同时SUM为0,否则为1;逻辑关系属于异或;当A和B同时为1时,C等于1,其余都为零,逻辑关系为与。
所以我们可以得到如下的逻辑表达式:
逻辑电路图
全加器是指对输入的两个二进制数相加(A与B)同时会输入一个低位传来的进位(Ci-1),得到和数(SUM)和进位(Ci);一位全加器可以处理低位进位,并输出本位加法进位。多个一位全加器进行级联可以得到多位全加器。常用二进制四位全加器74LS283。
真值表
被加数Ai | 加数Bi | 低进位Ci-1 | 和数SUMi | 进位Ci |
---|---|---|---|---|
0 | 0 | 0 | 0 | 0 |
0 | 0 | 1 | 1 | 0 |
0 | 1 | 0 | 1 | 0 |
0 | 1 | 1 | 0 | 1 |
1 | 0 | 0 | 1 | 0 |
1 | 0 | 1 | 0 | 1 |
1 | 1 | 0 | 1 | 0 |
1 | 1 | 1 | 1 | 1 |
逻辑表达式
由全加器的定义理解我们可以知道当Ai和Bi异或后再与Ci-1进行异或得到SUMi,结合真值表,我们可以知道当Ai、Bi、Ci-1只要有两个以上的1是进位Ci就等于1;所以只需要每两变量求与,结果再求或就可以满足要求。由此我们可以得到最常用的逻辑表达式:
由于两个半加器可以构成一个全加器,所以在这里进位Ci还可以表示为
逻辑电路图
根据逻辑表达式绘制两种逻辑电路图如下:
启动 Quartus II 软件,选择File->New Project Wizard
,在出现的界面下先Next,填写工程的路径和名称,然后接着Next,直到出现下面界面并进行相应操作。接着一路Next,直到Finish,完成工程的创建。
首先选择File->New
,进入后选择Block Diagram/Schematic File
,新建原理图文件
选择元件,并添加输入输出,完成效果如下:
保存文件,并编译
通过tool->Netlist Viewers->RTL Viewer
,查看电路图
创建一个向量波形文件,选择菜单项 File→New->VWF
双击空白处添加信号
编辑信号
功能仿真结果如下
通过仿真结果,可以发现得到的结果与真值表中吻合。
利用半加器元件实现全加器
在打开半加器原理图文件adder.bdf
的情况下,选择菜中File中的Create/Update→CreateSymbolFilesforCurrentFile
项,即可将当前文件adder.bdf
变成一个元件符号存盘,以待在高层次设计中调用
新建原理图文件,选择刚才创建的半加器
并依次添加输入、输出,电路原理图如下:
与上述步骤相同,查看电路图,结果如下:
仿真,编辑信号,步骤与上述相同,下文将不做赘述
仿真结果如下
填写代码如下:
module full_adder( //输入信号,ain表示被加数,bin表示加数,cin表示低位向高位的进位 input ain,bin,cin, //输出信号,cout表示向高位的进位,sum表示本位的相加和 output reg cout,sum ); reg s1,s2,s3; always @(ain or bin or cin) begin sum=(ain^bin)^cin;//本位和输出表达式 s1=ain&cin; s2=bin&cin; s3=ain&bin; cout=(s1|s2)|s3;//高位进位输出表达式 end endmodule
保存并编译文件,
通过tool->Netlist Viewers->RTL Viewer
,查看电路图
创建一个向量波形文件,选择菜单项 File→New->VWF
添加信号,步骤如上文,功能仿真结果如下
以原理图实现的1位加法器上板为例
芯片引脚配置表如下:
将设计项目设置为顶层文件
选中对应的设计文件
选择目标芯片(新建工程时已指定目标芯片,此步骤可以省略)
在菜单中选择assignments->device
在弹出的对话框内选择目标芯片,本次实验选择EP4CE115F29C7
设置引脚
使用3个SW作为输入信号,2个LED作为输出信号
绑定引脚后,重新编译后,原理图如下:
下载
此处有个坑:
因为之前安装Quartus时,没装驱动,无法感知连接到的设备解决办法
需要打开设备管理器,在其他设备中,可以看到一个USB-blaster
更新驱动,找到点击【浏 览】按钮选择驱动程序的路径为 Quartus 软件安装目录下\qurtus\drivers\usb-blaster
通过本次实验,学习了解了一位加法器,总体来说实验完成比较顺利,在实验过程中,出现了找不到驱动的情况,在查阅相关文章后,顺利解决。
参考:
https://blog.csdn.net/nimalaigebazi/article/details/122441089
https://blog.csdn.net/qq_43279579/article/details/115480406
https://blog.csdn.net/qq_43279579/article/details/115158140
Copyright © 2003-2013 www.wpsshop.cn 版权所有,并保留所有权利。