FPGA実装のためのRISC-V CPU設計 ① Pythonで学ぶRV32I命令構造と実行原理

CPUを作ろうと決心すると、たいてい回路図から探し始めます。ところが、図面を広げた瞬間に答えられない質問が生じます。「このブロックはなぜここにあるべきなのか?」「レジスターを読み取るポートはなぜ2つなのか?」 答えはすべて命令にあります。命令が何を要求しているかを知れば、どのような回路が必要かが決まります。逆の順序では成り立ちません。 RISC-Vの講義はすでにいくつもあります。しかし、その多くはスライドに値を表示して「こうなります」と言って次に進んでしまいます。受講生はその値が正しいか確認する方法がありません。 この講義では、Python命令実行シミュレーターを一緒にお渡しします。run ADDと打てば、その場で機械語が組み立てられ、32ビットがフィールドごとに展開され、レジスターがどのように変わるかが画面に表示されます。教材のすべての数字はこのツールの実行結果であり、皆さんの画面で全く同じように再現されます。 商用デバッガーはライセンスが必要で、シミュレーターはインストールが壁になります。このツールはPythonさえあれば十分です。ボードも、ライセンスも、インストールも必要ありません。 RV32I命令40個を一つも漏らさず直接実行しながら、回路が何をすべきかを自ら見つけ出す過程です。

2名 が受講中です。

難易度 初級

受講期間 無制限

riscv
riscv
cpu-architecture
cpu-architecture
instruction-set-architecture
instruction-set-architecture
FPGA
FPGA
Computer Architecture
Computer Architecture
riscv
riscv
cpu-architecture
cpu-architecture
instruction-set-architecture
instruction-set-architecture
FPGA
FPGA
Computer Architecture
Computer Architecture

受講後に得られること

  • ・自分だけのCPUを設計するための命令セット設計基準を習得することになります。

  • ・キャップストーンデザイン、コンテスト出品、卒業プロジェクトのCPU設計テーマを具体化することができます。

  • ・機械語32ビットを見てどの形式か判別し、フィールドを分割して何の命令か読み取ることができます。

  • · RV32I命令40個を直接実行しながら、レジスタとメモリの変化を確認することができます。

  • ・一つの命令が回路のどのブロックを通過するのか、13個の制御信号がどのように決定されるのかを説明できます。

  • ・いつでも再実行可能なPythonコマンド実行シミュレーターを利用できるようになります

  • ・Bit-True検証の意味を理解し、「検証した」という言葉が何を保証するのかを判断できます

  • ・技術面接でCPUの動作原理を、暗記した文章ではなく実行してみた経験として答えることができます。

FPGAでCPUを自作してみてください

CPUはコンピュータの頭脳です。しかし、CPUを直接設計する方法を体系的に教えてくれる講義は多くありません。ほとんどはRTLコードを見せたり、データパスを説明したりすることから始まります。しかし、本当の問いはこれです。

CPUはなぜこのような構造でなければならないのでしょうか?

レジスタはなぜ32個なのでしょうか?

ALUはなぜ必要なのでしょうか?

読み取りポートはなぜ2つなのでしょうか?

Write Backはなぜ存在するのでしょうか?

これらの質問の答えはすべて命令にあります。CPUは命令を実行するために作られた回路です。命令を理解できなければ、CPUも理解することはできません。この講義は、CPUを作る人の視点で命令を学ぶ過程です。


この講義の目標

この講義の目標は、RV32I命令を暗記することではありません。FPGAで動作するRISC-V CPUを直接設計するための基礎を作ることです。これから皆さんは、

· Single-Cycle CPU

· Pipeline CPU

· FPGA実装まで進めることになります。

この過程はその第一段階です。


■ なぜこの順序なのか?

多くの人がCPUを作るためにRTLから勉強します。しかし、順序は逆です。

命令セット→必要な動作→データパス→制御信号→RTL→FPGA

CPUは命令が要求する機能を具現化した結果です。ADD一つを例に挙げてみましょう。

レジスタ2つを読み込み、ALUが計算し、その結果を再びレジスタに書き込まなければなりません。この要求事項がレジスタファイルとALU、MUX、そして制御装置を決定します。

読み出しポートが2つある理由もここから分かります。RV32I命令40個の中に、レジスタを3つ以上読み出すものが一つもないからです。命令を理解すれば、なぜその回路が必要なのかが見えてきます。


■ 何を学びますか?

RV32I命令40個をすべて直接実行します。単にadd x5, x1, x2 → 0x002082B3を見せるだけではありません。直接機械語を作り、再びデコードし、実行し、レジスタが変わるのを見て、メモリが変化するのを確認し、データパスと制御信号まで追跡します。

命令一つがCPUの中でどのように動くのかを最後まで確認します。


■ この講義だけの特徴

この講義には、講師が直接制作したPythonベースの命令シミュレータであるRV32I Instruction Studioが含まれています。別途のFPGAボードは必要ありません。複雑なシミュレータも不要です。

Pythonさえインストールされていれば

· 命令の実行

· 機械語生成

· デコード

· レジスタ確認

· メモリ確認

· データパスの確認

· 制御信号の確認をすべて直接行うことができます。


教材のすべての数字はこのツールで生成されており、皆さんも同じ結果を再現することができます。

· 命令40個すべてを実行します — よく使うものだけを選んだ例題ではありません

· 1,231件の自己検証をパスして初めて学習が開始されます

· 14個の欠陥をあえて仕込み、その検証が実際にそれらを検知できるかまで試験します

· 外部ライブラリはありません — 全体で550KB、解凍後の一行で開始できます


■ カリキュラム

Section 1. CPUの基礎理解

1. CPUは命令をどのように実行するか — 実習環境とレジスタ

2. 32ビット命令構造と即値(Immediate)

Section 2. RV32I命令の実行

3. 算術・論理・シフト命令

4. Load/Store · Branch · JAL/JALR 命令

Section 3. CPUはどのように動作するのか?

5. 単一サイクルデータパスと制御信号

Section 4. CPUの検証とまとめ

6. Bit-True 検証と次のステップのロードマップ

各講義ごとにLabが続きます。実行手順、画面の確認、セルフチェック項目、例題演習の

4つの段階で構成されており、何をどのような順序で入力すればよいかがそのまま示されています。


■ このような方におすすめします

・FPGAでCPUを直接実装したい方

・CPU設計を初めて始める方

・RISC-Vを体系的に学びたい方

・コンピュータ構成法とRTL設計を結びつけたい方

・キャップストーンデザインや競技大会でCPUを実装しようとしている方

・システム半導体・ファブレス分野への就職を準備している方


■ 実習環境

準備するものはPythonとJupyter Notebookだけです。

https://github.com/estlit/SemiconductorSchool-Labs

→ Level4_Lab_RV32I_Instruction_Studio.zip

解凍して、Jupyterで下の1行を実行すれば開始されます。

%run Lab01.py


■ 講義を終えると

皆さんは

· RV32I 命令を理解し

・CPUデータパスを説明できるようになり、

・制御信号がなぜ必要なのかを理解し

・FPGAでCPUを実装するための基盤を整えることができます

そして次の過程では、今回学んだ命令をVerilog RTLで実装し、FPGAボードで実際に実行することになります。

Volume 1 RV32I 命令の構造と実行 ← 今ここ

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

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

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

CPUを作る長い旅の第一歩です。

今すぐ始めてください。

こんな方に
おすすめです

学習対象は
誰でしょう?

  • ・自分だけのCPUをハードウェアで直接設計してみたい方

  • · RISC-Vアーキテクチャを実習で習得しようとするシステムソフトウェア・ファームウェア開発者

  • ・命令セットアーキテクチャ(ISA)をスペック文書ではなく、実行を通じて理解したい方

  • ・FPGAベースのプロセッサ設計を準備する大学生および大学院生

  • ・システム半導体・ファブレス分野への就職を準備しており、CPUアーキテクチャの能力が必要な方

  • ・組み込み開発の実務でアセンブリとレジスタの状態を解析する必要がある方

  • ・商用デバッガのライセンスなしで、実習環境でCPUの動作を確認したい方

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

  • Pythonの基礎(実行して結果が読める程度で十分です)

  • コンピュータ構成の基礎(なくてもついていくことができます)

こんにちは
EdgeChipLabです。

キャリア認証

現職の大学教授として、システム半導体30年のノウハウを詰め込みました。

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

 

理論を超え、実際のハードウェア実装へ。あなたのエンジニアリング能力をレベルアップさせます。

散らばった断片的な知識だけでは、決して到達できない領域があります。受講生は、完成されたブラックボックスIPを使用するユーザーではなく、NPUとCPUを設計し、周辺機器を統合して、最終的には自分だけのAI SoCを構築できるシステムアーキテクト(供給者)へと成長することになります。

 

目で見るだけの講義ではありません。100%のハードウェア実装とBit-True検証を約束します。

理論や単純なシミュレーションだけで終わることはありません。講師自身のKCI登載学術研究と自ら設計した回路が、実際のFPGAハードウェア上で誤差なく動作する快感をぜひ体感してください。独自開発したRISC-V CPUを含むすべてのソースコードは透明に公開されており、普及型FPGA(Arty S7-25)と無料ツール(Vivado)だけで、誰でも自由に再現・検証することができます。

 

途切れのないフルスタックロードマップ:基礎から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環境における完全動作

ぜひ挑戦してください。自らコードをボードに実装し、結果を確認するというこのプロセスが終わる頃には、皆さんは以前とは全く異なる視点を持ったハードウェアエンジニアとしてレベルアップしているはずです。

もっと見る

カリキュラム

全体

6件 ∙ (1時間 41分)

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

受講レビュー

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

EdgeChipLabの他の講座

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

似ている講座

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

期間限定セール

¥29,040

20%

¥4,638