从零开始学习计算机组成原理
前言
计算机相关专业可能都会学过计算机组成原理,但仅仅是理论上的学习,当学习完这门课程的时候是否萌发过自己动手实现一台自己的计算机,或者当动手时又会有种迷茫的感觉,不知道从什么地方下手。
当我决定从最基本的,也是我们平时耳熟能闻的元器件“与门”、“或门”以及“非门”来构建我们的计算机时,发现在时序电路部分还是存在无法解释的一些问题,还是迷茫为什么会这样的问题,于是我决定在降低一个层次,基本也是最低层次的起点——晶体管,也就是我们平时所说的二极管、三极管了。通过使用三极管来构建“与门”、“或门”和“非门”这些元器件,然后在使用我们构建的元器件构建加法器、寄存器等。
或许有人还希望降低一个层次来构造计算机,那么套用雷总的话“这TM的,绝对是来捣乱的”。再降低就涉及到PNP或者NPN结这些高中化学学过的电子与空穴相关知识,已经脱离我们问题本身。所以从晶体管开始讲解是我认为已经是最低层次的起点了。
接下来就要开始我们的 学习道路,我们学习的宗旨是“追本溯源”,就是不仅仅是会用或者是构建出来就行,我们要探究的是它的本质,知道它是如何构建出来的。
提示:本人也是一个初学的、探索者,出现问题希望可以指出并多多包涵。
一、使用的工具
在开始学习的过程中将会使用Logisim工具进行仿真。logisim下载地址链接:https://pan.baidu.com/s/15vDmm3U_47PI41X1aIx8zA 提取码:4e02
提示: logisim安装环境需要配置Java环境,相信Java环境配置对于这个专业的人已不是问题,当然如果网上看完相关教程也不会,那么可以留言我帮你解决。logisim的使用也可以网上看一下相关教程,很简单,不到一个小时就可以上手,这就就不再讲解。
二、三极管简单理解
三极管深入学习或许很复杂,但是我们只是简单理解其工作原理,知道电流如何流通的就行。所以不要还没开始就直接放弃,让我们现在来简单理解一下其电流的流向就好。
看这个造型,有没有和平时生活中最常用、最常见的东西联系起来。没错,那就是——“水龙头”。看上面的图,“B”就是那个开关,“C”就是那个进水口,“E”就是那个出水口。其中对于NPN型三极管是当B为高电平,也就是“1”的时候导通;PNP型三极管是B为低电平,也就是为“0”的时候导通。
声明: 这里就是一个形象比喻,不比较真。
三、三极管构建与门、或门、非门
在开始构建门电路的开始之前,你是否见过如图2.1 与或非门逻辑符号。接下来如果用三极管构造出来的门电路和你脑海中想象的不一样,发现我们构造出来的电路居然有电源,有接地。不要疑惑,毕竟没有电源驱使的元器件、那么它只是一堆零件。
图3.1 与或非门逻辑图
1.三极管构造与门
“与门”电路的真值表如下图所示:
用三极管构造的“与门”电路图如下所示:
图3.2 与门A、B两端都输入低电平,输出端输出低电平
图3.3 与门A端输入高电平 ,B端输入低电平,输出端输出低电平
图3.4 与门A端输入低电平 ,B端输入高电平,输出端输出低电平
图3.5 与门A,B两端都输入高电平 ,输出端输出高电平
图3.6 上图设计的电路封装与系统自带与门电路
2.三极管构造或门
“或门”电路的真值表如下图所示:
用三极管构造的“或门”电路图如下所示:
图3.7 或门A,B两端输入低电平,输出端输出低电平
图3.8 或门A端输入低电平,B两端输入高电平,输出端输出高电平
图3.9 或门A端输入高电平,B两端输入低电平,输出端输出高电平
图3.10 或门A,B两端输入高电平,输出端输出高电平
图3.11 上图设计的电路封装与系统自带或门电路
3.三极管构造非门
“非门”电路真值表如下图所示:
用三极管构造的“非门”电路图如下所示:
图3.12 非门A端输入低电平,输出端输出高电平
图3.13 非门A端输入高电平,输出端输出低电平
图3.14 上图设计的电路封装与系统自带非门电路
总结
从上图可以看出,我们平时使用的逻辑符号是对真实电路的一种抽象,我们重点关注的内容是它的逻辑,而不在乎它是否需要通电。至此,我们最基本的三个小模型已经构造好了,接下来的内容将是使用这三个最基本的模块来构建我们庞大的计算机帝国。
下一步我们将使用我们构建的“与门”、“或门”和“非门”来构建一些其他小模型,例如:与非门、或非门、异或门、异或非门等等。还是那个学习宗旨:我们不仅知道它怎么用,还要知道它的原理。虽然系统会自带这些模型,但是我们也要自己来构建一个我们自己的元器件。