レジスタ転送レベル
一般に論理回路は次のような2つの部分に分けるようなモデル化ができる。1つは状態を持つ順序回路によるレジスタの集まりであり、もう1つは状態を持たない組合せ論理回路の集まりである。レジスタは通常、クロック信号のエッジに同期して動作し、回路におけるメモリ的特性は全てレジスタが担うものとする。組合わせ回路はあらゆる論理機能を担い、(ループを持たない)いわゆる論理ゲートで構成される。
ハードウェア記述言語を使ってディジタル集積回路を設計するとき、設計はトランジスタや論理ゲートよりも高い抽象度で行われることが多い。
なお、一部の(しかし、広く普及している)HDLでは、レジスタをあたかも通常のコンピュータ・プログラミング言語における変数であるかのように扱うと同時に、状態を持たない組合せ論理回路中の単なる信号も、プログラミング言語における変数と同様に扱う。そのため、(いわゆるノイマン型コンピュータの動作とは全く質的に異なる)論理回路の動作を記述するにあたって、プログラミング言語の各種制御構造や演算機能を大変不自然に駆使して記述しなければならない(特に、ほんの僅かな不注意で、本来意図していないラッチが合成されてしまう)。
フリップフロップの出力にインバータを接続して、それを同じフリップフロップの入力に接続した回路を VHDL で記述すると、次のようになる。
EDAツールは、レジスタ転送レベルの記述から論理回路を合成する論理合成及び最適化(いわゆる簡単化)などを行い、さらに電子回路としての記述に変換し ASIC や FPGA のためのハードウェア実装ファイルを生成する。