2023年6月3日土曜日

iCE40LMボードで遊ぶ

ZynqBerryが壊れてしまったのでこれで遊ぶ気が失せた。。
ブログ再開早々ズッコケてしまったが、気を取り直して次にいこうと思う。

8年位前に自作のLatticeのiCE40LM搭載ボードにブロック崩しゲームを実装して遊んだが、点数を表示していなかったので、今回はその機能を追加しようと思う。このボードで使用したFPGAはボールピッチ0.35mmの25pin BGA品で形状としては当時世界最小クラスのFPGAだった。 当時、一辺が2mmにも満たないこのデバイスで何か作ってみたい思ってデバイスを入手したのだが、このボールピッチだとそれ用の基板は容易に作れないのでデバイスを裏返して各ボールに手半田でリード線を半田付けした。手付でワイヤーボンディングしたような感じだ。
3セット実装し、その内2セットを配線して完成させた。 
このボードにCAN busのIPを実装してZyboと通信させてみたり、Breakout(ブロック崩し)ゲームを実装して遊んだ。ゲームはビープ音も出していたのだが、点数の表示機能は実装しなかった。 で、今回これに点数表示機能を追加しようと言うわけだ。
そこで、iCE40の開発ツールであるiCEcube2の最新版(iCEcube2.2020.12)のLinux版をLattice社のサイトからダウンロードしてインストールした。インストールは問題なく出来たのだが、起動してみるとlibpng-1.2.7が見つからないと言って起動しなかった。今使用している開発マシンはLinux Mint 20.2 Umaなのだが、このOSのlibpngのバージョンは16.37だ。仕方がないので16.37を1.2.7としてシンボリックリンクを貼った。そしたらiCEcube2は起動したのだが、何故かツールバーのアイコン関係が表示されかった。うーむ、必ず何かしら問題が起きるな。
メニューバーからの操作だけでも開発作業は出来そうなのだが、やっぱちゃんとしていないと気持ち悪いのでWindows版をダウンロードしてWine(Windows emulator)環境でインストールしてみたらこっちは正常に起動した。なので、開発はWine環境で行うことにした。
それから、実機(ボード)は長期間放置してあったので動くかどうか確認する必要がある。前述の通り、2セット配線して可動状態にしてあったのだが、今日確認したら1枚は壊れていた。オシロスコープで波形観測すると起動時のconfig ROMからのコンフィグデータの読み出しは行われておりdone信号も1になっているのだが何故か動作しない。 PCからCRAMへ直接ダウンロードしたらVerify Errorになったがその前のデバイス検出には成功しているようなので、はんだ付けした配線が切れているとかでは無いようだ。 もう1枚の方は無事動作した。よかった。よかった。
さて、デザインの方だが、スコアを表示するためには数字の図形情報をBRAMに持つ必要があるが現状のリソース使用率は以下のような状況なのでリソース的には実装は可能と考えている。


0 件のコメント:

コメントを投稿

自作CPUで遊ぶ 25

まだ制御ソフトが完成していないので今まではスピンドルを移動するために一々簡単なプログラムを書いて移動させていたのだが、非常に面倒なのでCNCペンダント的なものを作ることにした。 右側の縦に2つ並んでいるスイッチ...