CQ出版、「電子回路シミュレータ SIMetrix/SIMPLIS[スペシャルパック]黒田徹著を参考に、
付録のCDROMをインストールして、CMOSトランジスタの特性を理解できるようにしましょう!
そしたら、MOSのBSIM3/4パラメータがMOS特性にとって、どんな役割をしているのかを、実験で遊んで学ぶことができます。詳細は以下のプログラムをダウンロードして試してみてね。
Javaでコードを書いています。オブジェクト指向は目下学習中のため、本コードはベタで書いたので容量が大きめで申し訳ないですが・・・libフォルダのパスが消えていたので加えました!![](https://blogimg.goo.ne.jp/img_emoji/dogeza.gif)
BSIMモデルパラメータ自動編集ツール自家製お試し版のダウンロード
モデルは、例として0.35umのモデル例
を、txtファイルとして保存して使えばいいでしょう。
このツールを使えば、マニュアルのスクロールバー操作でパラメータの値が自動的に書き換わり、fit_param.txtが生成されます。
その際、これをlibフォルダと同じディレクトリに保管要です。
libフォルダの中身
この中身を"lib"という名のフォルダ(他の名前は無効)を作って入れて、下記のように階層化してくださいね!
↓詳細↓
Model / JavaApplication20.jar
Model / lib / swing-layout-1.0.jar
Model / nmos035.txt
という様に、例えばModelというフォルダをつくり、その中で
JavaApplication20.jarをダブルクリックすると起動して、その中のtxtファイルを書き換えられます。
書き換えて生成されるのは、fit_param.txt (mod.txtは使わないけど途中に必要な中間ファイルです)
SIMetrixでデータと比較しながらこのfit_param.txtを
.Lib 'fit_param.txt' 指定することで、どんどんパラメータ値を最適化できます。![](https://blogimg.goo.ne.jp/img_emoji/hiyob_hat.gif)
そのときはModel フォルダではなく、SIMetrixの.sxschファイルがあるフォルダにすべてを置きます。
フィットできたら、最後にSaveできます。
コーナーバラツキモデルに関して
上記の例などを見れば、コーナーのパラメータがどのように変化するか知ることができます。
Javaのインストールはこちら!
J2SEのダウンロードのURL
私のプログラムの利用には、J2SEのダウンロードが必要です。 NetBeans5.0のUpdateのダウンロードへ進めば、Windows版のリストが見当たるバスです・・・
バグあったりしたら、コメントいただけばできるだけ早くフィードバックいたします、是非御連絡待ってます。![](https://blogimg.goo.ne.jp/img_emoji/hiyo_please.gif)
ご参考まで、お恥ずかしいベタなコードを置きます。
パラメータ自動編集GUIのJavaコード
こちらは、.exeを自動でたたき、あるグラフツールを起動して、フィッティングの計算まで実行させるもの:かえってグラフも見にくく改良修正はストップ。
今度はグラフ化もJavaでやった方がいいでしょう・・・
パラメータフィッティングGUIのJavaコード
各自もっと良いものを目指しましょう!
MITのインターネットレクチャー:アルゴリズム入門これらを勉強し、もっと効率的なプログラミングをめざそう!
P.S.でも目的は、CMOS回路の設計時の、単純作業の自家製効率化です・・・
使い方をビジュアルに説明すると下記の様です。
まず、下記のように、ファイルとフォルダを配置します。
![](http://www16.ocn.ne.jp/~halu-web/mod0.jpg)
そして、.jarアプリをダブルクリックすると、
![](http://www16.ocn.ne.jp/~halu-web/mod1.jpg)
このGUI画面がでます。そこで、.txtの前のブランク内に拡張子なしのオリジナルのパラメータファイル名を書き込みます。(今の場合ファイルは mod_orig_n1.txt が編集前のオリジナル)そして、右のSETボタンを押すと・・・
![](http://www16.ocn.ne.jp/~halu-web/mod2.jpg)
のように、デフォルトの値が各々表示されますね。
今回は、K1をデフォルトのままにしたいとすると、このパラメータのスライダーの右の□をチェックします。続いて、Vth0をまず好きな値に設定したいので、スライダーをマウスで引っ張って設定します。欲しい辺りに持っていってクリックをマウスボタンを離す・・・すると下のように、自動編集しつつ、その編集内容の表示がNowの下に出ます!
![](http://www16.ocn.ne.jp/~halu-web/mod3.jpg)
さて、同じフォルダに生成した、fit_param.txtと、オリジナルを開いて比較してみましょう。
![](http://www16.ocn.ne.jp/~halu-web/mod4.jpg)
たしかに、編集されています。Simulatorソフトで.Libリンクするモデルファイルをこのfit_param.txtにしておくと、連続で編集しながら、シミュレーションを実行し、パラメータによる特性の変化を追えます。
最終的にファイルを別名で保存したい時は、SAVEを押すと、下のようにポップアップが出るので、ファイル名をつけてSaveして下さい。
![](http://www16.ocn.ne.jp/~halu-web/mod5.jpg)
社内の後輩が苦労しているのを見て、一度、シミュレーターも自動実行し、波形を波形表示ソフトで自動出力するGUIも提供してみましたが、結局リンクするファイルだけを編集し、SIMetrixを使ってどんどん表示して、比較するのがもっとも楽ということでこうなってます。彼は、社内の自動フィッターツールで3年ほど経験を積んでいるので、必要に応じ、マニュアルでパラメータをフィットすることができるようになっています。一般の学生達は、あくまでも学習目的として利用しましょう!物を作るにあたっては、しっかりした指導の下パラメータを変更してください。
付録のCDROMをインストールして、CMOSトランジスタの特性を理解できるようにしましょう!
そしたら、MOSのBSIM3/4パラメータがMOS特性にとって、どんな役割をしているのかを、実験で遊んで学ぶことができます。詳細は以下のプログラムをダウンロードして試してみてね。
![](https://blogimg.goo.ne.jp/img_emoji/good.gif)
![](https://blogimg.goo.ne.jp/img_emoji/dogeza.gif)
BSIMモデルパラメータ自動編集ツール自家製お試し版のダウンロード
モデルは、例として0.35umのモデル例
を、txtファイルとして保存して使えばいいでしょう。
このツールを使えば、マニュアルのスクロールバー操作でパラメータの値が自動的に書き換わり、fit_param.txtが生成されます。
その際、これをlibフォルダと同じディレクトリに保管要です。
libフォルダの中身
この中身を"lib"という名のフォルダ(他の名前は無効)を作って入れて、下記のように階層化してくださいね!
↓詳細↓
Model / JavaApplication20.jar
Model / lib / swing-layout-1.0.jar
Model / nmos035.txt
という様に、例えばModelというフォルダをつくり、その中で
JavaApplication20.jarをダブルクリックすると起動して、その中のtxtファイルを書き換えられます。
書き換えて生成されるのは、fit_param.txt (mod.txtは使わないけど途中に必要な中間ファイルです)
SIMetrixでデータと比較しながらこのfit_param.txtを
.Lib 'fit_param.txt' 指定することで、どんどんパラメータ値を最適化できます。
![](https://blogimg.goo.ne.jp/img_emoji/hiyob_hat.gif)
そのときはModel フォルダではなく、SIMetrixの.sxschファイルがあるフォルダにすべてを置きます。
フィットできたら、最後にSaveできます。
コーナーバラツキモデルに関して
上記の例などを見れば、コーナーのパラメータがどのように変化するか知ることができます。
Javaのインストールはこちら!
J2SEのダウンロードのURL
私のプログラムの利用には、J2SEのダウンロードが必要です。 NetBeans5.0のUpdateのダウンロードへ進めば、Windows版のリストが見当たるバスです・・・
バグあったりしたら、コメントいただけばできるだけ早くフィードバックいたします、是非御連絡待ってます。
![](https://blogimg.goo.ne.jp/img_emoji/hiyo_please.gif)
ご参考まで、お恥ずかしいベタなコードを置きます。
パラメータ自動編集GUIのJavaコード
こちらは、.exeを自動でたたき、あるグラフツールを起動して、フィッティングの計算まで実行させるもの:かえってグラフも見にくく改良修正はストップ。
今度はグラフ化もJavaでやった方がいいでしょう・・・
パラメータフィッティングGUIのJavaコード
各自もっと良いものを目指しましょう!
MITのインターネットレクチャー:アルゴリズム入門これらを勉強し、もっと効率的なプログラミングをめざそう!
P.S.でも目的は、CMOS回路の設計時の、単純作業の自家製効率化です・・・
使い方をビジュアルに説明すると下記の様です。
まず、下記のように、ファイルとフォルダを配置します。
![](http://www16.ocn.ne.jp/~halu-web/mod0.jpg)
そして、.jarアプリをダブルクリックすると、
![](http://www16.ocn.ne.jp/~halu-web/mod1.jpg)
このGUI画面がでます。そこで、.txtの前のブランク内に拡張子なしのオリジナルのパラメータファイル名を書き込みます。(今の場合ファイルは mod_orig_n1.txt が編集前のオリジナル)そして、右のSETボタンを押すと・・・
![](http://www16.ocn.ne.jp/~halu-web/mod2.jpg)
のように、デフォルトの値が各々表示されますね。
今回は、K1をデフォルトのままにしたいとすると、このパラメータのスライダーの右の□をチェックします。続いて、Vth0をまず好きな値に設定したいので、スライダーをマウスで引っ張って設定します。欲しい辺りに持っていってクリックをマウスボタンを離す・・・すると下のように、自動編集しつつ、その編集内容の表示がNowの下に出ます!
![](http://www16.ocn.ne.jp/~halu-web/mod3.jpg)
さて、同じフォルダに生成した、fit_param.txtと、オリジナルを開いて比較してみましょう。
![](http://www16.ocn.ne.jp/~halu-web/mod4.jpg)
たしかに、編集されています。Simulatorソフトで.Libリンクするモデルファイルをこのfit_param.txtにしておくと、連続で編集しながら、シミュレーションを実行し、パラメータによる特性の変化を追えます。
最終的にファイルを別名で保存したい時は、SAVEを押すと、下のようにポップアップが出るので、ファイル名をつけてSaveして下さい。
![](http://www16.ocn.ne.jp/~halu-web/mod5.jpg)
社内の後輩が苦労しているのを見て、一度、シミュレーターも自動実行し、波形を波形表示ソフトで自動出力するGUIも提供してみましたが、結局リンクするファイルだけを編集し、SIMetrixを使ってどんどん表示して、比較するのがもっとも楽ということでこうなってます。彼は、社内の自動フィッターツールで3年ほど経験を積んでいるので、必要に応じ、マニュアルでパラメータをフィットすることができるようになっています。一般の学生達は、あくまでも学習目的として利用しましょう!物を作るにあたっては、しっかりした指導の下パラメータを変更してください。