红石电路吧 关注:32,252贴子:153,435

回复:计算机组成原理及ProjecRed技术实用教程——从零开始构建计算

只看楼主收藏回复


一个简单的4选一数据选择器和一个加法器就构建出了一个算术单元,神奇吧!
其中的A和B是8路数据输入,S1、S0和Cin进行功能选择,右侧输出结果。
实现的功能表很容易写出来:


IP属地:广东37楼2014-10-20 22:02
收起回复
    那么接下来就是逻辑单元了
    逻辑单元最简单了,与或非和异或就够用了吧!
    原理还是一样的,由两路信号输入,通过选择功能,输出结果!
    原理图So easy!

    功能表So easy!


    IP属地:广东38楼2014-10-20 22:21
    收起回复
      2025-08-21 10:46:25
      广告
      不感兴趣
      开通SVIP免广告
      坐等大触讲VLIW和硬件乱序超标量


      IP属地:云南来自Android客户端39楼2014-10-20 22:28
      收起回复
        接下来就是最最最重要的【ALU】即【算术逻辑单元】了
        说白了就是把算术单元和逻辑单元组合起来~
        分析:算术逻辑单元要实现的功能是对A和B进行特定操作,而进行哪种操作是需要选择的,所以输入端A、B和功能选择端是应该共用的,对于输出端,应该对算术和逻辑两者进行选择。
        ALU电路~

        功能表~


        IP属地:广东40楼2014-10-20 22:45
        收起回复
          继续玩原版


          IP属地:湖北来自Android客户端41楼2014-10-20 22:55
          收起回复
            终于开始讲alu了,而且补码运算不是比时序逻辑电路还要基础么


            IP属地:日本来自Android客户端42楼2014-10-20 23:16
            收起回复
              八位桶形向左移位器
              可以一次移动0~7位
              需要注意的是连线


              IP属地:广东44楼2014-10-21 00:46
              收起回复
                我的红石知识只能造大炮和红石门 还有电梯 太深奥我不懂 但暖一下没错!


                IP属地:广东来自Android客户端45楼2014-10-21 05:15
                收起回复
                  2025-08-21 10:40:25
                  广告
                  不感兴趣
                  开通SVIP免广告
                  在以上各个部件的基础上,就能组成一个运算器了,当然这样的运算器还很简单,不过基本的运算能够满足了。

                  当然,单有数据输入/输出和功能选择还是不够的,很多时候我们都希望了解运算的状态,如溢出/进位/结果是否为零等,因此还需要添加一些标志的输出。


                  IP属地:广东46楼2014-10-21 13:26
                  收起回复
                    作为前排的,是不会忘记这个帖子的


                    IP属地:重庆47楼2014-10-21 23:47
                    收起回复
                      状态标志这里设置了溢出OV、符号SI、进位CA、零ZO。
                      其中OV和SI只对算术运算有效,CA对算术和移位运算有效(移出位放入CA),ZO对算术和逻辑运算有效。
                      (无效并不意味着输出一定为0)
                      另外,将移位器的方向选择线IL,IR并入了S0,S1中,并且添加了一个算术左移(与逻辑左移实质是一样的)和算术右移(最高位不变)。
                      溢出OV检测:上面说过可以通过比较源操作数和结果的符号位判定,但是这样电路不容易实现,在这里,采用了对加法器的符号进位和最高进位进行异或运算以实现溢出判定,因此在布线时将加法器拆成了7bit+1bit。1表示溢出。
                      符号SI检测:通过检测加法器输出的符号位即可得出符号,为1时表示负数。
                      进位CA检测:移位操作移出的位或者是加法器最高位进位,因此需要在不同的操作时选用不同的线路,1表示进位。
                      零ZO检测:当输出为零时,所有位一定为零,因此逻辑就是全零得一,可用或非门实现。为1时,表示结果为0。

                      功能表:

                      至此,一个完整的运算器已经完成好了!


                      IP属地:广东48楼2014-10-22 02:23
                      收起回复
                        看到这里的肯定都是会四则运算
                        如果你发的不是mod而是原版就精了


                        IP属地:日本来自Android客户端49楼2014-10-22 12:29
                        收起回复
                          不顶不行


                          IP属地:美国来自Android客户端50楼2014-10-22 12:48
                          回复
                            【寄存器组】
                            PS:各个组件名字叫法可能各种资料上不相同,但一般容易辨别的~
                            首先考虑通用寄存器
                            对于寄存器,需要实现的基本功能就是写数、储存、读数,一般至少要有输入端、时钟端(异步也有叫送数端)、输出端,另外根据具体情况,可能还需要使能端和清零端。
                            注意寄存器的时钟信号(送数信号)必须要是边沿触发的!
                            不能用锁存器代替触发器,因为锁存器会有空翻现象,控制时钟必须保持高度一致,对于毛刺(冒险竞争)现象很难处理。
                            (PS:好像MC许多人把锁存器当成寄存器了
                            (PS2:在MC中,可以用锁存器加一个冲击函数实现寄存器,但是现实当中千万不能这样做,因为MC中有最小间隔时间,而现实中的最小时间是不稳定的)
                            这里需要区分寄存器和锁存器,最主要的区别就是寄存器是边沿触发,锁存器是根据电平来送数或保持(也即同步触发)。
                            另外还需要区分的是触发方式,可能是由于翻译的原因,国内很多资料对触发方式的叫法不一致,这里列出不同名称的对应关系:
                            Latch----锁存器--同步触发器(电平信号激活)
                            Flip flop-触发器--边沿触发器(边沿信号激活)
                            另外RS触发器=基本RS锁存器
                            同步RS触发器=门控RS锁存器
                            另外Flip flop在台湾叫正反器。


                            IP属地:广东52楼2014-10-22 14:05
                            收起回复
                              2025-08-21 10:34:25
                              广告
                              不感兴趣
                              开通SVIP免广告
                              这个是标准的门控D锁存器(同步D触发器),只能用来构造锁存器

                              这是利用门控D锁存器组建的8bit锁存器:

                              不过在MC中,有一个取巧的办法可以将锁存器变成寄存器,那就是在时钟端加一个上升沿检测器


                              IP属地:广东53楼2014-10-22 14:29
                              回复