FPGA設計を、順番に学ぶ

4つのトラックで、各レッスンは前のレッスンの上に積み上がります。すべてのレッスンに学習目標、図、実際にコンパイルできるHDL、そして演習があります。

すべてのレッスンは2027年1月31日まで無料で読めます。アカウント登録は不要です。

入門

10レッスン

「FPGAとは何か」から、実機ボードで動く最初の合成済み設計まで。

FPGAとは何か

フィールドプログラマブルゲートアレイは、論理の配線を自分で決めるチップです。本レッスンではその意味、マイコン・ASIC・GPUとの違い、そしてFPGAが真価を発揮する場面を説明します

20 分 · 概念

FPGAはどのようにプログラムされるか

ハードウェア記述からコンフィギュレーション済みチップまでの道のりを段階ごとに追い、AMD、Altera、Lattice、オープンソースフローで出会うツール名を紹介します

25 分 · 概念

組み合わせ論理とルックアップテーブル

ブール関数と真理値表、ルックアップテーブルがそのどれをも小さなメモリに変える仕組み、キャリーチェーンとマルチプレクサを解説し、VerilogとVHDLの組み合わせ論理ブロックを示します

30 分 · verilog, vhdl

レジスタ、クロック、状態という考え方

フリップフロップ、クロックエッジ、セットアップとホールドを直感的に説明し、設計を予測可能に保つ同期設計の規則と、同期リセットとイネーブル付きのレジスタをVerilogとVHDLで示します

30 分 · verilog, vhdl

初めてのHDLモジュール

VerilogモジュールとVHDLエンティティの構造、ポート、wire・reg・signal、連続代入とクロック付き代入を解説し、LEDを点滅させる完全なカウンタを両言語で1行ずつ説明します

35 分 · verilog, vhdl

シミュレーションとテストベンチ

合成の前にシミュレーションを行う理由、VerilogやVHDLのテストベンチが設計を駆動する仕組み、そして出力される波形の読み方を解説します。

35 分 · verilog, vhdl

有限状態機械

MooreマシンとMealyマシン、状態のエンコード方法、2プロセス記述と1プロセス記述、そして初心者が最初のFSMで必ず引っかかるバグを解説します。

35 分 · verilog, vhdl

カウンタ、タイマーとデバウンス

分周クロックの代わりにクロックイネーブルを使う理由、ミリ秒tick生成器、エッジ検出付きのボタンデバウンサ、多重化した7セグメント表示器を、テストベンチ付きで解説します。

35 分 · verilog, vhdl

メモリ、ブロックRAMとFIFO

分散RAMとブロックRAMの違い、合成が正しいプリミティブを推論するようにRAMとROMを書く方法、リードビフォアライトとライトファースト、そしてfullとemptyフラグを備えた同期FIFOを解説します。

40 分 · verilog, vhdl

RTLからボードへ: フローの全体像

AMD、Altera、Lattice、Gowinの制約ファイル、ピン割り当てとI/O規格、タイミングレポートの読み方、そしてBasys 3とTang Nano 9KでのLチカの実例を解説します。

45 分 · verilog

中級

3レッスン

タイミング、制約、クロックドメイン、検証、バスインターフェース。

上級

0レッスン

SoC FPGA、高速I/O、DSPパイプライン、ハードウェアアクセラレーション。

このトラックのレッスンは執筆中です。まずは入門トラックからどうぞ。

エキスパート

0レッスン

アーキテクチャ研究、CADアルゴリズム、セキュリティ、オープンソースの最前線。

このトラックのレッスンは執筆中です。まずは入門トラックからどうぞ。