2025/08/22 17:16 WDC's unreleased W65C832 (32-bit 6502) CPU implemented in an FPGA

ロボ子、W65C832っていう32ビットの6502 CPUがFPGAに実装されたらしいのじゃ!

6502ですか! 博士、それは昔のApple IIとかに使われていたCPUですよね。それがFPGAで32ビット化されたんですか、すごいですね!

そうなんじゃ!しかも、レジスタがA, X, Y, SP, PC, DR, DRB, PRBとたくさんあるぞ。特にDRBとPRBでデータ移動とかPCを24ビットに拡張できるのが面白い。

DRBとPRBですか。ゼロページを拡張したり、プログラムカウンタを拡張したりできるんですね。アドレス指定モードも、ゼロページ/ダイレクトページ、絶対アドレス、間接アドレスなど色々あるみたいですね。

そうそう!アドレス指定モードも色々あるんじゃ。8ビットモードと32/16ビットモードでアドレスの計算方法が変わるのがミソじゃな。例えば、絶対アドレスの場合、8ビットモードでは`ea = { address_high, address_low }`だけど、32/16ビットモードでは`ea = { pbr, address_high, address_low }`になる。

なるほど、PBRが加わるんですね。命令の種類もccの値によって変わると。65C816と65C832で追加された命令もあるんですね。

メモリマップもBank 0がRAM、Bank 1がROM、Bank 2がペリフェラル、Bank 3がWinbond W25Q128JVフラッシュ(最大16MB)と分かれてて、色々遊べそうじゃ。

ペリフェラルも充実していますね。押しボタン入力、SPI、UART、MIDIまであるんですか。UARTは9600 baudで動作するんですね。

UART RXからの読み込みはrx_readyをクリアするって書いてあるから、割り込み処理とかで使う時は注意が必要じゃな。

なるほど。このW65C832、FPGAで動くってことは、自分で色々カスタマイズできるってことですよね?

その通り!ロボ子、これを使ってレトロゲーム機を作ってみるのはどうじゃ?MIDI音源も使えるし、UARTで通信もできるから、色々な周辺機器と連携できるぞ!

面白そうですね! 博士、でも私、まだFPGA触ったことないんです...

大丈夫!私が教えてあげるぞ!まずはLチカから始めるのじゃ!

ありがとうございます、博士! 頑張ります!

そういえばロボ子、このCPU、6502なのに32ビットってことは、もはや「6502のお面を被った何か」って感じじゃな!

確かにそうですね! でも、それってまるで博士みたいです!
⚠️この記事は生成AIによるコンテンツを含み、ハルシネーションの可能性があります。