Está en la página 1de 7

Electrónica Digital Práctica nº6

Nombres Adria arago lloret

:_________________________________________________________

_________________________________________________________

PRACTICA - 6

Contador usando esquemático


1. Competencias

Una vez finalizada la presente práctica, el alumno debe ser capaz de:

Competencias específicas

 Manejar software de programación de CPLDs y FPGAs.

 Diseñar, simular y analizar un registro un acumulador y un contador.

 Razonar y contrastar las diferencias entre varios diseños.

Competencias genéricas

 Trabajar en grupo.

 Analizar resultados obtenidos y justificar selección óptima.

 Manejar y adaptarse a los recursos disponibles.

2. Procedimiento.

2.1 Diseño de un contador ascendente-descendente de módulo 10.

2.1.1 El esquema a capturar es un contador de módulo 10 ascendente/descendente que tiene como elementos
básicos un contador y un decodificador 7 segmentos. A cada flanco activo de reloj se incrementará o decrementará
la cuenta según el valor de la entrada up/down. El contador dispondrá de una entrada clear asíncrona (aCLR)
activa a nivel alto, además el decodificador BCD-7seg dispondrá de una entrada LAMPTEST que activará todas
las salidas cuando reciba un 0 lógico.

CONTADOR2
up/down
UP/DOWN INPUT
updown modulus 10 DECO_BCD_7
VCC

CLK INPUT clock OUTPUT sal[6..0]


GND q[3..0] E[3..0] SAL[6..0]
LT
c
alr

inst
inst1
CLEAR INPUT
GND
1

LAMPTEST INPUT
VCC
Electrónica Digital Práctica nº6

2.1.2 Creamos una carpeta en el escritorio que llamaremos P6.

2.1.3 Abrimos Quartus II y hacemos File>New y cuando aparezca la ventana de diálogo, seleccionamos Block
Diagram/Schematic File.

2.1.4 Guardamos el archivo en la carpeta P7 con el nombre de CONTADOR (antes de hacerlo, se nos
preguntará si queremos crear un nuevo proyecto, aceptamos).

2.1.5 Seleccionamos el path donde está la carpeta creada y nombramos la entidad de mayor nivel del diseño de
este proyecto como CONTADOR.
2.1.6 Seleccionamos la familia de FPGAs CICLON II y escogemos el dispositivo perteneciente a dicha familia
EP2C20F484C7N.
2.1.7 El circuito a diseñar contiene una “Megafunción/LPM” de Quartus II. Una megafunción es un bloque
lógico complejo y configurable que puede utilizarse en conjunto con otros elementos generados en el entorno. La
ventaja de usar estos bloques es que no requieren descripción VHDL, son más fáciles de sintetizar e implementar
por la FPGA. Altera proporciona una librería de megafunciones que puede ser estudiada a través de la ayuda
(Help>Megafunctions/LPM). En la ventana de ayuda puede verse como las LPM están divididas en varios grupos:
Puertas lógicas, componentes aritméticos, de almacenamiento…

2.1.8 Busca a través de la ayuda de Quartus II información acerca de la Megafunción LPM_COUNTER.


Estudia el significado de sus entradas y salidas, así como de su funcionamiento.

2
Electrónica Digital Práctica nº6

2.1.9 Selecciona la opción Insert > Symbol, tal y como se muestra en la figura siguiente. Dicho comando
también está accesible a través de la barra de herramientas que aparece a la izquierda de la ventana de gráficos, .

Al seleccionar esta opción, aparece una ventana que contiene todas las librerías de símbolos. A través de esta
ventana podemos escoger todo tipo de componentes: megafunciones, puertas lógicas, biestables, puertos de
entrada y salida… Selecciona el LPM_COUNTER dentro de megafunctions > arithmetic, pulsa OK y marca la
opción para la generación de un fichero de salida VHDL. Tras pulsar Next, debemos configurar nuestro sumador.

2.1.10 Inserta un contador ascendente/descendente usando la megafunción lpm_counter. El contador debe ser de
módulo 10 y disponer de una entrada clear asíncrona.

CONTADOR2
up/down
updow n modulus 10
clock
q[3..0]
aclr

inst

Por defecto tanto entradas como salidas son activas a nivel alto, si quisiéramos hacerlas activas a nivel bajo
podríamos modificarlas una vez creado el componente a través de las propiedades. Inserta todos los puertos
necesarios y edítalos para que coincidan en número y nombre a los mostrados en la figura si es
necesario.

CONTADOR2
up/down
updow n modulus 10
clock
q[3..0]
aclr

inst

3
Electrónica Digital Práctica nº6

2.1.11 Ahora incorpora al proyecto un nuevo archivo VHDL donde se implemente el decodificador BCD-7
segmentos, para ello puedes utilizar el siguiente código:

Library IEEE;
use IEEE.STD_LOGIC_1164.ALL;
use IEEE.STD_LOGIC_ARITH.ALL;
use IEEE.STD_LOGIC_UNSIGNED.ALL;

entity DECO_BCD_7 is
port (E : in std_logic_vector (3 downto 0);
LT : in std_logic;
SAL: out bit_vector (6 downto 0));
end entity;

architecture uno of DECO_BCD_7 is


begin
SAL <= "1111111" when LT='0'
else "1111110" when E="0000"
else "0110000" when E="0001"
else "1101101" when E="0010"
else "1111001" when E="0011"
else "0110011" when E="0100"
else "1011011" when E="0101"
else "0011111" when E="0110"
else "1110000" when E="0111"
else "1111111" when E="1000"
else "1110011" when E="1001"
else "0000000";

end uno;

Guarda el archivo VHDL con el mismo nombre que la entidad, es decir, DECO_BCD_7.vhdl.

4
Electrónica Digital Práctica nº6

2.1.12 Ahora crea el símbolo asociado al código VHDL del decodificador BCD-7 segmentos como se indica en

la figura.

2.1.13 Vuelve al diagrama donde está el contador, inserta el decodificador y realiza el conexionado como se
muestra en la figura.

CONTADOR2
up/down
UP/DOWN INPUT DECO_BCD_7
VCC updown modulus 10

CLK INPUT clock OUTPUT sal[6..0]


GND q[3..0] E[3..0] SAL[6..0]
LT
c
alr

inst
inst1
CLEAR INPUT
GND

LAMPTEST INPUT
VCC

5
Electrónica Digital Práctica nº6

2.1.14 En Compilation report obtener los siguientes datos:

elementos lógicos usados por nuestro diseño ____23/18752____________

total de pines ____11/315____________

total de bits de memoria ___0/239616_____________

tiempo empleado para la compilación ________8 s________

pines asignados a las entradas CLEAR= M2, CLK= M1, LAMPTEST= P6,
UP/DOWN= P3

pines asignados a las salidas sa0= R1, sa1= R5, sa2= T1, sa3= P5, sa4= N3, sa5=
R7, sa6= T2

¿Qué ruta es la más lenta y por tanto nos limita la velocidad del diseño?

2.1.15 Realizar la simulación completa del diseño, para ello se debe tener en cuenta que debemos crear
unas entradas que nos permitan observar, completamente, el correcto funcionamiento de nuestro circuito.
Guardar como “contador.vwf”.
INSERTA LA CAPTURA DE LA SALIDA OBTENIDA.

6
Electrónica Digital Práctica nº6

También podría gustarte