集積回路CADでは,回路において電気がする仕事量として,エネルギー(電力量,electrical energy)ではなくなぜか電力(power)が使われる. PowerCompiler などのレポートも電力(W)で表示される.
電力とエネルギーは混同されがちだが違うので,本来の仕事量はエネルギーとなるべきである.ではツールはどう取り扱っているのか各種マニュアルを調べてみた.ちなみに,マニュアル中でも電力とエネルギーは割とグチャグチャです(もしくは凄くセンシティブに使い分けているのか)
・キャラクタライズツール側(SilicoonSmart, LibraryCompiler)
キャラクタライズツールは,電力を3要素に分解し,そのうち内部電力(Internal power)とリーク電力の項を.libとして保持する.
(1)リーク電力:静止時の電力
(2)内部電力:セル内部で消費される電力.貫通電流など.
(3)スイッチング電力:外部容量の充放電による電力
電力は本来時間の関数だが,時間の関数として持つ事は難しい.電力はある波形が入ったときに流れた電荷量の積分値に電圧をかけたもの(エネルギー)から,出力容量の充放電エネルギー量,リークによるエネルギー量を引くことで内部電力(正確にはエネルギー)を計算する.
.libの Power Table は,第一軸入力スリュー,第二軸出力容量,そして肝心の第三軸はトグルあたりのエネルギーなっている(Eint/transition, in units of fJouls).
リーク電力は入力論理値それぞれ一意の値となる.
・電力解析側(PowerCompiler)
こちらは一部憶測で,回路の消費電力を以下のように計算すると思われる(トグル確率による平均電力評価の場合).
(1) リーク電力:入力がHighの確率,Lowの確率,それぞれの時のリーク電力からリーク電力の期待値を計算し,全てのセルの総和を取る.
(2) 内部電力:全ての入力から出力へのエネルギー量に,入出力の遷移確率とパスの重みをかけたものの総和を取る※
(3) スイッチング電力:全てのパスの出力容量と対応するトグル確率をかけた物の総和をとり,Vdd^2/2をかける.
動的電力の単位は.lib中の容量単位,電圧単位,時間単位から以下のように計算する.静的電力は単位が.libに書いてある.
power_unit = (capacitive_load_unit * voltage_unit^2)/time_unit
要約すると以下の通り.
・キャラクタライズ側は,きちんとエネルギーを測ってそれをエネルギーとして Power table に登録している.リーク電力はそのまま.
・解析側は,Power tableに書かれたエネルギーとトグル確率から動的エネルギーを計算し,電力に変換.リーク電力は全セルの和をとる.
あたりまえ?かもしれないが,動的電力は回路が動いたときに消費した正味の電力なので,意味合いはエネルギーと等価.電力を周期で割った物ではない.
最初から最後までエネルギーとして取り扱えばこんな問題は起きなかったのに,なんでなんや...
※P_int = Σ_{i=A,B} E_{i→Z} x PathWeight x TggleRateという式がでてくる(A,Bは入力,Zは出力).P_intはエネルギーの総和を評価している.
.lib (Liberty)については Synopsys がその仕様をオープンにしているので参考にした.といっても800ページ近くあるので一部だけしか読めてないですが.
2021年12月18日土曜日
2021年12月7日火曜日
Python で終了する時の呼び出し関数,行番号を報告する
タイトル通り.inspect モジュールを利用する.
Perl でもできる(さらにエラーメッセージを引数としてもらう).
Perl の方が記述はシンプルなんだよなぁ.
2021年10月9日土曜日
Vivaldi のクリプトトークンを外す
Vivaldi は Version 4.0 から正式にメールサポートしたのだが,それに伴って(?) Vivaldi が Google サービスへのアクセスを要求するようになった.
むやみやたらに権限を許可したくないのだが,許可を求めるポップアップが頻繁に出てくるのが邪魔である.その場合,[設定]→[プライバシー]→[Google拡張機能]→[クリプトトークン]を外すとポップアップが出力されなくなった.
5ch には
https://egg.5ch.net/test/read.cgi/software/1609553989/26
クリプトトークンを外すとGoogleサービスにアクセスできないというコメントがあったが,ローカルユーザーにしているからかそのような不具合には直面していない.
なおクリプトトークンとは FIDOAlliance の仕様で定義されている公開鍵暗号化に依存するユーザー認証に利用するAPI らしい.
https://forum.vivaldi.net/topic/58228/guide-google-extensions-crypto-token-what-it-does
こんな乱暴なことをしなくても,ブラウザに Google アカウントでログインしないだけでいいのだけれどね….
この対応が正しいのかは全くよくわかりません.
2021年10月3日日曜日
AnalogArtist の レイヤー選択を Skill コマンドで実行する (leiMouseSetEntryLayer. leSetEntryLayer)
leiMouseSetEntryLayer コマンドを利用すると AnalogArtist のレイヤー選択を Skill コマンドで実行できる.
x
leiMouseSetEntryLayer ( i_layer )
i_layer は整数で,Layer Select Window (LSW) の最上位の項目から順に0,1,2...である.(テクノロジファイルの techLayerPurposePriorities の順番)
i_layer の選択の Visibility が低いので,番号ではなくレイヤー名を直接指定する場合は leSetEntryLayer コマンドを利用する.
leSetEntryLayer('("s_layer" "s_puopose"))
S_layer はレイヤー名(M1など),s_puopose は Purpose (Drawingなど) である.
2021年9月13日月曜日
AMD interview Questions (Physical Design) を訳してみる
勉強になるかと思って翻訳+自分なりに回答してみた.正直回答の正確性は微妙です.
元は以下のページです.
AMD interview Questions (Physical Design)
https://www.physicaldesign4u.com/2021/03/amd-interview-questions-physical-design.html
Tell me about your experience.
Q:あなたの経験について教えてください.
A:(^p^)
How will you make sure that your power structure is good?
Q: あなたの設計した電源構成が十分である事をどう確認しますか.
A:電源配線抵抗が回路の等価抵抗の5%程度になればよい?Path-millで確認して5%以内であればOK?(正直確認をしたことがない.過去の経験からとしか)
Tell me about DRC and LVS fixes.
Q: DRC,LVS修正について教えてください.
A: どちらも Calibre RVE の情報を元に修正します.(答えになっているのか)
Why we are following certain guidelines for macros placement and what are those guidelines?
Q: マクロ配置のガイドラインとその理由について教えてください.
A: マクロ配置のガイドラインはDRC回避と信号・電源配線のため.近接しすぎると配線が不可能になったり,マクロ内のレイヤー密度によっては密度違反を引き起こす.
What is the minimum space required in between macros if the channel is there on the non-pin side of macros?
Q: 配線チャネルがマクロのピンのない辺にある場合,マクロ間に必要な最低スペースはいくつですか.
A: ピン数/配線レイヤー数/2.2で割るのは偶数奇数レイヤーで配線方向が違うため.
What is the distance between tap cells in your design?
Q: タップセルの間隔は?
A: プロセス依存だが 60um 程度が一般的かと.
What are the setup and hold edges for a 3-level multi-cycle path?
Q: 3-level multi-cycle pathにおけるセットアップホールドエッジはいくら?
A: T_path > DFF_hold, T_path < 3 x T_clk + DFF_setup
What are the setup and hold edges for the half-cycle path?
Q: half cycle pathにおけるセットアップホールドエッジはいくら?
A: T_path > DFF_hold, T_path < 1/2 x T_clk + DFF_setup
How you will perform cell spreading in placement if congestion is there?
Q: 混雑している場所のセルを拡散させるには?
A: (具体的にどうするか実施したことない.ICCでできるのだろう.)
Tell me about the 2-pass approach in placement.
Q: Placement における2-pass アプローチについて語ってください.
A: Global Placement -> Local Placement
Why we are not taking care of hold violations at the placement stage?
Q: 配置でホールド違反をケアしない理由は?
A: ホールド違反はCTS後のバッファリングで回避できるため.
Tell me about multi-source CTS.
Q: マルチソースCTSについて語ってください.
A: (やったことないのでわからない)
Tell me about Switching power, internal power, average power, peak power, and IR Drop.
Q: スイッチング電力,内部電力,平均電力,ピーク電力,IR Dropについて語ってください.
A: スイッチング電力は配線の充放電での消費電力,内部電力はゲートや拡散,貫通電力によるセル内部での消費電力,平均電力はクロックサイクル間に消費された電力の平均値,ピーク電力は時変動する消費電力の最大値,IR Dropはこれら消費電力によって流れる電流と配線抵抗の積によって生じる起電力でその分回路内部の電源電圧が低下する.
Tell me about CPPR.
Q: CPPRについて語ってください.
A: CPPR (Common Path Pessimism Removal)とは,OCV (On-chip Variation)を考慮したSTAにおいてパス遅延が同時にFastとSlowになる事を除去する考え方である.パス遅延解析において,Setup解析ではパス遅延最大がWorst条件で,一方Hold解析ではパス遅延最小がWorst条件である.しかし同じパスが同時にFastとSlowになることは考えられない.
そこでCommon Path(例えば2つのFFで共通するクロックバッファ)の遅延を解析対象から除去し,Setup SkewとHold Skewにおける悲観的計算を排除する.
What are the differences between OCV and POCV?
A: OCV と POCV の違いについて
Q: どちらもSTAでチップ内ばらつきを考慮するもの.OCV は データパス,クロックパスなどの遅延解析においてチップ内ばらつき相当の計数を掛けたもの.ばらつきモデルが不要という利点があるが精度が悪い.POCVは,AOCVとは違い,遅延が正規分布に従うと仮定しその μ と σ で自身のばらつきをモデル化する.AOCVより計算効率が高い.
POCVの前にAOCVがあり,AOCVはパスの距離と深さを考慮したモデル.精度は高いがモンテカルロによる統計ライブラリを作成するのが大変.
What are the setup and hold edges for the half-cycle path?
Q: half cycle pathにおけるセットアップホールドエッジはいくら?
A: (既出?)
What are the setup and hold edges for the positive latch to negative flop?
A: (パスします)
Tell me about setup and hold violation fixes which are occurred in the same path.
Q: あるパスにおいてSetup違反とHold違反を同時に解決するにはどうすればいいですか.
A: T_clockを遅らせるようにCTSを行う.
How will you apply to derate?
Q: 駆動力を下げるにはどうしますか.
A: トランジスタを小さくする.
Tell me about DPT.
Q: DPTについて語ってください.
A: DPT (Double Patterning Technology) は露光技術の1つで,2つのマスクを使って
より解像度の高いパターンを形成する技術.LELEとSADPの2種類がある.
Tell me about X-talk delta and X-talk noise.
Q: クロストークデルタおよびクロストークノイズについて語ってください.
A: 2つの隣接する配線は寄生容量で結合しており,片方の配線の充放電によってもう片方の配線の電圧が瞬時に変化し,それがノイズと見えるのがクロストークノイズ.また二つの配線が同時にスイッチすると信号の方向によってはミラー容量のように結合容量が拡大してみる.そのために信号遅延が変化する(遅くなる)のがクロストークデルタ遅延.
What are the different ways to fix setup and hold? Which one is difficult to fix setup? or hold?
Q: SetupとHoldを回避するための異なる手法は何ですか?どちらがFixが難しいですか.
A: Setup違反を回避するためにはパス遅延を小さくするかクロック周期を延ばす.Hold違反を回避するにはパス遅延を大きくする.難しいのはSetupで,パス遅延を小さくするにはパスを構成する回路を小さくするためにRTL設計に差し戻す必要も出てくる.Holdはバッファを入れれば回避できる.(電力と面積は増える)
Which violation you will fix first? Is it set up or hold?
Q: Setup違反とHold違反どちらを先に修正しますか.
A: Setup違反.理由はSetupの方が差し戻し先が遠いから.
Tell me about scan-chain reordering.
Q: Scan-chain Reorderingについて語ってください.
A: RTL段階で設計したスキャンチェイン中のDFFは,配置配線後にチップ中のどこに配置されるかわからず,スキャンの配線が遠くなる可能性がある.スキャンチェインのDFFの順番を入れ替えて配線長を最適化するのがScan-chain reordering.
What are the timing arcs for flipflop when we have scan-chain reordering?
Q: Scan-chain Reorder後のタイミングアークはどうなりますか.
A: スキャンの配線長が変わるため Timing Slack が変化する可能性がある.(答えになってない?)
How will you improve your insertion delay?
Q: insertion delayをどう改善しますか.
A: Insertion delayとはマクロのクロックピンからDFFのクロック端子までの遅延の事.改善するためにはクロックバッファを大きくするか,Hツリーにしてクロックにおける寄生容量を減らす.
And some other timing-related scenarios w.r.t. setup and hold fixes.
Q: ほかに Setup や Hold を改善するタイミングに関するシナリオについては?
A: (わからない)
Explain sanity checks.
Q: Sanity Checkについて説明して.
A: Sanity check(健全性チェック)は,ソフトウエアやハードウエアの計算結果が正しいことを素早く評価するテストのこと.
What check_design will report?
Q: check_designコマンドは何をリポートするか.
A: 入力されたRTLの健全性を確認し,構文エラーや再帰呼び出しなどコンパイルできないものを報告する.
What is the issue, if inputs are floating?
Q: 入力がフロートの場合何が問題ですか.
A: ゲートの電圧が定まらず,PMOSからNMOSへ貫通電流が発生する.
Is there any issue in the case of outputs floating?
Q: 出力がフロートだと問題が起きますか.
A: 問題ありません.
What check_timing will report?
Q: check_timingコマンドは何をリポートするか.
A: SDCなどで定義されたタイミング属性などをチェックする
What check_library will report?
Q: check_libraryコマンドは何をリポートするか.
A: タイミングライブラリおよび物理ライブラリの整合性を確認する.
On what basis, macros will be keeping inside the design?
Q: マクロはどういう基準で設計内に配置されますか (訳に自信なし)
A: マクロにアクセスする回路とクロック配線に十分近いこと.その上で電源とのアクセスがしやすいこと.(回答になっているのか)
What is the use of keep-out margin around the macros?
Q: マクロ周辺のKeep-out merginをどのように使うか.
A: マクロ内の配線や拡散,特にDeep-NWからスタセルの距離を確保する.
Is it compulsory to keep out margin around macros?
Q: マクロの周辺にKeep-out merginを使うのは義務ですか.
A: DRC満たすなら不要では
Explain the order of keeping preplace cells?
Q: Preplace-cell を配置する順番は?
A: 電源関連のセル(TAP,Switch),次にEndcap.ほかにもある?
Tap cells information will be in which file?
Q: Tapセルの情報はどのファイルにありますか.
A: 普通は Physical Library (LEF,Milkyway,OA).ただリーク電力の情報は Timing Library に格納されている (.lib,.db).
On what basis, the distance between tap cells will be decided?
Q: TAPセルの間隔は何を基準に決めるのか
A: トランジスタのラッチアップルール
Format of keeping tap cells inside the core area.
Q: TAPセルをコアエリアに配置する形式は?
A: 質問の意図がわからない.普通は配置したら自動でdont_touch属性がつくはず.
How many std cells are being accommodated by each tap cell.
Q: タップセルあたりいくつのスタンダードセルを収容できる?
A: ラッチアップルールさえ守れば個数は問題ではないだろう.
What is the use of keeping tap cells in checkerboard format rather than keeping continuous?
Q: TAPセルを連続ではなくチェッカーボードで配置する理由は
A: TAPセルの数を半分にできる.(1つのTAPセルで2行担当できるので)
What is the purpose of endcap cells?
Q: ENDcapセルの目的は
A: セル単体では違反するDRC,特にマクロ周辺で現れる違反をEndcapを設ける事で回避できる.
Why can’t we keep endcaps on the top and bottom of macros?
Q: マクロの上部と下部でEndcapを保持できない理由は?
A: ICCでは配置できるのでそんな理由はない.
What is isolation cell, retentions cell?
Q: Isolation Cell,Retension Cellとは?
A: Isolation Cell は電源シャットダウンされた領域の信号が電源オンの領域に直接入らないようにマスクするセル.
Retention Cell は電源シャットダウンされたブロックで保持値が揮発しないようデータリテンションできるラッチを備えた特殊なDFF.ラッチはシャットダウンされるメインの電源とは別の電源で保持される.
What are the checks after the floorplan?
Q: フロアプラン後にチェックすべき項目は.
A: マクロのピン配置の妥当性とか,CellのUtilizationとか?(よくわからない)
How the tool will place std cells in the design.
Q: ツールはどうやってスタセルを配置しますか.
A: スタセル間の配線距離や信号の分岐数を最小にする目的関数で配置を行う(応えになってる?)
How to fix congestion?
Q: 混雑度をどう回避しますか?
A: 設計レベルで変えられるのはピン配置とマクロ配置ぐらい?Flynetを見て妥当性を検証する.
Prioritize timing DRCs, timing, DRC.
Q: timing と DRCとどちらを優先してFixする?
A: Hold違反 > DRC > Setup違反.Setup違反は最悪クロック落とせば動く.
What is the purpose of IO buffers?
Q: IOバッファの目的は.
A: ESDによるコアトランジスタの故障を防ぐ.チップ内外の長い配線を駆動するための巨大なトランジスタを持つ.ボンディング時の機械強度を保つ.(これはPADの仕事かもしれんが)
Among Max Trans, Max cap, Max fanout.....which one will be fixed first.
Q: 最大スリュー違反,最大容量違反,最大Fanout違反,どれを最初に直す?
A: 最大スリュー違反.なぜなら貫通電流に影響しさらにElectro Migrationに影響するため.最大容量違反と最大Fanout違反は直す必要あるのか正直疑問.
Difference between normal buffers and clock buffers.
Q: 普通のバッファとクロックバッファの違い.
A: クロックバッファは立ち上がりと立ち下がりが同じようにチューニングされている.パルスシュリンクを防ぐため.
Checks after placement.
Q: 配置後の確認事項.
A: Utilizatioinの確認ぐらい?
What are the contents of the clock spec file?
Q: Clock Spec ファイルには何が書かれている?
A: SDCの事?クロックの定義,リセットの定義,入出力遅延の定義,入出力ピンの駆動力の設定
What is NDR?
Q: NDRとは.
A: Non-Default Ruleとは文字通り通常とは異なるルール.例えばクロックは通常の配線とは異なり配線幅を太く配線とのスペースを多く取るようなルール.
When we will enable NDR.
Q: いつNDRルールを利用しますか.
A: クロックや高速およびノイズに弱い信号の配線幅やスペース,シールディングを実施したいときに使う.
What are the inputs to PT?
Q: PTの入力は?
A: PrimeTimeの入力は,クロックの情報を持つSDC,回路ネットリスト(Verilog),回路の配線遅延情報(SDF),タイミングライブラリ(.db)
Qualcomm Interview Question (Physical Design) を訳してみる
勉強になると思って翻訳+自分なりに回答してみた.
元は以下のページです.
Qualcomm Interview Question (Physical Design)
https://www.physicaldesign4u.com/2021/03/qualcomm-interview-question-physical.html
1. Practical flow of the design?
Q: 設計の典型的なフローは
A: 物理設計であれば,フロアプラン,マクロ配置,タップ挿入,電源レール配置,セル配置,電源配線,CTS,信号配線,フィル,DRC/LVS,GDS出力.
2. How analog macro is placed?
Q: アナログマクロはどう配置する?
A: アナログ入出力の近い位置に座標を指定して配置
3. Explain the power plan structure in your design?
Q: 回路の電源構造について説明せよ.
A: 回路の等価抵抗のざっくり5%となる配線抵抗を見積もりそのような電源配線設計とする.あとはPath-millで確認するとか?
4. What is the routing blockage for analog macro?
Q: アナログマクロにおける routing blockage とは何か
A: 自動配線で配線がアナログマクロの内部に侵入するとクロストークノイズの原因になるので配線侵入を防ぐ.
5. What are the checks after the floorplan?
Q: フロアプラン後の確認事項は.
A: ピンの配置の妥当性と Utilization とか?
6. What are the steps in the placement stage?
Q: Placement における順番は?
A1: Global Placement -> Local Placement -> Legalize
A2: IO -> Macro Block -> TAP -> End-cap -> Std. Cell -> (CTS) -> Filler
7. What is the block size, utilization, target skew, WNS of your design?
Q: Block size, utilization, target skew, WNSとは何か.
A: Block size:今設計しているマクロの大きさ.
Utilization:マクロの大きさに対してスタセルが占めている面積.
Target skew:CTSで許容されるクロックの endpoint skew の値(自信なし).
WNS:Worst Negative Slack は Setup 違反の最大値.
8. What are the corners in your design?
Q: 設計のコーナーとは.
A: トランジスタ特性や使用条件の変動によるPVTばらつきを考慮してた Fast,Typical,Slow があり,すべてのコーナーで回路は仕様を満たす必要がある.
9. What are the corners considered in the placement stage? why?
Q: コーナーを配置時に考慮する必要があるのはなぜか.
A: 回路遅延を考慮した Placement を行っているため.
10. What are the corners considered in the CTS stage? why?
Q: コーナーを配置時に考慮する必要があるのはなぜか.
A: 回路遅延を考慮した CTS (Clock Tree Synthesis) を行っているため.
11. What are the causes for congestion. And how to fix it?
Q: 混雑の原因は何か.どう解消するか.
A: マクロやスタセルの配置とピンの位置に問題がある場合に混雑する.また電源などのスタックドビアが多い場合に配線をブロックしてしまう.これらを確認し適切に設定する.
12. What could be the reason for congestion, if there is neither cell density nor pin density and also, there is no much communication between nearest macro and std cells as well?
Q: セル密度やピン密度およびマクロからの配線も少ない場合に混雑する原因はなにか.
A: マクロの入出力ピンの位置が最短ではなく迂回配線が多い.電源などの固定配線が配線を邪魔している.
13. How to fix setup and hold issues?
Q: Setup違反とHold違反を回避するには.
A: Setup違反の回避は,クロックを下げるか,駆動力の高いライブラリを使うか,レジスタ間の組み合わせ回路の規模を落とす.Hold 違反の回避は Hold バッファを挿入する.
14. Give the order of priority among various setup fixing methods? And reasons for them?
Q: Setupと Hold 違反の回避の優先度は.
A: Setup 違反.理由は Setup の方が差し戻し先が遠いから.
15. How tran Violation will affect the setup?
Q: 遷移遅延違反は Setup はどう影響するか.
A: 入力の遷移遅延が大きいと次段の伝搬遅延も大くなる,そのためパス遅延も大きくなり,DFFのSetup時間も悪化する.
16. In case, there are 10000 setup violations in the placement stage, what could be the issue?
Q: 10000 もの Setup 違反がある場合何が問題か.
A: レジスタ間の回路規模が目標周波数に見合ってない.RTLを見直す.
17. What kind of constraint will lead to so many setup violations in the placement stage?
Q: どのような遅延制約が配置時のSetup違反に影響するか.
A: Placement 時は回路内部の遅延に起因する違反でないとすると,マクロの入出力条件(駆動力,配線付加)の影響が考えられる.
18. How to analyze timing reports. And how the approach will be for fixing slack?
Q: タイミングレポートの解析方法と,Slack を解決するアプローチについて
A: タイミングレポートの Max と Min が制約を満たすか確認する.Max が違反している場合は Setup 違反なので設計を見直す.Min が違反している場合はHold 違反なので Hold バッファが挿入されているか確認する.
19. If there are many shorts at one place in the routing stage, what could be the possible reason?
Q: 配線ショートが配線時に多数発生している場合の原因
A: 配線混雑度が異様に高い.電源の配置配線が不適切.メタル付き Filler セルが挿入されている.
20. What are the checks after CTS?
Q: CTS 後の確認事項
A: Negative Slack がゼロであること.Hold 違反がないこと.DRC 違反がないこと.Utilization が許容範囲であること.
21. Why we check hold after CTS?
Q: CTS 後に Hold 違反を確認する理由
A: CTS 時に Hold バッファを挿入することで Hold 違反を回避しているため
22. What are the checks after routing?
Q: 配線後の確認事項
A: Negative Slackがゼロであること.Hold 違反がないこと.DRC 違反がないこと.Utilization が許容範囲であること.
23. What are the different kinds of DRC checks?
Q: 各種 DRC チェックの違いについて
A: 製造できない形状を確認するいわゆるDRC,設計許容範囲のレイヤー密度であるか確認する密度チェック,アンテナ長が許容範囲であるか確認するアンテナチェック.ほかはかけたことがないのでよくわからない.(応えになってる?)
24. In case there are many shorts, opens, setup, hold violations...what you will address first?
Q: 大量のショート,オープン,セットアップ,ホールド違反がある場合,何を最初に確認しますか.
A: GUI を開いて Utilization を確認する.
25. What are tap cells? How much distance given in your design and why?
Q: TAP セルとは何か.TAP セルの間隔とその設定理由は.
A: TAP セルはトランジスタの基板端子を電源に接続する部品.距離はトランジスタのラッチアップルール以下にする.
26. What is the use of tap cell?
Q: TAP セルの利用目的
A: Q25と同じ
27. If we don’t use tap cells, what error we will get?
Q: TAP セルを利用しないときに現れるエラー
A: DRC にてラッチアップ違反が表示されるはず
28. What are low power techniques?
Q: 電力低減のテクニックについて
A: ABB や DVFS,パワーゲート.
29. Explain isolation cell, retentions cell, power switches, and level shifters.
Q: Isolation Cell,Retention Cell,Power Switch,レベルシフタとは?
A: Isolation Cell :電源シャットダウンされた領域の信号が電源オンの領域に直接入らないようにマスクするセル.
Retention Cell:電源シャットダウンされたブロックで保持値が揮発しないようデータリテンションできるラッチを備えた特殊なDFF.
Power Switch :パワーゲートするために電源を遮断するスイッチトランジスタ.
レベルシフタ:特に低電圧ドメインの信号を高電圧ドメインで受け取れる電圧に変換する回路.
30. How to fix static and dynamic IR issues.
Q: Static IRドロップとDynamic IR ドロップの問題の回避法
A: Static IR ドロップがリーク電流起因であれば,リーク電流の小さいHigh-Vthトランジスタを積極的に使う,ゲート酸化膜圧の大きいトランジスタを使うなど.
Dynamic IR ドロップが動作時電流に起因するのであれば,回路の動作速度を抑える,LWの小さいトランジスタを含むセルを積極的に使うなど.
31. Assume there are 6 timing corners, if the hold is not able to fix in one corner, how to fix it without affecting the other corners. What is the better approach to fix it without affecting others?
Q: 6つのタイミングコーナーがあるとして1つのコーナーで Hold 違反を回避できないときに,他のコーナーの結果に影響を与えずにその Hold 違反を回避するためにはどうするか.
A: Hold 違反が発生するとすると Fast コーナーで,その時の条件は ([Arrival Time] - [Required Time] ) < 0 である.そのため [Arrival Time]を増やす(遅くする)か[Required Time]を小さくする.前者はパスに Hold バッファを追加する.後者はクロックバッファを速くするか段数を減らす.(自信なし)
32. Write few commands from ICC2, INNOVUS?
Q: ICC2 や INNOVUS のコマンドをいくつか書いてみてよ.
A: ICC ユーザーなのでわかりません(>_<)
2021年7月1日木曜日
ICCで利用する配線層をピン接続のみに制約する
IC Compiler では set_net_routing_layer_constraints コマンドを用いて利用する配線層を制約する.このとき,標準では制約外の配線層はなるべく使わない(not discouraged)が,禁止ではない(disallowed).
この制約を変更させるためには set_route_zrt_common_options -net_min_layer_mode (もしくは -net_max_layer_mode ) を用いる
set_route_zrt_common_options -net_min_layer_mode option
optionは3つある.
soft (default):制約外の配線層はなるべく使わない(discouraged)が,禁止ではない(not disallowed).
allow_pin_connection:ピンへ接続するときのみ制約外の配線層を利用する.ピンにつながない配線や,ピンにつなぐが長すぎる配線(10配線トラックほど)はDRC違反として報告される.
hard:制約外の配線層は利用しない.
-net_min_layer_mode では下層配線へ制約でき,-net_max_layer_mode では上層配線へ制約できる.
2021年4月23日金曜日
HSPICE の Advanced Server/Client モードでマルチスレッドシミュレーションを行う
以前の記事
HSPICE で Advanced Server/Clientモードを使う
https://kawaiihaseigi.blogspot.com/2016/10/hspice-advanced-serverclient.html
でマルチスレッドもどきを実現したのだけれどその実装を公開してみる.ファイルが連番になっていることが前提です.
HSPICE で Advanced Server/Clientモードを使う
https://kawaiihaseigi.blogspot.com/2016/10/hspice-advanced-serverclient.html
でマルチスレッドもどきを実現したのだけれどその実装を公開してみる.ファイルが連番になっていることが前提です.
4 つライセンスを取得して,計8回シミュレーション実行し,その後ライセンスを解放します.
追記:バグを修正.実際に動く事を確認.
2021年4月2日金曜日
Cent OS 7 で Calibre のライセンスエラーが出る
Calibre を起動しようとすると
$ calibrewb
(略)
// ERROR: The following products could not be licensed sufficiently:
// ERROR: - WORKbench
となってライセンスが取れない.
// ERROR: The following products could not be licensed sufficiently:
// ERROR: - WORKbench
となってライセンスが取れない.
Calibre はライセンスの取得に Flexera Software の lmstat を使っている.で,lmstat(実態は lmutil )でライセンスを確認してみると,
$ lmstat -f calworkbench
"calworkbench" v2022.010, vendor: mgcld, expiry: 31-jan-2022
floating license
(略)
という感じでライセンスは正常に見られている.謎な矛盾状態なのだが,/etc/hosts にマシン名と IP アドレスが正しく設定できていなかったのが原因だった.
$ sudo vim /etc/hosts <- 修正する
$ mgls_ok calworkbench
Checking availability of "calworkbench".
License granted through "calworkbench".
$ calibrewb
(略)
// calworkbench license acquired.
// WORKbench running on 64 cores
これで計算機兼 NAT なマシンは解決したのだが,プライベートネットワーク内部のPCでライセンスが取れないのが問題.ポートの開放でもすれば解決するのだろうか….
2021年3月14日日曜日
MentorGraphics の特定のライセンスが使えるか調べる(mgls_ok)
MentorGraphics (Semens) の CAD で特定のライセンスが提供されているか調べるためには,mgls_ok を使う.
% mgls_ok feature
ライセンスが取れると "License granted" と表示される.提供されていない場合は
"License server does not support this feature" と表示される.
登録:
投稿 (Atom)