【2021山东大学数字逻辑实验3】 十进制数加法器

本文介绍了如何使用74283和7404设计一个基于余三码的1位十进制加法器,涉及实验目的、所需设备、原理图输入、管脚绑定及调试步骤。通过实例演示了从原理图设计到实际操作的过程,适合学习数字逻辑与EDA工具应用。
摘要由CSDN通过智能技术生成

1、实验目的
(1)学习组合电路的设计方法;
(2)了解余三码的构成和十进制数加法器的构成和工作原理;
(3)熟悉EDA工具软件的使用方法。
2、实验设备及器件
(1)操作系统为WINDOWS XP的计算机一台;
(2)数字逻辑与计算机组成原理实验系统一台;
(3)4位二进制并行加法器74283和六非门7404。
3、实验内容及说明
本实验要求在掌握四位并行加法器74283使用方法和理解余3码运算法则的基础上,利用4位二进制并行加法器74283和六非门7404设计一个用余三码编码的1位十进制数加法器,并通过发光二极管显示加法结果。余三码编码的1位十进制数加法器原理图如图3.6所示,其中A4-A1和B4-B1为两个余三码编码表示的加数,CIN为低位来的进位,SUM4-SUM1为余三码编码表示的和数,COUT为向高位的进位。
4、实验步骤
(1)原理图输入:根据图3.6电路,采用图形输入法在计算机上完成实验电路的原理图输入。
(2)管脚定义:根据图3.1硬件实验平台资源示意图和附录一 平台资源和FPGA引脚连接表完成原理图中输入、输出管脚的定义。
(3)原理图编译、适配和下载:在QuartusⅡ环境中选择EP2C8Q208C8器件,进行原理图的编译和适配,无误后完成下载。
(4)加法器的调试: 根据余三码的运算规则,使用输入开关在余三码编码的1位十进制数加法器的输入端赋值,观察输出和数SUM及向高位进位COUT的值是否正确。


①一位十进制加法余三码:(电路图)
在这里插入图片描述
管教绑定图:
在这里插入图片描述
其中,A1~ A3绑定在键K0~ K3上,B1~ B3绑定在键K4~ K7上,进位CIN绑定在K8,CIN_2绑定在K9(默认K9为低电平)。
②二位十进制加法余三码:(电路图)
在这里插入图片描述
管脚绑定图:
在这里插入图片描述
其中,键A1~ A8绑定在键K0~ K7上,B1~ B8绑定在K8~ K15上,输出为小灯R0~ R7。
③利用4位二进制并行加法器74283和相应门电路设计一个用8421BCD码的1位十进制数加法器。
设计思路:设a、b是两个一位十进制数,a+b一共有0~18一共19种可能的值,由于8421BCD码的显示特性,由真值表可知:

在这里插入图片描述
当a+b<9时,显示二进制数,当a+b>9时需要+6才能正常显示,电路图如下:
在这里插入图片描述
简要分析,当s4s3s2s1>9时,需要在原来的基础上+6再显示,也就是再通过第二个74283,当然第二个74283只需要根据输入是否>9来判断是否+0110就可以了,把c0、A1、A4都接地。
引脚分配图:
在这里插入图片描述
输入为键K7~ K0,输出为小灯LDR4~ LDR0.
④实验电路图:
在这里插入图片描述
本图只是简单地把之前的连线结果封装再扩展,比较简单。
引脚分配图:

在这里插入图片描述
键K7~ K0控制数据A的读入,键15~ K8控制B的读入,小灯LDR8~LDR0显示输出。

在Verilog中设计一个8位十进制加法器(Adder),通常会采用组合逻辑设计,即通过基本门电路(如与非门、或非门、与门、或门等)组合而成。一个简单的8位加法器(全加器)可以先设计,然后通过级联的方式扩展到整个8位。 以下是设计步骤的一个简要概述: 1. **全加器(Full Adder)**: - 全加器有三个输入:A(低位),B(低位),Cin(进位),以及两个输出:Sum(和)、Carry(进位)。它负责处理两位二进制相加的情况,包括是否需要进位。 2. **半加器(Half Adder)**: - 半加器是全加器的基础,只考虑一位二进制的加法,没有进位。将四个半加器连接起来就可以得到一个全加器。 3. **并行加法器**: - 如果只有一个8位的据,可以直接连接8个全加器作为一级,它们的Sum输出连接在一起,形成下一级的A输入,Carry输出作为下一级的Cin。 4. **串行加法器**: - 对于两个8位据进行逐位加法,需要两个这样的并行加法器级联,第一级的Carry输出给第二级的A输入,同时第二级有一个初始值为0的Cin。 5. **编写Verilog模块**: - 使用`module adder8bit(input [7:0] A, B, Cin, output [7:0] Sum, Carry);`声明模块,其中A、B和Cin为输入,Sum和Carry为输出。 6. **定义内部逻辑**: - 写出对应的Verilog代码来描述每个全加器的行为,并通过`assign`或`always @(posedge clk)`来同步操作。 7. **端口连接**: - 最后,添加适当的端口映射和时钟控制信号(如果需要的话)。 以下是伪代码形式的基本结构: ```verilog module adder8bit ( input [7:0] A, input [7:0] B, input Cin, output [7:0] Sum, output Cout ); // 全加器部分 half_adder half_add [8:0]; // 级联全加器并配置连接 Sum <= {half_add[7].Sum, half_add[6].Sum, ... , half_add[0].Sum}; Cout <= half_add[7].Carry; endmodule ```
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值