2007-02-25

"C言語による組込みプログラミング スタートブック" 鳥海佳孝 著

著者とは飲み仲間である。とアル中ハイマーが勝手に思っているだけかもしれない。
以前、行付けのバーで生涯飲めないような高級なお酒をご馳走になったことがある。お返しをせねばなるまいと思いつつ甲斐性がないのでなかなか実行できないのである。
W杯の話になると互いに熱くなる。現地へも行かれているようだ。本書の著者紹介には4大会連続出場中とある。
日韓大会では"FINAL 2002-6-30 YOKOHAMA"が刻印されたヒップフラスコをプレゼントして頂いた。アル中ハイマーは時々これに酒を入れてニヤニヤしている。
個人で独立して活動されている点においては親しみを感じるのだが到底及ばない。セミナーでも活躍されており、こういう方々の地道な努力が本当の意味で社会を支えているのだろう。
本書のおかげで、たまには仕事関係の記事を書いてみる気になるのである。ちなみに、おいらの本職はちょいと味のあるボケた詐欺師である。ゆえに、いつも詐欺に会うのである。

組込み系というとマイコン制御を思い出すが、本書はソフトウェア技術者のためにHDLの知識無しでも回路設計ができる例を紹介している。
Cベースによる設計環境ではC++の"System C"が有名であるが、本書では手軽さでC言語の"Impulse C"を題材にしている。
C言語では逐次処理を記述していくが、ハードウェアでは個々の素子が並列に動作する点が大きく違う。よって、HDLでは並列動作を記述することは当り前であるが、ソフトウェアではこの点を表現する方法が難しい。
Impulse Cではハードウェアの動作を表現できるco_*関数を用意しているので、この使い方を紹介している。開発手順は、C言語で書いたプログラムを動作合成によりHDLに落とす点が追加されるだけで、後は論理合成、配置配線と設計手順は通常のハードウェア設計と同じである。本書にもあるが、動作合成ツールの性能により回路の出来が決まり、現状では回路効率は圧倒的にHDLが優位にある。

かつて、回路図ベースで設計していた時代に、HDLが登場してソフトウェア化が進もうとした。しかし、プログラムが書ければ回路が実現できるものでもない。今日では、回路の知識とプログラムの知識の両方が必要となった。
それでもプログラム記述の方が抽象化できて圧倒的に効率が良い。なによりも検証環境を構築しやすい点が最大の利点であろう。ターゲットモジュールはもちろん、周辺部分をソフトウェアでモデル化できることはとてもありがたいのである。
こうしてアル中ハイマーは、ジョブを積み上げて夜の社交場へと消えていく。そして、酒場からsshする。その日の酒の量はログの量で決まるのである。

おいらは、回路設計を請け負うことがあるが、周辺装置のモデル化や期待値モデルの作成において、C言語だろうがHDLだろうが言語依存で考えたくない。本音は貧乏なので高価なツールなど買えないのである。手段は顧客の要望次第であるが、極力、言語依存、ツール依存を避けるため、ファイルでI/Fするという原始的な手段を取ることが多い。よって、画像処理など大規模な検証パターンを要する検証環境では、大きなファイルが多く存在してしまうなど、つまらないことを気にしなければならないのである。

個人的にはプログラム経験のある人であれば、HDLを覚えるのはそう難しいことだとは思わない。と言ってもハードウェアの知識は必要である。しかし、アルゴリズム検討で作成したコードをそのまま回路に実現できれば、こんなうれしいことはない。そのためには動作合成ツールの性能にかかっている。かつてマシン性能が上がって数々のソフトウェアが実現できるようになったように、素子性能や集積度の向上により、時代が解決してくれるのかもしれない。おいらは、HDLなんて中間ファイルを生成しなくなったら使う気になるのである。ついでに、回路図を滅ぼしたように、HDLを滅ぼしてほしいのである。その前にアル中ハイマーが滅びるのは自明である。

こういうセミナーを受講すると貧乏人には辛いが、本書で受講した気になれるのは幸せな領域へ導いてくれる。また、非常に丁寧に記載されているものと思われる。アル中ハイマーのような酔っ払いにでも理解できるからである。
正確には理解できたような気がする。これが重要なのである。気持ちええのである。どうせアル中ハイマーには万物は何一つ悟れないということを悟っているのである。

0 コメント:

コメントを投稿