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

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

[复制链接]

该用户从未签到

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

EDA365欢迎您登录!

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

x
多路选择器(又称为数据选择器)①功能# M$ Z4 ?7 Y/ T2 l* s8 a% ~
在选择变量控制下,从多路输入数据中选中某一路数据送至输出端。对于一个具有2n个输入和1个输出的多路选择器,有n个选择变量。3 a: z) s* U  \# n! M* ~5 |' D: a  x" q
②典型芯片* F9 \5 \; N. ^
典型中规模多路选择器有双4路数据选择器74153,其引脚排列图和逻辑符号如图1(a)、(b)所示。
% E4 G9 R: @% G3 L
2 W" ~; w% I. U% r$ M, [; A) L+ H" {' u$ x
8 S$ x' p9 U0 v/ h8 m
数据选择器74153芯片含两个4路数据选择器,每个选择器接收4路数据输入,产生一个输出,两个4路数据选择器共用两个选择变量。芯片有16条引线,其中1D0~1D3,2D0~2D3为8条数据输入线,A1和A0为选择输入线,1Y、2Y为2条输出线,1G、2G为使能控制端,另外有1条电源线和1条地线。
  U- C# y2 |; S& P
5 P) p% Q3 d. x) W- m2 w' H% L4路数据选择器的输出函数表达式为7 w8 k! m0 b# o$ K7 n# Y$ _

) h$ E9 L8 J' T. s% _( O+ i; r2 u' I4 r4 n4 N

4 l9 f  R; h( d+ ]0 F式中,mi为选择变量构成的最小项。
! e* ~% _; L5 U+ R8 r3 I③应用# K$ d6 }; C" h6 q" ~
多路选择器除完成对多路数据进行选择的基本功能外,还可用来实现数据的并-串转换、序列信号产生以及实现各种逻辑函数功能。
7 [# b* {/ j1 J/ `& W0 B6 z0 @4 D
6 u5 ?' U! l$ L/ z例如采用4路选择器74153实现如下逻辑函数的功能
. k3 d* Q3 J0 P" `7 Z5 J% L8 u: K$ Y
/ P( b% o  K% A# r

8 J( ]3 O, P( Q% {  C解给定函数为一个3变量函数,由于4路选择器具有2个选择控制变量,所以用来实现3变量函数功能时,应该首先从函数的3个变量中任选2个作为选择控制变量,然后再确定选择器的数据输入。假定选A、B与选择控制端A1、A0相连,则可将函数F的表达式表示成如下形式:4 f8 b+ ^3 g& q' l; n- _# h
* K: ~& Q( h% m# W/ P. A) y1 D
  i6 J; \! ~+ k
- D/ \, e3 O& D& Z5 k! ~, F
显然,要使4路选择器的输出Y与函数F相等,只需:。据此,可画出逻辑电路如图2所示。类似地,也可以选择A、C或B、C作为选择控制变量,选择控制变量不同,数据输入也不同。
9 t1 W7 G- J! i& F/ ~7 w, k- u- Z5 ?
2 @" E, x0 |# Y6 f# Q+ g+ `; C/ G
4选1数据选择器的设计1、设计背景和设计方案) u" {0 l8 ^0 d3 o1 A
设计背景:1 U! r" \" y1 S$ `

( M0 @+ S1 f- |) ^+ Y该设计是以数字电子技术为基础,实现数据从四位数据中按照输入的信号选中一个数,来实现所期望的逻辑功能。
* W. S0 k1 \% _" V0 w( w  o  g  N9 t/ J9 {
设计方案:
% K4 E, }/ J- j0 u+ Z' W
  V; L0 h7 f7 |* [; a9 K# G+ g4 i拨码开关作四位数据及两位控制端的输入,LED作输出,通过拨码开关组成控制输入端s1和s0不同组合,观察LED与数据输入端a,b,c,d的关系,验证四选一数据选择器设计的正确性。使用逻辑门电路与、或、非的组合来表达4选1数据选择器,通过控制输入的信号来控制输出的信号值。) ^) r; `( @: ]9 X
7 v/ J" N' U: v- u6 V8 y
其逻辑电路如下图:
  z7 [% u) Q( g' l5 i! o& H, g( A$ @* ^
! O7 c6 k" [& t5 W2 ~5 v$ g* T( e
' Q- Q$ a+ e+ O+ G9 p  y
其示意框图如下:  B3 Q8 [0 \4 G8 v9 y6 ?' i  @8 @
8 @- z; d" T0 t" n: N& ]  i+ C
其中输入数据端口为DO、D1、D2、D3,A、A为控制信号,Y为输出。
) s% Q3 H) x& D3 A% ]$ K8 ~& G8 O7 D, q1 U7 i
令AA‘=“OO”时,输出Y=D0;1 L  V2 \7 _- X) P, g0 K. k4 F. \4 t

6 l: K" K  Y  ?  M# p2 ^* M令AA’=“01”时,输出Y=D1;2 B3 j$ T& q( H* {8 B) ]/ @$ g

0 C2 K# N- ?7 D' O令AA‘=“10”时,输出Y=D2;- t5 ]0 n3 u* g4 \# X  Z
' @' v) [# r. b+ y
令AA’=“11”时,输出Y=D3;
6 W- }7 E8 J: n7 v) m. m+ ]1 }( m. C  C* _4 I7 i% U

! u4 L/ w, C& d' z/ D) V+ F/ s$ H1 K
真值表如下:
: g( t/ t6 ^0 H- v6 u
" g2 t3 ^& X5 \( c  z2 A
5 `* p6 T% j4 e1 Q, {
+ b+ M3 A/ K8 m3 C8 K8 D' g' ]2、方案实施
) X. _" |5 |' `0 u9 k(1)设计思路
) g9 a7 ?& f) H, Z1 ?+ m( T4 |. Y: g, N

  t. m  E. F( R7 h
  J" O8 Z, p, z5 M0 R8 J四选一多路选择器设计时,定义输入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。这样即可实现四选一数据选择的功能。8 d7 s. l+ o& g
! z* k1 Y& I, ^( u
程序
9 y' A: p6 v0 C: E! L/ r
7 H7 r) t) ~+ q  ?LIBRARY正EE:2 ?2 N; }  T+ a& p+ C8 E. J/ g+ a- k
2 ~1 W  j2 S* u+ M
USE/ i0 |" h8 f$ C, }8 ]1 i$ R+ y! J/ N

3 |  O3 \1 z9 H, QIEEE.STD_LOGIC_1164.ALL:
$ r; M. R& q* Z% |' q4 P
% F% x+ g& w/ l/ Q; W* }& H: OENtiTYmux41is& x* g8 f. j. b. o
+ R& A3 {( I3 h2 n. D# ]
PORT(a,b.c.d:NSTD_LOGIC:
1 {/ Q% ?+ Q2 l2 x
# q2 `: K$ q, tINSTD_LOGIC_VECTOR(1
. V0 @6 p: ]  O$ z5 a
- j# U. \8 v6 g. O& r; Z( F3 GDOWNTO0):
/ {% b' M& B: S0 v' d; z: J$ G. H+ Z
STD_LOGIC):- |4 K$ F% A) f+ b: @0 C+ v8 Y

  y9 T8 C+ A9 ~# _1 Z, YOUT
( r5 r0 w6 `7 A9 x3 y
$ O3 G# J+ Z# Q8 \( r6 OEND/ a8 w5 S% f2 s2 q5 S1 k
5 w/ e( u% A: y3 T  o$ t
mux41:
4 _% Q8 q/ ~/ n4 n5 V+ H7 ~; Z2 N+ j9 H
IS" F6 A! D; l7 ]$ u
% V1 l) \; y) o( Y. y) E9 g
ARCHITECTUREoneOF
% a7 {7 E7 ^- J$ }% i1 x4 c7 q# O7 b1 J- L" r: _8 t! v2 F
mux41. o8 N7 ~$ t+ A  l

8 u0 G  g# W0 l# \& a5 A$ A* Q  CBEGIN) p# P$ K0 @: |3 K9 C& g) ]
* {, n5 F* b& _" }6 B  A
PROCESS(s,a.b.c.d)) A& N" p3 X! C& H

$ b$ A, K4 E) `( Z. R3 B6 nBEGIN( `8 H# y2 Y) Y# |1 g1 a8 x0 `# s. o

: u' k  i- k) ]' v' N* r7 B& h. n8 |: MIS8 @' Q# J6 D, c# e
1 A$ j* _- `2 a; m# H
CASES
& m; E5 C4 {( f9 I6 O  W8 F/ D; O
# d2 k$ u  w# NWHEN“00”=》z《=a:6 r- h# M7 N7 [  j- k
# L$ m; P# r+ F7 \& X
WHEN“01”=》z《=b:
& x: G6 H& K4 I5 s8 O
' L1 i, W# L1 N7 X: tWHEN“10”=》z《=c:
6 o- f! `0 d7 }# N
! i# W" }/ O' H- wWHEN“11”=》z《=d:
5 G5 A. F$ s0 B$ H/ ^9 F
, p3 r( X; M. G8 S3 \) D/ lWHENOTHERS=》z《-=null:7 a/ `$ |+ Y9 O8 G8 i1 Y2 P

5 L1 }( k" Y& S& h+ zEND
# Q0 I* i- Q+ E7 u; [
0 m8 _0 y) f; |8 q" {* P3 s& sCASE;& J4 ]9 E  B) {  ?, y/ S$ y, Y) B
$ p' @4 N6 \/ [! K2 c/ z: d
ENDPROCESS:
- }3 U3 Q7 C# t6 O. a9 f5 z
, O/ o2 v( D9 S8 J8 c2 f* MEND
& w# w$ f! k" f# e9 \: U* j1 \" N8 P2 Z7 W" {8 x8 ]* g: u
one;# E2 z" O  {1 [

( @6 K# _( {5 z运行结果8 E1 G& {. Z' r4 B" ~
  E4 s& g5 l8 W$ C8 c7 O
当输入信号“OO”时,输出信号z的值为‘a’:
$ L% ^; i3 |7 B9 N: N+ g- ^4 n4 Z1 L" x- {7 m
当输入信号“01”时,输出信号z的值为‘b’;
2 \+ V9 B7 E. G- X# \2 J  s, o$ @7 x) m$ S6 D
当输入信号“10”时,输出信号z的值为‘c’:% N0 E1 t9 B9 S
+ v4 ~) f6 V2 m( Z7 _
当输入信号“11”时,输出信号z的值为‘d’:1 k' a" H4 `0 J  t0 [4 X; V

4 P% j2 Z# b' w! T波形仿真及描述
! D9 B8 Z) ^; Y9 }7 m
2 u( @  k" ~( {/ F1 f7 e, M输入:
: K- Q. f5 F# Z4 [0 |
* K) f/ Y( B9 D6 ^6 i  ^. x的波形周期为10ns,b的波形周期为5ns,c的波形周期为15ns,d的波形周期为8nsos[1]的波形周期为5ns.s的波形周期为10ns。. ?6 Y6 w% z$ f3 {5 X/ ~
7 S- W: X6 n6 p2 m
. X& a' b9 i% {/ m
/ k; O5 `& X: T$ [1 ^- [( O
(2)设计思路0 V8 O6 o# E/ p7 H* p' e# E
& [+ d" G7 {& o" r  R

0 n* N! m% b5 |0 W' Y  x3 R6 @5 ?/ P, _1 d* V1 {
定义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。7 s0 N$ B- a% b2 w% d4 p

) R# Z$ f8 ^1 Q+ a6 a9 m程序
1 K* x) x4 O9 O4 [& o2 f7 _) P& ?3 }1 z
USE 正EE.STD LOGIC 1164.ALL;
6 O) |$ R1 l% n- I8 u- L$ v! Q. B, S. k
ENTITY mus41$ A: m" T' L9 v% p

3 f$ V0 D% m  y9 a8 f0 P; ~6 `IS
( [$ e$ ^7 T# P4 ^) w
& N4 }; {" X8 h! k# C(i0ji1,i2,i3,a,b :N STD_LOGIC;8 B5 }) h* n- [! f: G
# O1 n! C- w: I  M) V
PORT; ?! H3 g8 q/ i

) k7 s  d; y7 x; X:OUT7 b/ g' P% X- `2 Y( o( S" f, `- Q
, p" T3 [  W: O5 |, b
STD_LOGIC );% o/ Q9 U5 O5 W/ Y1 c! |- ^, ?/ l

( I0 }' j( _5 w" R  X8 I2 o$ x* wENS mux4;2 d4 Z1 e' E: Q! i
& L- f2 t, c7 c; |9 T/ \
OF
5 C2 n6 s6 f2 g. X" \" l
8 ^/ y8 b( b2 Q. d- V+ W/ Qmux4 IS
" }# j: M) u2 F5 ?  f6 L) W, `" X4 c2 x6 {* j
ARCH ITE CT URE b_mux40 k* ^" f1 X' r" c* O

$ l! _: ?2 h* n% XBE G N
9 q6 p9 ], _: G; U
3 i  }# K7 i' V6 O5 bProcess (i0,il,i2,i3,a,)
& Z6 K+ @3 F0 z* _; h6 V5 [3 q* |( M1 c: X! ?* W* T3 L% p* P) v
Variable! q  U* ?/ q( u% L$ H
6 }) v1 |! _6 X! s+ d
0;
" E' \( c2 c$ l- t
% ~3 a3 X7 f7 idownto/ ]% |# |: Q6 N, H2 \1 F
% ^& L2 a. h. T/ R1 J8 h; h
musval
" M$ D1 M; d3 T  i5 ~# D
6 s- V" J# r/ `* @- L:integer rang5 s/ b( ~7 A) h4 z8 O. e! e5 t
" `+ A- @6 e& I  ?# T0 x
Begin* f; ?! |! \1 a3 }, b( J: W
% e5 y( W6 Y% P* h6 D1 h5 u. J4 I
m uxv al :=0;
+ F: S7 t1 e5 ~; R. `: M
* G9 h; O8 {5 h! \if (a=‘l’), J( [; ?. n# l$ {

2 Q; ^' D7 V( Jmusval:muxval+ l; end if;
- P5 W% M. K3 x1 G: G1 v" y: M  c& x% t
then
6 {$ U  y) `3 S4 ?' G! c; r4 z8 i/ L* Y; `5 I
if (b=‘I’) then
; o; j' b  N3 u6 B
: V8 C& n0 D% v; m9 p! lmuxval :muxwal + 2; end
' }9 t0 @7 z- p' f& @( g# q: l9 s! I9 Q
if;
1 r  G+ e, ~0 s: y8 M, C: |5 `4 ^: ~' B: c* W
is
" K# ?2 ^& J/ Q9 ^  |+ Q3 }0 O. X: U% X1 K4 ]1 V1 {- T6 Q
muxval/ i3 _2 P1 ~  R$ E/ f

# [* ]+ f/ F- P  h( t$ icase; T3 n; d% e. T. ~+ p/ \

8 k* P$ F$ P0 O  w; p. |7 D& v- Gw hen 0= 》 q 《= i0;
, F# d- C- z- S0 D& S4 B% H' M* o& u4 `' g
when l= 》 q 《= il;- h( b- _9 _* L( W
; s8 s4 b, t* V1 x- M
when2=》q《=2;
1 `" |( {& r% _' E/ v2 }
+ r1 W( b' a, \% H$ }$ O6 c3 O* [when3=》q《=i3;
4 W3 e; j  p# H, D5 ~: ]( e3 J8 _) d
others= 》null;
) |. Z+ i& q/ Q
7 j9 T$ e+ W# c3 M. k  \  e* K* \2 `When
% p- N) v2 }' y" K( @0 q% b; L( G  w0 m$ b. X$ ?
end8 |$ d: O: s0 ^, x5 T
- o! |+ l9 D3 n3 P/ [) E/ X7 f
ca se;: [# r9 P: `, u. i$ T0 t3 L( \' ^
% P! F5 l; U; X& ]: ]2 R. U6 p: i6 v
end process;
( ]+ D% W0 R  S9 K3 ~  h$ Q- p$ R
END b_mux4;% w" w" ?! `( u4 v
8 n9 ?; Q" G3 ~" |3 R
运行结果# R2 k9 K% b0 Y# U8 n
& @2 G) r9 m6 p# Z+ Q
当输入信号“OO”时,输出信号z的值为‘i0’:4 @% I- k) L1 u2 [0 T) p
: p9 {6 |- }  c! X5 I5 c2 v
当输入信号“01”时,输出信号z的值为‘i1’:
1 K# ^# f) s& L& V3 t/ o. W, f0 H) i; V
当输入信号“10”时,输出信号z的值为‘i2’:
5 @8 W+ ^/ ]9 a% A( V
2 O, D6 R+ e( ]  H  J% v9 {; z当输入信号“11”时,输出信号z的值为‘i3’;
* x% a1 U! e( @4 j) E7 R# I  R* L3 d  @) d0 w& p
波形仿真及描述
- a& J4 S# y5 Y: `  G
& X' I7 [% ^  }" q; Fa的波形周期为20ns,b 的波形周期为15ns,c 的波形周期为20ns,d 的波形周期为15ns,s的波形周期为8ns,s的波形周期为16ns。/ D9 C5 Q$ `; _/ j

  E" g2 C  x8 S输出$ M4 j- H+ s9 w3 ]3 V, k

+ g6 F* L3 J3 N0 ?- v' [* q8 d: N% m8 W7 |# y

该用户从未签到

2#
发表于 2021-10-26 15:07 | 只看该作者
在选择变量控制下,从多路输入数据中选中某一路数据送至输出端

该用户从未签到

3#
发表于 2021-10-26 17:34 | 只看该作者
多路选择器除完成对多路数据进行选择的基本功能外,还可用来实现数据的并-串转换、序列信号产生以及实现各种逻辑函数功能

该用户从未签到

4#
发表于 2021-10-26 17:35 | 只看该作者
数据选择器74153芯片含两个4路数据选择器
您需要登录后才可以回帖 登录 | 注册

本版积分规则

关闭

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

EDA365公众号

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

GMT+8, 2025-10-31 19:45 , Processed in 0.171875 second(s), 23 queries , Gzip On.

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

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

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