オープンソースPDKの戦略的思考

1990年、NHKが「電子立国日本」と持て囃した半導体業界に 30年ぶりでスポットライトが当たっています。舞台に立っているのは最先端製造技術ですが、ここでは、半導体の設計の話題を文書化したいと思います。2023年12月3日にアップした[「**PDK今昔物語**」](https://qiita.com/jun1okamura/items/6b76168f11f04027fbd9)、2024年8月1日にアップした[「**半導体ビジネスの定性的コスト分析論**」](https://qiita.com/jun1okamura/items/46baa5a35066f18a0801)、2024年12月23日にアップした[**「作りたい半導体、使いたい半導体」**](https://qiita.com/jun1okamura/items/4b74af3a7b4b9e49ebff)に続く設計関連の話題となります。お陰さまで、今でも多くの方にアクセス頂いております。半導体に関係する方々の、設計方面にかかる理解の一助になったなら大変うれしいです。

今回は「**オープンソースPDK (Process Design Kit) の戦略的思考**」と題して、オープンソースPDKにかかる話題を、わかり易く説明したいと思います。半導体設計者だけでなく、半導体製造受託企業（ファブ）や、半導体関連ビジネスを企画する方々にも参考になる内容として膨らましていますので、ご笑読頂ければ幸いです。

:::note info
[The English version is here which was translated by OpenAI-o1](https://jun1okamura.medium.com/strategic-thinking-on-open-source-pdk-5fb8f7522122)
:::

:::note warn
なお、本内容は、過去の業務経験を元にした、個人的意見・見解の表明であり、いかなる組織を代表したものではありません。
:::

# オープン・ソース・シリコンとは何か？

「**オープン・ソース・シリコン**」というエコシステムは、以下の３要素から構成されます。

> 1. オープンソースの設計ツール(EDA)にて設計し、その設計ソースファイルや設計スクリプトの公開が可能であること、また、第三者による検証・改良・複製が可能なように、コミュニティにて共有できること
> 2. オープンソースのプロセス情報 (PDK)にて設計し、設計資産(Net・GDSII等)やソースファイル(RTL等)を公開することが可能であること、また、第三者による検証・改良・複製が可能なように、コミュニティにて共有できること
> 3. 上記１、２で設計したオープンソース設計チップを製造する受託サービス(ファブ)が存在し、設計したハードウェアの動作を検証できること

以下、なぜ「オープン・ソース・シリコン」というエコシステムが必要なのか？更に、そのビジネス的な**戦略的思考**に関し議論を展開します。

# PDK (Process Design Kit) とは何か？

拙作の[「**PDK今昔物語**」](https://qiita.com/jun1okamura/items/6b76168f11f04027fbd9)に歴史的な経緯を詳しく記載していますが、現在では、設計受託サービスを「提供する側」と「利用する側」の間での**バズワード**的に、**PDK ＝ 設計工具箱** として使われています。

この理解は、ビジネス上の会話に使うには便利だし、決して間違っている訳ではありませんが、**PDK ＝ 設計工具箱**と概念的に捉えているが為に、「**我社の設計工具箱を公開するなんてまかりならん！**」「**我社の設計工具箱には秘密が詰まっている！**」等々のロジックが展開することの遠因となっているとも感じています。

前述したように、「オープン・ソース・シリコン」というエコシステムには、**オープンソースPDK** が必須条件ですので、ここでは、もう少し詳しくPDKの中身を紐解いていいきます。

## PDK のレベル分け

以下のように PDK を階層に分けて整理してみます。

![Slide4.jpeg](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/1038104/8fa0ac43-4bdb-e1a8-b477-72d02349e406.jpeg)

Level-1 は、俗に Technology ファイルと呼ばれている階層です。Level-2 はロジック LSI 設計で必須となる、基本 Library ファイルと呼ばれている階層になります。

:::note info
Ｃプログラム言語に精通している方であれば Technology ファイルは OS へのシステムコール関数、Cell Library を Stdlib ライブラリだと理解してください。実応用分野に対応して多くのＣライブラリがあるのと同様に、PDK にもより上位の階層(Level-3...)として、多くの **IP(設計資産)** が存在します。それらはプロセス世代や利用EDAツール毎に異なるものであり、自社や商用ベンダーの知財（例えば ARM の ISA とか）として権利化されている場合も多いので、オープンソースとして公開するのは困難です。
:::

以下、PDK として Level-1 に分類されている情報に関して深堀りします。

## SPICE モデル

**SPICE** は UC Berkeley で開発された[回路シミュレーター](https://en.wikipedia.org/wiki/SPICE)です。UCB での開発は止まっていますが、オープンソースEDAとして [Ngspice](https://en.wikipedia.org/wiki/Ngspice) や [Zyce](https://xyce.sandia.gov/) が、現在でも開発が進められています。またフリーの SPICE も広く流通しており [LTspice](https://www.analog.com/jp/resources/design-tools-and-calculators/ltspice-simulator.html) が有名です。

オープンソースPDKとして必要なのは、SPICE 向けの**デバイスモデルファイル**になります。**デバイスモデル**とはトランジスタ等の基本デバイスの電流電圧特性等を数式として表したものであり、**デバイスモデルファイル**とは、デバイスモデルに紐ついた一連の**パラメーターの情報**です。

:::note warn
パラメーターの値は、微細化プロセスや製造材料により異なりますので「**社外秘**」であると結論づけることも可能です。また、SPICE モデルパラメーターの抽出を第三者に委託している場合は、その契約内容によっては、権利の所属上「**公開出来ない**」という結論になります。
:::

一方で、ディスクリート半導体メーカーは製品の SPICE モデルをインターネットで一般公開しています。国内メーカーの[東芝デバイス](https://toshiba.semicon-storage.com/jp/semiconductor/design-development/eda-cad-lib/ltspice-library.html)、[ROHM](https://www.rohm.co.jp/support/design-model) や [Renesas](https://www.renesas.com/ja/support/eda-data) 等も公開しています。

:::note info
製品購買の判断として、シミュレータで当該デバイスのユーザー回路上での動作を確認することが、フリーやオープンの SPICE を手元の PC で実行出来る現在では、一般的になっている為です。
:::

国内の半導体ファブの関係者と会話をすると「**デバイスモデルファイルはトランジスタの性能がわかってしまうので、NDA を結ばないと公開出来ません**」と言う発言を耳にします。確かに、超最先端（Single nm）プロセスでの超先端デバイス（GAA）にとっては、その SPICE モデルに含まれるパラメーターが、死活的に重要な超守秘事項になるでしょう。

**しかしながら、多くのディスクリート半導体メーカーが SPICE モデルを公開しているように、レガシープロセスでの製造受託サービスにおいては、オープンPDK として公開することが、不特定多数のユーザーが製品（つまり製造受託）の委託を検討する為の営業サポート材料となるのでは無いでしょうか？**

:::note info
同じデバイスモデルファイルであったとしても、オープンソースPDK として公開したモノと、製造受託契約を結んで公開したモノでは、責任の所在が異なります。つまり、オープンソースPDK として公開したモデルの利用責任は**ユーザー**にあり、製造受託契約を結んで公開したモデルの管理責任は**製造受託会社**にあります。言い方を変えれば、オープンソースPDK として公開したモデルへのサポートや改修要求の権利は**ユーザー**にはありません。一方、製造受託契約を結んで公開したモデルへのサポートや改修要求に**製造受託会社**は答える必要があります。
:::

## DRC/LVS ルール

デザインルール(最小線幅等）をチェックする **DRC(Design Rule Check)** ルールは、LSI のレイアウトを設計する為に必須の情報です。最近は、フリーの PCB レイアウトソフト( [KiCad](https://www.kicad.org/) 等)を使って手元の PC で PCB のレイアウト設計が出来ますが、**PCB 製造受託企業** (P版.com, JLCPCB やPCBgogo等）は、[DRCルール](https://www.pcbgogo.jp/Capabilities/FR_4_PCB_Capabilities.html)を公開しています。

レイアウトと回路図との一致検証をチェックする **LVS(Layout Versus Schematic)** ルールも、LSI のレイアウトを設計する為に必須の情報です。PCB 向けレイアウトソフトでは、回路図入力が元々レイアウトツールにバンドルされていて、LVS を意識せずにレイアウトを設計できる機能 (Schematic-Driven Layout)があります。半導体設計においても、近年は同様の機能が商用 EDA ツールにて利用可能になっていますが、デバイス間の配線を繋ぐだけの PCB レイアウト設計と違って、LSI のレイアウト設計では素子(Trや抵抗・容量)を認識するためのルールが必ず必要となります。

国内の半導体ファブの関係者と会話をすると「**DRC/LVS ルールファイルはファブの加工能力やマスク構成がわかってしまうので、NDA を結ばないと公開出来ません**」と言う発言を耳にします。確かに、超最先端（Single nm）プロセスでの超先端デバイス（GAA）にとっては、寡占状態で競争している相手に対して、その DRC や LVS ルールに含まれるパラメーターが、死活的に重要な超守秘事項になるかも知れません。

**しかしながら、多くの PCB 受託企業が DRCルールを公開しているように、レガシープロセスにおいては、逆に公開することで、多くのユーザーが製品（つまり製造受託）の利用を検討する為に必須な営業サポート材料となります。LVSルールも然りです。**

:::note
利用する EDA ツールによっては DRC や LVS ルールのフォーマット自体に商用EDAベンダーの知財として権利担保されているものもあるでしょう。しかし、オープンソースPDK として公開する DRC や LVS のルールに必要な情報は、ファブが権利を持っている製造情報、ドキュメント記述された**数値**です。その数値をオープンソースEDA が読めるファイル形式に変換することでオープンソースPDK として公開できます。
:::

## Level-2

Level-2 に分類されている情報は、Level-1 の情報があればオープンソースEDA ツールを使って基本的に設計可能です。したがってオープンソースPDK として絶対に公開しなければいけない情報では有りません。但し、先行した Skywater や GlobalFoundries は Level-2 の情報も公開しています。Level-2 の PDK も公開した方が、スクラッチで設計する手間も省けるし、Level-2 に分類されている情報の多くは、もはや守秘義務で守る必要がないと判断されている証左です。

:::note
製造受託企業(ファブ)は、NDA の下で Level-2 の PDK を無償にて提供してくれますが、商用IP ベンダーにライセンス費を払えば、Cell面積の小さな Standard Cell ライブラリで設計することもできます。つまり、ファブから見ると Level-2 は製造受託ユーザー向けの無償サービスであるので、オープンPDKとして公開しやすいと思われます。
:::

## 無保証

一般に、ディスクリート半導体メーカーが公開している SPICE モデルは「**無保証**」です。つまり、製品を購買する前の回路検討に使うモデルにはメーカーは責任を負いません。あたり前ですね。オープンソースPDK では、オープンソースのソフトウェアで広く採用されている [**Apache 2.0**](https://licenses.opensource.jp/Apache-2.0/Apache-2.0.html) のオープンソースライセンスが使われていますので、公開されている情報は「**無保証**」「**責任の放棄**」の条件下で「**再配布**」が認められます。

PDK のオープンソース化の議論では、この「**オープンソースライセンス**」の仕組みや商用ライセンスとの違いを良く理解する必要があります。

:::note info
**オープンソースライセンス**は、ソフトウェアの世界では広く受け入れられていて、ビジネスにも組み込まれています。例えば、オープンソース系のメーカー( [**MySQL**](https://www.mysql.com/jp/about/legal/licensing/oem/) 等)は、**デュアルライセンス**を使って、オープンソースライセンス版をユーザーへの普及と製品のブラッシュアップに利用する一方で、商用ライセンス版では、ユーザーサポートと製品保証をすることで、ユーザーが **MySQL** を商用利用することを可能にしています。
:::

## Sign-off

前述した様に、オープンソースシリコンのエコシステムが完結する為には「**オープンソース設計チップを製造する受託サービス(ファブ)が存在し、設計したハードウェアの動作を検証できること**」が必須です。

一方、国内の半導体ファブの関係者と会話をすると「**オープンソースの SPICE モデルでのシミュレーション結果の確認や、オープンソースの DRC/ LVS でチェックした設計データーを受託製造受け入れ可能なのか？**」と言う発言も耳にします。

:::note info
通常、ファブレス設計会社は、ファブが認定した商用の **Sign-off** 用 EDA ツールとそのツール向けのテクノロジーファイルでエラーが無いことを確認した設計データー (GDSII フォーマット）をファブに提出します。一方で、ファブ側でも、受け入れ検査として商用の **Sign-off** 用 EDA ツールとそのツール向けのテクノロジーファイルでエラーが無いことを確認して、マスク制作に入ります。要は、最終データーを提出する側と受け取る側の両方で同じ商用の **Sign-off** 用 EDAツールにてエラーが無いことを確認するのが慣例となっています。
:::

海外で先行している **Google / efabless / Skywater** は、どの様に **Sign-off** 検証をしているのでしょうか？ 以下の図に、OpenMPW プロジェクトでの、それぞれの役割に関して簡単に纏めています。

![Slide6.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/1038104/487cd3b0-89f8-36eb-5c88-323076b938bb.png)

- Google は、Skywater と交渉し PDK を efabless にてオープンソースEDA 対応させて、シャトル費用も負担します
- Google が OpenMPW を宣伝して、自身が管理している Github のリポジトリにユーザーが設計データーを Push します
-  efabless はリポジトリから設計データー集めて、シャトル向けに複数の設計データーを１つにまとめて Skywater に TO します
- Skywater は、efabless からの設計データーを受け入れ検証した後に、製造ラインにて試作します
- 完成した Wafer は efabless に出荷され、代金が Skywater 支払われます。同時に efabless がパッケージングや PCB 等を手配して、ユーザーにチップが発送されます

つまり、

- efabless は、代理人(Proxy)として Skywater へ製造委託するユーザーを担当
- Google は、資金の供給者であり、リポジトリの取りまとめとして宣伝を担当
- Sign-off 時のオープンソースEDA と受け入れ検査は商用EDA 間の不整合に関しては、efabless が対応（新たなルール追加等）

:::note info
OpenMPW では Sign-off ツールとの不整合は、OpenMPW の代理人の **efabless** が、個人を含むユーザーとの間で解決しているので、ファブ側からは、代理人である **efabless** を、他の製造受託ユーザーと同様に扱えることになります。
また、ファブ側でも、オープンソースの Sign-off ツールでの受け入れ検査が可能になれば、将来的には代理人のリソースを軽減できるので、エコシステムの運営にかかる経費の削減も可能になります。
:::

## キーポイント

以上の議論を、オープンソースシリコンのエコシステムに必要なキーポイントとして纏めてみます。

- **PDK** と一言で括らずに、オープンソース化に必要な情報とは何か？それは NDA に値する情報なのかを熟考する
- **無保証**という概念を理解して、積極的にオープンソースPDK を新たなビジネススキームに組み込む
- **Proxy** がオープンソースシリコンのエコシステムでは、ファブとの窓口として必須な組織なことを理解する
- **ライセンス**は、ソフトウェアで権利関係の解釈がし尽くされた、オープンソースライセンス( **Apache 2.0** 等)を利用する

# なぜオープンソース化するのか？

以下、オープンソースPDK の戦略的な意義に関してまとめます。

## 1. 営業ツールとして
半導体ディスクリートメーカーが SPICE モデルファイルを公開している理由は、**顧客獲得の為に必要なサービス**だからです。レガシーファブが主体的にビジネスを**拡大活性化する**為には、顧客を増やす必要があります。その為には**営業ツール**が必要であり、オープンソースPDK を新たな**営業ツール**だと考えるべきです。

:::note
オープンソースのソフトウェアが、顧客ベースを増やすのと平行してビジネスを拡大する為に、**デュアルライセンス**で工夫していることは、ビジネススキームを考えるうえで重要な参考事例では無いでしょうか？
:::

:::note warn
多くの中小企業にとって、量産するか分からない段階での NDA 契約は、**参入障壁**になります。また、スタートアップに期待するなら、まずはアイデアを持っているだけの**個人**もビジネスの対象にする必要があります。将来の顧客拡大を狙うなら、**アカデミック**も優良な顧客ベースとなります。個人やアカデミックと NDA を結んで、**何を守り**、**どの様な保障**が担保できるのかを熟考すべきです。
:::

## 2. 半導体の設計教育環境として

個人や学生が個別に NDA を結んで商用 PDK や商用 EDA を入手することは、事実上不可能です。国内の大学には [**VDEC**](http://www.vdec.u-tokyo.ac.jp/) という商用EDA ツールを大学での研究開発に限って利用する仕組みがありますが、目的外非使用の宣誓書に捺印する必要があります。つまり面白いチップが設計出来ても [**Kickstarter**](https://www.kickstarter.com/) や [**Make:**](https://makezine.jp/) 等で販売することは出来ません。この[制限を緩める動き](https://ai-chip-design-center.org/aidc2020/aidc2020_wp_Public/)はありますが、自由に誰でもが無制限に利用することは出来ません。

自分の PC で動作可能なオープンEDA ツールと NDA 無しに利用可能なオープン PDK を使った半導体設計環境は、高校生、高等専門学校生、個人でも気軽に利用することができます。また、オープンソースライセンスは、基本的に商用利用を禁じていませんので、完成したチップを販売したり、設計した回路や IP をオープンソースとして公開しつつ、デュアルライセンスとして商用サポートすることも可能になります。

ソフトウェアの世界では、オープンソースを使った PoC (Proof of Concept) を起業のキッカケとしたり、投資家への技術の独創性をアピールして資金調達に利用しています。半導体の世界でも、新しいプレーヤーである起業家やスタートアップを生み出す土壌として、オープンソースシリコンのエコシステムが必須だと考えています。

## 3. オープンソース IP の涵養と経済安全保障

PDK には Level-3 に分類される、応用分野別の商用 IP が沢山あります。例えば、DDR2/3/4/5、USB2/3、PCIe3/4/5 等のインターフェース、また WiFi や　Bluetooth 等の無線通信、MPU なら ARM32/64 等々です。これらは通常、導入時と量産時（ランニング）にライセンス費用が発生します。

Level-1、Level-2 のオープン PDK があれば、Level-3 に分類される IP を独自に設計してオープンソースIP として公開することが可能になります。ソフトウェアの世界と同様に、個人や中小企業が、Level-3 に分類される IP を開発するエコシステムが整えば、それを起点としてスタートアップ企業が生まれたり、オープンソースIP の活用で初期投資を抑えながらも機能が豊富なチップを設計することも可能になります。

:::note info
欧州では、オープンソースPDK で設計した、Level-3 に分類される IP を域内にて独自に流通できる仕組みを目指しています。これは、商用IP のベンダーが米国メーカーに現状寡占されていることを、経済安全保障上の課題と認識していることの裏返しです。域内に半導体の製造拠点を持っていても、IP の供給を絶たれた場合、安全保障上重要なチップを新たに設計出来なくなる危険があるからです[^1][^2]。
:::
[^1]:[Recommendations and Roadmap for Open-Source EDA in Europe (2024)](https://qiita.com/jun1okamura/items/27681730f73c99dbd8e4)
[^2]:[Recommendations and roadmap for the development of open-source silicon in the EU](https://qiita.com/jun1okamura/items/332d1df15f85e3ba99ed)


# まとめ

オープンソースシリコンという新しいトレンドは「オープンソース化できる情報は何か？」、「オープンソース化した PDK を営業ツールとしてビジネスに活用できるか？」、「半導体を設計する新たなプレイヤーを底上げして拡大できるか？」、「半導体にかかる経済安全保障をどのように担保するのか？」等々、**戦略的な視点**で考える良い機会だと思っています。

近年、GAFA がこぞって独自半導体を設計して自らの製品やサービスに組み込んでいるのは、ソフトウェアでの実装からハードウェア（チップ）での実装に軸足を移していることの裏返しです。クラウド上のサービスをハードウェアに実装することで、コスト（電気代）を大幅に下げたり、処理時間を高速化することが可能になります。

また、INTEL や AMD 等の CPU メーカーが、独自の AI チップを発表しているのも、同じ理由です。必要な機能を実現するのに、汎用プロセッサー＋ソフトウェアでは競争力が十分ではないので、独自に AI 機能を実装することで差別化を図っています。

どちらも、従来は微細化に依拠してきた汎用プロセッサーの電力あたりの処理スピードの向上が近年鈍化していることが遠因です。

:::note info
生涯生産数が小さい為に、大きな初期投資が必要なハードウェア（チップ）への実装に手が届かなかった中小企業やロングテール製品でも、オープンソースシリコンというエコシステムを活用することで、汎用プロセッサー＋ソフトウェアでしか実装出来なかった、自社システムの KnowHow を独自のチップに実装し隠蔽・差別化することが可能になります。
:::

一般に半導体設計人材と言うと、集積回路をシリコンウェハに精緻に設計・実装する人材のことを指しますが、本来は、システム内の機能をどのように集積回路として切り出せば差別化できるか？システム設計者がサービス実装の選択肢の一つとしての集積回路を想像できる人材であるべきです[^3]。

[^3]:[「作りたい半導体、使いたい半導体」](https://qiita.com/jun1okamura/items/4b74af3a7b4b9e49ebff)

**Apple が Mac / iPad / iPhone を Apple Silicon で差別化していった事実から、独自半導体が最終製品の差別化に与えるインパクトの大きさが良くわかります。**

実装の選択肢の一つとしての集積回路の選択を構想できるシステム人材を育てる為に、集積回路を実装する微細化プロセスは問いません、半導体の微細化プロセスの選択は、必要な機能とコストで決まる変数です。オープンソースシリコンのエコシステムを使って、多くの新しいビジネス的な取り組みや半導体設計・システム人材を生み出していきましょう！