软妹裙子吧 关注:1,006贴子:1,844

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

只看楼主收藏回复

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


IP属地:云南1楼2016-07-11 19:27回复


    来自iPhone客户端2楼2016-07-12 09:37
    回复
      怎样搭建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
                    回复
                      红石数电从入门到放弃
                      从放弃再到绝望
                      从绝望到医院
                      (我才不会说我是因为到了10级才来水一楼的呢


                      IP属地:吉林来自Android客户端29楼2016-07-17 07:55
                      收起回复
                        加法之后就是减法了
                        二进制可以用一种叫补码的东西来算减法
                        就是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
                              回复