2015年12月16日水曜日

Transmeta の LongRun2 における「面積コストの無い基板バイアス手法」の達成方法

ちょっと気になって(今は無き) Transmeta の LongRun2 について調べた.(あまりプロセスのことはよくわかっていないので,間違っていたら指摘いただけると助かります.)


「面積コスト無く」「レイアウト再設計もなく」基板バイスを可能にするという話だったが(参考リンク,これはSpring Processor Forum 2006 での講演資料の引用と思われる),おそらく US Patent 7098512 B1 のDeep NW (DNW) を基板内にメッシュで埋め込むというやつだろうな.

https://www.google.com/patents/US7098512


図は Google Patent からの引用です.

Twin-Well だと Nwell が浮くし,Triple-Well だと Pwell が浮いてしまう.基板バイアスをかけるためには基板 TAP を打ち各基板 TAP に電源配線を引く必要があるが,これは面積コストを増大させる.DNW メッシュにすることでP基板による低抵抗な Pwell の保持と,DNW 配線による Nwell へのバイアス印加を両立する,という感じか.最終的に DNW には基板 TAP を打つ必要があるとしても, Well ほどこまめに基板 TAP を打たなくていいので面積効率も高い.マクロレベルでメッシュを追加すればよいのでレイアウト再設計も必要ないと言うことか.
Well の抵抗高いから頑張って金属(もしくはシリサイド)で配線しているわけで,プロセスが許すなら賢い技だと思った (許される製造プロセスを見たことがないので,工場にお願いするのだろう). PMOS しかバイアスかけられないのが少し悲しいのと,Well Proximity Effect でトランジスタの閾値電圧が場所ごとにばらつきそうだけれど,大丈夫なのだろうか.


2015年11月27日金曜日

AnalogArtist(IC61)でLayout Editorのメニューが消える

久々にIC61を起動すると,以下の図のようにメニューが消えてしまっていた.




調べると,環境変数$ASSURAHOMEの設定がおかしいとこのように消えるらしい.

$ASSURAHOMEがIC51用のAssuraのインストールディレクトリを指していたので,IC61用のAssuraのインストールディレクトリを指定したところ,以下の図のように直った.


IC51とIC61で異なるAssuraを指定しなくてはいけない所が,Cadenceの駄目なところだと思う.せめてAssuraIC61とか名前を変えてほしい.

参考:Layout missing menu bar items - Cadence Technology Forums - Cadence Community

2015年11月10日火曜日

ERROR: Current execution environment is VCO=aoi. Software tree is for environment VCO=ixl

Calibre を実行するときに,
ERROR: Current execution environment is VCO=aoi. Software tree is for environment VCO=ixl
というエラーが出て起動しなかった.

調べた結果以下の事がわかった.
Calibre on Linuxにはいくつかバージョンがある.
・ixl:RedHat Enterprise Linux 5 (64bit)に最適化されたパッケージ
・aoi:RedHat Enterprise Linux 6 (64bit)以降に最適化されたパッケージ
・Calibre 32bitはもうサポートしません

そのため,Calibre実行時にCalibreは実行マシンのOSを調べ,自身がixlのパッケージなのに実行環境がRHEL6以降だと検知すると,動作を止めるらしい.

RHEL6でもixlを使いたい場合,環境変数を設定すればよいらしい.

例1:% export USE_CALIBRE_VCO=ixl

例2:% export  CALIBRE_2013_4_ALLOW_IXL_ON_RHEL6=101010

参考:Calibre Platform Support Overview and Roadmap - Mentor Graphics

2015年11月4日水曜日

AnalogArtistでshared libraryが無いと言われた

Cadence AnalogArtist(Virtuoso)でshared libraryのlibgdbm.so.2が無いと言われてSpiceINが出来なくてはまったのでメモ.OSはCentOS 6.4,ArtistはIC6.1.5です.

Virtuosoのインストールディレクトリでlibgdbm.so.2を調べると,私の環境では4つ表示された.
% ls -l /usr/CAD/cds/IC610/tools.lnx86/**/libgdbm*
lrwxrwxrwx. 1 363 bin 23 11月  6 13:42 2013 /usr/CAD/cds/IC610/tools.lnx86/lib/64bit/SuSE/SLES11/libgdbm.so.2 -> /usr/lib64/libgdbm.so.3
lrwxrwxrwx. 1 363 bin 23 11月  6 13:42 2013 /usr/CAD/cds/IC610/tools.lnx86/lib/64bit/SuSE/libgdbm.so.2 -> /usr/lib64/libgdbm.so.3
lrwxrwxrwx. 1 363 bin 21 11月  6 13:42 2013 /usr/CAD/cds/IC610/tools.lnx86/lib/SuSE/SLES11/libgdbm.so.2 -> /usr/lib/libgdbm.so.3
lrwxrwxrwx. 1 363 bin 21 11月  6 13:42 2013 /usr/CAD/cds/IC610/tools.lnx86/lib/SuSE/libgdbm.so.2 -> /usr/lib/libgdbm.so.3

試しに/usr/lib64/libgdbm.so.3を見てみると,実体は/usr/lib64/libgdbm.so.2.0.0だった.
% ls -l  /usr/lib64/libgdbm*
lrwxrwxrwx. 1 root root 16 11月  4 14:24 2015 libgdbm.so.3 -> libgdbm.so.2.0.0

libgdbm.so.2は,gdbmに格納されているらしい.

% sudo yum provides "*/libgdbm.so.2"
Loading mirror speeds from cached hostfile 
 * base: www.ftp.ne.jp 
 * extras: www.ftp.ne.jp 
 * updates: www.ftp.ne.jp 
gdbm-1.8.0-38.el6.x86_64 : A GNU set of database routines which use extensible hashing 
Repo        : base 
Matched from: 
Filename    : /usr/lib64/libgdbm.so.2 
 
gdbm-1.8.0-38.el6.i686 : A GNU set of database routines which use extensible hashing 
Repo        : base 
Matched from: 
Filename    : /usr/lib/libgdbm.so.2 
 
gdbm-1.8.0-38.el6.x86_64 : A GNU set of database routines which use extensible hashing 
Repo        : installed 
Matched from: 
Filename    : /usr/lib64/libgdbm.so.2 
 
gdbm-1.8.0-38.el6.i686 : A GNU set of database routines which use extensible hashing 
Repo        : installed 
Matched from: 
Filename    : /usr/lib/libgdbm.so.2 

gdbmの32bitと64bitをインストールして解決.
%sudo yum install gdbm-1.8.0-38.el6.i686l gdbm-1.8.0-38.el6.x86_64

ハマったのは,OSが64bitなのにVirtuosoが32bit版だったので,64bitのgdbmを入れるだけではダメだったという事か.

2015年11月2日月曜日

学歴ロンダリングのススメ

学歴ロンダリングした当事者として,学歴ロンダリングの利点欠点をまとめてみる.あくまで私見です.組織を代表する意見では決してないのでその点ご注意ください.

利点
・周りの人たちは優秀な人が多いので刺激になる(研究室による)
・資金的/資源的に余裕の多い研究室が多い(研究室による)
・博士前期/後期課程進学者が多い(研究室による)
・CAD等各種ツールの使い方のノウハウがたまっている事が多い(研究室による)
・教員に対する学生の数が少ないのできめ細かい指導を期待できる(教員による)
・大きい大学ほど小講座制で教授/准教授/助教x2がフルにそろっている事もある.研究員/博士学生が多いので,研究推進時に大いに頼れる(研究室による)
・(某大学の場合)大学院の授業は完全に軽視されているので,研究に集中できる
・異なる2つの大学/研究科の比較が出来るのは興味深く楽しい
・卒論/修論と異なる指導教員がつくので,指導教員の指導方針の比較ができるのも興味深い


欠点
・基礎学力に差があるので,慣れるまで大変
・基礎学力には,彼我の能力差もあるが,講義内容が大学間で異なる事も大きい
・上記の問題によって,内部生は難なく通る入試を通るのが大変
・進学先の先生方の研究内容や教育スタイルを一から勉強しなくてはならない
・周りに優秀な人が少ない可能性がある(大学が有名でも学生が優秀とは限らない)
・成績によっては意図した研究室に配属されない可能性がある(知り合いに複数該当)
・タイミングによっては意図した研究ができない可能性がある(該当した)
・転出元から裏切り者扱いされる可能性もある・・・(該当した)
・転出元の教員に「なんであの子がxx大にいけたんだろ?」とか言われる(知り合いが言われていた)
・教員に対する学生の数が少ないので,マンパワーの観点では大変
・進学先の大学がすばらしいとは限らない点は注意.大きな大学ほど事務方が大きな力を持っていて,何かと研究遂行の邪魔になることも多い(高価な機材を壊されたこともある.補償無し)
・研究科が内部進学研究室と外部進学&留学生研究室の2つにくっきり分かれる大学もある…(欠点と言っていいのかよくわからないが)

上記の利点/欠点とは私が経験した/身近で聞いたものであり,探せばもっと他にも例があるかもしれない.

従って,2つの方針が立てられる.
(1) 単に学歴さえロンダリングできればよい場合:
なるべく容易に入学が可能で,容易に卒業が出来る大学/研究室を探すこと大切.大学によって試験の内容は異なるし,外部の評価と試験の難易度は一致しない.同じ大学であっても研究科によって試験の難易度は異なる.外部の評価の高い大学であっても,ろくに来なくても卒業させてくれる研究室もある(らしいので,大学院進学時に試験が簡単で研究も頑張らなくてよい研究室のある研究科へ転学科する人も複数いた).単に学歴がほしいのであれば忙しくて大変な研究室は志望しない方が良いだろう.

(2) ガンガン研究したい場合:
大型の外部資金を取っている/取ってきた研究室を探すといい.
外部資金をがんがん取っていると言うことは優秀な研究者である証であり,資金を言い訳に研究が出来ないと言うことが無くなる.Googleに教員の名前を入れて評判を調べよう.研究室のHP,KAKENのサイトに教員の名前を入れて競争的資金の取得状況を調べてみてもいいだろう.ただし,今の所属大学では本当に希望する研究が出来ないのか,きちんと調べた方がいい.

有名国立大学への進学だけでなく,私立大からお金のかからない地元の国立大の有名研究室に進学を希望するというのもアリだとは思う.

Custom Waveviewで波形表示利用する色のセットを定義する

タイトル通り,Custom Waveviewで波形表示利用する色のセットを定義する方法を紹介する.
[Config]→[Preferences...]からPreference Settingsダイヤログを起動する.
[Colors]タブを選択し,"Use User-Defined Waveform Colors"を選択する.
次に,下のパネルの"Add a New Color"を任意の回数押すと,色の選択肢(デフォルトで黒)が増える.任意のセットを選択した状態で,横のカラーパネルを押すと,その色が登録される.不要なセットは,"Delete Selected Colors"を押すことで削除できる.


[Apply-Save]を選択すると,設定ファイルの保存先を聞いてくるので,[User Home Directory]を選択する.すると~/.spxrcに設定ファイルが作成される.

デフォルトで黒背景の割に濃い青色など見づらい色を使うので,暖色系の色を登録しておくと見やすくていい

同タブの[Use Thick Lines as Default Waveform Line Thickness]にチェックを入れると波形が太くなるのでこちらもおすすめ.

2015年10月13日火曜日

Calibre Inreractiveでセルを見つけられない(セル名のエスケープ)

Calibre InteractiveでDRC/LVSをする時に,

calibre specified primary cell is not located within the input layout database

というエラーが出てLayout exportができなかった.
この時の原因は,セル名にハイフン"-"を使っており,それをAnalogArtistが内部でエスケープしており,そのためCalibreがセルを見つけられなかったためであった.
セル名に使う文字は,[a-z][A-Z][0-9]とアンダーバー"_"ぐらいにとどめた方が良さそうだ.

2015年9月10日木曜日

Cadence AnalogArtistをCUIで起動する(同時にSKILLコマンドを実行させる)

AnalogArtistをCUIで実行するには,-nographオプションをつける.

IC51:
icfb -nograph

IC61:
virtuoso -nograph

起動時に特定のSKILLコマンドを実行させたい場合は,-replayオプションをつける.

IC51:
icfb -replay [SKILL]

IC61:
virtuoso -replay [SKILL]

2015年9月8日火曜日

Calibre DRCで違反のないチェックを表示しない

Calibre DRCで違反のないチェックをresultに表示させないようにするにはDRC KEEP EMPTY構文を使う.

・表示させたい場合
DRC KEEP EMPTY YES

・表示させたくない場合
DRC KEEP EMPTY NO

デフォルトがYESであり,DRC KEEP EMPTY構文が存在しない場合はYESと解釈される.Calibre RVEを用いてDRCの結果を見る際に,大量のPassアイコンで埋め尽くされてしまうので,NOにするとシンプルでよい感じ.

Calibre DRCで特定のチェックを選択する,選択しない

CalibreでDRCを行う時,設計階層によっては必ず発生するエラーが存在する.あるエラーは必ずでるから無視させたい,逆にあるチェックを追加したい場合は,DRC SELECT/UNSELECT CHECK構文を使う.

・チェックを追加したい場合
DRC SELECT CHECK [rule1] [rule2] ...

・チェックを削除したい場合
DRC UNSELECT CHECK [rule1] [rule2] ...

例えばセルレベル設計でのラッチアップ違反などは,この命令をルールファイルに追加する事で,特定の違反を無視することができるようになる.

2015年8月13日木曜日

Officeでファイルを保存する度に「アップデートできませんでした」と表示される(Officeアップロードセンターを無効化する)


Officeでファイルを保存する度に,当方の環境だと図のように毎回「アップデートできませんでした」と表示される.ユーザーは私一人で並列して作業しているわけではないのに競合しているようだ.いったん[コンピュータ側のバージョンを保持]と押せば次回のOffice再起動までは表示されないが,毎回押さねばならないのでイライラしていた.

これは,OfficeアップロードセンターとSkydriveの競合が原因の様で,Officeアップロードセンターを止めたらこのようなエラーはでなくなった.

止め方は以下のサイトの通り(Office2013の場合).
[Office2013] アップロードセンターを無効にする - あみだがみねのもろもろ備忘録

VMware-toolsの手動インストール

VMware上のCent OSのアップデートをしたらカーネルもアップデートされ,結果VMware Toolsが動かなくなった(ホストゲスト間の共有フォルダ機能が動かなくなった).
再度VMware toolsをインストールしようとGUIで操作したが,以前のように自動でマウントされない.

こういう場合,VMware toolsを手動でダウンロードし,ISOを抽出して,VMwareでマウントすればよい.

やり方は以下のサイトのそのままである.
[VMware] VMware Tools (9.2.2) をダウンロードする

Linux用の.tar.gzとWindows用の.exeがあるが,.tar.gzはこれからISOを抽出するやり方がわからなかったので,.exeを落としてWindows上でISOの抽出を行った方がよいと思う.

中のISOをマウントして,ISO中の.tar.gzを展開すると実行ファイルであるperlスクリプトが存在するので,このスクリプトを実行すると既存のVMware toolsのアンインストールと再インストールが実行される.

共有フォルダ機能も復活して一安心.

2015年7月19日日曜日

VMware Playerのディスク容量を削減する(disk shrink)

VMware Player上のLinuxの不要なファイルを削除して仮想ディスクのファイルサイズを減らすためには,仮想マシン上のファイルの削除だけでなく,Vmware-toolboxによるディスクサイズの圧縮機能を使う必要がある.
VMware toolboxはインストールしていなければインストールする.

vmware-toolboxを利用し,ディスクの圧縮を行う.

vmware-toolbox disk shrink [mount point]

圧縮前は24GB程度あった仮想ディスクファイルが12GBまで圧縮された.ほぼ仮想マシンでのディスク容量と等価である.ただし圧縮にはそれなりに時間が(10数分程度)必要でその間はアクセスもできないので,こまめに実行するのはちょっとつらいかもしれない.

2015年7月17日金曜日

コマンドプロンプトでWindowsの電源プランを変更する(powercfg)

コマンドプロンプトでWindowsの電源プランを変更するには,powercfgコマンドを利用する.
まず,コマンドプロンプトを起動し,powercfgを実行して各電源プランのGUIDを得る.

powercfg -l

任意の電源プランを選択するためには,以下の様に実行する.

powercfg -setactive GUID

XP以前はもっとたくさん電源プランを作成できたが,Windows 7/8はなぜか電源プランが同時に2つしか表示できない.外人さんがWindows 7/8の現状に対してMicrosoftのフォーラムでFワード連発して怒っていたけれど,以下の様に電源プランの数だけバッチファイルを作成すればある程度等価なことが実現できる.




2015年7月7日火曜日

コマンドプロンプトでWindowsのディスプレイ設定を変える

ノートパソコンを仕事場でデュアルディスプレイにしている場合,出先から帰った時に自動的に元の設定に戻らないことがある.最近のWindowsは賢いから自動的に戻ってくれる様だが,たまに接続する順番によっては元に戻らない.たとえばノートパソコンを閉じたまま外部ディスプレイにつなげると,外部ディスプレイ表示のみという情報に変わってしまい,パソコンを開いてもデュアルディスプレイにならなくなってしまう.

コマンドラインでWindowsのディスプレイの設定を変えるために,Display Changerを使う(私的利用ならフリー).
http://12noon.com/?page_id=80

インストーラでインストールし,以下のコマンドを実行してディスプレイの情報を得る.なお32bit版はdccmd.exeで,64bit版はdc64cmd.exeである.インストール先は"C:\Program Files (x86)\12noon Display Changer"であった

>dc64cmd.exe -listmonitors
Monitor: 汎用 PnP モニター
Device: \\.\DISPLAY1
Adapter: Intel(R) HD Graphics 5500
(1920 x 1080 x 32 bpp) 60Hz up, attached, primary (0,0)

Monitor:
Device: \\.\DISPLAY2
Adapter: Intel(R) HD Graphics 5500
(1920 x 1080 x 32 bpp) 60Hz up

Monitor:
Device: \\.\DISPLAY3
Adapter: Intel(R) HD Graphics 5500
(1920 x 1080 x 32 bpp) 60Hz up

\\.\DISPLAY1がノートPCのディスプレイで,他が外部ディスプレイ.ノートPCの真上にFullHDのモニタを設置するには,以下のコマンドを実行する.

>dc64cmd.exe -monitor="\\.\DISPLAY2" -secondary -width=1920 -height=1080 -ty=-1080 -lx=0

-widthと-heightはDISPLAY2の解像度,-tyと-lxは原点(左上)のプライマリモニタに対する相対位置.上側/左側に持って行く場合は負になる.

確認すると,ちゃんと\\.\DISPLAY2が\\.\DISPLAY1の上部に設置された.

>dc64cmd.exe -listmonitors
Monitor: 汎用 PnP モニター
Device: \\.\DISPLAY1
Adapter: Intel(R) HD Graphics 5500
(1920 x 1080 x 32 bpp) 60Hz up, attached, primary (0,0)

Monitor: 汎用 PnP モニター
Device: \\.\DISPLAY2
Adapter: Intel(R) HD Graphics 5500
(1920 x 1080 x 32 bpp) 60Hz up, attached (0,-1080)

ディスプレイを外すには以下のコマンドを実行すればよい(今時のWindowsならブチッと抜いてもいいだろう).

>dc64cmd.exe -monitor="\\.\DISPLAY2" -detach

あとはよく使うコマンドをバッチファイルに書いてショートカットに設定すればOK

2015年6月23日火曜日

AnalogArtist(Virtuoso)のCellViewをSKILLコマンドに変換する(dbWriteSkill)

AnalogArtistで作成したCellView(Layout ViewやSchematic)をSKILLコマンドの変換するには,dbWriteSkillコマンドを使う.

dbWriteSkill(cellViewId filename mode release)

たとえばLIBライブラリのInverterのレイアウトをSKILLコマンドに変換するには,以下の様に実行すればよい.

cellViewID = dbOpenCellViewByType("LIB" "INV_X1" "layout")
dbWriteSkill(cellViewID "INV_X1.il" "w" "4.4")

復元するには,出力したSKILLコマンドをCIWで読めばよい.

load "./INV_X1.il"

ひな形レイアウトをVirtuoso Layout Editingで作成し,SKILLを使ってテキスト形式でダンプ,パラメータをちょこちょこ変えたレイアウトをスクリプトで作って再度ロードするという用途に使える.また,LayoutやSchematicだけでなく,PCellも出力できるようだ.
# ただし,レイヤーがLayerNameではなくてLayer#なので可読性がちょっと低いのが悲しい

なお,出力するSKILLファイルにライブラリ名を入れたくない場合はdbWriteSkillWithLibを使うらしいが,今一使い方がよくわからない.

2015年5月28日木曜日

AnalogArtist(Virtuoso)でコマンドラインからCDL outする.

AnalogArtistのcdsもしくはOAからコマンドラインでCDLを出力させるためには,付属のsiを使う(Simulation Interfaceのことか?).
まず,si.envファイルを以下の様に作成する.このファイルは,GUIでCDL outを行った場合に
自動生成されるそうなので,一回GUIで実行すれば後は使い回す事が出来る.

simLibName = "LIBNAME"
simCellName = "CELLNAME"
simViewName = "schematic"
simSimulator = "auCdl"
simNotIncremental = 't
simReNetlistAll = nil
simViewList = '("auCdl" "auSchematic" "schematic" )
simStopList = '("auCdl")
hnlNetlistFileName = "CDLFILE.cdl"
resistorModel = ""
shortRES = 2000.0
preserveRES = 'nil
checkRESVAL = 'nil
checkRESSIZE = 'nil
preserveCAP = 'nil
checkCAPVAL = 'nil
checkCAPAREA = 'nil
preserveDIO = 'nil
checkDIOAREA = 'nil
checkDIOPERI = 'nil
checkCAPPERI = 'nil
simPrintInhConnAttributes = 'nil
checkScale = "nil"
checkLDD = 'nil
pinMAP = 'nil
shrinkFACTOR = 0.0
globalPowerSig = ""
globalGndSig = ""
displayPININFO = 't
preserveALL = 't
setEQUIV = ""
incFILE = ""
auCdlDefNetlistProc = "ansCdlSubcktCall"


次にsiを以下のコマンドをTerminalに打ち込む事で起動する.

% si -batch -command netlist

siがVirtuoso Framework Licenseを取得し,データベースからCDLを抽出し記載したファイルに書き出す.

なおうちの環境では
*Error* eval: undefined function - _oiSetMasterFieldsEnabled
とエラーが出るが,意図したファイルが出力されている様だ.

2015年5月25日月曜日

TgifからInkscapeに乗り換えるためのメモ

これまで論文の図はTgifを使って描いていたが,出力品質が悪く,特に領域を模様で埋めたりすると変なモアレができる.

そのためInkscape(0.47)に乗り換えたのだが,InkscapeはInkscapeで使いにくいので試行錯誤した結果をメモ.

○ オブジェクトを拡大/縮小すると線幅が変わるのを止める
Inkscapeの設定(Shift-Ctrl-P)の[変形]→[ストローク幅を拡大縮小する]のチェックを外す.

○ 矢印の色を線の色と合わせる
[エクステンション]→[パスの変形]→[マーカーの色をストロークに合わせる]を選択すればよいらしい
# しかし,私の環境ではlibxml2がうまく入らないのでうまく有効化できない…

○ 描画領域の大きいEPSが正確に出力されず切れる
エクスポート領域を描画全体に変えても,キャンパスサイズをA0に変えても切れる.
→EPSではなくPDFにする.PDFをLatexに埋め込むために,extractbbを使って描画領域を取得し,includegraphicsに入力する(本当は.xbbができれば自動取得されるはずなのだが).

以下,Latexに入れるための工夫

(Tgif時代からだが)Latexのfigure環境をはき出すスクリプトを以下の様に作成

use Getopt::Long qw(:config posix_default no_ignore_case gnu_compat);
my $FILE="NULL";
my $SCALE="1";
my $LOC="h";
my $BBFILE="NULL";

GetOptions(
        "file=s"  => \$FILE,
        "scale=i" => \$SCALE,
        "loc=s"   => \$LOC,
        "bbfile=s"  => \$BBFILE
);

open(BBIN, "$BBFILE") || die "cannot open xbb file: $BBFILE, die";
$BBINA =  ;
chomp($BBINA);

$TITLE = $FILE;
$TITLE =~ s/.pdf//g;
$CAPTION = $TITLE;
$CAPTION =~ s/\_/\\\_/g;

print <<EOF;
\\begin{figure}[$LOC]
  \\begin{center}
   \\includegraphics[bb=${BBINA}, scale=${SCALE}]{$FILE}
   \\caption{$CAPTION}
   \\label{fig:$TITLE}
  \\end{center}
\\end{figure}
EOF

本スクリプトを動かすためのMakefile
%.pdf: %.svg
   inkscape $*.svg --export-pdf=$*.pdf --export-area-drawing

%.pdf.figtex: %.pdf
        extractbb -O $*.pdf | grep "HiRes" | cut -d ':' -f 2 > tmp.xbb
        perl ~/programs/figure_template_pdf.pl \
        --file=$*.pdf --scale=1 --loc=h --bbfile=tmp.xbb >> main.tex 
        rm tmp.xbb

2015年3月5日木曜日

とある博士学生の助教公募戦線記録

これまでに出した公募の結果が一段落したのでまとめてみる.

スペック
・大手私立大卒→国立大大学院
・男
・集積回路系.自称CAD屋
・応募時の業績:論文誌2本,国際会議7本,その他
・学振はとれず
・特に大学にこだわりはなく,J-RECINで自分に合いそうな大学を探して応募した.


2013/10 私立大学(母校だった)
・任期付き助教(5年,再任無し)
・研究分野の指定無し
・応募後,6週間ほどでお祈りメール
・同時期に,研究分野を特に指定する公募(任期5年)と,特任助教の公募(任期1年/5年まで延長)もしていた.

2013/10 国立大
・任期付き助教(5年,再任あり)
・研究室の指定あり
・研究内容は自分の研究テーマとマッチせず
・応募後,6週間ほどでお祈りメール

このあたりで焦りだし,積極的に応募するように.

2014/1 私立大
・指導教員からのツテで話が来た
・任期付き助教(5年,再任無し)
・研究分野の指定あり
・研究内容は自分の研究テーマとは少し異なるが,拡張は可能と判断
・受け入れ先とはある程度順調に話は進んでいたが,卒業が無理と判断,辞退した

2014/4 国立大
・任期付き助教(5年,再任あり)
・研究室の指定あり.受け入れ先と相談した結果,自分の研究テーマを拡張すれば良いと判断
・受け入れ先研究室の情報が不十分で,モチベーションが上がらず結局応募せず.

2014/5 国立大
・任期付き助教(5年,再任あり)
・研究分野の指定あり.受け入れ先と相談した結果,すりあわせればokと判断し応募
・応募後,半年(!)かかってようやくお祈りメール

2014/5 国立大
・任期付き助教(5年,再任あり)
・研究分野の指定なし.受け入れ先にもあらかじめ連絡.
・応募後,2週間ほどで面接.
・面接後2週間ほどで内定通知
・同時期に,研究分野指定の任期付き助教の公募もしていた.

もう一つ指導教員のツテで話が来た公募もあったが,こちらは時期があまりにも先だったのでお断りしてしまった.


感想
・任期付き(5年)が多い.私立大は再任不可も多い.文科省がテニュアトラック制度を推進している事と,後者は正規雇用をいやがるためか.指導教員は驚いていたが,任期付きというのは時代の流れだろう.

・研究テーマを指定された場合において,意外と自分の研究テーマ(集積回路)と合う公募は見つけられなかった.多かれ少なかれ研究内容の軌道修正をしないと受け入れ先の希望に添わない.
# 一方で本年度は集積回路系の助教公募が多い気がする…

・私はラボの博士学生としては平均より下だと思っているが,そのためか助教の公募はだいぶ苦戦した.学振DC1/2取れるくらいでないと苦しいだろう.

・私の場合,いわゆる「教授のツテ」というのはそこまで多くはなかったと思う.

・応募時にあらかじめ先方に連絡した方が良いと思った.多くの方に親切にしていただいた(助教だからかも).

・女性だと有利にすると明言する公募は結構ある.女性しか採用しない物もある.

2019/4/6 追記:助教→助教の公募戦線に参戦しました.
とある助教の助教公募戦線記録

2015年2月25日水曜日

gnuplotでパースできない行を飛ばす

CADやプログラムの出力結果をgnuplotでプロットする事はよくある.gnuplotはデータ部がcsvやタブ区切り,空白区切りであればパースできるが,出力結果にCADのバージョンやIndexなどがgnuplotのコメント形式と異なる形式で出力されるとgnuplotはファイルの読み込みをやめてしまう.
たとえばHSPICEであれば,ファイル先頭にHSPICEのバージョンやタイトル,Measureの名前が書かれているのでそのままではgnuplotでは読み込めない.

これを回避するために,パースできない行を見つけたときに読み込みを停止するのではなく,処理を続行させるように変更してみる.

src/plot2d.cを開き,get_data関数内のswitch(j)文中のcase 0を探す.
(4.6.0 patch 0だと669行目)

case 0: /* not blank line, but df_readline couldn't parse it */
{
df_close();
int_error(current_plot->token,
"Bad data on line %d", df_line_number);
}
break;

以下の様にコメントアウトする.


case 0: /* not blank line, but df_readline couldn't parse it */
{
//df_close();
//int_error(current_plot->token,
//"Bad data on line %d", df_line_number);
}
break;



あとは./configure,make,make installすればよい.モチベーションはkamae君と同じ.彼の方が正攻法だと思うが,こちらはgunplotに違反する構文がある行が不明でも対応できる.

IEEEtran.bstで著者名が線になるのを防ぐ


IEEEtran.bstにおいて参考文献リストにおいて同じ著者が連続すると,著者名が"------"と表示されてしまう.不可解な仕様だ.
調べると,著者名が連続する場合にダッシュにしない方法があるらしい.

(1) 論文データベース(.bib)にIEEEtran.bstの制御情報(IEEEtranBSTCTRL)を加える.
連続する著者をダッシュにしないのであれば,CTLdash_repeated_namesをnoにすればよい.

@IEEEtranBSTCTL{IEEEexample:BSTcontrol,
CTLdash_repeated_names = "no"
}

(2) 定義した制御情報を有効にする
定義した制御情報を有効にするコマンドをTEXファイルの本文に追加する(\begin{document}の直後がいいらしい).

\bstctlcite{IEEEexample:BSTcontrol}

(3) bstctlcite コマンドを定義する.
IEEEのクラスファイル(IEEEtrantools.styパッケージなど)を使っていれば必要ない.
その他のクラスファイルを使っている場合,bstctlciteコマンドを定義する.プリアンプル(\begin{document}の前)に書けばよい.
bstctlciteコマンドのソースコードはIEEEtran.bstの冒頭にコメントとして書かれている.

\makeatletter
\def\bstctlcite{\@ifnextchar[{\@bstctlcite}{\@bstctlcite[@auxout]}}
\def\@bstctlcite[#1]#2{\@bsphack
\@for\@citeb:=#2\do{%
\edef\@citeb{\expandafter\@firstofone\@citeb}%
\if@filesw\immediate\write\csname #1\endcsname{\string\citation{\@citeb}}\fi}%
\@esphack}
\makeatother

定義後,コンパイルすると連続する著者もちゃんと表記されるようになった.



参考:
Is it normal for BibTeX to replace similar author names with “------”?
How to Use the IEEEtran BIBTEX Style: IEEEtran.bstのマニュアル(PDF).丁寧に説明されています.