Вы находитесь на странице: 1из 9

Introduccin al VHDL- 2da.parte - Ing. Juan E.

Collazo

Lgica combinacional discreta y Descripciones VHDL

Tcnicas Digitales I
En lo que sigue se presentarn algunos circuitos que surgen como aplicaciones
de lgica combinacional y que se disponen integrados en forma comercial.
De manera simultnea se vern algunos ejemplos de obtencin de circuitos
similares a partir de descripciones en VHDL.

H D L
V

Una caracterstica de muchos circuitos especiales que se integran para dar


funciones dedicadas, es la posibilidad de interconexin entre ellos para lo cual
es necesario disponer de seales que acten como habilitacin.
Respecto de esta, existen formas alternativas y en funcin de ellas el nombre
que toma la seal que la produce puede ser distinto.

Introduccin al VHDL 2da. parte


Docente: Ing. Juan E. Collazo

Ing. Juan E. Collazo

Lgica combinacional discreta


As, una seal que se activa y
habilita el ingreso de informacin
se
la
denomina
Enable
(habilitacin).

Una variante de esto es cuando la


etapa de salida al deshabilitarse
permanece en alta impedancia. La
habilitacin se llama de salida OE
(output enable)

Ing. Juan E. Collazo

Lgica combinacional discreta


En cuanto a la forma de representar entradas y salidas desde el punto de vista de
su nivel de actividad, se presentan las siguientes:

En
Oi

I
Otro caso es cuando los procesos
internos de los circuitos se
habilitan para que aparezcan a la
salida, en cuyo caso se habla de
una seal de habilitacin de puerta
G (gate). La salida inhabilitada
permanecer inactiva (en alto o
bajo)

Aplicaciones de Lgica combinacional

Oj

On
OE
Tipos de habilitacin

Aplicaciones de Lgica combinacional

si las seales son activas en alto, se identifican con el nombre de la variable


escrita en forma normal.
si son activas en bajo, hay dos alternativas: una es escribir las respectivas
seales en forma negada o bien escribirlas en su forma normal e incorporar un
circulito en el puerto (entrada o salida) para dar la idea de inversin del nivel de
actividad.

I3 MUX
I2
Y
I1
I0 S1 S0
Entradas activas
en alto

Ing. Juan E. Collazo

I3 MUX
I2
Y
I1
I0 S1 S0

I3 MUX
I2
Y
I1
I0 S1 S0

Entradas activas en bajo

Aplicaciones de Lgica combinacional

Introduccin al VHDL- 2da.parte - Ing. Juan E. Collazo

Lgica combinacional discreta

Codificadores

Ing. Juan E. Collazo

I7
I6
I5
I4
I3
I2
I1
I0

I8
X
X
X
X
X
X
X
1

I7
X
X
X
X
X
X
X
X
1

I6
X
X
X
X
X
X
X
X
X
1

I5
X
X
X
X
X
X
X
X
X
X
1

I4
X
X
X
X
X
X
X
X
X
X
X
1

I3
X
X
X
X
X
X
X
X
X
X
X
X
1

I2
X
X
X
X
X
X
X
X
X
X
X
X
X
1

I1
X
X
X
X
X
X
X
X
X
X
X
X
X
X
1

I0
X
X
X
X
X
X
X
X
X
X
X
X
X
X
X
1

A3 A2 A1 A0
1
1
1
1
1
1
1
0
1
1
0
1
1
1
0
0
1
0
1
1
1
0
1
0
1
0
0
1
1
0
0
0
0
1
1
1
0
1
1
0
0
1
0
1
0
1
0
0
0
0
1
1
0
0
1
0
0
0
0
1
0
0
0
0

I3

I1

0
1
0
0

Ing. Juan E. Collazo

1
0
0
0

0
0
1
1

GS

I1

Eo

I0
0 1 2 3 4 5 6 7 Ei

C = Ei.(I4 + I5 + I6 + I7)
c)
B = Ei.I2 + Ei.I3.(I4 + I5) + Ei.I6 + Ei.I7
A = Ei.I1.(I2 + I4 + I6) + Ei.I3.(I4 + I6) + Ei.I5.I6 + Ei.I7
GS = Ei.(I0 + I1 + I2 + I3 + I4 + I5 + I6 + I7)
Eo = Ei + GS

Aplicaciones de Lgica combinacional

0
1
0
1

I15
I14
I13
I12

Por ejemplo: Si se activan I9 e I7 a la


vez, el codigo de salida debe ser 1001
(el de I9). Al activar Ei (Ei=1) en el
Coder(3) y no estar I15 a I12 activas
se pone Eo(3) = 1. Luego Ei(2) = 1
pero al ser I9 = 1 queda inactiva Eo
(E0(2) = 0) y se hace Ei(1) = 0.

A1

2 A1

I3
I2
I1
I0

A0
GS
Eo

CODAR

Ei

I7
I6
I5
I4

I3
A0
I2
I1 GS
Eo
I0
CODAR
Ei

I11
I10
I9
I8

A1

A1

A0

I3
A0
I2
I1 GS
Eo
I0
CODAR
Ei

I3
I2
I1
I0

Expansin de Codificadores
Ei

Se marcaron 4
bloques de color
que, unidos,
for
man la TV de un
codific. de 4 entr.
Esto da la pauta
de que con al
menos 4 de stos
se formar uno de
16 entradas.

I2

Las seales de salida se pueden


denominar A, B, C alternativamente
o bien con una variable y un
subndice numrico

Se aprecia que las dos salidas ms significativas se repiten 4 veces seguidas, cambia una
variable y nuevamente se repite 4 veces seguidas mientras que las menos significativas
toman sus cuatro valores por cada valor de las ms significativas.

Aplicaciones de Lgica combinacional

I2

C = I 4 + I 5 + I 6 + I 7)
b)
B = I 2 + I 3.( I 4 + I 5) + I 6 + I 7
a) Codificador elemental
de 8 entradas
A = I 1.( I 2 + I 4 + I 6) + I 3.( I 4 + I 6) + I 5. I 6 + I 7
b) Codificador de prioridad
c) Codificador de prioridad mejorado
incluye habilitacin de entrada,
propagacin de habilitacin a la
salida y seal de grupo (ayuda a
diferenciar el cdigo cero de
salida entre entrada I0 activa y
ausencia de entradas activas)

I3 I2 I1 I0 O1 O0
0
0
1
0

I5
I4

I3

Ei

Ing. Juan E. Collazo

I4

Ei

0
0
0
1

I7
I6

I0

Expansin de Codificadores

I9
X
X
X
X
X
X
1

I6
I5

a)

Se pretende armar un codificador de tamao mayor a partir del uso de codificadores ms


pequeos. Por ejemplo, disear un coder de 16 entradas usando coders de 4 entradas
I15 I14 I13 I12 I11 I10
1
X X X X X
1
X X X X
1
X X X
1
X X
1
X
1

Aplicaciones de Lgica combinacional

Ei

I7

Un aspecto tecnolgico de inters se puede apreciar en las hojas de datos de los


diversos circuitos integrados.
En algunos de ellos se podr encontrar que las variables de entrada que deben
disponerse tanto en su forma directa como en su forma negada tienen un esquema
como se ilustra abajo. En l se aprecia que la seal que ingresa se niega dos veces y
para disponer de la negada, se la toma a la salida del primer negador. Por qu poner
dos negadores y no uno slo?
Como las etapas internas de un circuito que van conectadas a una dada entrada
pueden estar formadas por varias compuertas que requerirn tantas porciones de
corriente de entrada por cada una de ellas, esto generara una carga elevada para el
circuito externo que se conecte. Por esto y para que cada entrada maneje similares
niveles de corriente se coloca una compuerta a
la entrada que consuma hacia afuera lo que
a)
Ii
Ii
consume una sola y se encargue de cubrir el
C
consumo interno. Es lo que pasa en el caso a).
n . Ii
an
El 2do. inversor se pone para tener la seal
B
compuertas
normal.
A
En el caso b) si la seal normal (C) tuviera que
alimentar varias entradas, la cantidad de
n.Ii
corriente debera ser provista por el circuito
Ii
exterior que restara energa para alimentar
C
b)
(n+1).Ii
otros circuitos

I3
I2
I1
I0

0 A1
A0
GS
Eo

CODAR

Ing. Juan E. Collazo

I3
I2
I1
I0

A1

A3

A0

A2

GS
Eo

GS

CODAR

De esta manera queda inactiva la


etapa 1 y consecuentemente la etapa
0. Las A1(2)A0(2) = 01 (a travs de la
OR forman A1A0 de salida). Se activa
tambin la seal de grupo GS de la
etapa dos y sta se conecta a la
entrada I2 de un codificador que
acta como salida y genera el cdigo
A3A2 = 10.
O sea, resulta A3-0 = 1001, lo
esperado.

Eo

Expansin en rbol de Codificadores


Aplicaciones de Lgica combinacional

Introduccin al VHDL- 2da.parte - Ing. Juan E. Collazo

Decodificadores (o Decoders)

1 - - Decodificador de 8 salidas con habilitacin

Un decoder es un dispositivo
lgico de n entradas que activa
una de sus 2 n
salidas cuya
numeracin decimal coincide
con el cdigo binario de las
seales de entrada

A2 A2 A1 A1 A0 A0

A2

A2
A1
A0

O0

A1

O1

A0

A0

O0
O1
O2
O3
O4
O5
O6
O7

O2
A1

O3
O4

A2

O5

EN

O6

P 2 = O 2 = A2 A1 A0

O1
O2
O3
O4
O5
O6

P 3 = O3 = A2 A1 A0

O0

Decodificador con
entrada habilitacin

O7

P 0 = O0 = A2 A1 A0
P1 = O1 = A2 A1 A0

A2
A1
A0

O7

En

b)

2 library ieee;
3 use ieee.std_logic_1164.all;
En este ejemplo se
4 entity deco_x8 is
trabaja con un vector de
5 port (ent : in std_logic_vector (2 downto 0);
salida que va a tener 8
6
hab : in std_logic;
valores distintos segn
7
sal : out std_logic_vector (7 downto 0));
sea la palabra de entrada.
8 end deco_x8 ;
9 architecture tabla of deco_x8 is
Abajo se ve la simulacin
10 signal ssal: std_logic_vector (7 downto 0);
11 begin
12 with ent select
13
ssal <= "00000001" when "000", "00000010" when "001",
14
"00000100" when "010", "00001000" when "011",
15
"00010000" when "100", "00100000" when "101",
16
"01000000" when "110", "10000000" when "111",
17
"00000000" when others;
18
sal <= ssal when hab = '1' else "00000000";
19 end tabla;

P 4 = O 4 = A2 A1 A0
P 5 = O5 = A2 A1 A0

P 6 = O6 = A2 A1 A0
P 7 = O 7 = A2 A1 A0

Ing. Juan E. Collazo

a)

Como cada salida en la TV presenta un nico


1, se concluye que un Decoder es un
generador de minitrminos

Aplicaciones de Lgica combinacional

Ing. Juan E. Collazo

Decodificadores: Expansin

A2
A1
A0

E1

O0

O1
DECOD
O2
0
A1
O3

A0

E1

O0

O0
O1
O2
O3

A3
A2
A1
A0

O0

O0

O1
DECOD
O2
0
A1
O3

O1

E1
E0

A0

A1
A0

O0

O0

O1

O1

E1

O2

O2

O3
DECOD 0

O3

E0

O3

O4

E0
O1
DECOD
O2
1

O5

E1

O0

O4

O6
O7

E0
O1
DECOD
O2
1

O5

O3

A1
A0

Expansin de dos decoders de


2 entradas con habilitacin a 3
entradas sin habilitacin

La cantidad de decoders invo


lucrados ser funcin de las
salidas. Hay diversas formas
de interconectar las entradas:
se puede jugar con la cone
xin de las habilitaciones (y
ser stas seales de entrada
del decoder a disear); se pue
de incorporar otro decoder y
actuar sus salidas como selec
cion del decoder activo, etc

Ing. Juan E. Collazo

A1
A0

O0

O4

O1

O5

O2

O6

O3
DECOD 1

O7

O6

E1

O3

O7

E0

O0

O8

O1
DECOD
O2
2

O9

A1
A0

E1
E0

A1
A0

O3

A1
A0

O10

A3

O11

A2

A1 O1
O2

O3
DECOD
E1

O0

O12

E0
O1
DECOD
O2
3
A1
O3

O13

A0

Expansin de decoders de 2
entradas con doble habilitacin
a 4 entradas sin habilitacin

O0

O8

O1

O9

O0

A0

10

Decodificadores: Expansin

En

O2

Aplicaciones de Lgica combinacional

A1
A0

O14

O2
E1
O3
E0
DECOD 2

O10

A1
A0

O0

O12

O1

O13

O2

O14

E1
O3
E0
DECOD 3

O15

En funcin de lo que se acaba de explicar, se


animan a plantear una descripcin VHDL
estructural del Decoder de 4 entradas de
datos instanciando Decoders de 2 entradas de
datos con 2 entradas de habilitacin?

O11

Y cmo haran una expansin de


decoders de 2 entradas, 4 salidas, a un
decoder de n salidas?

O15

Expansin en rbol de decoders


de 2 entradas a 4 entradas

Aplicaciones de Lgica combinacional

11

Ing. Juan E. Collazo

Aplicaciones de Lgica combinacional

12

Introduccin al VHDL- 2da.parte - Ing. Juan E. Collazo

Decodificadores: uso para implementar funciones lgicas

D
0
0
0
0
0
0
0
0
1

C
0
0
0
0
1
1
1
1
0

B
0
0
1
1
0
0
1
1
0

A
0
1
0
1
0
1
0
1
0

Y
0
1
0
1
0
1
0
1
0

0
1
2
3
4
5
6
7

10

11
12

1
1

0
1

1
0

1
0

0
1

13

14

1
1

1
1

1
1

0
1

0
1

15

A
B
C
D

Y =

a)

O0
O1
O2
A1 O3
O4
A2 O5
O6
O7
A3 O8
O9
O10
O11
O12
O13
O14
O15

A0

B
Y

C
D

b)

P(1,3,4,7,9, 10,12,15)

Y=

O0
O1
O2
A1 O3
O4
A2 O5
O6
O7
A3 O8
O9
O10
O11
O12
O13
O14
O15

Decodificadores: uso para implementar funciones lgicas


Natural

A0

A D' C' B' A'

0
0
0
0
0
0
0
0
1
1
1
1
1
1
1
1

0
0
0
0
1
1
1
1
0
0
0
0
1
1
1
1

0
0
1
1
0
0
1
1
0
0
1
1
0
0
1
1

0
1
0
1
0
1
0
1
0
1
0
1
0
1
0
1

1
2
3
4
5
6

c)

7
8
9

S(0,2,5,6,8,11,13,14)

Siendo un decodificador un generador de minitrminos, incorporando una


OR a sus salidas se pueden obtener funciones lgicas como suma de
productos (fig. b). En este caso de la funcin mostrada en la tabla a)
Tambin se puede generar como Producto de sumas cannicas o
producto de maxitrminos, es decir tomando los valores que hacen cero a
la funcin. Se deja al lector verificar que es el caso de la figura c)

Ing. Juan E. Collazo

Aplicaciones de Lgica combinacional

B
C
D

0
0
0
0
0
1
1
1
1
1
X
X
X
X
X
X

0
0
0
0
1
0
1
1
1
1
X
X
X
X
X
X

0
0
1
1
0
1
0
0
1
1
X
X
X
X
X
X

0
1
0
1
0
1
0
1
0
1
X
X
X
X
X
X

13

Ing. Juan E. Collazo

O0
O1
O2
A1 O3
O4
A2 O5
O6
O7
A3 O8
O9
O10
O11
O12
O13
O14
O15

B
C
D

Decod

Ing. Juan E. Collazo

B'

A'

Aplicaciones de Lgica combinacional

C
D

C'

B'

Aplicaciones de Lgica combinacional

A'
14

O0
O1
O2
A1 O3
O4
A2 O5
O6
O7
A3 O8
O9
O10
O11
O12
O13
O14
O15
A0

Decod

C'

O0
O1
O2
A1 O3
O4
A2 O5
O6
O7
A3 O8
O9
O10
O11
O12
O13
O14
O15
A0

Decodificadores: uso para implementar memorias

A0

D'

D'

Decodificadores: uso para implementar memorias


A

Aiken

D'
15

Ing. Juan E. Collazo

Cada lnea del decoder va conectada a


una entrada de cada una de las cptas OR
de salida a travs de una conexin
programada, esto es, puede establecerse
si se produce o no conexin elctrica.
En el esquema se simboliza dicho tipo
de conexin con cruces que simbolizan
lo que originariamente fueron fusibles y
luego llaves electrnicas (transistores de
paso).
Cada salida originariamente tiene todas
sus entradas conectadas via los fusibles
a cada salida del decoder y como ste es
un generador de todos los minitrminos
de n variables, se concluye que la salida
de
este
dispositivo
antes
de
programarse, estar en 1.

Aplicaciones de Lgica combinacional

16

Introduccin al VHDL- 2da.parte - Ing. Juan E. Collazo

Decodificadores: uso para implementar memorias


A
B
C
D

Aiken

O0
O1
O2
A1 O3
O4
A2 O5
O6
O7
A3 O8
O9
O10
O11
O12
O13
O14
O15
A0

D'= 5+6+7+8+9
C'= 4+6+7+8+9
B'= 2+3+5+8+9
A'= 1+3+5+7+9

O0
O1
O2
A1 O3
O4
A2 O5
O6
O7
A3 O8
O9
O10
O11
O12
O13
O14
O15
A0

B
C
D

Decod

D'

C'

B'

A'

En este ejemplo se muestran los fusibles que se


dejaron intactos luego de programar, y las
expresiones lgicas de cada una de las salidas.
Ing. Juan E. Collazo

Decod
Alguien se anima a decir
qu funcin cumple el
circuito?

Aplicaciones de Lgica combinacional

Ing. Juan E. Collazo

0
0
0
0
0
0
0
0
1
1
1
1
1
1
1
1

0
0
0
0
1
1
1
1
0
0
0
0
1
1
1
1

0
0
1
1
0
0
1
1
0
0
1
1
0
0
1
1

0
1
0
1
0
1
0
1
0
1
0
1
0
1
0
1

En esta figura se ve una forma


de representar las salidas con
una Or de una entrada
conectada a las 16 lineas del
decoder con fusibles, lo cual
simboliza 16 entradas.
Si se leen los fusibles intactos
como 1 y los restantes como
0, el esquema de conexiones
se asemeja a la T. de Verdad
del Cdigo Aiken.
Analizado de otra forma, se
puede decir que segn el
valor binario de las seales
A3-0 se elije una palabra que
ser la misma cada vez que se
seleccionen
los
mismos
valores de A3-0, esto es, el
circuito almacena la misma
palabra
para
cada
combinacin de entradas

18

Aplicaciones de Lgica combinacional

D
D
C
B
A

Ac les dejo una ayudita ...

BCD 2
AIKEN

A D' C' B' A'

0
0
0
0
0
0
0
0
1
1
1
1
1
1
1
1

0
0
0
0
1
1
1
1
0
0
0
0
1
1
1
1

0
0
1
1
0
0
1
1
0
0
1
1
0
0
1
1

0
1
0
1
0
1
0
1
0
1
0
1
0
1
0
1

2
3
4

O3
O2
O1
O0

19

Aiken

5
6
7
8
9

0
0
0
0
0
1
1
1
1
1
X
X
X
X
X
X

Se vi en su momento un
conversor de BCD natural a
Aiken a partir de las Tabla de
Verdad de A a D y se lleg a:

D'
C'
B'
A'

N
1

Aplicaciones de Lgica combinacional

Conversores de codigo con lgica combinacional

Natural

Ing. Juan E. Collazo

Cmo se podran implementar algunos de los conversores de cdigo descriptos en


VHDL en lgica discreta?

Con los circuitos vistos hasta ac, estn en condiciones


de plantear cules y cmo conectarlos para armar un
conversor de cdigo, p.ej. de Binario a Gray?

?
n
n ?
On
In
?

D' C' B' A'

Conversores de cdigo

I3
I2
I1
I0

Conexin intacta luego


de la programacin
Sin conexin luego de
la programacin

ROM /
PROM

17

Natural

D' C' B' A' N


0 0 0 0 0
0 0 0 1 1
0 0 1 0 2
0 0 1 1 3
0 1 0 0 4
1 0 1 1 5
1 1 0 0 6
1 1 0 1 7
1 1 1 0 8
1 1 1 1 9
X X X X
X X X X
X X X X
X X X X
X X X X
X X X X

0
0
0
0
1
0
1
1
1
1
X
X
X
X
X
X

0
0
1
1
0
1
0
0
1
1
X
X
X
X
X
X

0
1
0
1
0
1
0
1
0
1
X
X
X
X
X
X

Ing. Juan E. Collazo

C.B.A
D' = D + C.B + C.B.A

C.B
C' = D + C.B + CA

B' = D + C.B + C.B.A

A'=D

Aplicaciones de Lgica combinacional

20

Introduccin al VHDL- 2da.parte - Ing. Juan E. Collazo

1 - - Decodificador de 8 salidas con doble habilitacin E1,/E0


2 library ieee;
3 use ieee.std_logic_1164.all;
4 use ieee.numeric_std.all;
5
6 entity comod is -- com_deco_8c_2e
7 port (ent : in std_logic_vector (2 downto 0);
8
hab : in std_logic_vector (1 downto 0);
9
sal : out std_logic_vector (7 downto 0));
10 end comod;
11 architecture tabla of comod is
12 signal ssal : std_logic_vector (7 downto 0);
13 begin
14 process (ent, hab)
15
variable i : integer range 0 to 7;
16
begin
17
ssal <= "00000000";
18
i := to_integer(unsigned(ent));
19
ssal(i) <= '1';
20
if hab = "10" then sal <= ssal;
21
else sal <= "00000000";
22
end if;
23 end process;
24 end tabla;
Ing. Juan E. Collazo

Decodificador de 8 salidas con doble habilitacin - Simulacin

Considerando que el
vector de salida tiene
un nico 1, una forma
ms simple es detectar
en qu salida debe
estar (segn la ent) y
escribirlo.
Si no est habilitado, la
salida es cero.

7
6
5
4
3
2
1
0

sal
0
0
0
0
0
0
0
0

ent
1
0
1
i=5
Se tom ent=5
como ejemplo

Aplicaciones de Lgica combinacional

21

Ing. Juan E. Collazo

Cmo vara la
simulacin de este
problema si se pone un
process (ent) y se omite
la hab en la lista de
sensibilidad?

Aplicaciones de Lgica combinacional

ent2

ent1

1
1
0

sal7
sal6
sal5
ent0 sal4
sal3
sal2
hab1 sal1
hab2 sal0

0
0
1
0
0
0
0
0

Decodificador con 2
entradas habilitacin

ent2

ent1

1
0

sal7
sal6
sal5
ent0 sal4
sal3
sal2
hab1 sal1
hab2 sal0

1
0
0
0
0
0
0
0

Decodificador con 2
entradas habilitacin

ent2

ent1

1
0

sal7
sal6
sal5
ent0 sal4
sal3
sal2
hab1 sal1
hab2 sal0

0
0
0
0
0
1
0
0

0
4

Decodificador con 2
entradas habilitacin

sal
0
0
1
0
0
0
0
0

Ing. Juan E. Collazo

Aplicaciones de Lgica combinacional

22

Variante del ejemplo anterior sacando la seal fuera del process

CLEMENTE PREGUNTA ...


11 architecture tabla of comod is
12 signal ssal : std_logic_vector (7 downto
0);
13 begin
14 process (ent, hab)
15
variable i : integer range 0 to 7;
16
begin
17
ssal <= "00000000";
18
i := to_integer(unsigned(ent));
19
ssal(i) <= '1';
20
if hab = "10" then sal <= ssal;
21
else sal <= "00000000";
22
end if;
23 end process;
24 end tabla;

...
13 begin
14 ssal <= "00000000";
15 process (ent, hab)
16
variable i : integer range 0 to 7;
17
begin
18
i :=(to_integer(unsigned(ent)));
19
ssal(i) <= '1';
20
if hab = "10" then sal <= ssal;
begin
ssal <= 00000000;
ssal(5) <= 1; -- como ejemplo i=5

arroja errores por multiple asignacin:


la seal ssal fue asignada antes del
process. Cuando corre el process se
asigna un elemento particular de la seal
(el bit i de la misma). Como el proceso es
concurrente con el resto, equivale a
asignar dos valores a la vez al bit i de la
seal, no permitido fuera de un process.

12 signal ssal : std_logic_vector (7 downto 0);


13 begin
14 process (ent, hab)
15
variable i : integer range 0 to 7;
16
begin
17
ssal <= "00000000";
18
i := to_integer(unsigned(ent));
19
ssal(i) <= '1';
20
if hab = "10" then sal <= ssal;
21
else sal <= "00000000";
22
end if;
23

Ing. Juan E. Collazo

En el ejemplo anterior, se hizo la


asignacin inicial a la seal
dentro del process y se le
cambi la asignacin sin salir de
l, por lo tanto, vale la ltima.
Como la 2da asignacin se hace
slo a un elemento (i), cambia
slo ese y los dems mantienen
su estado.

Aplicaciones de Lgica combinacional

24

Introduccin al VHDL- 2da.parte - Ing. Juan E. Collazo

1 --Decodificador 8 salidas, dos habilitaciones usando Numeric_std

1 --Decodificador 8 salidas, dos habilitaciones usando ...

2 library ieee;
3 use ieee.std_logic_1164.all;
Numeric_std no tiene
4 use ieee.numeric_std.all;
conversin de std_logic_
5 entity deco is
vector a entero; primero
6 port (ent : in std_logic_vector (2 downto 0);
debe
convertirse
en
7
hab : in std_logic_vector (1 downto 0);
unsigned y luego pasarlo
8
sal : out std_logic_vector (7 downto 0));
a entero.
9 end deco;
10 architecture tabla of deco is
11 signal ssal : std_logic_vector (7 downto 0);
La equivalencia con la
12 begin
misma sentencia del
13 process (ent, hab)
ejemplo
anterior
se
14
variable i : integer range 0 to 7;
obtiene convirtiendo el 0
15
begin
con 8 bits a unsigned, y
16
ssal <= "00000000";
luego de unsigned a
17
i := to_integer (unsigned (ent));
std_logic_vector.
18
ssal(i) <= '1';
19
if hab = "10" then sal <= ssal;
20
else sal <= std_logic_vector (to_unsigned (0,8));
21
end if;
22 end process;
23 end tabla;

2 library ieee;
3 use ieee.std_logic_1164.all;
4 use ieee.numeric_std.all;

Ing. Juan E. Collazo

x
x
x
x
x
x
x
x
x

x end tabla;

Se pueden hacer variantes cambiando


el tipo de dato de la seal ssal, por
ejemplo hacindola tipo unsigned.

Ing. Juan E. Collazo

I3
I2
I1
I0

B
Y
A
S

S
0
0
0
0
1
1
1
1

B
0
0
1
1
0
0
1
1

A
0
1
0
1
0
1
0
1

MUX

a)
Y
0
1
0
1
0
0
1
1

En0

b)

I0
I1
I2
I3

En1
En2

En3

I0

I0

En0

En0

I1

I1

En1

En1

I2

I2

En2

En2

I3

I3

En3

En3

c)

I2
I3

I0

En1

I2

I2

I3

I3

I3

I1

I2
I3
OE

O0 O1 O2 O3

DEC

g)

e)
d)

Aplicaciones de Lgica combinacional

I0

I1

I1

I2

En2

I0

I0

I1

En0

En3

a) Multiplexor elemental de 2 entradas (esquema con llave selectora y TV)


b) Multiplexor elemental de 4 entradas (esquema con llave selectora y
pulsadores de habilitacin de cada entrada)
c) Mux de 4 entradas con compuertas de transmisin (bidireccional
d) Mux de 4 entr con buffers tri-state (la salida del Mux NO ES tri-state)
e) Mux de 4 entradas con compuertas And-Or (o sea un Mux genera
funciones lgicas como suma de productos)
f) Mux de 4 entradas con compuertas Nand Open-collector (observar que
la and por conexin que se forma da lugar a una configuracin NandAnd; la Nand con entradas invertidas es una OR quedando una
configuracin OR-AND que da una funcin lgica como Producto de
Sumas. Para ello debe considerarse las entradas Ii negadas)
Ing. Juan E. Collazo

Multiplexores

I0
I1

26

Aplicaciones de Lgica combinacional

Multiplexores como circuitos de aplicacin de lgica combinacional


MUX

Se animan a
plantearlas?

...

25

Aplicaciones de Lgica combinacional

entity deco is
port (ent : in std_logic_vector (2 downto 0);
hab : in std_logic_vector (1 downto 0);
sal : out std_logic_vector (7 downto 0));
end deco;
architecture tabla of deco is
signal ssal : unsigned (7 downto 0);
begin

+V

O0 O1 O2 O3

En

Decoder

S1

S0

h)

S1

S0

i)

O0 O1 O2 O3

O0 O1 O2 O3

En Decoder
S1

S0

Decoder

j)

S1

S0

Multiplexores con entradas de seleccin codificadas


I0

I0
I1
I2
I3

En0
En1

En2
En3

En lugar de generar M seales de habilitacin para cada una de


las M entradas del Mux, se utiliza un decoder de n entradas que
genere las M=2 n salidas que actuarn como las habilitaciones.
Los esquemas son similares a la diapositiva anterior, excepto j)
que genera la habilitacin de salida con una nica tri-state.
En k) se presenta un Mux con entrada de habilitacin que surge
de usar un Decodificador con Enable.
Hace poco se vi como hacer una expansin de
Multiplexores en VHDL Como se hizo una arquitectura
estructural, la misma sirve para verlo en forma discreta:

f)

27

Ing. Juan E. Collazo

I1

I2
I3

En

O0 O1 O2 O3

En

k)

Aplicaciones de Lgica combinacional

Decoder
S1

S0

28

Introduccin al VHDL- 2da.parte - Ing. Juan E. Collazo

Mux de 16 entradas por


expansin de Mux de 4 entr.
16 entradas implican 4 Mux
pero 4 Mux tienen 4 salidas y se
necesita una sola, por ello se
toma un quinto Mux que
multiplexa esas 4 salidas por
sus 4 entradas y su salida ser
la salida deseada del Mux x 16.

I3
I2
I1 3 O
I0
A1 A0

Otro tipo de circuito dedicado es el que hace la operacin inversa del Multiplexor,
esto es, aqul que toma informacin por su nica entrada y la distribuye en una
de varias salidas, que se escogen mediante entradas llamadas de seleccin.

Out3

En0

I3 Mux4
pref
I2
I1 2 O
I0
A1 A0

I3
I2 4
I1
O
I0
A1 A0

Out2

sal

a)
I3 Mux4
pref
I2
I1 1 O
I0
A1 A0

ent(4)

I3 Mux4
pref
I2
I1 0 O
I0
A1 A0

ent(0)

O1

O0

Out1

Out0

29

S1

S0

f)

E1
E0

O3

O3

O1

O0
O0

O3
S1 S0

O1
O2

E1 E0

f) Demux con entrada de habilitacin activa en bajo.


g) Idem f) con doble entrada de habilitacin (una activa en alto
otra en bajo). Circuito y representacin en bloque.
Expansin de Demultiplexores

O1
O2

O2

O2

En3

O3

O3

c)

O3
O2
O1
O0

DEMUX

O1
O2

S1 S0

O3
d)

e)
S0

30

Aplicaciones de Lgica combinacional

S0
S1
S2

S1

S0

S1

S0

Aplicaciones de Lgica combinacional

O4
O0
O1
O2

i) Con Demux de 4 salidas


y doble habilitacin
activas en alto y bajo: usa
las habilitaciones como
seales de seleccin ms
significativas

I
S3
S2
S1
S0

O3

O3

Se puede ampliar un Demux usando ms de uno y conectando


adecuadamente sus seales. En h) se ve un Demux de 8
salidas hecho con dos de 4. Demanda 3 seales de seleccin:
utiliza las dos de los demux de 4 (S1,S0) como menos signi
ficativas y usa la habilitacin como tercer seal de seleccin
S2. Con S2 en bajo se habilita el superior y con S2=1 el inferior
que tiene las salidas ms significativas. Por esto S2 se conecta
a la Enable de uno de ellos y va un inversor, a la En del otro.
Ing. Juan E. Collazo

O1

Ing. Juan E. Collazo

g)
S1 S0

En3

En1
En2

O0

Demultiplexores: Expansin a 16 salidas con Demux de 4

O2

O2

O2

b)

O1

DEMUX O0
I

O1

En2

O0

En0

S1

Aplicaciones de Lgica combinacional

O0

O0

a) esquema con llave selectora


b) esquema con pulsadores individuales; ambos son Demux analgicos
c) demux lgico, hace lo mismo que b sin pulsadores.
Como el Demux debe
distribuir seal en una nica salida, los pulsadores no deben activarse
simultneamente. En un circuito lgico se implementa con compuertas que se
activan de a una por vez, mediante una adecuada combinacin de dos variables. Se
ve en d).
d) Demux con entradas de seleccin codificadas. El arreglo de compuertas marcadas
en azul representa un decodificador. El smbolo del Demux se presenta en e).
Comparando d) con los decoders vistos se verifica cierta analoga entre la
habilitacin de un Decoder y la entrada de datos del Demux. Se concluye que ambos
circuitos pueden funcionar como el otro conectando adecuadamente sus entradas

Demultiplexores
I

En1

Demux

A3 A2 A1 A0

Ing. Juan E. Collazo

O3
O2
O1
O0

Mux4pref

ent(11)

ent(7)

Los entradas de los 4 primeros


sern seleccionadas por las
seales de direccin menos
significativas, en cambio la
seleccin de cul mux de
entrada ser el que pase su
seal a la salida, la hacen las
seales de direccin ms
significativas

Demultiplexores

Mux_16ent

Mux4pref

ent(15)

O5
O6
O7

O3
h)

j) Expansin en rbol: con


demux de 4 salidas y una sola
habilitacin (seleccionable con
un Decoder)
El primero usa demux con 2
Enables con dos niveles
activos, luego con el auxilio de
un inversor logra una seleccin
adecuada. El segundo
esquema usa demux con una E,
luego requiere el auxilio de un
Deco para la seleccin.

Ing. Juan E. Collazo

O0
O1

O3
S1 S0

O3

O0
O1

O0

O4

O1

DEMUX
1
O2
E1
O3
E0
S1 S0

O5

O0

O8

O1
DEMUX
2
O2
E1
O3
E0
S1 S0

O9
O10

O3
S1 S0

O11

O0

O12

DEMUX O1
4
O2

O13

O2

O0

O4
O5

O3
S1 S0

O7

O0

O8

DEMUX O1
3
O2

O9

O7

O11

O0

O12
O13
O14

S3

O0
S1 O1
O2

S2

O15

S0

O3
DECOD

O3
S1 S0

S1
S0

Aplicaciones de Lgica combinacional

O2

DEMUX O1
2
O2

O6

O1
DEMUX
3
O2
E1
O3
E0
S1 S0

O3

i)

31

O0
DEMUX O1
1
O2

O0

O1
DEMUX
0
O2
E1
O3
E0
S1 S0

O6

O10

O14
O15

j)

32

Introduccin al VHDL- 2da.parte - Ing. Juan E. Collazo

Multiplexores y Demultiplexores: Algunos usos

Demultiplexores en VHDL
I

En funcin de los
distintos ejemplos VHDL
vistos y las dos
diapositivas anteriores,
Se animan a plantear
una descripcin VHDL de
un Demultiplexor?

S3
S2
S1
S0

O0

O0

O1
DEMUX
0
O2
E1
O3
E0
S1 S0

O1

O0

O4

O1
DEMUX
1
O2
E1
O3
E0
S1 S0

O5

O0

O8

O1

O9

DEMUX
2
O2
E1
E0

Aplicaciones de Lgica combinacional

O3

O7

O10
O11

O0

O12

O1
DEMUX
3
O2
E1
O3
E0
S1 S0

O13
O14
O15

Aplicaciones de Lgica combinacional

35

a)

O7
O6
O5
O4
O3
O2
O1
O0

C
0
0
0
0
1
1
1
1

B
0
0
1
1
0
0
1
1

A
0
1
0
1
0
1
0
1

X
0
1
0
1
0
1
1
0

I0 MUX
I1
I2
I3
I4
X
I5
I6
I7

0
1
0
1
0
1
1
0

MUX

B
0
0
1
1

A
0
1
0
1

X
0
1
C
/C

0
1

I0
I1
I2
I3

S1 S0
B

c)

S2 S1 S0

b)
C

S2 S1 S0

a) Uso de un Mux y un Demux para conectar varios transmisores con distintos receptores.
b) Implementacin de una funcin lgica de 3 variables con un Mux de 3 variables de
seleccin: se trata de poner en las entradas los valores de la funcin en el rengln de la TV
cuyo nmero coincida con la entrada del Mux.
c) Idem, con un Mux de 2 variables de seleccin y un inversor. En rigor no siempre ser
necesario el uso del inversor segn sea la funcin a generar, pero s es seguro que con un
Mux de n variables de seleccin y a lo sumo un inversor, se puede generar una funcin lgica
(como suma de productos) de n+1 variables. Para ello se procede a obtener una tabla
reducida en una variable (queda con una variable menos). La que se sac puede (o no)
aparecer en la tabla en la columna de la funcin. De hacerlo, la variable se conecta a la(s)
entrada(s) que coincidan con los renglones donde aparece.
Se deja para el estudiante, pensar cmo se podran implementar funciones de n+2 variables
con un Mux de n variables de seleccin

33

El esquema de la fig. a) anterior


Bus 1
corresponde al caso de distribucin
Perif.
de informacin entre dispositivos
Perif.
que
se
encuentran
prximos
1
fsicamente.
En1
2
En2
Para el caso en que esas unidades
estuvieran alejadas entre ellas, se
recurre
a
otro
esquema
de
Perif.
En3a
distribucin. Se presenta esto en el
3
En5a
esquema de la figura el cual
simboliza distintas posibilidades de
En3b
distribucin de informacin va
En5b
buses de datos.
Bus 2
Todos los dispositivos que accedan
Bus 3
En4
a los buses tendrn salida 3-state de
Multiplexacin y
modo de gobernar que slo uno
Demultiplexacin distribudas
quede habilitado a enviar una seal
(Esquema tomado del libro del Ing. Jorge E. Sinderman)
a dicho bus y evitar superposicin
de seales en una misma lnea (p.ej. el perifrico 1). Los que reciban datos del bus no
necesitan una interfaz 3-state de entrada, pero se necesita una puerta que habilite el momento
de dejar pasar la informacin y eso con una And de 2 entradas (una de ellas habilitacin) lo
logra (p.ej. el perifrico 2). Casos combinados de ambos se dan en el perifrico 3. Se muestra
otro caso de acceso unidireccional de un bus a otro en la conexin al bus 2 y otro
bidireccional, via dos buffer 3-state en contrafase, entre Bus 1 y 3.
Ing. Juan E. Collazo

MUX

S1 S0

O6

O3
S1 S0

Ing. Juan E. Collazo

O2

DEMUX

I3
I2
I1
I0

Ing. Juan E. Collazo

Aplicaciones de Lgica combinacional

34

El Multiplexor componente elemental de Circuitos Lgicos Programables


A1
A0

A
0
1

I0

0
1

I1

A1
0
1

x1 = A0.0 + A0.1 = A0

0
1

A0

A1 A0
0

f1
0
1
1
0

f1
c)

f1

a) Si a un Mux elemental de dos entradas se


le conectan dos celdas lgicas, cada una
x 2 = A0.1 + A0.0 = A0 almacenando uno de dos posibles valores
0
lgicos, que pueden ser programables o
1
a)
b)
seleccionables por el usuario, se tiene a la
f 1 = A1. A0 + A1. A0
salida f una funcin lgica dependiente del
valor que toma A. sta seleccionar entre I1 e I0, pero f a la vez depender de los valores que
se programen en esas entradas. O sea f puede tomar 2 exp (2 exp 1) = 4 valores posibles.
0
1

b) Encadenando tres de esos Mux elementales se arma uno de dos variables de seleccin de 1
de 4 entradas posibles. La funcin de salida f1 ser una sobre 2 exp (2 exp 2) = 16 valores
posibles. Esa f1 se puede representar por medio de una Tabla de Verdad. En este caso se
muestra como ejemplo la funcin A1 xor A0.
c) Esa tabla se la denomina Tabla de Inspeccin (Look up table) y es el componente bsico de
los bloques lgicos elementales que forman parte de la estructura de algunos circuitos
programables que se utilizarn para el diseo que se implementa a partir de descripciones
hechas en VHDL como son las FPGA.

Ing. Juan E. Collazo

Aplicaciones de Lgica combinacional

36

Вам также может понравиться