inflearn logo
知識共有
inflearn logo

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

CPUを作ろうと決心すると、たいていはまず回路図を探します。ところが図面を広げた瞬間、 答えられない疑問が生まれます。このブロックはなぜここになければならないのでしょうか? レジスタを読み取る ポートはなぜ2つあるのでしょうか? 答えはすべて命令にあります。命令が何を要求しているのかが分かれば、どのような回路が必要なのかが 決まります。逆の順序ではいきません。 RISC-Vの講義はすでにいくつもあります。しかし、そのほとんどはスライドに値を表示して "このように なります" と言ったあと、先へ進んでしまいます。受講者には、その値が正しいかどうかを確認する方法がありません。 この講義では、Python製の命令実行シミュレーターも一緒に提供します。run ADDと入力すれば、その 場で機械語がアセンブルされ、32ビットがフィールドごとに展開され、レジスタがどのように変化するのかが 画面に表示されます。教材にあるすべての数字はこのツールの実行結果であり、皆さんの画面上でも同じように 再現されます。 市販のデバッガーにはライセンスが必要で、シミュレーターはインストールが壁になります。このツールはPythonさえ あれば使えます。ボードも、ライセンスも、インストールも必要ありません。 RV32Iの命令40個を一つも漏らさず実際に実行し、回路が何をしなければならないのかを自分で見つけ出していく 過程です。

14名 が受講中です。

難易度 初級

受講期間 無制限

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個を直接実行し、レジスタとメモリの変化を確認できます

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

  • · いつでも再実行できるPythonコマンド実行シミュレーターを手に入れます

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

  • · 技術面接で、CPUの動作原理について暗記した文章ではなく、実際に実行してみた経験に基づいて答えられます

■ FPGAでCPUを自分で作ってみましょう。

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

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

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

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

読み出しポートはなぜ2つあるのでしょうか?

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

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


■ この講義の目標

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

· シングルサイクルCPU

· パイプラインCPU

・FPGA実装まで進めていきます。

このコースはその第一段階です。


■ なぜこの順序なのか?

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

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

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

レジスタを2つ読み出し、ALUが計算し、結果を再びレジスタに書き込む必要があります。この要求事項が、レジスタファイルとALUとMUXと制御装置を決定します。

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


■ 何を学びますか?

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

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


■ この講義ならではの特徴

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

Python만 설치되어 있으면

・命令の実行

・機械語生成

・デコード

・レジスタの確認

・メモリの確認

・データパスの確認

・制御信号の確認をすべて自分で行えます。


教材内のすべての数値は、皆さんも同じ結果を再現できます。

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

· 自己検証1,231件に合格して初めて学習が始まります

・欠陥を14個わざと仕込み、その検証が実際に検出できるかまでテストします

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


■ カリキュラム

セクション1. CPUの基礎理解

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

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

セクション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です。

キャリア認証

AI半導体をFPGAで自ら設計・実装します

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

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

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

AIアルゴリズム → RTL設計 → FPGA実装 → ビット真値検証 → 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とCameraを使用する講義ではクロック分周パラメータ(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で技術書4冊を出版(ベストセラー1位を達成)


    出版書籍: Roger Kim: books, biography, latest update

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

     

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

もっと見る

カリキュラム

全体

6件 ∙ (1時間 41分)

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

受講レビュー

まだ十分な評価が集まっていない講座です。
ぜひ最初のレビューをお寄せください。

EdgeChipLabの他の講座

知識共有者の他の講座はこちら

似ている講座

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

新規会員登録で25%OFF

¥3,496

25%

¥4,656