Transistor level【NandGame編】
目次
はじめに
いつもブログをご覧いただきありがとうございます。
FIRE生活中のIPUSIRONです😀
Transistor level
ここからOptional Levelsに入ります。
すでにNand、Invert、Norの回路を実装しましたが、ここではCMOS型のトランジスターを利用して回路を実装します。
トランジスターとは
トランジスターは、増幅作用(信号を増幅する)やスイッチング作用(スイッチのように回路をON/OFFする)を持つ部品です。
トランジスターは20世紀最大の発明ともいわれています。トランジスターが発明される前は、真空管やリレーが使われていました。トランジスターの発明により、電子回路の集積化が始まりました。マイクロプロセッサーに内蔵されたトランジスターは、人の目には見えないほどの大きさになっています。
バイポーラトランジスター
トランジスターには様々な種類がありますが、単にトランジスターというときはバイポーラトランジスタを指します。これは異なる特性を持つ2種類の半導体(N形半導体とP形半導体)を組み合わせて作られています。そして、その組み合わせにより、NPN型トランジスターとPNP型トランジスターに大別されます。
トランジスターの3つの電極
トランジスタには3つの電極があり、それぞれエミッタ(E)、コレクタ(C)、ベース(B)と呼ばれています。
エミッタ(E) | 電子あるいは正孔(プラスの電荷)を放出する電極。 |
コレクタ(C) | エミッタから放出された電荷を集める電極。 |
ベース(B) | エミッタとコレクタ間を流れる電流の量を制御するために使う。 |
FET
MOSFETは導体と絶縁物質のいくつかの層をサンドイッチにした構造を持つ電子回路です。
バイポーラトランジスターはベースに電流を流すことでスイッチングを実現していました。一方、FET(Field-Effect Transistor:電界効果型トランジスター)という電子部品を使うと、ゲートに電圧をかけることでスイッチングを実現できます。FETはバイポーラトランジスターより大電流を制御するのに向いています。
FETの分類
FETは、ゲートの構造から次のように大別されます。
- 接合型FET(Junction EFT)…JFETと呼ばれる。ゲートに半導体が接合している。
- ショットキー型
- MOS型…MOSFET(Metal Oxide Field-Effect Transistor:モスフェット)と呼ばれる。ゲートに酸化シリコンで被膜された絶縁体が接合している。
MOSFET
MOSFETは高速化と集積化が飛躍的に進歩したため、現在では広く使われています。本書でもMOSFETについてとりあげます。
次の画像は実際のMOSFETの外観です。左から2SK4150(250[V]、0.4[A])、BS170(60[V]、0.5[A])、EKI04047(40[V]、80[A])です。
大電流が流せるように、放熱用のヒートシンクを取り付けるための穴を備えているものがあります(上図の一番右)。
3本の端子があり、それぞれゲート(G)、ドレイン(D)、ソース(S)に割り当てられています。どの端子がどれに対応するかはデータシートを確認する必要があります。
MOSFETの構造
バイポーラトランジスターはN形半導体とP形半導体の三層構造でした。MOSFETもN形半導体とP形半導体で構成されていますが、図のような構造になります。N形半導体がベースであればNチャネルMOSFET、P形半導体であればPチャネルMOSFETといいます。
NチャネルMOSFET | nMOSトランジスター | DとSがN形半導体 |
PチャネルMOSFET | pMOSトランジスター | DとSがP形半導体 ※NチャネルMOSFETの逆バージョン。 |
他に、丸で囲む外囲器を省略したバージョン、矢印ではなくバブル(丸)で表現したバージョンもあります。
ベースとなるN形半導体(あるいはP形半導体)の両端に、P形半導体(あるいはN形半導体)が埋め込まれています。ベースの中央部の上には絶縁体の薄い膜があり、その上に金属の膜が乗っています。ここからゲートという端子が出ています。また、両端の半導体からはソースとドレインという端子が出ています。
回路図におけるMOSFETの記号は、矢印の方向によってNチャネルMOSFETなのかPチャネルMOSFETなのかを識別できます。
MOSFETを用いたスイッチ回路
ここではNチャネルMOSFETを例にして解説します。3つのパターンに分けて、MOSFETの内部でどうなっているのかを見ていきます。
[1]ゲートに何も接続されていないとき(オープンのとき)
⇒PN接合のダイオードと同じであり、N形半導体からP形半導体へ電流は流れない。
⇒負荷に電流が流れない。
[2]ゲートがソースと同電位(ここではGND)であるとき
⇒[1]の場合と同じ理由により、負荷に電流が流れない。
[3]ゲートに正の電圧を加えたとき
⇒金属は導体、P形半導体は半導体である。この2つが絶縁体を挟んでおり、これは一種のコンデンサと同等の構造といえる。
⇒ゲートに電圧がかかると、半導体に電気は流れないが、金属に正の電荷が貯まる。
⇒ソースおよびドレインのNチャネル半導体の電子がゲートに引き寄せられ、両者間のPチャネル半導体に入る。
⇒絶縁体の境界にあるP形半導体が、N形半導体に変化する。このP形からN形に変化した部分をNチャネルという[1]「P形からN形に反転したこと」と「Nチャネルが非常に薄いこと」から、反転層と呼ばれることもあります。。
⇒Nチャネルは一種の橋のような役目を果たし、ドレインからソースまでにN形半導体になる。
⇒電子はN形半導体を移動できるので、ドレインとソースに接続した回路に電流が流れる。
⇒負荷に電流が流れる。
NチャネルMOSFETはゲートに電圧を加えるとドレイン・ソース間が短絡して電流が流れる
以上により、ゲートに電圧を加えるかどうかで電流の流れをON・OFFできます。これはスイッチ回路そのものといえます。NチャネルMOSFETはゲートにHighを入力したときに、電流が流れます。このような方式をアクティブH駆動といいます。
逆にLowを入力した際に電流が流れる方式をアクティブL駆動といいます。
NチャネルMOSFETとPチャネルMOSFETのスイッチ作用
ここではNチャネルMOSFETの構造に注目して解説しましたが、PチャネルMOSFETも同様に考えることができます。ゲートに負の電圧を加えるかどうかで、電流の流れを制御できるのです。
NチャネルMOSFETにおいてドレイン・ソース間に電流が流すために必要なゲート電圧をしきい電圧(スレッショルド電圧)Vtと呼ばれます。典型的な値は0.3~0.7[V]です。
MOSFETのスイッチモデル
NandGameでの解説を理解しやすいようにするため、ここからはnMOS・pMOSという表現に切り替えます。
※解説は『ディジタル回路設計とコンピュータアーキテクチャ 第2版』(翔泳社刊)を参考にしました。
MOSFETは完璧なスイッチではない
nMOSトランジスターはゲートがVDDであるとき、ドレイン端子からの出力は0~VDD-Vtの範囲になります。つまり、nMOSトランジスターは0の出力は得意ですが、1の出力は苦手であるということです。
同様にして考えると、pMOSトランジスターは1の出力は得意ですが、0の出力は苦手です。
それぞれの得意なことを組み合わせることで、論理ゲートを作れるのです。
NandGameでは「CMOS NANDゲート⇒CMOS NOTゲート」という流れで学習します。CMOS NOTゲートの方が基本となるので、先にこちらの挙動を理解すべきです。
Nand (CMOS)レベル
Nand (CMOS)レベルのゴールは、COMS型トランジスターを使ってNANDゲート(CMOS NANDゲート)を組むことです。
※リレーを使ったNANDゲートについては、HardwareのNandレベルで解きました。
NandGameで使えるコンポーネント
nmos
nMOSトランジスターに相当するコンポーネントです。
入力端子はonとi、出力端子はoになります。
NandGameでは電子的なスイッチとして活用するので、onによって、iとoの接続状態を制御するとイメージすれば十分です。
[1]onが1のとき⇒iとo間が接続
[2]onが0のとき⇒iとo間が接続断
※左側の入力端子が"on"となっているのでH(1)のときに、スイッチが入って、i(=input)端子とo(=output)端子間のワイヤーが内部的につながると覚えましょう。
pmos
pMOSトランジスターに相当するコンポーネントです。
入力端子はoffとi、出力端子はoになります。
[1]offが1のとき⇒iとo間が接続
[2]offが0のとき⇒iとo間が接続断
junction
ワイヤーの連結点です。
NandGameの仕様上、各コンポーネントの出力を直接接続できません。このjunctionコンポーネントを使うことで間接的に接続できます。
(2入力の)CMOS NANDゲートの回路
pMOSトランジスターP1とP2は並列に接続されています。
一方のpMOSトランジスターがONなら、出力YはVDDに引き上げられます。
プルアップ回路網とプルダウン回路網に抽象化するとわかりやすいです。
pMOSプルアップ回路網の内部では、pMOSトランジスターが並列に接続されています。対して、nMOSプルダウン回路網の内部では、nMOSトランジスターが直列に接続されています。
上図の右をCMOS NOTゲートの回路図と見比べてください。すると、回路網を一種の電子的なスイッチと見れば、「pMOSプルアップ回路網がSW=ON」かつ「nMOSプルアップ回路網がSW=OFF」であれば、出力は1になります。
今回のCMOS NANDゲートの回路図によると、pMOSプルアップ回路網にpMOSトランジスターが並列に並んでいました。つまり、これらのトランジスターの1つでもONなら、pMOSプルアップ回路網はSW=1になります。
nMOSプルダウン回路網にはnMOSトランジスターが直列に並んでいます。すべてのトランジスターがONなら、nMOSプルダウン回路網はSW=1になります。
以上を真理値表にまとめると次が得られます。
A | B | プルアップ回路網 | プルダウン回路網 | 出力Y |
---|---|---|---|---|
0 | 0 | ON | OFF | 1 |
0 | 1 | ON | OFF | 1 |
1 | 0 | ON | OFF | 1 |
1 | 1 | OFF | ON | 0 |
※太字のところが出力Yが1になる条件です。
プルアップ回路網とプルダウン回路網はお互いON・OFFが違っています。
・プルアップ回路網とプルダウン回路網の両方が同時にONになると、VDDとGNDが短絡してショートする。
・両方がOFFだと、出力端子はVDDとGNDのどちらにも接続していない状態(Z∞)になる。
Nand (CMOS)レベルを解く
よく見かける回路は、4個のCMOS(2個のpMOS、2個のnMOS)を使って構成されています。
これをNandGameで実装すると次のようになります。
よく見かける回路はショートしませんが、ここで示した回路ではショートしています。ところが、当該レベルについてはクリアとなります。
執筆時点(2023年12月)、この辺りの仕様について微妙なので、将来的に修正される可能性があります。
junctionを無理矢理利用したバージョン【別解】
NandGame用に最適化したCMOS NANDゲートの回路【別解2】
3個のnmos、1個のpmosを使います。この回路だとショートのワーニングは表示されません。
Invert (CMOS)レベル
Invert (CMOS)レベルのゴールは、COMS型トランジスターを使ってNOTゲート(CMOS NOTゲート)を組むことです。
CMOS NOTゲートの回路
nMOSトランジスターN1は、GNDと出力Yの間に存在します。対して、pMOSトランジスターP1は、VDDと出力Yの間に存在します。両方のトランジスターN1とP1のゲートは、入力Aによって制御されます。
[1]A=0のとき
⇒「N1はOFF」かつ「P1はON」
⇒YはVDDと接続され、GNDと接続されていない。
⇒出力Yは論理レベルの1に引き上げられる。
※pMOSトランジスター(P1)は1を出力するのが得意であり、それをうまく活用しています。
[2]A=1のとき
⇒「N1はON」かつ「P1はOFF」
⇒YはGNDと接続され、VDDと接続されていない。
⇒出力Yは論理レベルの0に引き下げられる。
※nMOSトランジスター(N1)は0を出力するのが得意であり、それをうまく活用しています。
Invert (CMOS)レベルを解く
Nor (CMOS)レベル
Nor (CMOS)レベルのゴールは、COMS型トランジスターを使ってNORゲート(CMOS NORゲート)を組むことです。
Nor (CMOS)レベルを解く
References
↑1 | 「P形からN形に反転したこと」と「Nチャネルが非常に薄いこと」から、反転層と呼ばれることもあります。 |
---|