eda四選一多路選擇器的設(shè)計(jì)
多路選擇器(又稱為數(shù)據(jù)選擇器)①功能
在選擇變量控制下,從多路輸入數(shù)據(jù)中選中某一路數(shù)據(jù)送至輸出端。對于一個(gè)具有2n個(gè)輸入和1個(gè)輸出的多路選擇器,有n個(gè)選擇變量。
②典型芯片典型中規(guī)模多路選擇器有雙4路數(shù)據(jù)選擇器74153,其引腳排列圖和邏輯符號如圖1(a)、(b)所示。
數(shù)據(jù)選擇器74153芯片含兩個(gè)4路數(shù)據(jù)選擇器,每個(gè)選擇器接收4路數(shù)據(jù)輸入,產(chǎn)生一個(gè)輸出,兩個(gè)4路數(shù)據(jù)選擇器共用兩個(gè)選擇變量。芯片有16條引線,其中1D0~1D3,2D0~2D3為8條數(shù)據(jù)輸入線,A1和A0為選擇輸入線,1Y、2Y為2條輸出線,1G、2G為使能控制端,另外有1條電源線和1條地線。
4路數(shù)據(jù)選擇器的輸出函數(shù)表達(dá)式為
式中,mi為選擇變量構(gòu)成的最小項(xiàng)。
③應(yīng)用多路選擇器除完成對多路數(shù)據(jù)進(jìn)行選擇的基本功能外,還可用來實(shí)現(xiàn)數(shù)據(jù)的并-串轉(zhuǎn)換、序列信號產(chǎn)生以及實(shí)現(xiàn)各種邏輯函數(shù)功能。
例如采用4路選擇器74153實(shí)現(xiàn)如下邏輯函數(shù)的功能
解給定函數(shù)為一個(gè)3變量函數(shù),由于4路選擇器具有2個(gè)選擇控制變量,所以用來實(shí)現(xiàn)3變量函數(shù)功能時(shí),應(yīng)該首先從函數(shù)的3個(gè)變量中任選2個(gè)作為選擇控制變量,然后再確定選擇器的數(shù)據(jù)輸入。假定選A、B與選擇控制端A1、A0相連,則可將函數(shù)F的表達(dá)式表示成如下形式:
顯然,要使4路選擇器的輸出Y與函數(shù)F相等,只需:。據(jù)此,可畫出邏輯電路如圖2所示。類似地,也可以選擇A、C或B、C作為選擇控制變量,選擇控制變量不同,數(shù)據(jù)輸入也不同。
4選1數(shù)據(jù)選擇器的設(shè)計(jì)1、設(shè)計(jì)背景和設(shè)計(jì)方案設(shè)計(jì)背景:
該設(shè)計(jì)是以數(shù)字電子技術(shù)為基礎(chǔ),實(shí)現(xiàn)數(shù)據(jù)從四位數(shù)據(jù)中按照輸入的信號選中一個(gè)數(shù),來實(shí)現(xiàn)所期望的邏輯功能。
設(shè)計(jì)方案:
用撥碼開關(guān)作四位數(shù)據(jù)及兩位控制端的輸入,LED作輸出,通過撥碼開關(guān)組成控制輸入端s1和s0不同組合,觀察LED與數(shù)據(jù)輸入端a,b,c,d的關(guān)系,驗(yàn)證四選一數(shù)據(jù)選擇器設(shè)計(jì)的正確性。使用邏輯門電路與、或、非的組合來表達(dá)4選1數(shù)據(jù)選擇器,通過控制輸入的信號來控制輸出的信號值。
其邏輯電路如下圖:
其示意框圖如下:
其中輸入數(shù)據(jù)端口為DO、D1、D2、D3,A、A為控制信號,Y為輸出。
令A(yù)A‘=“OO”時(shí),輸出Y=D0;
令A(yù)A’=“01”時(shí),輸出Y=D1;
令A(yù)A‘=“10”時(shí),輸出Y=D2;
令A(yù)A’=“11”時(shí),輸出Y=D3;
真值表如下:
(1)設(shè)計(jì)思路
四選一多路選擇器設(shè)計(jì)時(shí),定義輸入s為標(biāo)準(zhǔn)以內(nèi)漏記為SIDLOGIC輸出的信號Z的數(shù)據(jù)類型定義為2位標(biāo)準(zhǔn)邏輯矢量位STD_LOGIC_VECTOR(1DOWNTO0)。使用LBRATY語句和USE語句,來打開IEEE庫的程序包STDLOGIC_1164.ALL。當(dāng)輸入信號時(shí),程序按照輸入的指令來選擇輸出,例如輸入信號為“OO”時(shí),將a的值給z,進(jìn)而輸出z的值,輸入信號為“11”是,將a的值給z,進(jìn)而輸出z的值。若輸入信號是已經(jīng)定義的四個(gè)信號之外的值時(shí)(即當(dāng)正條件語句不滿足時(shí)),輸出值為x,并將x的值給輸出信號Z。這樣即可實(shí)現(xiàn)四選一數(shù)據(jù)選擇的功能。
程序
LIBRARY正EE:
USE
IEEE.STD_LOGIC_1164.ALL:
ENTITYmux41is
PORT(a,b.c.d:NSTD_LOGIC:
INSTD_LOGIC_VECTOR(1
DOWNTO0):
STD_LOGIC):
OUT
END
mux41:
IS
ARCHITECTUREoneOF
mux41
BEGIN
PROCESS(s,a.b.c.d)
BEGIN
IS
CASES
WHEN“00”=》z《=a:
WHEN“01”=》z《=b:
WHEN“10”=》z《=c:
WHEN“11”=》z《=d:
WHENOTHERS=》z《-=null:
END
CASE;
ENDPROCESS:
END
one;
運(yùn)行結(jié)果
當(dāng)輸入信號“OO”時(shí),輸出信號z的值為‘a(chǎn)’:
當(dāng)輸入信號“01”時(shí),輸出信號z的值為‘b’;
當(dāng)輸入信號“10”時(shí),輸出信號z的值為‘c’:
當(dāng)輸入信號“11”時(shí),輸出信號z的值為‘d’:
波形仿真及描述
輸入:
的波形周期為10ns,b的波形周期為5ns,c的波形周期為15ns,d的波形周期為8nsos[1]的波形周期為5ns.s的波形周期為10ns。
(2)設(shè)計(jì)思路
定義6個(gè)輸入信號,一個(gè)輸出信號,當(dāng)控制信號A=‘1’時(shí),muxval 的值加1,即muxval=muxva1+1當(dāng)控制信號 B= ‘1’時(shí)muxval的值加2,即muxval-muxval+2。當(dāng)輸入值為‘i0’時(shí),輸出q的值為0,當(dāng)輸入的值為“i1’時(shí),輸出q的值為1,當(dāng)輸入值為‘i2’時(shí),輸出q的值為2,當(dāng)輸入值為‘i3’時(shí),輸出q的值為3。
程序
USE 正EE.STD LOGIC 1164.ALL;
ENTITY mus41
IS
(i0ji1,i2,i3,a,b :N STD_LOGIC;
PORT
:OUT
STD_LOGIC );
ENS mux4;
OF
mux4 IS
ARCH ITE CT URE b_mux4
BE G N
Process (i0,il,i2,i3,a,)
Variable
0;
downto
musval
:integer rang
Begin
m uxv al :=0;
if (a=‘l’)
musval:muxval+ l; end if;
then
if (b=‘I’) then
muxval :muxwal + 2; end
if;
is
muxval
case
w hen 0= 》 q 《= i0;
when l= 》 q 《= il;
when2=》q《=2;
when3=》q《=i3;
others= 》null;
When
end
ca se;
end process;
END b_mux4;
運(yùn)行結(jié)果
當(dāng)輸入信號“OO”時(shí),輸出信號z的值為‘i0’:
當(dāng)輸入信號“01”時(shí),輸出信號z的值為‘i1’:
當(dāng)輸入信號“10”時(shí),輸出信號z的值為‘i2’:
當(dāng)輸入信號“11”時(shí),輸出信號z的值為‘i3’;
波形仿真及描述
a的波形周期為20ns,b 的波形周期為15ns,c 的波形周期為20ns,d 的波形周期為15ns,s的波形周期為8ns,s的波形周期為16ns。
輸出
0次