本文主要是介绍加法器设计(数字逻辑课程设计),对大家解决编程问题具有一定的参考价值,需要的程序猿们随着小编来一起学习吧!
首页
寒假期间做的数字逻辑课设,现在整理出来分享给大家。
本文内容参照WUST2019届课程设计报告要求。
课设题目
- 三位十进制加法器,需要用数码管显示
- 八位二进制加法器,也需要用数码管显示
课程设计目的
1.初步掌握数字系统电路的一般设计方法,具备对逻辑电路独立设计能力。
2.进一步熟悉常用电子器件的类型和特性,并掌握合理选用的原则。
3.提高综合运用所学的理论知识,独立分析和解决问题的能力。
4.初步掌握对数字系统电路的安装与调试等基本技能。
设计报告要求
- 摘要,介绍本设计的要点 。
- 设计方案论证与选择,理论依据。
- 实现设计方案的原理框图,系统结构图,明确功能划分。
- 单元电路设计,包括元器件选择和相关电路参数设计与计算。
- 运行效果或仿真效果。
- 本设计的收获与体会。
- 参考文献。
分析
当初有12个题目啊,我选了一个看起来最简单的题目,但后面思考了以下,其实并不简单呜呜呜,仍需要解决3个问题
- 两个加法器都存在进位的可能(例如三位十进制加法器得到四位数,八位二进制加法器得到九位二进制数)
- 三位十进制相加需要调整系数
- 八位二进制相加,其结果可能是九位二进制,最大的问题就在于,怎么样将九位二进制转化成BCD码呢?而用我们目前已经学习过简单常规方法是做不到的(可能会做到?但本人太菜了没找到呜呜)
看到这你可能感觉莫名其妙,没事,我带你先看看思路
思路
- 三位十进制加法:
- 第一步:十进制一位一位加(74HC147,74HC283)
- 个位+个位=结果+进位
- 个位进位+十位+十位=结果+进位
- 十位进位+百位+百位=结果+进位
- 所用芯片:
- 74HC147:十进制转二进制
- 74HC283:四位二进制相加
- 第二步:将得出来的三个十进制数(可能是四进制)拼起来就是结果 (7SEG-BCD)
- 结果个位(十进制)----> 结果个位(二进制)----> 数码管显示
- 结果十位(十进制)----> 结果十位(二进制)----> 数码管显示
- 结果百位(十进制)----> 结果百位(二进制)----> 数码管显示
- 结果百位(十进制)----> 结果百位(二进制)----> 数码管显示
- 所用芯片:
- 7SEG-BCD:数码管显示用
- 第三步:用isis连起来
是不是看起来贼简单,我也觉得,并且洋洋得意以为自己这么快就完成了一半儿,但临近验收的时候,某一天天气晴朗,我闲来无事测试了以下 ,发现问题了,啥问题呢,就是数码管的问题:
当相应位相加产生进位时,数码管显示了稀奇古怪的东西,举个例子
无进位:
4+5=9 //无进位
输入4
输入5
结果:数码管显示9
输出是没有问题的,数码管显示9
有进位:
5+5=10 //有进位
输入5
输入5
结果:数码管显示0
但实际结果,数码管显示的是10!
哈,逗我呢,这是10?
没错,就是十,而不是0!这就是问题所在。
个位相加产生的进位送到数码管的时候,不是0而是10,因此就出现了这个诡异的图像
所以我们需要修正系数!
直接上连接图
这里用到了一些数学技巧,不会百度去我懒得讲了
后面那个芯片直接连数码管就行
还没写完,明天接着写
等审核过了把DSN文件直接发出来
这篇关于加法器设计(数字逻辑课程设计)的文章就介绍到这儿,希望我们推荐的文章对大家有所帮助,也希望大家多多支持为之网!