Show HN:我们作为大二电子工程学生构建了一个8位CPU

Hacker News Top 工具

摘要

一个完全由分立逻辑门构建的8位哈佛架构CPU,使用Logisim-Evolution设计,提供开源文件和文档。由大二电子工程学生创建。

大家好!我和朋友们一起用Logisim从零开始实现了一个8位CPU。该系统的控制单元没有使用通用的微码ROM或任何形式的RAM。它完全由离散逻辑门构建,并对系统进行编码以运行不同的程序。<p>主要特点:<br>自定义16指令哈佛ISA,8位固定格式,4个通用寄存器<p>完全由AND/OR门逻辑矩阵构建的硬连线控制单元<p>双相时钟消除竞争条件<p>引导控制单元通过ROM到RAM传输进行冷启动<p>提前退出条件分支,在条件不满足时最多节省25%的周期<p>包含版本控制的完整设计规格文档<p>由于这是我们第一次进行这样的团队合作,并且是全新的尝试,我们采用了基于RISC的系统,从指令存储器中获取8位指令,其中4位翻译为指令,最后两位用于源寄存器和目标寄存器。<br>系统中共有4个寄存器,两个存储单元:数据SRAM和指令SRAM,系统遵循哈佛架构。<p>设计上也有不足之处,毕竟这是我们第一次设计这样的系统,而且是完全硬连线的。<p>为了解决冷启动问题,我们还提供了一个引导加载程序,它将临时ROM的内容复制到指令RAM中,然后将控制权交给CPU。<p>我们还实现了条件分支以及提前退出分支,只检查零标志或进位标志,如果条件不满足,则程序计数器递增,不会浪费周期。<p>此外,我们还创建了包含版本控制的完整文档,描述了每个必要部分,假设读者具备相关知识。<p>请查看:<a href="https://github.com/c0rRupT9/STEPLA-1" rel="nofollow">https://github.com/c0rRupT9/STEPLA-1</a><p>对于未来的发展,我想使用FPGA实现一个RISC CPU,并将其连接到实际的DRAM。我们还以5美元的价格出售完整的规格文档和Logisim文件,以资助我们的热情:<br><a href="https://tcfdiq.gumroad.com/l/zyyux" rel="nofollow">https://tcfdiq.gumroad.com/l/zyyux</a><br>谢谢!
查看原文
查看缓存全文

缓存时间: 2026/06/18 02:45

c0rRupT9/STEPLA-1

来源:https://github.com/c0rRupT9/STEPLA-1

STEPLA-1 8位硬连线CPU

一个完整的8位哈佛架构CPU,使用Logisim-Evolution设计和仿真,完全由单个逻辑门构建至门级。

版本: 2.4.2
状态: 开发中


STEPLA-1 是什么?

STEPLA-1 是一个功能完整的8位CPU,其所有组件(寄存器、译码器、ALU、控制单元)均由单个74系列逻辑门构建而成。没有黑盒组件。每个信号路径都可见、可追踪且有文档说明。

与基于EEPROM的设计不同,STEPLA-1 采用完全硬连线的控制单元——一个门级的AND/OR矩阵,其中每个控制信号都是一个物理门,其输入可用万用表测量。这使得该机器具有微码设计所无法企及的透明度。


主要特性

架构

  • 8位哈佛架构
  • 4位操作码空间,16条指令
  • 4个通用寄存器(RA-RD)
  • 独立的指令RAM和数据RAM(各256字节)
  • 引导控制单元(BCU),用于冷启动ROM到RAM的传输

控制单元

  • 完全硬连线、受PLA启发的门矩阵
  • 层次化解码:操作码译码器 + 步进译码器 + AND矩阵
  • 无EEPROM、无微码——纯组合逻辑
  • 每个控制信号均可追溯到单个门

性能

  • 可变周期指令:3到5个时钟周期
  • 提前退出条件分支(延迟减少25%)
  • 同步加载到一的复位(相比v2.3效率提升33%)
  • 计算IPC:0.200-0.333,加权平均0.263
  • 目标时钟:物理面包板上4 MHz
  • 有效吞吐量:目标频率下约1 MIPS

指令集

操作码指令周期描述
0x0NOP3无操作
0x1HLT3停止执行
0x2ADD5寄存器相加
0x3SUB5寄存器相减
0x4MOV3寄存器到寄存器
0x5MOVI4加载立即数
0x6STRD4存储到数据RAM
0x7OUT3输出寄存器
0x8JMP4无条件跳转
0x9JZ3/5若为零则跳转
0xAJC3/5若有进位则跳转
0xBLDIM5加载立即地址
0xCLDD4从数据RAM加载
0xDGETPC3获取程序计数器
0xEJP3跳转到寄存器
0xFSTIM5存储立即地址

STEPLA-1 的与众不同之处

大多数教育性CPU项目采用以下两种方法之一:

  • EEPROM微码(Ben Eater的SAP-1):实现简单,但操作不透明
  • HDL仿真(VHDL/Verilog):功能强大,但与物理现实脱节

STEPLA-1 选择第三条路:离散门仿真,可直接对应物理组件。Logisim中的每个门都对应一个可在电子市场买到的真实74系列IC。仿真即原理图。

与SAP-1对比:

特性SAP-1STEPLA-1
指令数516
寄存器数2(固定用途)4(通用)
RAM16字节256字节
控制单元EEPROM微码硬连线门
条件跳转JZ、JC(可提前退出)
引导加载器硬件BCU
目标时钟~1 MHz4 MHz
有效吞吐量~0.17 MIPS~1 MIPS

仓库结构

STEPLA-1/ ├── simulation/ │ ├── STEPLA-1.circ # 主Logisim-Evolution文件 │ ├── control_unit.circ # 控制单元子电路 │ ├── register_file.circ # 寄存器选择子电路 │ └── BCU.circ # 引导控制单元 ├── programs/ │ ├── fibonacci.asm # 斐波那契数列演示 │ └── counter.asm # 基本计数器程序 ├── docs/ │ └── STEPLA-1_Spec_v2.4.2.pdf # 完整规格说明 └── README.md


快速开始

需求

  • Logisim-Evolution (https://github.com/logisim-evolution/logisim-evolution) v3.8.0 或更高版本

运行仿真

  1. 克隆此仓库
  2. 在Logisim-Evolution中打开 simulations/8bitcomp.circ
  3. programs/fibonacci.asm 加载到ROM中
  4. 将开关拨至1并按下复位按钮
  5. 以所需频率运行时钟

加载程序

程序通过引导控制单元自动加载。仿真启动时,BCU将指令ROM内容复制到指令RAM,然后将控制权交给CPU。BCU操作详情见规格说明第8节。


文档

完整43页规格说明涵盖:

  • 控制单元理论与PLA架构
  • 完整ISA及编码规则
  • 每条指令的T状态微操作序列
  • 时钟相位同步与双边沿设计
  • BCU引导协议与T0空状态
  • 针对物理面包板构建的信号调理
  • 使用真实组件数据手册的时序分析
  • 已知限制与v3.0路线图

📄 [阅读完整规格说明](/STEPLA-1 Control Unit Design Specifictation Manual v2.4.2.pdf)


物理构建

STEPLA-1 设计用于使用74HCT系列逻辑进行物理构建:

关键组件:

  • 逻辑:74HCT08、74HCT32、74HCT14、74HCT86
  • 寄存器:74HCT377、74HCT175、74HCT74
  • 译码:74HCT154、74HCT138、74HCT139
  • 计数器:74HCT163
  • ALU:74HCT283(×2 级联)
  • 存储器:AS6C62256 SRAM、AT28C64B EEPROM
  • 总线:74HCT244、74HCT245

目标时钟速度:4 MHz(经时序分析验证,关键路径101ns,4 MHz下半个周期预算125ns)


路线图

v2.5.0(计划中)

  • 溢出标志(VF)和负数标志(NF)
  • 有符号算术支持
  • JV和JN条件跳转指令
  • 使用真实组件模型的Proteus ISIS仿真

v3.0.0(计划中)

  • 16位指令字
  • 16个通用寄存器文件
  • 硬件堆栈(PUSH/POP/CALL/RET)
  • 双异步控制单元
  • 预取缓冲器,逼近1.0 CPI

致谢

本项目基于以下人士的工作:

  • Ben Eater —— 他的8位面包板计算机系列展示了CPU设计可以完全透明
  • Leon Nicolas —— 他在Logisim中级联RAM的实现提供了结构洞见,促成了STEPLA-1的硬连线控制矩阵
  • Albert Paul Malvino —— 《数字计算机电子学》
  • Patterson and Hennessy —— 《计算机组成与设计》
  • Charles Petzold —— 《编码:隐匿在计算机软硬件背后的语言》

贡献

欢迎贡献。特别感兴趣的领域:

  • 物理面包板构建文档
  • 附加汇编程序
  • 汇编器实现
  • Proteus仿真移植
  • v3.0架构讨论

请在提交大型更改前先提出Issue。


许可证

本项目开源。 MIT许可证


相似文章

构建 TD4 4 位 CPU

Hacker News Top

本文详细介绍了基于《如何构建 CPU》一书及开源 PCB 设计,亲自动手组装并测试 TD4 4 位 CPU 的过程。