601 Experimento 2 Kit De2

  • November 2019
  • PDF

This document was uploaded by user and they confirmed that they have the permission to share it. If you are author or own the copyright of this book, please report to us by using this DMCA report form. Report DMCA


Overview

Download & View 601 Experimento 2 Kit De2 as PDF for free.

More details

  • Words: 736
  • Pages: 3
ETN-601

Guía de Laboratorio FPGA 2 EXPERIMENTO 2 CONTADOR ASCENDENTE 0-9

Objetivos: -

Implementar funciones y códigos digitales.

VHDL de sistemas secuenciales

-

Utilizar la entrada del oscilador de 25Mhz de la tarjeta DE2.

Desarrollo: El alumno recordará que los circuitos digitales secuenciales requieren de una señal de habilitación de estados conocida como “CK”, “RELOJ” o “CLOCK”. Dicha señal se la obtenía implementando un eliminador de rebotes mediante compuertas NAND, NOR o mediante un oscilador astable. En la tarjeta DE2 se tiene a disposición un oscilador de 27 Mhz y 50 Mhz cuyas conexiones a la FPGA están disponibles en los pines PIN_D13 y PIN_N2 respectivamente, también se dispone de un pin para conectar un oscilador externo a la tarjeta DE2 denominado PIN_P26. Para este experimento se implementará un contador ascendente de 0 a F que se desplegará en el display HEX7, también contará con un control de parada o “stop” el cual será controlado por el switch SW0 y un control de reset utilizando el push-button KEY0. En la figura siguiente se muestra el esquema del experimento. Reset RUN/STOP Clock

7 CONTADOR SISTEMA SECUENCIAL

Se utilizará como entrada de clock el oscilador de 25Mhz, La visualización del contador será cada segundo, por lo cual se deberá implementar un divisor de frecuencia para obtener una señal de reloj de 1 segundo de periodo. En el software Quartus II crear un nuevo proyecto, crear una nueva fuente VHDL e introducir el siguiente código VHDL:

ROC-JLV

1/3

ETN-601

Guía de Laboratorio FPGA 2

LIBRARY ieee; USE ieee.std_logic_1164.all; --Contador ascendente 0 - F --UMSA Facultad de Ingenieria, Carrera de Electrónica --Electronica Digital I, ETN-601 --Docente: Ing. Roberto Oropeza ENTITY contador is port ( --pines del display HEX7 disp_hex7: out std_logic_vector(6 downto 0); --pines de entrada de los switches SW0, SW1, SW2 y SW3 SW0, KEY0, clock:in std_logic); end contador; --------------------------------------------------------------------------architecture behavior of contador is --señales auxiliares signal contador1: integer range 0 to 10:=0; signal contador1seg: integer range 0 to 25000001:=0; signal clock1seg: std_logic:='0'; begin -----------------------------------------------------------Proceso 1: Divisor de frecuencia para obtener un clock de -1 segundo de periodo ---------------------------------------------------------proc_divf:process (clock) begin if contador1seg = 25000000 then clock1seg <= not clock1seg; contador1seg <= 0; else contador1seg <= contador1seg +1; end if; end process; -----------------------------------------------------------Proceso 2: Maquina de estados del contador ---------------------------------------------------------proc_contador: process (SW0, KEY0, clock1seg) begin if clock1seg'event and clock1seg ='1' then if SW0 = '1' then if KEY0 = '0' or contador1 = 10 then contador1 <= 0; else contador1 <= contador1 +1; end if; case contador1 is when 0 => disp_hex7 <= "1000000"; when 1 => disp_hex7 <= "1111001"; when 2 => disp_hex7 <= "0100100"; when 3 => disp_hex7 <= "0110000"; when 4 => disp_hex7 <= "0011001"; when 5 => disp_hex7 <= "0010010"; when 6 => disp_hex7 <= "0000010"; when 7 => disp_hex7 <= "1111000"; when 8 => disp_hex7 <= "0000000"; when 9 => disp_hex7 <= "0010000"; when 10 => disp_hex7 <= "1111111"; end case; end if; end if; end process; end behavior;

ROC-JLV

2/3

ETN-601

Guía de Laboratorio FPGA 2

CONSIDERACIONES: -

Note el estudiante el “proceso 1” del código, en este proceso se implementa un divisor de frecuencia mediante un contador interno el cual cada vez que llega al valor 12500000 hace cambiar el estado lógico de la señal clock1seg. El valor 12500000 obedece a la lógica de manejar un clock externo de 25 Mhz, cada ciclo de clock dura 40n segundos, por lo tanto se requiere 12500000 ciclos de clock para obtener un periodo de 1 segundo en la señal clock1seg.

-

Para este experimento se separó el proceso de divisor de frecuencia para que el alumno tenga una mejor apreciación del proceso, el mismo puede ser fusionado con el proceso 2 para ahorrar código y recursos.

-

En este caso la máquina de estados finitos esta representada por la estructura de la sentencia CASE, podemos observar que se trata de una máquina de 11 estados.

-

También se debe considerar para este experimento utilización de la sentencia condicional if-then-elsif-else con la cual controlamos el flujo de la maquina de estados y ka asignación de valores.

PREINFORME 1. En base al programa vhdl de ejemplo, modificarlo y obtener un contador adicionando un control ascendente/descendente del 0 a ‘F’. INFORME 1. Explicar del ejemplo de la guía si la máquina de estados es de tipo Mealy o de tipo Moore, argumentar la respuesta. 2. Mostrar en tablas de relación Entrada/Salida los resultados del preinforme.

ROC-JLV

3/3

Related Documents

601 Experimento 2 Kit De2
November 2019 7
601 Experimento 3 Kit De2
November 2019 9
Experimento
October 2019 36
Experimento
June 2020 16
Experimento
October 2019 21
Experimento
November 2019 22