软妹裙子吧 关注:1,006贴子:1,844
  • 13回复贴,共1

#大触公开课# 借地打草稿2 《红石数电 从算数逻辑单元到入门》

取消只看楼主收藏回复

什么是算数逻辑单元:算术逻辑单元是能实现多组算术运算和逻辑运算的组合逻辑电路,简称ALU。
ALU需要具有什么功能:算数运算,加法减法,还可以加上乘法除法等复杂的运算;逻辑运算,与、或、非、异或等。


IP属地:云南1楼2016-07-11 19:27回复
    怎样搭建ALU:


    IP属地:云南3楼2016-07-12 22:13
    回复
      首先呢,先把ALU拆开,一部分一部分地来。
      AU算数单元,以及LU逻辑单元。


      IP属地:云南4楼2016-07-12 22:22
      回复
        虽然分成AU和LU两部分了,但是输出和输入还是只有一个
        这时候就需要设计一个电路能把数据分别输入到AU和LU里,以及把AU和LU的输出合到一起


        IP属地:云南5楼2016-07-12 22:25
        回复
          接下来是AU和LU(运算单元)的搭建


          IP属地:云南14楼2016-07-13 00:46
          回复
            LU需要实现的功能有各种逻辑运算
            其中比较常见的就是AND与运算、OR或运算、NOT非运算、XOR异或运算


            IP属地:云南15楼2016-07-13 22:37
            回复
              AU的功能是各种算数运算,即ADD加、SUB减、MUL乘、DIV除等
              ADD加由加法器实现,SUB减也可以用加法器来实现,MUL乘也是通过加法来实现的,但是一般都是通过软件来实现,DIV除相对比较复杂所以一般靠软件实现,硬件不提供这个功能


              IP属地:云南21楼2016-07-14 09:57
              收起回复
                然后就简化为了加法器的设计以及减法实现的问题了
                要做加法器,首先先看看二进制的加法
                二进制,满2进1,一位只有0或者1
                0+0=0,0+1=1,1+0=1,1+1=10
                转换一下:0 0→0
                0 1→1
                1 0→1
                1 1→1 0
                逐位分析:0 0→0
                0 1→1
                1 0→1
                1 1→0和一个进位
                发现正好和XOR运算一样
                但是还有一个进位怎么办
                只看那个进位的:
                0 0→没有进位
                0 1→没有进位
                1 0→没有进位
                1 1→有进位
                转换一下就是:
                0 0→0
                0 1→0
                1 0→0
                1 1→1
                发现和AND一样
                于是只有同时连接一个XOR和AND就能完成一位的加法运算

                XOR输出的是这一位的和,AND输出的是进位信号


                IP属地:云南22楼2016-07-14 10:16
                回复
                  一位二进制数的加法讲完了
                  那么该怎么做多位二进制数的加法呢
                  我们先来看两个二进制数相加的例子
                  10001+101
                  列竖式:

                  从最右边(最后)一位开始算,1+1=10,这一位结果是0向前进1,
                  下一位0+0=0,0+1=1,这时候实际上是进行了两次加法运算,先是本位上的加数相加,然后再加上进位的
                  然而半加器只能进行一次加法运算,就是本位加数相加,不能接受前一位的进位,所以我们需要进行扩展


                  IP属地:云南24楼2016-07-14 10:52
                  回复
                    加法之后就是减法了
                    二进制可以用一种叫补码的东西来算减法
                    就是A-B=A+B的补码
                    其实就相当于十进制里的负数
                    A-B=A+(-B)
                    补码=原码取反再+1
                    比如:110010的补码就是110010取反得001101,然后再+1得001110


                    IP属地:云南30楼2016-07-23 09:40
                    回复
                      于是给加法器的B输入端加上非门取反
                      在给接受进位的输入1就可以了


                      IP属地:云南31楼2016-07-23 09:50
                      回复
                        运算元件会了以后接下来就来看看基础的逻辑门的搭建吧
                        常用的逻辑门有四种
                        AND GATE——与门、OR GATE——或门、NOT GATE——非门、XOR GATE——异或门


                        IP属地:云南32楼2016-08-08 10:48
                        回复
                          这些逻辑门可以进一步拆分,就变成或门和非门了
                          所以接下来是非门的各种姿势


                          IP属地:云南37楼2016-08-08 11:17
                          回复
                            教程到这里就结束了
                            祝各位早日做出自己的ALU
                            早日成为红石触
                            完结撒花


                            IP属地:云南39楼2016-08-08 11:20
                            回复