O HAI THIS BLOG PURPZIEZ 2 B UZED AZ MAH PLESIOUS MEM. :)

2008/08/20

I CAN HAS VHDL? #1

VHDLについて、テキトーに書いてみるべす、第一回。

時は1980年代半ば、ディジタル回路の開発、検証、シミュレーションが困難になっていた最中、米国国防総省の主導でVHSIC == very high speed integrated circuit、つまり「蝶速い集積回路」を開発するに定義されたのがVHDLの原点じゃった。だから、VHDL == VHSIC hardware description language、蝶意訳すると、「ものごっつ速い集積回路のハードウェアを記述する言語」。言語的にはAdaの上位セットで、signalと呼ばれるmessage passingの為の仕組みがある。主な目的としては、実行可能な俺様仕様の記述、そして色んなトコが提供している記述された仕様を俺様仕様と混ぜ混ぜしてもシミュレーション可能にする事だったのだった。

出たての頃は、高級な、つまり普通のコンピュータプログラムに近いbehavioralなシミュレーションだけしか出来なかった。今日、synthesis若しくはsynthesizeと呼ばれる「モデリングされたブツから回路への変換」である論理合成は、ターゲットデバイスのライブラリからゲートもしくはブロックを手でムニョヘニョしていた訳ですな。unixyでhackyな人ならやらないであろうこんな手動変換は"ひゅーまんえらー"が入り込む訳で、当然、事前にシミュレーションしているモデルでもパーになりうる。1990年代に世に出始めたVHDL論理合成ツールは、VHDLで記述されたコードをターゲットとなるデバイスのネットリストに変換するブツである。

件のVHDL論理合成ツールの登場は、ソフトウェアな人ではなく、むしろハードウェアな人がVHDLでコーディングをする事態を招いたのだった。どう言う事かと言うと、旧いハードウェアな人は回路図的な手法でVHDLなコーディングをする訳で、出来上がるコードと言うコードは悉くdataflow的だったりする。レジスタ、マルチプレクサ、加算器、状態機械の様な機能が限定されたモノが文脈的な繋がり無く細分化され、その組み合わせでデザイン全体が出来ていた。この1990年代的なスタイルは比較的小規模な回路なら今でも問題にならないし、機能的にお粗末だった時代の合成ツールはその程度のモノしか扱えなかった事もdataflow的なデザインが跳梁跋扈する産褥になっていた。

しーかし、高級言語のコンパイラが下手なhand optimizeよりも最適化が巧くなってきた様に、お粗末だったVHDL論理合成ツールも"ぱわーあっぷ"している。具体的には、言語仕様として改訂を重ねているVHDL標準の内、今や大部分の機能が合成可能な状況にある。寧ろ、そう言う流れに追いついていないVHDL論理合成ツールは既に市場から淘汰されつつあると言って良いと思ふ。

合成ツール側が進化している事実を前に、VHDLなコードを書く"ひゅーまん"は如何にあるべきか?「dataflow的なコードの方がbackward comatibleじゃんよ!!1」と言う建前を宣って、貧相な機能しか持たない前時代の合成ツールにしがみついて生きていくのか?VHDL標準の多くの機能がサポートされている"もだん"な論理合成ツールに、1990年代的なスタイルでコーディングされたコードを喰わせるだけなのか?これから更に規模が増大する事間違い無しのディジタル回路の開発現場で、dataflow的なスタイルでコーディングしていく輩は生き残れるのか?

次回に続く、多分。 :P
# めんどいので英語無し。 :P

0 件のコメント: