1. NMOS 和 PMOS
MOSFET(金屬氧化物半導體場效應晶體管)或 IGFET(絕緣柵場效應晶體管)是一種場效應晶體管,它在柵極和主體之間利用絕緣體(如 SiO2)。如今,MOSFET 是數(shù)字和模擬電路中最常見的晶體管類型。
NMOS 和PMOS 的區(qū)別體現(xiàn)在其襯底和摻雜類型的不同,NMOS 的襯底為P型半導體,摻雜兩個高濃度的 N 型半導體,并用鋁金屬引出兩個電極分別為作為源極(Source)和漏極(Drain),并在半導體表面覆蓋一層很薄的 SiO2 作為絕緣層,在源極和漏極之間的絕緣層上添加一個多晶硅(Polysilicone)作為柵極(Gate),最后在襯底引出電極,這樣就構(gòu)成了 N 溝道增強型 MOS 管。
PMOS 和 NMOS 大體相同,在襯底變成 N 型半導體,在摻雜的為 P 型半導體,其余和 NMOS 如出一轍,但是僅僅就是這兩點區(qū)別,卻使得它們的特性完全不同。
對于 NMOS 管,當對柵極進行正向偏壓(高于閾值電壓)時,在絕緣層下方就會匯集大量的電子,由于 N 型半導體多電子,就會與兩側(cè)的 N 型半導體形成 "N 溝道",進而實現(xiàn)整個回路的導通,如果施加的電壓低于閾值電壓,則無法實現(xiàn)導通。
同樣的對于 PMOS 管,由于襯底和摻雜物互換,如果施加的電壓高于閾值電壓,在絕緣層下方就會匯集大量空穴,在兩個 P 型半導體之間就會形成阻隔,無法導通。如果施加電壓低于閾值電壓,則可以導通。
NMOS 和 PMOS 在專業(yè)電路圖如下所示,NMOS 由柵極指向源極,PMOS 由源極指向柵極,并且 PMOS 在柵極處有取反標識。
NMOS 的特性: Vgs 大于一定的值就會導通,適合用于源極接地時的情況(低端驅(qū)動),只要柵極電壓達到閾值電壓就可以了。
PMOS 的特性: Vgs 小于一定的值就會導通,適合用于源極接 VCC 時的情況(高端驅(qū)動)。但是,雖然 PMOS 可以很方便地用作高端驅(qū)動,但由于導通電阻大,價格貴,替換種類少等原因,在高端驅(qū)動中,通常還是使用 NMOS。
同時衍生一個問題:PMOS 管比 NMOS 管寬的原因是什么?
因為 PMOS 管是空穴導電,NMOS 管是電子導電,而電子的遷移率約是空穴的 2 倍,因此PMOS 管要寬一些增加遷移速率。
2. MOS 管搭建邏輯門
MOS 管搭建非門
將 PMOS 與 NMOS 的漏極和柵極相連,給 PMOS 的源極接 VDD,給 NMOS 的源極接 GND,給兩個的共同柵極 In 輸入高于閾值電壓,在前面介紹過,此時 PMOS 截止,NMOS 導通,所以輸出 Out 相當于接 GND 拉低,而輸入 In 低于閾值電壓時,此時 PMOS 導通,NMOS 截止,所以輸出 Out 相當于接 VDD 拉高。
以次可以得到其真值表:
可以發(fā)現(xiàn)就是反相器,這是最經(jīng)典的 CMOS 結(jié)構(gòu),需要消耗 2 個晶體管搭建。
基于此可以進行更多擴展,衍生出各種邏輯門電路。
MOS 管搭建與非門
首先看與非門的真值表
從與非門的真值表中可以看出,只有輸入 A 和 B 都為 1 的情況下,輸出才為 0,其他情況輸出均為 1,結(jié)合到 PMOS 和 NMOS 的性質(zhì)來看,對于輸出為 0 的情況,NMOS 輸入為 1 則導通也就是接地為 0,并且需要輸入同時為 1,相當于把兩個 NMOS 串聯(lián),而對于輸出為 1 的情況,只要兩個輸入其中有一個為 0 則輸出為 1,因此相當于把兩個 PMOS 并聯(lián),于是得到了以下的邏輯門電路。搭建與非門邏輯門需要耗費 4 個晶體管。
MOS 管搭建或非門
同樣的先看或非門的真值表
有了上面與非門的鋪墊,或非門就更好理解了,由真值表可知,只有在輸入都為 0 的情況下輸出為 1,只要輸入有 1 則輸出為 0,和與非門恰好相反,需要將 PMOS 串聯(lián)接在上端,NMOS 并聯(lián)接在下端,便得到了或非門的邏輯門電路。同樣需要消耗 4 個晶體管。
MOS 管搭建與門
與門的真值表如下
與門就是在與非門的基礎(chǔ)上,在輸出端接上一個非門即可。可以發(fā)現(xiàn)搭建與門電路需要消耗 6 個晶體管,在一些文章或書籍中看到說在設計中使用與非門比與門更節(jié)省資源,其實就是這個原因。
同理或門也是一樣,這里就不一一列舉了,或門所需要的晶體管同樣為 6 個。
3. 鎖存器和觸發(fā)器
3.1 交叉耦合反相器
交叉耦合反相器主要有兩種結(jié)構(gòu):
- 順序結(jié)構(gòu)
- 對稱結(jié)構(gòu)
順序結(jié)構(gòu)
這種結(jié)構(gòu)較為簡單,當輸入為 1 時,經(jīng)過兩級反向器輸出仍為 1,輸出又作為輸入。
對稱結(jié)構(gòu)
在對稱結(jié)構(gòu)中,Q 的輸出作為 Q' 的輸入,同樣 Q' 的輸出作為 Q 的輸入。這里先假設 I1 的輸入為 1,經(jīng)過反相器輸出得到 Q 為 0,同時作為 I2 的輸入為 0, Q' 的輸出為 1。這樣輸出就能穩(wěn)定為 1。反過來假設 I1 的輸入為 0,經(jīng)過反相器輸出得到 Q 為 1,同時作為 I2 的輸入為 1, Q' 的輸出為 0。這樣輸出就能穩(wěn)定為 0。Q 和 Q' 互為對方的輸入,構(gòu)成雙穩(wěn)態(tài)結(jié)構(gòu)。
這種雙穩(wěn)態(tài)結(jié)構(gòu)雖然結(jié)構(gòu)簡單,但是缺點在于無法控制其最終的輸出,并且在結(jié)構(gòu)上是沒有輸入的。
3.2 SR 鎖存器
在上面的雙穩(wěn)態(tài)結(jié)構(gòu)中形成的是閉合的回路,無法給到輸入,這樣的結(jié)構(gòu)是無法保存數(shù)據(jù)的,因此就有了下面的結(jié)構(gòu),帶有兩輸入的 SR 鎖存器結(jié)構(gòu),主體由兩個或非門構(gòu)成,設上下的或非門為 N1、N2。
以下分情況進行討論
R = 1,S = 0
R 端輸入為 1,N1 的輸出 Q 為 0,而 Q 又作為 N2 的輸入,Q' 為 1,此時表示 R(Reset,復位)有效,Q 輸出恒為 0。
R = 0,S = 1
S 端輸入為 1,N2 的輸出 Q' 為 0,而 Q' 又作為 N1 的輸入,Q 為 1,此時表示 S(Set,置位)有效,Q 輸出恒為 1。
R = 0,S = 0
R 端和 S 端輸入為 0,假設 N1 的輸出 Q 為 0,而 Q 又作為 N2 的輸入,Q' 為 1,Q' 又作為 N1 的輸入,得到 N1 的輸出仍然為 0。假設 N1 的輸出 Q 為 1,而 Q 又作為 N2 的輸入,Q' 為 0,Q' 又作為 N1 的輸入,得到 N1 的輸出仍然為 1。此時表示 R(Reset,復位)和 S(Set,置位)都無效,輸出保持輸入不變(hold),也即是常說的產(chǎn)生 latch,把數(shù)據(jù)給鎖存起來了。
R = 1,S = 1
在這個條件下是無意義的,此時 Q 和 Q' 都為 0,顯然是不對的,不能同時復位和置位。
由此可以得到 SR 鎖存器的真值表
對比前面的雙穩(wěn)態(tài)結(jié)構(gòu),SR 鎖存器就有了鎖存數(shù)據(jù)的功能,即當 S 和 R 都為 0 時,輸出會一直保持原有的輸入值不變。
RS 鎖存器有兩個或非門組成,所以需要消耗 4×2=8 個晶體管。
3.3 D 鎖存器
RS 鎖存器雖然可以鎖存數(shù)據(jù),但是當 S 和 R 同時為 0 時結(jié)果會出錯,對使用帶來不必要的麻煩,因此需要去規(guī)避,所以有了 D 鎖存器。
D 鎖存器在 RS 鎖存器的基礎(chǔ)上增加了一些控制,E 可以看做使能信號,一般也可以為時鐘 Clk 信號,基于此對此電路結(jié)構(gòu)進行分析。
E = 0,D = 0
E = 0,則對應 R、S 輸入都為 0,參照 RS 鎖存器的真值表得到此時為 latch,可以鎖存數(shù)據(jù)。
E = 0,D = 1
E = 0 和上面的情況一樣,此時數(shù)據(jù)仍被鎖存,等效為 latch。
E = 1,D = 0
E = 1 且 D = 0,此時上面的與門由于 D 取反為 1,與門輸出為 1,相反的,下面的與門輸出為 0,對應 RS 鎖存器為 R = 1、S = 0,對應 Q 為 0。
E = 1,D = 1
E = 1 且 D = 1,此時上面的與門由于 D 取反為 0,與門輸出為 0,相反的,下面的與門輸出為 1,對應 RS 鎖存器為 R = 0、S = 1,對應 Q 為 1。
由此可以得到以下的真值表。
對上面的結(jié)果進一步分析,可以發(fā)現(xiàn) Q 值和 E 值息息相關(guān),當 E = 1 時,此時 Q 輸出為 D 的值,當 E = 0 時,此時數(shù)據(jù)被鎖存。這樣可以發(fā)現(xiàn) D 鎖存器是電平敏感的器件,控制信號 E 一般為時鐘信號,并且這個例子的 D 鎖存器為高電平敏感的。
D 鎖存器所消耗的晶體管個數(shù):
反相器(2)+ 與門(6) 2 + RS 鎖存器(8)= 22 個 *
總共需要消耗 22 個晶體管。
3.4 D 觸發(fā)器
觸發(fā)器的類型有很多,這里以 D 觸發(fā)器為例
D 觸發(fā)器其實就是將兩個 RS 鎖存器串聯(lián)起來,第一個 RS 鎖存器稱為 Master,第二個 RS 鎖存器稱為 Slave,Master 的輸出作為 Slave 的輸入,但是兩個 RS 鎖存器的時鐘使能輸入恰為相反。
再來分析一下 D 觸發(fā)器是如何運作的。
- 假設輸入為 Data1,當 Clk = 1 時,此時 Master 工作,Slave 鎖存。根據(jù) RS 鎖存器的真值表,Data1 順利從 Master 輸出。
- 當 Clk 由 1 變化到 0 時,Clk = 0,此時 Master 鎖存保持原來的數(shù)據(jù) Data1,Slave 工作,Slave RS 鎖存器將此前輸入數(shù)據(jù) Data1 輸出。
- 當 Clk 由 0 再次變化到 1 時,Clk = 1,此時 Slave 鎖存保持原來的輸出 Data1,Maste 鎖存器開始工作,接收下一次輸入數(shù)據(jù) Data2,
- 當 Clk 由 1 再次變化到 0 時,Clk = 0,此時 Master 鎖存保持原來的輸入數(shù)據(jù) Data2,Slave 鎖存器開始工作,將之前 Master 輸出的 Data2 輸出。
就這樣循環(huán)往復的運作,可以看出這個例子的 D 觸發(fā)器是下降沿有效的,也就是在時鐘下降沿到來時,將輸出數(shù)據(jù),其他時候數(shù)據(jù)保持不變。如果是上升沿有效的,只需要將反相器接在 Master 上。
搭建 D 觸發(fā)器所需要的晶體管數(shù):
D 觸發(fā)器組成 = RS 鎖存器×2 + 反相器 = 22×2 + 2 = 46 個
4. D 觸發(fā)器的建立、保持時間
在之前的學習中,對于觸發(fā)器的建立時間和保持時間的概念一般就是以下定義:
- 建立時間: 在時鐘有效沿到來之前,數(shù)據(jù)必須維持一段時間保持不變,這段時間就是建立時間 Tsetup
- 保持時間: 在時鐘有效沿到來之后,數(shù)據(jù)必須維持一段時間保持不變,這段時間就是保持時間 Thold
當時只知道觸發(fā)器需要建立時間和保持時間使得工作穩(wěn)定,但是為什么需要建立時間和保持時間呢?秉持著對知識點刨根問底的態(tài)度,這里就從更底層出發(fā),去深究觸發(fā)器為什么需要建立時間和保持時間。
下圖就是 D 觸發(fā)器的內(nèi)部結(jié)構(gòu)展開圖,其主要有兩個 RS 鎖存器組成,在前面的為 Master,后面的為 Slave,兩個鎖存器串聯(lián)共用一個時鐘信號,但是兩者極性相反,為了更符合習慣,這里的觸發(fā)器定為上升沿敏感的。
為什么需要建立時間?
在前面分析過,在數(shù)據(jù)傳輸時,Master RS 鎖存器負責將數(shù)據(jù)鎖存,Slave RS 鎖存器負責將 Master 穩(wěn)定鎖存的數(shù)據(jù)輸出。因此輸入在從 Master 輸入到 Slave 輸出是一個順序執(zhí)行的過程,也就是說要想從 Slave 順利輸出數(shù)據(jù),那么在 Master 就必須順利鎖存好數(shù)據(jù)。
那就先看 Master RS 鎖存器是如何對輸入數(shù)據(jù)進行鎖存的,數(shù)據(jù)的路徑如下圖中的紅線所示,當時鐘 Clk 為 0 時,數(shù)據(jù)從 D 輸入(假設數(shù)據(jù)輸入為 0)經(jīng)過反相器歷時 t1,數(shù)據(jù)變成 1,經(jīng)過與門歷時 t2 數(shù)據(jù)變成 1,再經(jīng)過或非門歷時 t3,由于此時數(shù)據(jù)為 1,所以經(jīng)過或非門 Q 端輸出為 0,Q 端輸出又作為下面的或非門輸出為 1,并且在此歷時 t4,最終在 Q 端輸出 0,此時數(shù)據(jù)便順利被鎖存起來。
這里忽略不計門與門之間的路徑延時時間,只對時間做個大概分析,從這里可以計算得到所歷經(jīng)的總時長為:t1+t2+2*t3+t4,這個時間就可以大致認為是觸發(fā)器的建立時間 Tsetup。當經(jīng)過 Tsetup 后數(shù)據(jù)被穩(wěn)定的鎖存,當時鐘上升沿到來時(0->1),Slave RS 鎖存器就可以接受到正確的數(shù)據(jù)并輸出,如果不滿足建立時間需求的話會發(fā)生什么情況呢?
假設此時不滿足建立時間需求,當需要被鎖存的數(shù)據(jù)在還未進入到第一個或非門時,時鐘上升沿就已經(jīng)來到,此時 Q 端輸出的數(shù)據(jù)仍然是上一次被鎖存的不確定數(shù)據(jù),可能為 1 也可能為 0,這樣 Slave 輸出的數(shù)據(jù)就可能會出錯。
為什么需要保持時間?
再來分析一下保持時間,如下圖中綠線為時鐘到達與門的路徑延時假設為 t5,藍線為數(shù)據(jù)到達與門的路徑延時假設為 t6,因為時鐘路徑存在反相器延時,所以延時會大一些,即 t5>t6,假設在 Slave 輸出數(shù)據(jù)的過程中,輸入數(shù)據(jù) D 由原來的 0 跳變到 1,此時由于 t5>t6,就有可能使得與門的兩個輸入同時為 1(時鐘上升沿來臨之前 Clk 為 0,經(jīng)反相器輸出為 1),此時與門輸出為 1,推出 Q' 輸出為 0,進而 Q 輸出為 1,于是新到來的輸出 Q = 1 就會將影響原來的 0,最后導致鎖存的數(shù)據(jù)為 1,最終 Slave 的輸出為 1,導致數(shù)據(jù)出錯,這就是為什么輸入數(shù)據(jù)需要在時鐘上升沿來臨之后仍然保持一段時間(t5-t6)不變。
從上面的分析可以得出,D 觸發(fā)器的建立時間要求比保持時間要求要更嚴苛,這也是在 RTL 設計綜合后,建立時間違例比保持時間違例更頻繁的原因,要求高了自然就更難達到,同時建立時間和保持時間也是相悖的,建立時間要求數(shù)據(jù)路徑延時更小,數(shù)據(jù)路徑延時越小,Master 鎖存器更容易將數(shù)據(jù)鎖存;保持時間希望數(shù)據(jù)路徑延時更大,一旦使得數(shù)據(jù)路徑延時 t6>t5,Slave 鎖存器輸出的數(shù)據(jù)就不會出錯。
-
MOSFET
+關(guān)注
關(guān)注
146文章
7101瀏覽量
212777 -
場效應晶體管
+關(guān)注
關(guān)注
6文章
359瀏覽量
19477 -
D觸發(fā)器
+關(guān)注
關(guān)注
3文章
164瀏覽量
47867 -
GND
+關(guān)注
關(guān)注
2文章
529瀏覽量
38663 -
閾值電壓
+關(guān)注
關(guān)注
0文章
73瀏覽量
51371
發(fā)布評論請先 登錄
相關(guān)推薦
評論