文章摘要
作者使用FPGA和低功耗NEC V20 CPU等现代技术复刻了1980年代的IBM XT个人电脑,目标是完美运行EGA版《猴岛小英雄1》,支持鼠标、硬盘写入和Adlib音效。项目选用兼容8088的低压CPU和1MB SRAM芯片,先设计硬件再开发软件。
文章总结
基于FPGA的IBM-PC-XT复刻项目
【项目背景】 一位技术爱好者通过结合复古硬件与现代技术,成功复刻了1980年代的IBM XT个人电脑。项目的主要目标是完美运行EGA版本的《猴岛小英雄1》,要求支持鼠标操作、可写入的硬盘存储以及Adlib音效。
【硬件设计】 1. 核心组件: - 采用低功耗NEC V20处理器(兼容Intel 8088) - 1MB SRAM芯片(CY62158EV30)提供640KB内存 - 搭载Lattice LFE5U-25F FPGA的icesugar-pro开发板
- 外围设备:
- 双PS/2接口(键盘+鼠标)
- 模拟硬盘的Micro SD卡槽
- 原装YM3014B数模转换器
- 压电扬声器(用于系统提示音)
- 复位开关和状态指示灯
【开发过程】 1. 总线控制器开发: - 设计状态机精确匹配8088总线时序 - 通过LED闪烁测试程序验证基础功能
存储系统实现:
- BIOS存储在FPGA块RAM中
- 视频内存采用双写入机制(同时写入视频RAM和系统SRAM)
- 开发SPI控制器实现SD卡硬盘模拟
输入设备解决方案:
- 创新性实现PS/2鼠标转串口协议
- 通过逻辑分析仪逆向工程鼠标通信协议
- 键盘采用标准PS/2协议直接支持
音频系统:
- 集成开源YM3812软核实现Adlib音效
- 开发专用模块转换YM3014 DAC所需的3:10浮点格式
- 保留原版压电扬声器用于磁盘操作音效
【项目成果】 - 成功运行XT BIOS并实现磁盘引导 - 支持CGA/EGA显示标准 - 通过USB-UART桥接实现文件传输 - 采用CNC加工亚克力面板完善外观
项目所有设计文件和源代码已开源在GitHub仓库:https://github.com/bit-hack/iceXt
(注:原文中关于开发工具选择、波形分析图示等细节内容已精简,保留了核心技术实现路径和关键创新点)
评论总结
评论总结:
怀旧情怀:
- 多位用户表达了对老式PC的怀念(评论1、3)
- "Wow. A lot of memories unlocked instantly"(评论1)
- "I love the hard drive sound emulation...important part of the nostalgic experience"(评论3)
技术细节讨论:
- 有用户指出标题存在误导性(评论2)
- "it's running on an 8088-compatible CPU...with the FPGA containing the display adapter"(评论2)
- 用户询问V20总线控制器的时序约束问题(评论7)
- "The 8088's multiclock cycles were always under specified"(评论7)
实用性质疑:
- 用户指出缺少许可证信息(评论4)
- "there's no license. Can't do a thing with this"(评论4)
- 用户询问功能性问题(评论5)
- "Can this run the DOS clone and do FFTs?"(评论5)
其他意见:
- 用户指出这是重复发布(评论6)
- 有用户提出对老硬盘连接器的期待(评论8)
- "waiting for some FPGA's based device...that can connect to my old hard drives"(评论8)