• 締切済み

MOS構造体のおけるキャリア濃度の位置依存性について

MOS構造体のおけるキャリア濃度の位置依存性について簡潔に説明できる方いらっしゃいますか? ネットなどで検索してみましたが参考になるようなHPがなく困っています。よろしくお願いします。

noname#61460
noname#61460

みんなの回答

  • sanori
  • ベストアンサー率48% (5664/11798)
回答No.2

こちらの図を参照します。 http://ja.wikipedia.org/wiki/MOSFET 最初に断らせていただきますが、 私の知識は10年ぐらい前のものでして、当時のLSIに関するものです。 最近のLSIのことは分かりませんし、他のタイプのMOSFET(パワーMOSなど)のことも分かりません。 以下はご参考ということで。 n+("+"の記号は"濃い"という意味です)においては、 10^15/cm^2 オーダーのイオン注入(リンやヒ素)をして、 0.1μm (=10^-5 cm)オーダーの厚さの層にしていたので、 n型のキャリアの濃度、すなわち多数キャリアである電子の濃度は、 (10^15/cm^2)/10^-5cm = 10^19/cm^3 程度。 また、電子とホールの濃度積が10^20/(cm^-3)^2 であることから、 少数キャリアであるホールの濃度は、 10^20 ÷ 10^19 = 1/cm^3 程度。 p型基板(pタブとかpウェルとも言う)は、 10^-13/cm^2 オーダーのイオン注入(ボロン)をして 1μm(=10^-4cm)オーダーの厚さの層にしていたので p型のキャリアの濃度、すなわち多数キャリアであるホールの濃度は、 (10^13/cm^2)/10^-4cm = 10^17/cm^3 程度。 また、電子とホールの濃度積が10^20/(cm^-3)^2 であることから、 少数キャリアである電子の濃度は、 10^20 ÷ 10^17 = 10^3/cm^3 程度。 イオン注入後の工程での熱処理が弱いほど、n+とp型基板との境目の濃度勾配は急峻になり、 熱処理が強いほど、ぼけた濃度分布(濃度勾配が小)になります。 以上は、NMOSの話なので、PMOSの場合は、nとpとを逆にして考えてください。 下記のリンクは、ぱっと見、難しいと思いますが、濃度の位置依存性をシミュレーションした例です。 文中、「LDD」(Lightly Doped Drain)というのは、 n+とp型基板との横方向濃度勾配が急峻だと、トランジスタの特性(耐圧みたいなもの)が悪くなるので、横方向の濃度勾配を意図的にぼかした技術です。 http://jaco.ec.t.kanazawa-u.ac.jp/kitagawa/edu/vlsi/sup/ldd.html

  • sanori
  • ベストアンサー率48% (5664/11798)
回答No.1

MOS構造体という言葉は聞いたことがありません。 MOSトランジスタ(MOSFET)やMOSダイオードのことでしょうか。

noname#61460
質問者

お礼

大変助かりました。ありがとうございます。

noname#61460
質問者

補足

MOSトランジスタのことです。 申し訳ありません。

関連するQ&A

  • MOS構造の反転状態について、と半導体について。

     MOS構造の反転状態を決めるゲート電圧は基盤の不純物濃度には依存しないのでしょうか?  半導体に光を当てると電流が流れるようになるが、これは光の波長には関係しないのでしょうか?

  • 構造体とクラスの違い

    お世話になります。 先日、C(C++もかな?)のベテランのプログラマの方が「構造体とクラスはまったく違うものだ」ときっぱり言い切っていらっしゃいました。私は、構造体にメソッドが加わったものがクラスだ、くらいな認識で、まったく違うものというよりはかなり近しい概念だと思っていたので少々驚いた次第です。 疑問が残りましたので、インターネットでいろいろ検索してみたのですが、おしなべて「構造体とクラスには共通点が多い」と説明されており、どうしても「まったく違うもの」と解釈できる文献を見つけることができませんでした。 果たして「構造体とクラスはまったく違うもの」なのでしょうか?

  • 構造体の静的な初期化

    構造体の静的な初期化で、初期化が書かれていないメンバーは、 どうなるのでしょうか。。? たとえば・・・ // 構造体の宣言 strcut MY_STRUCT {    int data1 ;    int data2 ;    int data3 ;    int data4 ; } ; // 変数宣言&初期化 static strcut MY_STRUCT st = {    .data1 = 100,    .data3 = 300 } ; ネットで調べると、 初期化で指示されていないメンバーは0に初期化される、 という記述も一つだけ見つけたのですが・・・これはC言語(C99)の仕様でしょうか? それともコンパイラ依存の仕様でしょうか?

  • 構造体へのポインタについて

    初心者です。 C入門書の著者のサポートページには正誤表とダウンロードしかないためこちらで質問させていただきます。 下記のコードの下から二行目の構造体へのポインタ (Car *) について、中学生に説明するように基本的な考え方、目的、書式、参考URLなどを教えて下さい。 ポインタについては、該当の章を読み直し基本事項については理解しておりますが、突然あるページから(Void *)や(Char *)など括弧で閉じるものが説明なしに出てきてちょっと混乱してます。(汗 どうぞ宜しくお願い致します。 #include<stdio.h> /* 構造体型struct Carの宣言 */ typedef struct Car{ int num; double gas; }Car; int main(void) { printf("int型のサイズは%dバイトです。¥n", sizeof(int)); printf("double型サイズは%dバイトです。¥n", sizeof(double)); printf("構造体structCar型のサイズは%dバイトです。¥n", sizeof(Car)); printf("構造体struct Car型へのポインタのサイズは%dバイトです。¥n", sizeof(Car *)); return 0; }

  • 動的に作成した構造体配列の中に、さらに動的に構造体配列を作るには?

    はじめまして。 この度、ちょっとした計算プログラムを作ることになったのですが、 タイトルにもありますように、 『動的に作成した構造体配列の中に、さらに動的に構造体配列を作る』 方法がわからずに困っています。 実際には下記のようにプログラムしたいのですが... ------------------------------------------------- 'a'の構造体の中に作られる'b'の配列数は、下記のように 'a'の配列の番号により違い、また'a'の配列数も最初の段階では未定です。 構造体'a'←配列数未定 構造体'b'←配列数未定 a[0]-----b[0]  |    b[1]  |    b[2]  | a[1]-----b[0]  |    b[1]  | a[2]-----b[0]  |    b[1]  .    b[2]  .    b[3]  . ------------------------------------------------- new演算子で'a'の配列は作れたのですが、その中の'b'の数の分だけ 配列を動的に作成する方法がわかりませんでした。 最初は'b'の配列を多めに取って計算すればよいと思っていましたが、 計算過程で'b'の配列数が10000を越えてしまう場合があり、 また'b'の構造体のサイズも大きめなので、断念せざるをえませんでした。 どなたか、このように配列を作成する方法を知っている方がいましたら、 是非教えていただきたいです。 下手な説明ですいません。

  • 構造体の削除について

    C言語にて 構造体をポインタで繋いだ住所録等のサンプルプログラムは、本などで良く見かけますが、データの入力や検索のコードはあるのですが、”データ削除”のコードは載っていません。 データ削除は少し難しくなるのでしょうか? データ削除が載っているサイトや本をご存知の方がみえましたら紹介ください。 よろしくお願いいたします。

  • 小胞体の構造と役割

    小胞体の構造とその役割を説明せよ。 この問題を考えています。 小胞体とはリボソームが結合している粗面小胞体と、リボソームが結合していない滑面小胞体からなる。粗面小胞体に結合しているリボソームでタンパク質を合成したり、小胞体に含まれる酵素が様々な代謝を行ったり、合成したタンパク質を輸送小胞によってゴルジ体を経由して、細胞小器官や細胞膜へと輸送している。他には、小胞体はカルシウム貯蔵器官であったり、滑面小胞体で脂質を合成したりしている。 これでいいのでしょうか?間違いの指摘等、よろしくお願いします。 また、この問題を考えるのに参考になるところがあれば教えてください。

  • 構造体についての問題なんですが

    文字列入力関数と(StrInput)いうものをつくっているんですが、作成にあたっては以下の定数・構造体・関数を用います。 #define BUF_LEN (79) struct InputData { char Data; struct InputData *pPrev; struct InputData *pNext; }; struct InputBuffer { struct InputData *pHead; struct Inputdata *pTail; struct Inputdata idList[BUF_LEN]; }; char *StrInput(char *pdefStr, int nlen) { static char cStr[BUF_LEN + 1]; struct InputBuffer ibBuffer; : : : return (cStr); } というふうになるんですが、そこで使う関数を9つ作らなければいけないので作りました。 DataInit関数・・・構造体の初期化 charInp関数・・・1文字入力関数 ListSearch関数・・・リストの空き要素を検索 DispBuffer関数・・・InputBuffer再表示 Delete関数・・・DELキーによる削除 Insert関数・・・INSキーによる挿入 BackSpace関数・・・BSキーによる後退 LeftKey関数・・・カーソルの位置移動 RightKey関数・・・カーソルの位置移動 これを使って作りたいんですが、引数とかが与えられていないので、全く作り方がわかりません。どうか上から4つくらいの関数がどうなるのか、教えて頂けないでしょうか!お願いします。

  • 構造体の定義の仕方

    こんにちわ。 初心者質問で申し訳ないのですが。 VB.net2005で質問があります。どなたか お判りになる方いらっしゃいましたら 教えてもらえないでしょうか? 内容としてはタイトルにある構造体なのですが どのように書けばよいのか分からず、ご質問させてもらってます。 最終的には St(0).name = "名前A" St(0).dat(0) = "XXXXX" St(0).dat(1) = "YYYYY" St(1).name = "名前B" St(1).dat(0) = "AAAAA" St(1).dat(1) = "BBBBB" のようなデータ代入をループでまわしたいのです。 色々探してみたのですが構造体を配列にし、その中にさらに 配列にするサンプルが見当たらなく… 分かる方いらっしゃいましたら、ご教授ください。

  • HP-UXでの構造体サイズの制限について

    現在HP-UX上でC言語を使ったプログラムを組んでいます。 UNIXではプログラムで使用する、1構造体(変数)のサイズ制限等はあるのでしょうか? 制限があればどこに定義されているのでしょうか? 漠然とした質問ですが、回答の方お願いいたします。