多工器(Multiplexer, MUX)

  • 一個 2n to 12^n\text{ to }1 多工器,需要有 n 個控制項(選項器)
    • MUXselOutput2 to 11AI0+AI14 to 12ABI0+ABI1+ABI2+ABI38 to 13ABCI0+ABCI1+2n to 1nk=02n1mkIk\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)來控制多工器 quadMUX
  • 用 4-1 多工器實現三個變數函式 sample
    • 代數展開
      F(A,B,C)=AB+AC=AB(C+C)+A(B+B)C=AB1+AB0+ABC+ABC\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}
    • 真值表法
      ABCF0001I0001110100I1011001000I21011C1100I31111C\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

三態緩衝器(Three state buffer)

buffer

  • 緩衝器(Buffers)的用途:
    • 用來增加閘輸出的趨動力(driving force)
    • 因為閘並聯而造成電容增加(fan out),電容增加充電變慢,使電路變慢
    • 總體而言,可用來調節電路的速度。
  • 三態緩衝器: tristate
    • Three-state buffer 或 tri-state buffer
    • 真值表
      BAC00Z01Z100111\begin{array}{|cc|c|}\hline B&A&C\\\hline 0&0&Z\\\hline 0&1&Z\\\hline 1&0&0\\\hline 1&1&1\\\hline \end{array}
    • 利用 tri-state buffer 實現 2-to-1 MUX tristateMUX
    • tri-state buffer 並聯
      • 真值表
        X01ZXXXXX0X0X01XX11ZX01Z\begin{array}{|c|c|c|c|c|}\hline &X&0&1&Z\\\hline X&X&X&X&X\\\hline 0&X&0&X&0\\\hline 1&X&X&1&1\\\hline Z&X&0&1&Z\\\hline \end{array}
    • 應用
      • Bus 匯流排 bus
      • Chip I/O IO

解碼器(Decoder)

  • n個input可以對應到2n個outputn 個 \text{input} 可以對應到 2^n 個 \text{output} decoder
  • 事實上,n 個 input 在編碼器前成生各種 minterm 的組合,後面面編碼器就是將 minterm OROR 起來。 2to4decoder
  • 7442 編碼器,數字 1 到 9 產生對應位置的輸出為 0。
  • 這樣的設計可以使雜訊的干擾變輕。
  • 配合 NAND Gate\text{NAND Gate},其實就跟前面的編碼器一樣,是產生 minterm 再 OROR 起來的過程。 7442
  • F1=m1+m2+m4F2=m4+m7+m9F_1=m_1+m_2+m_4 \qquad F_2=m_4+m_7+m_9 7442a
  • Verilog

編碼器(Encoder)

  • Priority Encoder
  • 8-to-3 編碼,將輸入將對應的數字編到 abc 中。
  • 若 input 端有兩個以上為 1,則輸出數字較高的數(MSB)。
  • d 的作用,用來表示輸入是否含有 1,否則為 0。 encoder

唯讀記憶體(Read only memories, ROMs)

  • 唯讀記憶體就是一個編寫好的編碼器,輸入就像是位址(address)。 ROM
  • General Form
  • n inputs2n個wordsm outputs\text{n inputs}\rightarrow 2^n 個 \text{words} \rightarrow \text{m outputs} ROMa
  • 可以把 ROM 看成 decoder 加上 memory array ROMa
  • 用二極體形成 OROR 的效果,一般也會將二極體極化成黑點。
  • 二極體在這邊使電流為單向流動,一般二極體的壓降為 0.7V。
  • 整個矩陣稱為 OR-plane。
  • word line 用於控制儲存單元與 bit line 的連通
  • bit line 用於讀寫儲存單元。(此處只有讀) ROMlogic

ROM 的變形

可程式化邏輯元件(programmable logic devices)

可程式化邏輯矩陣(Programmable Logic Array, PLA)

可程式化矩陣邏輯(Programmable Array Logic, PAL)

現場可程式化邏輯閘陣列(Field programmable gate arrays, FPGAs)