zoukankan      html  css  js  c++  java
  • 组建一台计算机1_硬件1 单位加法器

    前言:

    放假有一周的时间,到家也有四五天的时间了,这几天把《code》好好的看了一遍。尽管之前也有草草翻过,但是把时候我就曾告诉自己,无论如何都是要把书中的这些东西都实现一遍的。于是说干就干,这几天基本上就在搞这些东西了。这些学习成果要感谢余富帅给我传的软件以及一些推荐。

    =========================================================================

    转载请遵循GNU开源宣言。Copyleft ! <2013>, <http://www.cnblogs.com/sciencefans from buaa 华罗庚班>

    阅读此文,你需要拥有以下基础:

    1.小学代数相关知识;2.初中电路;3.高中门电路相关知识;4.二进制和十进制的转换(这一点不会也没有关系)。

            一台计算机是由硬件和系统为基础的。其中硬件包括所有的逻辑电路和功能电路。其中不可缺少的便是CPU,RAM。那么这两者的电路首先要建起。

            首先我们考虑一个二进制加法器。小学我们做竖式加法的时候就知道,一个按位加法器必须包含加和位S和进位C。首先,可以列出两者的真值表:

    image image

            不难发现,S和一个抑或门电路的输入输出相同,C和一个与门电路等价。那么就很容易的做出如下设计:

    image

    其中CI是指前一位进位,但是这里只作为一个单位加法器,不妨把它接地为0,IA,IB是两个相加数字。S,C分别是加和位和进位位。

    当加数为1和0时,显然和数为1,进位位为0,则有如下表示:

    image       

    当加数为1,1时,和为10,所以和数为0,进位位为1.

    image

    当之前一位有进位过来,加数又分别是1,1,则和应该是1+1+1=11,则S,C都应为1.

    image

    但是人类总是不满足的。这种加法器一次只能进行一个单位的运算,也就是说只能算1+1,0+0,1+0。假如我想计算3+4,也就是0011+0100,这至少要涉及到三位加法运算,该怎么办呢?

    方法就在:

    http://www.cnblogs.com/sciencefans/p/3185318.html

    至此,一个一(单)位加法器就做好了。

  • 相关阅读:
    零拷贝
    RxJava2源码解析
    一次博客崩溃日志分析
    Spring循环依赖的解决
    解决网络卡顿问题
    软工第一次作业
    3月26-27号训练笔记
    Codeforces Round #708 (Div. 2)题解A,B,C1,C2,E1,E2
    求出所有LIS的可行起点
    2020小米邀请赛决赛补题G,I,J(三DP)
  • 原文地址:https://www.cnblogs.com/sciencefans/p/3185242.html
Copyright © 2011-2022 走看看