Multi-level gate circuits

  • 如何決定 level 數:
    1. Gate input number & Delay determine level
    2. 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: Z=(AB+C)(FG+D+E)+H\text{Z=(AB+C)(FG+D+E)+H} 1
  • 3 level gates: (case fan out) AB(D+E)+C(D+E)+ABFG+CFG+H\text{AB(D+E)+C(D+E)+ABFG+CFG+H}
    • Factoring 可變成 4-level (AB+C)(D+E+FG)+H\text{(AB+C)(D+E+FG)+H} 2
  • level & gate & gate inputs 的關係會隨之變化,可根據電路設計的需求改變
    • 範例: 3
    • f(a,b,c,d)=(1,5,6,10,13,14)f=(c+d)(a+b+c)(c+d)(a+b+c)2 levels5 gates14 gate inputsf=[c+d(a+b)][c+d(a+b)]4 levels7 gates14 gate inputsf=(c+ad+bd)(c+ad+bd)3 levels7 gates16 gate inputsf=acd+bcd+bcd+acd2 levels5 gates16 gate inputsf=cd(a+b)+cd(a+b)3 levels5 gates12 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}
    • 0001111000m0m4m12m801m1m5m13m911m3m7m15m1110m2m6m14m100001111000011111110111 \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}}
    • ababababcdcd111cdcd111=acd+bcd+bcd+acd=(a+b)cd+(a+b)cd=(cd+abc+cd+abc)=(c+d)(a+b+c)(c+d)(a+b+c)=[c+d(a+b)][c+d(a+b)]=(c+ad+bd)(c+ad+bd)\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

  • 符號 nand
  • 真值表
    ABABAB0001010110011110\boxed{\begin{array}{cc|cc} A&B&AB&\overline{AB}\\\hline 0&0&0&1\\ 0&1&0&1\\ 1&0&0&1\\ 1&1&1&0 \end{array}}
  • 布林表達式:
    F=(ABC)=A+B+CF=(ABC)’=A’+B’+C’

NOR

  • 符號 nor
  • 真值表
    ABABAB0001011010101110\boxed{\begin{array}{cc|cc} A&B&AB&\overline{AB}\\\hline 0&0&0&1\\ 0&1&1&0\\ 1&0&1&0\\ 1&1&1&0 \end{array}}
  • 布林表達式:
    • F=(A+B+C)=ABCF=(A+B+C)’=A’ B’ C’

Functionally Complete Sets of Gates

  • 定義:當所有的布林式皆可以被這組邏輯閘組合而成,則這組邏輯閘為 Functionally Complete
    • {AND, OR, NOT}\lbrace{\text{AND, OR, NOT}}\rbrace
    • {AND, NOT}OR=X+Y=(XY)\lbrace{\text{AND, NOT}}\rbrace\rightarrow \text{OR}=X+Y=(X’ Y’)’
    • {OR, NOT}AND=XY=(X+Y)\lbrace{\text{OR, NOT}}\rbrace\rightarrow \text{AND}=XY=(X’+Y’)’
    • {NAND}\lbrace{\text{NAND}}\rbrace
    • {NOR}\lbrace{\text{NOR}}\rbrace
    • {3-input Minority Gate}\lbrace{\text{3-input Minority Gate}}\rbrace

Majority Gate and Minority Gate

  • 真值表
    ABCFMFm0000100101010010111010001101101101011110\boxed{\begin{array}{ccc|cc} A&B&C&F_M&F_m\\\hline 0&0&0&0&1\\ 0&0&1&0&1\\ 0&1&0&0&1\\ 0&1&1&1&0\\ 1&0&0&0&1\\ 1&0&1&1&0\\ 1&1&0&1&0\\ 1&1&1&1&0 \end{array}}
    • (0, B, C)Minority Gate=NAND=(BC)’=B’+C’\text{(0, B, C)}\rightarrow\boxed{\text{Minority Gate}}=\text{NAND}=\text{(BC)’=\text{B’+C’}}
    • (1, B, C)Minority Gate=NOR=(B+C)’=B’C’\text{(1, B, C)}\rightarrow\boxed{\text{Minority Gate}}=\text{NOR}=\text{(B+C)’=\text{B’C’}}
    • (A, A, A)Minority Gate=NOT=A’\text{(A, A, A)}\rightarrow\boxed{\text{Minority Gate}}=\text{NOT}=\text{A’}
    • (0, B’, C’)Minority Gate=AND=BC\text{(0, B’, C’)}\rightarrow\boxed{\text{Minority Gate}}=\text{AND}=\text{BC}
    • (1, B’, C’)Minority Gate=OR=B+C\text{(1, B’, C’)}\rightarrow\boxed{\text{Minority Gate}}=\text{OR}=\text{B+C}

2-level NAND and NOR gates

DeMorgon’s Law

  • 等效邏輯閘:demorgon
    • (A+B)=AB(A+B)’=A’ B’
    • (AB)=A+B(AB)’=A’+B’
    • A+B=(AB)A+B=(A’ B’)’
    • AB=(A+B)AB=(A’+B’)’
  • Ex1: AND/ORNAND/NAND\text{Ex1: AND/OR}\rightarrow\text{NAND/NAND}
    • tonand
  • Ex2: AND/ORNOR/NOR\text{Ex2: AND/OR}\rightarrow\text{NOR/NOR}
    • tonor

Multi-level NAND and NOR circuits

  • Multi-level NAND and NOR circuits sample1
    • to NAND gate\text{to NAND gate}
      sample2
    • to NOR gate\text{to NOR gate} sample3

Multi-output circuit realization

MUX

  • 實際一個多工器(multiplexer)內的電路實現,可以用 fan out 的方式達到最佳化。
  • 整體最佳不一定代表個別都為最佳。
  • 實作1:
    • F1(A,B,C,D)=m(11,12,13,14,15)=AB+ACDF2(A,B,C,D)=m(3,7,11,12,13,15)=ABC+CDF3(A,B,C,D)=m(3,7,12,13,14,15)=ACD+ABF_1(A,B,C,D)=\sum m(11,12,13,14,15) =AB+ACD \\ F_2(A,B,C,D)=\sum m(3,7,11,12,13,15)=ABC’+CD\\ F_3(A,B,C,D)=\sum m(3,7,12,13,14,15)=A’ CD+AB\\
    • F1000111100010111111101F20001111000101111111110F30001111000101111111101 \begin{array}{|c|c|c|c|c|}\hline F_1&00&01&11&10\\\hline 00& & & 1& \\\hline 01& & & 1& \\\hline 11& & & 1& 1\\\hline 10& & & 1& \\\hline \end{array}\quad \begin{array}{|c|c|c|c|c|}\hline F_2&00&01&11&10\\\hline 00& & & 1& \\\hline 01& & & 1& \\\hline 11& 1& 1& 1& 1\\\hline 10& & & & \\\hline \end{array}\quad \begin{array}{|c|c|c|c|c|}\hline F_3&00&01&11&10\\\hline 00& & &1 & \\\hline 01& & &1 & \\\hline 11& 1&1 &1 & \\\hline 10& & &1 & \\\hline \end{array} 9 Gates, 21 Gate inputs7 Gates, 18 Gate inputs\text{9 Gates, 21 Gate inputs}\rightarrow\text{7 Gates, 18 Gate inputs}
    • Share AB(fan out)\text{Share AB(fan out)}
    • A’CD+ACD=CD\text{A’CD+ACD=CD}
      • F1(A,B,C,D)=AB+ACDF2(A,B,C,D)=ABC+ACD+ACDF3(A,B,C,D)=ACD+AB{AB,ACD,ACD,ABC}F_1(A,B,C,D)=AB+ACD \\ F_2(A,B,C,D)=ABC’+ACD+A’ CD\\ F_3(A,B,C,D)=A’ CD+AB\\ \lbrace{AB,A’ CD,ACD,ABC’}\rbrace multi1 multi2
  • 實作2:
    • f1=m(2,3,5,7,8,9,10,11,13,15)=bd+bc+abf2=m(2,3,5,6,7,10,11,14,15)=abd+cf3=m(6,7,8,9,13,14,15)=bc+abc+abd10 Gates, 25 Gate inputsf_1=\sum m(2,3,5,7,8,9,10,11,13,15)=bd+b’ c+ab’\\ f_2=\sum m(2,3,5,6,7,10,11,14,15)=a’ bd+c\\ f_3=\sum m(6,7,8,9,13,14,15)=bc+ab’ c’+abd\\ \rightarrow\text{10 Gates, 25 Gate inputs}
    • f100011110001011111111111011f20001111000011111111101111f300011110001011111111011 \begin{array}{|c|c|c|c|c|}\hline f_1&00&01&11&10\\\hline 00& & & &1 \\\hline 01& &1 &1 &1 \\\hline 11&1 &1 &1 &1 \\\hline 10&1 & & &1 \\\hline \end{array}\quad \begin{array}{|c|c|c|c|c|}\hline f_2&00&01&11&10\\\hline 00& & & & \\\hline 01& &1 & & \\\hline 11&1 &1 &1 &1 \\\hline 10&1 &1 &1 &1 \\\hline \end{array}\quad \begin{array}{|c|c|c|c|c|}\hline f_3&00&01&11&10\\\hline 00& & & &1 \\\hline 01& & &1 &1 \\\hline 11& &1 &1 & \\\hline 10& &1 &1 & \\\hline \end{array}
    • (1) bc+bc=c(2) abd+abd=bd{bc,bc,abd,abd,abc}組合上例 \text{(1) } b’ c+bc = c\\ \text{(2) } a’ bd+abd = bd\\ \text{用}\lbrace{b’ c, bc, a’bd, abd, ab’ c’}\rbrace\text{組合上例}
    • f1=bc+(abd+abd)+abcf2=(bc+bc)+abdf3=bc+abd+abc{bc,bc,abd,abd,abc}8 Gates, 23 Gate inputs f_1=b’ c+(abd+a’ bd)+ab’ c’\\ f_2=(b’ c+ bc)+a’ bd\\ f_3=bc+abd+ab’ c’\\ \lbrace {b’ c,bc,abd,a’ bd,ab’ c’}\rbrace\\ \rightarrow\text{8 Gates, 23 Gate inputs}
  • 實作3:
    • f1=m(1,5,9,13,15)=cd+abdf2=m(4,6,12,14,15)=bd+abc6 Gates, 14 Gate inputs f_1=\sum m(1,5,9,13,15)=c’ d+abd\\ f_2=\sum m(4,6,12,14,15)=bd’+abc\\ \rightarrow\text{6 Gates, 14 Gate inputs}
    • f1000111100001111111110f2000111100011011111011\begin{array}{|c|c|c|c|c|}\hline f_1&00&01&11&10\\\hline 00& & & & \\\hline 01& 1& 1& 1& 1\\\hline 11& & & 1& \\\hline 10& & & & \\\hline \end{array}\quad \begin{array}{|c|c|c|c|c|}\hline f_2&00&01&11&10\\\hline 00& & 1& 1& \\\hline 01& & & & \\\hline 11& & & 1& \\\hline 10& & 1& 1& \\\hline \end{array}
    • 使上面兩式共用 abcdabcd
    • f1=cd+abcdf2=bd+abcd5 Gates, 12 Gate inputs f_1=c’ d+abcd\\ f_2=bd’+abcd\\ \rightarrow\text{5 Gates, 12 Gate inputs}
  • 實作4:
    • f1=m(0,3,4,5,6,14)=acd+abc+acd+bcdf2=m(0,1,4,6,8,10)=acd+bcd+abc+bcd8 Gates, 26 Gate inputs f_1=\sum m(0,3,4,5,6,14)=a’ c’ d’+a’ bc’+a’ cd’+bcd’\\ f_2=\sum m(0,1,4,6,8,10)=a’ c’ d’+bc’ d’+a’ b’ c’+bcd’\\ \rightarrow\text{8 Gates, 26 Gate inputs}
    • f10001111000110111110111f10001111000111011111011\begin{array}{|c|c|c|c|c|}\hline f_1&00&01&11&10\\\hline 00& 1& 1& & \\\hline 01& & 1& & \\\hline 11& & & & \\\hline 10& 1& 1& 1& \\\hline \end{array}\quad \begin{array}{|c|c|c|c|c|}\hline f_1&00&01&11&10\\\hline 00& 1& 1& 1& \\\hline 01& 1& & & \\\hline 11& & & & \\\hline 10& & 1& 1& \\\hline \end{array}
    • 不 combine 各自做最佳化
    • f1=ad+abc+bcdf2=abc+bd7 Gates, 18 Gate Inputs f_1=a’ d’+a’ bc’+bcd’\\ f_2=a’ b’ c’+bd’\\ \rightarrow\text{7 Gates, 18 Gate Inputs}

多輸出電路的基本質函項

  • 參考實作3,若基本質函項可通過多工器中其他的輸入共用的話,則對多輸出電路而言並非基本質函項(Essential prime terms)。
  • 參考實作4,ad(m2),abc(m5),abc(m1),bd(m12)a’ d’(m_2),a’ bc’(m_5), a’ b’ c’(m_1), bd’(m_{12})皆為基本質函項。
  • 一般而言,不會為了共享而把基本質函項拆開。

和項共用(Shared by sum terms)

1

  • 真值表
    abcdwxyz0000001100001010010010010120011011030100011140101100050110100160111101071000101181001110091010XXXX1011XXXX1100XXXX1101XXXX1110XXXX1111XXXX\begin{array}{|cccc|cccc:c|}\hline a&b&c&d&w&x&y&z&\\\hline 0&0&0&0&0&0&1&1&0\\\hline 0&0&0&1&0&1&0&0&1\\\hline 0&0&1&0&0&1&0&1&2\\\hline 0&0&1&1&0&1&1&0&3\\\hline 0&1&0&0&0&1&1&1&4\\\hline 0&1&0&1&1&0&0&0&5\\\hline 0&1&1&0&1&0&0&1&6\\\hline 0&1&1&1&1&0&1&0&7\\\hline 1&0&0&0&1&0&1&1&8\\\hline 1&0&0&1&1&1&0&0&9\\\hline 1&0&1&0&X&X&X&X&\\\hline 1&0&1&1&X&X&X&X&\\\hline 1&1&0&0&X&X&X&X&\\\hline 1&1&0&1&X&X&X&X&\\\hline 1&1&1&0&X&X&X&X&\\\hline 1&1&1&1&X&X&X&X&\\\hline \end{array}
  • k-map
    w0001111000X1011X1111XX101XXx00011110001X011X1111XX101XXy000111100011X101X1111XX10XXz000111100011X101X11XX1011XX\begin{array}{|c|c|c|c|c||}\hline w&00&01&11&10\\\hline 00& & & X& 1\\\hline 01& & 1& X& 1\\\hline 11& & 1& X& X\\\hline 10& & 1& X& X\\\hline \end{array} \begin{array}{|c|c|c|c|c||}\hline x&00&01&11&10\\\hline 00& & 1& X& \\\hline 01& 1& & X& 1\\\hline 11& 1& & X& X\\\hline 10& 1& & X& X\\\hline \end{array} \begin{array}{|c|c|c|c|c||}\hline y&00&01&11&10\\\hline 00& 1& 1& X& 1\\\hline 01& & & X& \\\hline 11& 1& 1& X& X\\\hline 10& & & X& X\\\hline \end{array} \begin{array}{|c|c|c|c|c|}\hline z&00&01&11&10\\\hline 00& 1& 1& X& 1\\\hline 01& & & X& \\\hline 11& & & X& X\\\hline 10& 1& 1& X& X\\\hline \end{array}
  • w=a+bc+bd=a+b(c+d)x=bcd+bd+bc=bcd+b(c+d)y=cd+cdz=dw=a+bc+bd=a+b(c+d)\\ x=bc’ d’+b’ d+b’ c=bc’ d’+b’(c+d)\\ y=c’ d’+cd\\ z=d'
  • Sum terms 也可以 share
  • Multi-output circuits 也可以只用 NAND/NOR\text{NAND/NOR} 表示

Multi-Output NAND/NOR circuits

  • 範例mo1
    • to NAND\text{to NAND} mo1
    • to NOR\text{to NOR} mo1