2017年7月21日金曜日

Verilog における force 文メモ

非同期分周器のVerilogシミュレーションでforce文を使ったのでメモ.

Verilogで特定のノードの値を強制的に指定するために,force文を使う.force文の指定を解除するためには,release文を使う.非同期分周器の場合,分周器の入力に対して強制的に値を指定し,クロック立ち上がりを入力し値をDFFに取り込む.次に,release文を使う事でforce文を解除する.


2017年7月13日木曜日

AnalogArtist のセルをSKILLコマンドでリネームする(ccpRename)

AnalogArtist 中のセルをリネームするには,ccpRenameコマンドを使う.
リネーム前,リネーム後のセルは,gdmSpecオブジェクトを指定する.従って以下の様に組み合わせてやればよい.

mySpecSrc = gdmCreateSpec("lib" "srcCellName" "view" nil "CDBA")
mySpecDst = gdmCreateSpec("lib" "dstCellName" "view" nil "CDBA")
ccpRename(mySpecSrc mySpecDst)

ここで,srcCellName がリネーム前のセルの名,dstCellNameがリネーム後のセル名,view 対応するview(layout/schematic/symbol...)である.

2017年4月12日水曜日

Star-RC で電源配線を抽出する(POWER_EXTRACT)

Star-RC で電源配線の抽出を制御するには,POWER_NETSコマンドとPOWER_EXTRACTコマンドを使う.

POWER_NETSコマンドの後ろに,抽出させたくない電源名を記述する.
POWER_NETS: VDD1 VDD2 ...

POWER_EXTRACTコマンドを利用して,電源の抽出の仕方を選ぶ.
POWER_EXTRACT: YES | NO | RONLY | DEVICE_LAYER

YES: 電源配線のRCを抽出
NO(Default): 電源配線のRCを抽出しない.ただし信号配線のRC抽出において電源配線の影響は考慮される.
RONLY: 電源のRのみ抽出し,別のファイルとして出力する.
DEVICE_LAYERS: マッピングファイル中のdevice_layerキーワードに登録された配線層における,RCのみを抽出する.

RONLYオプションをつけた場合,POWER_EXTRACTコマンドを使うことでRの縮約もできる.

2017年3月29日水曜日

IC Compilerで利用する配線層を制約する

IC Compilerにて利用する配線層を制約する手法は2つある.

(1) 特定の配線に対して利用できる配線層を指定するために set_net_routing_layer_constraint コマンドを利用する.

set_net_routing_layer_constraint {net1, net2,... } -min_routing_layer Mx -max_routing_layer My

(2) 全ての配線層に対して利用できる配線層を指定するためには
set_ignored_layer コマンドを利用できる.

set_ignored_layer -min_routing_layer Mx -max_routing_layer My

基本的には両者の動きは同じだと思われるが,うろ覚えだが,icc_vF-2011.09-SP5-1を利用しているときに set_ignored_layer ではうまく配線層の指定が聞かず,仕方なく全てのネットに対して set_net_routing_layer_constraint を利用した形跡がある(バッドノウハウ??).

set_net_routing_layer_constraint {*} -min_routing_layer Mx -max_routing_layer My

なお set_ignored_layer は,-rc_congestion_ignored_layers layer_name オプションをつける事で配線混雑度解析,RC解析において無視すべき配線層を指定する事も出来る.

set_ignored_layer -rc_congestion_ignored_layers layer_name

2017年3月24日金曜日

Traditional and Variation Block Monte Carlo

HSPICEの新しい版(前からあったと思うが少なくともL-2016.06-SP1-1)では,PDKにも依存するがモンテカルロ(Monte Carlo:MC)解析においてVariation-Block(VB)ベースのMC解析が利用できる.
伝統的なガウス関数(AGAUSS)以外にも,MC解析においてサンプリング手法等を変える事が出来る.

・乱数発生器
HSPICEの乱数発生器を以下のオプションで変えられる.なお2016.06から,デフォルトの乱数発生器が3LCからMCGに変更となった.

.option RANDGEN = [3LC|MOA|UVS|MCG|WH]

各アルゴリズムは以下の通り
3LC: 従来通りの乱数発生器
MOA: Multiply-with-carryタイプ
UVS: 64bit universal 乱数発生器
MCG: (Default) 64bit multiplicative(乗法)-乱数発生器
WH: 他のよりサイクル数の長い乱数発生器

・統計情報の出力
過去のMC解析とは異なり,VBベースのMCでは以下の情報も出力される.
- より詳細な統計情報:*.mpp0
- 各サンプルにおける独立変数の値:*.mc0
- 各ランダム変数の貢献度をSynopsys Custom Designerへ反映するための情報ファイル:*.annotate
-  従来のSRS解析のための部分的な情報:*.mpp0

・サンプリング手法の変更
サンプリング手法を以下のオプションで変更できる.

.option SAMPLING_METHOD = [SRS|LHS|Factoral|OFAT|Sobol|Niederreiter|External]

各サンプリング手法の説明は以下の通り.
SRS: (Default) これまでの伝統的な単純なランダムサンプリング
LHS: Latin Hypercube Sampling:多変数の時に効率的(.option REPLICATESと併用)
Factoral: Factoral サンプリング: 回路の応答から最良値-最悪値のレンジを計算する.多項応答曲面を作る.
OFAT: One-Factor-at-a-Timeサンプリング:低次元応答曲面が利用できるような,感度解析が使える領域でつかう.
Sobol: Sobol SamplingでLow-discrepancy sequence(LDS)の一種.
Niederreiter: LDSの一種.
External: 外部からデータセットを読み込む.

2017年1月8日日曜日

情報処理学会の正会員費を割り引く方法

情報処理学会の定める協力協定学会に入会している場合,
情報処理学会の正会員費を割り引くことができる.

IEEE会員なら10%,ACMなら20%割り引かれる.

情報処理学会の正会員費は10800円(2017年から1000円上がった)が,
IEEE会員ならば以前と同じ金額に抑えることができる.

最初の登録時は,IEEEの会員賞をスキャン/写真を撮って指定の
メールアドレスにメールを送ればよい.

https://www.ipsj.or.jp/member/kyoryoku.html

2016年10月15日土曜日

Rのパッケージインストール時にリポジトリを指定する

Cent OS 6 マシンにyumを使ってインストールした R のリポジトリが古い様で,>install.packages("package")
では本家CRANを見に行き,ダウンロードできない.
この場合は有効なリポジトリ(例えばcran.us)を指定すると良い様だ.dplyr と clust パッケージを以下のコマンドでインストールした.
> install.packages("dplyr", repos="http://cran.us.r-project.org/")
> install.packages("mclust", repos="http://cran.us.r-project.org/")

CPANから.tgzをローカルにダウンロードしてインストールすることもできるようだ(試していない).
> install.packages("/path/target.tgz", repos=NULL, type="source")

以下のサイトをそのまま実行した.
http://altons.github.io/r/2013/06/23/when-package-xyz-is-not-available-for-a-specific-version-of-r/

以下のWikiには国内のCRANミラーサイトについて色々書いてある(問題を解決してから見つけた)
http://www.okadajp.org/RWiki/?CRAN国内ミラーの使い方