ハードウェア記述言語
デジタル回路の構成や動作を、プログラムのような文字で記述するための言語。記述した内容を論理合成して、FPGAやLSIの回路を作る。VHDLとVerilog HDLが代表。
イマシルちゃんの解説
電子回路は、昔は、部品と配線を一つひとつ図に描いて設計していたんだ。
でも、今のチップには何十億個ものトランジスタが入っているから、とても手で描ききれないよね。
ハードウェア記述言語は、「こういう動きをする回路がほしい」って文字で書くための言葉なんだ。
書いたものを道具に通すと、自動で実際の回路の設計図にしてくれる。
しかも、FPGAっていうチップなら、その場で書き込んで回路として動かせるんだよ!
より深い解説
定義
ハードウェア記述言語(HDL:Hardware Description Language)は、論理回路の構造や動作を、テキストで記述するための言語である。記述は、シミュレーションで動作を確認した後、論理合成ツールで、論理ゲートとその接続(ネットリスト)に変換され、FPGAやASIC(特定用途向けのLSI)として実現される。
代表的な言語
| 言語 | 特徴 |
|---|---|
| VHDL | 米国国防総省の主導で開発された。IEEE 1076。記述が厳密で冗長 |
| Verilog HDL | C言語に似た文法で、簡潔に書ける。IEEE 1364 |
| SystemVerilog | Verilog HDLを拡張し、検証の機能を大幅に強化したもの。IEEE 1800 |
プログラム言語との違い
| ソフトウェアのプログラム言語 | ハードウェア記述言語 | |
|---|---|---|
| 実行のされ方 | 命令が順番に実行される | 記述した回路が同時に(並列に)動作する |
| 結果 | CPUで実行される命令の列 | 回路(ゲートと配線) |
| 時間の概念 | 基本的にない | クロックや信号の遅延を扱う |
FPGA
FPGA(Field Programmable Gate Array)は、製造した後で、利用者が回路の構成を書き換えられるLSIである。HDLで記述した回路を論理合成し、FPGAに書き込むことで、専用のハードウェアとして動作させられる。
| FPGA | ASIC | |
|---|---|---|
| 回路の変更 | 何度でも書き換えられる | 製造後は変更できない |
| 開発期間・初期費用 | 短い・小さい | 長い・大きい |
| 量産時の単価、性能、消費電力 | 不利 | 有利 |
FPGAは、試作、少量生産の製品、ネットワーク機器の高速なパケット処理、AIの推論の高速化などに使われる。
設計言語の区別
| 言語 | 用途 |
|---|---|
| VHDL、Verilog HDL | 論理合成してFPGAで動作させるハードウェア論理の記述に使う、ハードウェア記述言語 |
| SystemC | ハードウェアとソフトウェアの協調設計に使う、C++を基にしたシステムレベル記述言語 |
| SysML | システムの設計と検証のための、UMLを拡張したモデリング言語 |
| MathML | Webページに数式を表示するための、XMLのマークアップ言語 |