inflearn logo
知識共有
inflearn logo

FPGA実装のためのRISC-V CPU設計 ② 5段パイプラインTinyRV32Iを自作する

RISC-V命令の動作原理を出発点として、5段パイプライン構造の32ビットCPUを自ら設計し、Verilog RTLの実装からシミュレーション検証、FPGAでの実機動作までを完成させる実践的なCPU設計コースです。 RV32Iの40命令の中から、CPUの基本構造を学ぶために必要な14命令を選定し、TinyRV32Iを段階的に構築します。データパス、パイプラインレジスタ、ALUと制御回路、Branch、Hazard、Stall・Flush、Memory-Mapped I/Oなど、実際のCPUを構成する主要な構造を自ら設計・検証します。 講義で使用するVerilog RTL、Testbench、Assemblyプログラム、Memory Image、FPGA制約ファイルを提供し、最終的にはArty S7-25 FPGA上で、自ら設計したCPUにより実際のプログラムを実行します。 本コースはここで終わりではありません。TinyRV32Iを通じてCPUの基本構造を完成させた後、後続コースではRV32Iの40命令すべてをサポートするFull RV32I CPUへと拡張する、段階的なCPU設計シリーズへと続きます。

2名 が受講中です。

難易度 中級以上

受講期間 無制限

Architecture
Architecture
FPGA
FPGA
verilog
verilog
cpu
cpu
riscv
riscv
Architecture
Architecture
FPGA
FPGA
verilog
verilog
cpu
cpu
riscv
riscv

受講後に得られること

  • 5段パイプラインのRISC-V CPUを自分で設計できます

  • ソースコードを持っています。自分だけの独自ISAを作り、CPUを設計できる第一歩です。

  • Verilog RTLで動作する14個の命令で構成されたTinyRV32I CPUを完成させることができます

  • 自分で設計したCPUにプログラムを書き込み、FPGAで実行できます。

  • 命令ごとのTestbenchとシミュレーションにより、CPUの動作を確認できます。

RISC-V CPUを自ら設計し、FPGA上で動作させる珍しい講座です

CPUの構造を理論として理解することと、実際に動作するCPUを自ら設計することは、まったく異なる経験です。

この講義は、完成したCPUのブラックボックスをFPGAで実行してみる過程ではありません。RISC-V命令が実際のハードウェア上でどのように実行されるのかという問いから出発し、必要なハードウェア構造を一つずつ導き出して、Verilog RTLで直接ホワイトボックスとして実装します。

目標は、5段パイプライン構造の32ビットTinyRV32I CPUを完成させ、Arty S7-25 FPGA上で実際にプログラムを実行することです。


なぜRV32I 40個のうち14個の命令から始めるのでしょうか?

最初から多くの命令を実装するよりも、CPUの核心構造を正確に理解し、自ら完成させることが重要です。

この課程では、RV32Iの40個の命令のうち、算術・論理演算、メモリアクセス、分岐など、CPUの基本動作を学習するために必要な14個の命令を選定し、TinyRV32Iを実装します。

TinyRV32Iはデータ幅を縮小したCPUではありません。32ビットのデータとアドレス、32個の汎用レジスタ、5段パイプライン構造を完全に維持しながら、サポートする命令の範囲のみを教育目的で制限したCPUです。

したがって、単純化された例に従うのではなく、実際のCPU設計の核心構造を段階的に完成させていく過程です。


5段パイプラインCPUをRTLで実装します

命令実行の過程を次の5段階に分け、実際のハードウェアとして実装します。

  • 命令フェッチ

  • 命令デコード

  • 実行

  • メモリアクセス

  • ライトバック

Program Counter、Register File、Immediate Generator、Decoder、ALUといった基本ブロックから、Pipeline Register、Branch制御、Hazard処理、StallとFlushまで段階的に実装します。

各ブロックを独立して学ぶだけでなく、データと制御信号がCPU全体をどのように移動するのかを関連付け、一つのプロセッサとして完成させます。


メモリとFPGA周辺デバイスまで接続します

CPUコアだけを実装して終わりにはしません。

LoadとStoreのためのメモリ構造を実装し、Memory-Mapped I/Oを利用してCPUとFPGAボードのSwitch、Button、LEDを接続します。

これにより、命令が単にシミュレーション上で実行されるだけでなく、実際のFPGAの入出力を制御する過程を体験します。


設計と検証を並行して進めます

RTLコードを記述するだけでCPU設計が完了するわけではありません。

各機能ブロックをテストベンチとシミュレーションで段階的に検証し、その後、CPU全体を統合して実際のプログラムが正しく実行されるかを確認します。

これにより、単なるVerilog文法の学習にとどまらず、RTLを設計・検証し、問題を追跡するハードウェア設計のプロセスを経験できます。


CPUの制作と実習に必要なすべてのソースコードを提供します

講義で使用する実習ファイルをすべて提供し、受講生が自ら設計を再現し、修正できるよう構成しています。

  • Verilog RTL

  • テストベンチ

  • アセンブリプログラム

  • メモリイメージ

  • FPGA制約ファイル

  • FPGA実装に必要な実習資料

完成した結果だけを見るのではなく、コードを直接確認して修正しながら、CPUの内部動作を学習できます。


最後には実際のFPGAでプログラムを実行します

完成したTinyRV32IをVivadoで合成・実装した後、Bitstreamを生成し、軽量で普及型のArty S7-25 FPGAに直接搭載します。そして、自分で設計したCPUが実際のプログラムを実行し、FPGAボードの入力を受け取って結果を出力するところまで確認します。 (Zybo-Z7など他のボードも使用可能で、xdcピンマッピングのみ修正)

全体のプロセスは次のようにつながっています。

RISC-V命令 → CPUアーキテクチャ → データパス → 5段パイプライン → Verilog RTL → Testbench検証 → CPU統合 → プログラム準備 → Vivado合成 → FPGA実行


40命令の標準CPU設計シリーズへと続きます

この講義は、単一の実習で完結するコースではなく、段階的に拡張されるRISC-V CPU設計シリーズの一部です。

Volume 1 RV32I命令セットの構造と実行

Volume 2 TinyRV32I · 5段パイプラインとFPGA実装 ← 今ここ

Volume 3 標準CPU · 命令40個とハザード制御

Volume 4 ビジョン・NPU SoC · カメラとアクセラレータの統合

命令を理解することから始め、CPUを自ら作り、Full RV32Iへと拡張することです。


この講義の目標は、完成したCPUを使う人ではなく、CPUの内部構造を理解し、RTLで自ら設計・検証できるエンジニアリング能力を身につけることです。

挑戦してください。自分でコードをボードに書き込み、結果を確認するこのプロセスが終わる頃には、皆さんは以前とはまったく異なる視野を持つハードウェアエンジニアへとレベルアップしていることでしょう。

こんな方に
おすすめです

学習対象は
誰でしょう?

  • コンピュータアーキテクチャ理論を学んだものの、実際のCPU設計経験がない工学部生

  • FPGA上でRISC-Vアーキテクチャを直接実装し、検証したい組み込み開発者

  • Verilogは学んだものの、完成度の高いシステムを自分で作ったことがない学習者

  • 半導体・デジタル設計分野への就職を目指し、ポートフォリオが必要な学習者

前提知識、
必要でしょうか?

  • デジタル論理回路とコンピュータアーキテクチャの基本概念(レジスタ、ALU、メモリ)

  • Verilog HDLの基本文法と簡単なモジュール作成経験

  • RISC-V命令セットの基礎理解またはシリーズ Volume 1の受講(FPGA実装のためのRISC-V CPU設計 ① Pythonで学ぶRV32I命令構造と実行原理)

こんにちは
EdgeChipLabです。

キャリア認証

AI半導体をFPGAで直接設計・実装します

現職の大学教授として、システム半導体業界で30年培った経験と、AI半導体の研究・教育ノウハウを盛り込みました。

サムスン電子DS部門のシステム半導体研究員を皮切りに、英国およびドイツ法人のDirector、システムLSIマーケティング・営業グループ長を歴任し、現在は半導体工学を教える教授が自ら設計し、FPGA上で検証した実践型カリキュラムです。

単にFPGAの使い方を学ぶ教育ではありません。
AIアルゴリズムを理解し、→ NPUとCPUをRTLで直接設計し、→ FPGAに実装し、→ 実際のハードウェアで検証し、→ 最終的にAI SoCまで拡張するプロセスを目指します。

AI Algorithm → RTL Design → FPGA Implementation → Bit-True Verification → AI SoC

 

理論を超えて実際のAIハードウェア実装へ

断片的で散在した知識だけでは、システムレベルのAI半導体設計能力に到達するのは困難です。

受講生は完成されたブラックボックスIPを使うだけにとどまりません。AI NPUとRISC-V CPUを自ら設計し、メモリや周辺装置を統合し、最終的に自分だけのAI SoCを構築できるシステム設計能力を段階的に身につけることを目指します。

トランジスタとデジタル回路の基礎から始め、FPGA、CPU、NPUを経てTransformerとLLMアクセラレーションハードウェアまでつなげます。

 

研究成果を実際のFPGAハードウェアで検証します。

目で見るだけの講義ではありません。理論や単純なシミュレーションで終わらせず、自ら設計したAI半導体回路を実際のFPGA上で動作させ、PythonモデルとRTLの結果が1ビット単位まで一致するBit-True検証を行います。

講師のAI半導体・FPGA・RISC-V関連のKCI掲載論文4本を含む研究成果も教育コンテンツと結び付け、研究で検証した技術を実際の設計とFPGA実装へとつなげます。

独自開発したRISC-V CPUをはじめ、画像学習用のPythonコードやVerilog RTLなど、実習に必要なソースコードを公開します。

エントリー向けのArty S7-25 FPGAボードと無償のVivado設計ツールを中心に構成し、学習者が自ら設計・実装・検証する全工程を再現できるようにしました。

また、Zybo Z7を含むDigilent社のFPGAボードでも使用可能です。XDCピンマッピング(ボード)とクロック分周パラメータ(RTL)をボードに合わせて修正してください。

'FPGAで作るMNIST NPU'講義は、XDCピンマッピングのみ修正すればよく、OLEDとカメラを使用する講義ではクロック分周パラメータ(RTL)を修正する必要があります。

→講義の実習はArty S7の100 MHz入力クロックを基準に分周パラメータが設定されています。ほかのボードは入力クロックが異なるため(例:Zybo Z7は125 MHz)、目標周波数が同じになるように分周値を再計算してください。この部分を見落とすと画面や映像が正常に出力されませんが、コードのエラーと誤解しやすいため、ご確認ください。

 

途切れのないフルスタックロードマップ:基礎からmini LLMアクセラレーターまで

すべての講義は独立した断片ではなく、ひとつの巨大なシステムを完成させていく旅です。

  • Step 1: AI理論および画像処理の基礎(Machine Learningを含む)

  • Step 2: AIアクセラレータ(NPU)設計および検証(Machine Learningを含む)

  • Step 3: RISC-V CPU設計およびシステム統合

  • Step 4: 高度なAI SoC実装およびmini LLMアクセラレーションプラットフォームへの拡張(継続的なコンテンツ更新)

     

 

客観的な検証指標

本コースのすべての設計成果物は、グローバルスタンダードと学術界による厳格な検証を経ています。

  • RISC-Vアーキテクチャの検証:自社開発RISC-V CPU、国際財団公式コンプライアンステスト(ACT)合格およびソースコード公開(GitHub)

  • 学術的権威:単独著者による学術論文4編(KCI Aランクの著名学術誌IJIBC掲載)

  • グローバルな評価:世界的なAmazon技術書を2冊出版(ベストセラー3位を達成)

  • 実動作の検証完了:RV32I CPU、NPU、ビジョンシステム、GPS、Transformer、AURA-Edge SoCなど主要IPのArty S7環境での完全動作

挑戦してください。自分でコードをボードに書き込み、結果を確認するこのプロセスを終える頃には、皆さんは以前とはまったく異なる視野を持つハードウェアエンジニアへとレベルアップしていることでしょう。

もっと見る

カリキュラム

全体

10件 ∙ (3時間 30分)

講座掲載日: 
最終更新日: 

受講レビュー

まだ十分な評価を受けていない講座です。
みんなの役に立つ受講レビューを書いてください!

EdgeChipLabの他の講座

知識共有者の他の講座を見てみましょう!

似ている講座

同じ分野の他の講座を見てみましょう!

期間限定セール

¥140,250

15%

¥20,927