Java教程

加法器设计(数字逻辑课程设计)

本文主要是介绍加法器设计(数字逻辑课程设计),对大家解决编程问题具有一定的参考价值,需要的程序猿们随着小编来一起学习吧!

首页

寒假期间做的数字逻辑课设,现在整理出来分享给大家。
本文内容参照WUST2019届课程设计报告要求。

课设题目

  1. 三位十进制加法器,需要用数码管显示
  2. 八位二进制加法器,也需要用数码管显示

课程设计目的

1.初步掌握数字系统电路的一般设计方法,具备对逻辑电路独立设计能力。

2.进一步熟悉常用电子器件的类型和特性,并掌握合理选用的原则。

3.提高综合运用所学的理论知识,独立分析和解决问题的能力。

4.初步掌握对数字系统电路的安装与调试等基本技能。

设计报告要求

  1. 摘要,介绍本设计的要点 。
  2. 设计方案论证与选择,理论依据。
  3. 实现设计方案的原理框图,系统结构图,明确功能划分。
  4. 单元电路设计,包括元器件选择和相关电路参数设计与计算。
  5. 运行效果或仿真效果。
  6. 本设计的收获与体会。
  7. 参考文献。

分析

当初有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文件直接发出来

这篇关于加法器设计(数字逻辑课程设计)的文章就介绍到这儿,希望我们推荐的文章对大家有所帮助,也希望大家多多支持为之网!