2021年1月18日月曜日

DesignCompilerにてパラメータを伝搬しパラメタライズ化したモジュールをつなぐ

RTLが parameter 文などでパラメタライズドされていると各回路はその初期値でインスタンス化される.そのため上層の回路と下層の回路の parameter文の初期値が異なると,回路の接続をうまく見つける事ができない.

例えばプロセッサコアとその下に命令デコーダがある回路を対象に試してみる.
read_file -format sverilog { \
riscv_id_stage.sv \
riscv_core.sv \
}
current_design ${design} 
check_design



左上のLogical Hierarchyを見てもプロセッサコアしか見つからない.

これを解決するには,analyze文を利用して回路の仕様を中間表現としてライブラリに登録し,elaborate文を利用してその中間表現を読み取って回路を接続する.

file mkdir ./work
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%程度の性能らしい)

2020年11月19日木曜日

IEEEtran.cls で章番号のフォーマットを変える.

Latex で章番号のフォーマットを変えるには,以下の様に設定する.
\renewcommand{\thesection}{\arabic{section}}
\renewcommand{\thesubsection}{\thesection.\arabic{subsection}}

\thesection が section のカウンターの見出しを変えるので,\renewcommand
カウンターの見出しを変えてやればよい.
普通はこれでいいのだけれど,IEEEtran.cls は \thesection ではなくて,\thesectiondis を使っている.
なので以下の様に設定する.
\renewcommand{\thesectiondis}{\arabic{sectiondis}}
\renewcommand{\thesubsectiondis}{\thesectiondis.\arabic{subsectiondis}}

2020年11月15日日曜日

【・・dynabook R63シリーズの変遷

 東芝ノートPCには業務用にR63というシリーズがあるのだけれど,東芝お得意の型番乱発のためどの時期にどういう構成のPCが売られていたのかわかりづらい.東芝のサポートを調べてみた.


2015年発表

  • 2/9 R63/P Core i 5xxx
  • 8/6 R63/P Core i 5xxx
  • 11/17 R63/T Core i 6xxx

メモリはDDR3L MAX16GB.SSDは/PはmSATA./TはわからないがM.2.かもしれない.アキュポイント付きキーボード.ドッキングステーションコネクタあり


2016年発表

  • 1/21 R63/U Core i 6xxx
  • 4/21 R63/A Core i 6xxx
  • 7/13 R63/W Core i 5xxx
  • 11/29 R63/B Core i 6xxx

SSDはM.2.SSD(SATA).i-5モデルのSSDはmSATAかも?


2017年発表

  • 6/27 R63/D Core i 6xxx

これ以降アキュポイントなし?


2018年発表

  • 1/23 R63/F Core i 6xxx
  • 3/22 R63/H Core i 8xxx 7xxxx
  • 7/9 R63/G Core i 6xxx
  • 同   R63/J Core i 8xxx 7xxxx

メモリはCore i-6xxx DDR3L MAX16GB,i-7xxx および i-8xxx DDR4 MAX 16GB.ドッキングステーションのコネクタ廃止?

2019年発表

  • 1/17 R63/M Core i 8xxx 7xxxx
  • 1/28 R63/K Core i 6xxx
  • 7/8 R63DN Core i 8xxx 7xxxx

これ以降発表は無い.

  • 一部にはRZ63というモデルもあるが,R63との違いはわからない(Toshiba Direct用の型番?
  • さらに,R63/PSの様にさらに記号が追加されている事もあるのでよくわからない.
  • タッチパネル付きのモデルもある.液晶を移植すると動くらしい.
  • DDR3LモデルにDDR3メモリを挿しても動きません(電源LEDがオレンジ白に点滅する).
  • アキュポイント復活はよ!!
  • ドッキングステーションはスーパーウルトラ接触不良多発なので買うなら覚悟の上で.ディスプレイはすぐ接触不良になるし,USBハブはろくに動かないし(SS2120でもRX2でもこんなことなかったのだけれどな).そもそもサポートされる機種が「コネクタがあるやつ」みたいに書かれていて明確でないのも問題.

2020年11月10日火曜日

SPICEとSpectreの違い

SPICE は修正接点解析(Modified Nodal Analysis)つまり電圧保存則(KVL),Spectre は電荷保存則(KCL)で回路を解く.

正確には,ニュートン法での収束判定において,SPICE はタイムステップ前後の電圧差分と電流差分が一定値以下になれば収束と判定し,Spectre は電流差分ではなく電荷差分が一定以下であれば収束と判定する.電荷を判定に使う事で,Spectre は SPICE に比べ異常な点での収束を防ぐことができる利点がある.

Reference: Ken Kundert, "Simulation of Analog and Mixed-Signal Circuits", https://kenkundert.com/docs/bctm98-MSsim.pdf


2020年11月7日土曜日

ポリ,シリサイド化ポリ,配線の抵抗の関係

回路をコンパクトに作るためにゲート(ポリシリコン)で配線をする事はよくあるのだけれど,とあるプロが「ポリ配線は抵抗が大きいので多用すると性能低下につながるから止めた方がよい」と意見していた.

実際に調べてみると,とあるプロセスでの配線抵抗をを1Rとすると

Non-Siliside Poly 7000 R [Ohm/sq.]

Siliside Poly 100 R [Ohm/sq.]

M1 1R [Ohm/sq.]

となかなか大きい事がわかった.Siliside 化しても抵抗が高いのは意外だったけれど,よく考えればタングステンシリサイドやチタンシリサイドの薄膜だから銅・アルミ配線に比べて抵抗は高くなるか.

東芝の論文によるとシリサイドは 0.4 um 世代から使われ始めたらしい[1].

Google Skywater  130nm プロセス(元はCypressのファブだったらしい) は TiN による Local Interconnect という変わった層があるけれど,これはメタル層に比べて抵抗が100倍高いそうだ[2].配線層以外は結構抵抗高いのね.

[1] 杉本 茂樹,神垣 哲也,上條 浩幸,"半導体プロセス技術の進歩と課題", 東芝レビュー, 2004年8月,https://www.toshiba.co.jp/tech/review/2004/08/59_08pdf/a02.pdf

[2] Tim Edwards, "Google/SkyWater and the Promise of the Open PDK", in Workshop on Open-Source EDA Technology, 2020

2020年11月6日金曜日

IC Compilerにて配線方向を指定する(set_preferred_routing_direction)

 IC Compilerにて配線の方向を設定するには,set_preferred_routing_direction オプションを使う.

set_preferred_routing_direction -layers {Mx My} -direction [vertical|horizontal]

テクノロジーファイルなどに,あらかじめ配線方向が規定されている場合もある.この設定を消すためには remove_preferred_routing_direction を使う.

remove_preferred_routing_direction -layers {Mx My}

フロアプランを決めてしまうと配線方向は変えられないので,create_floorplan コマンドの前に実行すること.

2020年10月21日水曜日

VIMのスペルチェッカーの塗りつぶし方法を変える

VIMでスペルチェックをかけると違反箇所は標準で赤塗りになるが,カラースキームによっては非常に見づらい.hilight SpellBadコマンドで制御できるのだが,うまくいかない場合はColorSchemeコマンドで囲うとよいようだ.

set spell
set spelllang+=cjk
autocmd ColorScheme * hi clear SpellBad
    \| hi SpellBad cterm=underline ctermbg=black
colorscheme ron

アンダーラインのみに変えた.


Source: 
jshint vimrc SpellBad customization does not stick
https://stackoverflow.com/questions/17333210/jshint-vimrc-spellbad-customization-does-not-stick

2020年8月23日日曜日

IC Compilerの配線長に制約を設定する (set_max_length)

IC Compile rでは通常使用する配線長に制約はない.意図的に制約を設けたいときは,
set_max_length オプションを使用することができる.
> set_max_length integer design
このオプションは設計者がトップレベルで配線バッファを挿入することを想定しているので,バッファ挿入コマンド create_buffer_tree と併用することが想定されている.
> set_max_length integer design
> create_buffer_tree -on_route
create_buffer_tree コマンドを実行するとバッファの挿入と配線がされてしまうので,配線を後でしたい場合は -skip_detail_route オプションをつけるとよい.