宇宙誕生の少し前から宇宙終焉の少し先までを数で表す論文

この宇宙を数で表すことは出来るのか。

第3-5節 FPGAの設計方法(HDLの考え方)

3-5 FPGAの設計方法(HDL)

FPGAは、
CPUのように「命令」を書いて動かす装置ではありません。
FPGAでは、
回路そのものを記述して設計を行います。
そのために用いられるのが
HDL(Hardware Description Language)です。

HDLとは何か

HDLとは、
ハードウェアの構造や動作を記述する言語です。
代表的なHDLには、

  • Verilog HDL
  • VHDL

があります。
どちらも、
「処理手順」ではなく
信号の関係を記述する点が特徴です。

ソフトウェア言語との違い

C言語やPythonでは、
処理は上から順に実行されます。
しかしHDLでは、
記述した内容が同時に動作します。


a = b & c;
d = e | f;


これらは「順番に実行」されるのではなく、
並列に存在する回路
として解釈されます。

組み合わせ回路と順序回路の記述

HDLでは、
回路を大きく次の2種類に分けて記述します。

  • 組み合わせ回路(Combinational Logic)
  • 順序回路(Sequential Logic)

順序回路では、
クロックに同期してFFが更新されるため、
クロック設計と不可分です。

合成という考え方

HDLで書かれたコードは、
そのままFPGAで動くわけではありません。
まず、
論理合成(Synthesis)
によって、

  • LUT
  • FF
  • 配線

に変換されます。
つまりHDLは、
回路図を生成するための設計図
と言えます。

設計者の役割

FPGA設計者は、

  • どこでFFを入れるか
  • どの信号を同期させるか
  • どの処理を並列化するか

を明示的に決める必要があります。
これは、
ソフトウェア設計よりも
ハードウェアに近い思考
を要求されます。

CPUとの設計思想の違い

CPUでは、
性能向上は主に
クロック周波数や命令実行速度に依存します。

FPGAでは、
並列にどれだけ回路を配置できるか
が性能を決めます。
この違いが、
CPUとFPGAの本質的な差になります。