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

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

[复制链接]

该用户从未签到

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

EDA365欢迎您登录!

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

x
多路选择器(又称为数据选择器)①功能
/ N9 x' U6 _" L+ X$ q7 I9 v- v在选择变量控制下,从多路输入数据中选中某一路数据送至输出端。对于一个具有2n个输入和1个输出的多路选择器,有n个选择变量。
- K3 f. K1 ]; e5 z9 l0 h5 u②典型芯片
* _& A/ M- h$ F, f- X6 X) l4 Q典型中规模多路选择器有双4路数据选择器74153,其引脚排列图和逻辑符号如图1(a)、(b)所示。
# P# i3 V" ^4 x, Z4 b1 N
4 `* w: Z$ p' e& k2 {2 e
' k. T2 d) s! e! m& B9 \' H( m( n2 t; t
数据选择器74153芯片含两个4路数据选择器,每个选择器接收4路数据输入,产生一个输出,两个4路数据选择器共用两个选择变量。芯片有16条引线,其中1D0~1D3,2D0~2D3为8条数据输入线,A1和A0为选择输入线,1Y、2Y为2条输出线,1G、2G为使能控制端,另外有1条电源线和1条地线。* Q2 r. F5 i" j* [5 f( }
3 I4 ~& A. n' B0 l8 [
4路数据选择器的输出函数表达式为
, ~) |+ C6 e7 |' C  I" W- r2 |; C! o. T2 \% e, y
. c6 u) t+ c9 ^& I5 Y, g4 e2 H
" m5 r" n4 ?0 p4 `+ O1 J; {
式中,mi为选择变量构成的最小项。1 ~% Q5 ]" @2 Z% M  ~; ^: z7 l0 v
③应用
9 p* u# O$ N: b4 O多路选择器除完成对多路数据进行选择的基本功能外,还可用来实现数据的并-串转换、序列信号产生以及实现各种逻辑函数功能。8 _7 f- q$ p7 o9 H1 v0 c
8 s; F& j& t; W4 {7 r5 v
例如采用4路选择器74153实现如下逻辑函数的功能
( K4 n0 {8 I3 M6 l& F9 h
* }. z! O" {( ?" t+ W9 q6 [- [) M) x/ h! ]& v  [8 R
3 o& U$ W$ Y$ b& Q
解给定函数为一个3变量函数,由于4路选择器具有2个选择控制变量,所以用来实现3变量函数功能时,应该首先从函数的3个变量中任选2个作为选择控制变量,然后再确定选择器的数据输入。假定选A、B与选择控制端A1、A0相连,则可将函数F的表达式表示成如下形式:" p% _2 L. h7 o& ~$ {. X

5 U) M; \) u' H7 C, U- g  n! H
# i0 N9 e0 ^5 L" ?  O8 d, o( X! x2 ?1 S# d" D. S; q/ V
显然,要使4路选择器的输出Y与函数F相等,只需:。据此,可画出逻辑电路如图2所示。类似地,也可以选择A、C或B、C作为选择控制变量,选择控制变量不同,数据输入也不同。
: p9 q8 d: b% j; e2 S) C
/ L$ g4 J: J+ N: ^0 c4 c- _
5 q6 b; s! g+ G; P. P/ V4选1数据选择器的设计1、设计背景和设计方案
) [* A: g, ^  O" y. r4 L设计背景:0 f/ d2 |% C: B6 X. W
# k& Y- `/ h1 \- v/ G& r/ u3 Q
该设计是以数字电子技术为基础,实现数据从四位数据中按照输入的信号选中一个数,来实现所期望的逻辑功能。
+ g+ J, \# J! x
4 g- M# S/ Z  Z4 D设计方案:) }$ D0 h; \7 u$ B9 p$ k/ m9 K

! h2 M- P7 ~1 t* Y6 e0 @% \拨码开关作四位数据及两位控制端的输入,LED作输出,通过拨码开关组成控制输入端s1和s0不同组合,观察LED与数据输入端a,b,c,d的关系,验证四选一数据选择器设计的正确性。使用逻辑门电路与、或、非的组合来表达4选1数据选择器,通过控制输入的信号来控制输出的信号值。' ~0 t+ A, J2 z5 u2 J% I8 ?6 Y& j: U

0 D: K8 }, T5 E4 A* \其逻辑电路如下图:
$ R( G2 }% Z1 Z1 Z: l: j3 ~# o$ |9 _7 h' H  m/ z; P9 D1 q

2 L7 ?) t+ c4 K& @. i2 J8 ]! v
0 z1 s* `( B: d5 E3 d其示意框图如下:+ e9 V, n/ [- v( ^) R( ^

4 @( K4 }+ ]! f7 w! B# f0 P其中输入数据端口为DO、D1、D2、D3,A、A为控制信号,Y为输出。9 y2 p( `' E9 j: E3 ]

0 K6 z* w% O* [  O9 w; }) R8 Z令AA‘=“OO”时,输出Y=D0;3 `  B, L" @# R; m: ?/ e$ X' O

- ]" a+ g/ ?. K令AA’=“01”时,输出Y=D1;
4 m$ m! K/ |2 w( u- z
3 [$ r+ `0 N' b令AA‘=“10”时,输出Y=D2;; @" {4 ^. I7 d+ B1 _* M

* q4 \$ }3 {+ X令AA’=“11”时,输出Y=D3;
, a2 J: r' t; u) c
' K! M6 [/ v9 M5 f) y% s9 x- r9 ]( q9 I% e. T# x- M" E& g

* X$ |) }* T6 ^2 s' z真值表如下:, d+ I0 ?9 I, s- f2 p" H4 ^

# m" L5 W# a* t& d: V5 B- j4 |
! o4 @5 N" F% x+ R  T' X! O/ F% r
2、方案实施
, `1 G- @  R- _0 \6 r(1)设计思路
; b* Y% D' `6 M2 T5 W6 T* e7 b1 z$ A" s0 ~" s7 O' m

' e) ~4 Z( t$ p
" v( N2 k% O7 y4 Z+ D四选一多路选择器设计时,定义输入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。这样即可实现四选一数据选择的功能。9 Z: ~  W# @2 X- G5 A  A+ z

! Y( F. I) A* O- \程序
9 u' K/ c! \+ @; C7 l
/ x) K+ C- A, @0 i4 q$ m' |. uLIBRARY正EE:4 e  y1 f6 C7 ~! |6 X( B

1 U3 g+ J8 a/ Y5 j  w: xUSE
; D/ i: x+ o; c- V" f1 ]# `
8 z2 U. q; L2 z9 _7 w/ `IEEE.STD_LOGIC_1164.ALL:
6 k" }& y$ F6 |7 A. o
1 i- @7 [* n/ u$ O7 \8 hENtiTYmux41is& n1 J3 E; b: u; [
* k8 _9 U$ M( O# w+ e7 a& q
PORT(a,b.c.d:NSTD_LOGIC:! z" t2 ^! O; s% \4 o+ b) A
- I' p. @$ C2 p" ]$ u
INSTD_LOGIC_VECTOR(1
8 I$ F% w/ x% c; X. e- d
# v1 N5 [- x& i6 q4 D, ZDOWNTO0):6 x0 [: y* h# `; [

4 ~2 z: s8 m: b6 O" N  `8 F: ]STD_LOGIC):6 T) z' i5 g3 x# N& A; u5 O8 g/ l
* ?* L5 `0 t2 O
OUT
1 ^$ ?, N# q. o' G- n
8 }* S. S" C* \0 n' TEND
; \% H! G% t! w, d
6 i) _; `4 N) J* u$ p( h7 \! nmux41:0 A1 _' @3 c* \. q$ Y
' I2 J5 ^& M/ S' A0 D
IS$ ?: z; h% j! i0 l' W8 o! m" m
& K* h2 h) D- P9 q
ARCHITECTUREoneOF6 p4 \* j, _, Q. w

& u! _6 |) C" }  emux416 d" \) A6 S4 j; Y1 h( F
) I* ^+ ?  N  K% ~0 R
BEGIN# W5 `% P2 n6 {; V  r2 h7 k0 ?' t; M

% v* ^, ^6 _/ |. l& A; H8 cPROCESS(s,a.b.c.d)( @0 ~' V- W( T* ]. ~' ?6 v

* O7 P7 \/ {2 O. w+ s/ UBEGIN4 X  _/ [2 C5 s) w" K7 Q0 X" k. i$ {
% G9 o, P6 m2 ?9 c) X0 y0 m, {" U% A$ E" Q/ N
IS
! y% K9 O$ O" l! ]1 N9 u! V9 r  y
CASES3 Q- w  a4 ?% G; X. J
  x* k1 O; C! g
WHEN“00”=》z《=a:2 M7 `& x2 o9 h7 J& u

" ~7 W, T) z7 N% @) DWHEN“01”=》z《=b:
! N4 @+ U8 i# ^( q+ `$ t: C; o
, K6 V/ x5 T+ y+ \" ]WHEN“10”=》z《=c:
9 C0 A8 P% Z  h' K/ I
1 g, U/ T% y. l* ?# y& RWHEN“11”=》z《=d:* r, l5 l2 s) Q
$ N! D1 y( y/ C. |: E* |- X
WHENOTHERS=》z《-=null:3 Z/ j! p" ?  I, n% X

% T, p: b7 \. h1 c' kEND- [% q/ g: z: ]9 |+ U
9 _1 _8 d  U8 }0 j% ?( C3 i
CASE;
) M$ O4 Q0 F" Z& }5 R6 M+ K" G( E/ V+ C$ i4 r
ENDPROCESS:# j, [* K/ a! \8 {9 {& E8 V

/ v1 c5 W/ h& R7 e9 D* }+ r) o+ {END2 n$ H8 c3 D5 s0 a& ?7 ?

: H+ w2 ]3 v% s/ H. kone;
/ ?( i6 y& H* v- X' p$ }/ Q  e, H! o9 @
运行结果1 y- W; s8 M6 _$ S6 [

% X0 J+ X( r, [, a1 Q: x当输入信号“OO”时,输出信号z的值为‘a’:
$ z( V: Z, X; ]3 W
+ E, H, w; r* r( Y9 E# b当输入信号“01”时,输出信号z的值为‘b’;
$ T* `" A/ i" Y8 r# C3 R
# b% i6 c. y0 F5 f! f  E: P当输入信号“10”时,输出信号z的值为‘c’:
+ t% D% [" l  G1 B/ ]' I9 ^  H1 ^. p8 N1 T) l
当输入信号“11”时,输出信号z的值为‘d’:* p" e/ S: K* Q8 G! r1 |

9 H: A1 v; d, r波形仿真及描述2 @% w$ q9 c1 i0 o( G
* y1 A) K* r: b3 X$ K' v1 K
输入:" L7 y9 Z  a9 E2 u; R

& S" L; Z. u0 Q! @0 {( [的波形周期为10ns,b的波形周期为5ns,c的波形周期为15ns,d的波形周期为8nsos[1]的波形周期为5ns.s的波形周期为10ns。# ]. q; m* W  r
# D: L2 ]1 S* J9 M- C' e+ N: X
$ W# j# d% K* @7 h0 z* Q
! B  {# f5 i0 S& _" F
(2)设计思路5 {! k$ `4 U+ ~3 u; ^% c
1 g$ i4 ?: L1 ?* {; D

8 I( [; V- g0 G9 ]% H8 D3 q) J2 u) H; N5 Q8 u5 U; C
定义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。; T9 l' I% a1 M3 b$ [

% n6 L+ ~5 d% H( I2 r' w4 Q0 r程序& `9 o( x; m+ F8 C- r9 ?9 m" {7 O
3 E9 J4 a' W/ s* ]
USE 正EE.STD LOGIC 1164.ALL;
7 m" m+ O2 B0 t2 n4 @/ f% @1 I& D5 ^, Y- K" T' c
ENTITY mus415 I0 c# O1 R2 y$ ?; o

3 l) ^$ b0 q- P9 _# X, Y# nIS% ~- w! a7 I5 t' u5 v

- s0 t* J2 _6 Q0 w' ](i0ji1,i2,i3,a,b :N STD_LOGIC;  B6 v4 _( W! i) K  _! r3 a. a
& ]; U, H8 y) {+ x! A, f
PORT2 I) y1 c7 W' F4 D7 f: ^: C
7 h4 k% m% ~% V# S+ Z, S1 t
:OUT$ U2 X% X) q/ r% c; X& s. Q

0 r) C2 @+ y) y# F9 Q: cSTD_LOGIC );/ s; p' E+ F& y8 z  b# ?4 W; z
' G2 ]8 R" J! Q7 `3 z
ENS mux4;
+ f) \. a$ n0 i$ |3 X/ Q; }
9 u+ C, O' ~+ Z/ J- MOF$ S" Y- ]* D5 e6 [# _
4 f) X$ G" b9 }; X! E) V# v( {
mux4 IS8 [) _% l6 j5 ]' M( L0 G; G
% T8 B: q* V2 q  q" @: I
ARCH ITE CT URE b_mux46 x/ U0 h6 a$ K. _7 x' S4 @2 B. O. a

/ V8 W" B/ D. }- C- R) r1 I* K( dBE G N
4 ]3 K" b8 _; E
% E& ?* f. R6 k7 h! _6 H0 dProcess (i0,il,i2,i3,a,)4 t$ j9 q( [9 W. E

' R- A, U* x$ R* vVariable1 w! C/ c+ T" A1 x$ o
: s* b2 B2 a2 _; l$ z  |3 }
0;
' b/ v' N* q. _0 m
9 v+ h% V3 h4 H% N3 K' ^downto: |: E. b& H  Y+ t0 q* }* z
! c( O% U  |- h
musval' R0 m' O$ u9 O- g% b0 ~
* P; N# I% Q- M9 V& p9 g
:integer rang' n; f& Q8 o1 w+ y8 A5 }
  w& j* X3 O$ m3 ~6 P) q
Begin
) h. H9 f- ?1 ^0 G' N. k) w
  ?0 Q9 d, C% g& w  y0 K* Jm uxv al :=0;/ j' p* j- h8 F; I4 G
2 b8 V7 H6 H" s" \. b* _
if (a=‘l’)
. ?' @& d/ B$ w& _0 e: z: j9 X) i; n( f
musval:muxval+ l; end if;
, V9 i9 x# i3 C' a" [- P, ~, C  f0 R3 U* P* V- G# n) {3 V- Z
then5 p' t' L9 a9 N. ]3 x& ~6 g
4 V( T! ]" s" A8 j  D7 {7 N
if (b=‘I’) then$ C; ^0 o: h+ E

7 _/ r* Z+ B1 n7 [5 z9 _' `muxval :muxwal + 2; end# |% L. v" I- |3 M* U
+ S" J; ]1 c5 Q$ _
if;! y1 q( C* k9 i5 q# A9 i+ c( X

; P& R0 ]! g3 c+ d2 Q4 wis
) E9 j: h0 T1 r) Y6 |5 G
# g' N4 U( E; O6 ]  _5 omuxval
: x% L6 n* E: e4 L5 m+ j) T( ^1 k, ]7 R8 e0 W5 m3 R
case3 x' Q, e1 a4 l& q6 M

3 Q( V$ k( P5 y8 n* i: y7 O2 W) ~5 [( ?w hen 0= 》 q 《= i0;6 G8 K0 [, k* S: B4 Y+ n

5 j' c0 g9 ]0 N' Q' n8 \2 {6 bwhen l= 》 q 《= il;
" S- M! b9 r# @( C# C- I- }  u, ~% S2 A9 R- Z
when2=》q《=2;
3 }  V/ A& t" k: e4 A6 a0 |- K9 j/ b' _' P: k2 Y; \
when3=》q《=i3;: [6 \7 k7 o+ ~4 E9 ^5 I3 C

, x6 {3 F' u* D5 jothers= 》null;
$ @2 @6 A  t7 _2 u% q5 g+ v! u6 H* T% k6 v3 J1 I% U5 X
When
+ H+ [$ ]- z8 }( `
$ t8 h6 T" s: ~" Kend
0 l' w  F, A6 [1 p7 z$ H; N& q
; s# p2 T8 O; yca se;
! g& b* H' \; G1 C8 |
$ P% M2 y  O, l$ g0 E1 l' |end process;! i2 j2 e4 @: n- z  o# K

2 o! O& G- P7 v" J5 c$ }- xEND b_mux4;( U( ]) m. e3 c" j* G

/ d2 a2 V- w* m1 v运行结果
1 @% }& F# i/ n# ^0 R* X/ f. _, f  W* E' y- _
当输入信号“OO”时,输出信号z的值为‘i0’:) @% F! B: s! M, h3 z8 e+ k. W
6 X; \  e8 I; w4 _+ A3 s
当输入信号“01”时,输出信号z的值为‘i1’:
5 R6 {) u, J6 f9 Z0 A, H+ E: V9 e8 Y6 D+ _4 p. a2 A5 N. n
当输入信号“10”时,输出信号z的值为‘i2’:7 }6 T. I; {5 ]+ q0 b
+ a' X2 t$ r% h
当输入信号“11”时,输出信号z的值为‘i3’;$ A& T' P8 u1 P* Z' n

  m1 k, k$ D1 B5 A3 V波形仿真及描述: J1 ^1 g: \& {& g
6 e+ F# K6 g; q8 \
a的波形周期为20ns,b 的波形周期为15ns,c 的波形周期为20ns,d 的波形周期为15ns,s的波形周期为8ns,s的波形周期为16ns。: s" r0 H  Y5 q5 _7 F

3 x* H) m0 c* |输出
. h+ s, W- Y6 J$ v
& J) D* c9 e9 b3 ]7 r4 |+ X0 R- t! Q- f% |6 E& x

该用户从未签到

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-7-24 00:45 , Processed in 0.125000 second(s), 23 queries , Gzip On.

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

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

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