开始使用 W65C832

主要观点:介绍基于 WDC 65C816 ISA 的W65C832 FPGA 核心,包括其设计初衷、演示程序、寄存器模式、汇编器、引导加载程序、ROM 和 RAM 模块、PLL 模块等方面。
关键信息

  • 基于 65C816 ISA 且有额外 32 位寄存器模式,最初用于 iceFUN iCE40 HX8K 板,包含多种外设模块。
  • 演示程序为在 java_grinder 上重现 Apple IIgs 演示中的 3D 立方体程序,通过添加 PLL 模块提高屏幕更新速度和 3D 效果。
  • 寄存器模式由四个标志组合设置,有不同的 65C02 仿真、65C816 仿真及 65C832 原生模式。
  • 编写了支持 W65C832 的 naken_asm 汇编器模块,需注意立即数的存储大小后缀。
  • 包含 USB 串口 XMODEM 引导加载程序,可单独覆盖。
  • 可通过修改相关模块增加 RAM 大小,利用 PLL 模块可将 iceFUN 板频率提高到至少 50 MHz,需注意 UART 等的相应修改。
    重要细节
  • 演示程序使用 6 Kb 帧缓冲区,每帧发送到 LCD,最初屏幕更新慢,添加 PLL 模块后改善。
  • 寄存器模式中不同模式的设置和切换方式,如通过 clc、xce 等指令。
  • 汇编器中的点后缀用于强制立即数存储大小,支持部分传统语法。
  • 引导加载程序避免重新编程整个核心,ROM 和 RAM 模块可根据需要修改大小。
  • PLL 模块修改相关文件和代码,包括添加 wire 定义、修改 always 块等,生成 pll.v 文件并复制到 src 目录,同时修改 UART 支持更高速度。
  • W65C832 设计复杂,占 iceFUN 逻辑单元的 60%,正在为 Tang Nano 20K 提供支持。
  • WDM opcode 目前触发 STATE_ERROR 禁用 CPU,但已解码可用于实现额外指令。
阅读 29
0 条评论