5月31日からRISC-V Days Tokyo 2022 Springがオンラインの形で開催されている。この3日目、13:10~13:50の枠でSHコンサルティングの河崎俊平氏らによる“Designing an Economically Viable SoC using open source EDA, PDK and IPs”というセッションが予定されているが、恐らくここで実例として取り上げられるであろうものが、MarmotというRISC-VベースのMCUである。このMarmotは、SHコンサルティングがNEDOの委託業務として行った取り組みではあるのだが、色々な意味で興味深い代物である。ということで、プレビューを兼ねてちょっとご紹介したい。
MarmotはRISC-Vベースの電源監視用MCUである。具体的にはIoT向けの機器の電源回路に接続し、電流値をセンシング回路経由で取得、ADC経由で取り込むという割とシンプルな機能であり、これだけならそれこそHoltekあたりの安価なMCUを買っても同等の事が出来る。
Marmotが独特なのは、その機能そのものではなく、
- eFablessを利用して構築。PDKにはSky130Aを利用し、MWP-5で製造
- プロセッサなどのIPは、Rocket SoC Generatorを利用
- エンジニア2人で、30日で基本設計からTape-outまで到達
といった、その開発フローにある。
まず1番目。eFablessは、Open Sourceの形でチップ製造を可能にすることを目的とした企業である。2020年12月、GoogleはSkyWaterと組んでOpen Sourceの形でチップ製造を可能にすることを発表したが、eFablessはこの際にパートナーとして選ばれている。SkyWaterはこちらで詳細が説明されているので割愛するが、このGoogleのプロジェクトではSkyWaterの130nmプロセスを利用して自分自身のチップを「無償で」製造できる。PDKや設計ツールはeFabless経由で提供される。現在はMPW-6というProjectが受付中(締め切りは6月8日)だが、SHコンサルティングはこの一つ前のMPW-5というProjectに応募した。
ちなみにこのGooleの無償プロジェクトではチップ製造コストは無料であるが、普通にSkyWaterのFabを使うと当然有償である。といっても、eFablessは他にも低コストのプロジェクトを用意している。例えばchipIgniteのshuttle 2206Qの場合、
- 9750ドルで100個のQFNパッケージ、もしくは300個のWCSPチップを提供
- チップ1000個を、1個20ドルで提供
の2種類の価格オプションを提供している。
MPW-5とか6の無償プランでは、入手できるチップは数十個で、試作とか評価はともかく量産には全然足りないが、逆に言えば量産手前までを無償で実現する事も可能だし、量産も割とお手軽な初期投資で実施できる。もちろん1000個で1個20ドルという金額をどう考えるかだが、これを例えば2ドルにしたければ、多分1万個レベルでは無理で、10万個位製造しないと無理だろう。ただそうした話はおいておくとして、eFablessを利用して実際に現実的なチップが製造できた、という点は大きい。
次に2番目。今回製造されたMarmotの構成がこちら(Photo01)。
周囲はCaravelである。CaravelというのはeFablessの側で用意している、いわば入れ物であり(Photo02)、最終的に設計部分にこのCaravelを組み合わせたものがMarmotとなる。
核となるE31 Core ComplexはRISC-VのRocket SoC Generatorを利用した。Rocket SoCは5ステージのIn-Order/1-issueの簡単な構成で、決して性能は高くない。ただ今回の用途を考えると、高性能なプロセッサは不要(というか、何なら8bit MCUでも十分間に合う)ことを考えると、動作周波数こそ25MHz程度が上限(これはRocket SoCよりも、OpenRAMにMappingしたI-Cache周りのタイミングがクリティカルな模様)となるが、これで十分間に合うと考えられる。というか130nmのMixed-Signal Processで25MHz出れば十分だろう。
ちなみに開発ツールはOpen SourceベースのOpenLaneが提供されており、これを利用してGDSの出力まで可能となっている(Photo03)。
さて最後の3番目。今回SHコンサルティングではエンジニア2人(それもこのプロジェクト専任ではなく、定時の作業時間外と土日を使って行ったそうだ)で、きっちり30日で完成したという。具体的には、
- 2月25日:MPW-5に参加を決定
- 2月26日:Wish Listを作成
- 3月16日:Rocket SoCの生成と論理シミュレーションが完了するが、論理合成ジョブで失敗。
- 3月17日:ジョブを実施するマシンのメモリ不足と判明。64GBメモリを搭載したDesktop PCを調達。
- 3月19日:OpenLaneのNetList合成が完了。まだDRCエラーが出ている状態。
- 3月21日:DRC及びLVSエラーが解消。
- 3月27日:GDS作成。ローカルプリチェックをパス。
といった流れだったらしい。もちろん色々問題はあったようだが、そのあたりは講演の中で語られるのではないかと思う。最終的にこのMarmotを搭載した電源基板(Photo04)で、きっちり所定の目的である電源監視が行えるところまでの検証が終わっている。
RISC-VというかRocket SoC GeneratorとeFablessの組み合わせで、安価かつ迅速にASIC開発を行う事は可能である、という事を立証できたのがこのプロジェクトの最大の貢献ということになる。
もちろん、これがどこまで意味があるのか? というのは難しいところである。SkyWaterが提供するのは先にも書いたが130nmのMixed-Signalで、もうこの時点で通常のデジタル回路を作るのには向いていない。またEmbedded Flashなどにも対応しない(130nm SONOS NVM IPは別途ライセンスされるから不可能では無いが)から、MCUを作るのにもあまり向いていない(今回MarmotはQPI経由で外付けのFlash Memoryを接続しているのに注意)。1万ドルで100ないし300個(つまりチップ単価は33~100ドル)ないし、2万ドルで1000個(同20ドル)というのも微妙なところで、この数ならローエンドのFPGAと同等だし、製造期間がかからない分FPGAの方が便利かもしれない(昨今は半導体不足を受けてそのFPGAの入手性が極端に悪くなっているのが問題ではあるが)。
ただ、その一方でそこまでの回路規模や性能は要らないが、汎用品を組み合わせるとうまくない、という事例もある。例えば電子タバコの場合だと、
- 利用者の吸う動作を検知して、カートリッジを加熱する。
- 中にはその際にファンを動かす場合もある。
- 複数のカートリッジに合わせて、加熱あるいはファン稼働のプロファイルを変更する必要がある。
- 簡単でもいいからバッテリ管理機能があった方が好ましい(別チップでも可能だがBOMコストが上がる)
- 簡単でもいいからUI(LEDと押しボタン程度で十分)が必要
ということになる。これを実現しようとすると
- 省電力のMCU
- ヒーターと、場合によってはモータ駆動用のAnalog出力
- LEDドライバとGPIO
- バッテリ管理(充放電管理とバッテリ残量監視)機能
が必要になる。
こうした機能を実現するには、Mixed-Signalの方が有利(モータ駆動とかヒータ駆動のため)になるし、動作速度そのものは遅くてもいい(代わりに省電力性が必要)だから、130nm程度は手頃なプロセスである。これを汎用品で構成すると、どうしても3~4チップ構成になるからBOMコストと実装面積の両方で不利である。生産数量も10万台のオーダーになるから、FPGAを使うよりもASICを起こした方が効率的である。
つまるところ、SkyWaterの130nm Mixed-Signalに適したアプリケーションがうまく見いだせて、かつ数量が期待できる様であれば、プロトタイプは極めて安価に製造ができるし、その開発もRISC-Vを使えば安価かつ迅速に可能、ということを今回は実証した形だ。あとはこうしたアプリケーションをどれだけ国内の企業が見いだせるか、というあたりが今後の課題ではないかと思う。