(日々の記録)デジタルオシロを買った。(金)FPGAの外付けSRAMアクセス成功VerilogHDLに親しむ(4/24/2010)SRAMをアクセスするテストベンチのステートマシンの擬似コーディングを少しづつ、実際のVerilogHDLのコードに移していく。7セグLEDにも登場してもらって、SRAMへの蓄積バイト数を表示することにする。7セグLEDはあれから、また2つモジュールを増やして6ヶにした。しておくと、この7セグ基板はこのあとデジタルクロックに活用できる。VerilogHDLのドライバーも6ヶ用に改修する。コーディングに慣れてきて鼻歌が出る。UARTは、前のステップのコードをそのまま流用する。モジュールを別ファイルにしてあるので移植は簡単だ。今度は本格的なステートマシンである。HDLの開発にだいぶ慣れては来たが、まだregとwireの区別を完全に理解しているわけではない。トップモジュールで使わない変数は、いちいちあらたに定義しないでモジュール間でスルーできるはずなのだが、自信がない。それでもトップモジュール、top_sramは徐々に形をなして完成に近づいてきた。電子工作の醍醐味は、自分で考えたロジックやプログラムが実際に思ったとおりに動いたときである。コーディングしているときはこれで果たして動くのか不安でならないが(プログラムは書いたとおりにしか動かない)、デバッグをやりとげて実際に想定どおりの動きをしたときの喜びはなにものにも換えがたい(だから人のソースはわざと見ないようにしている)。プラモデルや、キットを組み立てるのも、それはそれで楽しいが、自分で設計図を引き、材料を揃えて、いちから作り上げた模型飛行機が実際に空を飛んだときの興奮とは比較にならないのと同じである。基板付録のついた雑誌を買ってしまった(4/25/2010)FPGAプロジェクトの第二ステップのコーディングがそろそろ完成かというところへ、思わぬ横槍が入った。気がつけば今日はInterFace誌(6月号)の発売日である。今月号は大物の基板の付録がついている。クロック144Mhzの32ビットプロセッサー、ルネサスSH-2A(SH7262)の基板である。プロセッサーという触れ込みだ。これだけのスペックのCPU基板が¥2000台で手に入る機会はこれを逃せばまずないだろう。破格の値段というのに弱いのが当研究所の所長の特徴である。近くの書店で手に入れた。使うあてのない基板がまた増えてしまった。去年のデジタルデザインテクノロジー誌(2009年春号)のLatticeのFPGA基板も手に入れたまま、まだ何もいじっていないと言うのに。これだけの性能のプロセッサーは、そろそろアマチュアでは簡単に使いこなせないレベルにある。何らかのリアルタイムOSを入れないと恐らく満足に動かないはずだ。基板はともかく、雑誌の記事の内容はもともとあまり期待していなかったが、今度も正直言ってがっかりした。あいかわらず、サンプルはLED点滅しかない。このCPUを生かせる解説はないものだろうか。World」、それが無理でも、全体のシステムの初期化(メモリ、クロック、タイマー、I/O機能)の解説でもあれば、先につながるのだが、LCDコントローラー、USBコントローラーなどペリフェラルの紹介だけでは、読者は期待だけ持たされ、目隠しされて海に放り出されるようなものである。このLEDの点滅のプログラムも、見れば6つの初期化プログラム、5つのヘッダーファイルをincludeして始めて動く。このへんを系統だって分かり易く説明するのは確かに大変だが、これではLEDを点滅させた後、殆どの読者は手も足も出ないだろう。熟練者なら何をしなければならないかがわかっているから、ソースコードや、Webを頼りに少しづつ環境を整えていけるだろうが、慣れない人には8ビットマイコン程度ならともかく、32ビットの大規模、複雑なソフト環境の中を先に進むことはまず絶対不可能である。電子工作はひとつひとつの手順に難しいものがあるわけではない。その要素が膨大に多いだけである。こんどの記事で、始めては見たが電子工作は難しいと離れていく人がまた増えるのではないかと心配する。それにLEDを点滅させただけで、有り余る機能を持ちながら、そのあと何も使われずに部品箱に放り込まれてしまうプロセッサーが不憫でならない。雑誌の記事にあまり多くを期待しすぎるのかもしれない。なんといってもこのスペックの基板が付録についてくる良い時代に生まれたことを感謝しよう。ステートマシンは動いたがSRAMがアクセス出来ていない(4/28/2010)それはともかく、FPGAプロジェクトである。UARTからの入力をSRAMに蓄積するテストベンチのコーディングが完成した。ステートマシンに慣れてきたので、ステートを2つ追加して、入力の前にDOSプロンプトのような>を出し、入力か出力かがわかるようにする。SRAMのアクセスに今ひとつ自信がないが、UARTのやりとりはだいぶ慣れてきた。HDLができたので、アドレス18本、データ8本、7セグの制御線14本のピンアサインを慎重に行う。このピンアサインは機種を決めるとちゃんと既に設定したピンや、Vccなど信号線でないピンは設定できないようになっている。始め、入力を受け付けないので開発環境のバグかと少しあせったが、向こうの方が賢かった。この開発環境を少し馬鹿にしていた自分を恥じる。