やってみて覚える派としては、とにかく動くものが必要。ありがたいことに「FPGA電子工作スーパーキット」という基板付きのムックがCQ出版から出ているので、これを使うことにした。
実はこの付録の基板だけではなにもできなくて、MAX10が乗ったFB基板には各種コネクタ(ピンヘッダ、ソケット)が必要だし、書き込み(コンフィグレーション)を行うJB基板は文字どおり「基板」であって部品は実装されていない。これらについては「マルツさんの紹介ページ」を参照してもらいたい。アタシもこの追加部品セットを購入した。ページの先頭は完成基板の紹介なので、めげずに下までスクロールしていこう。でもハンダ付けに自信がないか手間を省きたい人は、素直に完成基板を買った方がいい。(^^)
アタシは仕事がらいろんな部品を持っているので、外付けのボードなんか用意したぐらいにして楽しんでいる。写真はその一例。
ムックのサンプルにLチカがあったが、基板上のフルカラーLEDが七色に点滅するというだけでは面白くない。Verilog HDLの勉強のつもりで8桁のLEDを制御できるようにしてみた。オリジナルにちょっと手を加えただけだが、この程度だとまず失敗はない上に意外と学べることもある。
たとえばフルカラーLEDは3bitで制御しているんだが、外付けの8桁LEDは8bit制御。ここに持っていくためにトーシローのおっかなびっくりをやる。まずはフルカラーLEDとおなじ3bitの情報を引き出して3個だけの点滅をやってみた。これで新しいwireの追加やら、それを外に持っていくための接続の仕組みを復習。やはり本に書いてあるとおりにやっただけでは実感が湧かない。自分で考えたものを追加することで、あぁ、なるほど(ぽん)と腹に落ちるというものだ。
つぎはこれを8bitに拡張。ここで専用のreg変数を定義してもいいんだが、ふと思い立ってオリジナルがフルカラーLEDを点灯させるために定義した[2:0]のreg変数を[7:0]に拡張してみた。フルカラーLEDの方は最下位から3bitを使えばいいので、ひとつの8bitのreg変数が両方で共有できることになる。
この辺り、実際に基板上でやっていたら配線がやり直しになる。けっこうな手間がかかるのでめげてしまうが、FPGAならばVerilog HDLのソースを書き換えるだけだ。それでいてMAX10の内部では新しい回路ができていくというのだから嬉しい。なんだか不思議な感覚だが、これがFPGAというものなのだろう。
ところで写真の左上端に小さな青い部品が見えると思う。これはコンデンサだ。Lチカをやっているうちに、こいつの周期をうんと短くしてやれば音を出せるじゃないかと思いついた(若いころと違って思いつくのが遅い^^;)。さっそくVerilog HDLにサウンド用の記述を追加し、周波数計で期待どおりの周波数がでていることを確認した。
なんだか楽しくなってきたぞ。来週はいよいよ、この子にスタックの論理を教えるのだ。
------- *同日追記
それにしてもどうにもこのWindowsの汚いフォントには慣れない。
なんとかならんかとGoogle検索エンジンをぶん回していたらVirtualBoxにUbuntuを入れてAlteraの開発環境Quartus Primeを使っているという人の記事を見つけた。VirtualBoxを入れなくても、アタシのiMacにはVMWare Fusionがある。試しにUbuntuデスクトップをインストールしてみているが、フォントが実に美しく(Windows10比)て嬉しくなった。
これでQuartus Primeが快適に動いてくれたらいいなぁ。