2014年12月15日月曜日

IC CompilerでLeakage Power Aware Filler Insertionを行う

某会議で,Fillerの消費エネルギーが大きいと問題になっている.IC CompilerでFillerを自動で挿入する際に,指定した消費エネルギーの範囲内でFillerの種類を選択させる事が可能である.

insert_stdcell_filler -leakage_power value

valueはFillが消費するリーク電力で,単位はmWである.

2014年12月13日土曜日

difference between HSpiceD, HSpiceS, Spectre, SpectreS?

Analog Design Environment(ADE)を利用している際に,
シミュレータの選択肢が複数あるが,これらの違いがわからないので調べた.

まず,Spiceの種類として大きくCadenceのSpecterとSynopsysのHspiceの2種類がある.
そして,HspiceDとHspiceS(Hspice DirectとHspice Socket),SpecterとSpecterS(Specter DirectとSpecter Socket)が存在する.

過去の経緯として,これらのシミュレータは柔軟に変数化可能な構文をサポートしていなかったため,ADEとシミュレータの間にcdsSpiceというマクロ言語をサポートするツールを挟むことで,ADEでの柔軟なシミュレーションを可能にした.一方でcdsSpiceを挟んでしまうため,ユーザーはシミュレータのサポートするすべての構文を利用できない欠点があった.

その後,各シミュレータが実行可能なネットリストを出力するダイレクトモードをADEはサポートし,その結果より効率よいシミュレーションが可能になったそうだ.



内容は,英語の文献を要約しただけである.
Cadence Technology Forums: difference between HSpice,HSpiceS,Spectre,SpectreS?

2014年11月20日木曜日

HSPICEの乱数生成器を指定する(.option randgen)

HSPICEで乱数を生成する場合において,乱数生成器を指定する事ができる.

.option randgen=value

valueはそれぞれ

0: デフォルト. マニュアルには"traditional random generator"を使うとある.これが何なのかは調べてもわからなかったが,古典的擬似乱数生成法のどれかだろうか.
1: キャリー付き乗算(Multiply-with-Carry)を使う.
moa: 1と同じ

より品質の良い乱数が必要であれば,randgen=1を指定すると良いだろう.

広く商用で利用され,それなりに高精度な解析に使われるのでてっきりメルセンヌツイスタでも使っているのかと思っていた.がっかり.

2014年11月7日金曜日

Rの標準出力への出力をファイルに出力する

最近Rを使っているが,出力の仕方がよくわからない.
あるWikiにはteeを使ってログを書き出すよう指定しているので,面倒なのでファイル名を指定してログファイルを書くようfunctionを書いた.

function R-log () {
        local R_log_name
        if [ $# -eq 0 ]
        then
                R_log_name="R.log"
        else
                R_log_name=$1
        fi
        R | tee $R_log_name
}

shell> R-log "file"

で,Rの出力をteeを使って"file"に書き出す.引数を指定しなければ"R.log"に出力する.


Rは終了時にログを取るか聞いてくるが,この機能もいらない.
そこで問答無用で終了させる関数をブログを参考にして.Rprofileに書き込んだ.
R を終了させる最短コードがおもしろい

Q <- 1="" b="">
class(Q) <- b="" quit="">
print.quit <- b="" function="" x="">
    q("no")
}

これでだいぶ便利になった.
# 調べたらもっとスマートな方法がきちんと用意されている気もする...

2014年10月9日木曜日

Keysight U2723Aの出力コネクタの型番

Keysight U2723Aの出力コネクタを紛失した(これだから男子は!!!!)。マニュアルに記載されていなかったので問い合わせたところ、型番はU2722-80002というらしい。



緑のコネクタと保護キャップの3セットらしい。

なお、型番の問い合わせは以下のリンクから可能。
Find-A-Part: Part Identification Assistance

2014年9月30日火曜日

SSDの速度低下レポート

KingstonのSSDnow V100 SV100S2/256GBというSSDを2年半ほど利用した.最近すごくもっさりなので,ベンチマークを取ってみた.利用しているPCは東芝の【・・dynabook SS RX2である.

使用状況
・256GB中おおむね160GBぐらいは常にデータが入っている状態
・Windows XPで1.5年弱,Windows 8に入れ替えて半年程度利用した.半年は利用せず
・おおむね平日に12時間程度連続利用
・電源投入1064回,使用時間7814時間



新品時(OSはWindows XP)




2年半経過後(OSはWindows 8)



タスクマネージャ.平均応答時間がすごいことに…

利用しているノートパソコンの都合上,新品時の測定結果はSATA 1の速度(150MB/s)に律速されているが,注目すべきは2年半経過後のシーケンシャルWriteで,22MB/sとUSBメモリ程度しか出なくなってしまった.Defraggerによる0fillは定期的に行っていたがそれでも長期間利用するとこれだけ速度が低下するようだ.

PC利用時に頻繁に固まるので,ADATA SP610 256GBに乗り換えた.KingstonのSSDは速度回復を試みてみるつもり.

# しかし,OSも違うしCristal Disk Markのバージョンも違うし,データサイズも違うので
# 全然apple to apple comparisonになってないな…

2014年9月29日月曜日

ガラケーでau Walletを利用する

今更な話題? auのポイントプログラムが2014/4/1付で変更になり,auポイントは終了しau Walletに変更になった.
ポイント情報を移行しないといけないのだがそのためにはau IDが必要で,au IDを取得するためにはauの携帯を使ってオンラインで移行する必要がある.そのためEZ-winを成約していないフィーチャーフォンでは移行が不可能らしい.(PCでもアカウントを取ることはできる.au IDの登録ページの一番下に小さく「パソコンでご利用の方(au , 固定通信サービスをご利用でない方)はこちら」とある.しかし,試してみるとau IDはとれるがこのIDではau Walletは無効化された).

この場合,0077-777に電話してオペレータにつないでもらうと,IDの発行処理をしてもらえるようだ.au Walletカードも作るのであれば,後日カードが送付され,再度0077-777に電話してオペレータにつないでもらう事でアクチべーションできるらしい.発行には7~10日かかると言われたが,9日たった今でも届いていない…

楽天LTEを解約した

楽天LTEを解約した.最近あまりにもpingが遅いためである.自宅と大学で測ったが,なんと2000ms越えである.(2年前は200msと妥当だったと記憶している).

解約はWebでできるが,Webではアカウントを作成しなくてはいけない.
ユーザー名(メールアドレス)とパスワードをもらった記憶がない私は,電話(0077-75-5470)で解約処理を行った.

・本人氏名
・住所
・登録した電話番号
の3点があれば契約情報とひも付けの後あっさり解約された.月の半ば(14日)まで使用可能で,その後SIMカードのみ指定の住所に返送すればよいらしい.

ちなみにオペレータさんは無愛想だった.忙しいのだろう.

2014年9月26日金曜日

Sony Xperia Z Ultra(C6833)のrootを取り,LMT Launcherを入れる

Xperia Z Ultraを買った.Expansysで本体34300円+消費税1600円だった.消費税は本体代x0.6x消費税で計算するらしい.電子機器なので関税はかからない.
このままでは片手では使いにくいので,LMT Launcherを入れるためにrootを取る.

(1) root取得

必要なモノ.

Java SE Development Kit

adb (Android SDK)

・rootkitXperia
xdaからダウンロードする.[ROOT TOOL] rootkitXperia - Root Many Xperia!
端末ビルド14.4.A.0.108だったが,rootkitXperia_20140719で問題なかった.

・端末のUSBデバックモードの起動

以下メモ

adbを動かすためにはAndroid SDKを入れる.Eclipseで開発するつもりはないので,VIEW ALL DOWNLOADS AND SIZESからPCに対応するSDK Tools Onlyのリンクからインストーラーをダウンロート.端末のOSに対応するものだけ入れればよいみたいだ(4.4.4と不要なAndroid LのSDK一式で7GB超もあった).ダウンロード先はドライブ直下がよいだろう.少なくとも日本語ディレクトリはやめた方が良いだろう.インストーラーはPathを追加してくれないので,手動でadbの存在するPathを指定する.

端末のUSBデバッグモードを表示させるためには,端末情報のビルド番号を7連打し開発者オプションを有効にすると内部にメニューがある.

(2) LMT Launcherを入れる
xdaからダウンロードする.v2.1が最新だった.
[APP][ROOT] LMT Launcher v2.1 for various devices


インストールして,適当に設定するとこんな感じ.画面端を触れるとパイ型のメニューを表示する事が可能になる.片手でHome,Menu,Backなどのトリガや各種ショートカットにアクセスできるので便利.


2014年8月14日木曜日

Windowsでメモリ診断を行う(メモリ診断ツール)

Windows Vista以降にはメモリの診断ツールが付属している.

[スタート]→[コントロールパネル]→[管理ツール]→[Windows メモリ診断ツール]を選択.
[今すぐ再起動して問題の有無を確認する]を選択すると,再起動してメモリーの診断が始まる.

Memtest86と比べてどの程度有効なのかはわからないが,お手軽ではある.

参考:Microsft - コンピューターのメモリの問題を診断する

Windowsのメモリ使用量警告を無効にする

Windowsは論理メモリの空き容量が20%を切ると警告を発するが,これを無効にすることができる.

[Windows+Rキー]から[ファイル名を指定して実行]を起動し,"gpedit.msc"と打ち込み,ローカルグループポリシーを起動する.
[コンピュータの構成]→[管理用テンプレート]→[システム]→[トラブルシューティングと診断]→[Windows リソース消費検出と解決]を選択.
右のタブから[シナリオ実行レベルを構成する]を起動し,[無効]を選択する.

本設定を選択することでWindowsは際限なくメモリアロケーションを許す様になるので,もちろんメモリを使い切ればWindowsはクラッシュする(した).

無効ではなく,閾値を20%以外に設定できると良いのだが…

参考:Overclock.net - Windows 8 - Can I disable the memory warning?

2014年8月5日火曜日

CalibreによるLVL(Layout vs Layout)

Calibreを利用する事で,LVLを行う事が可能である.

(1) dbdiffによるルール生成
Calibre付属のdbdiffを用いて,LVL用のルールを自動生成する.

dbdiff -system GDS -design "GdsName" "TopStructure" -refdesign "RefGdsName" "RefTopStructure" -write_xor_rules "RuleName.xor"

(2) 上記ルールを利用してCalibre DRCを実行する(図形演算する)

calibre -drc -hier -fx "RuleName.xor"

ちなみにcompare_gdsというツールが昔のCalibreには存在していたようだが,Calibre 2010.2_13.12では利用する事はできないようだ(実体は存在するが,ただCalibreの説明をするtextをはき出すだけ)

2014年7月22日火曜日

LaTeXのitemizeやenumerate等の間隔を詰める

Latexのitemizeやenumerate等のlist環境において,デフォルトでは行間が微妙に空いて格好悪い.行間を詰める手法はいくつかあるが,コマンドを再定義する手法がシンプルで一番楽だった.

プリアンブル(\documentclassと\begin{document}の間)に以下のコマンドを追加した.

\let\oldenumerate\enumerate
\renewcommand{\enumerate}{
   \oldenumerate
   \setlength{\itemsep}{1pt}
   \setlength{\parskip}{0pt}
   \setlength{\parsep}{0pt}
}
\let\olditemize\itemize
\renewcommand{\itemize}{
   \olditemize
   \setlength{\itemsep}{1pt}
   \setlength{\parskip}{0pt}
   \setlength{\parsep}{0pt}
}


参考:LaTeX List Structures - Wiki Books

2014年6月27日金曜日

公募戦士になるまえに

2ch理系全般板の公募スレの情報で,公募への応募にあたり以下の2サイトは目を通しておいた方がよいと知った.

大学教員公募についてのメモ
大学教員公募戦線仏恥義理シェキナベーベー

前者はともかく,後者は情報が散漫しているのでまとめると
・募集はどんどんアプライしろ
・募集内容に合わせて提案書は書き換えろ
・でも平行して研究して業績ないとだめだぞ

企業への就活でもそうだが応募先に応じて研究/教育に対する提案内容は変えるべきで,そんなあたりまえな事を面接の行きの電車で気がつく愚かな事をしてはいけないでしょうねorz

2014年6月11日水曜日

Excel 2013でWindowを複数に分割する(分割バー)

過去のExcelではスクロールバー近くをドラッグするとWindowを複数に分割する分割バーがあったが,Excel 2013ではその手法は廃止された.その代わり,[表示]タブから[分割]を選ぶことで,選択しているセルの右上を中心に十時の分割バーを生成することができる.不必要な分割バーはダブルクリックで除去できる.





タッチ対応を考えると過去の手法は合わないのかもしれないが,何も消さなくてもいいのに,と思う.

Microsoft - Excel 2013 で廃止、変更された機能

2014年5月21日水曜日

PDFをWordに変換する

PDFをWord(.doc/.docx)に変換する場合,Word 2013であればそのままPDFを開いて形式を変えて保存し直せばよい.テキストが多いコンテンツの場合は有効で,Latexで作ったPDFは結構素直に変換された.ただしfloatオブジェクトの表などはうまく変換できないようだ.

参考:Word で PDF コンテンツを編集する - Microsoft

2014年4月15日火曜日

Microsoft Wordでスペルチェックが動かない時の対処法

Microsoft Word 2013でスペルチェックをかけようとしたら,明らかに間違いがあっても文章校正(スペルチェック)がかからなかった.
文章校正のオプション([ファイル]→[オプション]→[文章校正])は文章校正がオンになっているのだが,実は言語ごとに文章校正をオンオフする事ができ,ここで文章校正しないことになっていた.

Word 2013の場合,[校正]→[言語]→[校正言語の設定]を選択する.


ここで[スペルチェックと文章校正を行わない]のチェックを外せばよい.

2台インストールしたWord 2013で同様の設定になっていたので,デフォルトで文章校正がかからないようになっているのかもしれない.

Solutions to Microsoft Word Spell Check Not Working
Mastering the Spell Checker

2014年3月24日月曜日

VMwareのゲストOSのIPアドレスを固定する

VMwareでゲストOSを起動しホストOSからssh等でゲストOSにアクセスしたい.DHCPでゲストOSにIPアドレスを与えていると,ゲストOSのIPアドレスが変わったときに調べるのが面倒である.

VMwareの仮想DHCPサーバーに,特定のMACアドレスを持つデバイスに特定のIPアドレスを与えるよう設定すればよいらしい.NATモードの場合,VMnet8に対してMACアドレスと固定IPを定義する.MACアドレスは,

Linuxの場合: /sbin/ifconfig
Windowsの場合: コマンドプロンプトでipconfig /all

を実行すればわかる.

IPアドレスの固定化のため,Windows8の場合以下のファイルを編集する.

C:\ProgramData\VMware\vmnetdhcp.conf

hadware ethernetにMACアドレスを,fixed-addressに
静的に割り当てたいアドレスを指定する.

host VMnet8 {
hardware ethernet 00:0C:29:09:D8:EA;
fixed-address 192.168.65.100;
}


後はゲストOSを再起動すればokである.

動機も設定も,ほとんど下記のサイトのまんまである.
VMWare Player上で動作するUbuntuのIPアドレスを固定化する

Windows8のヘルプとサポートを無効にする

F1キーを間違って押すとWindowsのヘルプとサポートが起動してしまうのを防ぎたい.WindowsXPではサービスを止めればよかったが,Windows8ではそのようなサーボスはない. helppanel.exeのファイル名を変更する事で対応する.前回の記事同様,TrastedInstallerからアクセス権限を奪い取る

コマンドプロンプトを管理者として実行し,takeownコマンドを使ってユーザーにアクセス権限を与える.

takeown /f c:\windows\helppane.exe

次に,本ファイルを[右クリック]→[プロパティ]→[セキュリティ]タブを開き,ユーザーにアクセス許可を与える.

あとは,本ファイルをリネームすればokである.




2014年3月14日金曜日

【・・dynabook RX2にWindows 8を入れる

Windows XPのサポートが切れること,今使っている【・・dynabook R632のキーボードが使いづらいので,【・・dynabook RX2にWindows 8を入れ復活させることにした.

用意するもの

(1) Windows 8
今回はWindows 8 Proを用意した.

(2) グラフィックドライバ,チップセットドライバ
私のRX2はintel GS45expressチップセットを搭載しているので,intelのサイトから,intel Mobile 4 シリーズのドライバをダウンロードした.

(3) その他ドライバおよびモジュール
東芝のサイトから,Windows 7用のドライバおよびモジュールをダウンロードした.

ドライバはおおむね提供のものが入ったが,Aplsのタッチパッドドライバの設定画面が出てこない(なぜかウィンドウが消える).
Toshiba Common Modulesがないため,東芝省電力やホットキー等は動作しないようだ.省電力機能はWindows 8を使う.キーボード右上のハードボタンは動かない.

懸念だったSlim Port Replicator IIIはWindows8でも動作しているようだ.電源ボタンも機能したし,コンピュータの装着解除メニューも出てきた.

WinSATの値は,グラフィックが2.9とお粗末な点以外は意外とまともな値だった.しかし,CPUスペックが低く,SSDがいまいちなので時折もっさりした動作になる.また,Core2Duo 1.4GHzではATOK2009は重たいので,日本語変換に引っかかりを感じるのもつらい.実用するには苦しいスペックなのかもしれない.


2014年3月11日火曜日

MacBook用トラックパッドフィルムを貼る

以前摩耗した【・・dynabook SS RX2のタッチパッドの滑り心地改善のためテフロンシートを貼ったが,微妙にひかかって使い勝手は悪かった.ヨドバシでMacBook Airのトラックパッドフィルムが安く売られていたので,これを購入し代わりに貼り付けたところ,オリジナルと同等の滑り心地に回復した.おすすめである.特にタップ等に影響もないようだ.

ワーサポート トラックパッドフィルム MacBook 13インチ

パッケージには2枚入っていた.MacBook Air 13inch用のフィルム1枚で,RX2のタッチパッド2枚分の面積があるのでお得である(4回交換できる).

なお,東芝ユーザーの聖地チチブ電気によると,タッチパッドの交換部品は1つ3150円とのこと.地方発送もしてくれるので,チチブに問い合わせるのも手である.

Windows 7/8のファイルのアクセス権限を変える(TrustedInstallerのアクセス許可)


Windows 8インストール後C:\Windows以下のゴミファイルを削除するときに,ファイルのアクセス権限がTrustedInstallerに管理され変更できないことがある.




この場合,ファイルのアクセス権限を奪取し,Administratorに付与することでアクセス可能にする.
まずコマンドプロンプトを管理者として実行し,takeownコマンドを使う.今回はオーディオファイルを消したいので

takeown /f C:\Windows\Media

を実行する.
ここでディレクトリに対して「成功」とでればokである.

次に,対象のディレクトリをExplorer上で右クリック→[プロパティ]を開き,[セキュリティ]タブに移動する.そして[編集]ボタンを押し,権限を付与したいユーザーに権限を付与すればよい.


2014年3月2日日曜日

IC CompilerにおけるFillerセルの挿入方法(-cell_with_metal/-cell_without_metal)

IC CompilerにてFillerセルを入れるとき,オプションとして-cell_with_metalと-cell_without_metalを利用するが,その違いを調べた.

-cell_without_metal:
レイアウトにFillerセルを入れるとき,Fillerセルにはメタルレイヤーが存在しないことを前提として挿入する.(メタルレイヤーが無く)既存の配線に干渉しないため,特にデザインルールチェックは行わない.

-cell_with_metal:
レイアウトにFillerセルを入れるとき,Fillerセルにはメタルレイヤーが存在することを前提として挿入する.セル内部のメタルが既存の配線に干渉する可能性があるため,挿入時にデザインルールチェックを行う.

設計中のマクロにおいてFillerを入れた瞬間あちこちショートを発生していたが,よくわからずに-cell_without_metalオプションを利用しながらメタルレイヤーありのFillerを入れていたことが原因だった.


2014年2月28日金曜日

Zrouteにおける,配線のスタセルピンへの接続方法の指定(set_route_zrt_common_option)

Zrouteでセル間の配線を行う際に,配線のスタセルへのアクセス方法を指定する事が出来る.
この時

set_route_zrt_common_option -connect_within_pins {{Metal option} {}...}

と言う形で指定する.optionの内容は以下の通り

off:
制約無し(デフォルト)

via_standard_cells_pins:
VIAを利用して接続する場合において制約があり,ビアはピンの真上かつ座布団がピンからはみ出ない必要がある(それ以外はDRC違反).ピンと同層メタルで引き出す
場合は制約無し.マクロやPADに対しては制約無し.

via_all_pins:
via_standard_cells_pinsと同様だが,スタセルだけでなくマクロやPADに対しても制約あり.

via_wire_all_pins:
VIAおよび配線を利用して接続する場合において制約あり.ビアはピンの真上かつ座布団がピンからはみ出ない必要がある(それ以外はDRC違反).ピンと同層メタルで引き出す事も禁止.

ピンの周辺に座布団を生成してDRC違反を発生させてしまうセルが存在する場合,本オプションを適用すると違反を回避することが出来るかもしれない.


2014年2月26日水曜日

SDCの単位を指定する

論理合成で利用する遅延制約(Synopsys Design Constraint: SDC)において,容量や抵抗,時間の単位を明示するために,set_unitsコマンドを利用する事が出来る.

set_units -capacitance cap_unit -resistance res_unit \
-time time_unit -voltage voltage_unit -current current_unit \
-power power_unit

単位を明示しない時は読み込むライブラリ(.db)の単位が使われるが,明示した方が安心だろう.

2014年2月20日木曜日

Silicon Smartにおける"no convergence"の一原因

Silicon Smart AceとHSPICEを使ってスタセルのキャラクタライズを行っていたところ,以下の様なエラーをHSPICEが出力しキャラクタライズがとまる事態が発生した.

Error: Simulation initialization__ACQ_1.sif for cell SN51DFFRBQXC1 failed.
Error: Error while running simulation: Error found in simulator log file (deck.lis): **error** no convergence in operating point


キャラクタライズ対象のセルのネットリストが正常に動作する場合,Silicon Smartに入力する論理情報およびキャラクタライズ条件に不備がある可能性がある.今回のセル(非同期リセット付きポジティブエッジDFF)の場合,セルのインスタンスファイル(.inst)のピンの定義および論理情報は適切であったが,オプションのユーザー定義のキャラクタライズ条件(User-specified characterization and modeling configuration options.)に不備があり,Reset時の条件が書かれていなかった.そのため変なSPICE Deckを生成したと思われる.
LPEした回路の不備かと思った.紛らわしいエラーだ.

Calibre InteractiveでRunsetを読み込むと同時に自動実行する

Calibre InteractiveによるDRC/LVS実行時に,毎回[Run DRC]や[Run LVS]を実行する事が煩わしい.オプションを設定する事で,起動時にRunset選択後自動でDRC/LVSを実行する事が可能になる.オプションはCalibre Interactiveの[Setup]→[Preferences...]から[Misc]タブを選択し,[Run Calibre when runset is opend]にチェックを入れる.

こうすると,
(1) VirtuosoのCalibreメニューからDRC/LVSを選択
(2) Runsetを選択→自動でCalibre実行

となり,[Run DRC]等を選択するステップを減らす事が出来る.

さらに[Prompt to save changes before closing runset]と[Save runset each time Calibre is run]を選択しておくと,Calibre終了時に「Runsetの内容変わっているが保存するか?」という鬱苦しいダイアログが表示されなくなるので,こちらもおすすめ.





2014年1月17日金曜日

英文における単位の前のスペースと並列表記

一般に英語はwordごとにスペースを入れる.単位は一つのwordであるからスペースを入れると教わる.

100 meter
100 m


そのため並列表記の時は以下の様になる.

A and B increase to 3 and 10 cm, respectively.

ただし例外があり,パーセント(%)はスペースを空けないと教わる.これはパーセントはそれ単体では意味をなさず,数字と合わさって意味を持つためだと教わるためである.

Proposed design flow shows the energy consumption of the circuit is reduced to 86%.
Result shows impact of C and D decrease to 70% and 80%, respectively.


しかし,友人が言うにはInternational System of Units(SI単位系)およびISO 31-0ではパーセントはあけてはいけないらしい(Wikipedia: Percent sign).

Result shows impact of C and D decrease to 70 and 80 %, respectively.

まあ,これまで論文校正で突っ込まれたこともないし,あまり気にしなくてもいいのかもしれない.


"respectively"の位置は最後尾ではなく真ん中に入れた方が読み返しを防ぐのでよいという意見もあったが,自分の論文ライブラリにはそんな表記は全く見られずすべて最後尾に入れてた.

Result shows impact of C and D, respectively, decrease to 70 and 80 %.