Fipsy検証環境のブロック図をざっくり解説する

Fipsyの検証環境の構成をざっくりまとめておきたいと思う。ArduinoPythonソースコードの中身まで読み解き、本質的な部分まで調べたいところだが、気乗りしないのでとりあえずできたことを書いておく。ちなみに、Mocoの解説だとPythonが何をしているのかわかりにくく、だいぶ苦戦した。

ブロック図にするとこんな感じ。

f:id:MasterKoda:20190102131102j:plain
Fipsy検証環境_ブロック図

まず、.jedファイルというJEDECファイル形式でRTL(FPGAに書き込むソースコード)を出力する。JEDECファイルの文法は決まっているようで、if文などで書かれたRTLをFPGAに焼くための結線情報がわかる形式になっている(人間が見て理解できる)。

.jedが出力できたら、次に、USBにデータを載せるためにBinary形式=.binに直す。

こちらのページにPythonのセットアップ方法が書かれているため、基本的には指示に従えば良い。

とはいえ、何をしているのか私にはさっぱりわからなかった。最終的には、

python FileChooser.py

コマンドプロンプト上で叩いて、FileChooserというスクリプトを呼び出し、GUIに従ってファイル選択などを行っていく。時系列で細かく説明するには結構めんどいので、こちらの環境立ち上げメモも参照されたい。

masterkoda.hatenablog.com

私がかかった罠は、Pythonを実行するという一般常識がなかったことに起因していた。まさかWindowsコマンドプロンプトからPythonが起動できるとは。また、書き込めているかどうかわからず、うーうーしていたが、Fipsyのアドレスが読み込めるあたりまで行ければだいたい動いているのは間違いなさそうだ。つまづいたのは、検証のためにソースコードの一部をいじったからで、動かないソースコードを書き込めた照明ができた時点でつまづいていた。うっかり。

ざっくりではあるが、こんな感じのブロック構成になっている。気が向いたら、詳細を丁寧に解説したいと思う。気が向くのは、このFPGAを使って面白いことができることがわかってからだろう。。。流石にLUTs数が小さすぎて、もう少し大きいFPGAを選びたいところ。