第 8 章 利用邏輯閘做組合電路設計與模擬
具有閘扇入數限制的電路設計 扇入數(fan in):每個閘輸入的最大數目。 範例:用3輸入的NOR閘實現 Sol: ,, Chap 8
Sol(續1):則此二階電路需要2個4輸入閘 和1個5輸入閘。將 利用分解 以降低最大的閘輸入數成為3 個,然後再取補數。 Chap 8
Sol(續2):則NOR閘電路為 Chap 8
具有閘扇入數限制的電路設計 範例:只用2輸入的NAND閘和反相器實現圖 8-2的函數。 ,, Chap 8
每個函數需要1個3輸入的OR閘,所以我們將分解以減少閘輸入的數目: Sol:個別化簡每個函數,則 每個函數需要1個3輸入的OR閘,所以我們將分解以減少閘輸入的數目: Chap 8
Sol(續):利用 ,從f3消掉 剩下的3輸入閘。且使用共同項 則可得電路為 Chap 8
閘延遲與時序圖 如果輸出變化相對於輸入變化的延遲時間為 ,則稱這個邏輯閘的傳播延遲(propagation delay)為 。 Chap 8
時序圖: Ex:假設每個邏輯閘的傳播延遲為20ns 。 Chap 8
這個時序圖指出,當閘輸入B和C維持在常數值1和0,且輸入A在t = 40ns變成1然後在t = 100ns又回到0時,則閘G1的輸出在A變化之後20ns發生改變,且閘G2的輸出在閘G1變化之後20ns發生改變。 Chap 8
Ex:1個延遲元件的電路時序圖 Chap 8
組合電路中的雜訊 當從電路的輸入到輸出過程有不同的路徑時,就有不同的傳輸延遲,因而產生交換暫態在電路的輸出端。 靜態1-雜訊(Static 1- hazard):若因任何單一輸入的變化以及傳播延遲之組合的影響,一個電路的輸出應該維持常數1,但卻暫時地變成0時,稱此電路有靜態1-雜訊。 靜態0-雜訊(Static 0- hazard):如果輸出應該維持於常數0,卻暫時地變成1時,我們稱此電路有靜態0-雜訊。 Chap 8
動態雜訊(dynamic hazard):若當輸出被設成由0變成1(或由1變0),輸出可能變動三次或更多次時,我們稱此電路有動態雜訊。 Chap 8
Ex:具有靜態1-雜訊的電路 Chap 8
Ex(續):假如A=C=1,則F=B+B’=1,所以當B由1 變成0時,輸出F應該維持常數1。但是, 遲10ns,則E在D變成1之前會變成0,所 以在輸出F會導致暫時0的出現(由於1- 雜訊引起1個突波(glitch))。注意,在 B變成0之後的右邊,反相器的輸入(B) 以及輸出(B’)同時為0,一直到傳播延 遲過去為止,在這段期間,在F等式中 的2項同時為0,所以,F暫時變成0。 Chap 8
在二階AND-OR電路中偵測出雜訊的步驟: 1.寫出電路的積項和表示式。 2.將每一項畫在卡諾圖中並且用將它圈起來。 3.假如任何相鄰的2個1沒有被相同的圈所包 含,則在這2個1之間存在一個靜態1-雜訊 的暫態。對於n變數圖,當1個變數改變而 其它n-1個變數保持常數時,則會發生這 樣的暫態。 Chap 8
如何消去雜訊:在圖8-8(a)中加入1個圈,然後在對路中加入相對應的閘(圖8-9),這樣可以消去雜訊,當B改變時AC項保持1,所以在輸出沒有突波出現,此時不再是最簡積項和。 Chap 8
Ex:具有0-雜訊的電路: Chap 8
Ex(續1):此電路輸出的和項積表示為 由這個函數的卡諾圖(圖8-10(b))顯示有四對相鄰的0如箭頭所指,並沒有被共同的迴圈所包含,因此每一對相對應1個0-雜訊。例如,當A=0、B=1、D=0且C由0變成1時,對於某些閘延遲的組合,輸出Z可能會出現尖波(spike)。 Chap 8
Ex(續2):假設每個反相器的閘延遲為3ns ,且每個AND閘以及每個OR閘的 閘延遲為5ns,則其時序圖為 Chap 8
Ex(續3):藉由圈上額外的質含項來包含那些沒 有被共同迴圈所包含之相鄰的0而消去 0-雜訊。所得方程式為 Chap 8
設計一個沒有靜態以及動態雜訊電路的步驟: 1.對於那些只被項1所包含之每一對相鄰的1的輸出找出其積項和表示式(Ft)。(所有質含項的和通常滿足這個條件)。則以Ft這個為基礎所建立的二階AND-OR電路將是沒有靜態1-雜訊,0-雜訊以及動態雜訊。 2.假如需要不同形式的電路,則利用簡單的分解、迪摩根定理等等,將Ft轉換成所要的形式,對於每一個 和 當成獨立的變數來處理以免引進雜訊。 Chap 8
邏輯電路的模擬與測試 邏輯設計過程中要做模擬的幾個理由: (1)證明這個設計是邏輯正確的, (2)證明邏輯信號的時序是正確的, (3)在電路中錯誤元件的模擬有助於求出電路 的測試方法。 Chap 8
一個簡單的組合式邏輯模擬器工作如下: 1.電路輸入被用在電路中第1組的閘,且計算 這些閘的輸出。 2.在上一個步驟中有改變的閘輸出被接到下 一層的閘輸入。假如任何閘的輸入已經改 變了,則計算該閘的輸出。 3.重複步驟2直到閘輸入沒有發生改變為止。 則電路就在穩態(steady-state)的狀況下, 且可以讀出輸出值。 4.當電路輸入改變時,重複步驟1到步驟3。 Chap 8
Chap 8
4值邏輯模擬之AND和OR函數: Chap 8
假如對某些輸入值的組合而言,電路輸出是錯誤的,這也許是因為下面幾個可能的原因: 1.不正確的設計。 2.閘連接錯誤。 3.錯誤的輸入信號送到電路中。 假如這個電路是建立在實驗室中,其它可能的原因包括: 4.不良的閘。 5.不良的連接線。 Chap 8
範例:用圖8-13的電路來實現函數 Chap 8
Sol:當某個學生在實驗室中建立這個電路 時,他發現當時,輸出的值錯誤, 且閘的輸出如圖8-13中所示。不正 確值的原因可以由下面來決定: 1.閘7(F)的輸出是錯誤的,但是這 個錯誤的輸出和到閘7的輸入一致, 也就是說1+0=1。因此到閘7的某 個輸入是錯誤的。 Chap 8
5的輸入A或B是錯的,因為C’D+CD’=0, 所以閘3的輸出是錯的。 Sol(續1): 2.為了使閘7有正確的輸出(F=0),2個 輸入必須都是0。因此,閘5的輸出 是錯誤的。然而,閘5的輸出和輸入 一致,因為1.1.1=1。因此到閘5 的某個輸入是錯的。 3.如果閘3的輸出不是錯的,就是到閘 5的輸入A或B是錯的,因為C’D+CD’=0, 所以閘3的輸出是錯的。 Chap 8
Sol(續2): 4.閘3的輸出與閘1和閘2的輸出不一致, 因為0+0≠1。因此,不是閘3某個輸 入連接錯誤,或是閘3不良,就是到 閘3的某個輸入接腳是不良的。 Chap 8