Máquinas de Estados en la GAL22V10 Usando ABEL-HDL

Documentos relacionados
Circuitos Secuenciales: concepto de estado

APLICACIÓN CON LOS KITS LEGO Y DRIVERS PARA LOS MOTORES DC DE ESTOS KITS CON LA TARJETA XS95 MINI PALANCA MECANICA

PRÁCTICA 4. CONTADORES

+ Máquinas de Estado Finitas

Electrónica Digital II. M. C. Felipe Santiago Espinosa

Sistema electrónico digital (binario) que procesa datos siguiendo unas instrucciones almacenadas en su memoria

CIRCUITOS SECUENCIALES

Tutoría 2. Banco de memoria de 8 y 16 bits (8086)

Sistemas Operativos. Curso 2016 Sistema de Archivos

LATCHES, FLIP FLOPS, CONTADORES Y REGISTROS

APLICACIÓN DE ANALIZADORES LÓGICOS EN EXPERIENCIAS DE LABORATORIO. TUTORIAL PARA EL USO DEL ANALIZADOR LÓGICO

Registros de desplazamiento

GUÍA PRÁCTICA DEL SOFTWARE ACTIVE-HDL.

Tema 8. Circuitos secuenciales de Propósito general: REGISTROS Y CONTADORES

Estructura de Datos: Archivos

Práctica de laboratorio: División de topologías de red en subredes

Ingeniería de Requerimientos. requiere de un Sistema de Software.

INSTITUTO POLITÉCNICO NACIONAL ESCUELA SUPERIOR DE INGENIERIA MECANICA Y ELECTRICA INGENIERIA EN COMUNICACIONES Y ELECTRÓNICA ACADEMIA DE COMPUTACIÓN

Los nombres y marcas comerciales mencionados en este manual son propiedad de sus respectivos autores o fabricantes.

Ejercicios. Arquitectura de Computadoras. José Garzía

REGISTROS DE DESPLAZAMIENTO

CICLOS DEL PROCESADOR

TEMA7. SISTEMAS SECUENCIALES

Un contador es un circuito secuencial que genera una secuencia ordenada de salidas que se repite en el tiempo. La salida coincide con el estado de

Práctica 1 Transistor BJT Región de Corte Saturación Aplicaciones

Departamento de Soporte Occidente. Módulo Misceláneos. Cambiar usuarios:

SISTEMAS DIGITALES MÉTODOS DE DISEÑO LDD eman ta zabal zazu

INSTITUTO POLITÉCNICO NACIONAL ESCUELA SUPERIOR DE INGENIERIA MECANICA Y ELECTRICA INGENIERIA EN COMUNICACIONES Y ELECTRÓNICA ACADEMIA DE COMPUTACIÓN

Flip-flop SR con compuertas NAND y NOR. Por: Romero Reyes Roció Germana Laboratorio de Sistemas Digitales II Prof. J.

CIRCUITOS COMBINACIONALES CON isplever

Herramientas de Programación. M.C. Juan Carlos Olivares Rojas

NOT. Ejemplo: Circuito C1

EL PROCESO DE DISEÑO DEL SOFTWARE

Análisis y Síntesis. Introducción a los Sistemas Lógicos y Digitales 2008

Componentes indispensables Un (1) 74LS181 ALU Un (1) 74 LS 47 Un display 7seg Ánodo Común

Problemas de Electrónica Digital Tema 5 Flip-Flops. Circuitos Secuenciales Síncronos

CO TROL I DUSTRIAL DISTRIBUIDO (66.29) Guía de Ejercicios Introductorios a la Programación de PLC

Tarjetas multimedia externas

Inicio del programa. Entrada de datos. Proceso de datos. Salida de datos. Fin del programa

Diagramas de secuencia

UNIVERSIDAD DEL CARIBE UNICARIBE. Escuela de Informática. Programa de Asignatura

EIE SISTEMAS DIGITALES Tema 7: Latches, Flip-Flops y Temporizadores. Nombre del curso: Sistemas Digitales Nombre del docente: Héctor Vargas

CONTADORES. Definición. Diseño y analisis de un contador binario hacia arriba de 3 bits con flip-flops JK. Otros contadores típicos.

BIBLIOGRAFIA TEORIA DE CIRCUITOSY DISPOSOTIVOS BOYLESTAD ELECTRONICA DIGITAL TOKHEIM SISTEMAS DIGITALES TOCCI

Tema 7. SISTEMAS SECUENCIALES SISTEMAS SECUENCIALES SÍNCRONOS

DISEÑO CURRICULAR ELECTRÓNICA DIGITAL

Aquí vemos como una PLD no programada (donde todos sus fusibles están intactos), así para la salida O1 tenemos:

JORJWEB LTDA. División de desarrollo científico y tecnológico Sección de proyectos Nuevos

Discrete Event Systems ( ENMF )

ELO211: Sistemas Digitales. Tomás Arredondo Vidal 1er Semestre 2008

CORSAIR GAMING RATÓN GUÍA DE INICIO RÁPIDO DEL SOFTWARE

EIE SISTEMAS DIGITALES Tema 5: Análisis de la lógica combinacional. Nombre del curso: Sistemas Digitales Nombre del docente: Héctor Vargas

Última modificación: 1 de julio de

CIDE, SA. RIF: J NIT: MODELO FUNCIONAL

sistemas secuenciales

Guía para la creación de Sociedades por Acciones Simplificadas S.A.S.

PLC CONTROLADOR LOGICO PROGRAMABLE

Capítulo 16. Diagrama de Clases UML

Contenido. Introducción Usando di Monitoring como un usuario normal Uso de di Monitoring como un operador de entrada de datos...

La complejidad de los automatismos y la necesidad de especificar con precisión las tareas => útiles simbólicos de representación

PROTOCOLO IP. Vicente Sánchez Patón. I.E.S Gregorio Prieto. Tema 1 SRI

CONTEXTO DE LA MEMORIA EN UN SISTEMA DE CÓMPUTO M E M O R I A S

Sistemas Electrónicos Digitales Curso de adaptación al Grado

Flip Flops, Multivibradores y Contadores

Guía práctica de estudio 05: Diagramas de flujo

Curso Completo de Electrónica Digital

UNIDADES DE ALMACENAMIENTO DE DATOS

INDICE Capitulo 1. Álgebra de variables lógicas Capitulo 2. Funciones lógicas

Sistemas Electrónicos Digitales

INTRODUCCIÓN AL SOFTWARE ISE (Integrated Software Environment) DE XILINX

Guía rápida para gestionar el puerto paralelo del PC

ALGORITMOS, ESTRUCTURAS Y PROGRAMACION

Proyecto final Diseño de un circuito secuencial. utilizando un contador binario de cuatro bits

la solución a una ecuación cuadrática solicitando al usuario los términos de dicha ecuación.

Universidad Nacional de Ingeniería Facultad de Ciencias Introducción a la Ciencia de la Computación Sistemas de Numeros Prof: J.

Introducción a BMP085 Versión 1.0

EJERCICIOS RESUELTOS DE SECUENCIALES

2, Detallar los diversos tipos de Flip Flop

DESCRIPCIÓN ESPECÍFICA NÚCLEO: Núcleo Sector Comercio y Servicios.

3.1 Introducción a VHDL

ITT-327-T Microprocesadores

Figura 1: Símbolo lógico de un flip-flop SR

MODELADO DE CASOS DE USO (Libro UML 2-Arlow & Neustad)

Programación en java. Estructuras algorítmicas

PRÁCTICA 4 Montaje y evaluación de sistemas secuenciales.

Integración Contable en Compras

VOCABULARIO DEL HARDWARE. Docente Yeni Ávila

Curso a distancia: INTRODUCCIÓN AL DISEÑO LÓGICO PROGRAMABLE CON VHDL. Capítulo 3. Codificadores

Sistemas operativos. Tema 10: Sistemas de ficheros

Requerimientos de Software

Elementos de un programa en C

LABORATORIO I DE CONTROL

Diseño. Diseño. Interacción. Aspectos comunes en interacción. Diagramas de Interacción. Curso de Arquitecturas de Software

Funciones como Subprogramas en C++

Curso Básico. Unidad 2

3. DOCUMENTACIÓN 3.1. DOCUMENTACIÓN DE APLICACIONES. OBJETIVOS PARA MODIFICAR HACE FALTA COMPRENDER/ESTUDIAR:

Estructuras Secuénciales

Registros SFR vistos hasta ahora: Microcontroladores PIC

Contenido. 1. El proceso 2. Los modelos 3. Los diagramas 4. Ejemplo

Normas de estilo para la codificación de programas

Transcripción:

Máquinas de Estados en la GAL22V10 Usando ABEL-HDL Una Máquina de estados es un dispositivo digital que atraviesa una predeterminada secuencia de estados. Las máquinas de estados se usan típicamente para control lógico secuencial. En cada estado, el circuito almacena su historia pasada y usa tal historia para determinar qué hacer a continuación. Este documento ofrece una guía para ayudar al estudiante a formar diagramas de estado fáciles de leer y mantener y ayudarle a evitar problemas. Las máquinas de estados a menudo tienen muchos estados diferentes y transiciones complejas de estado que contribuyen a los problemas más comunes, el cual es que demasiados términos producto son creados para el dispositivo electo. Los tópicos discutidos en los siguientes párrafos aconsejan al estudiante cómo evitar este problema al reducir el número de términos producto requeridos. La página siguiente provee de consideraciones sobre Máquinas de estados: Usar identificadores en lugar de Números para los estados Registros de Estados de arranque Condiciones de Transición no satisfechas, usar Flip-Flops tipo D Condiciones de Transición no satisfechas, usar otros Flip-Flops Numerar Estados Adyacentes con un cambio de bit Usar salidas con Registros de Estado para Identificar Estados Usar Descripciones Simbólicas de Estado Usar identificadores en lugar de Números para Estados Una Máquina de estado tiene diferentes estados que describen las salidas y las transiciones de la máquina en cualquier punto dado. Típicamente, cada estado está dado por un nombre, y la Máquina de estados está descrita en términos de transiciones desde un estado hacia otro. En un dispositivo real, tal Máquina de estados se implementa con registros que contienen suficientes bits para asignar un único número a cada estado. Los estados son en realidad valores de bits en los registros, y tales valores de bits se usan junto con otras señales para determinar las transiciones de estado. Mientras el estudiante desarrolla un diagrama de estados, él necesita etiquetar varios estados y las transiciones de estados. Si él etiqueta los estados con identificadores que les han asignado valores constantes, en vez de etiquetar los estados directamente con números, él puede fácilmente cambiar las transiciones de estado o los valores de los registros asociados con cada estado. Cuando el estudiante escribe un diagrama de estado, deberá primero describir la Máquina de estados con nombres para los estados, y después asignar valores de bits a los registros de estado a los nombres de los estados. Para un ejemplo, ver la siguiente Figura para una Máquina de estado llamada MaqEdos. (Tal Máquina de estados es también discutida en el ejemplo de diseño.). En el ejemplo, los identificadores (A, B, C y D) especifican los estados. A tales identificadores se les asigna un valor constante decimal en la sección de declaraciones que identifican los valores de bit en el registro de estado para cada estado. A, B, C y D son sólo identificadores: ellos no indican el patrón de bits de la máquina de estados. Sus valores declarados definen el valor del registro de estados (sreg) para cada estado. Los valores declarados son 0, 1, 3 y 2. Prof. S. Saucedo 1 ICE/2007

Secuencia de cuatro estados Figura 1. Diagrama de máquina de estados con cuatro estados. El siguiente diseño es un simple secuenciador que demuestra el uso de ABEL-HDL para definir los diagramas de estado, con el software de desarrollo isplever starter de Lattice. El número de estados del Diagrama de Estados que puede ser procesado depende del número de transiciones y la ruta de las transiciones. Por ejemplo, un contador de 64 estados usa menos términos (y ecuaciones más pequeñas) que un contador de 63 estados. Para diseños de contadores grandes, usar la sintaxis CuentaA:= CuentaA + 1 para crear un contador en lugar que usar una máquina de estados. Ver también el ejemplo del contador universal para posterior información sobre implementación de contadores. Prof. S. Saucedo 2 ICE/2007

MODULE MaqEdos TITLE 'Maquina de Estados' q1,q0 pin 14,15 istype 'reg,invert'; " entradas reloj,hab,start,hold,reset pin 1,11,4,2,3; " salidas parar pin 17 istype 'reg'; en_b,en_c,en_d pin 18,19,20; " registros de estados sreg = [q1,q0]; " Valores de estado... A = 0; B = 1; C = 3; D = 2; equations [q1,q0,parar].clk = reloj; [q1,q0,parar].oe =!hab; state_diagram sreg; State A: " Se mantiene en estado A hasta que start se active. en_b = 0; en_c = 0; IF (start &!reset) THEN B WITH parar := 0; ELSE A WITH parar := parar.fb; State B: " Avanza al estado C a menos que reset este activo en_b = 1; " o hold este activo. Enciende indicador de parar en_c = 0; " si reset. IF (reset) THEN A WITH parar := 1; ELSE IF (hold) THEN B WITH parar := 0; ELSE C WITH parar := 0; State C: " Avanza al estado D a menos que reset este activo en_b = 0; " el reset se impone al hold. en_c = 1; IF (reset) THEN A WITH parar := 1; ELSE IF (hold) THEN C WITH parar := 0; ELSE D WITH parar := 0; State D: " Regresa a A al menos que hold este activo en_b = 0; " el reset se impone al hold. en_c = 0; en_d = 1; IF (hold &!reset) THEN D WITH parar := 0; ELSE A WITH parar := 0; Fig. 2 Listado para diseñar con ABEL-HDL la Máquina de Estados (parte inicial) Prof. S. Saucedo 3 ICE/2007

" vectores de prueba editados... test_vectors ([reloj,hab,start,reset,hold]->[sreg,parar,en_b,en_c,en_d]) [.p., 0, 0, 0, 0 ] -> [ A, 0, 0, 0, 0]; [.c., 0, 0, 0, 0 ] -> [ A, 1, 0, 0, 0]; [.c., 0, 0, 0, 0 ] -> [ C, 0, 0, 1, 0]; [.c., 0, 0, 0, 0 ] -> [ D, 0, 0, 0, 1]; [.c., 0, 1, 0, 0 ] -> [ A, 0, 0, 0, 0]; [.c., 0, 0, 1, 0 ] -> [ A, 1, 0, 0, 0]; [.c., 0, 0, 0, 0 ] -> [ A, 1, 0, 0, 0]; [.c., 0, 0, 0, 1 ] -> [ B, 0, 1, 0, 0]; [.c., 0, 0, 0, 1 ] -> [ B, 0, 1, 0, 0]; [.c., 0, 0, 0, 0 ] -> [ C, 0, 0, 1, 0]; [.c., 0, 0, 0, 1 ] -> [ C, 0, 0, 1, 0]; [.c., 0, 0, 0, 0 ] -> [ D, 0, 0, 0, 1]; [.c., 0, 0, 0, 1 ] -> [ D, 0, 0, 0, 1]; [.c., 0, 0, 0, 0 ] -> [ A, 0, 0, 0, 0]; [.c., 0, 0, 0, 0 ] -> [ A, 0, 0, 0, 0]; [.c., 1, 0, 0, 0 ] -> [.z.,.z., 0, 1, 0]; [.c., 1, 0, 0, 0 ] -> [.z.,.z., 0, 0, 1]; END Fig. 2 Listado para diseñar con ABEL-HDL la Máquina de estados (parte final) Especificación del diseño La figura 1 muestra al diseño del secuenciador con un diagrama de estados que exhibe las transiciones y las salidas deseadas. La máquina de estados arranca en el estado A y permanece en tal estado hasta que la entrada 'start' se hace 1. Entonces ella va desde el estado A hacia el estado B, desde el estado B hacia el estado C, desde el estado C hacia el estado D y regresa al estado A. Ella permanece en el estado A hasta que la entrada 'start' sea alta de nuevo. Si la entrada 'reset' se hace 1, la máquina de estados retorna al estado A en el siguiente ciclo de reloj. Si este reset hacia el estado A ocurre durante el estado B (o el C), un salida 'parar' sincrónica se hace 1, y permanece alta hasta que la máquina es de nuevo arrancada. Durante los estados B, C y D, las salidas asíncronas 'en_b', en_c y 'en_d' se hacen 1 para indicar el estado actual correspondiente. Al activar la entrada 'hold', ella causará que la máquina se detenga en un estado B, C o D. hasta que 'hold' no esté más en alto, o que 'reset' se haga 1. Método de diseño El secuenciador se describe mediante el uso de la sección STATE_DIAGRAM en el archivo fuente. La figura 2 ilustra el archivo fuente para el diseño secuencial. En tal archivo, el diseño recibe un título, el dispositivo GAL22V10 es declarado antes, y las declaraciones de pines se llevan al cabo. Las constantes se declaran para simplificar la notación del diagrama de estados. Los dos registros de estado se agrupan en un conjunto llamado 'sreg' y cuatro estados (A, B, C y D) son declarados, con valores apropiados especificados para cada uno de ellos. Finalmente, cuando la entrada hab se hace 1, las tres salidas sincrónicas se van al tercer estado. Prof. S. Saucedo 4 ICE/2007

Vectores de Prueba Al final del archivo fuente se especifican alrededor de veinte vectores para probar el código JEDEC grabado en la GAL22V10. Ver la figura 3. Fig. 3. Formas de onda para los vectores de prueba. Cablear la aplicación según el esquema siguiente: +---------\ /---------+ \ / ----- reloj 1 24 Vcc hold 2 23 reset 3 22 start 4 21 5 20 en_d 6 19 en_c 7 18 en_b 8 17 parar 9 16 10 15!q0 hab 11 14!q1 GND 12 13 `---------------------------' Prof. S. Saucedo 5 ICE/2007