2015年9月10日木曜日

Cadence AnalogArtistをCUIで起動する(同時にSKILLコマンドを実行させる)

AnalogArtistをCUIで実行するには,-nographオプションをつける.

IC51:
icfb -nograph

IC61:
virtuoso -nograph

起動時に特定のSKILLコマンドを実行させたい場合は,-replayオプションをつける.

IC51:
icfb -replay [SKILL]

IC61:
virtuoso -replay [SKILL]

2015年9月8日火曜日

Calibre DRCで違反のないチェックを表示しない

Calibre DRCで違反のないチェックをresultに表示させないようにするにはDRC KEEP EMPTY構文を使う.

・表示させたい場合
DRC KEEP EMPTY YES

・表示させたくない場合
DRC KEEP EMPTY NO

デフォルトがYESであり,DRC KEEP EMPTY構文が存在しない場合はYESと解釈される.Calibre RVEを用いてDRCの結果を見る際に,大量のPassアイコンで埋め尽くされてしまうので,NOにするとシンプルでよい感じ.

Calibre DRCで特定のチェックを選択する,選択しない

CalibreでDRCを行う時,設計階層によっては必ず発生するエラーが存在する.あるエラーは必ずでるから無視させたい,逆にあるチェックを追加したい場合は,DRC SELECT/UNSELECT CHECK構文を使う.

・チェックを追加したい場合
DRC SELECT CHECK [rule1] [rule2] ...

・チェックを削除したい場合
DRC UNSELECT CHECK [rule1] [rule2] ...

例えばセルレベル設計でのラッチアップ違反などは,この命令をルールファイルに追加する事で,特定の違反を無視することができるようになる.

2015年8月13日木曜日

Officeでファイルを保存する度に「アップデートできませんでした」と表示される(Officeアップロードセンターを無効化する)


Officeでファイルを保存する度に,当方の環境だと図のように毎回「アップデートできませんでした」と表示される.ユーザーは私一人で並列して作業しているわけではないのに競合しているようだ.いったん[コンピュータ側のバージョンを保持]と押せば次回のOffice再起動までは表示されないが,毎回押さねばならないのでイライラしていた.

これは,OfficeアップロードセンターとSkydriveの競合が原因の様で,Officeアップロードセンターを止めたらこのようなエラーはでなくなった.

止め方は以下のサイトの通り(Office2013の場合).
[Office2013] アップロードセンターを無効にする - あみだがみねのもろもろ備忘録

VMware-toolsの手動インストール

VMware上のCent OSのアップデートをしたらカーネルもアップデートされ,結果VMware Toolsが動かなくなった(ホストゲスト間の共有フォルダ機能が動かなくなった).
再度VMware toolsをインストールしようとGUIで操作したが,以前のように自動でマウントされない.

こういう場合,VMware toolsを手動でダウンロードし,ISOを抽出して,VMwareでマウントすればよい.

やり方は以下のサイトのそのままである.
[VMware] VMware Tools (9.2.2) をダウンロードする

Linux用の.tar.gzとWindows用の.exeがあるが,.tar.gzはこれからISOを抽出するやり方がわからなかったので,.exeを落としてWindows上でISOの抽出を行った方がよいと思う.

中のISOをマウントして,ISO中の.tar.gzを展開すると実行ファイルであるperlスクリプトが存在するので,このスクリプトを実行すると既存のVMware toolsのアンインストールと再インストールが実行される.

共有フォルダ機能も復活して一安心.

2015年7月19日日曜日

VMware Playerのディスク容量を削減する(disk shrink)

VMware Player上のLinuxの不要なファイルを削除して仮想ディスクのファイルサイズを減らすためには,仮想マシン上のファイルの削除だけでなく,Vmware-toolboxによるディスクサイズの圧縮機能を使う必要がある.
VMware toolboxはインストールしていなければインストールする.

vmware-toolboxを利用し,ディスクの圧縮を行う.

vmware-toolbox disk shrink [mount point]

圧縮前は24GB程度あった仮想ディスクファイルが12GBまで圧縮された.ほぼ仮想マシンでのディスク容量と等価である.ただし圧縮にはそれなりに時間が(10数分程度)必要でその間はアクセスもできないので,こまめに実行するのはちょっとつらいかもしれない.

2015年7月17日金曜日

コマンドプロンプトでWindowsの電源プランを変更する(powercfg)

コマンドプロンプトでWindowsの電源プランを変更するには,powercfgコマンドを利用する.
まず,コマンドプロンプトを起動し,powercfgを実行して各電源プランのGUIDを得る.

powercfg -l

任意の電源プランを選択するためには,以下の様に実行する.

powercfg -setactive GUID

XP以前はもっとたくさん電源プランを作成できたが,Windows 7/8はなぜか電源プランが同時に2つしか表示できない.外人さんがWindows 7/8の現状に対してMicrosoftのフォーラムでFワード連発して怒っていたけれど,以下の様に電源プランの数だけバッチファイルを作成すればある程度等価なことが実現できる.




2015年7月7日火曜日

コマンドプロンプトでWindowsのディスプレイ設定を変える

ノートパソコンを仕事場でデュアルディスプレイにしている場合,出先から帰った時に自動的に元の設定に戻らないことがある.最近のWindowsは賢いから自動的に戻ってくれる様だが,たまに接続する順番によっては元に戻らない.たとえばノートパソコンを閉じたまま外部ディスプレイにつなげると,外部ディスプレイ表示のみという情報に変わってしまい,パソコンを開いてもデュアルディスプレイにならなくなってしまう.

コマンドラインでWindowsのディスプレイの設定を変えるために,Display Changerを使う(私的利用ならフリー).
http://12noon.com/?page_id=80

インストーラでインストールし,以下のコマンドを実行してディスプレイの情報を得る.なお32bit版はdccmd.exeで,64bit版はdc64cmd.exeである.インストール先は"C:\Program Files (x86)\12noon Display Changer"であった

>dc64cmd.exe -listmonitors
Monitor: 汎用 PnP モニター
Device: \\.\DISPLAY1
Adapter: Intel(R) HD Graphics 5500
(1920 x 1080 x 32 bpp) 60Hz up, attached, primary (0,0)

Monitor:
Device: \\.\DISPLAY2
Adapter: Intel(R) HD Graphics 5500
(1920 x 1080 x 32 bpp) 60Hz up

Monitor:
Device: \\.\DISPLAY3
Adapter: Intel(R) HD Graphics 5500
(1920 x 1080 x 32 bpp) 60Hz up

\\.\DISPLAY1がノートPCのディスプレイで,他が外部ディスプレイ.ノートPCの真上にFullHDのモニタを設置するには,以下のコマンドを実行する.

>dc64cmd.exe -monitor="\\.\DISPLAY2" -secondary -width=1920 -height=1080 -ty=-1080 -lx=0

-widthと-heightはDISPLAY2の解像度,-tyと-lxは原点(左上)のプライマリモニタに対する相対位置.上側/左側に持って行く場合は負になる.

確認すると,ちゃんと\\.\DISPLAY2が\\.\DISPLAY1の上部に設置された.

>dc64cmd.exe -listmonitors
Monitor: 汎用 PnP モニター
Device: \\.\DISPLAY1
Adapter: Intel(R) HD Graphics 5500
(1920 x 1080 x 32 bpp) 60Hz up, attached, primary (0,0)

Monitor: 汎用 PnP モニター
Device: \\.\DISPLAY2
Adapter: Intel(R) HD Graphics 5500
(1920 x 1080 x 32 bpp) 60Hz up, attached (0,-1080)

ディスプレイを外すには以下のコマンドを実行すればよい(今時のWindowsならブチッと抜いてもいいだろう).

>dc64cmd.exe -monitor="\\.\DISPLAY2" -detach

あとはよく使うコマンドをバッチファイルに書いてショートカットに設定すればOK

2015年6月23日火曜日

AnalogArtist(Virtuoso)のCellViewをSKILLコマンドに変換する(dbWriteSkill)

AnalogArtistで作成したCellView(Layout ViewやSchematic)をSKILLコマンドの変換するには,dbWriteSkillコマンドを使う.

dbWriteSkill(cellViewId filename mode release)

たとえばLIBライブラリのInverterのレイアウトをSKILLコマンドに変換するには,以下の様に実行すればよい.

cellViewID = dbOpenCellViewByType("LIB" "INV_X1" "layout")
dbWriteSkill(cellViewID "INV_X1.il" "w" "4.4")

復元するには,出力したSKILLコマンドをCIWで読めばよい.

load "./INV_X1.il"

ひな形レイアウトをVirtuoso Layout Editingで作成し,SKILLを使ってテキスト形式でダンプ,パラメータをちょこちょこ変えたレイアウトをスクリプトで作って再度ロードするという用途に使える.また,LayoutやSchematicだけでなく,PCellも出力できるようだ.
# ただし,レイヤーがLayerNameではなくてLayer#なので可読性がちょっと低いのが悲しい

なお,出力するSKILLファイルにライブラリ名を入れたくない場合はdbWriteSkillWithLibを使うらしいが,今一使い方がよくわからない.

2015年5月28日木曜日

AnalogArtist(Virtuoso)でコマンドラインからCDL outする.

AnalogArtistのcdsもしくはOAからコマンドラインでCDLを出力させるためには,付属のsiを使う(Simulation Interfaceのことか?).
まず,si.envファイルを以下の様に作成する.このファイルは,GUIでCDL outを行った場合に
自動生成されるそうなので,一回GUIで実行すれば後は使い回す事が出来る.

simLibName = "LIBNAME"
simCellName = "CELLNAME"
simViewName = "schematic"
simSimulator = "auCdl"
simNotIncremental = 't
simReNetlistAll = nil
simViewList = '("auCdl" "auSchematic" "schematic" )
simStopList = '("auCdl")
hnlNetlistFileName = "CDLFILE.cdl"
resistorModel = ""
shortRES = 2000.0
preserveRES = 'nil
checkRESVAL = 'nil
checkRESSIZE = 'nil
preserveCAP = 'nil
checkCAPVAL = 'nil
checkCAPAREA = 'nil
preserveDIO = 'nil
checkDIOAREA = 'nil
checkDIOPERI = 'nil
checkCAPPERI = 'nil
simPrintInhConnAttributes = 'nil
checkScale = "nil"
checkLDD = 'nil
pinMAP = 'nil
shrinkFACTOR = 0.0
globalPowerSig = ""
globalGndSig = ""
displayPININFO = 't
preserveALL = 't
setEQUIV = ""
incFILE = ""
auCdlDefNetlistProc = "ansCdlSubcktCall"


次にsiを以下のコマンドをTerminalに打ち込む事で起動する.

% si -batch -command netlist

siがVirtuoso Framework Licenseを取得し,データベースからCDLを抽出し記載したファイルに書き出す.

なおうちの環境では
*Error* eval: undefined function - _oiSetMasterFieldsEnabled
とエラーが出るが,意図したファイルが出力されている様だ.