そういえば今更ながら 202411500 を実機 (Tang Nano 20K) で動かしてみた。こいつにはデフォルトで私が作ったものとは比べ物にならない本格的な RISC-V コアが書き込まれていて、初心者のやる気をガン削いでくる。火を入れてから数日間放置した1。
その精神的障壁を乗り越え、自分のしょぼい RV32I コアを書き込む。実機特有の厄介なバグに悩まされることを覚悟していたが、あっさり動いて拍子抜けする。 FPGA のフリップフロップは原則として 0 初期化されるそうで、ハードウェアやシンセサイザも「シミュレータでは動くが実機では動かない」という状態を最小化するように作られているのかもしれない。
整数カウンタの各ビットを LED に割り当ててみる。ふと見ると、まわりのものがろうそくの炎に照らされたかのようにゆらいでいる。考えてみると 2^n 周期の矩形波が足し合わされるので、フーリエ変換した成分の大きさはホワイトノイズに近い。位相がランダムではないし、ろうそくのゆらぎはピンクノイズに近いと思うが、非常にざっくりと似たような感じに見えるのは分からなくはない。
デフォルトのファームウェアで初期不良の確認が取れたので急ぐ必要がなくなった、というのが本当のところ。ちなみにこのボードは USB - Serial, JTAG 用に BL616 というチップを載せている。このチップは RISC-V CPU を内蔵していて、 320 MHz とかで動くらしい。もはや茶番である。