Preparación: Para el diseño secuencial será necesario que utilices una señal de reloj. Para generar este pulso de reloj, refiérete a la práctica 2.

Documentos relacionados
Nota: Para los diseños, anexar los respectivos códigos y simulaciones según el caso.

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

ABEL Para Síntesis. Dr. Juan C. Herrera Lozada

Lenguaje ABEL-HDL. Departamento de Electrónica. Fundación San Valero

Lattice isplever. Características. Gestión de proyectos

Lenguaje ABEL-HDL. Departamento de Electrónica. Fundación San Valero

Laboratorio 07. Diseño Jerárquico de Sistemas Digitales

Cuatro Tipos de Flip-Flop en la GAL22V10

Tutorial introductorio al Lenguaje Abel ( Advanced Bolean Equations Language).

GAL 22V10 Herramientas software

Registros de Tres Estados con la GAL22V10

Universidad Carlos III de Madrid Grado en Ingeniería Informática Tecnología de Computadores

Laboratorio 02. Ambiente de Mediciones Digitales

Es un lenguaje para describir diseños de sistemas digitales en forma jerárquica. Advanced Boolean Equation Language.

Decodificador de Direcciones de Memoria en una GAL

MIGRACIÓN DEL HDL PARA LA SÍNTESIS LÓGICA SOBRE DISPOSITIVOS GAL

Laboratorio 2: Mediciones Digitales

CURSO: ELECTRÓNICA DIGITAL UNIDAD 3: SISTEMAS SECUENCIALES - TEORÍA PROFESOR: JORGE ANTONIO POLANÍA

Lenguaje ABEL. Introducción. Estructura de un archivo fuente ABEL. Estructura de un archivo fuente ABEL

Inversores de Giro para Motores a Pasos en Dispositivos de Lógica Programable

INVERSORES DE GIRO PARA MOTORES A PASOS EN DISPOSITIVOS DE LÓGICA PROGRAMABLE

Convertidores Analógico - Digital y su Interfaz con Dispositivos de Lógica Programable

Diseño Lógico en el Mundo Real. Tema V. ABEL (Advanced Boolean Equation Language) Lenguajes de programación de PLD

Tema V. Diseño Lógico en el Mundo Real

Laboratorio 06. Diseño e implementación de un sistema digital para la captura de caracteres desde teclado

Sistemas Combinacionales y Sistemas Secuenciales

Laboratorio 2: Mediciones Digitales

LABORATORIO DE SISTEMAS DIGITALES. PRÁCTICA No. 8. Fecha: 03/07/ /07/2017

Universidad Carlos III de Madrid Electrónica Digital Ejercicios

Laboratorio 2: Mediciones Digitales

Multiplexor de 3 a 1 Cuádruple con una GAL

DISEÑO DE PROCESADORES DEDICADOS. Práctica 6 LCD de Propósito General

Introducción Tipos de FF Ejercicios. Lógica Digital. Circuitos Secuenciales. Francisco García Eijó

ELECTRÓNICA DIGITAL. Ejercicios propuestos Tema 5

INGENIERÍA DE COMPUTADORES 3. Solución al examen de Septiembre 2016

Diseño de circuitos secuenciales en OPAL

Laboratorio 4. Objetivos

Arquitecturas de Computadores. 4 Sistemas Combinacionales y Secuenciales Prof. Javier Cañas R.

Lógica Secuencial. Dr. Andrés David García García Escuela de Ingeniería y Ciencias Campus Estado de México

Laboratorio 5: Diseño Jerárquico de Sistemas Digitales

DISEÑO DE PROCESADORES DEDICADOS SIMULACIÓN CON ISIM. Instituto Politécnico Nacional. M. en C. Juan Carlos Herrera Lozada.

Nota: Para los diseños, anexar los respectivos diagramas, códigos y simulaciones según el caso.

Arquitectura del Procesador I

Trabajo práctico 2. Contadores

CONTADORES Y SECUENCIADORES

Organización del Computador 1 Lógica Digital 2: circuitos y memor

PRACTICAS GAL22V10. Utilizar la placa PLD (GAL22V10), compilador de programas IspDesignExpert y programa de grabación del dispositivo IspVMSystem.

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

UNIDAD PWM EN LÓGICA PROGRAMABLE Y SU APLICACIÓN EN LA MODULACIÓN DE LA INTENSIDAD DE UN PANEL DE LEDS

Circuitos Secuenciales: concepto de estado

Prof: Zulay Franco Puerto Ordaz, Agosto

CÓMO FUNCIONA UN PLC Control Combinacional Programación del PLC

TECNOLOGÍA DE COMPUTADORES. CURSO 2016/17. Problemas Secuenciales

Practica 9 Estilos de codificar a estados FCE

2. DISPOSITIVOS LÓGICOS PROGRAMABLES SIMPLES

LECCIÓN Nº 06 DISEÑO DE CONTADORES SINCRONOS

Práctica 4. Sistemas Digitales. Objetivos particulares

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

PRÁCTICA 4. CONTADORES

Práctica nº 10. Análisis de flip-flops.

INGENIERÍA DE COMPUTADORES III. Solución al Ejercicio de Autocomprobación 4

4.5. Procedimiento de síntesis

UNIVERSIDAD TECNICA FEDERICO SANTA MARIA DEPARTAMENTO DE ELECTRONICA ELO212 Laboratorio de Sistemas Digitales

MATRIZ DE VALORACIÓN O RÚBRICA. Actividad de evaluación:

Fundamentos de los Computadores Grado en Ingeniería Informática Análisis y diseño de sistemas secuenciales

Diseño de Sistemas Embebidos en FPGA Curso de Posgrado Facultad de Ciencias Exactas y Tecnología UNT.

INGENIERÍA DE COMPUTADORES 3. Solución al examen de Junio 2014, Primera Semana

FUNDAMENTOS DE COMPUTADORES

TECNOLOGÍA DE COMPUTADORES. CURSO 2016/17. Problemas Secuenciales Resueltos

Lógica Digital y Microprogramable

LABORATORIO DE SISTEMAS MICROPROCESADOS PRÁCTICA N 4

Práctica 3 Captura Esquemática

UNIVERSIDAD DE CASTILLA LA MANCHA ESCUELA SUPERIOR DE INFORMÁTICA. CIUDAD REAL

6. Un sistema secuencial tiene una entrada X y una salida Z, ambas de un bit. Tiene el siguiente comportamiento:

Módulo 2 n. Figura 2.1. Simbología de un contador

Relación de Problemas de Circuitos Secuenciales

UNIVERSIDAD NACIONAL EXPERIMENTAL POLITÉCNICA DE LA FUERZA ARMADA. NÚCLEO MÉRIDA

Utilización de las instrucciones concurrentes CSA, SSA, componentdeclaration y component-instantiation aprendidas en clase.

Introducción Flip-Flops Ejercicios Resumen. Lógica Digital. Circuitos Secuenciales - Parte I. Francisco García Eijó

UNIVERSIDAD NACIONAL AUTONOMA DE MEXICO FACULTAD DE INGENIERÍA PRÁCTICAS PARA LA MATERIA DE DISEÑO DIGITAL VLSI

Organización del Computador 1 Lógica Digital 2: circuitos y memor

Cuestiones. Estructura y Tecnología de Computadores (IG09) 1 er Parcial 12 de sept. de 2002

Laboratorio 5: Circuito contador digital y conversor D/A.

SÍLABO FACULTAD DE INGENIERÍA ELECTRÓNICA E INFORMÁTICA. ASIGNATURA: SISTEMAS DIGITALES I CÓDIGO: 8F0056 I. DATOS GENERALES

INGENIERÍA DE COMPUTADORES III. Solución al examen de Septiembre 2014

TAREA DE SIMULACIÓN-TS1: CONSTRUCCIÓN Y SIMULACIÓN DE CIRCUITOS COMBINACIONALES SENCILLOS CON CIRCUITOS INTEGRADOS ESTANDAR

Lógica Secuencial. Circuitos Digitales, 2º de Ingeniero de Telecomunicación ETSIT ULPGC

GUÍA DE ETS PARA COMPUTACIÓN IV

5.1. Introducción a los sistemas digitales

Laboratorio 5: Semáforo de dos Vías

Introducción Motivaciones Objetivos Resumen...6

Circuitos Secuenciales: concepto de estado

INGENIERÍA DE COMPUTADORES III. Solución al Ejercicio de Autocomprobación 3

TRABAJO 1: CONSTRUCCIÓN Y SIMULACIÓN DE CIRCUITOS COMBINACIONALES SENCILLOS CON CIRCUITOS INTEGRADOS ESTANDAR

Conocer, diseñar y aplicar los circuitos digitales para el control de los diferentes sistemas mecatrónicos.

Transcripción:

DISEÑO DE SISTEMAS DIGITALES Tópico Práctico. No. 3 ISIS de Proteus para simulación Diseño de máquinas de estado con ABEL-HDL Dr. Juan Carlos Herrera Lozada. jlozada@ipn.mx Centro de Innovación y Desarrollo Tecnológico en Cómputo Lab. de Diseño de Sistemas Digitales Instituto Politécnico Nacional Abril 2013 Campo 1: Datos Personales. Campo 2: Objetivos. Diseño de circuitos de lógica secuencial. Descripción de contadores con ABEL HDL, utilizando máquinas de estado. Simulación de circuitos secuenciales utilizando un simulador funcional (ISIS de Proteus) e implementación en PLDs de arquitectura simple. Campo 3: Desarrollo de la Práctica. Nota: Para los diseños, anexar los respectivos códigos y simulaciones según el caso. Preparación: Para el diseño secuencial será necesario que utilices una señal de reloj. Para generar este pulso de reloj, refiérete a la práctica 2. 1. (3 puntos) Introducción a la simulación con ISIS de Proteus. Comenzaremos refiriéndonos al último diseño de la práctica 1, el cual infiere un contador ascendente con tabla de transiciones (tabla de verdad) de 3 bits y un decodificador para un display a siete segmentos, ambos elementos dentro del mismo dispositivo GAL22V10. El contador debe soportar un reset y un stop. La solución es la siguiente: MODULE contt_display "entradas reloj, reset, stop pin 1, 2, 3; "Salidas Q2,Q1,Q0 node istype 'reg'; a, b, c, d, e, f, g pin 14,15,16,17,18,19,20 istype 'com'; Y =[Q2,Q1,Q0]; Display=[a, b, c, d, e, f, g]; equations Y.clk = reloj; Y.ar = reset; Y.ce = stop; truth_table ([Y]:>[Y]->Display) [0]:>[1]->126; [1]:>[2]->48; [2]:>[3]->109; [3]:>[4]->121; [4]:>[5]->51; [5]:>[6]->91; [6]:>[7]->95; [7]:>[0]->112; test_vectors ([reloj, reset, stop]->[display]) [.C., 1, 0]->[.X.]; @repeat 20 {[.C., 0, 1] -> [.X.];}; @repeat 5 {[.C., 0, 0] -> [.X.];}; @repeat 20 {[.C., 0, 1] -> [.X.];}; END 1/5

La directiva punto, Y.ce = stop, nos indica que la variable Y de 3 bits, se detendrá cuando stop sea cero lógico. Si se realiza la simulación funcional, se obtiene el siguiente diagrama de formas de onda. 1.a No obstante que ISP Lever permite realizar una simulación denominada como funcional (Functional Simulation), en realidad lo que hace es entregarnos las formas de onda (estados lógicos en alto y bajo) como se aprecia en la figura anterior. Un simulador funcional nos permite observar el comportamiento de nuestro diseño incorporando los elementos físicos que lo conforman, aunque a razón cierta, sigue siendo un ambiente virtual. Descarga los archivos necesarios para la práctica 3 y verifica en ISIS de Proteus el funcionamiento del diseño. Requieres el archivo JEDEC del contador y el archivo de Proteus. Es altamente recomendable que revises alguna bibliografía que muestre el uso del simulador. Cabe mencionar que los archivos proporcionados para cumplir este numeral de la práctica, están realizados en una versión portable de ISIS de Preoteus, por lo que no pudiera ser compatible con otras versiones; si este fuera el caso, tendrías que construir tu propio diagrama esquemático para verificar la simulación. A partir del Chip Report de ISP Lever, puedes interpretar el pinout utilizado para este diseño. 1.b Tomando como referencia el contador 00-99 diseñado en la práctica 2, modifica tus códigos para simular en ISIS de Proteus un contador 00-59, que obedece al módulo básico para un reloj digital. 2. (4 puntos) Diseño de contadores utilizando máquinas de estado. En ABEL-HDL es muy sencillo modelar máquinas de estados. A continuación podemos observar la descripción de un contador ascendente-descendente de 4 bits. La variable dir permite cambiar la dirección del conteo. La salida P es combinatoria y sólo se pone a cero lógico en el estado quince. Module count_edos Title'Contador de 4 bits por diagrama de estados' "Pines de entrada 2/5

clk,rst,dir pin; "Pines de salida q3,q2,q1,q0 pin istype 'reg,dc'; "Set sreg=[q3,q2,q1,q0]; "Estados E0=[0,0,0,0]; E1=[0,0,0,1]; E2=[0,0,1,0]; E3=[0,0,1,1]; E4=[0,1,0,0]; E5=[0,1,0,1]; E6=[0,1,1,0]; E7=[0,1,1,1]; E8=[1,0,0,0]; E9=[1,0,0,1]; E10=[1,0,1,0]; E11=[1,0,1,1]; E12=[1,1,0,0]; E13=[1,1,0,1]; E14=[1,1,1,0]; E15=[1,1,1,1]; c,x=.c.,.x.; "Sólo para el test_vectors se hace esta declaración Equations sreg.clk=clk; sreg.re=rst; State_diagram sreg state E0: if dir then E1 else E15; state E1: if dir then E2 else E0; state E2: if dir then E3 else E1; state E3: if dir then E4 else E2; state E4: if dir then E5 else E3; state E5: if dir then E6 else E4; state E6: if dir then E7 else E5; state E7: if dir then E8 else E6; state E8: if dir then E9 else E7; state E9: if dir then E10 else E8; state E10: if dir then E11 else E9; state E11: if dir then E12 else E10; state E12: if dir then E13 else E11; state E13: 3/5

if dir then E14 else E12; state E14: if dir then E15 else E13; state E15: if dir then E0 else E14; Test_vectors ([clk,rst,dir]->[q3,q2,q1,q0]); [c,1,1]->[x,x,x,x]; @repeat 20 {[ c,0,1] -> [x,x,x,x];}; @repeat 1 {[ c,1,1] -> [x,x,x,x];}; @repeat 20 {[ c,0,0] -> [x,x,x,x];}; [c,1,0]->[x,x,x,x]; End 2.a Incorpora una variable stop para detener el conteo y una salida combinatoria (P) que detecte cuando un estado sea un número primo (1,2,3,5,7,11,13) y simula tu diseño en las dos vertientes tratadas al momento: con el simulador de forma de ondas de ISP Lever y con ISIS de Proteus. Posteriormente impleméntalo en un GAL22V10 y muestra su funcionamiento, conectándole un decodificador hexadecimal (0-F) implementado en otro GAL para visualizar el conteo en un display a siete segmentos. 2.b Siguiendo la misma lógica del diseño anterior, modifica tu código para describir un contador que de manera ascendente cuente sólo números pares y que de manera descendente cuente números primos, de 4 bits. Dibuja el diagrama de estados incluyendo todas las variables. No es necesaria una salida combinatoria, refiriéndonos al caso de P en el diseño realizado en 2.a. Si tuvieras algún problema con el uso de recursos internos del GAL (no debería suceder), reduce este diseño a números de 3 bits. Simúlalo e impleméntalo físicamente. 3. (3 puntos) Existen casos prácticos que en el análisis estructurado se definen claramente a través de máquinas de estado, por ejemplo, los semáforos convencionales. A continuación podemos apreciar un código en ABEL-HDL que implementa un semáforo en un GAL22V10. "Semáforo simple, codificado en ABEL e implementado en un GAL22V10 "Dr. Juan Carlos Herrera Lozada. "Del STOP (rojo) debe pasar a GO (verde) de manera directa. "Al término del tiempo en GO (verde), habilitará al mismo tiempo CAUTION (ambar). "El trabajo del semáforo puede variar a criterio del diseñador. "Lo limitado de las esperas (4 bits) se debe a que ISP Lever realiza asignaciones "no concebidas y que afectan el mapeo final. module sem_tra title 'Controlador de Semáforo' reloj, reset pin; verde, ambar, rojo pin istype 'reg'; "Las salidas del contador se declaran como nodos Count3..Count0 node istype 'reg'; Counter = [Count3..Count0]; "Se definen las condiciones de los estados Luz = [verde, ambar, rojo]; GO = [ 1, 0, 0 ]; CAUTION = [ 1, 1, 0 ]; STOP = [ 0, 0, 1 ]; INI= [0, 0, 0]; "Monitoreo de señales para el reloj y el reset Equations Counter.ar= reset; Counter.clk = reloj; Luz.clk = reloj; 4/5

"Comienza diagrama de estados, nótese que el diagrama se nombra igual que el set de salida state_diagram Luz "Condición inicial, necesaria para el arranque state INI: IF reset then INI ELSE GO; "Estados del semáforo state GO: IF (Counter < 15) then GO with ELSE goto CAUTION with state CAUTION: IF (Counter!= 3) then CAUTION with ELSE goto STOP with state STOP: IF (Counter < 15) then STOP with ELSE goto GO with Counter := 1; "Vectores de prueba, con la directiva @repeat TEST_VECTORS ([reloj, reset]->[luz]) @repeat 2 {[.c., 1]->[.x.];}; "Se propone un reset @repeat 70 {[.c., 0]->[.x.];}; "Trabajo normal end 3.a Simula en ISP Lever y en ISIS de Proteus, este semáforo. Posteriormente impleméntalo en el GAL22V10 y observa su funcionamiento. DISEÑO EXTRA Y DISCUSIÓN Valor: 2 puntos extras en la evaluación escrita. La sincronización de semáforos no es problema trivial. Considerando un crucero, la idea es tener dos semáforos (pudiera ser que los dos estén en un mismo GAL o que estén en dispositivos independientes), y que ambos semáforos estén sincronizados, es decir, mientras un semáforo está en verde, el otro debe estar en rojo. Es muy importante recordar que cuando el que está en verde va a hacer su cambio a rojo, éste debe pasar a un estado intermedio que es el ámbar mientras que el segundo semáforo se mantiene en rojo y no cambiará a verde, sino hasta que el primero se ponga en rojo. Si quieres los dos puntos, cómo harías esta sincronización? Será muy complicado incluir una rutina de parpadeo (en el verde, antes de pasar al ámbar) para que sea mas real el comportamiento de nuestros semáforos? Muestra funcionando tu diseño. Campo 4: Conclusiones individuales. 5/5