2019年10月2日水曜日

SiliconSmartでシミュレーションが走らない時のメモ

SiliconSmart を使ってキャラクタライズさせるときに,タスクは生成されるもののシミュレーションが走らず10時間経って自動で落ちてしまう,CPU が動いている気配もない,とはまったのでメモ.

SiliconSmart の DP Managerを使っていると,runtime/cdpl の中にログが生成される.

runtime/cdpl/worker.W1.[マシン名].[数字].log

ここに個々の Worker の動作ログが格納されるので,動作不良のヒントになる.

今回は,/etc/sysconfig/network-scripts で実際割り当てているIPアドレスと,/etc/hosts で書いた自分自身の IP アドレスに不整合があり,存在しない IP アドレスにジョブを投げようとしておかしな事になっていた.標準出力に出してくれればよかったのだけれど,難しいか.


2019年9月16日月曜日

ASAP 7nm の ゲートピンを抽出する

ASAP 7nm ではゲートに pin (label) を打てるが, 提供ルールでは抽出ができない.LVS のルールに以下の通り追記すると抽出できるようになる.

GATE_PIN の宣言
TEXT LAYER GATE_PIN
PORT LAYER TEXT GATE_PIN

GATE_PIN の定義,数字は適当
LAYER GATE_PIN 70251
LAYER MAP 7 TEXTTYPE == 251 70251

GATE_PIN がどのオブジェクトにつながっているかを定義,ここでは MOS (Gate not GCut) にある text を pin として抽出する
ATTACH GATE_PIN GATE_1

オチ:LVS はこれでいいのだけれど,ルールが暗号化されているのでLPE ができない.だめじゃん.

2019年8月28日水曜日

CentOS7 で MACアドレスを偽装する

事情があって Linux マシンの MAC アドレスを偽装したい.
いろいろ方法があるっぽいが,自分の環境では,ip コマンドで MAC アドレスを偽装する必要があり,それを起動時に反映させるために udev にルールを書く必要があった.さらに,udev のルールと対応する様に network-scripts も書き換える必要があった.

ここでは仮に,接続プロファイル ifcfg_enp0 においてMACアドレスを書き換える.

(1)  /etc/udev/rules.d/70-persistent-ipoib.rules に以下のように追記
ACTION=="add", SUBSYSTEM=="net", ARRR{address}=="偽装するアドレス", ATTR{type}==1, KERNEL="eth*", NAME="ifcfg_enp0"

(2) /etc/sysconfig/network-scripts/ifcfg-enp0 を編集
HWADDR=偽装するアドレス
BOOTPROTO=static
IPADDR=xxx.xxx.xxx.xxx
PREFIX=24
GATEWAY=xxx.xxx.xxx.xxx
DNS1=xxx.xxx.xxx.xxx
DEFROUTE=yes
IPV4_FAILURE_FATAL=yes
IPV6INIT=no
NAME=enp0
ONBOOT=yes

IPアドレスや設定などは適当に変えてください.

network-scripts だけではだめだったよ.macchanger は一瞬だけ MAC アドレスを変更できるのだがなぜか即戻ってしまって使えなかったよ.

参考:
Arch Wiki:Macアドレス偽装

2019年8月27日火曜日

Calibre LVS でショートを見つける (Layout Short Isolationを活用する)

Calibre LVS で特に電源系のショートを起こすと,ショートした電源すべてがハイライトされてしまいショート箇所を見つけづらい.

ラベルをクリックすると上記画像のように電源すべてがハイライトされてしまう.

RVE の Layout Shorts Isolation を使うと,ラベルから別のラベルまでのショートの経路を教えてくれる.RVE の Layout Shorts のタブを開き,下部の Layout Shorts Isolation のリストを見る.


これは,あるラベルがどの箇所のレイヤーを通じて別のラベルにつながるかという情報を表している.クリックするごとに該当箇所をハイライトしながら表示するので,一番上から一番下まで順番にクリックしていくとラベル間がつながる経路がハイライトされる.


上層の電源メッシュかだスタックドビアを経由してM1におり,再度スタックドビアを経由して上層のグラウンドにつながっている.スタックドビアを不適切な場所に置いたので電源とグラウンドがショートした事がわかる.

https://www.youtube.com/watch?v=VCskP4HhQFw
Mentor Graphics のYoutubeチャネルで紹介されていたよ.みんなでチャンネル登録しよう.

2019年8月26日月曜日

新しい Virtuoso が Cent OS 7で起動しない (lsb_releaseを入れる)

Cent OS 7.6 に Virtuoso (IC06.17) を入れるも起動しない.起動時に lsb_release を使って Linux のディストリビューションとバージョンを確認しようとするも lsb_release が入っていないので起動しないようだ.

% virtuoso &
[1] 129248
/cadence/IC06.17.709/tools.lnx86/bin/.preHostEnvCheck[15]: lsb_release: not found [No such file or directory]
/cadence/IC06.17.709/tools.lnx86/bin/.preHostEnvCheck[16]: lsb_release: not found [No such file or directory]
WARNING: HOST DOES NOT APPEAR TO BE A CADENCE SUPPORTED LINUX CONFIGURATION.
         For More Info,  Please Run '/tools.lnx86/bin/checkSysConf' .

% yum provides lsb_release --disablerepo=epel
読み込んだプラグイン:fastestmirror, langpacks
Loading mirror speeds from cached hostfile
 * base: ftp.iij.ad.jp
 * extras: ftp.iij.ad.jp
 * updates: ftp.iij.ad.jp
redhat-lsb-core-4.1-27.el7.centos.1.i686 : LSB Core module support
リポジトリー        : base
一致          :
ファイル名    : /usr/bin/lsb_release

redhat-lsb-core-4.1-27.el7.centos.1.x86_64 : LSB Core module support
リポジトリー        : base
一致          :
ファイル名    : /usr/bin/lsb_release

% sudo yum -y install redhat-lsb-core-4.1-27.el7.centos.1.i686 redhat-lsb-core-4.1-27.el7.centos.1.x86_64

これで解決.

ちなみに,
WARNING: HOST DOES NOT APPEAR TO BE A CADENCE SUPPORTED LINUX CONFIGURATION.
         For More Info,  Please Run '/tools.lnx86/bin/checkSysConf' .
というワーニングは出続けるが,これは lsb_release が CentOS と申告する一方で
.preHostEnvCheck が期待するディストリビューションである RedHat,SUSE LINUX, Ubuntu に該当しないのでワーニングがでるようだ.RedHat Clone の中でメジャーな CentOS と Scientific Linux ぐらい対応しておいてほしい.

2019年8月25日日曜日

オシロスコープの低価格モデルとOEM元

Teledyne LeCroy → Siglent (中国)。2016年ぐらいまでは岩通だったのだけれど決別したそうだ。
Keysight → Rigol (中国)
Tektronix → 不明.自社で作っているとか,中国のメーカーにODMしてもらっているとか
Texio → GW Instek (台湾)

Keysightの X2000,X3000ぐらいまで Rigol が作っていると言う噂ですが,では Rigol のオシロスコープはそのまんま Keysight なのかと言われるとそうでもなくて,よくスペックを見たり触ってみるといろいろ違いはあるっぽい。Rigol はなんで入力インピーダンスが 1MOhm 固定なん?

回路系の人は Tektronix のオシロスコープを、RF などの無線系の人は Keysight のオシロスコープを好む傾向があるらしい。

2019年8月23日金曜日

IC Compilerの実行時間を一時的に早くする (set_fast_mode)

設計初期段階などで IC Compiler の実行速度を高速化したい場合は,set_fast_mode オプションを有効にする.

set_fast_mode true

本設定を有効にすると,以下のオプションをつけることと等価になる.
place_opt コマンドは -effort low 相当になり,ユーザーの指定する -effort オプションは無効化される.
さらに実行時間を削減したければ,-no_congestion オプションをつける.
clock_opt コマンドは無効化される.
route_opt コマンドは -effort low 相当になり,ユーザーの指定する -effort オプションは無効化される.

マニュアルによると,30%から50%ほど実行時間を短縮できるらしい.当たり前だが回路の品質はかなり悪化するので,フローが完成したら set_fast_mode オプションは削除したらよいだろう.

2019年8月22日木曜日

HSPICEのVariation Blockを無効にする (option ignore_variation_block)

Fab提供のPDKにおいてVariation Blockが利用されている場合,これまでの伝統的なばらつき生成(Agaussなど)とは異なるばらつきが生成されてしまう(PDKにもよるが,ローカルばらつきとグローバルばらつきを同時に生成したり,空間相関ばらつきを生成することができる).その場合,Variation Blockを使わないようにするために以下のオプションを定義する事で,これまでの伝統的なばらつきを生成できる.
Variation Blockに対するオプションなので,.variation 関数中に書く.

.variation
option ignore_variation_block=yes
.end_variation

Variation Blockに対する他のオプションも併記しておく.

・ローカルばらつきを生成しない
option ignore_local_variation=yes

・グローバルばらつきを生成しない
option ignore_global_variation=yes

・空間相関ばらつきを生成しない
option ignore_spatial_variation=yes

・配線ばらつきを生成しない
option interconnect_local_variation=yes

Variation Blockが使われた場合,*.mc0ファイルが生成され,その中にどのようなオプションが使われたか記載されているので,このファイルの中を確認する事で現在のオプションを知ることができる.

他にも,特定のインスタンスのみばらつきを与えたり,特定のサブサーキットにはばらつきを与えないなど,柔軟にばらつきを制御できるようだ.

2019年8月20日火曜日

MentorGraphicsのツール名とでできることの対応表

わからないのでまとめた.ただし半導体集積回路設計で使うものだけです.

・シミュレーション
0-in:機能検証
Analog FastSPICE Platform (AFS):FastSPICE
Questa Advance MS (ADMS/AMS):デジタル・アナログ・RF回路向けシミュレーションツール.Eldo (Eldo-classic, Eldo-RF)が入っている.
Modelsim:RTLシミュレーション,波形ビューア.
QuestaSim:Modelsimに機能検証を加えたもの,とあるが,古い情報かもしれない.今はもう無い?

・カスタムIC設計
Pyxis Layout:カスタム設計CAD

・PCB設計
BoardStation:PCB設計CAD
Xpedition:PCB設計CAD
PADS:PCB設計CAD

・検証
Calibre:物理検証ツール.以下のツール群が入っている.他にも機能があると思われるが把握していない.
Calibre DRC:デザインルールチェッカ
Calibre LVS:Layout Versus Schematic
Calibre xRC:ルールベースレイアウト抽出
Calibre xACT:電磁界解析ベースレイアウト抽出
Calibre RVE:DRCなどの結果を設計レイアウトルールへ反映させるインターフェース.ネットリストを視覚化する事もできるので,ネットリストビューアとしても便利.
Calibre DESIGNrev:GDSビューア,エディタ.各種物理検証ツールを呼び出す事もできる.
Calibre WORKbench:GDSビューア,エディタ.OPCや光学シミュレーションなどができる.

・高位合成
Catapult HLS:高位合成ツール
DK Design Suite:Hendel-Cによる高位合成ツール.Celoxicaを買収して手に入れた?

・論理合成
LeonardSpectrum:ASIC,FPGA向け論理合成ツール

Calibre,Modelsim以外は使ったことがないので大いに間違っているかもしれない.Wikipediaの方が正確かも.
https://ja.wikipedia.org/wiki/メンター・グラフィックス

Mentor Graphics というと,「Bjarne Stroustrup インタビュー (?)」を思い出してしまう (ネツゾウとの噂ですが).

2019年8月19日月曜日

HSPICE互換シミュレータ

HSPICE はゴールデンな回路シミュレータですが,みんなが使うのでライセンスがなくなりやすい.パンがなければお菓子を食べれば(ry と言われるけれど,じゃあどんなお菓子(選択肢)があるのか気になります. 代替になりうるシミュレータについて調べてみた.

・FineSim SPICE
旧Magma の SPICE / FastSPICE シミュレータ.HSPICE 向けの記述がほぼそのまま動きます.今は Synopsys が売り出しているから安心?
finesim  spice.sp -mode=spicemd -np [numCPU] -auto -spice

・Eldo
Mentor Graphics の SPICE シミュレータ.HSPICE 互換モードがある(-compat).欧州では結構メジャーらしい.
eldo -compat spice.sp

こちらの環境ではプロセスコーナーオプションの指定に難があり,ライブラリが多段になっていてなかでプロセスコーナーオプションの名前が変わる場合(例えば,最初の.libで"TT"オプションを指定し,呼び出した次の.libでは"tt_core"オプションになる)に追随できないようで,最終的に「そんなトランジスタモデル無いよ」と言われてエラーが出る.
トランジスタモデルが暗号化されているからかもしれない.
そもそもこの PDK の設計がクソという意見もある.

・Spectre
Cadence の SPICE シミュレータ.HSPICE 互換モードがあるのか調べてません.

・SmartSpice
Silvaco の SPICE シミュレータ.某所ではバイナリがなくなってしまったので未調査.ライセンスはまだ発行されているっぽい??

LTspice や Ngspice が商用 PDK で動くかどうかは知りません.計算結果もあまり変わらない Finesim でいいんじゃないかな.