Mentor GraphicsのResource Centerを見ていて知ったのだが,Calibre Interactive WindowをIC Compilerに表示させることが可能らしい.
Calibreのインストール先として環境変数$CALIBRE_HOMEを設定したうえで,以下のコマンドをIC Compilerの設定ファイル($HOME/.synopsys_icc_gui.tcl)もしくはIC Compilerのシェルに書き込めばよい.
icc_shell> source [file join $::env(CALIBRE_HOME) lib icc_calibre.tcl]
今までGDSをCalibreWORKbenchで見る,もしくはAnalogArtistにStreamINしていたけれど,今後そんな面倒なことをしなくても良さそうだ.
参考:
Calibre Interactive User's Manual
Resource Center Mentor Graphics
2013年7月31日水曜日
2013年7月29日月曜日
IC CompilerのZrouteで並列処理をする
IC Compiler(2008年版)までは普通のrouter(Classic router)を使っていたが,現在利用中のIC Compiler 2010年版のZrouteが超快適で研究室で愛用している.しかしtopコマンドを見るとCPUを1つしか使っていない.
Classic routerで並列処理をするときはset_destribute_routeを使ってホストの情報を取得したが,Zrouteの場合はset_host_optionsを使う様だ.
icc_shell> set_host_options -max_cores 12
配線や寄生成分抽出など場面によって使い分けもできるらしいが,複雑に考えない場合は単に-max_coresで利用するコア数を指定すればよいとのこと.1コアでさえ速いZeouteがきちんと12コア使って高速処理してくれるので気持ちが良くなった.
ちなみに,複数のマシンに配線のジョブを流すことも可能らしい.商用の大規模な回路をフラットで設計する時には役に立つのかもしれない(研究室レベルの回路だと牛刀かもしれない).
Classic routerで並列処理をするときはset_destribute_routeを使ってホストの情報を取得したが,Zrouteの場合はset_host_optionsを使う様だ.
icc_shell> set_host_options -max_cores 12
配線や寄生成分抽出など場面によって使い分けもできるらしいが,複雑に考えない場合は単に-max_coresで利用するコア数を指定すればよいとのこと.1コアでさえ速いZeouteがきちんと12コア使って高速処理してくれるので気持ちが良くなった.
ちなみに,複数のマシンに配線のジョブを流すことも可能らしい.商用の大規模な回路をフラットで設計する時には役に立つのかもしれない(研究室レベルの回路だと牛刀かもしれない).
Calibre InteractiveにおけるLVS optionの取り扱い
Mentor Graphics Communities; How to disable the LVS Options in Calibre Interactive GUI?
Calibre Interactiveの場合,LVSのオプションはルールに記載されたものではなく,Calibre Interactiveのデフォルトが使われるらしい.ルールに記載されたオプションを利用するためには,[LOAD]ボタンを押さなければ反映されないらしい.
今まで「なんでルールにオプション記載してもLVSに反映されていないのだろう」と思っていたけれど,こんな事実だったとは….また,Calibre 2010ではパスするマクロがCalibre 2011では抽出されてほしくないFillerが抽出されてLVSがパスしなくなる問題もあったが,これもおそらくフィルターオプションの"AF"が2011版では無効になっているのかもしれない.
Calibre Interactiveの場合,LVSのオプションはルールに記載されたものではなく,Calibre Interactiveのデフォルトが使われるらしい.ルールに記載されたオプションを利用するためには,[LOAD]ボタンを押さなければ反映されないらしい.
今まで「なんでルールにオプション記載してもLVSに反映されていないのだろう」と思っていたけれど,こんな事実だったとは….また,Calibre 2010ではパスするマクロがCalibre 2011では抽出されてほしくないFillerが抽出されてLVSがパスしなくなる問題もあったが,これもおそらくフィルターオプションの"AF"が2011版では無効になっているのかもしれない.
2013年7月16日火曜日
Office 2013のスタート画面を表示させない
Office 2013は起動時に白紙の入力画面ではなく,スタート画面を表示させる仕様になった.例えばExcel 2013であれば以下の画面が表示される.
最近使ったファイルが表示されるのは便利かもしれないが,旧来のユーザーとしては白紙のブックを選択する操作が増えるので面倒である.このようなスタート画面を表示させないようにするために,オプションを変更する.[ファイル]→[オプション]を選択する.
[基本設定]の一番下に[このアプリケーションの起動時にスタート画面を表示する]というオプションが存在するので,チェックボックスを外す.
以降,新規起動時かならず白紙のブックが表示される.
これはWord,PowerPoint等の他のツールでも同様に設定することが可能である.
スタートメニューを表示するというのはMicrosoft以外のツールも採用しているので特別に文句があるわけではないが,(タッチ対応のため)無駄にでかい事と,なぜ2番目の選択肢が「ツアーに参加する」なのか,理解に苦しむ.
最近使ったファイルが表示されるのは便利かもしれないが,旧来のユーザーとしては白紙のブックを選択する操作が増えるので面倒である.このようなスタート画面を表示させないようにするために,オプションを変更する.[ファイル]→[オプション]を選択する.
[基本設定]の一番下に[このアプリケーションの起動時にスタート画面を表示する]というオプションが存在するので,チェックボックスを外す.
これはWord,PowerPoint等の他のツールでも同様に設定することが可能である.
スタートメニューを表示するというのはMicrosoft以外のツールも採用しているので特別に文句があるわけではないが,(タッチ対応のため)無駄にでかい事と,なぜ2番目の選択肢が「ツアーに参加する」なのか,理解に苦しむ.
2013年7月13日土曜日
MilkywayでFRAM Viewが作られないときの対応方法
Milkywayでフィジカルライブラリを作成するときに,
Warning: Skip generating FRAM view for cell (HOGE) because cell
type option is not enable or mis-matched. (RT-116)
といってFRAM Viewが作られない事がある.ワーニングの通り,マクロのcell typeが指定されていない事が原因である.GDSをStream Inする時に,Cell Type Difinition Fileを適切に読み込む事でcell typeを指定する.Cell Type Difinition FIleには,cell typeと対応するマクロの名前を書けばよい.例えばHOGEをスタセルとして認識させるには
gdsStdCell HOGE
とすればよい.GDS中のすべてのセルを指定するのであれば
gdsStdCell *
の様に'*'を使うことも可能である.
MilkywayのコマンドとしてCell Typeを定義することもできる(Schemeモードであれば cmMarkCellType)が,なぜかこのコマンド実行してもTrueを返すわりにcell typeの定義はできていないようで,cmMarkCellTypeを実行してもFRAM Viewは作られない(バグ?).
Warning: Skip generating FRAM view for cell (HOGE) because cell
type option is not enable or mis-matched. (RT-116)
といってFRAM Viewが作られない事がある.ワーニングの通り,マクロのcell typeが指定されていない事が原因である.GDSをStream Inする時に,Cell Type Difinition Fileを適切に読み込む事でcell typeを指定する.Cell Type Difinition FIleには,cell typeと対応するマクロの名前を書けばよい.例えばHOGEをスタセルとして認識させるには
gdsStdCell HOGE
とすればよい.GDS中のすべてのセルを指定するのであれば
gdsStdCell *
の様に'*'を使うことも可能である.
MilkywayのコマンドとしてCell Typeを定義することもできる(Schemeモードであれば cmMarkCellType)が,なぜかこのコマンド実行してもTrueを返すわりにcell typeの定義はできていないようで,cmMarkCellTypeを実行してもFRAM Viewは作られない(バグ?).
2013年7月12日金曜日
HSPICEで自作関数を定義する
HSPICEでは変数の定義と同様に,自作関数を定義することができる.フォーマットは以下の通り.
.param funcname1(arg1[,arg2...]) = expression1
+ funcname2(arg1[,arg2...]) = expression2
関数名(funcname)は組み込み関数と異なる名前である必要があり,また別の関数内で利用する関数はあらかじめ定義されている必要がある.引数(arg)は必ず1つ以上必要であり,複数定義できる.関数は再定義できるが,オーバーロードではなくオーバーライドになる様だ(明確には述べられていないが).
例えば剰余を求める関数は,以下のようになった(SPICEv3にはあるのになぜHSPICEには無いのだろう??).
.param remain(numer, denom)='numer - (int(numer/denom) * denom)'
10進数を2進数に変換してみる.SPICEのカードの一部を示す.
.param remain(numer, denom)='numer - (int(numer/denom) * denom)'
.param COND_DCC_0 = 'remain(TRIAL, 2)'
.param COND_DCC_1 = 'remain(int(TRIAL/2), 2)'
.param COND_DCC_2 = 'remain(int(TRIAL/4), 2)'
.param COND_DCC_3 = 'remain(int(TRIAL/8), 2)'
.param COND_DCC_4 = 'remain(int(TRIAL/16), 2)'
.param COND_DCC_5 = 'remain(int(TRIAL/32), 2)'
.param COND_DCC_7 = 'remain(int(TRIAL/64), 2)'
.param COND_DCC_6 = 'remain(int(TRIAL/128), 2)'
.tran 10p 10n sweep TRIAL 0 256 1
HSPICEでシミュレーションしたところ,ちゃんと2進数に変換できた!
試していないが,おそらくHSIMでもできる
.param funcname1(arg1[,arg2...]) = expression1
+ funcname2(arg1[,arg2...]) = expression2
関数名(funcname)は組み込み関数と異なる名前である必要があり,また別の関数内で利用する関数はあらかじめ定義されている必要がある.引数(arg)は必ず1つ以上必要であり,複数定義できる.関数は再定義できるが,オーバーロードではなくオーバーライドになる様だ(明確には述べられていないが).
例えば剰余を求める関数は,以下のようになった(SPICEv3にはあるのになぜHSPICEには無いのだろう??).
.param remain(numer, denom)='numer - (int(numer/denom) * denom)'
10進数を2進数に変換してみる.SPICEのカードの一部を示す.
.param remain(numer, denom)='numer - (int(numer/denom) * denom)'
.param COND_DCC_0 = 'remain(TRIAL, 2)'
.param COND_DCC_1 = 'remain(int(TRIAL/2), 2)'
.param COND_DCC_2 = 'remain(int(TRIAL/4), 2)'
.param COND_DCC_3 = 'remain(int(TRIAL/8), 2)'
.param COND_DCC_4 = 'remain(int(TRIAL/16), 2)'
.param COND_DCC_5 = 'remain(int(TRIAL/32), 2)'
.param COND_DCC_7 = 'remain(int(TRIAL/64), 2)'
.param COND_DCC_6 = 'remain(int(TRIAL/128), 2)'
.tran 10p 10n sweep TRIAL 0 256 1
HSPICEでシミュレーションしたところ,ちゃんと2進数に変換できた!
試していないが,おそらくHSIMでもできる
2013年7月10日水曜日
ulem.styにemphをアンダーラインにさせない
latexで論文を修正するために修正前の箇所に取消線を引く時,心臓に悪い自体が起きたのでメモ.
latexで取消線を引くには,ulem.styを使う.
ulem.styは取消線以外にもアンダーラインや二重線等もスタイルとして含んでいるのだが,
ulem.styはデフォルトでイタリックをアンダーラインに変えてしまう.つまり\emや\emphが
アンダーラインになってしまう.
ulem.styは取消線以外にもアンダーラインや二重線等もスタイルとして含んでいるのだが,
ulem.styはデフォルトでイタリックをアンダーラインに変えてしまう.つまり\emや\emphが
アンダーラインになってしまう.
\usepackage{ulem}をしたばかりに,引用文献が,アンダーラインになってしまった!
気がつかずに投稿していたらと思うと心臓ばくばくである.
そういうときは,normalemオプションを使う.
\usepackage[normalem]{ulem}を使えばこの通り,元のイタリックに!
論文締め切り直前にこんな事態が起きるなんて,なんて心臓に悪いパッケージなんだ... (UnderLineEMphasizeの名の通りといえばそうなのだが)
以下のドキュメントが詳しい.
http://www.google.co.jp/url?sa=t&rct=j&q=&esrc=s&source=web&cd=2&cad=rja&ved=0CDkQFjAB&url=http%3A%2F%2Ftexdoc.net%2Ftexmf-dist%2Fdoc%2Fgeneric%2Fulem%2Fulem.pdf&ei=tRMAUcKqHM6QiAeKmoGQAQ&usg=AFQjCNFrSE3qDfkcWl-YWFKHGEK9cw-4vA&sig2=638e6jfyWLXhfMw0N3ZhDA&bvm=bv.41248874,d.aGc