是否可以用面包板和基本的电子元件制造一台简单的计算机?例如,以这种方式构造科学计算器是否可行?
是否可以用面包板和基本的电子元件制造一台简单的计算机?例如,以这种方式构造科学计算器是否可行?
Answers:
我不同意将微控制器放置在试验板上的做法等同于在试验板上构建计算机。除了I / O(例如键盘和显示器)外,微控制器本身就是一台完整的计算机。只需将其放在面包板上并连接几根电线就可以了,而且只需十分钟即可完成。
当OP问到“是否有可能完全用面包板和基本电子元件制造一台简单的计算机?”时,我认为基本电子元件的含义更像是这样:
现在,这是一台由基本组件构建的面包板上的计算机(好几个面包板)。它的描述在这里。它由十几种74LS00系列IC组成。(我不认为我们要一直回到晶体管;最初的PDP-8只是小冰箱的大小)。
就科学计算器而言,如果您构建了如上所示的通用计算机,则可以将其编程为科学计算器。仅使用逻辑集成电路(而不是计算机)来构造科学的计算器将非常困难。诸如此类的所有计算器制造商(Ti,HP等)都使用了特殊的大型IC。这是一个使用早期4位计算器IC 的家用计算器。
我会同意,如果要使计算机尽快启动并运行,那么使用微控制器是必经之路。如果要真正了解计算机的内部工作原理,那么用基本的IC构建一个是正确的方法。
这不仅是可能的,而且我实际上已经做到了:请参阅https://www.vttoth.com/CMS/projects/47
这是一块面包板背面的接线图:
当然,这完全取决于哪些组件符合“基本”条件。就我而言,基本组件是74 ...系列TTL芯片,大约有一百个。要完全用晶体管来构建计算机,那将是太压倒性的了。
另外,我的4位计算机的功能实际上还不够强大,无法用作科学计算器,这主要是由于内存的限制(256个4位半字节)。但是,也许可以使用分页机制来扩展地址空间并不是很困难,并且肯定已经足够4096个nybble(12位地址),65536个nybble(16位地址)。
是的,这是可能的,但是要想配备科学的计算器,您只需要几个面包板,这取决于您认为基本元件的方式:将晶体管称为基本元件还是触发器,EEPROM或您可以从旧冰箱中焊出的东西。
这里有一些很好的答案,但我只想指出一件事,人们通常不会考虑。从计算设备的历史来看,用树皮和钉子构建计算机的困难不是CPU还是ALU。主要问题是记忆力。因为要使整个存储程序概念正常工作,您需要大量的代码。您可以通过几个触发器和与非门来制造CPU。例如,对于具有特定限制的电力电子应用,我曾经设计一个微处理器,该微处理器仅使用69个触发器(4个16位寄存器,4个标志和1个状态寄存器位,表示FETCH / EXECUTE)。它在硅片上实现,人们编写在其上运行的软件。这很简单,并且适合功率晶体管的漏极触点大小。但是存储任何有用程序所需的内存要大得多。
早期,内存是设计的起点。您可以像早期电话交换中那样使用双稳态继电器。您可以使用真空管或晶体管制作触发器。通常,CPU的寄存器是通过这种方式实现的。但是对于程序和数据存储,使用了纸带,磁带,旋转磁盘或旋转鼓。甚至是电子设备上不断接收和转发的钢丝上的声波。您能想到的任何事情都可以在合理的时间内以合理的成本保留一些位。阿波罗(Apollo)轨道器和月球着陆器计算机使用了缠绕成绳子的线圈芯存储器。所有这些都需要不同的接口设备,并且对CPU访问这些类型的存储器的需求产生巨大影响。半导体存储器才真正出现在1970年代,最终消除了这种复杂性。但是话又说回来,现代动态RAM也不是那么容易。
再者,还有必须为计算机设计输入输出设备的奇妙之处。几个灯泡适合某些应用,但是如果您需要文本输入/输出或什至更复杂的东西,您将再次面临更多的困难。打卡机,打印机和纸质终端在当时是一项巨大的业务。1978年推出的VT100文本模式视频终端的内存和处理能力比您的科学计算器面包板计算机要强得多。
可以,但是复杂性和尺寸取决于您所说的基本电子组件。ALU和定序器逻辑有点复杂,但是可行。内存很简单,但是基本模式必须重复很多次(想想一千次)。
除了硬件之外,您还需要在其上运行的软件。粗略估计,对于中等复杂的CPU(经典的16位指令8位数据级别),您的软件工作量将与硬件工作量相当。(对于更简单的CPU,您将需要更多的软件投入。)如何将软件加载到计算机中?
寻找(和解决)错误将是一件有趣的事情。我建议您开始在VHDL中编写并在模拟器上运行,这比一堆芯片和电线要容易得多。
我的两个学生在大约1年的时间里用一些基本软件(包括GCC后端端口)创建了一个16位CPU,从VHDL和C代码开始进行仿真。ALU使用74181芯片,内存是静态RAM,并且使用atMega在PC和计算机之间进行接口。该计算机部分位于无焊面包屑上,部分位于PCB(8个16位寄存器)上。(这两个不是普通学生!)
对的,这是可能的。但是您需要一个微控制器来进行数学计算。 这是一个示例项目。它使用AVR微控制器和16×2 LCD显示屏。