嬉しくてVerilogHDLのソースコードを公開してしまう(あくまでも習作です。間違いがあっても責任取れませんのでよろしく)。moduleUARTのコードを入れる。言うことを聞かない(4/2/2010)練習課題の次のテーマのUARTである。仕様は、端末からのキーボード入力をエコーバックして端末に戻し、リターンキーを押すと、7セグLEDがカウントアップするというものである。余裕があれば、UARTから送られてきたASCIIコードを7セグLEDに16進表示させたい。UARTのソースコードは、色々な雑誌にサンプルとして載っている。VerilogHDLでは、デザインウェーブマガジン誌2008年10月号のものが、わかりやすかったので、このソースを拝借することにする。これ以外では、インターフェース誌2009年9月号、デジタルデザインテクノロジ2号にも出ている。別ファイルを起こし、サブモジュールとして作っていく。大した量ではないのでWebからダウンロードしないで手入力で入れてしまう。サブモジュールの練習をしてあったおかげで、接続も慣れてきて、UARTを入れたプログラムの上位レベルの論理合成はNoErrorとなった。設定したピンの初期値が不定と言ったWarningなど)、そのままコンフィギュレーションまで進む。さあ、ファームが出来た。ハードウエアの準備をする。TTL-UARTは、例によって秋月のUSB-UARTモジュールを活用する。ブレッドボードに載せてジャンパーで接続する。新しいブレッドボードを増やさなければならない。これまでのPCMプレーヤーのテストベンチの横を間借りする。しながら、ターミナルソフトを立ち上げ、テストを開始した。祈る気持ちでPCのターミナルのキーボードを打つ。リターンキーでカウントアップもしない。LEDを見ると、おお、何やら16進表示が出ている。受信はちゃんと動いているようだ。1を入れて31、jをいれて6A、素晴らしい。問題なくASCIIコードが出ている。皮肉なことに、つけたしで入れた機能が最初に動いた。タクトスイッチを押す。ない数字が表示され、押していると数字がくるくると動きっぱなしになる。最初、クロックでalwaysをまわしていたのを、UARTを入れる際、キー入力の立ち上がりでalwaysをまわすようにした。UART入力)beginというステートメントだ。この条件だと、always節内の処理は、キー入力が一回されたときのみ、動くはずなのだが、実際には、キーを押している間中、廻りっぱなしである。何か大きな勘違いをしているのかもしれない。UARTの方は送信が動いていない。ターミナルに文字が戻ってこない。ソースを調べて送信リクエストのビットを上げていないことがわかり、このビットを上げると、今度は立て続けに同じコードを送り続けて止めるタイミングがわからない。やれやれ難しいものである。同時に色々なモジュールが一斉に動いているものを制御するのは大変だ。この日はこれで時間切れ。UARTが無事動いた(4/3/2010)久しぶりに電子工作に熱中している。マイコンをやっていますと言うと、何とか電子工作として理解してもらえるが、FPGAとなるともう誰も知っている人がいない。理解されない孤独な道を突き進んでいるという疎外感と、自分の趣味も遂に現代の電子技術の最先端まで来たか(まあ、まだ、ほんの入り口ですが)という誇らしい気持ちが入り混じって、このところ気分が安定しない。この3日間はFPGAのコーディングに没頭していた。UARTと7セグLEDを使った練習プログラムは、所期の機能を実現した。キーボードを叩けば、そのまま文字が端末に表示され、リターンキーを押せば、カウンターが1つづつ増えていく。人から頂いたソースなので前ほどではないが、それでも嬉しい。スイッチを押すタイミングでしか動かないはずのalwaysの解析はあきらめて、クロックを使った前の方式に戻したら、スイッチは何事もなく確実に1つづつカウントするようになった。前のコードの解析はまたあとでやろう。UARTの送信が出来ない原因は、ここに書くのも恥ずかしい、変数の定義漏れだった。サブモジュールとの接続は慣れたとはいえ、wireとregの使い分けが難しい。それに親(top)モジュールで使わない変数は、親で定義しないでもつながるときがある。警告メッセージにはでていたのだろうが、他のメッセージの中で見落としたようだ。トップモジュールで、受信側と送信側をそれぞれ、wireで定義し、assignで接続したら、送信データは無事、ターミナルに戻ってきた。UARTがつながった。キーボードの入力文字が端末に表示されるだけで、何かディバイスが急に身近に感じられるというのも不思議なものだ。これでFPGAの開発は一段と楽になる。秋月電子のホームページを久しぶりに覗いたら、あの高速SRAMの在庫が戻っていた。アイテムラボにはこのSRAM用の変換基板を発注してある。次の第二ステップの準備は進んでいる。次の難関、外付けメモリの接続が待っている。デジタル液晶インターフェース実装(2010.09.28)コメントすみません。2009年ではなくて、2008年10月号でした。FPGAの話題が続いてアクセスが急減していたのですが、読んでいただいていたのですね。ありがとうございました。興味があるので、わかりやすかったと書かれている、デザインウェーブマガジン誌2009年10月号を買ってこようとおもったのですが、そもそも、デザインウェーブマガジンにこの号は無かった気がするのですが...。間違いだったらすみません。19時17分コメントを書く名前:メールアドレス:(ウェブ上には掲載しません)アドレス(URL):この情報を登録するコメントは記事投稿者が公開するまで表示されません。外付けSRAMをFPGAにつなぐ。