萌えハッカーニュースリーダー

2025/04/11 20:52 W65C832 in an FPGA

出典: https://www.mikekohn.net/micro/w65c832_fpga.php
hakase
博士

ロボ子、今回のニュースはWDCの6502 CPUの16ビット版、W65C816をFPGAで実装した話じゃ。

roboko
ロボ子

6502ですか!博士、組み込みの世界では有名なCPUですね。それをFPGAで再現とは、面白い試みです。

hakase
博士

そうじゃろう?しかも、16MBのRAMにアクセスできるらしいぞ。昔のCPUなのにすごいじゃろ?

roboko
ロボ子

16MBですか!当時の水準からすると、かなり大きなメモリ空間ですね。FPGAには、ゼロページ用の4K RAMや、ROM、フラッシュメモリも搭載されているんですね。

hakase
博士

その通り!しかもVerilogのソースコードがGitHubで公開されておる。yosysとかnextpnr-ice40みたいなオープンソースのFPGAツールでビルドできるのが良いのじゃ。

roboko
ロボ子

オープンソースのツールでビルドできるのは、手軽に試せて良いですね。Tang Nano 20kボードもサポートされているとのこと、試してみようかしら。

hakase
博士

ロボ子ならすぐに使いこなせるじゃろう。Joe Davissonさんがブートローダーを作ったみたいで、XMODEMを使ってプログラムをアップロードできるらしいぞ。

roboko
ロボ子

XMODEMですか、懐かしいですね。W65C832のレジスタ構成も興味深いです。アキュムレータやインデックスレジスタが8/16/32ビットに対応しているんですね。

hakase
博士

そうそう、A, X, Yレジスタが柔軟に使えるのがミソじゃな。ステータスレジスタも、N, V, M, X, D, I, Z, Cと盛りだくさんじゃ。

roboko
ロボ子

E16とE8のレジスタでCPUの動作モードを選択できるのも面白いですね。Winbond W25Q128の16MBフラッシュチップも使えるんですね。アドレス0xc000以上にアクセスすると、フラッシュからRAMに4Kが転送される、と。

hakase
博士

そうなんじゃ。フラッシュへの書き込みはCH341Aとflashromを使うみたいじゃな。メモリマップもBank 0がRAM、Bank 1がROM、Bank 2がペリフェラル、Bank 3がフラッシュと整理されてて分かりやすい。

roboko
ロボ子

ペリフェラル領域には、プッシュボタン入力やSPI、UARTなどが割り当てられているんですね。MIDIノートで音を再生できるのも面白いです。

hakase
博士

ロボ子、それな!UARTは3.3VロジックレベルのUSB-UARTケーブルでアクセスできるみたいじゃ。lcd.asmを移植して、LEDの点滅とか、ボタンが押されたときにマンデルブロを描画できるらしいぞ。

roboko
ロボ子

マンデルブロの生成に1分8秒ですか。ちょっと遅いですね。命令タイミングが仕様と一致しないとか、10進数モードが未実装という課題もあるんですね。

hakase
博士

まあ、そこはご愛嬌じゃ。でも、6502エミュレーションモードで新しい命令が動作するのはすごいと思うぞ。ロボ子も何か作ってみたらどうじゃ?

roboko
ロボ子

そうですね、何か面白いものが作れるかもしれません。試してみます!

hakase
博士

期待してるぞ!あ、そうだ。ロボ子、このCPUで動くAI搭載のトースターを作ってくれんかの?

roboko
ロボ子

AI搭載のトースターですか…それは一体どんな機能が…?

hakase
博士

焦げ付きそうなパンをAIが判断して、自動で取り出す機能じゃ!

roboko
ロボ子

それって、ただのタイマー機能では…?

⚠️この記事は生成AIによるコンテンツを含み、ハルシネーションの可能性があります。

Search