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 がエラーを吐くようだ.

解決方法は XFS ではなくて他のファイルシステム,例えば ext3 や ext4 を使うとよい.
EBS 12.2 -- problem installing EBS on XFS -- no server JVM at libjvm.so

上記ブログの内容を簡単にまとめると,RHEL7 系ではデフォルトでファイルシステムが XFS で,XFS で 1 TB 以上の容量を取り扱う場合に 64 bit inode を使うのだが,これが 32 bit のJava アプリケーションの実行に問題を発生させるという話.マウント時に 32 bit inode を使うようにしてもよいとのことだ.
自分の環境は Cent OS 7 に 3 TB の SSD を XFS(デフォルト) で作成していたので問題となったようだ.古い 500GB の HDD を ext4 でフォーマット & マウントしたらインストーラーが起動した.

(上記Blogでは Oracle Linux 7 で問題となっていて,自社の OS で自社のインタプリタが動かないってどういうことやねん,という感じ)

Cent OS フォーラムにもトピックが立っていたが,解決しなかった.

2021年2月3日水曜日

Cent OS 7 にtgifを入れる.Gnuplotでtgifを出力する.

 Tgif を入れる
$ wget http://bourbon.usc.edu/tgif/ftp/tgif/tgif-QPL-4.2.5.tar.gz
$ tar zxvf tgif-QPL-4.2.5.tar.gz
$ cd tgif-QPL-4.2.5
$ 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

Gnuplot を SourceForge からダウンロードして解凍
https://sourceforge.net/projects/gnuplot/files/gnuplot/
$ tar zxvf gnuplot-5.4.1.tar.gz
$ cd gnuplot-5.4.1
$ ./configure -with-tgif
$ make
$ sudo make install
 
Gnuplot 5.4では tgif はレガシーだって,トホホ


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 コマンドの前に実行すること.