フラット表示 | 前のトピック | 次のトピック |
投稿者 | スレッド |
---|---|
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を作る衝動にかられたのだし。そうした夢を与える機会は大切にしたい。 |
フラット表示 | 前のトピック | 次のトピック |
投稿するにはまず登録を | |