ptetexからtexlive(2013/10/12)に移行したら,dvipdfmxでpdfを生成する時に
図がずれる様になった.xdviで見る限りdviは問題なさそうである.
原因はグラフィックのパッケージへのオプションが不適切で,
\usepackage{graphicx}
から
\usepackage[dvipdfmx]{graphicx}
に変えたら直った.
2013年10月13日日曜日
2013年9月16日月曜日
Windows8で休止状態を使うと音が鳴らなくなる
Windows8のWindows Media Centerで音を鳴らしながら休止状態に移行すると,休止状態から復帰しても音が鳴らなくなる.こうなるとWindows Media Centerでも他のプレイヤーでも音が鳴らなくなる.こうなると再起動するしかない.ボリュームを変えるとホワイトノイズは変わるし,視覚エフェクトも正常.原因がわからない.不便だ.
Windows 8の場合,コントロールパネルからのトラブルシューティングを立ち上げることができる.
[コントロール パネル]→[すべてのコントロール パネル項目]→[トラブルシューティング]
しかし「ボリュームを上げろ」と指示された以上の特に有用な情報を得ることはできなかった.
また,Windows Audioサービスを再起動しても結果は変わらなかった.
英語で検索したら,Microsoft Communityにすでにスレッドが立っていた(2012/11).
No audio after windows 8 wakup from sleep
サポートの人がまるで役に立っていない.「管理者として実行してみては?」というアドバイスもあったが効果はなかった.
Windows 8の場合,コントロールパネルからのトラブルシューティングを立ち上げることができる.
[コントロール パネル]→[すべてのコントロール パネル項目]→[トラブルシューティング]
しかし「ボリュームを上げろ」と指示された以上の特に有用な情報を得ることはできなかった.
また,Windows Audioサービスを再起動しても結果は変わらなかった.
英語で検索したら,Microsoft Communityにすでにスレッドが立っていた(2012/11).
No audio after windows 8 wakup from sleep
サポートの人がまるで役に立っていない.「管理者として実行してみては?」というアドバイスもあったが効果はなかった.
2013年8月12日月曜日
コピー機の最大投入金額(16120円)に関する考察
なぜFuji Xeroxのコピー機の最大投入金額が16120円と中途半端なのか推測してみる.
複写管理機器(というらしい)Coinkit 9のカタログ(pdf)を見ると,硬貨だけの場合最大投入金額は15120円で,オプションの1000円紙幣ユニットをつけることで16120円になるらしい.
カタログを見ると,どうも硬貨の種類によって最大投入可能数が異なる様だ.従ってWikipediaから硬貨の厚みに関する情報を引き出してみると以下のようになった.
- 10円:1.5mm x 90枚 = 135mm
- 50円:1.7mm x 78枚 = 132.6mm
- 100円:1.7mm x 77枚 = 130.9mm
従って,硬貨を受けつけるトレイの大きさが136mmでありそれに制約されている可能性がある.微妙にずれがあるのは,硬貨のそり等を考慮したマージンの分であったり,硬貨の正確な厚みが公表されていない分の誤差の蓄積だと思われる(造幣局のサイトでは見つけられなかった).
2013年8月6日火曜日
SPICEネットリストビューアー
以前SPICEのネットリストのビューアーで良いものがないか問い合わせを受けた.自分の知っているビューアーは以下の通りである.
フリーのネットリストビューアーである.使い勝手は不明だが,デモを見る限り素子がぐちゃぐちゃに配置され可読性が低そうである.
AnalogArtist
CIWから[File]→[Import]→[CDL…]でCDLとして読み込む.素子がぐちゃぐちゃに配置されるため,可読性が低い.
逆にComposer Schematicを使ってGUIでネットリストを作り,CDL outしてネットリストを生成することも可能(そこまでするならAnalog Design Environmentを使う方がよいかも).
逆にComposer Schematicを使ってGUIでネットリストを作り,CDL outしてネットリストを生成することも可能(そこまでするならAnalog Design Environmentを使う方がよいかも).
Concept Engineeringというドイツの会社が出している.未使用なので使い勝手はわからない.デモを見る限り素子がきれいに配置されている.購入する必要がある.
Spice Explorer/Custom Explorer
現在Synopsysが提供している波形ビューアーであるが,Spice形式のファイルを表示することも可能である.Spice Explorerの場合マクロブロックの入出力単位,Custom Explorerであればマクロ間の配線をGUIで表示可能だが,使い勝手はイマイチである.特に後者はVDECのライセンスでは動作しないようだ(波形の表示はできる).
Calibre RVE
個人的におすすめなのがRVEである.特に2010年版以降のGUIのネットリストビューアーのできがすばらしい.
% calibre -rve
で起動し,読み込むファイルとして[SPICE File]を選択しファイルをロードすればokである.信号のハイライト,回路ブロックの展開/収束も可能である.VDEC提供のライセンスで利用可能.ただしLVS用のネットリストビューアーなのでサブサーキットとして定義した回路ブロックしか見ることができないようだ.
IC Compilerで生成するVIAの種類を指定する(advanced via rule)
IC Compilerで利用する(Astroの)テクノロジファイルには一般に様々な種類のVIAマクロが定義されており,IC Compilerはそれらの中から状況に応じてVIAを使い分ける.IC Compilerが意図通りのVIAを生成しないときは,advanced via ruleを指定する事でユーザーの意図通りのVIAを選択させることができる.
例えば,電源ストラップ生成時のスタックドビアに利用するVIAを指定するには以下のように設定すればよい.
set_preroute_advanced_via_rule -contact_code TECH_VIA1 -size_by_array_dimensions [list 5 1] -move_via_to_center
その後いつものように電源ストラップを生成する.
create_power_straps -direction vertical -start_at 4.5 -num_placement_strap 2 -increment_x_or_y 20 -nets {VDD VSS} -layer M5 -width 1 -step 20 -pitch_within_group 1.75 -extend_low_ends force_to_boundary_and_generate_pins -extend_high_ends force_to_boundary_and_generate_pins -advanced_via_rules
-contact_codeでテクノロジファイル中のVIAを指定する事が可能である.-move_via_to_centerオプションをつけると,電源レールの真ん中にVIAを配置することが可能である(つけないとずれる).
例えば,電源ストラップ生成時のスタックドビアに利用するVIAを指定するには以下のように設定すればよい.
set_preroute_advanced_via_rule -contact_code TECH_VIA1 -size_by_array_dimensions [list 5 1] -move_via_to_center
その後いつものように電源ストラップを生成する.
create_power_straps -direction vertical -start_at 4.5 -num_placement_strap 2 -increment_x_or_y 20 -nets {VDD VSS} -layer M5 -width 1 -step 20 -pitch_within_group 1.75 -extend_low_ends force_to_boundary_and_generate_pins -extend_high_ends force_to_boundary_and_generate_pins -advanced_via_rules
-contact_codeでテクノロジファイル中のVIAを指定する事が可能である.-move_via_to_centerオプションをつけると,電源レールの真ん中にVIAを配置することが可能である(つけないとずれる).
2013年8月1日木曜日
NC-Verilogにおける実負荷シミュレーションのバッドノウハウ
NC Verilogを使ってSDFをアノテートしたシミュレーションをする時,アノテーションの手法は以下の2つがある.
- Verilogテストベンチ中に$sdf_annotate("file", module)を使う
- NC Verilog起動時に+sdf_file+<
file> を引数で与える
これらの手法のうち,(1)で以下のワーニングが発生しうまくアノテーションできずはまった.
ncelab: *W,sdfNET: failed Attempt to annotate to non-existent path...
しかし,同じファイルであっても(2)を試すとうまくいく.よくわからないが,(1)と(2)ではサポートしているSDFの構文が違うのだろうか.利用したのはncverilog 06.20-s004 (IUS62)である.
ncelab: *W,sdfNET: failed Attempt to annotate to non-existent path...
しかし,同じファイルであっても(2)を試すとうまくいく.よくわからないが,(1)と(2)ではサポートしているSDFの構文が違うのだろうか.利用したのはncverilog 06.20-s004 (IUS62)である.
なお,(2)は+sdffile<file > と"+"なしでも正しくアノテーション可能である.
SDFをアノテーションすると当たり前だが各セル,配線遅延を想定したシミュレーションになる.従ってテストベンチのクロック周期を想定する回路のクロック周期に設定しないと当たり前だがタイミング違反になる.
Verilogシミュレーションにおいて,セットアップ違反はホールド違反として報告されることがある.早とちりせずに2つのタイミング違反の可能性について調査する必要がある.
何も考えずにシミュレーションをしていたところ,回路を100GHzでシミュレーションしてしまい結果ホールド違反(と思わせたセットアップ違反)がモリモリでてきて悩んでしまった.情けない.
IC CompilerでHold回避用遅延素子を指定する
IC Compilerによる配置配線においてHold違反を回避するために遅延素子を入れるが,私の環境ではインバータチェーンで構成されてしまい面積/消費電力的に無駄が多い.実際には特定のセル(DELAYセル)をホールド解決用に利用したい,そのためにはset_prefer属性を付加するしたうえでhold違反の修正を行う.以下のようにコマンドを入力すればよいようだ.
set_prefer -min {tech_lib/MY_DELAY_CELL}
set_fix_hold_options -preferred_buffer
set_fix_hold [all_clocks]
あとはroute_opt等の配線時にhold違反を修正するよう設定すればよい.
set_prefer -min {tech_lib/MY_DELAY_CELL}
set_fix_hold_options -preferred_buffer
set_fix_hold [all_clocks]
あとはroute_opt等の配線時にhold違反を修正するよう設定すればよい.
2013年7月31日水曜日
Calibre Interactive WindowをIC Compilerに表示させる
Mentor GraphicsのResource Centerを見ていて知ったのだが,Calibre Interactive WindowをIC Compilerに表示させることが可能らしい.
Calibreのインストール先として環境変数$CALIBRE_HOMEを設定したうえで,以下のコマンドをIC Compilerの設定ファイル($HOME/.synopsys_icc_gui.tcl)もしくはIC Compilerのシェルに書き込めばよい.
icc_shell> source [file join $::env(CALIBRE_HOME) lib icc_calibre.tcl]
今までGDSをCalibreWORKbenchで見る,もしくはAnalogArtistにStreamINしていたけれど,今後そんな面倒なことをしなくても良さそうだ.
参考:
Calibre Interactive User's Manual
Resource Center Mentor Graphics
Calibreのインストール先として環境変数$CALIBRE_HOMEを設定したうえで,以下のコマンドをIC Compilerの設定ファイル($HOME/.synopsys_icc_gui.tcl)もしくはIC Compilerのシェルに書き込めばよい.
icc_shell> source [file join $::env(CALIBRE_HOME) lib icc_calibre.tcl]
今までGDSをCalibreWORKbenchで見る,もしくはAnalogArtistにStreamINしていたけれど,今後そんな面倒なことをしなくても良さそうだ.
参考:
Calibre Interactive User's Manual
Resource Center Mentor Graphics
2013年7月29日月曜日
IC CompilerのZrouteで並列処理をする
IC Compiler(2008年版)までは普通のrouter(Classic router)を使っていたが,現在利用中のIC Compiler 2010年版のZrouteが超快適で研究室で愛用している.しかしtopコマンドを見るとCPUを1つしか使っていない.
Classic routerで並列処理をするときはset_destribute_routeを使ってホストの情報を取得したが,Zrouteの場合はset_host_optionsを使う様だ.
icc_shell> set_host_options -max_cores 12
配線や寄生成分抽出など場面によって使い分けもできるらしいが,複雑に考えない場合は単に-max_coresで利用するコア数を指定すればよいとのこと.1コアでさえ速いZeouteがきちんと12コア使って高速処理してくれるので気持ちが良くなった.
ちなみに,複数のマシンに配線のジョブを流すことも可能らしい.商用の大規模な回路をフラットで設計する時には役に立つのかもしれない(研究室レベルの回路だと牛刀かもしれない).
Classic routerで並列処理をするときはset_destribute_routeを使ってホストの情報を取得したが,Zrouteの場合はset_host_optionsを使う様だ.
icc_shell> set_host_options -max_cores 12
配線や寄生成分抽出など場面によって使い分けもできるらしいが,複雑に考えない場合は単に-max_coresで利用するコア数を指定すればよいとのこと.1コアでさえ速いZeouteがきちんと12コア使って高速処理してくれるので気持ちが良くなった.
ちなみに,複数のマシンに配線のジョブを流すことも可能らしい.商用の大規模な回路をフラットで設計する時には役に立つのかもしれない(研究室レベルの回路だと牛刀かもしれない).
Calibre InteractiveにおけるLVS optionの取り扱い
Mentor Graphics Communities; How to disable the LVS Options in Calibre Interactive GUI?
Calibre Interactiveの場合,LVSのオプションはルールに記載されたものではなく,Calibre Interactiveのデフォルトが使われるらしい.ルールに記載されたオプションを利用するためには,[LOAD]ボタンを押さなければ反映されないらしい.
今まで「なんでルールにオプション記載してもLVSに反映されていないのだろう」と思っていたけれど,こんな事実だったとは….また,Calibre 2010ではパスするマクロがCalibre 2011では抽出されてほしくないFillerが抽出されてLVSがパスしなくなる問題もあったが,これもおそらくフィルターオプションの"AF"が2011版では無効になっているのかもしれない.
Calibre Interactiveの場合,LVSのオプションはルールに記載されたものではなく,Calibre Interactiveのデフォルトが使われるらしい.ルールに記載されたオプションを利用するためには,[LOAD]ボタンを押さなければ反映されないらしい.
今まで「なんでルールにオプション記載してもLVSに反映されていないのだろう」と思っていたけれど,こんな事実だったとは….また,Calibre 2010ではパスするマクロがCalibre 2011では抽出されてほしくないFillerが抽出されてLVSがパスしなくなる問題もあったが,これもおそらくフィルターオプションの"AF"が2011版では無効になっているのかもしれない.
2013年7月16日火曜日
Office 2013のスタート画面を表示させない
Office 2013は起動時に白紙の入力画面ではなく,スタート画面を表示させる仕様になった.例えばExcel 2013であれば以下の画面が表示される.
最近使ったファイルが表示されるのは便利かもしれないが,旧来のユーザーとしては白紙のブックを選択する操作が増えるので面倒である.このようなスタート画面を表示させないようにするために,オプションを変更する.[ファイル]→[オプション]を選択する.
[基本設定]の一番下に[このアプリケーションの起動時にスタート画面を表示する]というオプションが存在するので,チェックボックスを外す.
以降,新規起動時かならず白紙のブックが表示される.
これはWord,PowerPoint等の他のツールでも同様に設定することが可能である.
スタートメニューを表示するというのはMicrosoft以外のツールも採用しているので特別に文句があるわけではないが,(タッチ対応のため)無駄にでかい事と,なぜ2番目の選択肢が「ツアーに参加する」なのか,理解に苦しむ.
最近使ったファイルが表示されるのは便利かもしれないが,旧来のユーザーとしては白紙のブックを選択する操作が増えるので面倒である.このようなスタート画面を表示させないようにするために,オプションを変更する.[ファイル]→[オプション]を選択する.
[基本設定]の一番下に[このアプリケーションの起動時にスタート画面を表示する]というオプションが存在するので,チェックボックスを外す.
これはWord,PowerPoint等の他のツールでも同様に設定することが可能である.
スタートメニューを表示するというのはMicrosoft以外のツールも採用しているので特別に文句があるわけではないが,(タッチ対応のため)無駄にでかい事と,なぜ2番目の選択肢が「ツアーに参加する」なのか,理解に苦しむ.
2013年7月13日土曜日
MilkywayでFRAM Viewが作られないときの対応方法
Milkywayでフィジカルライブラリを作成するときに,
Warning: Skip generating FRAM view for cell (HOGE) because cell
type option is not enable or mis-matched. (RT-116)
といってFRAM Viewが作られない事がある.ワーニングの通り,マクロのcell typeが指定されていない事が原因である.GDSをStream Inする時に,Cell Type Difinition Fileを適切に読み込む事でcell typeを指定する.Cell Type Difinition FIleには,cell typeと対応するマクロの名前を書けばよい.例えばHOGEをスタセルとして認識させるには
gdsStdCell HOGE
とすればよい.GDS中のすべてのセルを指定するのであれば
gdsStdCell *
の様に'*'を使うことも可能である.
MilkywayのコマンドとしてCell Typeを定義することもできる(Schemeモードであれば cmMarkCellType)が,なぜかこのコマンド実行してもTrueを返すわりにcell typeの定義はできていないようで,cmMarkCellTypeを実行してもFRAM Viewは作られない(バグ?).
Warning: Skip generating FRAM view for cell (HOGE) because cell
type option is not enable or mis-matched. (RT-116)
といってFRAM Viewが作られない事がある.ワーニングの通り,マクロのcell typeが指定されていない事が原因である.GDSをStream Inする時に,Cell Type Difinition Fileを適切に読み込む事でcell typeを指定する.Cell Type Difinition FIleには,cell typeと対応するマクロの名前を書けばよい.例えばHOGEをスタセルとして認識させるには
gdsStdCell HOGE
とすればよい.GDS中のすべてのセルを指定するのであれば
gdsStdCell *
の様に'*'を使うことも可能である.
MilkywayのコマンドとしてCell Typeを定義することもできる(Schemeモードであれば cmMarkCellType)が,なぜかこのコマンド実行してもTrueを返すわりにcell typeの定義はできていないようで,cmMarkCellTypeを実行してもFRAM Viewは作られない(バグ?).
2013年7月12日金曜日
HSPICEで自作関数を定義する
HSPICEでは変数の定義と同様に,自作関数を定義することができる.フォーマットは以下の通り.
.param funcname1(arg1[,arg2...]) = expression1
+ funcname2(arg1[,arg2...]) = expression2
関数名(funcname)は組み込み関数と異なる名前である必要があり,また別の関数内で利用する関数はあらかじめ定義されている必要がある.引数(arg)は必ず1つ以上必要であり,複数定義できる.関数は再定義できるが,オーバーロードではなくオーバーライドになる様だ(明確には述べられていないが).
例えば剰余を求める関数は,以下のようになった(SPICEv3にはあるのになぜHSPICEには無いのだろう??).
.param remain(numer, denom)='numer - (int(numer/denom) * denom)'
10進数を2進数に変換してみる.SPICEのカードの一部を示す.
.param remain(numer, denom)='numer - (int(numer/denom) * denom)'
.param COND_DCC_0 = 'remain(TRIAL, 2)'
.param COND_DCC_1 = 'remain(int(TRIAL/2), 2)'
.param COND_DCC_2 = 'remain(int(TRIAL/4), 2)'
.param COND_DCC_3 = 'remain(int(TRIAL/8), 2)'
.param COND_DCC_4 = 'remain(int(TRIAL/16), 2)'
.param COND_DCC_5 = 'remain(int(TRIAL/32), 2)'
.param COND_DCC_7 = 'remain(int(TRIAL/64), 2)'
.param COND_DCC_6 = 'remain(int(TRIAL/128), 2)'
.tran 10p 10n sweep TRIAL 0 256 1
HSPICEでシミュレーションしたところ,ちゃんと2進数に変換できた!
試していないが,おそらくHSIMでもできる
.param funcname1(arg1[,arg2...]) = expression1
+ funcname2(arg1[,arg2...]) = expression2
関数名(funcname)は組み込み関数と異なる名前である必要があり,また別の関数内で利用する関数はあらかじめ定義されている必要がある.引数(arg)は必ず1つ以上必要であり,複数定義できる.関数は再定義できるが,オーバーロードではなくオーバーライドになる様だ(明確には述べられていないが).
例えば剰余を求める関数は,以下のようになった(SPICEv3にはあるのになぜHSPICEには無いのだろう??).
.param remain(numer, denom)='numer - (int(numer/denom) * denom)'
10進数を2進数に変換してみる.SPICEのカードの一部を示す.
.param remain(numer, denom)='numer - (int(numer/denom) * denom)'
.param COND_DCC_0 = 'remain(TRIAL, 2)'
.param COND_DCC_1 = 'remain(int(TRIAL/2), 2)'
.param COND_DCC_2 = 'remain(int(TRIAL/4), 2)'
.param COND_DCC_3 = 'remain(int(TRIAL/8), 2)'
.param COND_DCC_4 = 'remain(int(TRIAL/16), 2)'
.param COND_DCC_5 = 'remain(int(TRIAL/32), 2)'
.param COND_DCC_7 = 'remain(int(TRIAL/64), 2)'
.param COND_DCC_6 = 'remain(int(TRIAL/128), 2)'
.tran 10p 10n sweep TRIAL 0 256 1
HSPICEでシミュレーションしたところ,ちゃんと2進数に変換できた!
試していないが,おそらくHSIMでもできる
2013年7月10日水曜日
ulem.styにemphをアンダーラインにさせない
latexで論文を修正するために修正前の箇所に取消線を引く時,心臓に悪い自体が起きたのでメモ.
latexで取消線を引くには,ulem.styを使う.
ulem.styは取消線以外にもアンダーラインや二重線等もスタイルとして含んでいるのだが,
ulem.styはデフォルトでイタリックをアンダーラインに変えてしまう.つまり\emや\emphが
アンダーラインになってしまう.
ulem.styは取消線以外にもアンダーラインや二重線等もスタイルとして含んでいるのだが,
ulem.styはデフォルトでイタリックをアンダーラインに変えてしまう.つまり\emや\emphが
アンダーラインになってしまう.
\usepackage{ulem}をしたばかりに,引用文献が,アンダーラインになってしまった!
気がつかずに投稿していたらと思うと心臓ばくばくである.
そういうときは,normalemオプションを使う.
\usepackage[normalem]{ulem}を使えばこの通り,元のイタリックに!
論文締め切り直前にこんな事態が起きるなんて,なんて心臓に悪いパッケージなんだ... (UnderLineEMphasizeの名の通りといえばそうなのだが)
以下のドキュメントが詳しい.
http://www.google.co.jp/url?sa=t&rct=j&q=&esrc=s&source=web&cd=2&cad=rja&ved=0CDkQFjAB&url=http%3A%2F%2Ftexdoc.net%2Ftexmf-dist%2Fdoc%2Fgeneric%2Fulem%2Fulem.pdf&ei=tRMAUcKqHM6QiAeKmoGQAQ&usg=AFQjCNFrSE3qDfkcWl-YWFKHGEK9cw-4vA&sig2=638e6jfyWLXhfMw0N3ZhDA&bvm=bv.41248874,d.aGc
2013年6月20日木曜日
lmstatを使ってライセンスの使用状況を確認する
某所でCADのライセンス数の取り扱いについてヒートアップしている.Citrixのライセンスツールを使ってライセンスが管理されている場合,lmstatを使ってライセンスを確認することができる.
% lmstat [-a][-f feature]
-a : 提供されているすべてのライセンスの情報を表示
-f "feature" : "feature"のライセンスに関して情報を表示
例えばhspiceの場合,
% lmstat -f hspice
と打ち込めばよい.
ただしライセンスサーバーが複数ある場合,複数のサーバーにアクセスするためライセンスのチェックに時間がかかるようだ.以前記事にしたように実際に1つライセンスを取った方が速いかもしれない.
なお,うちの研究室も自分を含む何人かやらかした事があるので,それ以降皆自重するようになりました.
"&"とかつけてジョブを複数投げるときは気をつけましょう.
% lmstat [-a][-f feature]
-a : 提供されているすべてのライセンスの情報を表示
-f "feature" : "feature"のライセンスに関して情報を表示
例えばhspiceの場合,
% lmstat -f hspice
と打ち込めばよい.
ただしライセンスサーバーが複数ある場合,複数のサーバーにアクセスするためライセンスのチェックに時間がかかるようだ.以前記事にしたように実際に1つライセンスを取った方が速いかもしれない.
なお,うちの研究室も自分を含む何人かやらかした事があるので,それ以降皆自重するようになりました.
"&"とかつけてジョブを複数投げるときは気をつけましょう.
2013年6月19日水曜日
SiliconSmart備忘録
SiliconSmart ACEを研究室の子に教えてもらったのでメモ.
最低限必要なのは
・全体の設定ファイル(configure.tcl)
・各セルごとの論理を定義したファイル(.inst).
・SPICEネットリスト.
configure.tclはインストールディレクトリにテンプレがある..instは無ければ手で作れとのこと.既存の.libがあればそれから生成することもできる.
各ファイルのディレクトリ構造は(ほぼ)固定である.SiliconSmartはカレントディレクトリのディレクトリ構造から,各設定ファイルを読み取る.ディレクトリ構造は以下となっている.
./config # configure.tclを入れる.
./control # .instファイルを入れる.
./netlists # ネットリストを入れる.これは別のディレクトリを指定できる.
キャラクタライズの条件はconfigure.tclにも,.instにも,そして既存の.libからも読み取ることができる.
優先度が存在し,高い順に
.inst > configure.tcl > .lib
である..libにIndexの切り方とか指定していても全然反映されず詰まった.
キャラクタライズで利用するSPICEファイルの拡張子は.cir.別の拡張子を使うときはimport時に-extオプションを使う.
Magmaのツールなので,平等にNLDMもCCSもESCMも出せる.
セルの面積情報を付加することができない.やり方はマニュアルに書いてあるが,.libに反映されない.バグ?
最低限必要なのは
・全体の設定ファイル(configure.tcl)
・各セルごとの論理を定義したファイル(.inst).
・SPICEネットリスト.
configure.tclはインストールディレクトリにテンプレがある..instは無ければ手で作れとのこと.既存の.libがあればそれから生成することもできる.
各ファイルのディレクトリ構造は(ほぼ)固定である.SiliconSmartはカレントディレクトリのディレクトリ構造から,各設定ファイルを読み取る.ディレクトリ構造は以下となっている.
./config # configure.tclを入れる.
./control # .instファイルを入れる.
./netlists # ネットリストを入れる.これは別のディレクトリを指定できる.
キャラクタライズの条件はconfigure.tclにも,.instにも,そして既存の.libからも読み取ることができる.
優先度が存在し,高い順に
.inst > configure.tcl > .lib
である..libにIndexの切り方とか指定していても全然反映されず詰まった.
キャラクタライズで利用するSPICEファイルの拡張子は.cir.別の拡張子を使うときはimport時に-extオプションを使う.
Magmaのツールなので,平等にNLDMもCCSもESCMも出せる.
セルの面積情報を付加することができない.やり方はマニュアルに書いてあるが,.libに反映されない.バグ?
2013年5月30日木曜日
CalibreがRedHat Linux 6.xで動かない
Calibreの古い版をRedHat Linux 6.2で起動すると,
ERROR: Red Hat Linux Release 6.2 is not supported for use with Calibre products.
と表示されて起動しない.RHEL6.xはCalibre Version 2011 2.6からサポートしているので,それより古い場合はアップデートが必要である.試しに2011.2_34.26を利用したところ,正常に起動した.
参考 (Mentor/Support Net)
Does Calibre 2011 work on redhat el 6.3?
http://communities.mentor.com/mgcx/thread/10357
ERROR: Red Hat Linux Release 6.2 is not supported for use with Calibre products.
と表示されて起動しない.RHEL6.xはCalibre Version 2011 2.6からサポートしているので,それより古い場合はアップデートが必要である.試しに2011.2_34.26を利用したところ,正常に起動した.
参考 (Mentor/Support Net)
Does Calibre 2011 work on redhat el 6.3?
http://communities.mentor.com/mgcx/thread/10357
2013年5月10日金曜日
学振PDの申請機関に注意
学振PDは申請者が現在所属している機関に申請するのではなく,申請者の受け入れ先研究機関に申請を行う.
ちゃんと学振の申請手引きに記載されているので,きちんと読みましょうorz
また,申請先によって締め切りが異なるので,この点も注意.
ちゃんと学振の申請手引きに記載されているので,きちんと読みましょうorz
また,申請先によって締め切りが異なるので,この点も注意.
2013年5月9日木曜日
Windows8において,IMEのON/OFFをアプリごとに保存する
これまでのWindowsではIMEの制御状態はアプリごとに保存されていたが,Windows 8ではIMEの制御状態はすべてのアプリで共有される.IMEの制御状態をアプリごとに保存するためには,コントロールパネルで設定を行う.
[コントロールパネル]→[言語]→[詳細設定]へ移動し,[アプリ ウィンドウごとに異なる入力方式を設定する]にチェックを入れる.
これで,Terminal等日本語入力をしないアプリは常にIMEオフにできるので使い勝手が向上する.
Windows 8でなぜこの様な設定を入れさらにデフォルトにしたのだろう.Windows 8はショートカット等が充実していてなれれば高速に使いこなせる設定がある一方で,全くの誰得設定が多すぎてせっかくの利点を完全にスポイルしている感じ.
[コントロールパネル]→[言語]→[詳細設定]へ移動し,[アプリ ウィンドウごとに異なる入力方式を設定する]にチェックを入れる.
これで,Terminal等日本語入力をしないアプリは常にIMEオフにできるので使い勝手が向上する.
Windows 8でなぜこの様な設定を入れさらにデフォルトにしたのだろう.Windows 8はショートカット等が充実していてなれれば高速に使いこなせる設定がある一方で,全くの誰得設定が多すぎてせっかくの利点を完全にスポイルしている感じ.
2013年4月15日月曜日
Windowsにおける印刷時のフォント化けを解決する(フォントの置換をやめる)
印刷時にフォントが化ける場合,送信したファイルに含まれるフォントがプリンタ内蔵のフォントに代替された事によって引き起こされる場合がある.この場合,代替フォントではなくオリジナルのフォントのまま印刷する様にプリンタを設定すれば問題は解決する.
るEPSON LP-9600Sの場合,[プリンタのプロパティ]から[デバイス設定]を開き,[フォント代替表]に含まれる[MS ゴシック][MS 明朝]がそれぞれ[@ゴシック][@明朝]となっていたので,[Don't Subscribe]に設定する事で文字化けが解決した.
ただし,Windows XPなマシンはプリンタのフォントで問題なかったので,Windows 8で利用しているEPSON LP-9600Sのドライバに問題があるのかもしれない.
るEPSON LP-9600Sの場合,[プリンタのプロパティ]から[デバイス設定]を開き,[フォント代替表]に含まれる[MS ゴシック][MS 明朝]がそれぞれ[@ゴシック][@明朝]となっていたので,[Don't Subscribe]に設定する事で文字化けが解決した.
ただし,Windows XPなマシンはプリンタのフォントで問題なかったので,Windows 8で利用しているEPSON LP-9600Sのドライバに問題があるのかもしれない.
2013年4月9日火曜日
HSPICEの標準出力に詳細情報を出力する(.option lis_new)
HSPICEはデフォルトで詳細な情報を標準出力(*.lis)に出力するが,より詳細な情報を
出力させるにはlis_newオプションを利用する.
.OPTION LIS_NEW = value
valueは[0|1]の値であり,0がデフォルトである.1にすることでオプションが有効になり,以下の操作が行われる.
■ .PRINTと.NOISE解析の結果が別のファイルに出力される.
■ *.ic#に出力された動作点解析の結果が出力されなくなる.
■ シミュレーションの進捗がパーセンテージで表示される.
■ 解析結果を解析結果に準じた形式で出力する(Reports analysis output file with analysis-specific format.)
■ Convergenceの状態を更新し*.lisに出力する
■ 進捗10%ごとに解析結果を*.lisに出力する
■ 回路の統計情報を表示する.
大きいシミュレーションをするときに,進捗率が表示されるのは結構うれしい.
出力させるにはlis_newオプションを利用する.
.OPTION LIS_NEW = value
valueは[0|1]の値であり,0がデフォルトである.1にすることでオプションが有効になり,以下の操作が行われる.
■ .PRINTと.NOISE解析の結果が別のファイルに出力される.
■ *.ic#に出力された動作点解析の結果が出力されなくなる.
■ シミュレーションの進捗がパーセンテージで表示される.
■ 解析結果を解析結果に準じた形式で出力する(Reports analysis output file with analysis-specific format.)
■ Convergenceの状態を更新し*.lisに出力する
■ 進捗10%ごとに解析結果を*.lisに出力する
■ 回路の統計情報を表示する.
大きいシミュレーションをするときに,進捗率が表示されるのは結構うれしい.
2013年4月5日金曜日
Windows 7/8でPoderosaの設定を保存する
Poderosaの設定を保存するためには,Poderosaを管理者権限で実行する必要があるらしい.
PoderosaのバイナリであるPoderosa.exeを右クリック→[プロパティ]を選択し,[互換性]タブの[管理者としてこのプログラムを実行する]にチェックを入れればok
ユーザーアカウント制御(UAC)を入れていると実行のたびに確認ダイアログが出るらしいが,
UACなんて普通切(ry.
PoderosaのバイナリであるPoderosa.exeを右クリック→[プロパティ]を選択し,[互換性]タブの[管理者としてこのプログラムを実行する]にチェックを入れればok
ユーザーアカウント制御(UAC)を入れていると実行のたびに確認ダイアログが出るらしいが,
UACなんて普通切(ry.
2013年2月8日金曜日
64bit版HSIMを使う方法
環境変数HSIM_64に1をセットする事で,64bit版HSIMを利用可能である.
% setenv HSIM_64 1 # csh. tcsh
% export HSIM_64=1 # ksh, bash
これさえあれば,チップレベルのシミュレーションも怖くない!
試しにやってみた.
[11:00]% export HSIM_64=1
[11:00]% hsim
================
**************************************************************************
ERROR : amd64/bin/hsim is not installed under
/mnt/cad/synopsys/hsim_vE-2010.12/hsimplus/platform
and no compatible binary can be found
**************************************************************************
[11:00]%
orz
amd64のバイナリをインストールしてもらおう…
% setenv HSIM_64 1 # csh. tcsh
% export HSIM_64=1 # ksh, bash
これさえあれば,チップレベルのシミュレーションも怖くない!
試しにやってみた.
[11:00]% export HSIM_64=1
[11:00]% hsim
================
**************************************************************************
ERROR : amd64/bin/hsim is not installed under
/mnt/cad/synopsys/hsim_vE-2010.12/hsimplus/platform
and no compatible binary can be found
**************************************************************************
[11:00]%
orz
amd64のバイナリをインストールしてもらおう…
HSPICE/HSIMでRC Reductionを行う(.OPTION SIM_LA/.PARAM HSIMPOSTL)
ポストレイアウトシミュレーションを行う場合,レイアウトから大量のRCが抽出されるためシミュレーションに時間がかかる.HSPICEでは,ネットリスト中の大量のRCを縮約(Reduction)する事でノード数を減らし,シミュレーションを高速化することができる.この場合,SIM_LAオプションを利用する.LAとはLinear Accelerationの略である.
.OPTION SIM_LA = value
valueは[PACT | PI | 0 | 1 | 2]を取り,以下の対応となる.
PACT: PACT(Pole Analysis via Congruence Transforms)アルゴリズムでRC Reductionを行う.PACTアルゴリズムでは,DCでの特性を完全に合わし,同時に指定された周波数f0以下の範囲に存在する極を保存するようにReductionを行う.以下に示すPIより高精度.
f0はLA_FREQオプションで以下のように指定する.
.OPTION LA_FREQ=value
valueが0である場合,Cの情報は消えてしまう.
PI: RCネットワークから等価パイ型モデルを作る.
0: SIM_LAオプションを無効にする(default).
1: PACTを有効にする(.OPTION LA_FREQ=PACTと同じ).
2: PIを有効にする(.OPTION LA_FREQ=PACTと同じ).
HSIMの場合,SIM_LAオプションではなく,変数HSIMPOSTLを指定する事でRC Reductionを行う.
.PARAM HSIMPOSTL = value
valueは[0 | 1 | 2 | 3]を取り,以下の対応となる.
0: RC Reductionを無効にする.
1: RC Reductionを有効にする.
2: RC Reductionを有効にする.
このオプションは,一つのネットに大量のMOSFETのドレイン/ソースがつながっているときに有効.
3: RC Reductionを有効にする.
このオプションは,RC Reductionを行う閾値となる電圧を1mVから10mVに緩和することで,より高速にポストレイアウトシミュレーションを実行可能にする.
マニュアルを読む限り,HSIMのRC Reductionはメモリーやデジタル回路のクロックツリーのシミュレーションを対象としている様だ.従ってHSPICEとは異なり,周波数ドメインの事はあまり考えていないようだ(要調査).
.OPTION SIM_LA = value
valueは[PACT | PI | 0 | 1 | 2]を取り,以下の対応となる.
PACT: PACT(Pole Analysis via Congruence Transforms)アルゴリズムでRC Reductionを行う.PACTアルゴリズムでは,DCでの特性を完全に合わし,同時に指定された周波数f0以下の範囲に存在する極を保存するようにReductionを行う.以下に示すPIより高精度.
f0はLA_FREQオプションで以下のように指定する.
.OPTION LA_FREQ=value
valueが0である場合,Cの情報は消えてしまう.
PI: RCネットワークから等価パイ型モデルを作る.
0: SIM_LAオプションを無効にする(default).
1: PACTを有効にする(.OPTION LA_FREQ=PACTと同じ).
2: PIを有効にする(.OPTION LA_FREQ=PACTと同じ).
HSIMの場合,SIM_LAオプションではなく,変数HSIMPOSTLを指定する事でRC Reductionを行う.
.PARAM HSIMPOSTL = value
valueは[0 | 1 | 2 | 3]を取り,以下の対応となる.
0: RC Reductionを無効にする.
1: RC Reductionを有効にする.
2: RC Reductionを有効にする.
このオプションは,一つのネットに大量のMOSFETのドレイン/ソースがつながっているときに有効.
3: RC Reductionを有効にする.
このオプションは,RC Reductionを行う閾値となる電圧を1mVから10mVに緩和することで,より高速にポストレイアウトシミュレーションを実行可能にする.
マニュアルを読む限り,HSIMのRC Reductionはメモリーやデジタル回路のクロックツリーのシミュレーションを対象としている様だ.従ってHSPICEとは異なり,周波数ドメインの事はあまり考えていないようだ(要調査).
2013年2月3日日曜日
Calibre LVSでNetlist Extractionに失敗する(抽出素子を選択する)
Calibre LVS (Interactive)にてNetlist Extractionに失敗するとき,もしくはCalibre LVSでトランジスタが抽出されないときは,Calibreのオプションをチェックすると良いらしい.Calibre Interactiveのメニューから,[Setup]→[Netlist Export]を選択すると,以下のメニューが出てくる.
例えばSchematic viewおよびCDL viewからセルおよび素子を抽出するのであれば,View Listに[auCdl schematic]と入力すると,指定したviewの素子が抽出される.逆に言うと,View Listに抽出対象のViewが指定されていなかったら,Netlist Extractionに失敗に失敗するか,動作はするものの素子が抽出されなくなる.
某65nmプロセスでLVSができなくて困っていたが,ココをいじると直るよ!と教えてもらった.AnalogArtistを再起動すると元に戻ってしまうので,どこかにデフォルト値が保存されているのかもしれない.
例えばSchematic viewおよびCDL viewからセルおよび素子を抽出するのであれば,View Listに[auCdl schematic]と入力すると,指定したviewの素子が抽出される.逆に言うと,View Listに抽出対象のViewが指定されていなかったら,Netlist Extractionに失敗に失敗するか,動作はするものの素子が抽出されなくなる.
某65nmプロセスでLVSができなくて困っていたが,ココをいじると直るよ!と教えてもらった.AnalogArtistを再起動すると元に戻ってしまうので,どこかにデフォルト値が保存されているのかもしれない.
2013年2月2日土曜日
Calibre LVSでショートを見つける
Calibre LVSでショートが見つかった場合,2つのネットは1つのネットとして扱われてしまう.ショートしたネットを複数のネットとして扱うには,以下のオプションをつけると良いらしい.
LVS ISOLATE SHORTS YES BY LAYER
BY LAYERをつける事で,どのレイヤーでショートしているかがわかるようだ.
他には,どのセルでショートしているかがわかるBY CELL,レイヤーおよびセルの情報を出すALSOオプションがある.
Calibre Verificationのマニュアルが参考になる.
LVS ISOLATE SHORTS YES BY LAYER
BY LAYERをつける事で,どのレイヤーでショートしているかがわかるようだ.
他には,どのセルでショートしているかがわかるBY CELL,レイヤーおよびセルの情報を出すALSOオプションがある.
Calibre Verificationのマニュアルが参考になる.
Calibre ® Verification User’s Manual, 2010, p369
2013年1月27日日曜日
シリサイド サリサイド ポリサイド
シリサイドとサリサイドがごっちゃになったので,備忘録的にメモ.ポリサイドもあるよ!
・シリサイド
シリコンと金属の化合物をシリサイド(Silicide.より正確にはメタルシリサイド)と呼ぶ.コバルト(Co)やニッケル(Ni)とシリコンの化合物が微細プロセスではよく使われる.
ポリシリコンや拡散はVIAを通じて上部のメタルに接続されるが,Siでできているポリシリコンや拡散に金属のVIAを直接接続すると,接合部(ジャンクション)の仕事関数が大きく,抵抗が大きくなる.従ってシリサイド化する事で仕事関数を小さくする事で,接合抵抗を軽減できる.
多結晶シリコンよりも抵抗が低く,ポリ配線,拡散配線の抵抗を減らすことができる.メタルと比べると高温でも安定であるため,高温でアニールする必要のあるトランジスタの電極で使われる.
・ポリサイド
ポリサイドは(POLYsilicon siliCIDE)の略で,ポリシリコンゲート上に生成するシリサイドの事である.
シリサイドはポリシリコンよりも抵抗が低いのでゲート電極の抵抗を減らすことができる.
・サリサイド
サリサイドは(Self Aligned siliCIDE)の略で,自己整合で作られるシリサイドの事を,特にサリサイドと呼ぶ.ポリシリコンだけでなくトランジスタの拡散領域にシリサイドを生成する時に利用する.
くどいが,ポリシリコンの上にシリサイドを作った物がポリサイド,ポリシリコンと拡散両方に自己整合的にシリサイドを作ったものをサリサイドと呼べばよさそうである.
・シリサイド
シリコンと金属の化合物をシリサイド(Silicide.より正確にはメタルシリサイド)と呼ぶ.コバルト(Co)やニッケル(Ni)とシリコンの化合物が微細プロセスではよく使われる.
ポリシリコンや拡散はVIAを通じて上部のメタルに接続されるが,Siでできているポリシリコンや拡散に金属のVIAを直接接続すると,接合部(ジャンクション)の仕事関数が大きく,抵抗が大きくなる.従ってシリサイド化する事で仕事関数を小さくする事で,接合抵抗を軽減できる.
多結晶シリコンよりも抵抗が低く,ポリ配線,拡散配線の抵抗を減らすことができる.メタルと比べると高温でも安定であるため,高温でアニールする必要のあるトランジスタの電極で使われる.
・ポリサイド
ポリサイドは(POLYsilicon siliCIDE)の略で,ポリシリコンゲート上に生成するシリサイドの事である.
シリサイドはポリシリコンよりも抵抗が低いのでゲート電極の抵抗を減らすことができる.
・サリサイド
サリサイドは(Self Aligned siliCIDE)の略で,自己整合で作られるシリサイドの事を,特にサリサイドと呼ぶ.ポリシリコンだけでなくトランジスタの拡散領域にシリサイドを生成する時に利用する.
くどいが,ポリシリコンの上にシリサイドを作った物がポリサイド,ポリシリコンと拡散両方に自己整合的にシリサイドを作ったものをサリサイドと呼べばよさそうである.
2013年1月23日水曜日
HSPICEで動作点解析(.op)の結果をファイルに出力する(.option opfile)
HSPICEの動作点解析(.op)の結果はデフォルトでは標準出力に出力されるが,これをファイルに出力するにはopfileオプションを使う.
.option opfile = value
valueは0から2の数字で,それぞれ
0: 標準出力に出力(default)
1: 単一のdesign.dp#に出力
2: 個別のdesign.dp#に出力
valueは0から2だよと言っておきながら,マニュアルには以下のようにある..option opfile=3にするとどうなるのだろう...
なお,HSPICEの動作点解析.opはデフォルトでは時間0sにおけるDC特性を解析するのだが,時間を指定する事で任意の時刻の動作点解析ができるようだ(実際には未確認).
.op format time format time [interpolation]
たとえば5ns地点の動作点解析は以下のようにすればよいらしい.
.op 5ns
.option opfile = value
valueは0から2の数字で,それぞれ
0: 標準出力に出力(default)
1: 単一のdesign.dp#に出力
2: 個別のdesign.dp#に出力
valueは0から2だよと言っておきながら,マニュアルには以下のようにある..option opfile=3にするとどうなるのだろう...
When used with multiprocessing (-mp) .OPTION OPFILE=1 or 2 is valid (3 is ignored).
なお,HSPICEの動作点解析.opはデフォルトでは時間0sにおけるDC特性を解析するのだが,時間を指定する事で任意の時刻の動作点解析ができるようだ(実際には未確認).
.op format time format time [interpolation]
たとえば5ns地点の動作点解析は以下のようにすればよいらしい.
.op 5ns
2013年1月14日月曜日
IEEE pdfXpressの上限を超えてPDFのチェックを行う方法
IEEE Xplorerにアーカイブされる論文は,IEEE pdfXpressをつかってIEEEの形式に合致しているか調査する必要がある(必要のない緩い学会もある).pdfXpressは同一タイトルに対して3回しかチェックすることができない.FAQをみてみると
The maximum number of PDF Checks has been reached. Can I have more?If you have not reached the maximum number of Source File Conversions, you may submit your source file(s) for conversion. If that maximum is reached also, simply select "Request Manual Conversion" or "Request Technical Help". You will be contacted by a member of our experienced Technical Support staff.
PDFがだめならソースをアップロードして,それでも上限を超えたらテクニカルサポートを呼んでね!とある.これはめんどくさい.
上限以上のファイルをチェックするには,シンプルに"Create New Title"を押し,同じタイトルでもう一つのPaper IDを取得する方法がある.
図の様に,上限を超えた4つ目のバージョンをチェックできる.PDFなんて高々数MBだし,チェックにそれほど負荷がかかるとも考えられないし,無制限にチェックできればいいのにと思う.
なお,IEEE pdfXpressでは,用紙サイズのチェックはしていない模様.IEEEに投稿するときは,米国に合わせてLetterサイズで出力するように注意!
IEEEのオンラインコピーライトが取得できない時の対処法
IEEEのオンラインコピーライトトランスファー ではまったので備忘録としてメモ.
IEEE Xplorerに論文がアーカイブされる場合,著作権(コピーライト)をIEEEに譲渡する必要がある.IEEEのコピーライトフォームのデフォルトは英語だが,多言語に対応しており日本語も選択できる.
なぜ日本語ではだめなのでしょうね.
IEEE Xplorerに論文がアーカイブされる場合,著作権(コピーライト)をIEEEに譲渡する必要がある.IEEEのコピーライトフォームのデフォルトは英語だが,多言語に対応しており日本語も選択できる.
しかし,フォームを埋めていき最後に[続行(Continue)]を押しても,次のページに遷移しない(Opera 12.12).
この場合,メニュー上部に移動しEnglishを選択すると,
フォームが英語になる.
この状態で[Continue]を選択すると,最終的な著作権譲渡の誓約書が発行される.
なぜ日本語ではだめなのでしょうね.
学会によってはシンプルにPDF
やWordのテンプレートを送ってくれるところもあるのだが,わざわざめんどくさいオンラインでやる場合,覚えておくと便利かも.
2013年1月6日日曜日
【・・dynabook SS RX2のキーボードを交換する
2年前にdynabook RX2のキーボードを交換したのだが,2年間の酷使の結果キーごとに打ち心地が変わってきてしまった.どうもメンブレンが痛んできたようだ.また,中性洗剤では落ちない汚れもついてしまった.
仕方がないので,再度RX2のキーボードを交換する事にした.今回もYahoo! Auctionでキーボードを落札した.送料込みで2500円だった.
2年間使い続けたキーボード(下)と新たに落札したキーボード(上).RX2本体の両面テープに一部持って行かれてしまったが,どうもパーツ番号からして別物らしい.
なお,固定は両面テープなので,キーボードを剥がすとキーボードを固定するアルミ板がグニャグニャになる.したがって一度剥がしたキーボードは再利用できないと考えた方がよい.
キーボードを交換する場合,HDDと本体基板の間の隙間からフレキシブルケーブルを通す必要がある(写真中央の黒いフレキシブルケーブル).キーボードの固定は両面テープなので,先にフレキシブルケーブルを刺してからキーボードを貼り付けないと,貼り付けた後でフレキシブルケーブルがうまく刺さらないというオチになりかねないので注意(そして前述の通り,やり直しはきかないと考えた方がよい).
張り直した結果.見た目も綺麗になったし,小気味よい打ち心地も回復して上等である.小さくて軽くてキーボードよくてバッテリーも長持ちなので,論文書きマシンには最高である.あとはプロセッサのパワーがもう少しあればいいのだが…
仕方がないので,再度RX2のキーボードを交換する事にした.今回もYahoo! Auctionでキーボードを落札した.送料込みで2500円だった.
2年間使い続けたキーボード(上)と新たに落札したキーボード(下).写真ではわかりづらいが,微妙に色合いが違う.
2年間使い続けたキーボード(下)と新たに落札したキーボード(上).RX2本体の両面テープに一部持って行かれてしまったが,どうもパーツ番号からして別物らしい.
なお,固定は両面テープなので,キーボードを剥がすとキーボードを固定するアルミ板がグニャグニャになる.したがって一度剥がしたキーボードは再利用できないと考えた方がよい.
キーボードを交換する場合,HDDと本体基板の間の隙間からフレキシブルケーブルを通す必要がある(写真中央の黒いフレキシブルケーブル).キーボードの固定は両面テープなので,先にフレキシブルケーブルを刺してからキーボードを貼り付けないと,貼り付けた後でフレキシブルケーブルがうまく刺さらないというオチになりかねないので注意(そして前述の通り,やり直しはきかないと考えた方がよい).
張り直した結果.見た目も綺麗になったし,小気味よい打ち心地も回復して上等である.小さくて軽くてキーボードよくてバッテリーも長持ちなので,論文書きマシンには最高である.あとはプロセッサのパワーがもう少しあればいいのだが…