ハードウェア記述言語
ハードウェア記述言語は、ハードウェアの動作仕様を記述するのに使う、文字で記述するコンピュータ言語で、電子回路の経時的振舞いと空間的構造を表現する。プログラミング言語と比較すると、ハードウェア記述言語の構文(シンタックス)や意味(セマンティックス)は、ハードウェアの基本的属性である時間や並行性を記述するものであり、全く異なるものである。回路の接続関係(コンポーネントと等電位点の列挙)を記述する言語として、ネットリストがある。
ハードウェア記述言語の処理系には、記述にもとづきネットリストやプログラマブルロジックデバイスのコンフィグレーションを生成する合成系と、記述に直接もとづきシミュレーションを行うシミュレータがある。シミュレータによってハードウェア設計者は実装前にハードウェアの動作を確認できる。シミュレータには、シミュレーションのレベルとして、ディジタルな事象としてのみ扱うものと、アナログな事象まで詳細に扱うものがある。アナログまで扱うように最初から設計された言語もあれば、拡張として追加された言語もある。
C++のようなプログラミング言語に実装した内部DSL(internal/embedded DSL)として実装されているSystemCのようなハードウェア記述言語もある。
プログラミング言語と同様に様々な言語がある。現在は米国防総省が開発に携わったAdaの流れを汲むVHDL、ゲートウェイ・デザイン・オートメーション社(Gateway Design Automation)が開発したVerilog HDLの標準化がまずIEEEで進み、その後IECの国際規格にもなり、広く普及している。
HDCaml(Objective Camlベース)
Hardware Join Java
HHDL Haskell 内部DSL
HML
Hydra(Haskellベース)
JHDL(Javaベース)
Lava(Haskell 内部DSL)(Chalmers Lava、Xilinx Lava、Kansas Lava、York Lava)
Lola(教育用の素朴な言語)
MyHDL(Python 内部DSL)
NSL SFLを拡張および一部モディファイ
PALASM(プログラマブル・アレイ・ロジック(英語版)向け)
Ruby -(※こちらはオブジェクト指向スクリプト言語Rubyとは無関係)
RHDL -(※こちらはオブジェクト指向スクリプト言語Rubyベース)
SFL
SystemC - C++ 内部DSL
ImpulseC - C言語のハードウェア記述言語