FPGAのスペック表を見たとき、「LUT:100K」などと書かれているのを見たことがある人も多いのではないでしょうか。LUTとは何か?真理値表のようなもの?それがハードウェアの中でどういう意味を持つのか?この記事では、FPGAにおけるLUTの正体と、論理とハードウェアをつなぐイメージをわかりやすく解説します。
1. LUTとは?抽象的には「真理値表」
LUT(Look-Up Table)は、入力の組み合わせに対して出力を決める「表」のようなものです。たとえば、4入力のLUTであれば、入力の組み合わせは2^4 = 16通り。そのそれぞれに対して出力ビット(0または1)を記録することで、任意の論理関数を実現できます。

設計者がHDL(Verilog/VHDL)で記述する論理式は、最終的にこのLUTの中に変換されて実装されます。
2. ハードウェアとしてのLUT:中身は小さなSRAMと選択回路
抽象的には「真理値表」ですが、実際のLUTは物理的にはSRAM(静的メモリ)とマルチプレクサ(MUX)でできています。

SRAMとは?
SRAMは、トランジスタだけで構成された高速なメモリです。たとえば1ビットのSRAMセルは6個のトランジスタ(6T)で構成され、電源がある限り状態(0か1)を保持します。

LUTの内部構成(例:4入力LUT)
- 16ビットのSRAMセルで出力パターンを保持
- 4本の入力に応じて、どのビットを使うか選ぶマルチプレクサ
- 合わせて数十~百個以上のトランジスタで構成される小さな回路ブロック
このようにして、LUTは「再構成可能な小さな論理ゲート」として働きます。
3. LUTの数=使える論理関数ブロックの数
FPGAのスペックに書かれている「LUT数」は、FPGAチップ上に実装されている論理関数ブロックの最大数を意味します。
たとえば「100K LUT」と書いてあれば、おおよそ10万個の小さな論理関数を同時に構成できることになります。これは単なる数字ではなく、FPGAの処理能力や実装可能な機能の大きさを左右する重要な指標です。
4. どんな機能が何個のLUTを使うのか?
LUTの数は、機能の複雑さに応じて消費されます。たとえば:
機能 | おおよそのLUT使用量 |
---|---|
AND/OR/XORなどの基本ゲート | 1個以内 |
8ビット加算器 | 10~20個 |
状態機械(FSM) | 数10~数100個 |
UART通信 | 約500~1000個 |
RISC-Vコア(軽量) | 数千~数万個 |
このように、LUT数は「どのくらいの規模の回路がFPGAに乗るか」を見積もるための実践的な目安になります。
5. まとめ:LUTとは「小さな記憶付きゲート」
- 抽象的には「真理値表」そのもの
- 実体は「SRAMと選択回路で作られた小さな再構成可能回路」
- スペック上のLUT数は「使える論理関数ユニットの数」
- 多ければ多いほど、大きく複雑な回路を構成できる
FPGAにおけるLUTは、論理(ソフト的思考)とハード(実際の物理リソース)をつなぐ重要な存在です。これを理解すると、FPGAのデータシートやリソースレポートを読み解く目も大きく変わるはずです。