文章摘要
486Tang项目成功将ao486 MiSTer PC核心移植到Sipeed Tang Console 138K FPGA上,首次在非Altera FPGA上运行x86核心。项目主要调整包括将主内存从DDR3切换为SDRAM,以适应486时代的硬件环境,并将DDR3专用于帧缓冲区。通过将SDRAM逻辑运行在系统时钟的两倍频率,解决了SDRAM 16位宽与ao486 32位访问需求之间的不匹配问题。
文章总结
标题:486Tang - 信用卡大小的FPGA板上的486处理器
主要内容:
作者在GitHub上发布了486Tang v0.1版本,这是一个将ao486 MiSTer PC核心移植到Sipeed Tang Console 138K FPGA的项目。这是ao486首次被移植到非Altera的FPGA上。文章详细介绍了项目的架构、系统启动过程以及性能优化。
486Tang架构: 1. 主内存切换为SDRAM:MiSTer核心使用DDR3作为主内存,而486Tang使用SDRAM,并将DDR3用于帧缓冲区。通过将SDRAM逻辑运行在系统时钟的两倍频率上,实现了每个CPU周期读取或写入32位数据。 2. SD卡支持的IDE:由于Tang没有高速的MCU到FPGA接口,作者将磁盘存储移到SD卡中,并让FPGA直接访问。 3. 引导加载模块:PC启动需要BIOS、VGA BIOS、CMOS设置和IDE IDENTIFY数据,这些都被存储在SD卡的前128KB中,由一个小型引导加载模块读取到主内存和IDE中。
系统启动: 作者使用Verilator进行子系统和全系统模拟,以解决调试硬件时的困难。通过模拟,作者能够在几分钟内达到DOS提示符,并通过简单的工具钩子捕捉有用的进度和错误信号。
性能优化:
1. 重置树和扇出减少:手动复制重置和高扇出网络,减少了延迟。
2. 指令获取优化:通过减少对consume_count的依赖,提高了Fmax。
3. TLB优化:将TLB从全关联转换为4路组关联,简化了结构并提高了速度。
反思: 作者通过这次移植,深刻体会到了x86架构的复杂性,并对比了x86与ARM架构的差异。尽管x86的兼容性带来了巨大的软件基础,但其复杂性也带来了挑战。相比之下,ARM架构的简单性和性能表现令人耳目一新。
总结: 486Tang v0.1版本在性能上有了显著提升,达到了486SX-20的水平。作者感谢读者的关注,并期待下一次的更新。
评论总结
关于DDR和SDRAM的讨论:
- 评论1指出DDR代表双倍数据速率,并认为在SDRAM上实现基本DDR是一个不错的方法。
- "Doesn’t DDR just stand for Double-Data-Rate? So you implemented basic DDR on top is sdram."
- 评论5提到SDRAM并不适合486时代,FPM或EDO才是更符合时代的选择。
- "Neither are a fit, SDRAM was a Pentium/K-6 standard (PC66); the DIMMs ran faster than a non-OC'ed 486 bus."
- 评论1指出DDR代表双倍数据速率,并认为在SDRAM上实现基本DDR是一个不错的方法。
对486处理器的怀念与疑问:
- 评论3表达了对Intel Quark芯片的怀念,认为它们小巧、便宜且性能足够。
- "I miss Intel's Quark chips. Tiny, cheap, and Pentium enough."
- 评论4询问是否有486兼容的小型CPU可以嵌入项目,而不是使用FPGA。
- "Are there any 486-compatible small CPUs that could be embedded into a project instead of using an FPGA?"
- 评论3表达了对Intel Quark芯片的怀念,认为它们小巧、便宜且性能足够。
对项目可行性和应用的疑问:
- 评论7质疑该项目是否能运行《半条命2》。
- "so this will run half life 2 if I'm not mistaken?"
- 评论8对“信用卡大小”的描述提出疑问,认为厚度也应与信用卡相当。
- "When you say 'credit-card-sized,' I expect the thickness to be as thin as a credit card, too."
- 评论7质疑该项目是否能运行《半条命2》。
对现代技术应用于复古设备的想象:
- 评论9提出希望看到古代技术在现代工艺上的应用,并探讨了运行DOOM的最小SOC设计。
- "I would love to see ancient tech fabbed out on modern processes. What's the smallest SOC you could design to run DOOM?"
- 评论9提出希望看到古代技术在现代工艺上的应用,并探讨了运行DOOM的最小SOC设计。
项目链接与背景信息:
- 评论6提供了项目制造商的页面链接,供读者了解更多信息。
- "I hadn't heard of this board before, here's a link to a page on the manufacturer's site."
- 评论6提供了项目制造商的页面链接,供读者了解更多信息。
总结:评论主要围绕DDR与SDRAM的适用性、486处理器的怀念与替代方案、项目的可行性以及现代技术应用于复古设备的想象展开。部分评论提供了项目背景信息,帮助读者更好地理解项目内容。