Zrouteでセル間の配線を行う際に,配線のスタセルへのアクセス方法を指定する事が出来る.
この時
set_route_zrt_common_option -connect_within_pins {{Metal option} {}...}
と言う形で指定する.optionの内容は以下の通り
off:
制約無し(デフォルト)
via_standard_cells_pins:
VIAを利用して接続する場合において制約があり,ビアはピンの真上かつ座布団がピンからはみ出ない必要がある(それ以外はDRC違反).ピンと同層メタルで引き出す
場合は制約無し.マクロやPADに対しては制約無し.
via_all_pins:
via_standard_cells_pinsと同様だが,スタセルだけでなくマクロやPADに対しても制約あり.
via_wire_all_pins:
VIAおよび配線を利用して接続する場合において制約あり.ビアはピンの真上かつ座布団がピンからはみ出ない必要がある(それ以外はDRC違反).ピンと同層メタルで引き出す事も禁止.
ピンの周辺に座布団を生成してDRC違反を発生させてしまうセルが存在する場合,本オプションを適用すると違反を回避することが出来るかもしれない.
2014年2月28日金曜日
2014年2月26日水曜日
SDCの単位を指定する
論理合成で利用する遅延制約(Synopsys Design Constraint: SDC)において,容量や抵抗,時間の単位を明示するために,set_unitsコマンドを利用する事が出来る.
set_units -capacitance cap_unit -resistance res_unit \
-time time_unit -voltage voltage_unit -current current_unit \
-power power_unit
単位を明示しない時は読み込むライブラリ(.db)の単位が使われるが,明示した方が安心だろう.
set_units -capacitance cap_unit -resistance res_unit \
-time time_unit -voltage voltage_unit -current current_unit \
-power power_unit
単位を明示しない時は読み込むライブラリ(.db)の単位が使われるが,明示した方が安心だろう.
2014年2月20日木曜日
Silicon Smartにおける"no convergence"の一原因
Silicon Smart AceとHSPICEを使ってスタセルのキャラクタライズを行っていたところ,以下の様なエラーをHSPICEが出力しキャラクタライズがとまる事態が発生した.
Error: Simulation initialization__ACQ_1.sif for cell SN51DFFRBQXC1 failed.
Error: Error while running simulation: Error found in simulator log file (deck.lis): **error** no convergence in operating point
キャラクタライズ対象のセルのネットリストが正常に動作する場合,Silicon Smartに入力する論理情報およびキャラクタライズ条件に不備がある可能性がある.今回のセル(非同期リセット付きポジティブエッジDFF)の場合,セルのインスタンスファイル(.inst)のピンの定義および論理情報は適切であったが,オプションのユーザー定義のキャラクタライズ条件(User-specified characterization and modeling configuration options.)に不備があり,Reset時の条件が書かれていなかった.そのため変なSPICE Deckを生成したと思われる.
LPEした回路の不備かと思った.紛らわしいエラーだ.
Error: Simulation initialization__ACQ_1.sif for cell SN51DFFRBQXC1 failed.
Error: Error while running simulation: Error found in simulator log file (deck.lis): **error** no convergence in operating point
キャラクタライズ対象のセルのネットリストが正常に動作する場合,Silicon Smartに入力する論理情報およびキャラクタライズ条件に不備がある可能性がある.今回のセル(非同期リセット付きポジティブエッジDFF)の場合,セルのインスタンスファイル(.inst)のピンの定義および論理情報は適切であったが,オプションのユーザー定義のキャラクタライズ条件(User-specified characterization and modeling configuration options.)に不備があり,Reset時の条件が書かれていなかった.そのため変なSPICE Deckを生成したと思われる.
LPEした回路の不備かと思った.紛らわしいエラーだ.
Calibre InteractiveでRunsetを読み込むと同時に自動実行する
Calibre InteractiveによるDRC/LVS実行時に,毎回[Run DRC]や[Run LVS]を実行する事が煩わしい.オプションを設定する事で,起動時にRunset選択後自動でDRC/LVSを実行する事が可能になる.オプションはCalibre Interactiveの[Setup]→[Preferences...]から[Misc]タブを選択し,[Run Calibre when runset is opend]にチェックを入れる.
こうすると,
(1) VirtuosoのCalibreメニューからDRC/LVSを選択
(2) Runsetを選択→自動でCalibre実行
となり,[Run DRC]等を選択するステップを減らす事が出来る.
さらに[Prompt to save changes before closing runset]と[Save runset each time Calibre is run]を選択しておくと,Calibre終了時に「Runsetの内容変わっているが保存するか?」という鬱苦しいダイアログが表示されなくなるので,こちらもおすすめ.
こうすると,
(1) VirtuosoのCalibreメニューからDRC/LVSを選択
(2) Runsetを選択→自動でCalibre実行
となり,[Run DRC]等を選択するステップを減らす事が出来る.
さらに[Prompt to save changes before closing runset]と[Save runset each time Calibre is run]を選択しておくと,Calibre終了時に「Runsetの内容変わっているが保存するか?」という鬱苦しいダイアログが表示されなくなるので,こちらもおすすめ.
2014年1月17日金曜日
英文における単位の前のスペースと並列表記
一般に英語はwordごとにスペースを入れる.単位は一つのwordであるからスペースを入れると教わる.
100 meter
100 m
そのため並列表記の時は以下の様になる.
A and B increase to 3 and 10 cm, respectively.
ただし例外があり,パーセント(%)はスペースを空けないと教わる.これはパーセントはそれ単体では意味をなさず,数字と合わさって意味を持つためだと教わるためである.
Proposed design flow shows the energy consumption of the circuit is reduced to 86%.
Result shows impact of C and D decrease to 70% and 80%, respectively.
しかし,友人が言うにはInternational System of Units(SI単位系)およびISO 31-0ではパーセントはあけてはいけないらしい(Wikipedia: Percent sign).
Result shows impact of C and D decrease to 70 and 80 %, respectively.
まあ,これまで論文校正で突っ込まれたこともないし,あまり気にしなくてもいいのかもしれない.
"respectively"の位置は最後尾ではなく真ん中に入れた方が読み返しを防ぐのでよいという意見もあったが,自分の論文ライブラリにはそんな表記は全く見られずすべて最後尾に入れてた.
Result shows impact of C and D, respectively, decrease to 70 and 80 %.
100 meter
100 m
そのため並列表記の時は以下の様になる.
A and B increase to 3 and 10 cm, respectively.
ただし例外があり,パーセント(%)はスペースを空けないと教わる.これはパーセントはそれ単体では意味をなさず,数字と合わさって意味を持つためだと教わるためである.
Proposed design flow shows the energy consumption of the circuit is reduced to 86%.
Result shows impact of C and D decrease to 70% and 80%, respectively.
しかし,友人が言うにはInternational System of Units(SI単位系)およびISO 31-0ではパーセントはあけてはいけないらしい(Wikipedia: Percent sign).
Result shows impact of C and D decrease to 70 and 80 %, respectively.
まあ,これまで論文校正で突っ込まれたこともないし,あまり気にしなくてもいいのかもしれない.
"respectively"の位置は最後尾ではなく真ん中に入れた方が読み返しを防ぐのでよいという意見もあったが,自分の論文ライブラリにはそんな表記は全く見られずすべて最後尾に入れてた.
Result shows impact of C and D, respectively, decrease to 70 and 80 %.
2013年10月13日日曜日
dvipdfmxでpdfを作ると図がずれる
ptetexからtexlive(2013/10/12)に移行したら,dvipdfmxでpdfを生成する時に
図がずれる様になった.xdviで見る限りdviは問題なさそうである.
原因はグラフィックのパッケージへのオプションが不適切で,
\usepackage{graphicx}
から
\usepackage[dvipdfmx]{graphicx}
に変えたら直った.
図がずれる様になった.xdviで見る限りdviは問題なさそうである.
原因はグラフィックのパッケージへのオプションが不適切で,
\usepackage{graphicx}
から
\usepackage[dvipdfmx]{graphicx}
に変えたら直った.
2013年9月16日月曜日
Windows8で休止状態を使うと音が鳴らなくなる
Windows8のWindows Media Centerで音を鳴らしながら休止状態に移行すると,休止状態から復帰しても音が鳴らなくなる.こうなるとWindows Media Centerでも他のプレイヤーでも音が鳴らなくなる.こうなると再起動するしかない.ボリュームを変えるとホワイトノイズは変わるし,視覚エフェクトも正常.原因がわからない.不便だ.
Windows 8の場合,コントロールパネルからのトラブルシューティングを立ち上げることができる.
[コントロール パネル]→[すべてのコントロール パネル項目]→[トラブルシューティング]
しかし「ボリュームを上げろ」と指示された以上の特に有用な情報を得ることはできなかった.
また,Windows Audioサービスを再起動しても結果は変わらなかった.
英語で検索したら,Microsoft Communityにすでにスレッドが立っていた(2012/11).
No audio after windows 8 wakup from sleep
サポートの人がまるで役に立っていない.「管理者として実行してみては?」というアドバイスもあったが効果はなかった.
Windows 8の場合,コントロールパネルからのトラブルシューティングを立ち上げることができる.
[コントロール パネル]→[すべてのコントロール パネル項目]→[トラブルシューティング]
しかし「ボリュームを上げろ」と指示された以上の特に有用な情報を得ることはできなかった.
また,Windows Audioサービスを再起動しても結果は変わらなかった.
英語で検索したら,Microsoft Communityにすでにスレッドが立っていた(2012/11).
No audio after windows 8 wakup from sleep
サポートの人がまるで役に立っていない.「管理者として実行してみては?」というアドバイスもあったが効果はなかった.
2013年8月12日月曜日
コピー機の最大投入金額(16120円)に関する考察
なぜFuji Xeroxのコピー機の最大投入金額が16120円と中途半端なのか推測してみる.
複写管理機器(というらしい)Coinkit 9のカタログ(pdf)を見ると,硬貨だけの場合最大投入金額は15120円で,オプションの1000円紙幣ユニットをつけることで16120円になるらしい.
カタログを見ると,どうも硬貨の種類によって最大投入可能数が異なる様だ.従ってWikipediaから硬貨の厚みに関する情報を引き出してみると以下のようになった.
- 10円:1.5mm x 90枚 = 135mm
- 50円:1.7mm x 78枚 = 132.6mm
- 100円:1.7mm x 77枚 = 130.9mm
従って,硬貨を受けつけるトレイの大きさが136mmでありそれに制約されている可能性がある.微妙にずれがあるのは,硬貨のそり等を考慮したマージンの分であったり,硬貨の正確な厚みが公表されていない分の誤差の蓄積だと思われる(造幣局のサイトでは見つけられなかった).
2013年8月6日火曜日
SPICEネットリストビューアー
以前SPICEのネットリストのビューアーで良いものがないか問い合わせを受けた.自分の知っているビューアーは以下の通りである.
フリーのネットリストビューアーである.使い勝手は不明だが,デモを見る限り素子がぐちゃぐちゃに配置され可読性が低そうである.
AnalogArtist
CIWから[File]→[Import]→[CDL…]でCDLとして読み込む.素子がぐちゃぐちゃに配置されるため,可読性が低い.
逆にComposer Schematicを使ってGUIでネットリストを作り,CDL outしてネットリストを生成することも可能(そこまでするならAnalog Design Environmentを使う方がよいかも).
逆にComposer Schematicを使ってGUIでネットリストを作り,CDL outしてネットリストを生成することも可能(そこまでするならAnalog Design Environmentを使う方がよいかも).
Concept Engineeringというドイツの会社が出している.未使用なので使い勝手はわからない.デモを見る限り素子がきれいに配置されている.購入する必要がある.
Spice Explorer/Custom Explorer
現在Synopsysが提供している波形ビューアーであるが,Spice形式のファイルを表示することも可能である.Spice Explorerの場合マクロブロックの入出力単位,Custom Explorerであればマクロ間の配線をGUIで表示可能だが,使い勝手はイマイチである.特に後者はVDECのライセンスでは動作しないようだ(波形の表示はできる).
Calibre RVE
個人的におすすめなのがRVEである.特に2010年版以降のGUIのネットリストビューアーのできがすばらしい.
% calibre -rve
で起動し,読み込むファイルとして[SPICE File]を選択しファイルをロードすればokである.信号のハイライト,回路ブロックの展開/収束も可能である.VDEC提供のライセンスで利用可能.ただしLVS用のネットリストビューアーなのでサブサーキットとして定義した回路ブロックしか見ることができないようだ.
IC Compilerで生成するVIAの種類を指定する(advanced via rule)
IC Compilerで利用する(Astroの)テクノロジファイルには一般に様々な種類のVIAマクロが定義されており,IC Compilerはそれらの中から状況に応じてVIAを使い分ける.IC Compilerが意図通りのVIAを生成しないときは,advanced via ruleを指定する事でユーザーの意図通りのVIAを選択させることができる.
例えば,電源ストラップ生成時のスタックドビアに利用するVIAを指定するには以下のように設定すればよい.
set_preroute_advanced_via_rule -contact_code TECH_VIA1 -size_by_array_dimensions [list 5 1] -move_via_to_center
その後いつものように電源ストラップを生成する.
create_power_straps -direction vertical -start_at 4.5 -num_placement_strap 2 -increment_x_or_y 20 -nets {VDD VSS} -layer M5 -width 1 -step 20 -pitch_within_group 1.75 -extend_low_ends force_to_boundary_and_generate_pins -extend_high_ends force_to_boundary_and_generate_pins -advanced_via_rules
-contact_codeでテクノロジファイル中のVIAを指定する事が可能である.-move_via_to_centerオプションをつけると,電源レールの真ん中にVIAを配置することが可能である(つけないとずれる).
例えば,電源ストラップ生成時のスタックドビアに利用するVIAを指定するには以下のように設定すればよい.
set_preroute_advanced_via_rule -contact_code TECH_VIA1 -size_by_array_dimensions [list 5 1] -move_via_to_center
その後いつものように電源ストラップを生成する.
create_power_straps -direction vertical -start_at 4.5 -num_placement_strap 2 -increment_x_or_y 20 -nets {VDD VSS} -layer M5 -width 1 -step 20 -pitch_within_group 1.75 -extend_low_ends force_to_boundary_and_generate_pins -extend_high_ends force_to_boundary_and_generate_pins -advanced_via_rules
-contact_codeでテクノロジファイル中のVIAを指定する事が可能である.-move_via_to_centerオプションをつけると,電源レールの真ん中にVIAを配置することが可能である(つけないとずれる).
登録:
投稿 (Atom)