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

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

取消只看楼主收藏回复

神秘是一种我们能够体验到的最美丽的东西。 它是所有真正艺术和科学的源泉。 ——阿尔伯特.爱因斯坦


IP属地:广东1楼2014-10-19 14:46回复
    【开始前的话】
    楼主大学党一个,计算机科学与技术专业,闲暇时喜欢玩一玩MC。
    楼主平时对电子技术、计算机科学和软件技术有所研究,记得刚玩MC时当发现其中有红石电路时很是欣喜,何不试着把现实中的技术搬到MC中试试,抱着这样的心态玩了玩红石,但是后来发现红石延迟太大,对于大规模电路是一个无法逾越的瓶颈,另外红石需要极高的布线技巧,这违背了我构建电路的初衷,于是改变方案,采用MOD进行构建。
    对于该不该在MC里面使用MOD,似乎是一个争论不休的话题,在这里我想澄清一点,我开此贴的目的是分享一些自己平时学习、游戏中的电子和计算机科学方面的经验,采用MOD能够忽略一些跟现实世界无关的细节,注重逻辑和原理的分析,加快学习的进度,本人不对纯净党和MOD党进行任何评论和褒贬。
    在此ProjectRed,虽然很多地方做得差强人意,但是总体来说比较合理,能够满足我们的要求。
    另外如果有任何意见、建议、批评,欢迎提出来


    IP属地:广东2楼2014-10-19 15:07
    收起回复
      2025-08-21 14:23:09
      广告
      不感兴趣
      开通SVIP免广告
      【ProjectRed布线传输】
      一、红色合金丝
      裸露的电线

      二、绝缘线缆
      同种颜色的线相互连接,不同颜色的线不会连接,任何颜色都可以和裸露的红石合金丝连接。

      三、集束线缆
      可以把不同颜色的线汇集到一起,而信号不会互相干扰,与集束线缆的相连的同一颜色绝缘线是彼此相连的。
      另外集束线缆也有颜色,无颜色的集束线缆可以连接到任何颜色的集束线缆上。

      四、框架
      框架能够实现在空中布线




      IP属地:广东7楼2014-10-19 16:49
      收起回复
        【ProjectRed逻辑门】
        所有的元件都放在标签页,这里借用官网上的一张图片(游戏里面为中文)
        http://projectredwiki.com/wiki/Logic_Gate

        一般常用的就是与或非、RS锁存器、D锁存器、脉冲发生器、序列产生器。
        官网上面对每个逻辑门都有详细的介绍,这里就不赘述了。
        不过值得注意的是,这里的透明锁存器实际上就是D锁存器(同步D触发器),脉冲发生器实际产生的波形是一种冲击函数,序列产生器产生的是周期性的方波信号。


        IP属地:广东8楼2014-10-19 17:08
        收起回复
          【ProjectRed照明】
          照明包括一些灯具和按钮,灯具和红石灯差不多,只是不能被强充能。


          IP属地:广东9楼2014-10-19 17:13
          收起回复
            【布线技术】
            线缆和逻辑门都能爬墙。

            ProjectRed支持microblock,可以在一个方块里面放入多个物体。


            IP属地:广东10楼2014-10-19 17:22
            收起回复
              ==================ProjectRed结束=======================
              ================计算机和电子技术篇======================
              这一部分将不再注重于具体的布线细节,我会尽量从电路中抽象出来,所以会采用VHDL硬件描述语言的方式进行,最后再进行EDA仿真,希望不管是对原版还是MOD都有所帮助。


              IP属地:广东14楼2014-10-19 20:06
              收起回复
                PS:这部分的内容可能有些困难,但却是最广泛最高效的硬件开发方式,现实生活中中不管是军方、科研、产品研发、教学,对于硬件的设计,绝大部分是采用VHDL或Verilog HDL等硬件描述语言,再用FPGA、CPLD仿真,最后再制成ASIC量产。
                希望大触们不要见笑


                IP属地:广东15楼2014-10-19 20:12
                回复
                  2025-08-21 14:17:09
                  广告
                  不感兴趣
                  开通SVIP免广告
                  【环境搭建】
                  推荐使用Quartus II,网上教程很多,在此不再赘述。


                  IP属地:广东16楼2014-10-19 20:18
                  收起回复
                    ==============计算机组成原理================
                    由于红石玩家们都已是数电大触,应广大观众要求,在此略过数电的知识,如果对数电有些不明白的,可以参考其他红石数电教程。
                    本教程开始之前要求至少要掌握:基本逻辑门、组合逻辑电路分析设计方法、译码器、编码器、数据选择器、比较器、加法器、三态门、基本触发器、锁存器、寄存器、移位寄存器、计数器。
                    最好掌握一些仿真工具,如logisim、 multisim、proteus,如果有VHDL或Verilog基础就最好了。考虑到教程跨度比较广,这里会视情况采用多种工具。


                    IP属地:广东26楼2014-10-20 13:30
                    收起回复
                      先从简单的开始,一步一步逼近核心
                      【体系结构】
                      现在主流的计算机体系有两种架构
                      一、冯洛伊曼体系结构
                      包括输入设备、输出设备、运算器、控制器、存储器
                      二、哈佛体系结构
                      哈佛体系结构把数据存储器和程序存储器分开,分别用不同的总线进行存储
                      另外还有一种改进型的哈佛体系结构,与哈佛结构的不同点是程序和数据总线是共用的,采用分时复用的方法对数据、程序存储器进行存储。


                      IP属地:广东27楼2014-10-20 13:45
                      收起回复
                        目前,微机大都是冯诺依曼结构,且采用分级存储系统,并且把一些高速的组件,如寄存器(属于存储器)、运算器、控制器集成到一块芯片中,这就是处理器。对于嵌入式,大都采用哈佛结构,且嵌入式计算机倾向于把除外部设备的组件全部集成到处理器中,也就是通常说的单片机。


                        IP属地:广东来自Android客户端29楼2014-10-20 14:48
                        回复
                          【中央处理器(CPU)】
                          CPU一般包括寄存器组、运算器和控制器。
                          首先,让我们来构造运算器


                          IP属地:广东30楼2014-10-20 18:34
                          收起回复
                            【运算器】
                            一般简单CPU实现的运算操作有算术运算、逻辑运算和移位。算术运算主要包括加法、减法、曾1、减1等,逻辑运算主要包括与、或、非、异或,移位实现左移右移或者不变。
                            算术运算器实际上就是一个加法器,那么减法怎么办呢?
                            众所周知,A-B=A+(-B),就这样,减法就转换成了加法,那么负数怎么表示?答案是用补码!
                            实际上为了方便,我们把参与运算的数都用补码表示,定义正数和零的补码为本身,负数的补码为其反码加一(反码就是按位取反)。
                            补码表示的时候,正数、零和负数可以很方便区分出来,最高位为0,则为正数或零,最高位为1,则为负数。
                            不过在这里,我们还需要对运算结果按2^n取模(n为位数),写成通式就是这样:
                            [A-B]补=([A]补+[-B]补)mod 2^n,(A、B>=0)
                            其实mod 2^(n+1)的意思就是舍弃最高位的进位。
                            举个例子,如果要计算八位二进制运算5-3,可以这样做:
                            [5]补=5=00000101B,
                            [-3]补=[3]反+1=[0000011]反+1=11111100B+1=11111101B
                            然后做加法运算

                            如果第一个是负数呢?情况也一样的,因为加法满足交换律,加法器的两个输入端也是对称的。
                            如果小数减大数呢?例如15-35(八位字长):
                            [15-35]补=([15]补+[-35]补)mod 2^8=(00001111B+11011101B)mod 2^8=11101100B=[-20]补
                            由此可以看出,当用补码表示整数的时候,加减法可以统一为加法运算。


                            IP属地:广东31楼2014-10-20 19:13
                            收起回复
                              2025-08-21 14:11:09
                              广告
                              不感兴趣
                              开通SVIP免广告
                              溢出判断
                              当运算的结果超过最大表示范围的时候,就会发生溢出。
                              分析可以得出:
                              对于加法,溢出只有在两数都为正,或者两数都为负的情况下才能发生;
                              对于减法,只有正数减负数或者负数减正数的情况下才可能溢出。
                              统一为加法之后,上述情况就是[正]补+[正]补和[负]补+[负]补,[正]补+[正]补溢出时导致从低位进位到符号位,[负]补+[负]补导致符号位变为0,因此可以得出结论:
                              当两数符号相同,运算结果与原数符号不同时,发生溢出。


                              IP属地:广东33楼2014-10-20 19:22
                              回复