【点击上方“蓝字”关注DF Maker社区,一起成为技术面控】
本周我与大家分享的项目来自于。
从创建日志来看,这个项目从2023年底开始,一直持续更新到前两天。
一个耗时且有趣的项目。
立项的原因是,作者在学习了MITx的《计算结构》课程后,发现自己制作一个CPU并没有那么困难。
在掌握了电子学的基础知识和课程中介绍的概念后,我开始设计基于NMOS逻辑的RISC CPU。
课程中介绍的 beta CPU – 具有加载存储、32 位 RISC 架构。
为了节省空间、晶体管、少掉一点头发,作者决定将自己的CPU降低到16位。
注:MITx官网上对这门课程的描述是This的,范围很广。
相当于我们国内的数字电路和计算机组成原理课程。
B站有UP主负责处理。 有兴趣的可以看一下:【MIT公开课】6.004计算结构·2023年春季(完·中英文字幕·机器翻译)[1]
课程原文链接:[2]
如果它安装在墙上,它将占据一整面墙。
为了让整台电脑看起来更加复古,笔者特地在衣柜里搬出了一台旧的Apple II Plus来处理输入输出部分。
注:Apple II Plus 发布日期是 1979 年 6 月,距今已有 43 年历史了……
作者用钉板、原型板、晶体管、电阻器(主要是 SIP 和一些分立器件)、LED、一些 HP-5082 显示芯片、一些电致发光线和许多可爱的彩色跳线构建了这样的 CPU。
作者将整台计算机命名为——,目标是它能够执行简单的程序,并将计算过程可视化。
以下是作者的介绍:
将是一台功能齐全的计算机,其CPU完全由NMOS逻辑制成,使用大约5000()、电阻器和LED来显示逻辑。
HP-5082-7340 Hex 显示芯片将被战略性地添加来显示主要 CPU 组件输出的数字内容,尽管如果您读取二进制,LED 将提供相同的信息。
利用电致发光线可视化主要组件之间的逻辑路径。
CPU 的时钟频率将从最大速度(预计在数万赫兹范围内)下调至单步。 (补充:GHz=GHz)
由于其背后的主要驱动力是使其能够可视化计算过程,因此尽管采取了一些步骤(例如时钟树)来提高计算机的整体性能,但速度并不是最重要的。
CPU设计特点和主要部件
使用简单逻辑门实现的控制逻辑(无微代码或 ROM)
用于程序计数器、指令、常量、CPU 阶段和一些必要的状态标志的附加寄存器
用于寄存器之间操作的单字操作码
用于寄存器和 16 位常量之间操作的双字操作码
IRQ 和 RESET 处理(包括自动使用寄存器 R6 作为异常指针)
适用于所有 I/O 的直接内存访问 (DMA)。
记忆
为了能够执行更琐碎的程序,CPU将连接高速静态存储器RAM(2 x 32K)和ROM(2 x 32K)芯片。 此外,还创建了一个镜像只写“屏幕存储器”,也由(大约 5000 个)晶体管组成,提供 48 x 18 可寻址 LED 阵列。 内存地址将受到字边界的限制。 尝试寻址奇数内存位置会返回相应的偶数 16 位字。 由于没有可用的 16K SRAM 和 ROM 芯片,我将使用 32K 芯片,并将设计一个从 RAM 和 ROM 中选择 16K 存储体进行读取操作的存储系统。 可以随时写入全部 32K 字 () RAM。
输入输出
I/O 功能由作者使用在 1986 年 Apple II Plus 计算机上运行的定制软件和硬件来实现。 作为该项目的一部分,作者还设计了一个名为 BIAS(Apple 与 Apple 连接板)的定制外设卡,以及 Apple 上的软件,以提供键盘输入、屏幕输出以及长期数据存储和检索。 I/O 控制器将直接访问内存并在所有读写过程中停止 CPU。
还实现了 16 位通用输入和输出信号,镜像到固定的高内存位置。
结构
整个装置组装在一系列无焊面包板上。 每个主要组件(ALU、寄存器存储器、控制逻辑/程序计数器/状态寄存器和屏幕存储器)都布置在 10.16 厘米 x 5.08 厘米的钉板上。 每个钉板可包含 9×6 阵列 (54) 面包板,并根据需要为更小的电路留有空间。 四个钉板均安装在墙上,安装座下方留有放置 Apple II Plus 桌子的空间。
电源
功率需求在25w左右。 使用+5V电源,由8口USB供电(每个钉板一个)提供,非常方便。 电致发光线的电源是单独的(额外 5w)。
欣赏图片和视频:
简单的小游戏:
斐波那契数列计算:
计算圆周率:
参考
[1]
麻省理工学院公开课:
[2]
:
原文链接:
好了,今天的主题就讲到这里吧,不管如何,能帮到你我就很开心了,如果您觉得这篇文章写得不错,欢迎点赞和分享给身边的朋友。