You are on page 1of 7

Una Metodologa Integral de Diseo Digital con CPLDs, VHDL y C

Arturo Miguel-de-Priego <amiguel@pucp.edu.pe> Pontificia Universidad Catlica del Per Av. Universitaria Cdra. 18 Lima 32 PERU Telfono: (+511 ) 460 2870 Fax: (+511) 261 8861

Se presenta una metodologa de diseo digital que emplea CPLDs, VHDL y el lenguaje de programacin C para la enseanza, aprendizaje y diseo de circuitos digitales utilizando las metodologas convencionales de diseo con hardware en combinacin con tcnicas de software, aprovechando los elementos tpicamente disponibles en una PC. Se utiliza el VHDL para presentar en alto nivel el funcionamiento de un circuito particular, en especial las mquinas de estados; se emplean descripciones esquemticas para implementar los circuitos con un editor de smbolos, especialmente los datapaths. Adicionalmente, se utiliza C para crear pequeos programas que complementan y amplan la visin del estudiante con respecto a las herramientas CAD. Asimismo, se presentan algunos proyectos de diseo y prcticas de laboratorio para diseo digital.

Introduccin Este trabajo se desarrolla con la el objetivo de mejorar la enseanza del diseo digital en la Seccin Electricidad y Electrnica (SEE) de la Pontificia Universidad Catlica del Per (PUCP), incorporando las nuevas y modernas metodologas y herramientas CAD para el diseo lgico. Tradicionalmente, el diseo digital en la SEE comienza con el planteo de las tablas de verdad y diagramas de transicin; continua con la minimizacin de las funciones lgicas usando tcnicas de Mapas de Karnaugh, Queen-McKluskey, etc.; seguidamente las funciones se mapean en funcin de los circuitos integrados (CI) SSI y MSI disponibles, usando los teoremas de De Morgan. A continuacin se colocan los CIs sobre una tarjeta de pruebas (protoboard) y se realizan las conexiones usando cables que se cortan e insertan sobre la tarjeta. Finalmente, se verifica el funcionamiento del circuito. Si todo est bien, el circuito se desarma para dar espacio a otros circuitos, o bien, se construye una tarjeta de circuitos impresos si fuera necesario. El problema principal de esta metodologa se presenta al momento de localizar las fallas del circuito cuando stas ocurren. Todo un proceso de depuracin debe iniciarse en ese caso para hallar la parte mala del circuito (Funciones lgicas, reduccin, mapeo? Interconexiones? Chips? Tablas de verdad? Una combinacin de fallas?). Desde hace tres semestres se viene aplicando una nueva metodologa en la SEE para el Laboratorio de Circuitos Digitales, que mejora algunos pero no todos los aspectos del diseo. Se incorpor el uso de herramientas CAD para analizar y disear circuitos digitales (MAX+plus II de Altera Corp.) . La diferencia con el mtodo anterior radica en la incorporacin de descripciones esquemticas usando smbolos de puertas SSI y MSI y en la simulacin funcional de los diseos antes de ser construidos sobre el protoboard. Es decir, el mapeo se describe en forma esquemtica, luego el compilador se encarga de sintetizar el circuito para simulacin. El problema con esta metodologa es que aun se pierde considerable tiempo en armar los CIs sobre el protoboard, cuando estas tareas pueden ser automatizadas. Una nueva metodologa que se aplicar a partir del prximo semestre en la SEE, incorpora el uso de Tarjetas de Desarrollo y Experimentacin, con el fin de ahorrar tiempo en el cableado manual de los circuitos. Las tarjetas contienen chips de lgica programable y CIs 74LS244, adems de componentes tpicos como visualizadores e interruptores. El uso de estas tarjetas se recomienda sin dejar de lado las actividades manuales, por lo que en las sesiones de laboratorio el alumno seguir armando circuitos, pero ms tiempo dedicar a desarrollar sus habilidades de diseo, puesto que podr resolver ms problemas interesantes y tiles dado que cuenta con el apoyo de circuitos preconstruidos, que sin embargo, no funcionan si no se les indica que hacer. Desde el punto de vista prctico, ya desde hace aos se observa que la lgica programable ofrece ventajas muy superiores al diseo con CI MSI SSI estndares. Quizs, por lo notado hasta ahora, el uso de estos chips est limitado a servir como circuitos decodificadores y circuitos de interfases de I/O (para potenciar las seales, mas no para crear lgica). Adems se introducir el VHDL como lenguaje de descripcin de hardware para complementar las descripciones esquemticas y resolver ms fcilmente las mquinas de estado y codificadores principalmente. Una metodologa que para muchos en la SEE es muy audaz o difcil de aplicar utiliza el lenguaje de programacin C para apoyar las actividades de enseanza y aprendizaje del diseo digital en el aula y en el laboratorio. Por ejemplo, el C se puede usar para crear los contenidos de una memoria, reducir una ecuacin siguiendo un algoritmo tpico como Queen-McKluskey, enviar datos a un chip por el puerto paralelo o serial, temporizar eventos para un circuito digital, etc. La ventaja de este mtodo es que el alumno aprender a reconocer tempranamente las diferencias entre el software y el hardware y podr aprender a complementar ambos para obtener un sistema eficiente, optimo y a bajo costo de tiempo y esfuerzo, introducindolo desde los primeros cursos de diseo digital a una metodologa de codiseo de hardware y software. El uso de programas en C tambin brindar algunas ideas al alumno de cmo construir una herramienta CAD, para sntesis, simulacin, verificacin, modelamiento, depuracin, etc. Con esta nueva metodologa se podr mostrar fcilmente el funcionamiento de varios circuitos digitales tpicos utilizando una tarjeta a medida y una tarjeta de pruebas basada en un dispositivo de lgica programable, con el fin de reducir el tiempo de aprendizaje en las prcticas de laboratorio de Circuitos Digitales y permitir la experimentacin de diseos lgicos sobre una plataforma de hardware real. En resumen, las tarjetas servirn para:

1. 2. 3. 4.

Desarrollar diseos con circuitos integrados de alta tecnologa. Comprobar rpidamente el funcionamiento de los circuitos. Experimentar con mltiples alternativas de diseo. Eliminar el cableado manual durante el desarrollo del prototipo.

Bajo este sistema el estudiante disear ms, variados y mejores circuitos que los realizados antes en la misma cantidad de tiempo.

Metodologa de Diseo Digital


La metodologa est basada en el uso de tarjetas de desarrollo para comprobar el diseo realizado por el alumno en el laboratorio, y para demostrar el funcionamiento de los circuitos en las clases de aula. Adicionalmente se entregarn los programas en C listos para usar, para reforzar y despertar la curiosidad del estudiante. En general, el alumno analiza un circuito mediante simulacin en la computadora y verificacin en la tarjeta; y disea circuitos del mismo modo. Cuando sea pertinente se usarn programas en C, por ejemplo, para un diseo que requiera comunicacin serial o paralela entre la PC y el CPLD.

Tarjetas de Pruebas
El Grupo de Microelectrnica ha desarrollado un sistema basado en tarjetas para el diseo digital con lgica programable. El primer prototipo, esquematizado en la figura 1, por el momento se ha denominado DGM-F10K10. El sistema est compuesto por tres elementos principales: 1. 2. ByteBlaster: circuito de configuracin de Altera Corp. Sirve, entre otros, para configurar el EPF10K10LC84-4 montado sobre la tarjeta GM-F10K10. GM-F10K10: Es una tarjeta de desarrollo de propsito general. Contiene dos relojes de cristal, opcionalmente se pueden conectar otros relojes cambiando la posicin de unos jumpers. Cuenta con expansores para conectar fcilmente los 59 pines de usuario disponibles en el EPF10K10LC84-4. GM-T16V7F: Es una tarjeta especfica, orientada al diseo de lgica secuencial. Soporta un panel de cuatro visualizadores y un teclado matricial de 16 teclas.

3.

Este sistema ha servido para disear un gran nmero de circuitos en tiempos muy cortos, como sucedi en el caso del Frecuencmetro Digital con Autorango, para el cual primero se desarroll una versin lgica con el EPF10K10LC84-4 y luego se sintetiz el diseo para un EPM7128SLC84-15, de menor costo que el chip anterior.

Figura 1. Sistema de Diseo DGM-F10K10

Una tarjeta mejorada se est desarrollando actualmente, la cual agrega a la tarjeta GM-T16V7 interruptores y ms indicadores visuales, tal como se muestra en la figura siguiente.

Figura 2. Tarjeta Proyectada para el Sistema de Diseo

Esta tarjeta ser dedicada para manejar un teclado de 16 teclas y un panel de 4 visualizadores de 7 segmentos. Adems habr 16 indicadores visuales (leds), 16 interruptores (dipswitch), 4 botones pulsadores, y 2 visualizadores de 7 segmentos con habilitacin permanente, compartiendo el bus de datos de los leds. Asimismo, se est desarrollando una nueva versin de la tarjeta GM-F10K10, reemplazando un cristal por un circuito astable/monostable basado en un CI 555 y dejando solamente los circuitos para la configuracin individual va JTAG a travs del ByteBlaster. Ambas tarjetas, se estima, estarn completamente listas y funcionales para las fechas del prximo Workshop de Iberchip, donde sera posible hacer unas demostraciones prcticas.

Metodologa de Diseo
En la figura 3 se muestra el diagrama de bloques de un diseo tpico usando el sistema DGM-F10K10. El procesador normalmente es una mquina de estados, que se puede describir en VHDL. El bloque conformado por puertas lgicas, contadores, registros, memorias, etc. forma el camino de datos (datapath), el cual puede hacerse en el MegaWizard del MAX+plusII o usando los smbolos de las funciones SSI, MSI.

Figura 3. Diagrama de Bloques de un Diseo Tpico basado en el Sistema de Diseo DGM-F10K10

El Controlador de Teclado
El teclado matricial contiene un arreglo de cuatro filas y cuatro columnas. La figura 4 muestra un diagrama esquemtico de las interconexiones fsicas. Para conocer que tecla ha sido presionada se emplea un contador de mdulo 16. Cada fila se activa por cuatro ciclos, unas tras otra consecutivamente. En lo que dura la activacin de una fila, se lee secuencialmente el estado de cada columna. Si una columna aparece con el mismo valor de la fila entonces se sabe que tecla fue presionada leyendo el estado del contador. Las conexiones Figura 4. Esquema de un elctricas presentes determinan que las filas se activan en el nivel bajo, teclado de 16 posiciones dado que las columnas estn conectadas a VCC mediante resistencias de 1K. La figura 5 ilustra el diagrama de bloques para el Controlador de Teclado.

Figura 5. Diagrama de Bloques del Controlador de Teclado

Controlador de Visualizacin
Figura 6. Panel de Visualizacin Contiene cuatro visualizadores de siete segmentos. Se controla con un bus de datos de 7 bits. La versin actual en GM-T16V7, no conecta los puntos decimales, mas ellos estarn disponibles en la nueva versin. Cada visualizador debe encenderse uno despus de otro con una frecuencia alta (recomendable 1KHz).

Figura 7. Diagrama de Bloques del Controlador de Visualizacin

Prcticas y Proyectos de Laboratorio


Con el sistema actual, el DGM-F10K10, es posible realizar prcticas de laboratorio que comprendan tanto diseo combinacional como diseo secuencial, simplemente empleando el segundo expansor de la tarjeta GM-F10K10 y haciendo las conexiones sobre un protoboard. Con las nuevas versiones de tarjetas estas tareas se vern facilitadas. Para lgica combinacional, ser sencillo comprobar el funcionamiento de: Puertas Bsicas: NOT, NAND, NOR, AND, OR, XOR, XNOR Mdulos Bsicos: Multiplexores, Demultiplexores, Decodificadores, Codificadores Mdulos Aritmticos: Sumadores, Comparadores En lgica secuencial, ser sencillo comprobar el funcionamiento de: Latches: SR, SR con reloj, D. Flipflops: D, JK, T, con seales de configuracin sncronas y asncronas Memorias: RAM, ROM Mquinas de estados: por ejemplo de tipo Mealy y Moore Contadores y registros de desplazamiento. En lgica secuencial, se podrn hacer circuitos ms interesantes, como por ejemplo: Contador BCD: Contador automtico desde 0 a 9999 en BCD, con reloj de entrada de frecuencia superior a 1MHz (8 MHz por ejemplo) Cronmetro: Contador automtico de segundos, minutos y horas. Lectora de Teclado: Circuito detector de la tecla presionada. Muestra la tecla en un visualizador de siete segmentos. Controlador de Semforos: Control automtico y manual de los semforos de una interseccin de avenidas. Registro de Desplazamiento: Un registro de 4 x 4 flip flops para desplazar dgitos de 4 bits en serie. Cerradura Electrnica: Controla la apertura de una puerta mediante una clave de acceso. Reloj-Alarma: Permite el establecimiento de la hora actual y de la hora de alarma. Cuando se activa, la alarma produce un sonido durante un minuto. Tambin pueden realizarse proyectos de diseo de mayor complejidad, dado que los expansores pueden ser intercambiados por otros circuitos permitiendo incorporar nuevas tarjetas de aplicacin. Algunos ejemplos de proyectos: 1. 2. 3. 4. 5. 6. 7. 8. Frecuencmetro Marcador de Tenis Marcador de Bisbol Marcador de Baloncesto Microprocesador RISC bsico Juego de 4 dgitos Juego de Pker Generador de Tonos Telefnicos 9. 10. 11. 12. 13. Controlador de un Terminal de Trenes Reloj-Alarma-Calendario El Juego de Tetris Pasamensajes Comunicacin serial entre la PC y un CPLD

Por ejemplo, las especificaciones para un proyecto de un Calendario-Reloj-Alarma podran ser: El calendario se indica mediante leds para los das y meses. El ao se indica en un panel de visualizadores de 7 segmentos. Los meses se indican como: 1= Enero, 12 = Diciembre. Los aos pueden estar entre 2000 y 2100, por ejemplo. Los das entre 1 y 31; se puede ver el da de la semana en los leds, y el da del mes en el

visualizador, despus de pulsar una tecla predefinida. La alarma puede fijarse, por decir, para 4 diferentes horas. Cada hora el reloj toca una meloda diferente (opcional). Se pueden establecer los minutos y horas del da. Para el juego de cuatro dgitos, donde el usuario debe adivinar el nmero generado pseudo-aleatoriamente por el circuito mediante aproximaciones sucesivas de acuerdo a la informacin de dgitos acertados y en su lugar, se podra usar un esquema como el mostrado en la figura. Un marcador de baloncesto puede ser prototipado en este sistema, descartando el conector que alimenta a los interruptores y usando ms visualizadores de siete segmentos, que implica usar ms habilitadores si se sigue compartiendo el bus de datos.

Conclusiones

Se ha mostrado un sistema prctico para el diseo digital, que en parte ha sido validado en una variedad de diseos importantes y que ser probado el prximo semestre en la Seccin Electricidad y Electrnica (PUCP) dentro del Laboratorio de Circuitos Digitales. Se mostraron varias posibilidades de diseo digitales con el sistema actual, el DGM-F10K10, y con el nuevo sistema proyectado. Se mencion al lenguaje C como una herramienta de soporte al diseo lgico, no para desarrollar programas sino para ilustrar el uso de C en la creacin de herramientas que automaticen y optimicen el diseo lgico.

Referencias
1. 2. 3. 4. 5. 6. 7. 8. 9. ALTERA. 1998. Data Book. Altera Corp. BROWN, S.; ROSE, J. 1997. Architecture of FPGAs and CPLDs: A Tutorial. brown@eecg.toronto.edu. JAQUENOD, G.A. Computer Architecture & Logical Design Teaching: a Programmable Logic based approach. Copyright Intectra Inc. 1998. JENKINS, J. H. 1982. Designing with FPGAs and CPLDs. Prentice Hall. New Jersey. NELSON, V.P.; TROY, H.; CARROLL B.D.; IRWIN J.D. 1996. Anlisis y Diseo de Circuitos Lgicos Digitales. Prentice Hall. SALCIC, Z. 1998. Digital Systems Design and Prototyping Using Field Programmable Logic. Kluwer Academic Publishers. SMITH, D. J. HDL basic training: top-down chip design using Verilog and VHDL. 1996 EDN Magazine. http://209.67.241.58/reg/1996/102496/Df_04.htm VAN DEN BOUT, D. 1998. The Practical Xilinx Designer LAB Book, Prentice Hall Inc. New York. WESTE, N.; ESHRAGHIAN, K. 1994. Principles of CMOS VLSI Design, A Systems Perspective. 2da Edicin, Addison-Wesley Publishing Company.