基于 FPGA 的 SNK NeoGeo 模拟项目介绍

版权申诉
0 下载量 187 浏览量 更新于2024-11-20 收藏 1.94MB ZIP 举报
资源摘要信息:"SNK NeoGeo 硬件定义的模拟项目 fpga simulation logic arcade verilog" 该资源主要涉及对SNK公司生产的NeoGeo街机硬件系统的FPGA模拟项目。项目使用Verilog语言编写,旨在通过FPGA技术重现NeoGeo街机的硬件逻辑和行为。该项目涵盖了多个方面的设计,包括CPU、内存、ROMs、锁存器芯片以及外设的模拟。 重要知识点包括: 1. **墨盒型号(MVS)**:MVS(Multi-Video System)是NeoGeo街机系统中的一种型号。在这个模拟项目中,通过将CH1和PROG板连接到盒式模型中,模拟了MVS的行为。 2. **mvs_cart.v**:这个文件定义了MVS卡带的行为,包括对CH1和PROG板的连接逻辑。 3. **prog_board.v**:该文件描述了MVS盒模型PROG板的逻辑,包括与V ROMs和P ROM的接口。 4. **rom_p1.v 和 rom_v2.v**:这些文件定义了声音ROM的内容,其中rom_p1.v是声音程序ROM,rom_v2.v是声音数据ROM。 5. **cha_board.v**:该文件描述了MVS卡式盒型号CHA板的逻辑,包括C ROM、S ROM和M ROM的接口。 6. **rom_c1.v 和 rom_c2.v**:这些文件定义了Sprite图形ROM的内容,通常用于存储游戏中的动画和精灵数据。 7. **rom_s1.v**:此文件是修复图形ROM,包含了游戏中需要的修复图像数据。 8. **rom_m1.v**:该文件定义了Z80处理器的程序ROM,用于存储Z80处理器执行的游戏音频代码。 9. **neo_273.v**:这是模拟SNK锁存芯片的文件,可能用于处理不同硬件组件之间的信号锁存。 10. **zmc.v**:此文件描述了Z80内存控制器的行为,负责管理Z80处理器的内存访问。 11. **memcard.v**:这个文件模拟了存储卡,用于保存用户数据或游戏进度。 12. **rom_l0.v**:此文件定义了收缩查找表(L0)ROM的内容,可能用于高速缓存或其他优化用途。 13. **rom_sp.v**:这个文件模拟了系统程序(SP-S2 BIOS)ROM,包含了NeoGeo街机的引导程序和基本输入输出系统代码。 14. **rom_sfix.v**:此文件定义了嵌入式修复图形(SFIX)ROM的内容,通常用于存储游戏的固定图像数据。 15. **cpu_68k.v 和 tg68k.vhd**:这些文件提供了68K处理器的封装器实现,TG68K是68K处理器的一种开源实现。在NeoGeo模拟项目中,这些文件模拟了68K处理器的行为,负责执行游戏的大部分代码。 16. **FPGA开发**:该项目标签表明其使用FPGA(现场可编程门阵列)技术进行硬件级别的模拟。FPGA允许开发者在物理硬件上实现复杂的数字电路设计,以实现高效、灵活的硬件仿真。 17. **Verilog语言**:该项目使用Verilog语言编写,Verilog是一种硬件描述语言(HDL),广泛用于数字电路设计和FPGA项目的开发。 18. **NeoGeoFPGA-sim-master**:这是项目的压缩包文件名称,表明该项目的主分支包含了多个用于模拟NeoGeo硬件的Verilog文件。 综上所述,该资源提供了一个完整的NeoGeo街机硬件模拟方案,涵盖了从CPU到内存、从声音到图形ROM的各个方面,使用FPGA技术与Verilog语言,以期达到高性能的硬件级模拟效果。这对于想要了解或开发街机复刻项目、或者学习数字电路设计和FPGA应用的研究者和技术爱好者来说,是一个宝贵的资源。