チップ・メイカーズのためのFPGA入門

~ お手軽なBasys 3/Artix-7で学ぶ回路設計と検証の仕方 ~(Win11対応)

講義テキスト・カリキュラム一覧

本講座は、書き換え自由なFPGAを使って、本物の論理回路設計を手元で・何度でも・作って動かしながら学ぶ実践講座です。第1章から第6章までで、FPGAの使い方はひと通り身につきます(自分で書いたVerilogを実機で光らせ、最後はRISC-V CPUまで動かします)。ASIC設計講座(LibreLane)との連携に関心がある方は、独立した第7章【連携編】で双方向の経路を紹介します(FPGAだけ学びたい方は読み飛ばして構いません)。概念→道具→具体の順で、初学者でも置いていかれないよう進みます。

背景・理論

序章:なぜFPGAなのか

高価な道具や特別な環境がなくても、書き換え自由なFPGAなら「本物の論理回路設計」を手元で何度でも試せます。まずはFPGAそれ自体の魅力と、この講座で作るものを見渡します。

この章を学習する
全体像・理論

第1章:FPGAとは何か ― Basys 3 のArtix-7を分解する

「書き換えられる回路」の正体を、心臓部のArtix-7を分解してのぞきます。論理を作るLUTと、1ビットを記憶するフリップフロップ、それを束ねるスライス。FPGAの中身が腹落ちします。

この章を学習する
環境構築

第2章:Basys 3 を用意する

入門用FPGAボード Basys 3 の準備と、最初に触る前の全体像を確認します。まずは「道具をそろえる」ことに集中し、つまずきやすい点を先回りで案内します。

この章を学習する
環境構築

第3章:Vivado(無償版)を入れる

設計・合成・書き込みを行う統合開発ソフト Vivado(無償版)を、一手ずつ導入します。「実行するとこうなる(所要時間・出る画面・完了の合図)」を手厚く添えます。

この章を学習する
設計・実装

第4章:最初のLチカ ― 自分のVerilogで光らせる

自分で書いた素のVerilogを Basys 3 で光らせます。テンプレートも特別な殻も要りません。クロック・リセット・LEDだけの最短のRTLで、FPGAそのものの第一歩を踏み出します。

この章を学習する
実装・応用

第5章:作って遊ぶ ― スイッチ・LED・7セグメント

スイッチ入力、複数LED、7セグメント表示、点滅速度の調整など、Basys 3 だけで完結する楽しい回路をいくつも作ります。「FPGAで遊ぶ」感覚を、手を動かして掴みます。

この章を学習する
CPU・実装

第6章:RISC-V CPU(PicoRV32)をFPGAで動かす

FPGAにRISC-VのCPUコアを載せ、命令メモリに置いた小さなプログラムを実際に走らせてLEDを制御します。自分のFPGAの上でCPUが動く――その手応えを体験します。

この章を学習する
連携編(任意)

第7章:【連携編】LibreLane(ASIC)との行き来

FPGAで作ったRTLをASIC設計(LibreLane)へ渡す経路と、逆にASIC向け設計をFPGAで事前検証する経路を、双方向で紹介します。FPGAだけ学びたい方は読み飛ばして構いません。

この章を学習する
資料・対策

第8章:用語集・トラブルシューティング

本講座で出てくる用語(LUT・スライス・.xdc・ビットストリーム・Implementation など)の一行定義集と、Vivado・書き込みでよく遭遇するエラーの「症状→原因→対処」をまとめます。

この章を学習する

本テキストをご利用になる前に

このテキストは、かつて高価な商用ツールや特別な環境を必要とした「本物の論理回路設計」を、入門用のFPGAボードと無償の開発ソフトによって、個人の手で・何度でも試せるものとして体感していただきたいという思いで公開しています。執筆にあたっては内容の正確さに努めましたが、それでも誤りや説明の不足が残っている可能性があります。とりわけ、ここで扱う開発ソフト(Vivado)やそのライセンス体系、対応デバイス、ボードの入手性などは更新・変動が速く、お使いの環境やバージョンによっては、本文の手順・画面・コマンドがそのままでは一致しないことが起こり得ます。

本テキストの内容を試した結果として生じたいかなる損害・不都合(環境構築の不調、設計データの不具合、機材やソフトウェアに関する費用など)についても、著者は責任を負いかねます。実際に作業される際は、各ツールおよびボード提供元が公開している最新の公式情報を必ずご自身で確認し、自己の判断と責任のもとで進めてください。価格・バージョン・対応デバイスといった変動する情報は、本文中でも特定の数値を断定しないよう努めています。

こうした限界をお断りしたうえで、それでも本テキストが、FPGAで何かを作ってみたいと思う誰かの第一歩の一助となれば、これに勝る喜びはありません。お気づきの誤りや改善点があれば、ぜひお知らせいただけると幸いです。