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

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

[复制链接]

该用户从未签到

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

EDA365欢迎您登录!

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

x
多路选择器(又称为数据选择器)①功能
  P9 t5 W( }9 _+ ^& z在选择变量控制下,从多路输入数据中选中某一路数据送至输出端。对于一个具有2n个输入和1个输出的多路选择器,有n个选择变量。
# P$ ]( N! x1 D) d/ f. z8 W1 X②典型芯片
) d0 V# {) B& }# l; w( W典型中规模多路选择器有双4路数据选择器74153,其引脚排列图和逻辑符号如图1(a)、(b)所示。2 i$ z/ U+ q: o! [+ r& z
' ?1 g! f, P  M& k3 R
0 k5 k: [5 r! d4 x3 \

* V2 N( J; k5 M: ]0 V6 [数据选择器74153芯片含两个4路数据选择器,每个选择器接收4路数据输入,产生一个输出,两个4路数据选择器共用两个选择变量。芯片有16条引线,其中1D0~1D3,2D0~2D3为8条数据输入线,A1和A0为选择输入线,1Y、2Y为2条输出线,1G、2G为使能控制端,另外有1条电源线和1条地线。
- f) w! y: p% y  x6 }3 c* t7 a! _4 \/ h
4路数据选择器的输出函数表达式为8 b5 d0 O: }8 V7 L* Y+ C7 K7 o
. r  x  Z; e8 ]$ F( v
/ [3 x$ i1 p/ {; q) A% ?# Y; v

7 W; U* h7 w- t式中,mi为选择变量构成的最小项。! g5 Z! ^/ e& `0 v3 ?4 G! m/ Z0 Z- D" I
③应用
" I& n7 X! `) Z8 a0 \. e% I多路选择器除完成对多路数据进行选择的基本功能外,还可用来实现数据的并-串转换、序列信号产生以及实现各种逻辑函数功能。
7 E- ~# [) k+ }: D: |) C; {0 W- `5 J- j, M+ W3 b- T
例如采用4路选择器74153实现如下逻辑函数的功能6 r6 s1 H6 U0 }% D; h* b
7 B4 N1 N; T3 p+ Y! F6 B

! @' h$ d1 K" r1 C. x- ^' U; ~  m* W3 q) J9 a' L. k$ c
解给定函数为一个3变量函数,由于4路选择器具有2个选择控制变量,所以用来实现3变量函数功能时,应该首先从函数的3个变量中任选2个作为选择控制变量,然后再确定选择器的数据输入。假定选A、B与选择控制端A1、A0相连,则可将函数F的表达式表示成如下形式:' f0 |3 D) i2 U' l) b  j$ {

6 b) z3 N' g$ [: ^* }2 Q

6 b+ N+ E2 K( \8 ]% O3 i8 p2 ?: f; B) n5 W
显然,要使4路选择器的输出Y与函数F相等,只需:。据此,可画出逻辑电路如图2所示。类似地,也可以选择A、C或B、C作为选择控制变量,选择控制变量不同,数据输入也不同。
; H4 L% f; a5 o: r* j
) u5 [/ _& I% W, R+ _0 F; ]

2 r! F5 }9 v7 h4 B7 Z$ b- @! C4选1数据选择器的设计1、设计背景和设计方案4 {2 R4 [% F: q
设计背景:: D5 Y1 E0 V! U( ~& Y# _
) \% `$ Z! A; M
该设计是以数字电子技术为基础,实现数据从四位数据中按照输入的信号选中一个数,来实现所期望的逻辑功能。- z. `0 v2 c' S. v( A
# `5 f3 k) N9 X2 Y
设计方案:
* p7 Z3 x2 v. b8 B+ R9 Z8 ?6 m
; ~- g, T4 i7 d$ B拨码开关作四位数据及两位控制端的输入,LED作输出,通过拨码开关组成控制输入端s1和s0不同组合,观察LED与数据输入端a,b,c,d的关系,验证四选一数据选择器设计的正确性。使用逻辑门电路与、或、非的组合来表达4选1数据选择器,通过控制输入的信号来控制输出的信号值。- K% \% e/ ~7 Z2 d; v0 w  X) M

: S9 n& d1 s& z$ P5 s其逻辑电路如下图:' w+ B1 u$ J7 h: y/ D- m: s$ f+ w
* }! t( n. b9 Q5 y1 P' m' `6 W

9 [! r% p/ q1 s; J& ^  n# S) C! j. d" F
其示意框图如下:. y9 c$ x- `5 b$ k& o

' B; V7 T7 g3 \) ?其中输入数据端口为DO、D1、D2、D3,A、A为控制信号,Y为输出。
/ h  `1 W* K# v7 S5 f9 x. [4 Z
, i7 d& e& r1 t% I/ F# e令AA‘=“OO”时,输出Y=D0;' }$ C, b, A! j

: d" K7 @- O/ V& R令AA’=“01”时,输出Y=D1;* V) z- D3 a' k* T
( b% B- E4 R5 r: b: S( }
令AA‘=“10”时,输出Y=D2;
% @0 @- B' j7 U% ~/ t. D/ ^3 m: T# B) Y2 g5 u& T! t) y) S; d
令AA’=“11”时,输出Y=D3;( v/ j' R/ j% k1 O! _
( e0 e' h: f6 T! L' Y& v1 G
5 S6 V. \4 m8 Z3 H

! U, Z3 K  G5 N真值表如下:. p' w# K( M$ C3 i) p8 z
6 C# U" Y% x$ m+ o* Z& Y. \# E/ y

0 F  \7 ^% g8 u' ^% e
0 _. f5 d# m+ _8 @' d) M
2、方案实施
4 ]& {( |* \. b& u/ p* ](1)设计思路0 M# J7 _1 ?+ U. c

9 q$ @$ V- A$ n
6 _1 l. O2 x8 h2 f9 p
8 p) v) `4 T+ j( n3 j2 x
四选一多路选择器设计时,定义输入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。这样即可实现四选一数据选择的功能。
4 k3 c2 [$ @8 u2 F( X+ _' g. I  Q/ k4 A% L; S5 j6 D2 V5 Z) _# R  ?8 S
程序
# y, M/ c& y  \7 v0 ?8 g5 I, ?' c9 Q, I  l! R/ n
LIBRARY正EE:
/ H! ]. U% M. x0 Q0 W- x/ o) G2 U  ^+ e& y9 M, C  S1 `
USE
& Y; s8 ~  v3 m  a3 P5 V
  [6 e; Q/ A4 j2 M, w( qIEEE.STD_LOGIC_1164.ALL:0 }& _3 O; r/ t
2 D' e( ]  d, J% a1 M
ENtiTYmux41is
9 G4 T) `( q* \9 F2 {; h! F' T3 Z' B7 r2 v+ l9 }
PORT(a,b.c.d:NSTD_LOGIC:
9 h+ ^1 h5 L4 M; \; }1 q" |& K) W" P0 K  c
INSTD_LOGIC_VECTOR(1
* o+ k; @( m; ^2 r
' n- k5 K# ~# f5 @+ H# k4 \DOWNTO0):6 W9 C2 V) ?' u
  @  t+ X% @5 Y: [
STD_LOGIC):
8 k9 {7 `2 f) ~8 }* Z; T7 R  O* _& ?4 k/ y8 C  t3 R
OUT  M- [3 o3 F3 T1 j; m
) Z2 y9 L, E) e6 i$ w* A0 U! k2 @
END1 N) g+ Q" H& Q& y7 b( \4 P- g" @, q

, z8 @, k! f) @1 Cmux41:
- H  Q/ `2 C  p4 ~" x
' w  {- E2 x4 N+ G2 t0 h3 hIS
  y) b5 k+ N5 O3 L: g1 Y0 d; i9 H  y+ a2 q0 v& J+ n
ARCHITECTUREoneOF
  ]. U7 n3 g' `' q
4 g+ P+ E% T" a( Y7 z  Tmux41
4 Q0 M& ~- ^  j9 L" S
1 h. H* |* F# }5 Z0 x' ]: QBEGIN
( |. \& l+ H7 [; q* r- C9 Z5 K
) n* D. p$ ~3 ]8 c+ g: k. C- r8 M3 W9 vPROCESS(s,a.b.c.d)
, Z7 V9 ?. S5 @
" O' c6 l7 |0 L; D4 A* [BEGIN
1 q/ I( z4 }  J' M( _* v0 H0 O8 J# z' k- i0 j* Z' `+ {
IS
* \/ \$ I7 c4 [
: U& y! a. ^  B+ ~CASES
3 Q, b+ n3 c: i7 {' @' a5 o9 j
WHEN“00”=》z《=a:
6 @9 f6 M, w# \, K% E! J( @6 D
2 a+ j8 N2 K3 `. x2 k: QWHEN“01”=》z《=b:6 O# O8 Z" k/ u2 G  O+ P  A

  S9 G( C- s9 m9 G2 G8 R& NWHEN“10”=》z《=c:
! w5 A  g% \, _& }6 h9 C) y
- p' z$ S, O. v% _  J$ J) aWHEN“11”=》z《=d:
3 S$ d! G: L- x' C4 o+ V$ @2 S- x4 q  [* w! ?$ {
WHENOTHERS=》z《-=null:% ]- L/ d% g( q% I) v7 F3 z1 {

7 g1 @9 e  m$ T8 [END
1 S6 R3 S" Y: }& D
6 P7 v3 r; a% |# l9 A; f' p: I3 HCASE;: K( b; K7 @3 l4 ], k" d

% p! |% \! |9 \- J8 ?) sENDPROCESS:7 p/ D0 l2 g" r1 y& o3 \! u

; r( @$ z+ ?* ^$ GEND
/ T, r: \1 w1 u- M# E$ w
9 x# E8 J) G* yone;( u) B+ `! L% n3 S& ?6 k

) u" T1 h6 M3 u, A' S运行结果) s  S( A) f" K) d$ o5 f- R) Q5 h
8 q0 [3 O6 ]5 w2 \" {; r8 N" W
当输入信号“OO”时,输出信号z的值为‘a’:+ S! T9 t) P3 p5 t6 G* y

4 W2 z" D# u* k2 s1 S6 _0 k当输入信号“01”时,输出信号z的值为‘b’;# {9 E0 e; R/ d! A# ]$ J

5 t9 V) `0 K/ w% `' |+ b' D当输入信号“10”时,输出信号z的值为‘c’:
2 e, ?* z/ s' t6 a, _5 C4 f
: j* p! g6 N, @) {* t' x/ d当输入信号“11”时,输出信号z的值为‘d’:
  c) |- L# G& u# Q7 M1 u9 G* j" z8 N% X
波形仿真及描述
! M# K' e& Z' d3 J- u) K' C) M7 z! F" _: P& ]
输入:
8 D6 N" g/ ?# H7 D* n7 q, F
+ p# c. E; E# C7 _6 j& j的波形周期为10ns,b的波形周期为5ns,c的波形周期为15ns,d的波形周期为8nsos[1]的波形周期为5ns.s的波形周期为10ns。6 v; W/ j; I8 `* T

7 P* j" U" W' |9 b7 [
4 X! \/ v- h. J1 b, z  H
8 X8 |' r/ O) F
(2)设计思路9 w# I( O/ `4 ~+ r/ o

$ b% S3 ^! p1 [
: `) G- H# I9 x6 G* I# j7 I+ e1 f/ l
" P( O" s* l( @3 d! {8 q
定义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。
# _) A) g( m0 B2 T5 v7 Q3 I  s
3 @; X- S+ e7 U1 Y程序9 [5 X  o3 G% C8 S+ I; S$ ]
; p+ S: ?* k; n/ _; _
USE 正EE.STD LOGIC 1164.ALL;7 v- v; s$ d# b) U

5 Q8 t5 V2 V$ w# U& Y5 Y0 D, N) eENTITY mus410 X" K( }6 Z4 w( o' ~
& ?5 p0 u( N, L/ O
IS# Q1 K& i* V7 `! C" ~
% T% r" S  `+ @$ t4 ]+ a; k4 S
(i0ji1,i2,i3,a,b :N STD_LOGIC;% U9 s7 l% O8 ^6 S

2 W0 P- o8 C; l$ _# N/ pPORT
6 d6 B) l/ T: a5 z: G, _8 Q" v
. ]% _8 V3 q4 h: G1 T9 t" h:OUT. M& S  C$ i3 H! ~: P7 j8 o% S

: T, U$ C0 G+ W; b- a4 H# OSTD_LOGIC );( y9 ~4 c# @2 y5 h; c- J

+ F0 M, B$ ^. ?5 a6 |. T/ e3 fENS mux4;" ^; Y& R( w/ P! [9 g
" ~& c, D9 h$ L+ Z2 t, y0 }/ q
OF
) o5 d' G! G, ?" N
7 b) b9 Q" b$ G7 W5 f/ b, ~$ lmux4 IS+ Q2 X0 z5 \* E8 B. w" H, H# D+ g

9 D" P3 `1 P$ h! AARCH ITE CT URE b_mux4
9 v2 c- R9 c3 |; `& |" W
2 `6 Z$ i: ?# J! ~' t& YBE G N1 r: x6 ~# }0 j) _( }7 y9 N3 E6 E8 t

5 C0 j/ I5 Y7 d; JProcess (i0,il,i2,i3,a,)  y0 e. T4 k% P4 Z3 d  m
! v4 H+ g- z) m# w
Variable9 s2 d! z# f' y5 a, l
$ O" w- Q7 I5 n% u
0;  p) i9 k* s0 g. j- ^

* b- R! g' h+ o9 F9 n; s' J8 p7 H7 Kdownto
# i8 k1 u: b5 F9 }5 q# p$ l5 a1 ?/ T; t) M% }6 @, V
musval( X$ N/ {/ K; H: |7 j0 W+ y
8 `2 R, q, [. Q. V! o) ^
:integer rang
) h0 H; q& A3 e& i6 u
3 y6 g* ]& t4 u3 NBegin
* s% Z+ v5 H2 q" h5 L" ]/ R- ~$ Q  A* n: m3 a, D( i! n  f
m uxv al :=0;" ^# V' p  O3 O) p. D/ `
7 a2 ]7 ]% x' a
if (a=‘l’)
; x% k* [! H. l0 I! Z
& X  G. J5 s0 Y3 H9 Gmusval:muxval+ l; end if;  y: `* h& R3 W
5 h4 v' B, N2 Y' C( Q% H0 C2 [
then
/ q6 [& y4 _+ v% O# O) _6 p( S, f" j& r3 ?! i
if (b=‘I’) then
# Y# U/ Q- n) A7 T( Y) C! n6 w7 [- X7 M- U
muxval :muxwal + 2; end5 [7 ?2 z/ ^% c2 L
6 T/ v8 P. B* _* P/ K; {4 k
if;
1 D& Z$ I( t0 }, y" W1 \7 m# z+ J( y1 L2 a
is
. K! n: S, H/ J1 B# o3 Q3 ~2 [& Q
muxval8 ?% \8 [2 p( B& d  i

8 {- r4 Z5 j( F6 Kcase9 Q% a2 \9 R. o8 X! X

) a6 P0 H5 V, b; c7 q+ ?w hen 0= 》 q 《= i0;
. e- G& }2 M+ s" O% j2 M- Z& k+ J( E* y* ?' M4 _  A9 p; T
when l= 》 q 《= il;
5 |0 `+ X" d" y+ E7 F/ T) @$ |0 o; b/ V3 ]. R  o7 ?# n
when2=》q《=2;( d$ n4 L4 }2 Z1 w4 h

7 H/ Z4 [! b8 R2 ?5 D+ owhen3=》q《=i3;- c: M# r, ^5 \3 D  S$ B

3 n$ I' S# L+ }) R+ Sothers= 》null;
" e8 L- C$ f8 d5 B4 e
, O# |: w( V+ ^" Z$ i- m+ gWhen/ T2 n2 N+ i8 M

, {& B/ `( `, ?) w% \4 mend* D9 q- h) a8 _8 B+ u

! W* ~9 y$ l% `: K7 wca se;2 I- t% [/ y! v4 |; T8 Y' U) x$ G
* z  D8 w  b  ^* W) f
end process;
1 F. r  M& [9 [7 N- O' T. W* |  n2 I6 B% C3 P: S: k
END b_mux4;' ~' o- h8 _/ w7 V) H# `
2 \. Y* n4 ]2 d. f/ P: Z" M$ K
运行结果' [. t8 L. N3 t& T5 _& d
: Q8 w& E% N* A3 a
当输入信号“OO”时,输出信号z的值为‘i0’:  C% B& {0 }: P; K8 O) l
$ I+ \6 M. {: L/ r
当输入信号“01”时,输出信号z的值为‘i1’:
- g3 }# D& K* o3 S' d& ^3 R
5 q) S9 h. [* b4 h当输入信号“10”时,输出信号z的值为‘i2’:1 K! E, G/ ]; v1 d
7 Z0 P* D1 g& S* i% w1 w! u
当输入信号“11”时,输出信号z的值为‘i3’;
3 u" V0 B+ |0 ]2 j" X( ?4 @3 N" O1 [% b4 K
波形仿真及描述
# f/ {6 D% q8 D. Y5 |
, f6 X/ L! \6 A9 a$ R" S8 B9 N" Ga的波形周期为20ns,b 的波形周期为15ns,c 的波形周期为20ns,d 的波形周期为15ns,s的波形周期为8ns,s的波形周期为16ns。
  q/ n, M6 u' G" t" ~, m" O& U& @) [& m3 w( Q; G3 u
输出
( n& Y2 m+ s; V" B4 E, h1 A) q) Q* \6 I. n5 Q- H+ T3 `3 w
  • 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-20 19:43 , Processed in 0.140625 second(s), 23 queries , Gzip On.

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

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

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