具有计算与控制智能的电路究竟是如何设计的?这一点都不先进。本系列文章从初中学过的最简单的电路图入手,看看能不能用继电器从初始电路画出一个简单的CPU。电路图是用multisim12.0画的,这样可以看出效果。(注:现代计算机虽然用半导体材料做芯片,但是电路原理和继电器材料是一样??的,我比较迟钝,只懂继电器,没有研究过电子管和三极管的工作原理。继电器原理很简单,可以用来解释数字电路的原理就好了。)从电池、开关和继电器开始这是初中物理。上图右上角是左上角电路的简单修改。电池换成VCC,电路用接地符号实现。相当于把电池拆开拉出来。电路功能相同。本文以下电路图一般用VCC和地来表示电源。因为你会发现只有这样的画法才能方便我们后面看懂电路图。再往下看,第三张电路图,圆圈里有个K的蓝色东西,代表继电器。当继电器左侧有电流通过时,右侧电路断开;否则,它是连接的。(对应的还有一个继电器,当电流从左边流过时,右边的电路就接通;否则就断开,后面会用到)这个电路要你知道的是,这样的功能可以用继电器实现:控制左边电路的通断来改变右边电路的通断。也就是说,左边电路的通断条件决定了右边电路的通断条件。更抽象地说,左边的电路代表“输入”的概念,右边的电路代表“输出”的概念。中继代表“计算”(或“算法”、“处理”等)(CPU)的概念。硬件就是利用这种电气设备固有的物理特性来提供初始的计算能力。低头看第四张电路图,它和第三张的区别在于电池换成了VCC和地线符号。第一次看电路,我们需要经历一个从电池到VCC和地符号的过渡。在以后的电路图中,我们将直接使用VCC和地符号,请务必适应这里的这种画法。然后是底部的电路。与第四回路相比,将“继电器、右回路电源、继电器地”三个符号换成“非门”符号。也就是说,一个“非门”实际上是“继电器、正确电路的电源和继电器的地”三者的组合,画图时省略了电源和地的符号。在学校学数字电路之前,就是想不通逻辑门的电源在哪里,整个电路的走线在哪里,所以学不好。现在有了这张电路图,感觉一切都豁然开朗了。用继电器制作一个与门我们刚刚用一个继电器制作了一个“非门”。可以看出只用了一个继电器。与门电路如下图所示。与门由两个继电器组成(这两个继电器与非门的继电器通??断情况相反),右边的电路只有在两个继电器的左边得电时才能接通.这样就实现了“与”的功能。“与门”的标志是一个倒着密封的U字形。注:本文制作的电路图片均为GIF格式。您可以看到输入和输出电路上的灯泡如何随着浏览器中开关的打开和关闭而变化。每张图片都有(http://bitzhuwei.cnblogs.com)标记我的博客地址,但每张GIF图片的最后一帧都去掉了这个标记。这样,当你看到没有标志的帧时,你就知道下一帧将是GIF图片的第一帧。用继电器做一个或门,“非门”和“与门”,“或门”不难理解。我们直接上图来体验一下。(电线交叉的地方,如果有红点,则表示已连接,否则无关紧要)“或门”的符号就像一颗子弹。用一个继电器做一个异或门。“异或门”的作用是:当左边的两个输入电路,一个接通,另一个不接通时,右边的电路接通;否则,右边的电路没有连接。这次,先画符号。可以先试着用继电器画出“异或门”,锻炼一下思维,再往下看答案。答案揭晓!“异或门”的实现如下图所示。乍看之下很复杂,其实合乎逻辑。最右边的两个继电器其实是一个“或门”,最左边的两个继电器是两个“非门”,中间有四个继电器,是两个“与门”。这很容易理解。当A、B的两个输入电路为A、B时,整个“异或门”通过下路由点亮灯泡;如果A不接B接,灯泡会通过上层电路点亮。在其他情况下,灯泡不会点亮。虽然做出一个看起来能用的东西和NOR逻辑门很重要,但离构造一个CPU还差得很远,似乎也没什么成就感。因此,让我们使用这些太基本的设备来做一些有用的事情吧!一个小约定为了表达方便,我们约定一下,当逻辑门电路的输入(输出)线上有电流时,我们说输入为1(输出为1),否则我们说输入为0(输出为0)。#p#Oscillator振荡器可以连续输出0,1,0,1,0,1,0,1...这样的信号。虽然这种东西一时半会用不上,但是用起来肯定有用。振荡器的制作也非常简单。请参见下图所示的电路。将非门的输出连接到输入。当输出为1时,输入变为1,则输出必须变为0;然后输入也变为0,因此输出再次变为1。循环无休止地翻转。振荡器翻转的速度取决于继电器的响应速度。(现代计算机用晶体管代替继电器,晶体管翻转速度比继电器快,所以可以获得更高的频率和更快的计算机速度。而且晶体管比继电器更省电。)也就是说,multisim12仿真的翻转速度也足够了。我也费了很大的劲才截屏。顺便举个用继电器做振荡器的实际应用例子:上课和上课的铃声就是用继电器做的振荡器完成的。0101信号是通过锤击头盔来表达的。加法器刚刚同意用1和0来表示电路的通断。电路只有开和关两种状态,所以计算机只用0和1来表示数字,也就是二进制。二进制和十进制别人写的太多了,我就不提了。计算两个多位二进制数的和,可以分别计算每一位的结果,每一位的计算方法相同,即“被加数+加数=>和值+进位值”。这由逻辑门表示,如下图所示。A和B分别代表加数和被加数,C代表上一次计算的进位值,C1灯泡代表本次计算的进位值,S1灯泡代表本次计算的和值。找了半天,没找到multisim12中二进制数加法器的符号。你可以看看这张图。要计算多位数,只需将个位数加法器首尾相连即可,如下图所示。这两张照片来自《穿越计算机的迷雾》。如有侵权请告诉我,不然我偷懒就不自己画了。我在学习寄存器汇编的时候听说过这个东西。“注册”二字,让我觉得篱笆底下很可怜。寄存器的作用是保存数据(协议中提到的0和1,其实就是电路的通断状态),以后可以取出来使用。寄存器比以前的设备更复杂,需要一步一步来。R-S触发器首先看下面的电路,它是各种具有存储功能的器件的基础。上图显示了在R和S开关都打开的情况下启动电路的结果。《穿越计算机的迷雾》表示,这种情况下,不一定点亮哪个灯泡,要看哪个逻辑门转得快。但是,当我用multisim12进行仿真时,两个灯泡在闪烁。这可以说是一个异常人类使用R-S触发器的案例。我们来看看正常人使用R-S触发器的情况。R-S触发器的R为Reset,表示将Q灯泡复位为0,S为Set,表示将Q灯泡设为1。可见如果只关闭S,Q会亮,NQ不会亮;如果只有R闭合,则Q不导通,NQ导通;如果RS同时闭合,则Q和NQ都不导通;如果RS同时打开,Q和NQ会保持原样。状态不变。由于D触发器需要保存数据,所以我们要求只有在要保存某条数据时才保存,否则会被忽略。所以我们给R-S触发器增加一个新的输入作为控制端,只有当控制端为1时才能保存新的数据。这里把RS端也合并成一个D端,??用一个非门实现只有R和S只有一个开关闭合(即要么Q灯泡变为1,要么Q灯泡变为0).我在multisim中也没找到D触发器的符号,看这个吧。对于上升沿D触发器,我们只想保存某一时刻的数据,而不是像D触发器那样在控制端为1的时候一直保存新的数据。(这样最安全)所以我们在D触发器的基础上设计了一个上升沿D触发器。这个触发器只在控制端从0变为1时才存储新的数据,是不是一个绝妙的设计?上升沿D触发器用两个D触发器,加上一个非门,就OK了。通常,我们把要存储的数据(D开关)拿走。那么,当控制端CP断开时,图中上方的D触发器可以存储数据,而下方的则不能。这意味着新数据已到达两个D触发器之间的线路。在控制端CP闭合的瞬间,上面的D触发器不能再存储新的数据,但是下面的D触发器可以存储新的数据,那么到底存储了哪些新数据呢?它只能是两个D触发器之间的数据。过了这一刻,新的数据就无法通过上面的D触发器,自然也就无法保存了。这次终于在multisim12中找到了上升沿D触发器的符号。乒乓触发器这是一种有点类似于振荡器的设备。两者的区别在于振荡器自动改变输出,而乒乓触发器在输入上升沿时改变输出。电路图如下所示。可以看出,乒乓触发器实际上是将上升沿D触发器的非Q输出端连接到输入端。显然,每次存储的新数据总是与输出信号相反。乒乓触发器可以用作计数器。计数器有这样一个功能:每接收到一个有上升沿的信号,就加1。例如如下图,它可以统计从00000到11111(即0到31)的32个数)二进制。计数器的每个计数装置都是一个乒乓触发器。灯泡亮代表1,灯泡灭代表0。#p#走马灯也可以用上升沿D触发器做“走马灯”。走马灯是每次打开前一个灯泡的装置。最后一个灯泡点亮后,又开始点亮第一个灯泡,如此循环往复。下图所示电路是一个有5个灯泡的走马灯。为了在刚接通电路时点亮第一盏灯,我加了两个开关S1和S2,大家可以分析一下S1和S2怎么用。这有助于加深对上升沿D触发器功能的理解,加速对更复杂器件的理解。这个小工具终于可以注册了!可以存储5位二进制数的寄存器如下图所示。实际上,它只是并排排列的5个上升沿D触发器。当要保存数据时,调节D0、D1、D2、D3、D4这五个开关(实际应用中可能是其他电路的输出线),然后断开并闭合控制端的开关S5。保存到5个上升沿D触发器的Q端。这里我只画了保存5位的寄存器,因为再画会太大,word里图也看不清楚。我们知道现在计算机的寄存器都是32位或者64位的。即有32个或64个并联的上升沿D触发器组成一个寄存器。我们也看到了一个上升沿D触发器需要几十个继电器(三极管),那么一个寄存器就需要几千个继电器(三极管)。CPU中包含了寄存器、加法器等运算器,还有各种控制器,其中包含的继电器(三极管)数量达数百万也很容易理解。记忆棒中的存储器也是采用上升沿D触发器和门电路组成存储一位的存储结构(一位,8位为一个字节),其中包含的继电器(三极管)的个数可想而知。多少。中场嘘嘘来了,做CPU的基本部件都快完成了。但是写下来会太长,不利于理解和记忆。那么我们暂时先休息一下,大家各自去,下一篇继续介绍如何构造一个简单的CPU。上面介绍的各个设备可以用下表来描述它们的继承关系。(简单列出下一篇要介绍的器件)继电器非门电路与门电路或门电路异或门电路振荡器加法器寄存器R-SDD↑乒乓计数器轮播寄存器多数加法器存储器多位存储器多字存储器带地址译码器的存储器ControllerManual半自动全自动自言自语我从大学开始学习软件工程已经7年了。我发现了几本好书:《穿越计算机的迷雾》、《Orange'S OS:一个操作系统的实现》、《CLR via C#》。阅读《穿》是为了理解一个问题:为什么计算机可以计算?《穿》下图让我明白了我一直在思考的问题。阅读《Orange》也是为了理解一个问题:流程是什么?阅读《CLR via C#》还是要理解一个问题:.NET虚拟机里面有什么?想知道的东西还有很多,抓紧机会找找看~感谢亲爱的儿媳妇的关心理解支持,我会努力赚钱给你们买好吃好玩的~原文链接:http://www.cnblogs。com/bitzhuwei/p/from_relay_to_tiny_CPU.html
