ログイン
ユーザ名:

パスワード:


パスワード紛失

新規登録
Main Menu
Tweet
Facebook
Line
:-?
フラット表示 前のトピック | 次のトピック
投稿者 スレッド
webadm
投稿日時: 2006-3-21 23:10
Webmaster
登録日: 2004-11-7
居住地:
投稿: 3094
仕上げの感想
今回はHDLだけで万年時計のデザインをしてみたわけだが、3日もあればできてしまったのは驚きだ。若けれは夜を徹してやれば1日できるだろう。

さすがに回路図入力しようという気はさらさらなくなった。というのも回路図入力しようとするとHDLを使えばデザインツールがやってくれる論理ゲートのネットリストに落とす作業をある程度までは人力でやらないといけないからだ。

バイナリデコーダーやラッチとかはたいしたことないが、残りの組み合わせロジック部分が膨大になる。得にBCDのカウンターとか加算回路が必要だし、閏年判定とかに至っては真理値表が膨大になってしまう。その結果入力しなければならないゲート数も膨大に。それでも基礎力があればできないことはないだろう。でも回路図も膨大になって修正をするとなると時間がかかって大変だ。修正後に関係ない信号線どうしがくっついてしまっていないか導通確認の時間もばかにならない(信号線をダブルクリックすればつながっているすべての信号線がハイライト表示されるので面倒ではないが、回路図CAD特有の問題ではある)。

実際に回路図入力すると前にやった簡単なジャンケン判定の時も意図せずして違う信号線がショートしてたり予想もしないことがおきたので回路図入力は結構落とし穴がある。修正した時に配線が変なことになってしまうこともしばしば。おかしなシミュレーション結果が出るたびに結線状態を全チェックするはめに何度もなった。

HDLだともうほとんど真理値表やそれに相当する入力条件と出力の因果関係を決定した後の論理合成はデザインツールがやってくれる。なので回路図入力に比べてかなりの手抜きができる。反面どんな回路が合成されたかは謎でブラックボックス化するが。

そんなことを改めて確認したところで、よく「FPGAですか...回路図入力ならできますがHDLはちょっと...」とぼやく一応H/W設計畑の経歴を持つ働き盛りの技術者を目にしてずっと疑問に思っていたが、ようやく結論が出た。彼らは、(1)はなはだ怠慢である、(2)本当は独力設計した経験がない、(3)誰かが書いた回路図を元にデザインツールにインプットしたことはある、(4)今までは誰かが設計した回路のメンテナンスやテストばっかりやらされていた、のいずれかだろう。本当に回路図で設計した経験があるなら(1)が該当するとしか言えない。いずれにしてもそういう人を採用しないのが正解だ。

やはりFPGAの難しいところは、ある程度はFPGAが登場する以前のプリミティブなディジタル回路技術については一通り知識を持っている必要があるということだろう。あとは組み合わせ論理はすべからくNANDとNORのネットリストかROMテーブルで表すことができ、それにラッチを組み合わせればどんなディジタルシステムもできてしまうということ知っていればもう怖くはない。設計者はFPGAにマップされるネットリストの元になる情報を準備すればOKである。

それ以降はいかに完全な設計情報を事前に用意できるかどうかで後の作業(シミュレーション結果の確認)で生じる後戻りが少なくできる。人間なので見落としや検討不足、間違いや勘違いが伴いやすいので、結局はそうした自分の墓穴をひとつひとつ埋めていくことに残りの時間は費やされる。

今回万年時計の仕様を考える上で最初7セグメントLED表示器をつけるはずが信号ピンが足らなくてBCD出力にしてしまったのだが、あとから良く考えるとダイナミック点灯方式を使えば少ない出力ピン数で複数の7セグメントLED表示器を表示させることが可能だということを思いつき失敗したなと思った。そういえばどっかでダイナミック表示方式の回路図を見た覚えがあった。ダイナミック表示とは人間の目の残像時間を利用して同時期にはひとつしか点灯させないが、残存時間無いに複数の表示器を順番に点灯と消灯を繰り返していくことで人間の目には全部が表示されているように見えるというものである。

ここまでいくとやっぱり実際に実機を作ってみたくなる。

そういえば昔ミニコンピュータの時代の頃、カレンダークロック装置というものが別についていた。ミニコンピューターには今のPCのようにカレンダー時計ICが搭載されておらず、電源を入れ直すとシステムを構築した日付にリセットされてしまい、人間が日付を設定しなおす必要があった。組み込みシステムとかでは無人で動作しないといけないので、各社各様の自前のカレンダークロック装置を取り付けてソフトウェアで時刻合わせしていたのである。あれは確か99年までしか表示がなかったから2000年問題はどうしたのだろう、ミニコンのOSも99年までしか扱えなかったはずだ。そういうミニコンを作ってたメーカーは2000年以降どれも生き残っていないのはそれが原因かもしれない。

あと些細な点で、MAX+PLUS IIのシミュレーター結果でDFFとしたはずの出力がクロックの立ち上がり以外のところで変化しているのが気になった。DFFならクロックのエッジで入力を取り込みあとは変化しないのではなかったはずだ。まるで出力スルーラッチのような感じだ。どうやらそう考えるのがあたっているようである。BCDのビット繰り上がりが発生するときにCLKがHの状態でその繰り上がりの様子を示すように出力が変化している。CLKがLの状態では出力は変化していないのでそれで説明がつく。これは実際にそうなのかシミュレーション時だけの手抜きなのかは実機で動かしてみないとなんとも。

今回は実機でどれも動かしていないので動くとは思うが保証の限りではない。

とにかく今はデザインツールが登録するだけで無償で使えるので勉強するには良い機会だ。シミュレーションができるので実際に評価基板とか無くてもかなりのトレーニングは独学でできる。もちろんお金を払えば、短期間に水先案内人付きで使い方を教えてくれるコースもある。

雑誌に評価基板を付録でつけるひつようは無いという意見があるのはごもっともなことろ、シミュレーターがあれば勉強には十分な気もする。けれどもそれは年寄り的な発想であることも確か。やっぱり実物を目にするまでは潜在していた何かが目覚めることもないことも確かである。

尊敬するApple IIの設計者であるスティーブ・ウォズニアック氏も展示会で6502の無料サンプルを手にして初めてApple Iを作る衝動にかられたのだし。そうした夢を与える機会は大切にしたい。
フラット表示 前のトピック | 次のトピック

題名 投稿者 日時
   デザインのウォーミングアップ仕上げ webadm 2006-3-20 1:00
     仕上げた結果 webadm 2006-3-20 21:10
     » 仕上げの感想 webadm 2006-3-21 23:10
         7セグメントLEDデコーダー内蔵版もできた webadm 2006-3-22 22:05
           いよいよ製作開始と思ったら webadm 2006-4-2 2:14
             Max+plus IIでもFLEX10Kは使える webadm 2006-4-2 2:48
             先行手配した部品が届いた webadm 2006-4-9 1:01
               FPGAまわりの回路図作成にとりかかる webadm 2006-4-15 21:30
                 部品ライブラリから作らないといけない webadm 2006-4-15 23:38
                   あともう少し webadm 2006-4-19 0:31
                     部品を載せ忘れていた webadm 2006-4-21 2:01
                       図面完成 webadm 2006-4-22 9:32
                         FPGAのピンアサインではまる webadm 2006-4-23 21:01
                           いよいよ万年時計基板製作開始 webadm 2006-5-5 20:59
                             やっとLEDスイッチボード製作完了 webadm 2006-5-7 14:02
                               ダイナミック点灯テスト webadm 2006-5-8 11:25
                                 またしても原因はハンダ付け不良だった webadm 2006-5-9 2:00
                                   FPGAボードも組み上がった webadm 2006-5-12 12:41
                                     火入れしてみた結果 webadm 2006-5-13 2:49
                                       メタステーブルとかではなさそうな気がする webadm 2006-5-13 14:44
                                         条件付きでPassive Serialでのダウンロードは出来た webadm 2006-5-15 2:46
                                           誤動作の例 webadm 2006-5-15 4:25
                                             また一つの事実が明らかに webadm 2006-5-15 5:47
                                               やはり電源とグランドの引き回しが悪いのか webadm 2006-5-17 0:29
                                                 とりあえず万年時計としての動作確認 webadm 2006-5-17 0:49
                                                   自作FPGAボード挙動不審のまとめ webadm 2006-5-20 19:28
                                                     純正ByteBlaster IIだとJTAGが正常に使える時がある webadm 2006-5-20 20:17
                                                       更に驚くべき事実が発覚 webadm 2006-5-20 22:49
                                                         純正でも再現性が悪い事実 webadm 2006-5-20 23:27
                                                           とおもったら今度はまともになった webadm 2006-5-20 23:42
                                                             今度は魔法の手出現 webadm 2006-5-21 4:37
                                                               一転して問題は収束の方向へ向かう webadm 2006-5-21 5:11
                                                                 ぬか喜びだった webadm 2006-5-21 5:54
                                                                   Verilog HDLではまる webadm 2006-5-28 4:38
                                                                     まっさらなディレクトリから始めればVerilog HDLも問題なかった webadm 2006-5-28 19:25
                                                                       verilog HDL版の万年カレンダー時計 webadm 2006-5-30 20:34
                                                                         AHDLとVerilog HDLの比較 webadm 2006-5-31 12:50
                                                                           VHDLでもはまる webadm 2006-6-3 14:26
                                                                             Config ROMでの動作確認はどうしたものか webadm 2006-6-10 14:04
                                                                               15.974MHzのキンセキのオシレーターの謎 webadm 2006-6-11 13:35
                                                                                 Re: 15.974MHzのキンセキのオシレーターの謎 webadm 2006-6-11 15:02
                                                                                   BTTFごっこ webadm 2006-6-12 4:39
                                                                                     NICTのコンテスト webadm 2006-6-15 1:45
                                                                                       FPGAベースIPパケットフィルター webadm 2006-6-15 4:05
                                                                                         AHDLでフィルタリング判定論理書いてみた webadm 2006-6-15 10:15
                                                                                           EP1C6T144C6に入るみたいだ webadm 2006-6-15 18:18
                                                                                             少し工夫 webadm 2006-6-15 20:55
                                                                                               とどのつまりCAM(Content Adressable Memory)だな webadm 2006-6-16 0:59
                                                                                                 CACHEメモリでも良い webadm 2006-6-16 5:08
                                                                                                   とりあえず2wayなら webadm 2006-6-18 16:51

投稿するにはまず登録を
 
ページ変換(Google Translation)
サイト内検索