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

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

[复制链接]

该用户从未签到

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

EDA365欢迎您登录!

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

x
多路选择器(又称为数据选择器)①功能
: s1 T! U; S# K: C; }: _: D在选择变量控制下,从多路输入数据中选中某一路数据送至输出端。对于一个具有2n个输入和1个输出的多路选择器,有n个选择变量。
. ?8 s8 @0 E7 e7 l' o②典型芯片
: T5 m  t7 B: f- h2 z0 o$ v' Q! N典型中规模多路选择器有双4路数据选择器74153,其引脚排列图和逻辑符号如图1(a)、(b)所示。
. [% n3 r5 m" t( j, c1 W6 V! c6 j" D% w: M

& S1 w* R! w0 ^" C
( C$ g: V: G' I: m- ]数据选择器74153芯片含两个4路数据选择器,每个选择器接收4路数据输入,产生一个输出,两个4路数据选择器共用两个选择变量。芯片有16条引线,其中1D0~1D3,2D0~2D3为8条数据输入线,A1和A0为选择输入线,1Y、2Y为2条输出线,1G、2G为使能控制端,另外有1条电源线和1条地线。
! ~* B1 S4 ^- ^5 g; N' R- W. O
, P5 j! E/ I. H, e4路数据选择器的输出函数表达式为( v* D7 I- ?$ ~8 Q

3 Y: }" |/ [0 d2 P8 s

% t5 q; {: W( |: ~5 X1 D1 i" A# b0 J. x5 G1 H% _# x
式中,mi为选择变量构成的最小项。
; O$ j0 o7 c6 r+ s③应用
7 `6 R; j7 i$ q多路选择器除完成对多路数据进行选择的基本功能外,还可用来实现数据的并-串转换、序列信号产生以及实现各种逻辑函数功能。7 ]9 s# w3 u& _0 E4 ]% w# N$ w

9 D3 h" g/ I3 |例如采用4路选择器74153实现如下逻辑函数的功能
( \! |' m" \, q  F" F
# e2 o6 E) I1 K9 J7 k0 x

1 o! M' |) J2 M+ c( O! k9 i8 \3 t  x2 Q9 P% y
解给定函数为一个3变量函数,由于4路选择器具有2个选择控制变量,所以用来实现3变量函数功能时,应该首先从函数的3个变量中任选2个作为选择控制变量,然后再确定选择器的数据输入。假定选A、B与选择控制端A1、A0相连,则可将函数F的表达式表示成如下形式:
# i/ w* a' i3 N- _, x7 s9 S) x. Z5 F: u5 l; h5 c

0 O: a2 d) \$ N0 |. q! w( ^, _( Z
) y9 S8 \0 w9 S! ~% I- t显然,要使4路选择器的输出Y与函数F相等,只需:。据此,可画出逻辑电路如图2所示。类似地,也可以选择A、C或B、C作为选择控制变量,选择控制变量不同,数据输入也不同。9 p9 q/ c3 G- ?
2 q/ z4 P' C4 {( y' s9 A9 `
( W9 r4 h0 O8 J- B
4选1数据选择器的设计1、设计背景和设计方案* {& T+ ^7 x' u, I8 c; n5 T
设计背景:9 g9 p# W$ p7 r9 }: ]! B3 ^

1 @$ ]4 Q! j. e5 u该设计是以数字电子技术为基础,实现数据从四位数据中按照输入的信号选中一个数,来实现所期望的逻辑功能。
- f) h& |0 X% T) ^, r) h- S8 F+ D, a  e8 r
设计方案:9 D" g3 K: \* C2 n, o& J6 x* n
* G4 K. d' J4 B( k8 S' O
拨码开关作四位数据及两位控制端的输入,LED作输出,通过拨码开关组成控制输入端s1和s0不同组合,观察LED与数据输入端a,b,c,d的关系,验证四选一数据选择器设计的正确性。使用逻辑门电路与、或、非的组合来表达4选1数据选择器,通过控制输入的信号来控制输出的信号值。
& ]5 G8 _" ?1 b$ Z% [5 X4 y( u
# s/ ^  {$ g( y8 l8 R( J# Z其逻辑电路如下图:6 N/ v1 u! T6 k$ O5 B- W+ G7 _
2 g/ w9 y: a' ?

3 y0 D( R+ Z. A- T! l( U2 S
7 w% ?8 f& Q$ C9 {7 ?. r) H8 i其示意框图如下:* ?6 N4 b$ j9 k1 W/ C; Y

" O" _/ v( f7 S5 ~5 ~8 c其中输入数据端口为DO、D1、D2、D3,A、A为控制信号,Y为输出。
  H! ?% U2 C  _5 J2 p8 O, m  f: I6 \6 m. ^% P
令AA‘=“OO”时,输出Y=D0;: y* T& Z; n# n0 E, K8 v: h

9 F$ r8 z4 Q7 g$ S3 J# b令AA’=“01”时,输出Y=D1;
3 U; Z* y9 i! x  o
- h* O0 w& d9 w9 W- O: {令AA‘=“10”时,输出Y=D2;
. c4 ?( o9 u2 t3 E" D
; [4 E# Z! C  K0 T) F令AA’=“11”时,输出Y=D3;
' {+ L. U/ M5 H, r% p: J' `6 M! D
2 T8 p0 B9 s0 b# Y( w3 k

, T7 W& G, M+ p7 I真值表如下:
$ t$ r1 h) n6 n' {7 C
; T0 M9 W; j3 Q* _' U) q
4 o8 e& c5 [* Q+ v9 _3 C) o2 M

& y+ X! a& U1 N! z+ @7 `2、方案实施- \, Q: N; f* }  b( A
(1)设计思路4 @! G* }- M' Q4 ~; m5 _
- A/ `0 C- G" J. D  g% p
- W. z# s: S# v# U+ g

+ X1 P( P5 ^  k% G9 H四选一多路选择器设计时,定义输入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。这样即可实现四选一数据选择的功能。; X; g2 r1 O8 E$ q4 Z
, f* `7 M5 R& b* ]6 ~; A" G/ t
程序
0 F0 b; l, L6 C* q
" R' @" a- ^, D0 U/ \( ?% ^5 PLIBRARY正EE:
* K7 [& w$ A, N6 M
6 [; H+ b& ~# O0 Z3 G! K( t, hUSE
$ W7 j! F/ J: z5 ^4 i# k/ f
5 ]; ]0 O% A1 c/ [6 h  \IEEE.STD_LOGIC_1164.ALL:3 x1 C6 A0 T7 b0 `! ~( W
# X% O& I; ^- l( R8 h
ENtiTYmux41is/ Z3 K7 }  h, ^7 V& T6 d) M

" A: d) [" ~1 R1 x. e1 MPORT(a,b.c.d:NSTD_LOGIC:- O1 P8 D& p! E6 `' f! T

. V" _1 }6 N$ S' u5 q, OINSTD_LOGIC_VECTOR(1
( d7 H2 ]" f) L' Z8 D- ?7 T& [6 R: b
1 G, o/ K5 L+ g, {  s$ e& f3 R' ADOWNTO0):: I, b; G+ ]' Y7 x9 q
# D6 G1 K5 n! u, T
STD_LOGIC):
6 H/ _. H+ a5 ]- D' u
7 E0 w, F; i6 M8 Q/ p  `OUT
# j. R/ t5 m& N, S. c3 I- R" s+ Z4 [7 N4 z
END
/ f  c+ c. w( M4 e" l* _
: _: h7 Q/ W0 v' umux41:7 \& L6 J( m. {! q
9 Z2 U: b: g. ^, K- n$ T; o
IS# V# o0 h" K! x+ e9 u* I' O% _9 h8 [

; R. L7 ^# A& z2 ]( _" K2 ]7 LARCHITECTUREoneOF
; t- }' v! l" J/ I# l' ]. |8 }5 Z( z' Z5 x: T2 h
mux41
% U: J& A& g" m
) C9 s  E; V( c8 EBEGIN
3 h$ u. e1 N" g0 R& q" S
- \# n4 f$ e' X) ?  s; ?1 g  o3 NPROCESS(s,a.b.c.d)
% z" L& B8 F: K) t5 H
" {9 r- o+ J+ RBEGIN
. q3 B8 l, h5 y
: J) Y7 F, a4 L( M  V* ]2 e. WIS. t* x; G1 x+ C' `7 d) r4 g5 d
' N7 g' C) d& v* ^. w/ {8 E
CASES) D; o3 \$ ~# E9 ~4 D/ }) L/ ~  a

; Q; h+ B- Q$ HWHEN“00”=》z《=a:7 R# j9 @7 l9 v2 p% w$ M3 Y

/ P2 ], J3 i3 r5 n+ {- I/ A3 oWHEN“01”=》z《=b:
( S- D3 f5 o( D: w9 X9 }
& z7 g! j. n' }+ F  T( I- bWHEN“10”=》z《=c:3 C( L" T  E) G3 M, L  u

5 s, Q, n: Z3 d1 j; F4 HWHEN“11”=》z《=d:
9 n0 C0 e  u# ~2 c
; P7 I8 U6 w+ j2 hWHENOTHERS=》z《-=null:3 C/ Q7 f1 F$ P
2 w' Q  O  e# {; }
END
, A5 }/ U6 B. j% E
+ Q& }3 X: p% n4 Z; F  J7 y, Z5 @CASE;
  M  b1 z  Z  U
/ e! s) K$ \9 ~8 S" z: y# _+ RENDPROCESS:( ^1 y) G1 j1 l
; w/ B* @& Z. S: m. @% k9 L( y
END
; B) X1 }& q) ?. l* _2 C6 G$ Z8 Q7 m7 G
one;$ J" R3 ]8 |7 L. e
5 z) w: d" v( Q9 e4 o9 J2 h
运行结果3 }0 i! H2 ~0 t2 p" N0 _

3 a! m5 k  @' f0 n  M当输入信号“OO”时,输出信号z的值为‘a’:
" S5 Z$ i+ h* Y- o6 K0 D
. k  q! `/ ]+ j8 Z; D当输入信号“01”时,输出信号z的值为‘b’;
3 Y; |9 ^- K: Q- o9 @! n& r+ a) _6 E2 @: c! R$ t
当输入信号“10”时,输出信号z的值为‘c’:0 H/ U, g0 c8 t7 O

% I' l& P. |$ l7 t& G9 i3 V6 T8 P当输入信号“11”时,输出信号z的值为‘d’:
' O( v2 `4 ?( c6 [+ O$ c1 t9 r. p8 a3 G
波形仿真及描述
* @$ L# s( K* D: L
/ A" N* b: [- S$ h8 ^输入:; m# x" L+ A# U6 F/ a, g' J$ `
3 @) ]* \6 q0 B. `- t1 d$ ]- F
的波形周期为10ns,b的波形周期为5ns,c的波形周期为15ns,d的波形周期为8nsos[1]的波形周期为5ns.s的波形周期为10ns。9 @. l# ?3 u: j" S, e; I

4 N4 v; k3 \/ p: a) ^' _+ z

+ G* ~. {- I. v2 C3 D) e
: _( [$ ?6 c9 A0 K3 _* V$ h(2)设计思路
+ N9 [* f- B& P' {& O1 \! c4 r8 g9 v4 k" \2 [
1 Z; P, T# v+ g& o
  |% T* u; R0 O  z, E! h
定义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。, F& {2 j1 h. w# m, K* j

$ N2 a( u  U- G5 a# |程序0 C2 `# ^& v2 T& _# {5 g
- {  a! d  l) L( o3 m. d
USE 正EE.STD LOGIC 1164.ALL;6 g8 a, D8 j2 N$ D0 q

: x" U  L$ m/ c9 l, I" ~9 n6 PENTITY mus41! F2 x0 I' ~2 a7 L9 w
9 }" m) O2 t) I3 ]& c  r
IS3 m% W" ]& S+ f1 |* `9 `

5 b& s- X8 H" _2 G2 Y( j(i0ji1,i2,i3,a,b :N STD_LOGIC;) h) e+ f2 g3 v# s- A
: y* b5 n+ s9 t% }
PORT
% d0 j+ \1 O3 ~) t0 r
) d( J0 b# I& e7 U' S) Z6 I# z6 k:OUT1 ?: b1 b( n; e1 a5 F, Q8 r! _
; O1 c6 P4 N: _* c& h
STD_LOGIC );' l2 ^* |" t8 G# o& m

0 T' }! N6 g% p. v$ }, n, y" RENS mux4;
: w6 ]/ E+ l+ U3 u4 s3 |1 x3 o% Z3 Q  l0 o
OF
& F, F' O( y9 P% B4 Q6 Q& G% ]! {+ O2 u: r3 v$ G0 P
mux4 IS3 {4 k2 b# \! u# W

4 |1 v) v+ f4 S' ~) k, }( [* L+ I# BARCH ITE CT URE b_mux4
( F5 r1 g% l  e% l6 [% v# U7 k- h/ _( O1 w, d1 g
BE G N
$ q  C* d( I( c# M5 ]" H% j+ s* }8 z9 R+ g# i
Process (i0,il,i2,i3,a,)
8 t5 q; \- e2 @4 _2 Q
; J8 m- F. g/ d6 b# t' ^/ zVariable- z2 \  k% P9 n6 ~7 d
  z% w$ F: R$ h$ f
0;
5 _' o( E9 C# t- S8 C, `- M6 F8 ]; n( X, B
downto
+ \5 |  W1 X5 Q+ o
+ E# {' ?/ O( I2 l9 \musval
/ D+ L4 v/ L& z# V4 ~) o7 b, f
/ q+ {6 `6 p5 a6 N5 d1 m) Q. o:integer rang
1 i3 x; u: M8 u, M
9 x  E: Q0 D9 j$ t& O7 zBegin( p% `$ l9 z) N3 k3 [& U) }
  x0 ]& y( H8 I
m uxv al :=0;) f" Z5 `$ o, t" m( E
9 c/ u, h$ c1 L$ h
if (a=‘l’)+ X& y1 i% Q! _: W' B( J0 Q$ \
' @( ~7 C/ R* h3 s& I5 J( _5 c$ z
musval:muxval+ l; end if;- U0 I  l; B. _! b& t' Q; e! M, m
: K( E2 w8 g8 i3 {
then* c! _2 w6 w0 @* N. u2 n4 t

9 n& `3 m" W+ c; H! Xif (b=‘I’) then1 R# L, e9 Z/ R: H

* w: h2 J2 k" X0 vmuxval :muxwal + 2; end$ d( Z  r$ w. E% J5 O
. B  E8 F/ E7 M3 U, T1 X# F
if;
' a- V" i# i- b) G3 E" X
; o) c8 C9 P9 Ais
! f9 T8 S/ t2 p1 H  Z0 [9 k- I4 e' z' Z
muxval
6 ^" ]/ j2 P9 A# \0 _/ x: Q7 {
' u) C2 c2 `! {case1 u" ]! `# `$ y$ G
+ W6 @* d/ Z9 N! V& @
w hen 0= 》 q 《= i0;; v9 h3 N1 g/ c" j, }

' B2 g3 x: @) `when l= 》 q 《= il;) l0 P% T, F! G3 n( B, c. i
) g2 F/ S4 b; N; ^/ {9 X
when2=》q《=2;% I5 `- O0 v! B6 O; f6 \$ n" `

4 d5 k+ f  q( G' kwhen3=》q《=i3;% t* z, |: S8 b7 R8 P+ M# z$ w

' _: D/ s9 w# ?/ y" |) I1 Vothers= 》null;; m  k: k4 r; y5 q5 G  U# X9 m/ d

1 r9 M( {+ h5 V4 o4 O0 y6 `When
7 a) c3 q0 b  z# [& u" H
9 k0 Y! g3 W7 X  k) O  O! send
# u4 M7 s+ @2 S/ Z' h
) r) q4 g4 S3 f& Tca se;
$ ~1 f( |% U4 w$ ]% b1 X
) I, |, p6 g0 Aend process;
% }& q7 B; L' x' e8 H* C" {: B4 Z: I( c' k8 g
END b_mux4;
) f/ \" p& f- M) w3 h. I8 C* _% P
1 g' F6 E3 M9 f& ^: v6 I运行结果
& Y& V; X; k  h+ m+ V+ a
& L9 E. Y; c8 r' k; S4 z当输入信号“OO”时,输出信号z的值为‘i0’:' ~( r/ F" S, Z- X

5 J6 h0 F4 s6 {$ D9 _, x* M0 U当输入信号“01”时,输出信号z的值为‘i1’:( h; {+ Q- \6 ]$ n9 n( v

1 K. t# A. M9 O8 H当输入信号“10”时,输出信号z的值为‘i2’:( M; x  J3 O: l, f& t6 g

; @* \1 |" ~- H7 d$ ~当输入信号“11”时,输出信号z的值为‘i3’;
! \8 [7 Y) N0 d0 @1 }0 a" X% O& \3 _1 B$ H- i
波形仿真及描述. b& F0 K; Q1 O% Y' p1 v
9 c+ R6 f( G4 ]
a的波形周期为20ns,b 的波形周期为15ns,c 的波形周期为20ns,d 的波形周期为15ns,s的波形周期为8ns,s的波形周期为16ns。) _/ T8 u- P! u
& K+ L3 v: J0 O! I
输出
2 ^) \1 G: y0 k4 G4 r: Z3 x6 K) v
  D$ ?0 H1 S, q: A0 v
  • 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-10-31 20:14 , Processed in 0.171875 second(s), 23 queries , Gzip On.

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

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

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