Está en la página 1de 3

ESCUELA TCNICA SUPERIOR

DE INGENIERA

LABORATORIO DE SISTEMAS ELECTRONICOS DIGITALES

DEPT. ELECTRNICA Y AUTOMTICA

Prctica 1: "DISEO CON QUARTUS II. CAPTURA DE ESQUEMAS SIMULACION Y


EMPLAZAMIENO "
0.-INTRODUCCIN.
El objetivo de esta primera prctica, es la introduccin al diseo con herramientas EDA y lenguajes de descripcin de
hardware, as como al sistema de desarrollo de FPGA que usaremos durante el curso. La prctica consiste en el diseo de un
circuito multiplexor para mostrar 4 dgitos de 4 bits introducidos mediante los microinterruptores S5 y S6 (vase la Tabla 1),
en tres indicadores de 7 segmentos (DISPLAY_1, DISPLAY_2 y DISPLAY_3). Los dgitos mostrados dependern del estado
de 4 pulsadores del teclado matricial, concretamente el 0, 1, 2 y 3, segn se indica en la Tabla 2. En la Figura 1 se muestra un
diagrama de bloques del circuito a disear.
Pulsadores 0=OFF, 1=ON
Microinterruptores
Dgito
S5
S5
S6
S6

4-1 (MSB = 4)
8-5 (MSB = 8)
4-1 (MSB = 4)
8-5 (MSB = 8)

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

A
B
C
D

Tabla 1: Dgitos de entrada

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

2
0
0
1
1
0
0
1
1
0
0
1
1
0
0
1
1

3
0
1
0
1
0
1
0
1
0
1
0
1
0
1
0
1

DISPLAY_1
A
B
C
D
A
B
C
D
-

DISPLAY_2
A
B
C
D
A
B
C
D
-

DISPLAY_3
A
B
C
D
A
B
C
D

Tabla 2: Seleccin de dgitos


S5

ON
mux 4:1

A[3..0]

B[3..0]

S6

ON

C[3..0]

f
e

g
d

Row1

D[3..0]

mux1
mux2
mux3
mux4

Selector

a
b
a
c
d
f
b
g
e
f
e
c
g
d
punto

Decodificador
4 BIT A 7-SEG

Teclado

Figura 1: Diagrama de bloques del circuito


3

a
b
c

f
e

g
d

b
c

f
e

g
d

b
c

ESCUELA TCNICA SUPERIOR


DE INGENIERA
DEPT. ELECTRNICA Y AUTOMTICA

LABORATORIO DE SISTEMAS ELECTRONICOS DIGITALES

Para la realizacin de la prctica se debe tener en cuenta el hardware de la tarjeta PRINCE. En el manual de usuario de
dicha tarjeta (http://www.dea.icai.upco.es/sadot/sed/UG_PRINCE_2.1.pdf) se indican los nmeros de las patillas de la FPGA a
las que estn conectados cada uno de los dispositivos usados en la prctica (microinterruptores, indicadores y pulsadores) y sus
niveles lgicos. Conviene destacar que los indicadores estn multiplexados, de forma que todos ellos comparten las seales de
datos y slo se iluminan aquellos cuya seal MUX est activa. As, para encender el DISPLAY_1 hay que activar la salida
MUX_1 de la FPGA, para el DISPLAY_2 la salida MUX_2 y as sucesivamente. Por otro lado, los pulsadores usados forman
parte del teclado matricial. Para poder usarlos es necesario poner a cero la primera fila (salida ROW_1). De esta manera, si se
pulsa el 0, obtendremos un nivel bajo en la entrada COL_1, si se pulsa el 1, el nivel bajo se obtendr en la entrada COL_2 y si
se pulsan el 3 o el 4, se obtendr un nivel bajo en las entradas COL_3 o COL_4, respectivamente.
En la documentacin de la prctica se deber indicar el proceso de diseo seguido, las simulaciones realizadas, los esquemas y
el cdigo VHDL que componen el diseo, etc.
1.- TRABAJO PREVIO.
1.

2.

Al final de la prctica se incluyen tres circuitos especificados en VHDL:


a) Un multiplexor de 4 a 1 (se usar para multiplexar los dgitos de los microinterruptores S5 y S6).
b) Un decodificador de BCD a 7 segmentos (se usar para los visualizadores).
c) Un decodificador de 4 a 1 (se usar para seleccionar qu visualizadores se activan).
Tenga en cuenta que estos circuitos pueden tener errores. Adems algunos habr que modificarlos para adaptarlos a
las necesidades de la prctica.
Usando el manual de la tarjeta Prince, identifique los nmeros de cada una de las patillas usadas en el circuito.

2.- REALIZACIN DE LA PRCTICA


1) Escriba el cdigo VHDL correspondiente al decodificador, multiplexor y selector.
- Arranque el programa Quartus (men Inicio->Ingeniera->Altera-> Quartus).
- Cree un proyecto. Si no recuerda como hacerlo puede consultar la wiki de la asignatura:
http://www.dea.icai.upcomillas.es/daniel/pmwiki
- Genere un esquema de bloques para el nivel superior de la jerarqua.
- Escriba el cdigo VHDL de cada uno de los bloques y genere los smbolos correspondientes.
- En el esquema del nivel superior conecte los bloques diseados. Introduzca tambin los puertos de entrada y salida.
2) Simulacin del diseo.
- Genere el fichero de estmulos, e introduzca para las seales de entrada los estmulos que considere necesarios para
probar que el circuito funciona segn la tabla de verdad. Simule a continuacin el circuito para comprobar que cumple
las especificaciones de la prctica. En caso de error, corrija el cdigo VHDL o las conexiones necesarias y ejecute de
nuevo los pasos 1) y 2).
3) Emplazamiento del diseo sobre la tarjeta.
- Asigne las patillas de la FPGA correspondientes a cada entrada y salida del circuito antes de proceder a su
emplazamiento y verificacin en la placa. Una vez finalizado este proceso, compile el diseo y descrgelo en la tarjeta.
El proceso de asignacin de patillas y de configuracin de la FPGA est descrito en la wiki de la asignatura.
- Compruebe el funcionamiento del circuito. Cuando ste sea satisfactorio, avise al profesor para que lo verifique.
3.- OPCIONAL
Introduzca una frecuencia de parpadeo a los visualizadores de 4 veces por segundo (aproximadamente). Para ello hay que
emplear un divisor de frecuencia a partir del oscilador de la tarjeta y conectarlo al bit correspondiente de los visualizadores.
AVISO MUY IMPORTANTE: Toda la fase de diseo, clculos, esquemas, etc. ha de realizarse antes de ir al
laboratorio. La prctica esta pensada para que en las dos horas de laboratorio de tiempo a la captura, simulacin y verificacin
del circuito, pero de ninguna manera dar tiempo a realizar todo el proceso de diseo. La duracin de esta prctica ser de una
sola sesin IMPRORROGABLE. No es necesario introducir resistencias, ni ningn otro componente a la placa.

ESCUELA TCNICA SUPERIOR


DE INGENIERA
DEPT. ELECTRNICA Y AUTOMTICA

LABORATORIO DE SISTEMAS ELECTRONICOS DIGITALES

-- Decodificador hexadecimal a 7 segmentos


-- Autor: SAF, JDMF
-- Versin: 1.0
-

-- Multiplexor 4 a 1 de 4 bits
-- Autor: SAF, JDMF
-- Versin: 1.0
-

library ieee;
use ieee.std_logic_1164.all;
u

library ieee;
use ieee.std_logic_1164.all; -- Define STD_LOGIC
u

ENTITY hex7seg IS
PORT(
x : IN STD_LOGIC_VECTOR(3 downto 0);
a,b,c,d,e,f,g : OUT STD_LOGIC
);
END hex7seg;

ENTITY mux4a1
PORT(
-- Entradas
a, b, c, d:
s0,s1
:
Salida
:
);
END mux4a1;

ARCHITECTURE comportamental OF hex7seg IS


SIGNAL sal :STD_LOGIC_VECTOR(6 DOWNTO 0);
BEGIN
PROCESS
BEGIN
CASE x IS
WHEN "0000" => sal <="1111110";
WHEN "0001" => sal <="1100000";
WHEN "0010" => sal <="1011011";
WHEN "0011" => sal <="1110011";
WHEN "0100" => sal <="1100101";
WHEN "0101" => sal <="1011011";
WHEN "0110" => sal <="0111111";
WHEN "0111" => sal <="1100010";
WHEN "1000" => sal <="1111111";
WHEN "1001" => sal <="1100111";
WHEN "1010" => sal <="1101111";
WHEN "1011" => sal <="0111101";
WHEN "1100" => sal <="0011110";
WHEN "1101" => sal <="1111001";
WHEN "1110" => sal <="0011111";
WHEN "1111" => sal <="0001111";
WHEN OTHERS => sal <="0000000";
END CASE;
END PROCESS;
a <= sal(6);
b <= sal(5);
c <= sal(4);
d <= sal(3);
e <= sal(2);
f <= sal(1);
g <= sal(0);
END comportamental;

IS
de datos
IN STD_LOGIC_VECTOR(3 downto 0);
IN STD_LOGIC; -- Seleccin
OUT STD_LOGIC_VECTOR(3 downto 0)

ARCHITECTURE comportamental OF mux4a1 IS


SIGNAL vector : STD_LOGIC_VECTOR(1 DOWNTO 0);
BEGIN
PROCESS(S1, S0)
BEGIN
vector <= s1 & s0 ;
CASE vector IS
WHEN "00" => Salida <= a;
WHEN "01" => Salida <= b;
WHEN "10" => Salida <= c;
WHEN "11" => Salida <= d;
END CASE;
END PROCESS;
END comportamental;
-- Decodificador de 2 a 4
-- Autor: SAF, JDMF
-- Versin: 1.0
library ieee;
use ieee.std_logic_1164.all; -- Define STD_LOGIC
u
ENTITY dec2a4 IS
PORT(
in0,in1 : IN STD_LOGIC;
mux0,mux1,mux2,mux3 : OUT STD_LOGIC);
END dec2a4;
ARCHITECTURE comportamental OF dec2a4 IS
SIGNAL vector : STD_LOGIC_VECTOR(1 DOWNTO 0);
BEGIN
PROCESS(IN1, IN0)
BEGIN
vector <= in1 & in0 ;
CASE vector IS
WHEN "00" => mux0 <='1'; mux1 <='1';
mux2 <='1'; mux3 <='1';
WHEN "01" => mux0 <='1'; mux1 <='0';
mux2 <='0'; mux3 <='0';
WHEN "10" => mux0 <='0'; mux1 <='1';
mux2 <='0'; mux3 <='0';
WHEN "11" => mux0 <='0'; mux1 <='0';
mux2 <='1'; mux3 <='0';
END CASE;
END PROCESS;
END comportamental;

También podría gustarte