ハードウェア記述言語
出典: フリー百科事典『ウィキペディア(Wikipedia)』
ハードウェア記述言語(ハードウェアきじゅつげんご)は、デジタル回路、特に集積回路を設計するためのコンピュータ言語の一種である。一般にはHDL (Hardware Description Language) と呼称される。
特定用途向け集積回路(ASIC)の開発や、PLD・FPGA上に展開される論理回路の設計に用いられる。ソフトウェアを記述する為のプログラミング言語に近い記述形態を持つが、その意味論は大きく異なる。
他の人工言語と同様に様々な言語があるが、現在は米国防総省が開発に携わったVHDL、Gateway Design Automation社(現ケイデンス・デザイン・システムズ社)が開発したVerilog HDLが広く利用されている。
目次 |
[編集] 基本的な使い方
HDLでは、一般にレジスタ・トランスファー・レベル(RTL)と呼ばれる抽象度でハードウェアを記述するのが主流である。このレベルでは演算器やレジスタとその間の信号伝達を用いてハードウェアを記述する。また、多くのHDLでは入れ子構造的に、ある回路のサブ回路に分けて設計する、あるいは既にある回路記述をサブ回路として利用することもでき、これによって設計の効率化と資産の再利用が行える。
RTLは論理回路の表現としては抽象的であるため、このままではハードウェアにする事はできない。その代わり、このレベルに適合したシミュレータを用いて、回路の論理的な動作を確認することができる(電気的特性などの再現は限られる)。ここで、回路の妥当性検証や性能見積もりを行う。
この後ゲート・レベル(論理回路が記述されるレベル)と呼ばれる抽象度の記述に展開する事で、集積回路を実現できる。この操作を論理合成と呼び、これを実行するためのツールを論理合成ツール と呼ぶ。
HDLの記述レベル
- アーキテクチャレベル - システムの機能(アルゴリズム)を記述
- ビヘイビア・レベル - 回路の動作を機能面から記述
- レジスタ・トランスファー・レベル - レジスタと演算器とその間の配線(接続)を記述
- ゲート・レベル - フリップフロップやゲート(not,and,or,xor)で回路図を表現
[編集] 周辺技術動向
[編集] システムレベル設計
当初、HDLは大規模集積回路のシミュレーションのみを目的に開発されたが、論理合成技術の開発によってHDLでの記述からの論理回路生成の自動化がなされた。そして現在、RTLでの設計より更に高い抽象度でのハードウェア設計を可能とする高位合成技術が開発されつつあり、既にいくつかのツールは市販されている。現在、一般に認知されている中でRTLの上位に位置するレベルは、ビヘイビア・レベル(ハードウェアの動作やアルゴリズムを記述するレベル)と呼ばれる。特にこのビヘイビア・レベルでの記述を対象とした高位合成を動作合成と呼ぶ。
このビヘイビア・レベルでは、ハードウェアをプログラミング言語によるソフトウェアの記述と殆ど同様のスタイルで記述することになる。ここから、ハードウェアとソフトウェアを同時に、区別なく設計・合成する技術の研究開発も進んでいる。(ハードウェア・ソフトウェア協調設計)
こうした高位合成技術、協調設計技術を総合してシステムレベル設計技術と呼び、この技術を用いて、ハードウェアとソフトウェアとを区別なく、ソフトウェアの記述と同等の抽象度でデジタルシステム全体を記述することをシステムレベル設計と呼ぶ。
このようなシステムレベル設計に用いられる言語として、C言語を拡張したSpecC言語, C++のテンプレートライブラリとして実現されたSystemC, Verilog HDLを拡張したSystemVerilogなどがある。特にSpecCやSystemCなど、C/C++をベースにした言語による設計をC言語設計と呼び、日本ではシステムレベル設計と言えばC言語設計を指すことが多い。
[編集] アナログ回路設計への拡張
HDLはデジタル回路を対象としているが、これを拡張してアナログ回路を記述できるようにする動きもある。主たる目的はアナログ回路、もしくはアナログ - デジタル混載回路のシミュレーションである。
これに該当する言語としてVerilog-AMSやVHDL AMSがある。