You are on page 1of 10

INTRODUCCIN A LAS HERRAMIENTAS DE SNTESIS Y USO DEL ESTILO FLUJO

DE DATOS PARA EL DISEO E IMPLEMENTACIN EN FPGA DE CIRCUITOS


COMBINACIONALES

RESOLUCION DE LOS PROBLEMAS


PROPUESTOS DE DISEO DIGITAL
LABORATORIO N1 y N2
1. Implemente un multiplicador de 4 bits por 4 bits.
TEXT EDITOR CODIGO EN VHDL
library IEEE;
use IEEE.STD_LOGIC_1164.ALL;
use IEEE.STD_LOGIC_ARITH.ALL;
use IEEE.STD_LOGIC_UNSIGNED.ALL;
entity multi is
Port( a,b : in std_logic_vector(3 downto 0);
c
: out std_logic_vector(7 downto 0));
end multi;
architecture archimulti of multi is
begin
c<=(a*b);
end archimulti;
WAVEFORM EDITOR - SIMULACION

DISEO DIGITAL

Pgina 1

INTRODUCCIN A LAS HERRAMIENTAS DE SNTESIS Y USO DEL ESTILO FLUJO


DE DATOS PARA EL DISEO E IMPLEMENTACIN EN FPGA DE CIRCUITOS
COMBINACIONALES

2. Implementar un comparador de dos nmeros de 4 bits (A y B) teniendo en cuenta el bit


de signo (bit de mayor peso de cada entrada). Las salidas debe indicar si:
a. A < B
b. A > B
c. A = B
TEXT EDITOR CODIGO EN VHDL
library IEEE;
use IEEE.STD_LOGIC_1164.ALL;
use IEEE.STD_LOGIC_ARITH.ALL;
use IEEE.STD_LOGIC_UNSIGNED.ALL;
entity comparador is
Port ( A : in std_logic_vector(3 downto 0);
B : in std_logic_vector(3 downto 0);
IGU : out std_logic;
MAY : out std_logic;
MEN : out std_logic);
end comparador;
architecture Behavioral of comparador is
begin
process(A,B)
begin
MAY <= '0';
MEN <= '0';
IGU <= '0';
if(A(3)>B(3)) then
MAY <= '1';
elsif(A(3)<B(3)) then
MEN <= '1';
elsif(A(3)='0' and B(3)='0' and A(2 downto 0)>B(2 downto 0)) then

DISEO DIGITAL

Pgina 2

INTRODUCCIN A LAS HERRAMIENTAS DE SNTESIS Y USO DEL ESTILO FLUJO


DE DATOS PARA EL DISEO E IMPLEMENTACIN EN FPGA DE CIRCUITOS
COMBINACIONALES
MEN <= '1';
elsif(A(3)='0' and B(3)='0' and A(2 downto 0)<B(2 downto 0)) then
MAY <= '1';
elsif(A(3)='1' and B(3)='1' and A(2 downto 0)>B(2 downto 0)) then
MAY <= '1';
elsif(A(3)='1' and B(3)='1' and A(2 downto 0)<B(2 downto 0)) then
MEN <= '1';
else
IGU <= '1';
end if;
end process;
end Behavioral;

DISEO DIGITAL

Pgina 3

INTRODUCCIN A LAS HERRAMIENTAS DE SNTESIS Y USO DEL ESTILO FLUJO


DE DATOS PARA EL DISEO E IMPLEMENTACIN EN FPGA DE CIRCUITOS
COMBINACIONALES
WAVEFORM EDITOR SIMULACION

3. Implementar el siguiente circuito:

TEXT EDITOR CODIGO EN VHDL


library IEEE;
use IEEE.STD_LOGIC_1164.ALL;
use IEEE.STD_LOGIC_ARITH.ALL;
use IEEE.STD_LOGIC_UNSIGNED.ALL;
ENTITY mux IS
PORT(a
b
c
salida
END mux;

DISEO DIGITAL

:
:
:
:

IN std_logic;
IN std_logic;
IN std_logic;
OUT std_logic);

Pgina 4

INTRODUCCIN A LAS HERRAMIENTAS DE SNTESIS Y USO DEL ESTILO FLUJO


DE DATOS PARA EL DISEO E IMPLEMENTACIN EN FPGA DE CIRCUITOS
COMBINACIONALES
ARCHITECTURE synth OF mux IS
BEGIN
PROCESS (a, b, c)
BEGIN
IF (c='0' and a='0') THEN
salida<='Z';
ELSIF (c='0' and a='1') THEN
salida<= 'H';
ELSIF (c='1' and b='0') THEN
salida<='Z';
ELSE
salida<='H';
END IF;
END PROCESS;
END synth;
WAVEFORM EDITOR SIMULACION

WARNING: El valor de H en la grfica toma el valor de 0.

4. Implemente un circuito para activar una ALARMA cuando se tenga las siguientes
condiciones:
Sensor de corriente superior a 100mA.
Sensor de voltaje por debajo de 5v e inferior de 100mA.
Sensor de potencia superior a 10mw y por debajo de 5v.
TEXT EDITOR CODIGO EN VHDL
library IEEE;
use IEEE.STD_LOGIC_1164.ALL;
use IEEE.STD_LOGIC_ARITH.ALL;

DISEO DIGITAL

Pgina 5

INTRODUCCIN A LAS HERRAMIENTAS DE SNTESIS Y USO DEL ESTILO FLUJO


DE DATOS PARA EL DISEO E IMPLEMENTACIN EN FPGA DE CIRCUITOS
COMBINACIONALES
use IEEE.STD_LOGIC_UNSIGNED.ALL;
entity alarma is
Port ( A : in std_logic;
B : in std_logic;
C : in std_logic;
SALIDA : out std_logic);
end alarma;
architecture activador of alarma is
begin
process(A,B,C)
begin
if(A='1') then
SALIDA <= '1';
elsif(A='0' and B='0') then
SALIDA <= '1';
elsif(C='1' and B='0') then
SALIDA <= '1';
else
SALIDA <= '0';
end if;
end process;
end activador;
WAVEFORM EDITOR - SIMULACION

5. Implemente el comportamiento del circuito 74139 en VHDL.


TEXT EDITOR CODIGO EN VHDL
library IEEE;

DISEO DIGITAL

Pgina 6

INTRODUCCIN A LAS HERRAMIENTAS DE SNTESIS Y USO DEL ESTILO FLUJO


DE DATOS PARA EL DISEO E IMPLEMENTACIN EN FPGA DE CIRCUITOS
COMBINACIONALES
use IEEE.STD_LOGIC_1164.ALL;
use IEEE.STD_LOGIC_ARITH.ALL;
use IEEE.STD_LOGIC_UNSIGNED.ALL;
entity circuito is
Port ( A : in std_logic;
B : in std_logic;
ENA : in std_logic;
Y : out std_logic_vector(3 downto 0));
end circuito;
architecture integrado of circuito is
signal ENTRADA: std_logic_vector(1 downto 0);
signal SALIDAS: std_logic_vector(3 downto 0);
begin
ENTRADA <= B & A;
with ENTRADA select SALIDAS <=
"1110" when
"1101" when
"1011" when
"0111" when
Y <= SALIDAS when ENA='0' else (others=>'1');
end integrado;

"00",
"01",
"10",
others;

WAVEFORM EDITOR - SIMULACION


6. Explique la diferencia entre un TYPE y SUBTYPE, muestre algunos ejemplos

utilizando casos de vivencias diarias.

La diferencia que encontramos es que un TYPE

existen varios tipos de datos, en VHDL

se pueden diferenciar dos: escalares y compuestos, y en un SUBTYPE estos


corresponden a tipos ya existentes. Se pueden diferenciar dos tipos dependiendo de

DISEO DIGITAL

Pgina 7

INTRODUCCIN A LAS HERRAMIENTAS DE SNTESIS Y USO DEL ESTILO FLUJO


DE DATOS PARA EL DISEO E IMPLEMENTACIN EN FPGA DE CIRCUITOS
COMBINACIONALES
las restricciones que se apliquen: Restricciones de un tipo escalar a un rango y
Restricciones del rango de una matriz.
Ejemplos:
1. Un ejemplo claro seria que felino es un tipo de animal, pero gato es un tipo de
felino; donde felino es el tipo y gato es el subtipo.

2.

7. Asumiendo que:

Implemente la Tabla mostrada en la parte inferior:

DISEO DIGITAL

Pgina 8

INTRODUCCIN A LAS HERRAMIENTAS DE SNTESIS Y USO DEL ESTILO FLUJO


DE DATOS PARA EL DISEO E IMPLEMENTACIN EN FPGA DE CIRCUITOS
COMBINACIONALES

TABLA RESUELTA EN ORDEN POR ASIGANACION

Dimension (on each


side)
1 bit en ambos lados
1 bit en ambos lados

1 bit en ambos lados

1 bit en ambos lados

DISEO DIGITAL

Legal or ilegal (why)


ilegal, porque la seal a en la respuesta es de tipo
std_logic, pero la seal a es de tipo bit.
legal, porque la seal b en la respuesta es de tipo std_logic
y cumple con su tipo de seal que es, adems de cumplir con su
dimensin en el array.
legal, porque la seal b en la respuesta es de tipo std_logic
y cumple con su tipo de seal que es, adems de cumplir con su
dimensin en el array.
ilegal, porque la posicin del array de la seal w en la
respuesta no est declarado.

Pgina 9

INTRODUCCIN A LAS HERRAMIENTAS DE SNTESIS Y USO DEL ESTILO FLUJO


DE DATOS PARA EL DISEO E IMPLEMENTACIN EN FPGA DE CIRCUITOS
COMBINACIONALES
1 bit en ambos lados
1bit en ambos lados

8 bits y 7bits en
cada lado
respectivamente
1 bit y 7 bits en
cada lado
respectivamente
1bit y 8 bits en
cada lado
respectivamente
1 bit y 32 bits en
cada lado
respectivamente
1 bit en ambos lados
1 bit en ambos lados
8 bits en ambos
lados
8 bits y 2 bits en
ambos lados
respectivamente
1 bit en ambos lados
1 bit en ambos lados
32 bits en ambos
lados
1 bit en ambos lados

3 bits
lados
3 bits
lados
3 bits
lados
8 bits
lados
1 bit

en ambos
en ambos
en ambos
en ambos

DISEO DIGITAL

legal, porque la seal y y z cumplen con sus dimensiones y


poseen el mismo tipo que es std_logic.
legal, porque la seal x en la respuesta es de tipo std_logic
y cumple con su tipo de seal que es, adems de cumplir con su
dimensin en el array.
ilegal, porque las dimensiones de las seales no coinciden.

ilegal, porque las dimensiones de las seales no coinciden.

ilegal, porque las dimensiones de las seales no coinciden.

ilegal, porque las dimensiones de las seales no coinciden y


adems la seal w es un array bidimensional y en el problema
se asigna como un array unidimensional.
ilegal, porque la seal w es un array bidimensional y en el
problema se asigna como un array unidimensional.
ilegal, porque la seal y es un array bidimensional y en el
problema se asigna como un array unidimensional.
legal, porque la seal w y x cumplen con sus dimensiones y
poseen el mismo tipo que es std_logic.
ilegal, porque las dimensiones de las seales no coinciden.

ilegal, porque la posicin del array de la seal x en la


respuesta no est declarado.
ilegal, porque la posicin del array de la seal x en la
respuesta no est declarado.
legal, porque la seal y en la respuesta cumple con sus
dimensiones y su tipo std_logic.
legal, porque la seal z en la respuesta es de tipo std_logic
y cumple con su tipo de seal que es, adems de cumplir con su
dimensin en el array.
legal, porque la seal z y x cumplen con sus dimensiones y
poseen el mismo tipo que es std_logic.
ilegal, porque la seal y es un array bidimensional y en el
problema se asigna como un array unidimensional.
ilegal, porque la seal y es un array bidimensional y en el
problema se asigna como un array unidimensional.
legal, porque la seal y y z cumplen con sus dimensiones y
poseen el mismo tipo que es std_logic.
ilegal, porque la seal w es un array unidimensional y en el
problema se asigna como un array bidimensional.

Pgina 10

You might also like