チップ・メイカーズのための自作RISC-V SoC実践編

~ PicoRV32 と Wishbone で作る、フィジカルAI時代の実用オリジナルチップ ~(FPGA基礎編の続編)

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

本講座は、基礎編(FPGA入門)で「自分のFPGAの上でRISC-V CPUが走る」ところまで来た方が、その先へ進むための実践編です。PicoRV32 を核に、Wishboneバスで周辺IPを組み合わせ、自分だけのオリジナルSoCを設計し、FPGA(Basys 3)で徹底的に検証し、最後はテープアウト(実チップ製造)基板化(PCB)まで一気通貫で目指します。これは完成した手順の清書ではなく、本当に動くチップが出来上がるまでの実験の並走記録です。人がアーキテクト(思想・設計判断)を担い、AIが実装と検証を高速に回す——その現代的な開発の姿そのものを、世界に示すことを目指します。

導入・宣言

序章:全体像と宣言 ― なぜ自作SoCなのか

かつて数億円・大企業の独占だった専用チップ設計が、OSSツールとクラウド製造で個人の手に。先輩ボード(Arduino UNO/CH32V003/ESP32-C)の弱点を上回る実用SoCを、人とAIの協働で作り上げる——本講座の地図と旗印を最初に掲げます。

この章を学習する
コア・分解

第1章:PicoRV32 徹底分解

基礎編では「さわり」だったPicoRV32の内部を、本格的に分解します。フェッチ・デコード・実行のステートマシン、レジスタファイル、ALU、シフタ、メモリインターフェースのハンドシェイク、そしてパラメータと面積・性能のトレードオフを読み解きます。

この章を学習する
アーキテクチャ・バス

第2章:Wishbone SoCの骨格

なぜ標準バスにそろえるのか。Wishboneを主バスに選び、PicoRV32を「最初に調達したIP」としてIP調達ワークフロー(7ステップ)を初実演します。アドレスデコーダとメモリマップを設計し、最小SoC(CPU+RAM+UART)を動かします。

この章を学習する
周辺IP・自作

第3章:基本周辺を自作 ― GPIO/タイマ/PWM

コアは無改造のまま、MMIOで周辺を足す思想を発展させます。Wishboneスレーブの書き方を型にして、自作GPIO・タイマ(周期割り込み)・PWMをバスにぶら下げ、プログラムから制御します。「自作するか、調達するか」の判断軸も学びます。

この章を学習する
外部メモリ

第4章:外部メモリ ― SPI Flash/RAM

先輩ボードの「メモリが非力」という弱点を、外部SPI FlashとRAMの実装で正面から脱します。これは後のMicroPython移植や、本格的なプログラム格納の土台にもなります。コントローラIPを調達し、メモリマップへ統合します。

この章を学習する
通信(有線)

第5章:有線通信 ― UART/SPI/I2C/Ethernet

各IPでIP調達7ステップを反復します。UART・SPI・I2Cで外部チップを制御し、バスブリッジでAXI/APBのIPも取り込みます。さらにEthernet(有線LAN)へ広げ、Webhook/MQTT/サーバ連携という実用機能の考え方まで見渡します。

この章を学習する
外部接続

第6章:外部接続 ― microSDと無線モジュール

第5章で作った通信(SPI・UART)を再利用し、二つの実用機能をつなぎます。記憶はmicroSD(SPIモードで「ただのSPIデバイス」)、ネットへの声は技適済みの無線モジュール(UARTで対話)。新規IPはゼロ。USBホストという難所を避け、確実な外付けで実用に着地させる判断を、正直に示します。

この章を学習する
法規・留保

第7章:技適(電波法)の扱い

無線ICを基板に載せず、技適済みドングルを外付けして「有線機器」とする設計思想を扱います。ただし合法性は構成・用途・改造で変わるため、断定を避け、一次情報(総務省・登録証明機関)に必ず当たる——保守的な姿勢を貫きます。

この章を学習する
差別化の主役

第8章:音声サブシステム

先輩ボードがどれも弱かった「音声」を、本ボードの主役級の差別化軸に据えます。FPGAが音声に強い理由(並列処理・DSP・PWM)を活かし、I2S入出力IPを調達し、マイク→処理→スピーカの流れを作ります。

この章を学習する
フィジカルAIの足回り

第9章:モータードライブ

フィジカルAI時代を見据え、モーター制御を組み込みます。端子からは大電流を流せないため、外部モータードライバICと組み合わせ、PWMと方向制御でDCモータ・ステッピング・サーボを動かします。ボードに「身体」を与える章です。

この章を学習する
入出力・限界

第10章:カメラ・表示

カメラ取り込みと画面表示に踏み込みます。ただし帯域・処理は重いため、低解像度・静止画~低フレームという現実的な範囲に正直に線を引きます。「何ができて、どこからが基板化・上位連携の話か」を誠実に示します。

この章を学習する
ソフトの足場

第11章:ソフトの足場 ― Arduino/MicroPython

「使えるボード」にするための土台です。RISC-V GCCツールチェーン、Arduinoコア(digitalWrite等をMMIOに結ぶ薄い層)、boards.txt、UARTブートローダ。さらにMicroPython/CircuitPython移植の道筋(外部RAM前提)まで見据えます。

この章を学習する
検証・集大成

第12章:徹底検証 ― シミュレーションとAI活用

テープアウトは一発勝負。だから検証に最大の時間を割きます。Verilator/Icarus Verilogでテストベンチを書き、異常系を網羅し、AIをIP探索・グルーコード生成・波形デバッグに活かします。最後にサインオフ前チェックリストを置きます。

この章を学習する
テープアウト

第13章:テープアウト ― LibreLane/OpenROAD

FPGAで固めたRTLを、いよいよLibreLane(内部でOpenROADが配置配線を担う)へ渡し、GDSIIへ変換します。DRC/LVS/STAでサインオフし、Tiny TapeoutやEfabless系シャトルへ提出します。ここがASIC化の本筋への入口です。

この章を学習する
ゴール・基板

第14章:基板化(PCB・KiCad)

本講座のゴール。届いた実チップのピンに合わせ、KiCadで回路図と基板を設計します。外部Flash・RAM・水晶・LDO・USB-UART・microSD・技適済み無線モジュール・音声・モータドライバ・Ethernetを載せ、JLCPCB等へ提出。実用ボードとして完成させます。

この章を学習する
完成・宣言

終章:実チップ検証と、世界への宣言

製造から数ヶ月後、届いた実チップを基板で動かして検証します。設計との食い違いをテキストへ反映し、ここで初めて本講座は「完成」とします。AI時代に、誰もが世界のどこからでも挑めるという宣言で締めくくります。

この章を学習する

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

本テキストは、かつて高価な専用ツールと大企業の設備を必要とした「独自プロセッサ・独自チップの設計」を、オープンソースのEDAツールと、入門用FPGAボード、そしてクラウドの製造シャトルによって、個人や小規模チームの手で試せるものとして体感していただきたいという思いで公開しています。これは完成済みの手順書ではなく、著者自身が実際に設計・検証・製造を進めながら綴る実験の並走記録です。そのため本文中には、「未検証」「要・実機確認」「候補の取り違えがあり得る」といった留保が随所に現れます。これらは欠陥ではなく、実験の途中であることの誠実な表示です。

とりわけ、外部のオープンソースIP(回路データ)の名称・作者・ライセンス・対応バスといった情報や、開発ツールのバージョン、対応デバイス、各種の入手性、そして電波法(技適)をはじめとする法規は、更新・変動が速く、また取り違えも起こり得ます。本文ではこれらを断定せず、必ず各提供元の一次情報・公式情報をご自身で確認していただくようお願いしています。価格・バージョン・法規といった変動する事項について、特定の数値や断定的な結論を本文に固定しないよう努めています。

本テキストの内容を試した結果として生じたいかなる損害・不都合についても、著者は責任を負いかねます。実際に作業される際は、各ツール・IP・サービスの最新の公式情報を必ずご確認のうえ、自己の判断と責任において進めてください。こうした限界をお断りしたうえで、それでも本テキストが、「自分のチップを作ってみたい」と願う誰かの一歩の支えとなれば、これに勝る喜びはありません。