#目的
Tang-Nanoと言うボードが去年(2019)の終わりごろに売り出されていた。一年近く立ってからやっと気が付いた。
規模は1000LUT程度、xilinxのxc6lx9の1/10位かな。
これで何か実用的なものを作れないかな。
◆◆◆ そうだ、Basicの動くパソコンを作ろう ◆◆◆
Basicが動くのがパソコンって訳でもないし、
パソコン擬きだからって、実用的とも言えないけどもね。
#経緯
Tang-NanoでTD4何て言う、Toy-CPUは動かせた。でもロジック使用率は1/10程度。
もう少し実用的?なものを作れないかと、google様にお伺いを。
OLDパソコンって言っても常識的には、8080コアを入れるだけでアップアップじゃないのって思ったが、
「Light8080」なんてのが有るじゃありませんか。
僅かなLUTで構成出来て、Basic(altair 4K Basicらしい)も動作するなんて、素晴らしい。
仕掛けとしては、ロジックをマイクロコード化する事により、ロジックをシュリンクしている。
但し弊害として、動作速度の低下とROMエリアが別途必要となる。
でも動作速度低下は、8080が80MHzで動作すれば大丈夫だろう(何が)。
ROMについては、GW1NにはFlashが利用可能なので、リソースを圧迫しない。
主要スペック: LUT4 1152, Flip-Flop 864, BSRAM(bits) 72K, USER Flash(bits) 96K
こりゃ行けるぞと。
#シリアル通信
Basicの入出力にはシリアル通信を使うのが簡便。しかーし、
GW1N本体の所為では無いが、Tang-Nanoのシリアルは問題を抱えている。
通信に使用しているCH552Tは、そのままでは通信に使えない下記の致命傷が有る。
1.CH552Tのフォームウェアが通信に対応していない。
2.通信に使用するピンがConfigピンとバッティング。
解決策は有るが、下記の作業が必要となる。
「Tang NanoのFPGAとPC間でUART通信をする」
コストダウンの所為だろうが、敷居を高くしている事は否めない。ちと微妙。
※なんせCH552Tは安いものね、Driverの使用はグレーな気がするが。
上記の対策を行った「通信テストプログラム test_rs」をGithubに上げている。
入力をエコーバックするだけだが、まず通信テストを行ってほしい。(115200bps)
#Flash書き込み
FPGAの通常の動作確認はRAMへの書き込みだが、今回はFlashへの書き込みも必要となる。
Programer2の起動 -> SRAM ProgramをダブルクリックでDevice config... が表示される。
Access ModeをEnvedded...にし、OperationをEmbFlash Erase,Programに設定。
User Flash...を有効にし、File nameをいれてsaveすると、次回のProgramはFlashに書かれる。
※再度Device config...を表示すると、User Flash...は忘れているようなので要注意。
Flashへの書き込みには***.fiファイルが必要となるので、basicのbinをfi形式に変換している。
fi形式はFlashのダンプファイルから類推したが、多分合っているのだろう。
#Light8080
マイクロプログラムが正しく格納されていれば、一般のCPUコアと変わりはない。そこで、
まず、マイクロプログラムをRAM上に展開。
始めにリセットにより、マイクロプログラムが先頭から読まれることを確認する。
次にループするプログラムで、CPUとしての動作を確認する。
上手く言ったらマイクロプログラムを、Flashに追いやって、RAM領域を開ける。
※Flashの使い方がちと怪しい。動いているから問題は無いだろうが。
動作した「Tango-Nano 4KBASIC」をGithubに上げている。
この構成で、342LUTとなっている。LUTより最大8KBのRAMの方がネックかな。
それでも、Basicのプログラムエリアが4KB取れている。
残ったLUTにロジックを追加すれば、なんか計測装置が出来そうな。
※LCD.Displayを追加してみたが、スクロールなんかの処理が結構面倒で、
RAMを2KB,LUTを400も使ったので、之はお蔵入り。
#感想
以外に出来るもんだと感心。まあ、Light8080のおかげだろうが。
時間と知恵が有れば、Z80に拡張したいが、多分無理だろうな。
だだ、Tang-Nanoはライセンスの有り方が先行き不安なので、これ以上は利用しない予定。
値段安くて、コンパイル早いから、使いやすいんだけどもね。多分日本を相手にしていないのだろう。
アマチュアとしてはサポート無くても使える体制を望みたいものだ。まあ、販売元の自由だろうが。
なお、上記記載内容は全て無保証であり、各自の責任においてご利用願います。