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は作られない(バグ?).
2013年7月13日土曜日
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
2013年6月20日木曜日
lmstatを使ってライセンスの使用状況を確認する
某所でCADのライセンス数の取り扱いについてヒートアップしている.Citrixのライセンスツールを使ってライセンスが管理されている場合,lmstatを使ってライセンスを確認することができる.
% lmstat [-a][-f feature]
-a : 提供されているすべてのライセンスの情報を表示
-f "feature" : "feature"のライセンスに関して情報を表示
例えばhspiceの場合,
% lmstat -f hspice
と打ち込めばよい.
ただしライセンスサーバーが複数ある場合,複数のサーバーにアクセスするためライセンスのチェックに時間がかかるようだ.以前記事にしたように実際に1つライセンスを取った方が速いかもしれない.
なお,うちの研究室も自分を含む何人かやらかした事があるので,それ以降皆自重するようになりました.
"&"とかつけてジョブを複数投げるときは気をつけましょう.
% lmstat [-a][-f feature]
-a : 提供されているすべてのライセンスの情報を表示
-f "feature" : "feature"のライセンスに関して情報を表示
例えばhspiceの場合,
% lmstat -f hspice
と打ち込めばよい.
ただしライセンスサーバーが複数ある場合,複数のサーバーにアクセスするためライセンスのチェックに時間がかかるようだ.以前記事にしたように実際に1つライセンスを取った方が速いかもしれない.
なお,うちの研究室も自分を含む何人かやらかした事があるので,それ以降皆自重するようになりました.
"&"とかつけてジョブを複数投げるときは気をつけましょう.
2013年6月19日水曜日
SiliconSmart備忘録
SiliconSmart ACEを研究室の子に教えてもらったのでメモ.
最低限必要なのは
・全体の設定ファイル(configure.tcl)
・各セルごとの論理を定義したファイル(.inst).
・SPICEネットリスト.
configure.tclはインストールディレクトリにテンプレがある..instは無ければ手で作れとのこと.既存の.libがあればそれから生成することもできる.
各ファイルのディレクトリ構造は(ほぼ)固定である.SiliconSmartはカレントディレクトリのディレクトリ構造から,各設定ファイルを読み取る.ディレクトリ構造は以下となっている.
./config # configure.tclを入れる.
./control # .instファイルを入れる.
./netlists # ネットリストを入れる.これは別のディレクトリを指定できる.
キャラクタライズの条件はconfigure.tclにも,.instにも,そして既存の.libからも読み取ることができる.
優先度が存在し,高い順に
.inst > configure.tcl > .lib
である..libにIndexの切り方とか指定していても全然反映されず詰まった.
キャラクタライズで利用するSPICEファイルの拡張子は.cir.別の拡張子を使うときはimport時に-extオプションを使う.
Magmaのツールなので,平等にNLDMもCCSもESCMも出せる.
セルの面積情報を付加することができない.やり方はマニュアルに書いてあるが,.libに反映されない.バグ?
最低限必要なのは
・全体の設定ファイル(configure.tcl)
・各セルごとの論理を定義したファイル(.inst).
・SPICEネットリスト.
configure.tclはインストールディレクトリにテンプレがある..instは無ければ手で作れとのこと.既存の.libがあればそれから生成することもできる.
各ファイルのディレクトリ構造は(ほぼ)固定である.SiliconSmartはカレントディレクトリのディレクトリ構造から,各設定ファイルを読み取る.ディレクトリ構造は以下となっている.
./config # configure.tclを入れる.
./control # .instファイルを入れる.
./netlists # ネットリストを入れる.これは別のディレクトリを指定できる.
キャラクタライズの条件はconfigure.tclにも,.instにも,そして既存の.libからも読み取ることができる.
優先度が存在し,高い順に
.inst > configure.tcl > .lib
である..libにIndexの切り方とか指定していても全然反映されず詰まった.
キャラクタライズで利用するSPICEファイルの拡張子は.cir.別の拡張子を使うときはimport時に-extオプションを使う.
Magmaのツールなので,平等にNLDMもCCSもESCMも出せる.
セルの面積情報を付加することができない.やり方はマニュアルに書いてあるが,.libに反映されない.バグ?
2013年5月30日木曜日
CalibreがRedHat Linux 6.xで動かない
Calibreの古い版をRedHat Linux 6.2で起動すると,
ERROR: Red Hat Linux Release 6.2 is not supported for use with Calibre products.
と表示されて起動しない.RHEL6.xはCalibre Version 2011 2.6からサポートしているので,それより古い場合はアップデートが必要である.試しに2011.2_34.26を利用したところ,正常に起動した.
参考 (Mentor/Support Net)
Does Calibre 2011 work on redhat el 6.3?
http://communities.mentor.com/mgcx/thread/10357
ERROR: Red Hat Linux Release 6.2 is not supported for use with Calibre products.
と表示されて起動しない.RHEL6.xはCalibre Version 2011 2.6からサポートしているので,それより古い場合はアップデートが必要である.試しに2011.2_34.26を利用したところ,正常に起動した.
参考 (Mentor/Support Net)
Does Calibre 2011 work on redhat el 6.3?
http://communities.mentor.com/mgcx/thread/10357
2013年5月10日金曜日
学振PDの申請機関に注意
学振PDは申請者が現在所属している機関に申請するのではなく,申請者の受け入れ先研究機関に申請を行う.
ちゃんと学振の申請手引きに記載されているので,きちんと読みましょうorz
また,申請先によって締め切りが異なるので,この点も注意.
ちゃんと学振の申請手引きに記載されているので,きちんと読みましょうorz
また,申請先によって締め切りが異なるので,この点も注意.
2013年5月9日木曜日
Windows8において,IMEのON/OFFをアプリごとに保存する
これまでのWindowsではIMEの制御状態はアプリごとに保存されていたが,Windows 8ではIMEの制御状態はすべてのアプリで共有される.IMEの制御状態をアプリごとに保存するためには,コントロールパネルで設定を行う.
[コントロールパネル]→[言語]→[詳細設定]へ移動し,[アプリ ウィンドウごとに異なる入力方式を設定する]にチェックを入れる.
これで,Terminal等日本語入力をしないアプリは常にIMEオフにできるので使い勝手が向上する.
Windows 8でなぜこの様な設定を入れさらにデフォルトにしたのだろう.Windows 8はショートカット等が充実していてなれれば高速に使いこなせる設定がある一方で,全くの誰得設定が多すぎてせっかくの利点を完全にスポイルしている感じ.
[コントロールパネル]→[言語]→[詳細設定]へ移動し,[アプリ ウィンドウごとに異なる入力方式を設定する]にチェックを入れる.
これで,Terminal等日本語入力をしないアプリは常にIMEオフにできるので使い勝手が向上する.
Windows 8でなぜこの様な設定を入れさらにデフォルトにしたのだろう.Windows 8はショートカット等が充実していてなれれば高速に使いこなせる設定がある一方で,全くの誰得設定が多すぎてせっかくの利点を完全にスポイルしている感じ.
2013年4月15日月曜日
Windowsにおける印刷時のフォント化けを解決する(フォントの置換をやめる)
印刷時にフォントが化ける場合,送信したファイルに含まれるフォントがプリンタ内蔵のフォントに代替された事によって引き起こされる場合がある.この場合,代替フォントではなくオリジナルのフォントのまま印刷する様にプリンタを設定すれば問題は解決する.
るEPSON LP-9600Sの場合,[プリンタのプロパティ]から[デバイス設定]を開き,[フォント代替表]に含まれる[MS ゴシック][MS 明朝]がそれぞれ[@ゴシック][@明朝]となっていたので,[Don't Subscribe]に設定する事で文字化けが解決した.
ただし,Windows XPなマシンはプリンタのフォントで問題なかったので,Windows 8で利用しているEPSON LP-9600Sのドライバに問題があるのかもしれない.
るEPSON LP-9600Sの場合,[プリンタのプロパティ]から[デバイス設定]を開き,[フォント代替表]に含まれる[MS ゴシック][MS 明朝]がそれぞれ[@ゴシック][@明朝]となっていたので,[Don't Subscribe]に設定する事で文字化けが解決した.
ただし,Windows XPなマシンはプリンタのフォントで問題なかったので,Windows 8で利用しているEPSON LP-9600Sのドライバに問題があるのかもしれない.
2013年4月9日火曜日
HSPICEの標準出力に詳細情報を出力する(.option lis_new)
HSPICEはデフォルトで詳細な情報を標準出力(*.lis)に出力するが,より詳細な情報を
出力させるにはlis_newオプションを利用する.
.OPTION LIS_NEW = value
valueは[0|1]の値であり,0がデフォルトである.1にすることでオプションが有効になり,以下の操作が行われる.
■ .PRINTと.NOISE解析の結果が別のファイルに出力される.
■ *.ic#に出力された動作点解析の結果が出力されなくなる.
■ シミュレーションの進捗がパーセンテージで表示される.
■ 解析結果を解析結果に準じた形式で出力する(Reports analysis output file with analysis-specific format.)
■ Convergenceの状態を更新し*.lisに出力する
■ 進捗10%ごとに解析結果を*.lisに出力する
■ 回路の統計情報を表示する.
大きいシミュレーションをするときに,進捗率が表示されるのは結構うれしい.
出力させるにはlis_newオプションを利用する.
.OPTION LIS_NEW = value
valueは[0|1]の値であり,0がデフォルトである.1にすることでオプションが有効になり,以下の操作が行われる.
■ .PRINTと.NOISE解析の結果が別のファイルに出力される.
■ *.ic#に出力された動作点解析の結果が出力されなくなる.
■ シミュレーションの進捗がパーセンテージで表示される.
■ 解析結果を解析結果に準じた形式で出力する(Reports analysis output file with analysis-specific format.)
■ Convergenceの状態を更新し*.lisに出力する
■ 進捗10%ごとに解析結果を*.lisに出力する
■ 回路の統計情報を表示する.
大きいシミュレーションをするときに,進捗率が表示されるのは結構うれしい.
登録:
投稿 (Atom)