2018年6月19日火曜日

Virtuosoの操作結果を表示する(Log Filter)

Virtuosoの操作結果を同等のSKILLコマンドでログに出す事ができる.

CIW→Options→Log Filterを選択する.上から5つ目の[Accelerated Input]を選択すると,操作結果がCIWに表示されるようになる.



使いたいSKILLコマンドをログとして表示し,それを元にSKILLコマンドで操作を記述できるのでお勧め.

2018年4月23日月曜日

Cadenceのツール名とできる事の対応表

わからなくなったので調べた.

・回路合成
Encounter RTL Compiler(EC):論理合成
Genus Synthesis:論理合成.ECの後継
CtoS(CTOS):高位合成ツール
Cynthesizer:高位合成ツール
Stratus:CtoSとCynthesizerの後継となる高位合成ツール

・ライブラリ生成
Encounter Library Characterizer(ELC):タイミングライブラリのキャラクタライザ
Liberate:タイミングライブラリのキャラクタライザ(買収したAltos Design Automationの製品)
Liberate AMS : ミックスドシグナル向けのキャラクタライザ.

・配置配線
SoC Encounter:配置配線ツール.EDIの前.
Encounter Digital Implementation(EDI):配置配線ツール
Innovus:EDIの後継となる配置配線ツール
NanoRoute:Encounter,Innovusで利用されている配線エンジン

・検証
Assura:DRC/LVSを行う.寄生成分抽出にも使う.Virtuosoとバージョンを合わせる必要がある.
Conformal:等価性検証

・カスタムレイアウト
Virtuoso(IC):カスタムレイアウトの統合開発環境.以下のツール群から構成される(よく把握できていない)
-- Analog Design Environment (ADE):回路シミュレーションのインターフェース
-- Composer Schematic:回路図エディタ
-- Virtuoso Layout Editing:レイアウトエディタ
AnalogArtistと呼んだり,ICFB(IC frontend to backend?)と呼んだり.大きくIC51系とIC61系に分かれている.

・ゲートレベルシミュレーション
Incisive:RTLおよびゲートレベルシミュレーション.以下のツール群からなっている(よく把握できていない)
-- ncVerilog:Verilogシミュレータ
-- Verilog:Verilogシミュレータ
Xcellium : RTLおよびゲートレベルシミュレーション.Incisive の後継
SimVision:波形ビューア
Encounter Timing System (ETS):静的遅延解析

・トランジスタレベルシミュレーション
Specter:SPICEシミュレータ.ADEと相性がよい. IC51には入っていた.IC61ではMMSIM(Multi Mode Simulator)パッケージを入れると使えるらしい.

・寄生成分抽出
EXT(QRC):寄生成分抽出

VirtuosoとIncisiveしか使っていないのでよくわからない.あとEDIには苦しめられた記憶しかない.Liberate AMS はチュートリアルの回路は問題無く動作するが,それ以外ではてんでダメという評価を聞いた.

2018年4月10日火曜日

DesignCompilerでDFFが見つからない(Target library contains no replacement for register)

DesignCompilerで論理合成したら以下のようなWarningが出た.

Warning: Target library contains no replacement for register 'PRODUCT_INST_reg[9]' (**FFGEN**). (TRANS-4)

これはライブラリに対応するDFFが存在しない時に出力されるエラー.例えば今回のライブラリは普通のDFFしか存在しないが,RTL記述に非同期リセット付きDFFを必要とする記述を書いてしまうとDCは論理合成ができないのでDCの持つ理想FF(FFGEN)を使って論理合成を行う.理想FFは物理的に存在しないので配置配線はできない.

読み込むLibraryの生成に失敗しているか,Libraryの持たないセルによる挙動なのか切り分ける必要がある(非同期Set-Reset付きDFFやトライステートインバータなど).

Libraryのチェックは以下のコマンドで行える.

check_library -logic_library_name logic_library.db

2018年3月9日金曜日

HSPICEのAdvanced Server/Clinetモードで標準出力をファイルに書き出す

HSPICEのAdvanced Server/Clinetモードで標準出力をファイルに書き出すには,Serverを起動する時に-o "ファイル名"を指定する.Clientで-oを付けても効果がない.

2018年2月28日水曜日

intel Core-i7 vs AMD Ryzen for HSPICE

intel Core-i7 と AMD Ryzenの速度比較を行った.比較方法は多くの人が身近によく使う Synopsys HSPICEの実行速度で,正確にはSiliconSmart ACEで69種の論理セルを持つセルライブラリのキャラクタライズ速度で比較した.

Core-i7 マシン:
intel Core-i7 4790 Base: 3.6GHz Boost: 4GHz 4-core 4-thread (Haswell)
DDR3-1600 dual-channel 8GB
Cent OS 6.8

Ryzenマシン:
AMD Ryzen Threadripper  Base: 3.4GHz Boost: 4GHz 16-core 16-thread (Summit Ridge)
DDR4-2400 quad-channel 32GB
Cent OS 7.4

CADはライセンス数に限りがあるのでハードウエアマルチスレッディングは共に無効(Core i7についてはONでも実験してみた).キャラクタライズは並列実行するが,終盤はコアが余り出すので並列性は落ちる.
HSPICE は vJ-2014.09-SP1-2 を利用した.なお HSPICE は SSE2 を使うらしい(SSE2が無いと動かない).周波数ブーストはあり.全然 apple-to-apple ではないけれどしゃーなしやな.

結果:
Ryzen: 25:42.99
Core-i7: (4-thread)1:48:04.94,(8-thread) 1:49:25.39
Ryzenの方が4.2倍高速という結果に.Baseのクロック周波数低いのに処理速度が速いということはIPCがよいのね.Summit RidgeはAVXなどが弱いがSSE2しか使わないなら十分戦える,これならEPYCも期待できそう.


異なるテクノロジファイルのセルを同じOAライブラリに混ぜてしまった時の対策法

AnalogArtist において,異なるテクノロジファイルのセルを同じ OA ライブラリに混ぜてしまうと,一方のテクノロジファイルに上書きされてしまい既存のセルライブラリのレイヤーが表示されなかったり,または表示はまともだが StreamOut 時にあべこべのレイヤーになってしまい DRC などが正常にかからなくなる.

この場合,以下のように修正する.
1. 誤って混ぜてしまったセルを取り除く.
2. 壊れてしまった OA ライブラリが本来持っていたテクノロジファイルと同じテクノロジファイルを持つOAライブラリからセルをコピーする
3. この時,data.dm を上書きするか聞いてくるので,上書きする

どうも data.dm がコンパイル済みのテクノロジファイルのようで,これを本来の物に置き換えてやると直るらしい.
data.dm を shell から上書きするだけでも解決できるかもしれない.

IC Compilerで論理関数が足りず配置配線ができない原因など

自作ライブラリではまったのでめも.自作ライブラリを使ってICCを使って配置配線を試みたところ,

Either a NOR, or an AND and an OR gate (two-input) is required for mapping. (OPT-102)

と出て,自動配置,CTS,配線などが実行できなくなった.この表示だけを読むと論理関数が足りないのかとセルの種類の問題やタイミングライブラリに問題があるのかと思ってしまうが,そうではなかった.

ケース1:set link_library をしていない
OPT-102が表示されるまでのメッセージをたどっていくと,

Error: No valid link library specified, please check library setup. (PSYN-958)
Loading db file '/ibrary/SVT_CTS_0p5.db'
Loading db file '/library/SVT_ILIM_0p5.db'
Warning: The 'CLKINV_01X_NS' cell in the 'SVT_CTS_0p5' technology library is being 
        marked as "dont_use". (PSYN-039)
Warning: The 'CLKINV_01X_NS' cell in the 'SVT_CTS_0p5' technology library does not 
        have corresponding physical cell description. (PSYN-024)

と出ている.set target_library だけ指定して,set link_libraryをしなかったために,セルが全てdont_useになってしまい結果として自動配置配線ができなくなったようだ.この場合は link_library が不要でも target_library と同じ .db を指定するべきのようだ.

ケース2:異なる techfile で作成したMilkywayを混在した場合
複数のMilkywayを作成する時に同じテクノロジファイルを指定しない場合,テクノロジファイルが異なり同一性が保てないと表示され片方のMilkywayライブラリにdont_use属性がついてしまい自動配置配線ができなくなる.すべてのMilkywayのテクノロジファイルが等しいか確認する.