選擇器和分配器

概述

選擇器和分配器是組合電路中十分重要的邏輯元件。選擇器用於從多個輸入數據中選擇一個輸出;而分配器則剛好做相反的工作,將多個輸入端輸出到指定的輸出端。

按照慣例,本文首先介紹相應的應用背景,然後講解選擇器和分配器的工作原理。

背景

選擇器和分配器是電路中不可或缺的兩個器件。童鞋們都知道,CPU中存在數量有限的寄存器(MIPS結構中一般是32個),CPU的ALU計算時,從寄存器中取數據進行計算。所有的寄存器都與ALU有電路連接,當我們進行計算時,如:

addi $t2, $t1, $0 // 表示計算t0 t1寄存器中的數之和

怎麼從32個寄存器中選擇$t0, $t1和$t2???

答案:選擇器

對應的圖示如下:
多路選擇器背景圖

另外,我們在寫C語言中的if…else…分支結構時,程序計數器PC是加4(32位,一個字寬)順序執行(if語句中的條件成立,執行if分支)還是加其它數(if語句中的條件不成立,執行else分支),也需要選擇器來選擇。

再想另一個場景,當兩個計算機通訊時,假設通訊的位寬爲1位,我們要傳輸一個字節,即8位,要保證兩端的數據的時序(假設發送端A傳送的數據爲‘0101 1101’,接收端如何保證收到的也是‘0101 1101’)?(現實的場景更可能是:用64/32位寬的總線傳輸64N/32N位的數據,N爲正整數)

答案:一位位寬一次只能傳送一個二進制,分時傳送,用選擇器和分配器保證順序

對應的圖示如下:
選擇器和分配器聯合使用分時傳送數據

選擇器

選擇器(通常用MUX表示)的抽象功能圖如下所示:

選擇器功能圖

一般情況下,選擇器包括m個數據輸入端、一個使能控制端,n個(地址)控制端,和一個輸出端。圖中也展示了輸出與輸入之間的關係,其中的mi對應的是n個控制端的最小項。熟悉譯碼器的童鞋應該能發現什麼?如果令Di = 1 (0<= i <= m),可以發現什麼?

列出真值表跟容易理解,下圖顯示了8選1選擇器的真值表:

8-3選擇器真值表

常見的8選1選擇器74LS151的邏輯符號如下圖所示:

74LS151邏輯符號
這裏要注意:74LS151提供了原變量輸出和反變量輸出兩個輸出

有了基本的8選1選擇器,如何構造16選1選擇器和32選1選擇器?套路其實是一樣的,重點是地址控制端,與譯碼器的級聯一樣,低位共享,高位控制使能端。下面將16選1和32選1的選擇器電路圖列出,童鞋們可以自己進行分析。

16選1選擇器

32選1選擇器

分配器

分配器(通常用DEMUX表示),其抽象圖如下所示:

分配器抽象圖

同樣,如果我們令D=1,會有什麼結論?

下面僅列出1-4分配器的真值表和電路圖,具體原理就不再分析了。

Paste_Image.png

總結

觀察選擇器和分配器,其實都和譯碼器有關係,如果我們將選擇器和分配器控制地址端看成譯碼器的輸入,輸入數據令其爲1,就可以得到一些有趣的結果。另外,在計算機組成中,分配器通常和選擇器聯合使用。

如有錯誤,請大家批評指正!謝謝!

發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章