Benemérita Universidad Autónoma De Puebla FACULTAD DE CIENCIAS DE LA ELECTRÓNICA REPORTE DE LA PRÁCTICA No. 4 Aplicación de cartas ASM Nombre de la Asignatura: Asignatura: SISTEMAS DIGITALES SECUENCIALES Profesora: M.C. Ana Ma. Rodríguez Domínguez
Integrantes del Equipo: Michelle Chaires Villalba Silvia Rosales Hernández Javier Ruiz Hernández Magali Valdivieso Morales Mayo 2013
1. Introducción El diagrama de ASM (Algorithm State Machine / Algoritmo de la Máquina de Estados) es como un diagrama de estado, pero menos formal y por tanto más fácil de entender. Un gráfico de ASM es un método para describir las operaciones por orden de un sistema digital. Componentes básicos de un diagrama de estado
Caja de estado
Caja de decisión
Caja de acción condicional
Las cartas ASM brindan una manera de representar el comportamiento de una máquina secuencial en la forma de un algoritmo. Sus símbolos nos recuerdan a los diagramas de flujo pero difieren esencialmente, ya que las cartas ASM describen hardware y no software. [4] pp 165 -188 Con esta práctica se pretende desarrollar la capacidad de visualizar y concretar la solución de un problema real mediante un algoritmo, sintetizando luego un sistema digital secuencial mediante la descripción de la máquina secuencial en VHDL y su síntesis en un elemento programable (FPGA Spartan 3E XC3S250E.). .
2. Objetivos Objetivo General: Diseñe una máquina secuencial para el control de un sistema de semáforos en el cruce de una carretera con tráfico intenso y un camino de tráfico regular que incluye sensores.
Objetivos Específicos:
Obtenga un diagrama de bloques que describa la parte que realizará el
control y la parte de arquitectura externa agregando todos los elementos que sean necesarios
Indique todas las señales de entrada y salida a cada uno de los elementos del diagrama de bloques
Realice una carta ASM para el control
Sintetice la carta mediante la descripción en VHDL y la síntesis en GAL o FPGA
Pruebe su circuito y haga las correcciones necesarias
Realice su reporte según el formato indicado
3. Especificaciones del Sistema Un camino rural cruza una carretera como muestra la figura 1.
Figura 1. Esquema del Sistema de Semáforos
El camino contiene sensores que causan que una señal C se haga verdadera cuando uno o más autos están sobre el camino en las posiciones llamadas C. Se desea controlar los semáforos en ésta intersección de manera que, en ausencia de coches esperando en el camino rural, la luz de la carretera sea verde. Si un carro activa el sensor en la posición C,
la luz de la carretera debe pasar a amarillo y luego a rojo y la luz del camino rural pasa a verde. La luz del camino permanecerá en verde solamente mientras los sensores indiquen presencia de uno o más carros, pero nunca más de un tiempo t, después del cual debe pasar a amarillo y luego a rojo y la luz de la carretera pasará a verde. El tráfico de la carretera no podrá ser interrumpido nuevamente por el tráfico del camino
hasta que haya pasado al menos un tiempo T.
Se deben especificar claramente los elementos que conforman la arquitectura (figura 2) del sistema y sus conexiones con el elemento de control (carta ASM).
Arquitectura
Control
Figura 2. Diagrama de bloques del Sistema
Estas son las especificaciones MÍNIMAS que debe cumplir el circuito, si ustedes quieren, pueden añadir más características o hacer un prototipo, pero es opcional.
4. Marco teórico Las cartas ASM son formas de descripción de tipo gráfico especialmente enfocadas, como indica su nombre, a representar algoritmos secuenciales fue creado por Chris Clare. Este algoritmo especifica mediante un diagrama de flujo los pasos del procedimiento y los caminos de decisión. Al ser un diagrama de flujo para un algoritmo hardware debe tener unas características especiales que liguen de cerca el desarrollo hardware del algoritmo. Una carta ASM contiene necesariamente una entrada de comienzo (tipo XCiclo, XS o XStart). Una carta ASM puede contener un solo bloque ASM junto con un reloj que controle su paso por él. Una carta ASM puede contener varios bloques ASM, cada uno de ellos con una caja de estado, siempre que forme un grafo cerrado, otros pueden contener cajas de decisión con cajas de acción condicional y otros pueden contener cajas de decisión sin cajas de acción condicional.
El desarrollo de macro operaciones en micro operaciones es un proceso algorítmico secuencial, por lo que la descripción de Sistemas Digitales a nivel RT (los cuales no son más que una manera diferente de dibujar un diagrama de estado clásico) cae plenamente dentro de la materia representada con cartas ASM. Es una herramienta que da información sobre la estructura y sobre el comportamiento dinámico del sistema que se describe con ella, aspectos ambos de sumo interés. Además la carta ASM proporciona información tanto del algoritmo con los datos como de la secuencia de control, por lo que la propia herramienta está muy próxima a las implementaciones hardware de las Unidades de Datos y de Control. También existen otros tipos descripciones que se usan para las maquinas secuenciales como la descripción de alto nivel y descripción formal.
5. Hipótesis Para empezar la a realizar la práctica lo primero que se harán los códigos en vhdl de los siguientes puntos: Contador Discreción del semáforo Divisor de frecuencia Y después juntarlos en un mismo archivo. (Esto se hará para que se mas fácil ya que si hay un error lo podamos detectar con mayor facilidad.)
6. Procedimiento Las partes digitales del sistema es el programa en el lenguaje de VHDL. Mientras que la FPGA. El sistema se dividió en tres módulos la parte de la descripción del semáforo, el contador y el divisor de frecuencia. La discreción de del control es una manera fácil de y se entiende con su diagrama. Una señal es signo de medio que informa, avisa o advierte algo, en este caso las señales de ausencia y presencia de un coche (sensor) y sus salidas están dadas por el cambio de luces del semáforo. Cuando una señal llega al sensor, esta es una orden que recibe el control, en pocas palabras, la detección de un coche hace que se active o desactive. Las señales que entran y salen del control son compatibles con las que entran y salen de los elementos a controlar, ya que cuando un semáforo se activa el otro tiene que hace de igual forma cambios. Las cartas ASM es una técnica que nos ayudara a concretar la solución de este problema real mediante un algoritmo, sintetizando luego un sistema digital secuencial mediante la descripción de la máquina secuencial en VHDL y su síntesis en un elemento programable ( FPGA,).
7. Metodología de diseño del experimento o sistema
Este es la carta ASM de nuestro semáforo .
8. Implementación del experimento o sistema Simulación
Se muestran lo stres mofudlos: Contador Discreción del semáforo Divisor de frecuencia
Es el primer modulo -- File: contador.vhd -- created by Design Wizard: 05/01/13 21:31:51 ---{{ Section below this comment is automatically maintained -- and may be overwritten --{entity {conta} architecture {comp}} library IEEE; use IEEE.std_logic_1164.all; entity conta is port ( CLK: in STD_LOGIC; reset: in STD_LOGIC; t10: out STD_LOGIC; t15: out STD_LOGIC); end conta; --}} End of automatically maintained section architecture comp of conta is signal Q: integer range 0 to 15; begin process (CLK, reset) begin if reset = '0' then Q<=0; elsif (CLK'event and CLK='1') then Q<= Q+1; end if; end process; t10<= '1' when Q=10 else '0'; t15<= '1' when Q=15 else '0'; end comp;
Código en vhdl.
El segundo modulo ----{{ Section below this comment is automatically maintained ---- and may be overwritten ----{entity {semaf} architecture {arq}} -library IEEE; use IEEE.std_logic_1164.all; entity semaf is port ( CLK, t10, t15, C: in STD_LOGIC; SR1, SA1, SV1, SR2, SA2, SV2, RESET: out STD_LOGIC ); end semaf; --}} End of automatically maintained section architecture arq of semaf is type estado is (E0, E1, E2, E3); signal edo_pres: estado; begin process (CLK) begin if CLK'event and CLK='1' then case edo_pres is when E0 => if C='1' and t10='1' then edo_pres <= E1; else edo_pres <= E0; end if; when E1 => if t10='1' then edo_pres <= E2; else edo_pres <= E1; end if; when E2 => if (C='1' and t15='1') then edo_pres <= E3; else edo_pres <= E2; end if; when E3 => if t10='1' then edo_pres <= E0; else edo_pres <= E3; end if; end case; end if; end process;
process (t10, t15, c) begin case edo_pres is when E0 => SV1 <= '1'; SR2 <= '1'; SA1 <='0'; SR1<= '0'; SA2<= '0'; SV2<= '0'; if t10= '1' and c='1' then RESET <='0'; else RESET <='1'; end if; when E1 => SA1 <= '1'; SR2 <= '1'; SV1 <='0'; SR1<= '0'; SA2<= '0'; SV2<= '0'; if t10= '1' then RESET <='0'; else RESET <='1'; end if; when E2 => SR1 <= '1'; SV2 <= '1'; SA1 <='0'; SV1<= '0'; SA2<= '0'; SR2<= '0'; if t15= '1' and c='1' then RESET <='0'; else RESET <='1'; end if; when E3 => SR1 <= '1'; SA2 <= '1'; SA1 <='0'; SV1<= '0'; SR2<= '0'; SV2<= '0'; if t10= '1' then RESET <='0'; else RESET <='1'; end if; end case; end process; end arq;
El tercer modulo --{{ Section below this comment is automatically maintained -- and may be overwritten --{entity {divi} architecture {divi}}
-- enter your statements here -library IEEE; use IEEE.STD_LOGIC_1164.ALL; -- Uncomment the following library declaration if using -- arithmetic functions with Signed or Unsigned values --use IEEE.NUMERIC_STD.ALL; -- Uncomment the following library declaration if instantiating -- any Xilinx primitives in this code. --library UNISIM; --use UNISIM.VComponents.all; entity div_frecu is Port(clk50mhz: in std_logic; clk: out std_logic); end div_frecu; architecture Behavioral of div_frecu is constant max: integer:=50000000; constant half: integer:=max/2; signal count: integer range 0 to max; begin process begin wait until clk50mhz' event and clk50mhz='1'; if count
Simulaciones de cada código en Vhdl.
Simulación de contador.
Simulación del semáforo.
Simulación del divisor de frecuencia.
Instrumentación Para la creación de un archivo en VHDL se utilizo el Active HDL8.1 ente programa únicamente se estructuraron los códigos (contador, semáforo y un divisor de frecuencia) y en el mismo programa se compilando cada uno por separado para checar que no hubiera errores. Después también se utilizo XILINX para la elaborar la práctica del semáforo. También creando un archivo punto bit (este archivo en punto bit es el que se utiliza para el control del semáforo en una PFGA.)
9. Resultados Pueden incluirse imágenes, diagramas de tiempos obtenidos de las pruebas, videos y/o tablas de datos obtenidas experimentalmente.
10. Discusión e interpretación de Resultados Para la elaboración de la estructura de esta práctica fue un poco más independiente ya que cada integrante del equipo creo su propios códigos en VHDL para la respectiva práctica, presentado cada quien su diagrama de bloques. Tomando la mejor esquematización que describiera el procedimiento de nuestro semáforo. Y después la creación del archivo en VHDL.
11. Conclusiones En practica utilizando las cartas ASM fue algo complicado para cada integrante del equipo, puesto que nunca habíamos trabajado una FPGA pero en realidad ese no fue el problema si no que cuando juntamos los tres bloques este no hacia lo que tenía que hacer, mientras que si lo compilábamos bloque por bloque no surgía ningún problema . Un sistema secuencial tiene muchas aplicaciones un ejemplo es una máquina expendedora de café.
Este tipo de sistema se puede aplicar
¿En qué problema actual se puede aplicar un sistema como éste? ¿Qué pasaría si aplicara otro tipo de sensores, motores, implementación del control, etc? ¿Qué ideas puedo aportar en la elaboración de sistemas de este tipo? ¿Qué pasaría si quisiera implementar un sistema como éste a gran escala? Recuerde que no debe redactarse como cuestionario, sino como texto informativo.
12. Referencias [1] William I. Fletcher, An En gineeri ng Approach to D igital Design , Ed. Prentice Hall, 1980, Englewood Cliffs N. J. [2] John F. Wakerly, Diseñ o D igital : Principi os y Pr ácticas Tercera Edición, Editorial Prentice Hall Pearson Educación, 2001, México [3] Nelson Victor P., Nagle H. Troy, Carroll Hill D., Irwin J. David, Análisis y Diseñ o de Primera Edición , Ed. Prentice Hall Hispanoamericana S. Cir cuitos L ógicos Di gitales A., 1996, México. [4] Winkel David E., Prosser Franklin P., The Art of Digital Design: An Introduction to Top-Down Design Segunda Edición, Ed. Prentice Hall, 1987, Englewood Cliffs N. J. [5] http://www.intesc.mx/INGENIERIA/pdf/ManualAmibaRevA.pdf
13. Apéndices Apéndice A:
Actividad
Responsable
Magali Elaborar un diagrama de bloques preliminar Mejorar el diagrama de bloques Magali especificando entradas y salidas Javier
Realizar los códigos en VHDL a Todo el equipo partir del diagrama. Silvia Traer el reporte Michelle Traer el reporte corregido según las observaciones hechas e impreso para entregarlo.
Fecha de entrega Lunes 13 hrs
¿Cumplió?
No llego pero lo envió. Miércoles 13 hrs Si
Jueves 15 hrs Jueves 13 hrs Lunes 9 hrs
Si Si
Apéndice B: Tarjeta de desarrollo
AMIBA tiene como núcleo un FPGA Spartan 3E XC3S250E.
Las s conexiones de los LEDs al FPG A se muestran en la tabla: