Review#
- 組合電路設計
- 建構真值表將輸出表示成輸入的函式 \(\text{Inputs}\rightarrow\boxed{\text{MUX}}\rightarrow\text{Outputs}\)
- 用 K-map, Q-M method 等方法得到簡化的布林表達式
- 多層、多輸出的電路(Multi-level & Multi-outputs)
- Mininum SOP 起點
- Minimum two-level \(\text{AND-OR, NAND-NAND, OR-NAND, NOR-OR}\)
- Minimum POS 起點
- Minimum two-level \(\text{OR-AND, NOR-NOR, AND-NOR, NAND-AND}\)
限制 fan-in 數的電路設計#
- Ex1
- \(\text{用 3 pin 的 NOR Gate 實現}f(a,b,c,d)=\sum m(0,3,4,5,8,9,10,14,15)\)
- \(\begin{array}{|c|c|c|c|c|}\hline
f &00&01&11&10\\\hline
00& 1& 1& 0& 1\\\hline
01& 0& 1& 0& 1\\\hline
11& 1& 0& 1& 0\\\hline
10& 0& 0& 1& 1\\\hline
\end{array}\)
- 從 POS 開始
- \(f’=a’ b’ c’ d+ab’ cd+abc’ + a’ bc+a’ cd’\\
\quad=b’ d(a’ c’+ac)+a’ c(b+d’)+abc’\)
- Ex2 Multiple-Output
- \(\text{用 2 pin 的 NAND 與 NOT 實現}\)
- \(f_1=\sum m(0,2,3,4,5)=b’ c’+ab’ +a’ b\\
f_2=\sum m(0,2,3,4,7)=b’ c’+bc+a’ b\\
f_3=\sum m(1,2,6,7)=a’ b’ c+ab+bc’\)
- \(\begin{array}{|c|c|c|}\hline
f_1&0&1\\\hline
00&1&1\\\hline
01& &1\\\hline
11&1& \\\hline
10&1& \\\hline
\end{array}\quad
\begin{array}{|c|c|c|}\hline
f_1&0&1\\\hline
00&1&1\\\hline
01& & \\\hline
11&1&1 \\\hline
10&1& \\\hline
\end{array}\quad
\begin{array}{|c|c|c|}\hline
f_1&0&1\\\hline
00& & \\\hline
01&1& \\\hline
11& &1\\\hline
10&1&1\\\hline
\end{array}
\)
- \(f_1=b’(a+c’)+a’ b\\
f_2=(b’+c)(b+c’)+b’ c’\\
f_3=b(a+c’)+a’ b’ c\)
閘延遲與時序圖#
- 邏輯閘必然存在延遲,固然小,但存在。
- 組合電路
- 延遲亦可能來自電線,電線愈長則延遲可能愈久。
Control value#
- \(\text{AND gate}\) 的 control value 是 \(0\)
- \(\text{OR gate}\) 的 control value 是 \(1\)
- \(\text{AND=2ns}\\
\text{NOR=3ns}\)
- 若 X 訊號相反時, Z 要到 5ns 訊號才有意義。
組合邏輯中的 Hazards#
- Hazard 是在切換輸入時,因閘延遲而產生的錯誤訊號。
- 種類
- 若相鄰兩個 1 不來自同一個邏輯閘(在 K-map 上沒有被框在一起)則會存在 hazard。
- \((A,B,C)=(1,0,1)\rightarrow (1,1,1)\)
- 可將相鄰的所有蘊函項框在一起,避免「一個bit切換」的 hazard 發生。
邏輯電路的模擬與測試#
輸入值#
- 有四種,分別為:
- 0 (low)
- 1 (high)
- X (unknown)
- Z (don’t care, High impedence)
- \(\text{AND } \& \text{ OR } \text{function for 4-value simulation}\)
- \(\begin{array}{c|cccc}
\text{AND}&0&1&X&Z\\\hline
0&0&0&0&0\\
1&0&1&X&X\\
X&0&X&X&X\\
Z&0&X&X&X\\
\end{array}
\qquad
\begin{array}{c|cccc}
\text{OR}&0&1&X&Z\\\hline
0&0&1&X&X\\
1&1&1&1&1\\
X&X&1&X&X\\
Z&X&1&X&X\\
\end{array}
\)
驗證(verification)與測試(testing)#
- 邏輯電路的輸出錯誤,可以由下面兩種方式偵錯:
- 驗證(Verification)
- 測試(Testing)
- 已知 \(A=B=C=D=1時,F=0\)