ミニマルファブ-フルカスタム設計 with LTspice

ミニマルファブPDKのリファレンス・マニュアルに掲載されているEDAツールのインストール手順は、別の投稿で示したとおりですが、私はXschemの操作にあまり慣れていないので、LTspiceを回路図エディタおよびシミュレータとして使いたい、ということで、LTspiceを使ったフルカスタム設計手順もメモしておきます。確認した範囲では、NgspiceとLTspiceのシミュレーション結果は、完全に一致しているようです。以下、LTspiceの操作は慣れているものとして説明します。

1.MOSFETパラメータファイル

ミニマルファブPDKのMOSFETモデルパラメータ(BSIM3v3 Level=8)は、LTspiceでそのまま読み込みができます。LSWにミニマルファブPDKがインストール済みとします。

  1. エクスプローラ(ファイルマネージャー)の左ペインより Linux – Ubuntu (使用しているディストリビューション) – <ユーザ名> を開く
  2. さらに、.klayout – salt – ICPS2023_5 – Technology – tech – models を開く
  1. デバイスパラメータファイルSOI_CMOSをLTspiceの作業フォルダにコピー

2.LTspiceでシミュレーション

  1. LTspiceに下図の回路を入力してシミュレーションを実行
    • MOSFETのシンボルは、nmos4, pmos4を使用
    • n-ch と p-ch MOSFETのモデル名とサイズは表1のように設定
表1 MOSFETの設定
Parametern-chp-ch
Model Namenchpch
Length10u10u
Width13u61u

[参考] Xschemの解説でも述べたように、LSIの設計では、電源端子名をVDD, VSSとし、グローバルな配線GNDを使用しないことをお勧めします。GNDがないとシミュレーションの実行時にエラーが出ますので、上図のように両電源を使用し、負電源が必要なければ、負電源電圧を0Vとします。

3.ネットリストの出力

  1. LTspiceのメニューより、View – SPICE Netlist
  2. 表示されたネットリストの表示ウインドウ上で右クリックし、Edit as Independent Netlist を選択し、ファイル名をつけてネットリストを保存(例:inv.cir)
  3. 保存したネットリストを、エクスプローラ(ファイルマネージャー)で、KLayout の作業ディレクトリ (Linux – Ubuntu – <ユーザ名> – 作業ディレクトリ) にコピー

4.KLyoutによるLVSの実行

  1. KLayout でレイアウトを入力(マニマルファブPDKによるフルカスタム設計実習を参照)
  2. KLayoutのメニューより、Macros – Get Reference for ICPS2023_5 を選択し、保存したLTspiceのネットリスト(例:inv.cir)を選んで、Openボタンをクリック
  3. KLayoutのメニューより、Tools – LVS – LVS for ICPS2023_5 を選択
  4. Netlist Databese Browser が起動するので、エラーがないことを確認

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