找回密码
 注册
关于网站域名变更的通知
查看: 1210|回复: 3
打印 上一主题 下一主题

EDA四选一多路选择器的设计

[复制链接]

该用户从未签到

跳转到指定楼层
1#
发表于 2021-4-12 13:20 | 只看该作者 回帖奖励 |倒序浏览 |阅读模式

EDA365欢迎您登录!

您需要 登录 才可以下载或查看,没有帐号?注册

x
多路选择器(又称为数据选择器)①功能
& Z! t0 H' }+ s- X# T: v7 B在选择变量控制下,从多路输入数据中选中某一路数据送至输出端。对于一个具有2n个输入和1个输出的多路选择器,有n个选择变量。3 j  g5 Y0 i0 E; C/ e7 I3 Q, d
②典型芯片* u8 f/ a) ^5 t7 M: S: \- e. M/ p
典型中规模多路选择器有双4路数据选择器74153,其引脚排列图和逻辑符号如图1(a)、(b)所示。8 v% J8 @" ^2 M

3 r& e7 K' M2 A3 F6 [
9 [4 ]1 C9 K* N( F9 Q

. R, U5 f6 `. B2 b: m2 H0 _% @数据选择器74153芯片含两个4路数据选择器,每个选择器接收4路数据输入,产生一个输出,两个4路数据选择器共用两个选择变量。芯片有16条引线,其中1D0~1D3,2D0~2D3为8条数据输入线,A1和A0为选择输入线,1Y、2Y为2条输出线,1G、2G为使能控制端,另外有1条电源线和1条地线。4 V/ _6 ~7 d# H7 R
- N8 s0 E, f6 e9 _/ e9 v9 n% h
4路数据选择器的输出函数表达式为
, r8 k) N% V" P) E/ ]" J$ w- [0 {) ]; a
: m! W: {) H2 x# _9 a- C

2 Y8 U( }% Q5 W式中,mi为选择变量构成的最小项。
+ K; i" F6 x* e2 }) l3 y③应用0 f% _6 n6 Q1 I: ]$ Q) T; j
多路选择器除完成对多路数据进行选择的基本功能外,还可用来实现数据的并-串转换、序列信号产生以及实现各种逻辑函数功能。
: z( r; r8 i9 ^1 n7 }
. M) ?. S/ ?6 M2 G$ r  A! g5 [# c% {例如采用4路选择器74153实现如下逻辑函数的功能2 b# V+ `' U% Q3 L# O% O1 ~

1 h* Q; O  ]7 u- W  S5 K  N! W& E
( T: \7 B) ~) G: |' L! F

6 c" U& H/ P3 l* a8 M, r2 I解给定函数为一个3变量函数,由于4路选择器具有2个选择控制变量,所以用来实现3变量函数功能时,应该首先从函数的3个变量中任选2个作为选择控制变量,然后再确定选择器的数据输入。假定选A、B与选择控制端A1、A0相连,则可将函数F的表达式表示成如下形式:* c4 t. R9 w& y% V: i
" g$ F# O1 s8 T( c4 Q
& j8 c- D6 C) B" Z7 t1 }
: `+ k( \3 c# p6 ^3 D0 H6 R: d1 _
显然,要使4路选择器的输出Y与函数F相等,只需:。据此,可画出逻辑电路如图2所示。类似地,也可以选择A、C或B、C作为选择控制变量,选择控制变量不同,数据输入也不同。
" p. s! s, v, i
5 s) v6 [% Z# b# D1 l4 s9 m* F8 O/ I% j

8 y2 h" `2 L6 V3 [  y3 I4选1数据选择器的设计1、设计背景和设计方案, y5 h( D$ D/ G5 l+ [
设计背景:9 E% X- S/ E- [  V/ a5 Y! }; e
: d4 h0 I9 `; J2 `- ]
该设计是以数字电子技术为基础,实现数据从四位数据中按照输入的信号选中一个数,来实现所期望的逻辑功能。. V% d* v) l/ t. l; @' W

% f4 U& w8 o2 |2 }5 m设计方案:+ e7 t% n( a) @7 L0 D4 Y
. ]) r, m( s- c* Q, ]& j
拨码开关作四位数据及两位控制端的输入,LED作输出,通过拨码开关组成控制输入端s1和s0不同组合,观察LED与数据输入端a,b,c,d的关系,验证四选一数据选择器设计的正确性。使用逻辑门电路与、或、非的组合来表达4选1数据选择器,通过控制输入的信号来控制输出的信号值。! N1 J* y3 U% C# f- w
& g; e1 f; d0 K1 i$ m" D
其逻辑电路如下图:
- I$ P6 k! Y/ W9 {3 }7 |
9 |  W+ @# k4 O: }3 B) f. l0 f  l

0 E# c0 V  x% _: U  s% T( c9 Z* y$ H' z5 `' H
其示意框图如下:% f% u! k1 `1 k7 J9 x9 ^
  K" }3 y: a8 D* _! d. m
其中输入数据端口为DO、D1、D2、D3,A、A为控制信号,Y为输出。
) d" x. @# t# \1 C
$ S) g% M. v5 N. G令AA‘=“OO”时,输出Y=D0;# v# y& v5 ]- c' X( f9 U

1 ?3 |% F4 W3 p* i( ]令AA’=“01”时,输出Y=D1;
) u6 g( n& J4 T( w& U3 O1 F4 J2 t# V6 X" N& u
令AA‘=“10”时,输出Y=D2;
0 d/ t) z8 Z! x, y; r' y- J4 w: k' Q- F% t+ G0 W
令AA’=“11”时,输出Y=D3;4 m, e. j& _% S4 l( o2 F+ V5 |$ \
1 Y( Y8 h6 X% H0 {8 L
( h8 s( D5 R8 D% m2 T+ G5 n4 w
/ ]( Q, S6 o5 Y* [9 q% ]9 O
真值表如下:& I* q7 I* ?+ i6 f/ m7 f; ^

( Q$ q; [% C1 A! _
+ c; r/ t' c5 o# d/ K
. ]  ^" s2 N- j- N
2、方案实施
" h1 O- ^; {. j(1)设计思路
$ }2 I3 \: U8 B8 I! u7 d  ~4 B0 A5 O0 O9 _$ C7 h' v& Q

4 z1 R5 P* D* H' w
$ A$ b9 W( n- ^3 E四选一多路选择器设计时,定义输入s为标准以内漏记为SIDLOGIC输出的信号Z的数据类型定义为2位标准逻辑矢量位STD_LOGIC_VECTOR(1DOWNTO0)。使用LBRATY语句和USE语句,来打开IEEE库的程序包STDLOGIC_1164.ALL。当输入信号时,程序按照输入的指令来选择输出,例如输入信号为“OO”时,将a的值给z,进而输出z的值,输入信号为“11”是,将a的值给z,进而输出z的值。若输入信号是已经定义的四个信号之外的值时(即当正条件语句不满足时),输出值为x,并将x的值给输出信号Z。这样即可实现四选一数据选择的功能。% H5 P9 _. |3 C; L
) q( ]/ D) S, Y5 \  D
程序
# l% x; e3 q  z3 d% K% m; {7 x7 j+ U# k* G! C" [& q% x
LIBRARY正EE:
% m, f2 E2 `- D
% m0 C% u1 u2 p/ sUSE
$ Y+ X- C# E2 Z
* q% \% o* C4 _  a  w- xIEEE.STD_LOGIC_1164.ALL:
5 w; {- Z+ g4 z0 y- l% g7 S4 [
' H/ |) o) q% {ENtiTYmux41is
) q. p5 i3 U, _" [
* L5 e( G( ^# C" F* ?PORT(a,b.c.d:NSTD_LOGIC:
) x$ ]$ }" L3 ~! K& a) r' Y) y# l8 L
INSTD_LOGIC_VECTOR(1
* N5 R# Q" Z4 N
/ x8 e) s1 H: c+ e' dDOWNTO0):' p' Y9 T3 H$ r! y6 ~  a8 ~
6 g6 [+ P1 }& J# K, L: a8 A
STD_LOGIC):9 P% C# W2 m5 {+ f# ?* X% O! |+ p
% X; b' ~! _  w% _6 e
OUT
3 @" F. j* ]5 r6 u  r  n
' ~! v3 H, y- p  s7 Q2 TEND
; U9 n0 x! @" K
; e* L5 M+ g: B* L. _3 Nmux41:1 E3 l: D, Z6 @8 }& L6 }
# v8 m+ {/ }* |& O" \( u5 I. q
IS
7 \0 ]2 R! x# t$ x, F. w$ M3 E' S4 K( t9 I. U1 ^, i5 n; m
ARCHITECTUREoneOF
( W: K/ @" G$ I4 }
' ^( T/ C0 T3 f& o$ w; ?* o" emux41. {, u& f* j4 w

0 R% I3 e3 X5 V8 \. q2 l3 aBEGIN
* _. {/ e9 v& S! g$ L( i8 [  C5 E& j
PROCESS(s,a.b.c.d)' N6 d/ y- F: j8 c/ G
" Z( P9 l3 U- O$ b7 G/ E' [0 T5 u
BEGIN6 q9 e* R5 ?7 O" D$ O! z: G

# G/ N; Y/ X$ j; fIS
& @: G% f4 R% l, F, f) t1 l! o5 Q) \% |/ T
CASES
% r8 [) f4 L- a" }' W
7 N2 Y) Y3 |( H! ?2 YWHEN“00”=》z《=a:
( }. f& t6 R3 Y
& \& w$ j3 w7 ]8 n7 n/ tWHEN“01”=》z《=b:8 z# q: ?, e3 u0 F

" ]' c( q: c# w' ^3 `/ E* l2 FWHEN“10”=》z《=c:3 A/ t! H' \, k% U6 Q
& u  t1 m0 G. R% J
WHEN“11”=》z《=d:$ C) a. H' m; d4 D2 ]) i' A9 F

, n% k$ M3 I/ x9 `WHENOTHERS=》z《-=null:
% w! t7 _5 m& s; i- L8 u0 n6 _+ h3 H' {/ c0 j
END
# T2 t: K5 t7 s+ p* `0 c2 {1 }
CASE;. s6 F# R2 `2 O5 ?9 n

. }: k+ h7 v! u7 C6 [ENDPROCESS:) W& H: Y: v9 n3 M' e+ |6 O. B
/ X& _! t7 `, A/ W* f- ~8 _
END" B, o3 J3 i# F1 n4 f3 o

# ]) K1 k2 s2 R& d# m# M6 Tone;2 }5 J4 y, P4 h0 T, F
5 n" N  D5 ~0 E% o. u/ E
运行结果
4 C7 C  q! L$ b* s# D, k5 ]! B# l& g( ^% t# Q
当输入信号“OO”时,输出信号z的值为‘a’:5 b! L* Q/ m: Z' m( s6 ~5 m) {

  G, w8 K, g  p  s8 x' n( g+ x当输入信号“01”时,输出信号z的值为‘b’;
: A% T$ ^- D& H2 _# v; p& H0 u0 x& p1 W  h* D4 B" ?
当输入信号“10”时,输出信号z的值为‘c’:
/ u! ^1 m# L& }$ E2 H! W# T" f, d! H' c4 T2 t
当输入信号“11”时,输出信号z的值为‘d’:
9 h; T* J4 u6 X6 i" j
! ^: i" W( {$ @2 ~波形仿真及描述
8 M: u1 G% @& E/ _+ U9 }/ X, i5 i3 M5 V
输入:
' n8 x( g* a% ?9 @+ i
$ Y$ P' e8 g" R( i+ }* A  l2 T的波形周期为10ns,b的波形周期为5ns,c的波形周期为15ns,d的波形周期为8nsos[1]的波形周期为5ns.s的波形周期为10ns。
2 Z3 @$ y; N6 b# T. }# _" ]/ S, M! ^8 U, w  z4 W9 ?/ H( Z) u
; }3 E, G2 D* c% l! [# m* u
( y/ a, c8 E2 X3 c: c
(2)设计思路
0 }/ W# l5 l/ X8 d: _$ H) y' ^# ~' F$ x% C" f. w
4 a7 e4 t+ [  D% d
2 m6 d1 ~4 ?+ `, K9 ]
定义6个输入信号,一个输出信号,当控制信号A=‘1’时,muxval 的值加1,即muxval=muxva1+1当控制信号 B= ‘1’时muxval的值加2,即muxval-muxval+2。当输入值为‘i0’时,输出q的值为0,当输入的值为“i1’时,输出q的值为1,当输入值为‘i2’时,输出q的值为2,当输入值为‘i3’时,输出q的值为3。
- h3 p( M& g' _$ P7 h- V, o# @# l9 k! |3 v8 u9 \4 d
程序( i# b" u% e* |( ^9 t6 S' B$ ^! I/ l

$ K, r  M# D  j4 H  H1 t/ d8 E; BUSE 正EE.STD LOGIC 1164.ALL;/ I) A  C. f- }5 s0 }$ g, @

5 T3 @% R- y" q, t' _8 p- \ENTITY mus41: ^* _$ w) z$ G
. Y  J4 d+ ]6 M
IS
8 {+ a4 @6 ~* g# M4 }. L4 W5 P: N( K' r  I( _5 W! z, @
(i0ji1,i2,i3,a,b :N STD_LOGIC;
, H) F; H4 Z9 m6 T% H7 U4 L  A7 Y
1 _0 Y# R6 P8 {& m/ i4 KPORT4 ]- a6 H6 C. k0 i# v0 k2 R
/ I  Y2 b7 u; {
:OUT
, q% r/ I* Z! h  k
0 n' I. L" |2 Z0 U9 USTD_LOGIC );
# N; t; A: [9 y6 k7 Q+ f
4 a- v' D( F5 W& F  u1 ~6 kENS mux4;+ j& {9 Z# S; M1 _2 ]) D
- x' v# x. A7 s, o- l9 p  P
OF
7 b0 Y0 x. Y' t& k( q: ~( P, O- b) B3 X( a
mux4 IS
+ h4 o7 c# Y' Y* v9 p- [  i% E0 [8 ?2 K, M; T
ARCH ITE CT URE b_mux4
" {4 }" ?7 c/ P1 I# a9 S  X* y: z) ]) w8 c
BE G N: ~$ P8 ~" I/ Q" M. t

1 R( y, I; v5 E8 ~4 |Process (i0,il,i2,i3,a,)5 [. d/ N$ U, s  n# Q9 G# ?

5 k' v* Q. W7 |& `$ S! CVariable- h4 I( z9 J4 P
1 r& g% I( U  m2 W6 G7 @
0;
9 z" U2 K4 E, y0 F+ H4 ]% J8 o7 M0 E
downto6 F# A# l$ k9 g  G- k0 q

, U( O1 y3 k& `' H; L% A2 smusval
7 G; G, w' F3 e4 A* |1 c3 W1 d; a. B! d1 l/ e- N: H
:integer rang
9 J3 M2 j1 Z0 `2 T% s/ H; o4 T2 t) p
; x/ }! F# {# }: bBegin' t3 E: X8 y( s  M6 Y+ E! [
9 W+ f7 \4 ~2 x8 H. ^0 k5 {
m uxv al :=0;& @) A3 j3 O8 d$ N" |1 T% i1 L: O; f) g

8 ]. R- A+ d4 e+ Dif (a=‘l’)
6 ~- [( J: F; B# U+ m2 T4 d' @' ]# Y" u
musval:muxval+ l; end if;
# P( K0 e0 K; ~( d1 }+ o- W% I4 X/ ]" E% l) ^
then0 u: ^' O4 Z- F0 N

- q* ~. _( [. h5 \if (b=‘I’) then2 L3 j" V, X/ R# B) x" w$ {

, n( `! T2 h; Qmuxval :muxwal + 2; end
: v0 y/ T) D8 N- m+ s. x. Q! c& ?* J# S2 D" o& {  d
if;; v; a0 q/ E  M  ^% D& A* q
, E5 O  l; F& y2 K
is) j$ T. a; R: Q

! q  F6 }, l- h# N5 dmuxval1 y, E6 ?' Z1 {1 r: R. M$ Y

! D. v3 N* r6 K1 T7 j5 ucase
2 \" w" J, S% M$ e' H9 C
) n, v" W3 W) g/ nw hen 0= 》 q 《= i0;. O& T' z* y) ^. W! ]8 s/ g; x
* M1 P  U# e) M1 C/ J! l6 `1 Z1 o! b
when l= 》 q 《= il;! o' C7 Z1 j( C
' \9 j& n# s" |, u0 B1 r
when2=》q《=2;
4 Z! X% E5 E! z  Z- X& B9 x$ I6 T( n; v2 t, t$ \
when3=》q《=i3;
6 L0 U! M: [. ^7 I1 N8 p% T+ K" w/ ]( `2 l0 T' l
others= 》null;
6 B' \& G5 p( i  x0 z* p
1 \4 N! \7 D3 ]; P$ P" Y6 ZWhen/ d3 F1 o( P% ~) [' e

* S( F8 a4 X! send+ h  Z+ F3 E0 }1 h1 P) H: Z
8 B0 l' V& s2 p3 @& v
ca se;$ c+ ~* L- `# L9 P8 {# {

' x6 G' x- M: {& j4 J, hend process;& u' X$ |9 }  k: X9 N  |; R0 X

. R& V5 O3 U* O3 Q' A1 U) }END b_mux4;) [0 c1 E  b$ z: m& z% @; x

5 q) A+ O  Q' Z3 U# j8 t运行结果
0 z$ J! Y% t9 W: k( G
& {7 @1 z" a0 G" z当输入信号“OO”时,输出信号z的值为‘i0’:' g; ]/ n0 E7 z7 ]& f
4 Y. l. H: g5 R0 p  K! d- t
当输入信号“01”时,输出信号z的值为‘i1’:7 e- y& ~9 }, ]

$ R* |- V7 _$ |& N  e当输入信号“10”时,输出信号z的值为‘i2’:
9 g6 n* g( j9 e4 A+ a1 r7 U0 s6 p" ~5 {9 F: ?4 I+ [0 [
当输入信号“11”时,输出信号z的值为‘i3’;
' i1 i0 n* i& ?
- i; o! w4 w' y% _波形仿真及描述
- J& o! Q) Q* u
2 m; @! r% B! X1 B2 ?1 g) Ga的波形周期为20ns,b 的波形周期为15ns,c 的波形周期为20ns,d 的波形周期为15ns,s的波形周期为8ns,s的波形周期为16ns。& ~5 ^2 C& t5 D

8 O6 F9 D2 y. U+ l, y$ U输出! b  V! A$ x3 r) [7 M% X$ \$ Y
1 u# L; G% i: s& N9 j/ N
  • TA的每日心情
    开心
    2020-8-4 15:07
  • 签到天数: 1 天

    [LV.1]初来乍到

    2#
    发表于 2021-4-12 14:14 | 只看该作者
    解给定函数为一个3变量函数,由于4路选择器具有2个选择控制变量,所以用来实现3变量函数功能时,应该首先从函数的3个变量中任选2个作为选择控制变量,然后再确定选择器的数据输入。

    该用户从未签到

    3#
    发表于 2021-4-12 15:19 | 只看该作者
    数据选择器74153芯片含两个4路数据选择器,每个选择器接收4路数据输入,产生一个输出,两个4路数据选择器共用两个选择变量。
  • TA的每日心情
    开心
    2019-11-21 15:51
  • 签到天数: 1 天

    [LV.1]初来乍到

    4#
    发表于 2021-4-12 15:36 | 只看该作者
    有一个设计是以数字电子技术为基础,实现数据从四位数据中按照输入的信号选中一个数,来实现所期望的逻辑功能。
    您需要登录后才可以回帖 登录 | 注册

    本版积分规则

    关闭

    推荐内容上一条 /1 下一条

    EDA365公众号

    关于我们|手机版|EDA365电子论坛网 ( 粤ICP备18020198号-1 )

    GMT+8, 2025-7-26 09:41 , Processed in 0.140625 second(s), 23 queries , Gzip On.

    深圳市墨知创新科技有限公司

    地址:深圳市南山区科技生态园2栋A座805 电话:19926409050

    快速回复 返回顶部 返回列表