2021年12月18日土曜日
電力とエネルギーと電力解析CADの中身
電力とエネルギーは混同されがちだが違うので,本来の仕事量はエネルギーとなるべきである.ではツールはどう取り扱っているのか各種マニュアルを調べてみた.ちなみに,マニュアル中でも電力とエネルギーは割とグチャグチャです(もしくは凄くセンシティブに使い分けているのか)
・キャラクタライズツール側(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月7日火曜日
Python で終了する時の呼び出し関数,行番号を報告する
2021年10月9日土曜日
Vivaldi のクリプトトークンを外す
2021年10月3日日曜日
AnalogArtist の レイヤー選択を Skill コマンドで実行する (leiMouseSetEntryLayer. leSetEntryLayer)
leiMouseSetEntryLayer コマンドを利用すると AnalogArtist のレイヤー選択を Skill コマンドで実行できる.
x
leiMouseSetEntryLayer ( i_layer )
2021年9月13日月曜日
AMD interview Questions (Physical Design) を訳してみる
Qualcomm Interview Question (Physical Design) を訳してみる
2021年7月1日木曜日
ICCで利用する配線層をピン接続のみに制約する
2021年4月23日金曜日
HSPICE の Advanced Server/Client モードでマルチスレッドシミュレーションを行う
HSPICE で Advanced Server/Clientモードを使う
https://kawaiihaseigi.blogspot.com/2016/10/hspice-advanced-serverclient.html
でマルチスレッドもどきを実現したのだけれどその実装を公開してみる.ファイルが連番になっていることが前提です.
2021年4月2日金曜日
Cent OS 7 で Calibre のライセンスエラーが出る
// ERROR: The following products could not be licensed sufficiently:
// ERROR: - WORKbench
となってライセンスが取れない.
2021年3月14日日曜日
MentorGraphics の特定のライセンスが使えるか調べる(mgls_ok)
2021年3月11日木曜日
Milkywayでセルの配線可能性を確認する.(check_library)
2021年3月4日木曜日
IC Compilerでcreate_floorplanするとprefferd directionが上書きされる
2021年2月20日土曜日
Calibreのログを出力する
% export MGLS_DEBUG_LOG_DIR=/log
2021年2月18日木曜日
IC Compilerにて配置配線に失敗する(alo_initial_cluster)
2021年2月11日木曜日
Cent OS 7においてJVMのエラーでCalibreをインストールできない
Calibre のインストーラーが Java でできているのだが,解凍したバイナリを実行すると
*** Warning with: ./install
The version of ./JRE/bin/java may not be correct!
...Required: "1.6.0"
...Found: Error: no `server' JVM at `/cad/mentor/CDROM/install.ixl/JRE/lib/i386/server/libjvm.so'.
...Please check that you have correctly installed the Mentor Install program that contains the Java Runtime Environment.
Error: no `server' JVM at `/cad/mentor/CDROM/install.ixl/JRE/lib/i386/server/libjvm.so'.
$ JAVA -version
を実行したときに,バージョン情報では無くて libjvm.so がエラーを吐くようだ.
EBS 12.2 -- problem installing EBS on XFS -- no server JVM at libjvm.so
自分の環境は Cent OS 7 に 3 TB の SSD を XFS(デフォルト) で作成していたので問題となったようだ.古い 500GB の HDD を ext4 でフォーマット & マウントしたらインストーラーが起動した.
Cent OS フォーラムにもトピックが立っていたが,解決しなかった.
2021年2月3日水曜日
Cent OS 7 にtgifを入れる.Gnuplotでtgifを出力する.
$ sudo yum install imake libXmu-devel libidn-devel libXt-devel
$ sudo yum install xorg-x11-fonts-ISO8859-1-100dpi.noarch xorg-x11-fonts-ISO8859-1-75dpi.noarch xorg-x11-fonts-ISO8859-14-100dpi.noarchxorg-x11-fonts-ISO8859-14-75dpi.noarch xorg-x11-fonts-ISO8859-15-100dpi.noarch xorg-x11-fonts-ISO8859-15-75dpi.noarch xorg-x11-fonts-ISO8859-2-100dpi.noarch xorg-x11-fonts-ISO8859-2-75dpi.noarch xorg-x11-fonts-ISO8859-9-100dpi.noarchxorg-x11-fonts-ISO8859-9-75dpi.noarch
$ ./configure
$ make
$ sudo make install
2021年1月18日月曜日
DesignCompilerにてパラメータを伝搬しパラメタライズ化したモジュールをつなぐ
read_file -format sverilog { \
riscv_id_stage.sv \
riscv_core.sv \
}
current_design ${design}
check_design
define_design_lib WORK -path ./work
analyze -format sverilog {riscv_id_stage.sv riscv_core.sv }
elaborate ${design}
check_design
参考:Link带参数的Verilog模块(Design Compiler)
https://www.cnblogs.com/kathywh/p/8550670.html
2021年1月17日日曜日
卒論前にパソコンが壊れるというジンクス
卒論前にパソコンが壊れるというジンクス,そういえば自分の場合どうだったか振り返ってみる.
卒論:ノートPCのメイン基板死亡.写真はジャンクPCの基板と入れ替えているところ.
修論:ノートPCのキーボードのパンタグラフ折れ.写真はキーボードユニットを入れ替えているところ.
博論:ノートPCのメイン基板死亡.画像はバグったGPU出力画面.
結論:3/3の確率で何らか壊れるので,バックアップは確実にね.
2021年1月3日日曜日
Chromebook に Windows10をインストール
東芝2と呼ばれるChromebook(CB35-B3340),2015年にAmazon.comで購入して使っていたのだけれどChrome OSのサポートが2021年に切れる事になった.またブラウザがChromeというのが最大の欠点なので,Windows 10をインストールする事にした.
基本は次のサイトの通りである.
https://coolstar.org/chromebook/windows-install.html?device=gandof#!
ちなみに自分は買って速攻Developer Modeに設定していた.
Write Protectを外す
Windowsをブートさせるために有志が作ったUEFIを書き込むのだが,Write Protectが物理的にかかっているので外す必要がある.
次のサイトの説明の通りなのだが,2つの端子を導電性シートでショートしてProtectしているため,シートを除去するためにヒートシンク兼シールドを一度除去する必要がある.残差があってもだめなので,結構しっかりゴシゴシ剥がす.
プロテクトシール
http://www.fascinatingcaptain.com/projects/install-ubuntu-on-the-toshiba-chromebook-2-in-5-steps/
後は最初のサイトの通りに物事を進めていけばよい.各種ドライバも用意されている.
最終的にインストールできたけれど,Celeron N2480 Dual-Core, 4GB Mem, 16GB eMMC(実質14GB)は動作するにはアップアップな感じ.特にeMMCの容量が足りない….結局WindowsアップデートでeMMCの容量を食い尽くしてしまいまともに動かなかったというオチ.(CPUも2.5GHzのブースト状態でもCore 2 Duo 1.4GHzの70%程度の性能らしい)