2019年11月18日月曜日

Skill関数でレイアウトを回転する(dbTransformCellView)

SKILL 関数でレイアウトを回転するには dbTransformCellView を使う.レイアウトの拡大縮小もできる.

dbTransformCellView(
d_cellViewId
f_mag
f_angle
)

d_cellViewId は対象の CellViewID,f_mag は拡大縮小倍率,f_angle は回転角度(°)を指定する
dbOpenCellViewByType と組み合わせると,レイアウトを開いて回転して閉じる事ができる.

cellview= dbOpenCellViewByType("library" "cell" "layout" "maskLayout" "a")
dbTransformCellView(cellview 1.0 180.0)
dbSave(cellview)

f_mag に 1.0 を指定すると拡大しない事になる.

2019年11月12日火曜日

イオンカード100万円チャレンジ

イオン銀行の預金金利はイオン銀行およびクレジットカードの利用状況によって変化する.ゴールドカードを持つとスコアが増えるので預金金利が有利になる可能性が上がるが,住宅ローンの利用もしくはイオンカードの使用額が一定値(100万円/年というウワサ)を超えないといけないというウワサでなかなかハードルが高い.

今回,銀行の金利を上げるべくイオンカード100万円チャレンジしたところ,8ヶ月目計86万円の利用が確定した地点でインビテーションがきた.100万円より2割ぐらい低い.

2019年11月10日日曜日

Gnuplot で 3 次元プロットでフィッティングする(誤差項を追加する)

Gnuplot で3次元フィッティングを行おうとしたら,うまくフィッティングできず

Singular matrix in Invert_RtR
error during fit

と怒られてしまう.
3次元フィッティングでは x:y:z だけでなく誤差項 s も必要で,誤差項を与えないとフィッティングができない.誤差の評価をしていない場合は定数を与えればよい.

a=-0.5;b=-0.5;c=90;d=0.008
f(x,y)=a*x+b*y+c+x*y*d+1e-9
fit f(x,y) "hspice.mt0" using ($2*1000):($3*1000):($5*1000):(1) via a,b,c,d
splot "hspice.mt0" using ($2*1000):($3*1000):($5*1000) w p, f(x,y)

昔(3.6.x)は無くてもよかった気がするが,少なくとも3.7.x以降は必要らしい.

gnuplot のページ (Takeno Lab)
http://takeno.iee.niit.ac.jp/~foo/gp-jman/#Q11

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チャネルで紹介されていたよ.みんなでチャンネル登録しよう.