2020年11月10日火曜日

SPICEとSpectreの違い

SPICE は修正接点解析(Modified Nodal Analysis)つまり電圧保存則(KVL),Spectre は電荷保存則(KCL)で回路を解く.

正確には,ニュートン法での収束判定において,SPICE はタイムステップ前後の電圧差分と電流差分が一定値以下になれば収束と判定し,Spectre は電流差分ではなく電荷差分が一定以下であれば収束と判定する.電荷を判定に使う事で,Spectre は SPICE に比べ異常な点での収束を防ぐことができる利点がある.

Reference: Ken Kundert, "Simulation of Analog and Mixed-Signal Circuits", https://kenkundert.com/docs/bctm98-MSsim.pdf


2020年11月7日土曜日

ポリ,シリサイド化ポリ,配線の抵抗の関係

回路をコンパクトに作るためにゲート(ポリシリコン)で配線をする事はよくあるのだけれど,とあるプロが「ポリ配線は抵抗が大きいので多用すると性能低下につながるから止めた方がよい」と意見していた.

実際に調べてみると,とあるプロセスでの配線抵抗をを1Rとすると

Non-Siliside Poly 7000 R [Ohm/sq.]

Siliside Poly 100 R [Ohm/sq.]

M1 1R [Ohm/sq.]

となかなか大きい事がわかった.Siliside 化しても抵抗が高いのは意外だったけれど,よく考えればタングステンシリサイドやチタンシリサイドの薄膜だから銅・アルミ配線に比べて抵抗は高くなるか.

東芝の論文によるとシリサイドは 0.4 um 世代から使われ始めたらしい[1].

Google Skywater  130nm プロセス(元はCypressのファブだったらしい) は TiN による Local Interconnect という変わった層があるけれど,これはメタル層に比べて抵抗が100倍高いそうだ[2].配線層以外は結構抵抗高いのね.

[1] 杉本 茂樹,神垣 哲也,上條 浩幸,"半導体プロセス技術の進歩と課題", 東芝レビュー, 2004年8月,https://www.toshiba.co.jp/tech/review/2004/08/59_08pdf/a02.pdf

[2] Tim Edwards, "Google/SkyWater and the Promise of the Open PDK", in Workshop on Open-Source EDA Technology, 2020

2020年11月6日金曜日

IC Compilerにて配線方向を指定する(set_preferred_routing_direction)

 IC Compilerにて配線の方向を設定するには,set_preferred_routing_direction オプションを使う.

set_preferred_routing_direction -layers {Mx My} -direction [vertical|horizontal]

テクノロジーファイルなどに,あらかじめ配線方向が規定されている場合もある.この設定を消すためには remove_preferred_routing_direction を使う.

remove_preferred_routing_direction -layers {Mx My}

フロアプランを決めてしまうと配線方向は変えられないので,create_floorplan コマンドの前に実行すること.

2020年10月21日水曜日

VIMのスペルチェッカーの塗りつぶし方法を変える

VIMでスペルチェックをかけると違反箇所は標準で赤塗りになるが,カラースキームによっては非常に見づらい.hilight SpellBadコマンドで制御できるのだが,うまくいかない場合はColorSchemeコマンドで囲うとよいようだ.

set spell
set spelllang+=cjk
autocmd ColorScheme * hi clear SpellBad
    \| hi SpellBad cterm=underline ctermbg=black
colorscheme ron

アンダーラインのみに変えた.


Source: 
jshint vimrc SpellBad customization does not stick
https://stackoverflow.com/questions/17333210/jshint-vimrc-spellbad-customization-does-not-stick

2020年8月23日日曜日

IC Compilerの配線長に制約を設定する (set_max_length)

IC Compile rでは通常使用する配線長に制約はない.意図的に制約を設けたいときは,
set_max_length オプションを使用することができる.
> set_max_length integer design
このオプションは設計者がトップレベルで配線バッファを挿入することを想定しているので,バッファ挿入コマンド create_buffer_tree と併用することが想定されている.
> set_max_length integer design
> create_buffer_tree -on_route
create_buffer_tree コマンドを実行するとバッファの挿入と配線がされてしまうので,配線を後でしたい場合は -skip_detail_route オプションをつけるとよい.

2020年8月21日金曜日

Calibre で cell is referenced but not defined とエラーが出る

Calibre LVS で
ERROR: Cell cellname is referenced but not defined
と表示されて LVS が止まる場合,GDS 中で参照されているセルのレイアウトが空である可能性がある.例えば参照している Milkyway が参照している Milkyway (孫)の参照が切れた状態で GDS を出力すると,孫に格納されていた Cell View が読み取れず空のレイアウトができてしまい,LVS が実行できなくなる.

とりあえず動かしたい場合は,空の GDS を参照しているマクロを GDS とソースネットから削除すれば LVS が動くようになる.

ソースネットではなくて GDS に問題があるので注意.なお DRC でも同じ違反がでます.

2020年8月12日水曜日

Mi Max 3

寿司食って膨らんだ男が浅草で爆発するCMで有名なXaomiのMi Max 3を買った.4月1日に注文したのに届いたのは4月22日だった.Amazon.co.jpで買ったのに中国直送とは思ってなかった…(COVID-19で物流が混乱している中申し訳なかった).



デカイデカイ言われるけれど,XPERIAより一回りちいさい.片手で十分持てる.


なぜかマスク2枚入ってた.日本でCOVID-19流行っているからかな,ありがたや.

2020年8月4日火曜日

Calibre xRC/xACT の出力ファイルを1つにまとめる

Calibre xRC/xACTの出力ファイルは,なぜか3つのファイルが出力される.手動でまとめてもよいが,Calibreのルールファイル中のネットリスト名指定時に SINGLEFILE オプションを与える事ではじめから1つのファイルに設定することができる.

PEX NETLIST "CELLNAME.spi" HSPICE 1 SOURCENAMES SINGLEFILE

2020年8月1日土曜日

BSIM-CMGでトランジスタ特性をばらつかせる

BSIM-CMGでトランジスタ特性をばらつかせるには,以下のモデルパラメータが利用できる.DELVTRAND,U0MULT,ISD0MULT以外はモデルパラメータとしてあらかじめ存在しているものである.

パラメータ:初期値:説明
DTEMP :0 K:デバイスの温度シフト量
DELVTRAND:0 V :閾値電圧シフト量
U0MULT:1.0 :移動度の係数
IDS0MULT:1.0 :ソースドレイン間チャネル電流の係数
TFIN:15e-9 m:Finの厚み
FPITCH:80e-9 m:Finピッチ
XL:0.0 m:マスク/エッチによるゲート長シフト量
NBODY:1e-22 m-3:チャネルドープ濃度
EOT:1e-9 m :実効ゲート酸化膜厚
TOXP:1.2e-9 m:実ゲート酸化膜厚
RSHS:0.0 Ω:ソースシート抵抗
RSHD:0.0 Ω:ドレインシート抵抗
RHOC:1e-12 Ω-m^2:シリコンシリサイド界面のコンタクト抵抗
RHORSD:計算される:ソースドレインの盛り上がり部の平均抵抗

Reference: BSIM-CMG 110.0.0 Multi-Gate MOSFET Compact Model Technical Manual, 2015

2020年7月25日土曜日

Perlの二次元配列の走査

よく忘れるのでメモ.