Calibre DRCで違反のないチェックをresultに表示させないようにするにはDRC KEEP EMPTY構文を使う.
・表示させたい場合
DRC KEEP EMPTY YES
・表示させたくない場合
DRC KEEP EMPTY NO
デフォルトがYESであり,DRC KEEP EMPTY構文が存在しない場合はYESと解釈される.Calibre RVEを用いてDRCの結果を見る際に,大量のPassアイコンで埋め尽くされてしまうので,NOにするとシンプルでよい感じ.
2015年9月8日火曜日
Calibre DRCで特定のチェックを選択する,選択しない
CalibreでDRCを行う時,設計階層によっては必ず発生するエラーが存在する.あるエラーは必ずでるから無視させたい,逆にあるチェックを追加したい場合は,DRC SELECT/UNSELECT CHECK構文を使う.
・チェックを追加したい場合
DRC SELECT CHECK [rule1] [rule2] ...
・チェックを削除したい場合
DRC UNSELECT CHECK [rule1] [rule2] ...
例えばセルレベル設計でのラッチアップ違反などは,この命令をルールファイルに追加する事で,特定の違反を無視することができるようになる.
・チェックを追加したい場合
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のアンインストールと再インストールが実行される.
共有フォルダ機能も復活して一安心.
再度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数分程度)必要でその間はアクセスもできないので,こまめに実行するのはちょっとつらいかもしれない.
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ワード連発して怒っていたけれど,以下の様に電源プランの数だけバッチファイルを作成すればある程度等価なことが実現できる.
まず,コマンドプロンプトを起動し,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"であった
\\.\DISPLAY1がノートPCのディスプレイで,他が外部ディスプレイ.ノートPCの真上にFullHDのモニタを設置するには,以下のコマンドを実行する.
-widthと-heightはDISPLAY2の解像度,-tyと-lxは原点(左上)のプライマリモニタに対する相対位置.上側/左側に持って行く場合は負になる.
確認すると,ちゃんと\\.\DISPLAY2が\\.\DISPLAY1の上部に設置された.
ディスプレイを外すには以下のコマンドを実行すればよい(今時のWindowsならブチッと抜いてもいいだろう).
あとはよく使うコマンドをバッチファイルに書いてショートカットに設定すればOK
コマンドラインで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を使うらしいが,今一使い方がよくわからない.
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で実行すれば後は使い回す事が出来る.
次にsiを以下のコマンドをTerminalに打ち込む事で起動する.
% si -batch -command netlist
siがVirtuoso Framework Licenseを取得し,データベースからCDLを抽出し記載したファイルに書き出す.
なおうちの環境では
*Error* eval: undefined function - _oiSetMasterFieldsEnabled
とエラーが出るが,意図したファイルが出力されている様だ.
まず,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
とエラーが出るが,意図したファイルが出力されている様だ.
2015年5月25日月曜日
TgifからInkscapeに乗り換えるためのメモ
これまで論文の図はTgifを使って描いていたが,出力品質が悪く,特に領域を模様で埋めたりすると変なモアレができる.
そのためInkscape(0.47)に乗り換えたのだが,InkscapeはInkscapeで使いにくいので試行錯誤した結果をメモ.
○ オブジェクトを拡大/縮小すると線幅が変わるのを止める
Inkscapeの設定(Shift-Ctrl-P)の[変形]→[ストローク幅を拡大縮小する]のチェックを外す.
○ 矢印の色を線の色と合わせる
[エクステンション]→[パスの変形]→[マーカーの色をストロークに合わせる]を選択すればよいらしい
# しかし,私の環境ではlibxml2がうまく入らないのでうまく有効化できない…
○ 描画領域の大きいEPSが正確に出力されず切れる
エクスポート領域を描画全体に変えても,キャンパスサイズをA0に変えても切れる.
→EPSではなくPDFにする.PDFをLatexに埋め込むために,extractbbを使って描画領域を取得し,includegraphicsに入力する(本当は.xbbができれば自動取得されるはずなのだが).
以下,Latexに入れるための工夫
(Tgif時代からだが)Latexのfigure環境をはき出すスクリプトを以下の様に作成
本スクリプトを動かすためのMakefile
そのためInkscape(0.47)に乗り換えたのだが,InkscapeはInkscapeで使いにくいので試行錯誤した結果をメモ.
○ オブジェクトを拡大/縮小すると線幅が変わるのを止める
Inkscapeの設定(Shift-Ctrl-P)の[変形]→[ストローク幅を拡大縮小する]のチェックを外す.
○ 矢印の色を線の色と合わせる
[エクステンション]→[パスの変形]→[マーカーの色をストロークに合わせる]を選択すればよいらしい
# しかし,私の環境ではlibxml2がうまく入らないのでうまく有効化できない…
○ 描画領域の大きいEPSが正確に出力されず切れる
エクスポート領域を描画全体に変えても,キャンパスサイズをA0に変えても切れる.
→EPSではなくPDFにする.PDFをLatexに埋め込むために,extractbbを使って描画領域を取得し,includegraphicsに入力する(本当は.xbbができれば自動取得されるはずなのだが).
以下,Latexに入れるための工夫
(Tgif時代からだが)Latexのfigure環境をはき出すスクリプトを以下の様に作成
use Getopt::Long qw(:config posix_default no_ignore_case gnu_compat); my $FILE="NULL"; my $SCALE="1"; my $LOC="h"; my $BBFILE="NULL"; GetOptions( "file=s" => \$FILE, "scale=i" => \$SCALE, "loc=s" => \$LOC, "bbfile=s" => \$BBFILE ); open(BBIN, "$BBFILE") || die "cannot open xbb file: $BBFILE, die"; $BBINA =; chomp($BBINA); $TITLE = $FILE; $TITLE =~ s/.pdf//g; $CAPTION = $TITLE; $CAPTION =~ s/\_/\\\_/g; print <<EOF; \\begin{figure}[$LOC] \\begin{center} \\includegraphics[bb=${BBINA}, scale=${SCALE}]{$FILE} \\caption{$CAPTION} \\label{fig:$TITLE} \\end{center} \\end{figure} EOF
本スクリプトを動かすためのMakefile
%.pdf: %.svg inkscape $*.svg --export-pdf=$*.pdf --export-area-drawing %.pdf.figtex: %.pdf extractbb -O $*.pdf | grep "HiRes" | cut -d ':' -f 2 > tmp.xbb perl ~/programs/figure_template_pdf.pl \ --file=$*.pdf --scale=1 --loc=h --bbfile=tmp.xbb >> main.tex rm tmp.xbb
登録:
投稿 (Atom)