Computing">
Nothing Special   »   [go: up one dir, main page]

Practica 2.1

Descargar como pdf o txt
Descargar como pdf o txt
Está en la página 1de 10

Tecnológico Nacional de México

Instituto Tecnológico de San juan del Rio


INGENIERÍA EN ELECTRÓNICA

Formato para prácticas de laboratorio

NOMBRE DE LA ASIGNATURA

Diseño Digital con VHDL

Practica Duración
Nombre de la Practica
No. (Horas)

2.1 Contador de código gray y binario 4

Fecha de entrega: 30/10/2020

Integrantes de equipo
Martinez Barrera Yamin Yoqsan
No. De control: 18590353

1 Introducción
La siguiente practica tiene como objetivo implementar una FSM que seleccione uno de dos contadores,
un contador de código gray y otro contador binario.
Esto dependiendo del estado de una entrada.

Para ello, se comienza diseñando un diagrama de estado que permita visualizar gráficamente como es
la transición entre los estados dependiendo del estado de la entrada que se coloque.

Posteriormente se diseña un listado VHDL respecto al comportamiento que tiene la FSM con las
características planteadas.

Y finalmente se implementa en una tarjeta FPGA con la ayuda de algunos programas y una tarjeta de
desarrollo amiba 2.

2 Objetivos (Competencias)
✓ Diseña una FSM
✓ Construye un diagrama de estado para una FSM

✓ Realiza un listado VHDL respecto al comportamiento.


✓ Implementa el diseño en una tarjeta FPGA.

3 Fundamentación
FSM
Las FSM, son un sistema está compuesto de estados por los que va pasando con señales de entrada que
modifican esos estados y de señales de salida que pueden utilizarse para conocer el estado del sistema
y actuar en consecuencia.

Un estado es la condición de una cosa en un tiempo determinado. Algunos que pueden realizar tareas.
Tecnológico Nacional de México
Instituto Tecnológico de San juan del Rio
INGENIERÍA EN ELECTRÓNICA

Formato para prácticas de laboratorio


Son conocidas como máquinas de estado finitas, lo que significa que sabemos todos los posibles estados
de ella. La clave para la máquina de estado es el concepto del tiempo y la historia. El estado de la
máquina es evaluado periódicamente. Cada vez que es evaluada, un nuevo estado es elegido (el que
podría ser el mismo estado nuevamente) y el resultado es presentado.

CONTADOR
Un contador es un circuito en el que sus salidas siguen una secuencia fija que cuando acaba vuelve a
empezar, o circuitos que reciben sus datos en forma serial ordenados en distintos intervalos de tiempo.
Los pulsos de entrada pueden ser pulsos de reloj u originarse en una fuente externa y pueden ocurrir a
intervalos de tiempo fijos o aleatorios.
El número de salidas limita el máximo número que se puede contar.

DIAGRAMA DE ESTADO
Muestra la secuencia de estados por los que pasa bien un caso de uso, un objeto a lo largo de su vida,
o bien todo el sistema. Es una forma de representación gráfica más intuitiva de los autómatas
finitos basadas en dígrafos con arcos acotados llamados transiciones en los cuales se ponen los
símbolos de tránsito entre un vértice (estado) y otro y se identifican los estados de partida y los de
aceptación del resto.

4 Procedimiento (Descripción)
A Equipo Necesario Material
1 TARJETA DE DESARROLLO AMIBA 2
1 COMPUTADORA
✓ Software de diseño ISE WebPACK
✓ Software INTegra de intesc
1 CABLE MICRO USB

B Desarrollo de la Practica

El primer paso para comenzar a desarrollar la práctica es hacer un análisis del planteamiento del
problema, en este caso se sabe lo siguiente:

Se requiere diseñar una FSM que seleccione uno de dos contadores, entre un contador de código gray
y uno binario.
Pero dependiendo del estado de una entrada llamada gray.
• Si gray = 1, se selecciona el contador de código gray.
• Si gray = 0, se selecciona el contador binario.
Además, se debe considerar contadores de tres bits de longitud.

Ya reconociendo las características. Se procede a diseñar un diagrama de estado que cumpla con las
características y condiciones ya mencionadas.
Tecnológico Nacional de México
Instituto Tecnológico de San juan del Rio
INGENIERÍA EN ELECTRÓNICA

Formato para prácticas de laboratorio


DIAGRAMA DE ESTADO

0 0 0 0 0 0 0

000 001 010 011 100 101 110 111


A B C D E F G H

1 1 1 1

1 1

El siguiente paso es escribir un listado VHDL que corresponda al comportamiento del diagrama de
estado.

LISTADO VHDL
El primer paso es agregar las librerías, los puertos (entradas y salidas) necesarias para el listado.
Las librerías IEEE.STD_LOGIC_ARITH.ALL y IEEE.STD_LOGIC_UNSIGNED.ALL son usadas más adelante
para operaciones aritméticas de un reductor de frecuencia que permite utilizar el oscilador
implementado en la FPGA

--LIBRERIAS
library IEEE;
use IEEE.STD_LOGIC_1164.ALL;
use IEEE.STD_LOGIC_ARITH.ALL;
use IEEE.STD_LOGIC_UNSIGNED.ALL;
--DESCRIPCION EN CAJA NEGRA
entity FSM_CONTADOR is
Port (
gray,clk : in STD_LOGIC;
salida : out STD_LOGIC_VECTOR (2 downto 0);
led : inout STD_LOGIC -- Para visualizar y enviar los pulsos
);
end FSM_CONTADOR;
Tecnológico Nacional de México
Instituto Tecnológico de San juan del Rio
INGENIERÍA EN ELECTRÓNICA

Formato para prácticas de laboratorio

Esta segunda parte se encarga más que nada de poder utilizar el oscilador de la tarjeta de desarrollo
amiba 2. En resumen, en esta parte del listado se crea una constante que representa la frecuencia del
oscilador de la tarjeta, se crea un contador y algunas otras señales que nos ayudan más adelante.

El divisor de frecuencia funciona simple, cada que se tenga un flanco de subida al contador se le suma
1 y cuando esta cuenta llega a igualarse a la constante se hacen dos cosas, la primera se reinicia el
contador y la segunda envía un pulso de salida aproximado a 1 Hz que será necesario en la tercera parte
para hacer las transiciones entre estados.
(Esto solo es una pequeña descripción general del funcionamiento en esta parte del listado VHDL)

-- DESCRIPCION DEL CIRCUITO


architecture ARCH_CONTADOR of FSM_CONTADOR is
-- USO DEL OSCILADOR INTEGRADO EN LA FPGA
constant escala: INTEGER := 50000000;
signal contador: INTEGER range 0 to escala := 0;
signal estado_led: STD_LOGIC := '1';
type estados is (A,B,C,D,E,F,G,H);
signal w : estados := A;

begin
process (CLK)
begin
if RISING_EDGE(CLK) then
contador <= contador +1;
if contador = escala then
contador <= 0;
estado_led <= not estado_led;
end if;
end if;
end process;

process (estado_led)
begin
led <= estado_led;
end process;

Y por último esta la tercera parte.

Se pude decir que en esta parte del listado se lleva a cabo la parte principal. Primero se comienza con
una condición, pregunta si hay un flanco de subida, ahora si bien lo hay entonces continua y ahora se
pregunta si se va a iniciar con el contador binario o el contador de código gray.

Ya seleccionada la opción deseada entonces se tienen diferentes casos que ayudan a identificar en que
estado se encuentra la FSM y a que estado debe cambiar, pero además poder visualizar el estado al que
se va a cambiar. Y esto sucederá sin parar.
Tecnológico Nacional de México
Instituto Tecnológico de San juan del Rio
INGENIERÍA EN ELECTRÓNICA

Formato para prácticas de laboratorio

process (w,led)
begin
if (led'event and led = '1') then
if gray = '0' then
case (w) is
when A => w <= B; salida <= "001";
when B => w <= C; salida <= "010";
when C => w <= D; salida <= "011";
when D => w <= E; salida <= "100";
when E => w <= F; salida <= "101";
when F => w <= G; salida <= "110";
when G => w <= H; salida <= "111";
when H => w <= A; salida <= "000";
end case;

elsif gray = '1' then


case (w) is
when A => w <= B; salida <= "001";
when B => w <= D; salida <= "011";
when D => w <= C; salida <= "010";
when C => w <= G; salida <= "110";
when G => w <= H; salida <= "111";
when H => w <= F; salida <= "101";
when F => w <= E; salida <= "100";
when E => w <= A; salida <= "000";
end case;
end if;
end if;
end process;
end ARCH_CONTADOR;

Ya finalizado el listado es necesario implementarlo en la tarjeta FPGA, pero antes, es necesario crear el
archivo para hacerlo.

IMPLEMENTACIÓN EN UNA TARJETA FPGA

✓ Se inicia el programa “project navigator” de xilinx


Tecnológico Nacional de México
Instituto Tecnológico de San juan del Rio
INGENIERÍA EN ELECTRÓNICA

Formato para prácticas de laboratorio

✓ Se comienza creando un nuevo proyecto.

✓ Después, en la siguiente ventana, se seleccionan las características de la tarjeta FPGA.

✓ Una vez creado el proyecto se crea una nueva fuente “VHDL module”, se siguen las Indicaciones,
en la siguiente ventana se escribe el nombre de la entidad, arquitectura, más abajo se escribe
el nombre de las entradas y salidas.
Tecnológico Nacional de México
Instituto Tecnológico de San juan del Rio
INGENIERÍA EN ELECTRÓNICA

Formato para prácticas de laboratorio


✓ Se copia el resto del listado y se verifica la sintaxis.

✓ Se crea una nueva fuente “implementation constraints file”, se abre un nuevo archivo y se
escribe la asignación de los pines para los switch, puertos de salida y/o entrada que se requieren.

✓ Se corre “implement desing” y “generate programming”


Tecnológico Nacional de México
Instituto Tecnológico de San juan del Rio
INGENIERÍA EN ELECTRÓNICA

Formato para prácticas de laboratorio

✓ Ahora se abre el programa “integra” de la tarjeta FPGA

✓ Ya dentro del programa, se conecta la tarjeta con la computadora usando el cable USB, se
enciende la tarjeta, se vincula y carga el archivo “.bit” que se generó con “xilinx” (este archivo
estará dentro de la carpeta de proyecto que creamos al inicio).

✓ Por último, se selecciona la memoria en la que se desea almacenar y se programa.


Tecnológico Nacional de México
Instituto Tecnológico de San juan del Rio
INGENIERÍA EN ELECTRÓNICA

Formato para prácticas de laboratorio

5 Resultados y conclusiones
Posteriormente de terminar la practica llegue a ciertas conclusiones. Primeramente, fue una práctica
un poco complicada, la razón es que se tiene que usar un reloj y yo decidí utilizar el oscilador que la
tarjeta FPGA tiene. Fue un poco complicado meterlo al listado para que funcione perfectamente.

Como segundo punto esta la parte que controla la transición entre los estados, reconozco que talvez
pude hacerlo mas pequeño, pues existen diferentes formas de llegar al mismo resultado y algunas son
mas optimizadas. Un ejemplo de esto es que pude meter dos módulos diferentes uno que se encargara
del reloj y otro con la función principal, pero por problemas de contra tiempo no fue posible.

Y por último elegí hacer el diseño del listado a través del comportamiento de la máquina, consideré
que fue una buena opción ya que hacer el diseño de la forma tradicional usando flip-flops específicos
hubiera sido más tardado y quizá complicado para mí, aunque mi sorpresa fue que como se trata de un
sintetizador pues realmente estaba utilizando flip-flops D y esto lo pude ver gracias a los esquemas que
me permite ver el mismo programa.

Y para los resultados. De mi parte considero que se logro el objetivo, se pudo diseñar la maquina de
estados con las especificaciones dadas y se comprobó en la tarjeta de desarrollo amiba 2.

6 Anexos
Tecnológico Nacional de México
Instituto Tecnológico de San juan del Rio
INGENIERÍA EN ELECTRÓNICA

Formato para prácticas de laboratorio

7 Referencias

• Stephen Brown y Zvonko Vranesic, (2006). Fundamentos de lógica digital con diseño
VHDL, segunda edición. México, México: Mcgraw-hill/interamericana editores, S.A. De
C.V.

Link del video (doble click para abrir):

https://drive.google.com/file/d/1OBFKTj3sJUqpLw7U9Raz96a2Gn4I
v7bN/view?usp=sharing

También podría gustarte