ミニマルファブPDKのリファレンス・マニュアルに掲載されているEDAツールのインストール手順は、別の投稿で示したとおりですが、私はXschemの操作にあまり慣れていないので、LTspiceを回路図エディタおよびシミュレータとして使いたい、ということで、LTspiceを使ったフルカスタム設計手順もメモしておきます。確認した範囲では、NgspiceとLTspiceのシミュレーション結果は、完全に一致しているようです。以下、LTspiceの操作は慣れているものとして説明します。
1.MOSFETパラメータファイル
ミニマルファブPDKのMOSFETモデルパラメータ(BSIM3v3 Level=8)は、LTspiceでそのまま読み込みができます。LSWにミニマルファブPDKがインストール済みとします。
- エクスプローラ(ファイルマネージャー)の左ペインより Linux – Ubuntu (使用しているディストリビューション) – <ユーザ名> を開く
- さらに、.klayout – salt – ICPS2023_5 – Technology – tech – models を開く

- デバイスパラメータファイルSOI_CMOSをLTspiceの作業フォルダにコピー
2.LTspiceでシミュレーション
- LTspiceに下図の回路を入力してシミュレーションを実行
- MOSFETのシンボルは、nmos4, pmos4を使用
- n-ch と p-ch MOSFETのモデル名とサイズは表1のように設定

Parameter | n-ch | p-ch |
---|---|---|
Model Name | nch | pch |
Length | 10u | 10u |
Width | 13u | 61u |
[参考] Xschemの解説でも述べたように、LSIの設計では、電源端子名をVDD, VSSとし、グローバルな配線GNDを使用しないことをお勧めします。GNDがないとシミュレーションの実行時にエラーが出ますので、上図のように両電源を使用し、負電源が必要なければ、負電源電圧を0Vとします。
3.ネットリストの出力
- LTspiceのメニューより、View – SPICE Netlist
- 表示されたネットリストの表示ウインドウ上で右クリックし、Edit as Independent Netlist を選択し、ファイル名をつけてネットリストを保存(例:inv.cir)
- 保存したネットリストを、エクスプローラ(ファイルマネージャー)で、KLayout の作業ディレクトリ (Linux – Ubuntu – <ユーザ名> – 作業ディレクトリ) にコピー
4.KLyoutによるLVSの実行
- KLayout でレイアウトを入力(マニマルファブPDKによるフルカスタム設計実習を参照)
- KLayoutのメニューより、Macros – Get Reference for ICPS2023_5 を選択し、保存したLTspiceのネットリスト(例:inv.cir)を選んで、Openボタンをクリック
- KLayoutのメニューより、Tools – LVS – LVS for ICPS2023_5 を選択
- Netlist Databese Browser が起動するので、エラーがないことを確認

[参考] KLayout でレイアウトを保存した後、再読み込みすると、KLayoutのメニューからミニマルファブPDKのDRC/LVSマクロが実行できないことがあるようです。原因不明ですが、とりあえず、File – New Layout で新規レイアウト画面を開き(Technology = ICPS2023_5)、再読み込みしたレイアウト全体をコピペして File – Save As で同じファイルに上書き保存すると、LVSを実行することができます。