第8章:カスタムセルライブラリの構築と特性自動抽出(PDK拡張・自動化編)
本章は、これまでに学んだ「既存のツールと部品を使ってチップを作る」という設計者の視点から一歩進み、半導体を構成する最小部品である標準セル(スタンダードセル)そのものを自作し、設計環境を拡張する高度なインフラ開発プロセス(大学院発展レベル)を学びます。
本章の解説にあたっては、オープンソースEDA(OSEDA)分野で公開されているカスタムライブラリ自動構築の研究成果および開発ツール群を、正当なリファレンスとして引用・クレジット表記(本章末「8.4 謝辞・学術リファレンス」を参照)したうえで、その意義と数理的メカニズムを解説します。
8.1 標準セルを「自作・オリジナル設計」する意義と目的
半導体工場(ファウンドリ)が提供する標準的なPDK(SkyWater 130nmなど)には、最初からINVやNAND、DFFなどの基本部品が同封されています。それらをわざわざゼロから自作(スクラッチ設計)するのには、単なる真似事を超えた、以下のような明確な学術的・実務的テクノロジー上の目的があります。
1. 特定用途への物理特性の極限最適化
標準のセルは「無難にバランス良く動く」ようにトランジスタの寸法が決められています。これに対し、医療機器や宇宙環境、IoTセンサー等で要求される「超低電圧・低消費電力動作」や「耐ばらつき性能」を極限まで追求した、独自の物理構造(ガードリングや特殊なトランジスタサイズ)を持つオリジナルセルを設計し、性能差を叩き出すことが真の目的です。
2. 新材料・新プロセスノードへの先行対応
次世代のパワー半導体材料(GaNやSiC、酸化ガリウムなど)や、ファウンドリがまだライブラリを整備していない最先端・特殊プロセスにおいて、自社の手で標準セルの形状を規格化(Unit Width / Unit Heightの定義)し、LibreLaneのような自動配置配線(P&R)ツールが通るインフラ自体を創出します。
8.2 自作セルをLibreLaneに認識させるための必須2大データファイル
あなたがどれほど優れたオリジナルセルの物理レイアウトを設計しても、それだけではLibreLane(YosysやOpenROAD)は回路の中にその部品を自動配置できません。以下の2つの「セルの翻訳データ」をPDK(config.tcl等)に追加登録する必要があります。
① LEF(Library Exchange Format)ファイル
セルの外形サイズ、電源・グランドレールの位置、および外部ピンの接続座標情報のみを記述した「物理形状の抽象化データ」。OpenROADがセルの敷き詰めや自動配線を行う際に読み込みます。
② .lib(Liberty形式)ファイル
セルがどれくらいの電気を消費し、信号が入ってから出力されるまでに何ピコ秒かかるかという「遅延・電力の数理特性データ」。Yosysでの論理合成や、OpenSTAでのタイミング解析(Setup/Hold Slackの計算)に不可欠です。
8.3 【自動化の思想】キャラクタライザによる特性自動抽出
1つのオリジナルなセルライブラリを完成させるには、論理の多様性(AND/OR/XOR等)や駆動力(Strength: 1x, 2x, 8x等)を掛け合わせた、少なくとも100〜300種類の部品(セル品種)を揃える必要があります。さらに、セルの遅延時間($t_{pd}$)や遷移遅延($t_{td}$)は、一律の固定値ではなく、「入力信号の鈍り(Input Slew)」と「出力ピンに繋がれる金属線の負荷(Output Load)」の組み合わせによって細かく変動するため、膨大な数理マトリクス(Look-Up Table)を作成しなければなりません。
【遅延 LUT(Look-Up Table)のイメージ】
= 1つのセルにつき「遅延[ps] = f(入力slew, 出力load)」の表を持つ
出力負荷 Output Load (fF) →
│ 小 (1) 中 (4) 大 (16)
──────────────────┼──────────────────────────────
入力 速い (緩やか) │ 18 31 62
slew 中 │ 24 40 78
↓ 遅い (鈍い) │ 33 55 104 [単位: ps]
※数値は説明用の一例。このような表を AND/OR/DFF… × 駆動力(1x/2x/8x) の
全品種ぶん用意するため、手作業では現実的でない物量になる。
これらをすべて人間の手でSPICEシミュレータにかけ、手動で測定・数表化することは非現実的(キツい・不可能)です。そこで、半導体インフラ研究の世界では「退屈で膨大な重労働は、すべてスクリプトプログラムに自動実行させる(OSEDAの思想)」というアプローチをとります。
【カスタムセルライブラリの自動構築(キャラクタライズ)フロー】
┌────────────────────────────────────────────────────────┐
│ 1. 物理レイアウト自動生成 (Layout Generator) │
│ プロセス非依存構造から、特定製造ルール適合の形状生成│
└────────────────────────────────────────────────────────┘
│
▼
┌────────────────────────────────────────────────────────┐
│ 2. 回路シミュレーション自動実行 (Characterizer) │
│ 入力slew×出力loadを変化させたSPICEファイルを自動生成│
│ 裏側で ngspice 等を一斉に駆動し、伝搬・遷移遅延を測定│
└────────────────────────────────────────────────────────┘
│
▼
┌────────────────────────────────────────────────────────┐
│ 3. Liberty形式 (.lib) ファイルの自律出力 │
│ OpenSTA や Yosys が一発で解釈できるフォーマットへ集約│
└────────────────────────────────────────────────────────┘
8.4 謝辞・学術リファレンス(クレジット表記)
本章で解説した、異なるプロセステクノロジ向けレイアウトの自動生成技術、およびSPICEファイルを自律駆動させてLibertyファイルを出力するオープンソース・セル・タイミング・キャラクタライザの設計思想と実装アルゴリズムは、以下の研究成果および公開リポジトリに基づいています。
【参考文献・引用クレジット】
- S. Nishizawa et al., "Layout Generator with Flexible Grid Assignment for Area Efficient Standard Cell," IPSJ TSLDM., vol. 8, pp. 131-135, 2015.
- S. Nishizawa and T. Nakura, "libretto: An Open Cell Timing Characterizer for Open Source VLSI Design," IEICE Trans. Fundam., vol. E106-A, no. 3, pp. 551-559, 2023.
- GitHub公式公開リポジトリ(オープンソース・キャラクタライザ): https://github.com/snishizawa/libretto
まとめ: 本書を通じて、受講生の皆さんは「環境の構築」から始まり、「回路設計(フロントエンド)」「物理レイアウト生成(バックエンド)」「 SoCliteの統合」、そして最後の「最小部品(セル)の特性自動抽出の自動化思想」まで、現代のデジタル半導体設計を支配するテクノロジーの全階層を一気通貫で習得しました。このオープンソースEDAがもたらした民主化のバトンを引き継ぎ、ぜひ世界を驚かせる独自のシリコンチップを自らの手で創造してください!