FPGA実装のためのRISC-V CPU設計 ③ RV32I 40個の命令を備えたFull CPUを自作する

CPUとRISC-Vを学んでいると、命令の機能は理解できても、「これらの命令は実際のハードウェア上でどのように実行されるのか?」「自分で設計したCPUが本当に正しく動作していることを、どのように確認できるのか?」という点で難しさを感じるようになります。市販の多くの教材はISAの説明や簡単なCPUの例にとどまり、完成済みのIPを使用する場合も多いため、CPUを自分で設計・検証し、実際のFPGA上でプログラムを実行するまでの一連の過程を経験するのは容易ではありません。 私はシステム半導体分野で長年にわたり研究開発と事業に携わり、現在は大学で半導体設計とFPGAを教える中で、このような学習上のギャップを数多く見てきました。そこで本講座では、完成したCPUを提供して動作だけを確認するのではなく、「RV32I命令を実行するには、どのようなハードウェアが必要なのか?」という問いから出発し、CPUの構造をWhite Box方式で自ら設計できるように構成しています。 Volume 3では、Volume 2のTinyRV32Iをベースに、RV32Iの40個の命令を使用するFull-Version 32ビットCPUへと拡張します。データパスとDecoder、Branch・Jump、Byte/Halfword Memory Accessを拡張し、ForwardingとLoad-Use Interlockを実装することで、5段Pipelineがデータ依存性を自動的に処理できるようにします。続いてCSR、Exception、Interrupt、Trap、MRETを統合し、通常のプログラム実行だけでなく、例外や外部イベントまで処理できるCPUを完成させます。 設計はRTL Simulationで終わりません。実際のプログラムをCPU上で実行し、Spike Reference Modelと結果を比較しながら、RISC-V Architecture Compatibility Testの目的と実施・判定プロセスを、実際の検証事例を通じて学びます。最後には、検証済みのCPUをArty S7-25 FPGAに実装し、SwitchとButtonから入力を受けてプログラムを実行し、その結果をLEDに出力するところまで確認します。 この講義が解決しようとしている課題は、単にRISC-V命令をより多く知ることではありません。命令 → CPUアーキテクチャ → Verilog RTL → Pipeline制御 → プログラム実行 → 標準ベースの検証 → FPGA上での実動作を一つの流れとしてつなぎ合わせ、受講生がCPU内部の構造を根本から理解し、自ら設計・検証できるエンジニアリング能力を身につけることを目標としています。

1名 が受講中です。

難易度 中級以上

受講期間 無制限

FPGA
FPGA
verilog
verilog
riscv
riscv
rtl
rtl
cpu-architecture
cpu-architecture
FPGA
FPGA
verilog
verilog
riscv
riscv
rtl
rtl
cpu-architecture
cpu-architecture

受講後に得られること

  • RV32Iの40個の命令を実行するFull-Version RISC-V CPUの設計能力

  • 5段パイプラインとHazard Controlの実装能力

  • CSR・Exception・Interrupt・Trapを含むCPU制御構造の設計能力

  • CPUを体系的に検証する実務的な検証能力

  • 自ら設計したCPUをFPGA上で実際のプログラムとして動作させるまでの完成体験

RV32Iの40個の命令を使用するFull-Version CPUを自分で設計します

mini-CPUを超えて、実際のプログラムを実行できる32ビットRISC-V CPUを自ら完成させます。

この講義では、Volume 2のTinyRV32Iを基に、RV32Iの40命令を使用するFull-Version CPUへ拡張していきます。完成済みのCPU IPを使用するのではなく、命令が要求するハードウェア構造を分析し、Verilog RTLで自ら実装します。

算術・論理演算だけでなく、Shift、Compare、Jump、Byte/Halfword Load・Store、CSRやSystem命令まで拡張しながら、命令が実際のデータパスと制御構造として実装される過程を学びます。


5段パイプラインを実際にプログラムを実行できる構造へと拡張します

命令が増えると、Decoderだけを拡張してもCPUは完成しません。

ALU、Immediate Generator、Branch/Jump、Load/Store、Write Back経路を拡張し、ForwardingとLoad-Use Interlockを実装して、プログラムのデータ依存性をハードウェアが直接処理できるようにします。

必要な値がすでに生成されていればForwardingを行い、Loadのように値がまだ準備できていなければPipelineを一時停止します。BranchとJumpに伴うPCの切り替えとFlushまで実装しながら、5段Pipelineが実際のプログラムをどのように正しく実行するのかを理解します。


Byte/HalfwordメモリアクセスとMMIOまで実装します

32ビットWordアクセスからさらに進み、ByteとHalfword単位のLoad・Storeを実装します。

Sign/Zero Extension、Byte Enable、Address Alignmentを処理し、Memory-Mapped I/Oを介してCPUとFPGAボードのSwitch、Button、LEDを接続します。

これにより、1つのLoadまたはStore命令がアドレス計算 → メモリアクセス → データ選択 → レジスタまたは周辺機器へとつながる全経路を理解します。


CSR、例外、割り込み、トラップをCPUに統合します

通常の命令実行だけでなく、CPUで発生する例外や外部Interruptも自ら実装します。

mstatusmtvecmepcmcausemtvalmiemipなどのMachine-Level CSRを構成し、ECALL、EBREAK、Illegal Instruction、Misaligned Access、External Interrupt、MRETを処理します。, and handle ECALL, EBREAK, Illegal Instruction, Misaligned Access, External Interrupts, and MRET.

これにより、正常なプログラム実行 → Trap発生 → Handlerへの移行 → 状態保存 → プログラム復帰が1つのCPU内でどのように行われるのかをRTLレベルで学びます。


独自のTestbenchを超え、標準に基づいて検証します

CPUがいくつかの独自テストプログラムを実行したからといって、設計が正しいと断定することはできません。

各機能をTestbenchとSimulationで検証した後、Spike Reference Modelと実行結果を比較し RISC-V Architecture Compatibility Testを実施してPASSしました。(下記参照)
[Compliance Report] EdgeChipLab_CPU_v1がRV32I ACTに合格 · Issue #1600 · riscv/riscv-arch-test


本CPUの命令動作を標準に基づいて検証する事例を説明します。ACT関連のファイルは提供資料に含まれていません。単にPASSの結果を確認するだけでなく、何を実行し、何を比較したのか、そしてその結果がCPUの正確性をどの範囲まで証明するのかを併せて学びます。


ACTに合格したCPUで実際のプログラムを実行します

この講義の最大の差別化ポイントです。

RV32Iの40個の命令を使用するCPUを自ら設計し、Architecture Compatibility Testで検証する事例。同じCPUを実際のFPGAに実装します。

完成したCPUで実際のプログラムを実行し、SwitchとButtonの入力を読み取り、CPUで演算と分岐を行った後、結果をLEDに出力します。

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

40命令RV32I → 5段パイプライン → ハザード制御 → CSR/トラップ → ACT検証 → FPGA → 実プログラム


CPU設計と検証に必要な実習資料を提供します

講義で使用する主要な設計・検証資料を提供し、実際に実行・修正できるように構成しました。

  • Verilog RTL

  • テストベンチ

  • アセンブリプログラム

  • メモリイメージ


  • FPGAトップレベルRTL

  • XDCピン制約

  • Vivado実装資料

完成した結果を見るだけでなく、設計 → Simulation → 標準検証 → FPGA実装の全工程を自分で再現できます。


RISC-V CPU設計シリーズのFull-Version段階です

この講義は、段階的に拡張されるRISC-V CPU設計シリーズの第3弾です。

Volume 1 RV32I命令構造と実行
Volume 2 TinyRV32I・5段パイプラインとFPGA実装
Volume 3 40-Instruction Full RV32I・ACT検証事例・FPGAプログラム実行 ← 今ここ
Volume 4 CPU・NPU・Peripheralを統合するAI SoC


この講義の目標は、40個の命令を暗記することではありません。自ら設計したFull-Version RISC-V CPUが標準ベースの検証に合格した経験を共有し、実際のFPGA上でプログラムを実行するまでの全プロセスを体験することです。

こんな方に
おすすめです

学習対象は
誰でしょう?

  • RISC-V CPUの基礎を学び、フルバージョンのパイプラインCPU設計へと発展させたいハードウェアエンジニア

  • RTL設計の経験があり、CPUアーキテクチャにおける例外処理および標準的な検証方法を実践的に学びたい開発者

  • 簡単なCPUの例を超えて、もう少し完成度の高いCPUを自分で設計してみたい方

  • シミュレーションを超えて、自分で設計したCPUを実際のFPGAで動作させてみたい方

  • 複数のRTLブロックを1つのシステムに統合するプロセスを学びたい方

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

  • VerilogまたはVHDLなど、HDLベースのRTL設計およびシミュレーション経験

  • CPUの基本構造(Datapath、Control Unit、パイプライン)およびRISC-V ISAの基礎知識

  • Vivadoまたは同様のFPGA開発ツールの使用経験、およびFPGAボードの活用能力

こんにちは
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環境での完全動作

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

もっと見る

カリキュラム

全体

11件 ∙ (6時間 2分)

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

受講レビュー

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

EdgeChipLabの他の講座

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

似ている講座

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

期間限定セール

¥247,500

10%

¥34,862