2023年9月14日木曜日

英語の会計用語

英語の会計用語がごっちゃになってきた.

明細書:quotation

請求書:bill

領収書:reciept

明細付き請求書(納品書と請求明細書を兼ねる):invoice 

請求書払い:payment on invoice

立て替え払い:payment in advance

2023年9月9日土曜日

IC Compiler でダイナミック電力とスタティック電力を見積もる (report_power)

report_power コマンドを用いる事で,STA ベースのダイナミック電力及びスタティック電力の見積もりが可能.正確な電力の見積もりにはユーザーの指定するスイッチング確率がアノテートされている必要がある.ここでは IC Compiler の report_power のオプションについてまとめる.

icc_shell> 
[-net]
[-cell]
[-only cell_or_net_list]
[-hierarchy]
[-levels level_value]
[-verbose]
[-flat]
[-exclude_boundary_nets]
[-include_input_nets]
[-analysis_effort low | medium | high]
[-nworst number]
[-sort_mode mode]
[-histogram [-exclude_leq le_val
| -exclude_geq ge_val]]
[-nosplit]
[-scenarios scenario_list]
[-groups group_list]

-net
配線による電力見積もり値を報告する.デフォルトで有効.

-cell
セルによる電力見積もり値を報告する.階層モジュールにおいて physical-only cell が含まれている場合,physical-only cell と non-physical-only cell の電力量は分けて報告される.本オプション利用時にいくつかのnon-physical-only cell は電力を報告しないことがあり,その場合N/Aと表記される.デフォルトで有効.

-only cell_or_net_list
-net もしくは -cell オプションを利用時に報告対象とするcellおよびnetを指定する.cell_or_net_list に挙げられた cell もしくは net のみが電力の報告対象となる.-net -cell を同時に指定する場合少なくとも一つの -net -cell が指定されなくてはならない.
-cell に physical-only-cell が指定されない限り電力報告対象とはならない.

-hierarchy
階層的なフォーマットとして,ブロック単位の電力を報告する.-levels オプションを利用する事で報告対象の階層数を指定する.-sort および -nworst オプションは無視される.

-levels level_value
報告対象の階層数を指定する.level_value は正の整数.-hierarchy オプションを使用しない場合本オプションは無視される.

-verbose
-net もしくは -cell オプションが指定された場合,cell または net のより詳細な情報を表示する.本オプション利用時は power group summary にグループ内のセル数が表示される.

-flat
階層を除去し全階層のオブジェクトに対して電力を報告する.デフォルトでは現在の階層のオブジェクトに対して電力を報告する.

-exclude_boundary_nets
現在は無効.

-include_input_nets
Primary input のスイッチング電力も報告する.デフォルトでは無効.本オプションを利用する事で net の電力が報告されるようになり,総消費電力にも影響する.cell の内部電力及びリーク電力には影響しない.

-analysis_effort low | medium | high
電力解析の精度と速度のトレードオフを取る,デフォルトはlow.本オプションはスイッチング確率の計算に影響するため,解析対象のスイッチング確率がアノテートされている場合に影響する.

-nworst number
報告をフィルタし消費電力の多い上位 number 個のみを表示する.-net もしくは -cell オプションが指定されたときのみ有効.

-sort_mode mode
-nworst オプションを利用したときのソーティング方法を指定する.-net もしくは -cell オプションが指定されたときのみ有効.

-histogram -exclude_leq le_val | -exclude_geq ge_val
電力解析結果をヒストグラムとして表示.-exclude_leq-exclude_geq は電力のうち指定値 le_val より大きいか指定値 ge_val 小さいものを除去する.-net もしくは -cell オプションが指定されたときのみ有効.

-nosplit
ラインスプリッティングをしない.

-scenarios scenario_list
Multicorner-multimodeでのシナリオを指定する.各シナリオは個別に報告される.無効なシナリオは無視する.本オプションを指定しない場合は現在のシナリオを解析対象とする.

-groups group_list
特定のグループの電力を報告する.デフォルトではすべてのインスタンスはどれかのグループにのみ属するため,グループの電力の総和が総電力と一致する.有効なグループは以下の通り:io_pad, memory, black_box, clock_network, register, sequential, combinational.

2023年9月3日日曜日

compile コマンドと compile_ultra コマンドの違い

DesignCompiler には compile コマンドと compile_ultra コマンドがあるけれど,その違いは何か調べた.compile_ultra の方が上位互換と考えて良いみたい.

compile: DC Expert を起動する.DC Expert は HDL を最適化されたテクノロジ依存のゲートレベル記述に変換する.
compile コマンドの基本機能は以下の通り.
・GUI と CLI をサポート
・階層的コンパイルをサポート
・フルコンパイル,インクリメンタルコンパイルをサポート
・FF およびラッチを利用した順序回路の最適化
・タイミング解析

compile_ultra: DC Ultraを起動する.より高速で厳しいタイミング条件における回路の合成,また回路の QoR (Quality of Results) の向上が可能.
compile コマンドの機能にさらに以下の機能が追加されている.(専用のライセンスが必要)

・DesignWare library をサポートし,DW library の中からベストな回路構成を自動的に選択,最適化.
・Alib と呼ぶ仮想ライブラリを生成する事で,より大規模な解空間の中から面積と遅延のトレードオフを探査する事を可能にする.
・階層構造を自動的に分解することで,DesignCompiler が回路中の論理の共有を可能にしタイミングをより向上させる.
・階層構造を持つ回路の特に下層の階層境界のポートを変更を許可する.
・データパス抽出を行い算術演算をデータパスブロックに変換し,データパスジェネレータを利用する事でよりより実装を実現する.
-retime オプションを利用すると,レジスタリタイミングを実施する.
・topological mode を利用すると,DesignCompiler は以下の処理を行う.
 ・より高精度なポストレイアウトタイミング,面積,電力の見積もりを wire-load model を用いず行う.
 ・マルチコア CPU を利用した論理合成の高速化
 ・多電源設計をサポート
 ・multicorner-multimode 最適化を実施し論理合成を高速化
-spgをオプションを利用する事で DesignCompiler Graphical を利用に可能にする.それによって
 ・physical guidance technology によって IC Compiler に対してセルの初期配置情報を提供する事でよりよい QoR を実現する.
 ・論理合成時の配線混雑度を軽減する.
 ・信号配線層の最適化を実現.
 ・floorplan exploration によって設計者がフロアプランの修正を可能に.

DC Expert と DC Ultra の違いを挙げると,Expert は以下を実施する.
・マルチプレクサの最適化
・順序セルのマッピング
・ブール代数最適化とマッピング
・Auto-Uniquilization
・Implement Synthetic Parts
・タイミングドリブン,電力ドリブンの組み合わせ回路最適化
・遅延とリーク電流の最適化
・デザインルール考慮
・area recovery

Ultraはさらに以下を実施する.
・面積のアングルーピング
・データパスの最適化
・レジスタリタイミング

2023年7月9日日曜日

Logicool ERGO M575Sを再ペアリングさせる

M575Sをひっくり返してペアリングボタン長押し,高速点滅モードにする.その状態でWindows の「Bluetoorhまたはその他のデバイスを追加する」からペアリングすればよい.
常時点灯はペアリング中,ゆっくり点滅はペアリング相手がいないという意味らしい.

ソースはYahoo知恵袋だよ.https://detail.chiebukuro.yahoo.co.jp/qa/question_detail/q12257600962

2023年7月1日土曜日

電力解析でのスイッチング確率の設定する (set_switching_activity)

論理合成 (DesignCompiler) や静的遅延解析 (PrimeTime) における電力計算をスイッチング確率ベースで行う場合,スイッチング確率を外部から指定するために set_switching_activity コマンドを使う.DesignCompiler における set_switching_activity コマンドのオプションや使い方をまとめる.

dc_shell> set_switching_activity
[-static_probability static_probability]
[-toggle_rate toggle_rate]
[-state_condition state_condition]
[-path_sources path_sources]
[-rise_ratio rise_ratio]
[-period period_value | -base_clock clock]
[-type object_type_list]
[-hierarchy]
[object_list]
[-verbose]

-static_probability static_probability
電圧の High(1) の確率を指定する.引数は0から1.0までの小数である.0.25を指定すると,その時間における電圧 High の確率が25%として計算する.

-toggle_rate toggle_rate
正の小数として,0->1および1->0にトグルするトグル確率を指定する.単位時間におけるトグル確率として指定する.単位時間は -period オプションを用いて指定する.時間の単位はライブラリの物を利用する.クロックがある場合は,-base_clock オプションを用いる事で指定したクロック周期に対するトグル確率として指定する.(後述の利用例を見るとよい)

-state_condition state_condition
状態遷移条件によって振る舞いが異なるピンやセルなどの状態依存トグル確率を指定する.ただしセルやピンの電力の状態遷移依存性がキャラクタライザによって適切にキャラクタライズされている必要がある.このオプションはセルのリーク電流の状態依存性などをアノテートする事を可能にする.指定する state_condition が電力テーブルの内部表現と一致している必要がある.

-path_sources path_sources
パス依存のトグル確率を計算する時にパスの source を指定する.セルの電力のパス依存性がキャラクタライズされている必要がある.指定する path_source が電力テーブルの内部表現と一致している必要がある.

-rise_ratio rise_ratio
ピンのトグル数のうち立ち上がり波形の確率を,0から1の小数で指定する.0の場合はすべての入力が立ち下がり,1の場合はすべての入力が立ち上がりとして指定する.本オプションを利用する場合はトグル確率をユーザーが指定しなくてはいけない.初期値は0.5.

-period period_value
-toggle_rate オプションで指定したトグルが発生する時間期間を指定する.時間の単位はライブラリのものである.本オプションが指定された場合,実際のトグル確率は -toggle_rate オプションで指定した数字を本オプションで割った数字となる.本オプションを明示的に指定しない場合数字として1.0が利用される.

-base_clock clock
トグル確率を計算するために利用するクロックを指定する.本オプションによってクロックが指定された場合,際のトグル確率は -toggle_rate オプションで指定した数字を本オプションで指定したクロック周期で割った数字となる.クロック周期を変更しながら複数回 report_power コマンドを実行する事も可能で,その場合トグル確率は毎回クロック周期ごとに計算しなおされる.クロックとしてワイルドカード"*"を指定する事も可能で,その場合PowerCompiler はそのデザインに関係するクロックを自動的に検出してトグル確率を計算する.

-type object_type_list
スイッチング確率を設計者が明示的に指定したい場合に,対象となるオブジェクトを指定する.オブジェクトとしては以下を選択できる.
registers (sequential cell outputs),
tristates (tristate cell outputs),
black_boxes (black box cell outputs),
inputs (input design ports or hierarchical instance pins),
outputs (output design ports or hierarchical instance pins),
inouts (inout design ports / hierarchical instance pins),
ports (design port or hierarchical instance pins),
nets (nets),
regs_on_clocks clock_list (outputs of flip-flips clocked by the clocks in
clock_list),
clock_gating_cells (clock gating cell outputs),
memory (memory cell outputs).
本オプションを特定のインスタンスに指定する事でスイッチング確率を明示的に指定する事が可能である.registers もしくは regs_on_clock を指定した場合,順序セルの反転出力(QN),非反転出力(Q)が共にアノテートされる.その場合非反転出力は指定のトグル確率が,反転出力は1から指定のトグル確率を引いた値がアノテートされる.regs_on_clock を対象とする場合は,クロック名のリストである clock_list 引数を指定する必要がある.registers はフリップフロップおよびラッチが対象となるが,regs_on_clock はフリップフロップのみ対象であり,クロックゲーティングも対象である.
object_list 引数は対象を明示的に指定するが,-type は対象を暗黙に指定する.オプションは相互に排他的である.

-hierarchy
-type オプションと共に利用し,指定したオブジェクトの下位の階層すべてにアノテートする.本オプションを利用しない場合は,指定したオブジェクトのトップ階層のみアノテートする.

object_list
-static_probability オプションおよび -toggle_rate オプションの対象となる,ネット,ピン,ポート,セルなどのオブジェクトのリストを指定する.

-verbose
スイッチング確率をアノテートした結果を詳細に報告する.


コマンド例
次の例では,set_switching_activity は入力ポートのトグル確率を 33 / 1320 = 0.025,静的分布確率を 0.015 に設定する.
dc_shell> set_switching_activity -toggle_rate 33 -period 1320 
-static_probability 0.015 [get_inputs]

次の例では,入力ポートのトグル確率を0.25,静的分布確率を0.015に設定する.ここではクロック CLK が関連するクロックとして定義されているので,電力を計算する時のトグル確率はクロック周期 10 を用いて実際には 0.25 / 10 = 0.025 として計算される.
dc_shell> create_clock CLK -period 10
dc_shell> set_switching_activity -toggle_rate 0.25 -base_clock CLK -static_probability 0.015 -type inputs

次の例では状態遷移依存の静的分布確率を or1 セルにアノテートする.
dc_shell> set_switching_activity -static_probability 0.10 -state_condition "A & B" [get_cell or1]
dc_shell> set_switching_activity -static_probability 0.35 -state_condition "A & ! B" [get_cell or1]
dc_shell> set_switching_activity -static_probability 0.25 -state_condition "! A & B" [get_cell or1]
dc_shell> set_switching_activity -static_probability 0.30 -state_condition "! A & ! B" [get_cell or1]

次の例では,パス依存トグル確率を xor1 セルの Y 出力にアノテートする. 
dc_shell> set_switching_activity -toggle_rate 0.022 [get_pin xor1/Y]
dc_shell> set_switching_activity -toggle_rate 0.020 -path "A" [get_pin xor1/Y]
dc_shell> set_switching_activity -toggle_rate 0.002 -path "B" [get_pin xor1/Y]

次の例では現在のデザインにおけるすべての順序セルのアノテートされたスイッチング条件を除去する.
dc_shell> set_switching_activity -type registers -hierarchy

次の例ではクロック clk1 と clk2 を使うすべてのレジスタのスイッチング確率をアノテートする.
dc_shell> set_switching_activity -toggle_rate 0.1 -static_probability 0.5 -type {regs_on_clock {clk1 clk2}} -hierarchy

次の例では related_clock 属性としてワイルドカード"*" を指定したオブジェクトに対し,すべての入力にトグル確率0.2を,静的分布確率0.5を,アノテートする.電力解析結果は report_power コマンドで表示される.関連するクロックは自動的に推論され,トグル確率0.2がそれぞれのクロックの周期に会わせて相対的にスケールされる.
dc_shell> set_switching_activity -toggle_rate 0.2 -static_probability 0.5 -base_clock "*" -type inputs
dc_shell> report_power

2023年4月29日土曜日

研究費と機材とその移管の話

大学教員として活動するためには,様々な研究費を獲得する努力と,必要に応じて大学のポストを転々とせざるを得ない事がある(その証拠に,運営費交付金は右肩下がりだし,任期付きポストも増やすインセンティブがあると聞く).結果的に研究資金と研究機材を抱えて大学間を右往左往する羽目になるのだが,大学や研究契約内容によっては研究資金や研究機材の移管ができず置いて行かざるを得ないケースがある.

正確なことはわかっていないのだが,「研究契約の主体」と「資金や機材の寄付の可否」がポイントなのだろうか.

あくまで私の事例だが,
最初の引っ越し:国立大→私立大
経費:科研費は移管.共同研究費は移管できなかったと思う
機材:科研費,学内経費,共同研究費すべてを「寄付」と言う形で移管

次の引っ越し:私立大→私立大
経費:科研費は移管.共同研究費は移管できず,残るボス先生に移管
機材:科研費のみ移管.学内経費,共同研究費は移管できず(事務的には機材は「私がいた部屋の備品」で教員に所属していないので移管という考えが無い)
面白かったのは,国立大→私立大で移管した機材も,科研費と学内経費の分は移管できるが,共同研究費は移管できなかった事.受け入れはできるが持ち出しはできないの??!?

将来の引っ越し:私立大→???
経費:公的資金は移管できる.共同研究費は移管できない.
機材:公的資金は移管できる.共同研究費は移管できない.
とのことらしい.

任期付きポストでも研究費取って来いよでもいいのだが,任期切れたら持ち出しできませんは勘弁してほしいものよ.

2023年4月27日木曜日

とある助教の公募戦線記録(2)

これまでに出した公募の結果が一段落したのでまとめてみる.検討したけれど出していないものもあげます.

スペック
・男
・集積回路の物理設計よりのCAD屋.回路設計もするよ
・応募時の業績:論文誌6本,レター3本,国際会議20本,その他
・科研費は若手x2,共同研究x2,分担がいくつか
・任期5年再任有りの3年目

こだわったところ
・集積回路設計特にCADに関わりたい
・PIは,私が知っている教員か,外部資金などを取っている教員を希望した
・お金は取ってこれるので地方国立大とかがいいのでは
・理想は関西圏だけれど西日本ならいいかな
・2年間ぐらいかけてのんびり就活する予定だった

2020/? 公立大
・先方のPIから「うちに来ない?」と連絡がきた
・以前も公募があったが学会で「アナログ回路の人が欲しいんだよね」と言われたので応募を止めた所だった
・任期付き助教?
・2018年の公募で事前にお断りされて,転職直後に応募してよと言われても….

2021/8 私立大
・教授,准教授,もしくはテニュア准教授,「若干名」
・分野は集積回路全般なので問題なさそう
・前回就活時,学会で「数年後公募あるから応募したら?」と情報をもらっていたので応募
・応募後2週間ほどでお祈りメール
・落ちた理由は業績が足りないとの事 (事後に指摘された)

2021/10 私立大
・講師(任期付),2年+1年x3のようだ.5年が上限
・分野は集積回路全般なので問題なさそう
・英語講義を6コマ担当するとのこと….研究できるのか?
・応募2週間後に面接,ボコボコにされる
・面接2週間後に内々定

2021/10 国立大
・准教授
・分野は集積回路全般,だけど本命は超伝導とか光コンピューティングみたい
・書類出そうと思っていたが,講師が先に決まってしまったので見送った

感想
・意外に教育歴は見られる?面接で「今大学で教えている科目の演習科目やってほしいな」と言われた
・でも「演習科目やってほしいな」は別の先生から「いらん」と言われるなど
・現在の担当科目名だけでなく内容も書いた方が面接の時の議論のネタになるからよいみたい
・JRecinの過去ログは消えるのでPDFは保存しておくべき
・(本公募ではなく)知り合いが受けた公募では,JRecinでは「再任あり」とあったが面接では「再任無し」になったケースがあったと聞いた,で蹴ったらしい
・上げるつもりはないので転職を考えておきなさいと言われています,厳しい(>_<),が業績ないもんな
・准教授ではなく講師(任期付)なのは察してください.着任してから理解したけれどほぼ助教だこれ…

過去の公募戦線ログ

2023年4月26日水曜日

ECS LIVAX2-120 に Linux Mint を入れてVNCサーバーにする

 ただの日記です.タイトル通り,ECS LIVAX2-120 に Linux Mint (XFCE) を入れてVNCサーバーにします.スペックは以下の通り.
・Celeron N3050(1.6GHz、ビデオ機能内蔵)
・DDR3L 4GB
・SSD 128GB
・HDMI 1.4a(30Hz 4K出力対応)、ミニD-Sub15ピン
・Gigabit Ethernet
・IEEE 802.11ac/a/b/g/n無線LAN、Bluetooth 4.0(ただし使えていない)
・USB 3.0×3

元々は Cent OS 7 でこれは後述するネットワークの問題はなかったのだが,Gnome があまりに重たすぎるので軽量めの Linux Mint に移行した.

Windows PC に VNC Viewer を入れて,ポートフォワードで Server に接続する.ネットワーク構成は以下のような感じ.

Windows PC (VNC Viewer)
↓ [ssh]
Linux Mint (VNC Server)
↓ [ssh -X]
計算機サーバー群

直接計算機サーバーに VNC を立ち上げないのは,サーバーにVNCのポートを開けるのが怖い事とサーバーごとに個別に VNC Server を立ち上げなくてすむ利点がある.

Linux Mint 21.1 をダウンロードし,Rufus でブート USB を作成.インストールは普通に実施する.VNC サーバーにするために SSH (oepnssl) と VNC (tigerVNC) をインストールするのだが, 大学のネットワークが複雑すぎてインターネットに到達できない.仕方なく Buffalo の USB WiFi ドングル (WI-U2-433DMS/N) をさして携帯テザリングしようと思ったのだが,ドライバがなくて WiFi が使えない.なので以下のサイトを参考に,Windows マシンで Github のドライバのデータをダウンロードして,Linux Mint 上でコンパイルした.
https://hirotaka-hachiya.hatenablog.com/entry/2020/12/14/184422

WiFi テザリングができるようになったら,SSH と VNC を「ソフトウエアの管理」からインストールする.アプリが入ればインターネットは不要なので, WiFi は消えてしまって構わない.

VNC Server を起動するも X が正常に立ち上がらない.~/.vnc/xstartup を以下のように編集して VNC を再起動する.

def 
export XKL_XMODMUP_DISABLE=1
unset SESSION_MANAGER
unset DBUS_SESSION_BUS_ADDRESS
/etc/X11/Xsession
/usr/bin/startxfce4 &
/usr/bin/xfce4-session &
/usr/bin/xfce4-pannel &
/usr/bin/xfce4-terminal &

VNC Server の起動はサービスに登録するのがスマートだろうが,過去の癖から手動で起動するようにしている.以下のエイリアスを作成している.Virtuoso を起動するため "-depth 24" で色解像度 24bit を指定する.
alias vncserver4k="vncserver -geometry 3800x2000 -depth 24"

すべての準備がすめば Windows PC で以下のバッチファイルを作成して,ポートフォワードと VNC Cliant を起動する.
start /b cmd /c "C:\PROGRA~1\PuTTY\putty.exe -load liva -l [userID] -pw [userPW]"
timeout 30
start /b cmd /c "C:\PROGRA~1\UVNCBV~1\UltraVNC\vncviewer.exe -connect 127.0.0.1::5901 -nocursorshape -notoolbar -noauto -password [userPW] -8greycolors"
timeout は SSH セッションが成立するのに時間がかかるが予測がつかないので少し長め,接続を確認したら手動でスペースを打って次に進めている.パスワード平文で保存しているのでセキュリティ的には危ないかもしれない.

Celeron N3050 は今となってはゴミかもしれないが,シンクライアント的に使うにはまあ十分かなぁ.4KのVNCもなんとか使えてる.ただしCADのログファイルがガンガン Terminal に出力されると途端にカクカクし始めるけれど...

2023年3月24日金曜日

THE RIGHT WORD fraction, fragment, part, piece, portion, section, segment

 よくわからなくなったので調べた.New Oxford American Dictionaly からです.

Fragment: 破損が発生したことを示唆し (fragments of pottery),多くの場合ガラスや陶器などの脆い物質を指す.
Segment: 全体が自然または既存の分割線に沿って分離されていることを示唆する (a segment of an orange). Section は,ある全体を形成するための,明確に分離された一方で他の部分と隣接する一部を示唆する (section of bookcase) .
Fraction: 通常、実質的ではないが明確に線引きされた部分を示唆する (a fraction of her income) .Portion は誰かに割り当てられた部分を示す (her portion of program) .
Piece: 全体から分離したどのような一部にも利用でき,最も良く使われる.

特に意図がなければ Piece を使えば良さそうだ.

2023年3月17日金曜日

近隣国の○○○○的組織

・Taiwan Semiconductor Research Institute (TSRI)
台湾の先生が使っているようだ.先生は「CICに質問しなさい」と学生に指導しているので,質問やサポートを受け付けてくれるのかな,うらやましい.

中身はよくわかっていませんが,台湾はクラウドでチップ試作できるのでしょうか.個々のラボで環境整備しなくて良いのでいいな.

どんなEDAがあってどうやって使うとか親切な説明があって涙がでます.参考にさせてもらおう.TSRI ってNational Chip Implementation Center (CIC) が元なのかな,
を選ぶとTSRIにリダイレクトされますね.

・IC Design Education Center (IDEC)
https://www.idec.or.kr
「韓国の半導体産業の競争力(한국 반도체산업의 경쟁력)」だそうです.EDAの一覧がカタログになってます.ちゃんとまとまっててめっちゃいい.
http://doc.idec.or.kr/eunjuseok/EDA_Tool_%EC%86%8C%EA%B0%9C%EC%9E%90%EB%A3%8C1.pdf

日本の先生も頑張って環境構築のドキュメント作成してくださっているけれど,こういう網羅的な資料があると「使ってみよう」って思う気がするんだけどな.(でも未だにINCISIVとか書いてあるし無理か...)

中国に同じような組織があるのかはわからなかった.留学生が言うには ASIC 向けの EDA を大学で使うのは難しく FPGA 実装が主流だそうだ.