You are on page 1of 6

DECODIFICADOR DE 3 A 8 LNEAS (3 BITS)

El decodificador de 3 a 8 lneas activa una sola de las 8 lneas de salida de acuerdo con el cdigo
binario presente en las 3 lneas de entrada. Las salidas son mutuamente exclusivas ya que
solamente una de las salidas es igual a 1 en cualquier momento.
Las entradas del decodificador son x, y, z y las salidas van de y0 a y7 (activas bajas). La tabla de
verdad del decodificador se muestra en la tabla 3.1.2.

Entradas

Salidas

Y0

Y1

Y2

Y3

Y4

Y5

Y6

Y7

Tabla 3.1.2. Tabla de verdad para el Decodificador de 3 a 8 lneas.

Como la tabla anterior tiene 8 salidas, por lo tanto sera necesario dibujar ocho mapas de
karnaugh para simplificar cada una de las funciones de salida. Por tanto procedimiento, se puede
dibujar un solo mapa y reducir la funcin para cada trmino por separado. La reduccin de cada
trmino da como resultado la equivalencia entre cada mintrmino de entrada y la salida
correspondiente. Por ejemplo, la entrada 110 activar la salida Y6. En el circuito el mintrmino
corresponder a una compuerta AND de tres entradas con las variables ABCcomo entradas. De
manera similar se construye el circuito para el resto de entradas. El circuito lgico del
decodificador de 3 a 8 lneas se representa en la figura 3.1.3.

DIAGRAMA ESQUEMATICO

PROGRAMACION

Library IEEE;
Use
IEEE.std_logic_1164.all;
Entity Trab_Combinacional Is
port
(
LED_B : Out STD_LOGIC_VECTOR(7 DOWNTO 0);
PrimaryId=LED_B[7..0]
LED_G : Out STD_LOGIC_VECTOR(7 DOWNTO 0);
PrimaryId=LED_G[7..0]
LED_R : Out STD_LOGIC_VECTOR(7 DOWNTO 0);
PrimaryId=LED_R[7..0]
SW : In STD_LOGIC_VECTOR(7 DOWNTO 0)
PrimaryId=SW[7..0]
);
attribute MacroCell : boolean;

-- ObjectKind=Port|
-- ObjectKind=Port|
-- ObjectKind=Port|
-- ObjectKind=Port|

End Trab_Combinacional;
----------------------------------------------------------------------------------------------------------------------Architecture Structure Of Trab_Combinacional Is
Component AND3S
-- ObjectKind=Part|PrimaryId=U1|
SecondaryId=1
port
(
I0 : in STD_LOGIC;
-- ObjectKind=Pin|PrimaryId=U1-I0
I1 : in STD_LOGIC;
-- ObjectKind=Pin|PrimaryId=U1-I1
I2 : in STD_LOGIC;
-- ObjectKind=Pin|PrimaryId=U1-I2
O : out STD_LOGIC
-- ObjectKind=Pin|PrimaryId=U1-O
);
End Component;
Component INV
port
(
I : in STD_LOGIC;
O : out STD_LOGIC
);
End Component;

-- ObjectKind=Part|PrimaryId=U3|SecondaryId=1
-- ObjectKind=Pin|PrimaryId=U3-I
-- ObjectKind=Pin|PrimaryId=U3-O

Component J8B_8S
-- ObjectKind=Part|PrimaryId=U5|
SecondaryId=1
port
(
I : in STD_LOGIC_VECTOR(7 downto 0);
-- ObjectKind=Pin|PrimaryId=U5-I[7..0]
O0 : out STD_LOGIC;
-- ObjectKind=Pin|PrimaryId=U5-O0
O1 : out STD_LOGIC;
-- ObjectKind=Pin|PrimaryId=U5-O1
O2 : out STD_LOGIC;
-- ObjectKind=Pin|PrimaryId=U5-O2
O3 : out STD_LOGIC;
-- ObjectKind=Pin|PrimaryId=U5-O3
O4 : out STD_LOGIC;
-- ObjectKind=Pin|PrimaryId=U5-O4
O5 : out STD_LOGIC;
-- ObjectKind=Pin|PrimaryId=U5-O5
O6 : out STD_LOGIC;
-- ObjectKind=Pin|PrimaryId=U5-O6
O7 : out STD_LOGIC
-- ObjectKind=Pin|PrimaryId=U5-O7
);
End Component;
Component J8S_8B
SecondaryId=1
port
(

-- ObjectKind=Part|PrimaryId=U6|

I0 : in STD_LOGIC;
-- ObjectKind=Pin|PrimaryId=U6-I0
I1 : in STD_LOGIC;
-- ObjectKind=Pin|PrimaryId=U6-I1
I2 : in STD_LOGIC;
-- ObjectKind=Pin|PrimaryId=U6-I2
I3 : in STD_LOGIC;
-- ObjectKind=Pin|PrimaryId=U6-I3
I4 : in STD_LOGIC;
-- ObjectKind=Pin|PrimaryId=U6-I4
I5 : in STD_LOGIC;
-- ObjectKind=Pin|PrimaryId=U6-I5
I6 : in STD_LOGIC;
-- ObjectKind=Pin|PrimaryId=U6-I6
I7 : in STD_LOGIC;
-- ObjectKind=Pin|PrimaryId=U6-I7
O : out STD_LOGIC_VECTOR(7 downto 0)
-- ObjectKind=Pin|PrimaryId=U6O[7..0]
);
End Component;
Signal NamedSignal_GND1_BUS : STD_LOGIC_VECTOR(7 downto 0); -- ObjectKind=Net|
PrimaryId=GND1_BUS[7..0]
Signal PinSignal_U1_O
: STD_LOGIC; -- ObjectKind=Net|PrimaryId=NetU1_O
Signal PinSignal_U10_O
: STD_LOGIC; -- ObjectKind=Net|PrimaryId=NetU6_I4
Signal PinSignal_U11_O
: STD_LOGIC; -- ObjectKind=Net|PrimaryId=NetU6_I5
Signal PinSignal_U12_O
: STD_LOGIC; -- ObjectKind=Net|PrimaryId=NetU6_I6
Signal PinSignal_U13_O
: STD_LOGIC; -- ObjectKind=Net|PrimaryId=NetU6_I7
Signal PinSignal_U2_O
: STD_LOGIC; -- ObjectKind=Net|PrimaryId=NetU2_O
Signal PinSignal_U3_O
: STD_LOGIC; -- ObjectKind=Net|PrimaryId=NetU2_I0
Signal PinSignal_U4_O
: STD_LOGIC; -- ObjectKind=Net|PrimaryId=NetU4_O
Signal PinSignal_U5_O0
: STD_LOGIC; -- ObjectKind=Net|PrimaryId=NetU1_I0
Signal PinSignal_U5_O1
: STD_LOGIC; -- ObjectKind=Net|PrimaryId=NetU1_I1
Signal PinSignal_U5_O2
: STD_LOGIC; -- ObjectKind=Net|PrimaryId=NetU1_I2
Signal PinSignal_U6_O
: STD_LOGIC_VECTOR(7 downto 0); -- ObjectKind=Net|
PrimaryId=LED_B[7..0]
Signal PinSignal_U7_O
: STD_LOGIC; -- ObjectKind=Net|PrimaryId=NetU4_I1
Signal PinSignal_U8_O
: STD_LOGIC; -- ObjectKind=Net|PrimaryId=NetU6_I3
Signal PinSignal_U9_O
: STD_LOGIC; -- ObjectKind=Net|PrimaryId=NetU9_O
Begin
U13 : AND3S
Port Map
(
I0 => PinSignal_U3_O,
I1 => PinSignal_U7_O,
I2 => PinSignal_U9_O,
O => PinSignal_U13_O
);

-- ObjectKind=Part|PrimaryId=U13|SecondaryId=1
-- ObjectKind=Pin|PrimaryId=U13-I0
-- ObjectKind=Pin|PrimaryId=U13-I1
-- ObjectKind=Pin|PrimaryId=U13-I2
-- ObjectKind=Pin|PrimaryId=U13-O

U12 : AND3S
Port Map
(
I0 => PinSignal_U5_O0,
I1 => PinSignal_U7_O,
I2 => PinSignal_U9_O,
O => PinSignal_U12_O
);

-- ObjectKind=Part|PrimaryId=U12|SecondaryId=1

U11 : AND3S
Port Map
(
I0 => PinSignal_U3_O,
I1 => PinSignal_U5_O1,
I2 => PinSignal_U9_O,
O => PinSignal_U11_O
);

-- ObjectKind=Part|PrimaryId=U11|SecondaryId=1

-- ObjectKind=Pin|PrimaryId=U12-I0
-- ObjectKind=Pin|PrimaryId=U12-I1
-- ObjectKind=Pin|PrimaryId=U12-I2
-- ObjectKind=Pin|PrimaryId=U12-O

-- ObjectKind=Pin|PrimaryId=U11-I0
-- ObjectKind=Pin|PrimaryId=U11-I1
-- ObjectKind=Pin|PrimaryId=U11-I2
-- ObjectKind=Pin|PrimaryId=U11-O

U10 : AND3S
Port Map
(
I0 => PinSignal_U5_O0,
I1 => PinSignal_U5_O1,
I2 => PinSignal_U9_O,
O => PinSignal_U10_O
);
U9 : INV
Port Map
(
I => PinSignal_U5_O2,
O => PinSignal_U9_O
);
U8 : AND3S
Port Map
(
I0 => PinSignal_U3_O,
I1 => PinSignal_U7_O,
I2 => PinSignal_U5_O2,
O => PinSignal_U8_O
);
U7 : INV
Port Map
(
I => PinSignal_U5_O1,
O => PinSignal_U7_O
);

-- ObjectKind=Part|PrimaryId=U10|SecondaryId=1
-- ObjectKind=Pin|PrimaryId=U10-I0
-- ObjectKind=Pin|PrimaryId=U10-I1
-- ObjectKind=Pin|PrimaryId=U10-I2
-- ObjectKind=Pin|PrimaryId=U10-O
-- ObjectKind=Part|PrimaryId=U9|SecondaryId=1
-- ObjectKind=Pin|PrimaryId=U9-I
-- ObjectKind=Pin|PrimaryId=U9-O
-- ObjectKind=Part|PrimaryId=U8|SecondaryId=1
-- ObjectKind=Pin|PrimaryId=U8-I0
-- ObjectKind=Pin|PrimaryId=U8-I1
-- ObjectKind=Pin|PrimaryId=U8-I2
-- ObjectKind=Pin|PrimaryId=U8-O
-- ObjectKind=Part|PrimaryId=U7|SecondaryId=1
-- ObjectKind=Pin|PrimaryId=U7-I
-- ObjectKind=Pin|PrimaryId=U7-O

U6 : J8S_8B
Port Map
(
I0 => PinSignal_U1_O,
I1 => PinSignal_U2_O,
I2 => PinSignal_U4_O,
I3 => PinSignal_U8_O,
I4 => PinSignal_U10_O,
I5 => PinSignal_U11_O,
I6 => PinSignal_U12_O,
I7 => PinSignal_U13_O,
O => PinSignal_U6_O
);

-- ObjectKind=Part|PrimaryId=U6|SecondaryId=1

U5 : J8B_8S
Port Map
(
I => SW,
O0 => PinSignal_U5_O0,
O1 => PinSignal_U5_O1,
O2 => PinSignal_U5_O2
);

-- ObjectKind=Part|PrimaryId=U5|SecondaryId=1

U4 : AND3S
Port Map
(
I0 => PinSignal_U5_O0,
I1 => PinSignal_U7_O,
I2 => PinSignal_U5_O2,

-- ObjectKind=Pin|PrimaryId=U6-I0
-- ObjectKind=Pin|PrimaryId=U6-I1
-- ObjectKind=Pin|PrimaryId=U6-I2
-- ObjectKind=Pin|PrimaryId=U6-I3
-- ObjectKind=Pin|PrimaryId=U6-I4
-- ObjectKind=Pin|PrimaryId=U6-I5
-- ObjectKind=Pin|PrimaryId=U6-I6
-- ObjectKind=Pin|PrimaryId=U6-I7
-- ObjectKind=Pin|PrimaryId=U6-O[7..0]

-- ObjectKind=Pin|PrimaryId=U5-I[7..0]
-- ObjectKind=Pin|PrimaryId=U5-O0
-- ObjectKind=Pin|PrimaryId=U5-O1
-- ObjectKind=Pin|PrimaryId=U5-O2
-- ObjectKind=Part|PrimaryId=U4|SecondaryId=1
-- ObjectKind=Pin|PrimaryId=U4-I0
-- ObjectKind=Pin|PrimaryId=U4-I1
-- ObjectKind=Pin|PrimaryId=U4-I2

O => PinSignal_U4_O
);
U3 : INV
Port Map
(
I => PinSignal_U5_O0,
O => PinSignal_U3_O
);

-- ObjectKind=Pin|PrimaryId=U4-O
-- ObjectKind=Part|PrimaryId=U3|SecondaryId=1
-- ObjectKind=Pin|PrimaryId=U3-I
-- ObjectKind=Pin|PrimaryId=U3-O

U2 : AND3S
Port Map
(
I0 => PinSignal_U3_O,
I1 => PinSignal_U5_O1,
I2 => PinSignal_U5_O2,
O => PinSignal_U2_O
);

-- ObjectKind=Part|PrimaryId=U2|SecondaryId=1

U1 : AND3S
Port Map
(
I0 => PinSignal_U5_O0,
I1 => PinSignal_U5_O1,
I2 => PinSignal_U5_O2,
O => PinSignal_U1_O
);

-- ObjectKind=Part|PrimaryId=U1|SecondaryId=1

-- ObjectKind=Pin|PrimaryId=U2-I0
-- ObjectKind=Pin|PrimaryId=U2-I1
-- ObjectKind=Pin|PrimaryId=U2-I2
-- ObjectKind=Pin|PrimaryId=U2-O

-- ObjectKind=Pin|PrimaryId=U1-I0
-- ObjectKind=Pin|PrimaryId=U1-I1
-- ObjectKind=Pin|PrimaryId=U1-I2
-- ObjectKind=Pin|PrimaryId=U1-O

-- Signal Assignments
--------------------LED_B
<= PinSignal_U6_O; -- ObjectKind=Net|PrimaryId=LED_B[7..0]
LED_G
<= NamedSignal_GND1_BUS; -- ObjectKind=Net|PrimaryId=GND1_BUS[7..0]
LED_R
<= NamedSignal_GND1_BUS; -- ObjectKind=Net|PrimaryId=GND1_BUS[7..0]
NamedSignal_GND1_BUS <= "00000000"; -- ObjectKind=Net|PrimaryId=GND1_BUS[7..0]
End Structure;

You might also like