Oh! You closed up the window, so you cannot see raining

[Logic Design] Lec 04 - 卡諾圖 Karnaugh Maps

布林邏輯式的簡化 卡諾圖(Karnaugh Maps, K-maps)是一種簡單、快速的簡化布林邏輯的方法。 SOP 將布林邏輯化簡成最簡SOP(Minimum Sum of products) \(F=A’ B’ C’+A’ B’ C+A’ BC’+AB’ C+ABC’ +ABC\) \(F=A’ B’+B’ C+BC’+AB\) \(F=A’ B’+BC’+AC\) POS 將布林邏輯化簡成最簡POS(Minimum Product of Sums) \(F=(A+B’+C+D’)(A+B’+C’+D’)(A+B’+C’+D)(A’+B’+C’+D)(A+B+C’+D)(A’+B+C’+D)\) \(F=(A+B’+D’)(A+B’+C’)(B’+C’+D)(B+C’+D)\) \(F=(A+B’+D)(A+B’+C’)(C’+D)\) \(F=(A+B’+D’)(C’+D)\) 2或3個變數的卡諾圖 簡化2個變數的布林邏輯式 \(F=A’ B’+A’ B\) 布林代數: \(F=A’ B’+A’ B=A’(B’+B)=A’\) 卡諾圖: \( \boxed{ \def\arraystretch{1.4}\begin{array}{c|c|c} \downarrow B\rightarrow A&0&1&\\\hline 0&\text{A=0,B=0}&\text{A=1,B=0}\\\hline 1&\text{A=0,B=1}&\text{A=1,B=1}\\ \end{array} } \rightarrow \boxed{ \def\arraystretch{1.4}\begin{array}{c|c|c} &A’&A&\\\hline B’&1&0\\\hline B&1&0\\ \end{array} } \rightarrow A' \) 簡化3個變數的布林邏輯式 \(F=\sum m(2,3,6)=A’ BC’+A’ BC+ABC’\) 布林代數: \(F=A’ BC’+A’ BC+ABC’=A’ B+BC’\) 卡諾圖:*注意相鄰以grey code排列 \( \boxed{ \def\arraystretch{1....

<span title='2021-09-18 03:11:35 +0800 +0800'>September 18, 2021</span>&nbsp;·&nbsp;2 min&nbsp;·&nbsp;Rain Hu
Oh! You closed up the window, so you cannot see raining

[Logic Design] Lec 05 - Quine-McClusky Method

概要 當變數愈來愈多時,很難依靠人眼判斷,所以必須計設系統化的簡化過程讓電腦運行。 系統化的簡化過程 輸入:minterm expansion 輸出:minimum SOP 步驟: 找出所有質函項,並試著將和項消除到不能再消,利用\(XY+XY’=X\) 利用質函項圖找出最小解 範例:\(F(a,b,c)=a’ b’ c’ + ab’ c’+ab’ c+ abc\) \( \boxed{ \def\arraystretch{1.4}\begin{array}{c|c|c|c|c} &a’ b’&a’ b&ab&ab’\\\hline c’&1&&&1\\\hline c&&&1&1 \end{array} } \) 所有蘊函項:\(a’ b’ c’, ab’ c’, ab’ c, abc, ab’, b’ c’, ac\) 質函項:\(ab’, b’ c’, ac\) 基本質函項:\(b’ c’, ac\) Min SOP:\(F(a,b,c)=b’ c’+ac\) 決定質函項(prime implicants) 找出所有質函項 將每個 minterm 以二進制表示。 統計每個項的1的數量作為 index 並分群。 將分完群的 minterm 以 index 排列。 從 index 最小開始,往 index + 1 的群,尋找可以用\(XY+XY’=X\)簡化的組合 檢查所有的項都合併成組合,留下來的項即為質函項。 重複步驟 4 到 步驟 5 直到沒有函項可以合併。...

<span title='2021-09-18 03:11:35 +0800 +0800'>September 18, 2021</span>&nbsp;·&nbsp;2 min&nbsp;·&nbsp;Rain Hu
Oh! You closed up the window, so you cannot see raining

[Logic Design] Lec 06 - Multi-Level Gate Circuits / NAND and NOR Gates

Multi-level gate circuits 如何決定 level 數: Gate input number & Delay determine level Factoring to accomplish different level AND-OR: 2-level SOP OR-AND: 2-level POS OR-AND-OR: 3-level circuit of AND and OR → no particular ordering 4 level gates: \(\text{Z=(AB+C)(FG+D+E)+H}\) 3 level gates: (case fan out) \(\text{AB(D+E)+C(D+E)+ABFG+CFG+H}\) Factoring 可變成 4-level \(\text{(AB+C)(D+E+FG)+H}\) level & gate & gate inputs 的關係會隨之變化,可根據電路設計的需求改變 範例: \( \begin{array}{llll} f(a,b,c,d)=\sum(1,5,6,10,13,14)\\ f=(c+d)(a’+b+c)(c’+d’)(a+b+c’)&\text{2 levels}&\text{5 gates}&\text{14 gate inputs}\\ f=[c+d(a’+b)][c’+d’(a+b)]&\text{4 levels}&\text{7 gates}&\text{14 gate inputs}\\ f=(c+a’ d+bd)(c’+ad’+bd’)&\text{3 levels}&\text{7 gates}&\text{16 gate inputs}\\ f=a’ c’ d+bc’ d+bcd’+acd’&\text{2 levels}&\text{5 gates}&\text{16 gate inputs}\\ f=c’ d(a’+b)+cd’(a+b)&\text{3 levels}&\text{5 gates}&\text{12 gate inputs} \end{array} \) \( \boxed{\begin{array}{c|c|c|c|c} &00&01&11&10\\\hline 00&m_0&m_4&m_{12}&m_{8}\\\hline 01&m_1&m_5&m_{13}&m_{9}\\\hline 11&m_3&m_7&m_{15}&m_{11}\\\hline 10&m_2&m_6&m_{14}&m_{10} \end{array}}\rightarrow \boxed{\begin{array}{c|c|c|c|c} &00&01&11&10\\\hline 00&&&&\\\hline 01&1&1&1&\\\hline 11&&&&\\\hline 10&&1&1&1 \end{array}}\) \(\boxed{\begin{array}{c|c|c|c|c} &a’ b’&a’ b&ab&ab’\\\hline c’ d’&&&&\\\hline c’ d&1&1&1&\\\hline cd&&&&\\\hline cd’&&1&1&1 \end{array}}\\ =a’ c’ d+bc’ d+bcd’+acd’=(a’+b)c’ d+(a+b)cd’\\ =(c’ d’+ab’ c’+cd+a’ b’ c)’=(c+d)(a’+b+c)(c’+d’)(a+b+c’)\\ =[c+d(a’+b)][c’+d’(a+b)]=(c+a’ d+bd)(c’+ad’+bd’) \) NAND and NOR gates NAND 符號 真值表...

<span title='2021-09-18 03:11:35 +0800 +0800'>September 18, 2021</span>&nbsp;·&nbsp;4 min&nbsp;·&nbsp;Rain Hu
Oh! You closed up the window, so you cannot see raining

[Logic Design] Lec 07 - 組合電路設計與模擬

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\)

<span title='2021-09-18 03:11:35 +0800 +0800'>September 18, 2021</span>&nbsp;·&nbsp;2 min&nbsp;·&nbsp;Rain Hu
Oh! You closed up the window, so you cannot see raining

[Logic Design] Lec 08 - 多工器、編碼器、可程式化邏輯元件

多工器(Multiplexer, MUX) 一個 \(2^n\text{ to }1\) 多工器,需要有 n 個控制項(選項器) \(\begin{array}{c|c|l} \text{MUX}&\text{sel}&\text{Output}\\\hline \text{2 to 1}&1&A’ I_0+AI_1\\\hline \text{4 to 1}&2&A’ B’ I_0+A’ BI_1+AB’ I_2+ABI_3\\\hline \text{8 to 1}&3&A’ B’ C’ I_0+A’ B’ CI_1+…\\\hline 2^n\text{ to 1}&n&\sum_{k=0}^{2^n-1}m_kI_k \end{array}\) quad multiplexer 多了一個致能(enable, en)來控制多工器 用 4-1 多工器實現三個變數函式 代數展開 \(\begin{array}{rl} F(A,B,C)&=A’ B’+AC\\ &=A’ B’(C+C’)+A(B+B’)C\\ &=A’ B’\cdot1+A’ B\cdot0+AB’ C+ABC \end{array}\) 真值表法 \(\begin{array}{|cccc:cc|}\hline &A&B&C&F\\\hline &0&0&0&1\\ I_0&0&0&1&1&1\\\hline &0&1&0&0\\ I_1&0&1&1&0&0\\\hline &1&0&0&0\\ I_2&1&0&1&1&C\\\hline &1&1&0&0\\ I_3&1&1&1&1&C\\\hline \end{array}\) Verilog 4-to-1 MUX implements 3-var function test bench 三態緩衝器(Three state buffer) 緩衝器(Buffers)的用途: 用來增加閘輸出的趨動力(driving force) 因為閘並聯而造成電容增加(fan out),電容增加充電變慢,使電路變慢 總體而言,可用來調節電路的速度。 三態緩衝器: Three-state buffer 或 tri-state buffer 真值表...

<span title='2021-09-18 03:11:35 +0800 +0800'>September 18, 2021</span>&nbsp;·&nbsp;2 min&nbsp;·&nbsp;Rain Hu