JapaneseEnglish
フルカスタム回路設計

  1. 統合開発環境の起動

    Cadence ICツール(統合開発環境) + Mentor Calibre(設計規則チェッカー)を作業ディレクトリで起動する。

    vlsi> setlic
    Cadence IC6に相当する番号を入力
    vlsi> setlic
    Mentor Calibreに相当する番号を入力
    vlsi> cd  ~/d
    vlsi> virtuoso &
    

    以上で、Cadence ICツールのCIW(Command Interpreter Window)が起動する。

  2. 新規設計ライブラリの作成

    1. CIWのメニューから、Tools > Library Manager... を選択し、Library Managerを起動。
    2. Library Managerのメニューで、File > New > Library... を選択し、Ltickaという名前の設計ライブラリを新規作成。保存ディレクトリは、librariesを選択。

      New Library

    3. Technology File for New Libraryフォームが表示されたら、Compile an ASCII technology file を選択。
    4. Load Technology Fileフォームが表示されたら、Browse...ボタンをクリックし、rohm180technology_ic6.tf を選択して、OKボタンをクリック。
    5. Library ManagerのLibrary欄に、Ltickaが追加される。

  3. 回路図の作成

    1. Library Managerのメニューで、File > New > Cell View... を選択し、下図のように設定して、roscという名前のセルを作成。Typeは、schematic(回路図)、Open withは、Schematic XL(回路図エディタ)とする。

      New Schematic

    2. リングVCOの回路図を入力(回路図入力例)。

      Ring Oscillator Schematic

      [参考] インバータを奇数段接続して、フィードバックさせることにより、リングオシレータと呼ばれる発振回路を構成できる。インバータ段数が多いほど、発振周波数は低くなる(1段では発振せず、3段のとき発振周波数が最大)。上記回路図のように、インバータの電流経路にMOSFETを追加し、外部からインバータの電流を変更することにより、インバータの遅延時間を調整し、リングオシレータの発振周波数を制御する回路は、リングVCO (Voltage Controlled Oscillator)と呼ばれる。さらに、上記の例では、カレントミラー回路を使用して、F_CTRLに流し込む電流値で、発振周波数を制御しているので、厳密には、Current Controlled Oscillatorになっている。

      使用部品(iキーで呼び出し)
      LibraryCellViewDescription
      vdecRO180PDKnmos18hspiceD1.8V仕様n-ch MOSFETモデル
      vdecRO180PDKpmos18hspiceD1.8V仕様p-ch MOSFETモデル
      analogLibvddsymbol
      analogLibvsssymbol

      [参考] 入力および出力ピンのシンボルは、pキーで呼び出すことができる。

      MOSFETの寸法を設定(qキーで設定フォームを開く)
      TypeLWMultiplier(並列接続数)
      n-ch MOSFET180n1u1
      p-ch MOSFET180n2u2

      MOSFETのドレイン面積AD、ドレイン周囲長PD、ソース面積AS、ソース周囲長PSは、以下の計算式で求めて代入すること。

      AD = AS = 0.5um*W (ex. W=1um のとき、AD = AS = 0.5p)
      PD = PS = 1u + W (ex. W=1um のとき、PD = PS = 2u)
      
  4. シンボルの作成

    1. 回路図エディタのメニューより、Create > Cellview > From Cellview... を選択し、下記のように設定。

      Create Symbol

      Create Symbol 2

  5. テストベンチの作成

    1. Library Managerで、tb_roscの名前でセルを新規作成し、測定回路(テストベンチ)を入力(測定回路入力例)。
      抵抗値は、変数rbiasを設定して、シミュレーション時に代入する。
      出力端子と負荷容量の間の配線には、OUTの配線名を付けておく。

      Ring Oscillator Testbench

      使用部品(iキーで呼び出し, qキーで値設定)
      LibraryCellViewDescription
      Ltickaroscsymbol
      analogLibressymbolResitance = rbias
      analogLibcapsymbolCapacitance = 6f
      analogLibvdcsymbolDC Voltage = 0.9
      analogLibvddsymbol
      analogLibvsssymbol
      analogLibgndsymbol

  6. シミュレーションの設定

    1. Library Managerのメニューより、File > New > Cell View...を選び、下記のように設定して、テストベンチにadexl viewを作成。adexl viewは、シミュレーション設定を管理する。

      adexl view

      ADEXL

    2. ADEXLのツールバーで、Create Test(歯車のアイコン)をクリックして、Test Editorを起動。Choosing Designフォームで、Library Name = Lticka, CellName = tb_rosc を選択して、OKボタンをクリック。

      Test Editor

      Test Editorの設定

      1. Setup > Simulator...
        Simulator = hspiceD
      2. Setup > Model Libraries...
        <Click here to add model file>をクリックし、さらに...ボタンをクリックして、下記のモデルファイルを指定する。Section欄は、ドロップダウンリストによりMOSFETの特性の統計ばらつきに対する偏差を選択する。NTとPTは、それぞれ、n-ch MOSFETとp-ch MOSFETのモデルパラメータが平均値(偏差ゼロ)である。
        Model FileSection
        spice/hspice/bu40n1.mdl
        spice/hspice/bu40n1.skwNT
        spice/hspice/bu40n1.skwPT
      3. Simulation > Convergence Aids > Initial Condition...
        回路図でOUTの配線をクリックし、初期電圧0.9を設定する(※)。
      4. Analyses > Choose...
        Analysis = tran, Start = 0n, Stop = 100n, Step=0.1n に設定し、Enabledにチェックを付ける
      5. Variables > Edit...
        Name = rbias, Value(Expr) = 1 に設定
      6. Outputs > Setup...
        From Designボタンをクリック > 回路図上で配線名OUTをクリック > ESCキーで終了 > Setting Outputs フォームのOKボタンをクリック
      7. Simulation > Analog Options > Interface Options
        POST = ASCII(2)

      [参考] 正帰還回路の回路方程式は、複数の解を持つため、初期条件を指定しないとシミュレーションができない。回路シミュレータは、自動的にバイアス点を求めて初期条件とし、Transient解析を行うが、バイアス点を初期状態とした場合には、発振状態の解は得られない。このため、正帰還ループ内のノードにバイアス点からずらした初期電圧を与える。ここでは、OUT端子に0.9Vを与えた。初期電圧の与え方によって、定常状態になるまでの時間が違ってくるので注意。

    3. Test Editorのメニューで、Simulation > Netlist > Create
    4. 新規ウインドウが起動しネットリストが表示される

    5. ネットリストのウインドウメニューより、File > Save As...
      シミュレーション用のディレクトリ内に適当なファイル名を付けてネットリストを保存(例: sim\rosc.sp)

  7. ネットリストの編集

    1. 回路シミュレータ(HSPICE)用にネットリストを修正して保存する。
      vlsi> emacs  rosc.sp &
      
      Netlist 1

      Netlist 2

      変更箇所は、.OPTION 以下の部分と.END の前の部分である。

      +     ARTIST=2   →    行頭に * を追加
      +     PSF=2      →    行頭に * を追加
      .END の前に、.ALTER と .PARAM ディレクティブを追加
      
      [参考] HSPICEは、.ALTER行までシミュレーションを実行すると一時停止し、設定を変更して再度シミュレーションを行う。この例では、.PARAM で、次々とrbiasの値を変更してシミュレーションを繰り返している。

  8. 回路シミュレーション

    1. シミュレーションの実行
      vlsi>cd  ~/d/sim
      vlsi> setlic
      Synopsys HSPICEに相当する番号を入力
      vlsi> hspice  rosc.sp
      
            .
            .
            .
            .
      >info:         ***** hspice job concluded
      
      上記のように、hspice job concluded が表示されたら、シミュレーションが成功している。 エラーが表示される場合は、ファイル名が正しいか、ネットリストが正しく編集されているかを確認する。
    2. シミュレーション結果の確認
      シミュレーション結果は、CosmosScopeでグラフ表示することができる。
      vlsi> cscope &
      
    3. CosmosScopeのメニュー: File > Open > Plotfiles...
    4. rosc.tr0 から rosc.tr6 までをShiftキーを押しながら選択し、Openボタンをクリック
    5. 各ファイル毎に、信号名のリストウインドウが起動するので、出力信号の電圧波形 v(out) を選んで、Plotボタンを押す。

      CosmosScope

    6. CosmosScopeウインドウ下部のツールボックスのMeasurement Toolを使って振幅、位相、周波数などを測定することができる。


[Table of Contents] [Next]


お問い合わせはこちらまで: kitagawa@is.t.kanazawa-u.ac.jp

Copyright (C) 2016- Akio Kitagawa, Kanazawa Univ.