18.11.2012 Views

Una Metodología Integral de Diseño Digital con CPLDs, VHDL y C

Una Metodología Integral de Diseño Digital con CPLDs, VHDL y C

Una Metodología Integral de Diseño Digital con CPLDs, VHDL y C

SHOW MORE
SHOW LESS

Create successful ePaper yourself

Turn your PDF publications into a flip-book with our unique Google optimized e-Paper software.

<strong>Una</strong> Metodología <strong>Integral</strong> <strong>de</strong><br />

Diseño <strong>Digital</strong> <strong>con</strong> <strong>CPLDs</strong>, <strong>VHDL</strong> y C<br />

Arturo Miguel-<strong>de</strong>-Priego <br />

Pontificia Universidad Católica <strong>de</strong>l Perú<br />

Av. Universitaria Cdra. 18 Lima 32 – PERU<br />

Teléfono: (+511 ) 460 2870 Fax: (+511) 261 8861<br />

Se presenta una metodología <strong>de</strong> diseño digital que emplea <strong>CPLDs</strong>, <strong>VHDL</strong> y el lenguaje <strong>de</strong><br />

programación C para la enseñanza, aprendizaje y diseño <strong>de</strong> circuitos digitales utilizando las metodologías<br />

<strong>con</strong>vencionales <strong>de</strong> diseño <strong>con</strong> hardware en combinación <strong>con</strong> técnicas <strong>de</strong> software, aprovechando los elementos<br />

típicamente disponibles en una PC.<br />

Se utiliza el <strong>VHDL</strong> para presentar en alto nivel el funcionamiento <strong>de</strong> un circuito particular, en especial<br />

las máquinas <strong>de</strong> estados; se emplean <strong>de</strong>scripciones esquemáticas para implementar los circuitos <strong>con</strong> un editor <strong>de</strong><br />

símbolos, especialmente los datapaths. Adicionalmente, se utiliza C para crear pequeños programas que<br />

complementan y amplían la visión <strong>de</strong>l estudiante <strong>con</strong> respecto a las herramientas CAD.<br />

Asimismo, se presentan algunos proyectos <strong>de</strong> diseño y prácticas <strong>de</strong> laboratorio para diseño digital.


Introducción<br />

Este trabajo se <strong>de</strong>sarrolla <strong>con</strong> la el objetivo <strong>de</strong> mejorar la enseñanza <strong>de</strong>l diseño digital en la Sección Electricidad<br />

y Electrónica (SEE) <strong>de</strong> la Pontificia Universidad Católica <strong>de</strong>l Perú (PUCP), incorporando las nuevas y mo<strong>de</strong>rnas<br />

metodologías y herramientas CAD para el diseño lógico.<br />

Tradicionalmente, el diseño digital en la SEE comienza <strong>con</strong> el planteo <strong>de</strong> las tablas <strong>de</strong> verdad y diagramas <strong>de</strong><br />

transición; <strong>con</strong>tinua <strong>con</strong> la minimización <strong>de</strong> las funciones lógicas usando técnicas <strong>de</strong> Mapas <strong>de</strong> Karnaugh,<br />

Queen-McKluskey, etc.; seguidamente las funciones se mapean en función <strong>de</strong> los circuitos integrados (CI) SSI y<br />

MSI disponibles, usando los teoremas <strong>de</strong> De Morgan. A <strong>con</strong>tinuación se colocan los CIs sobre una tarjeta <strong>de</strong><br />

pruebas (protoboard) y se realizan las <strong>con</strong>exiones usando cables que se cortan e insertan sobre la tarjeta.<br />

Finalmente, se verifica el funcionamiento <strong>de</strong>l circuito. Si todo está bien, el circuito se <strong>de</strong>sarma para dar espacio<br />

a otros circuitos, o bien, se <strong>con</strong>struye una tarjeta <strong>de</strong> circuitos impresos si fuera necesario. El problema principal<br />

<strong>de</strong> esta metodología se presenta al momento <strong>de</strong> localizar las fallas <strong>de</strong>l circuito cuando éstas ocurren. Todo un<br />

proceso <strong>de</strong> <strong>de</strong>puración <strong>de</strong>be iniciarse en ese caso para hallar la parte mala <strong>de</strong>l circuito (¿Funciones lógicas,<br />

reducción, mapeo? ¿Inter<strong>con</strong>exiones? ¿Chips? ¿Tablas <strong>de</strong> verdad? ¿<strong>Una</strong> combinación <strong>de</strong> fallas?).<br />

Des<strong>de</strong> hace tres semestres se viene aplicando una nueva metodología en la SEE para el Laboratorio <strong>de</strong> Circuitos<br />

<strong>Digital</strong>es, que mejora algunos pero no todos los aspectos <strong>de</strong>l diseño. Se incorporó el uso <strong>de</strong> herramientas CAD<br />

para analizar y diseñar circuitos digitales (MAX+plus II <strong>de</strong> Altera Corp.) . La diferencia <strong>con</strong> el método anterior<br />

radica en la incorporación <strong>de</strong> <strong>de</strong>scripciones esquemáticas usando símbolos <strong>de</strong> puertas SSI y MSI y en la<br />

simulación funcional <strong>de</strong> los diseños antes <strong>de</strong> ser <strong>con</strong>struidos sobre el protoboard. Es <strong>de</strong>cir, el mapeo se <strong>de</strong>scribe<br />

en forma esquemática, luego el compilador se encarga <strong>de</strong> sintetizar el circuito para simulación. El problema <strong>con</strong><br />

esta metodología es que aun se pier<strong>de</strong> <strong>con</strong>si<strong>de</strong>rable tiempo en armar los CIs sobre el protoboard, cuando estas<br />

tareas pue<strong>de</strong>n ser automatizadas.<br />

<strong>Una</strong> nueva metodología que se aplicará a partir <strong>de</strong>l próximo semestre en la SEE, incorpora el uso <strong>de</strong> Tarjetas <strong>de</strong><br />

Desarrollo y Experimentación, <strong>con</strong> el fin <strong>de</strong> ahorrar tiempo en el cableado manual <strong>de</strong> los circuitos. Las tarjetas<br />

<strong>con</strong>tienen chips <strong>de</strong> lógica programable y CIs 74LS244, a<strong>de</strong>más <strong>de</strong> componentes típicos como visualizadores e<br />

interruptores. El uso <strong>de</strong> estas tarjetas se recomienda sin <strong>de</strong>jar <strong>de</strong> lado las activida<strong>de</strong>s manuales, por lo que en las<br />

sesiones <strong>de</strong> laboratorio el alumno seguirá armando circuitos, pero más tiempo <strong>de</strong>dicará a <strong>de</strong>sarrollar sus<br />

habilida<strong>de</strong>s <strong>de</strong> diseño, puesto que podrá resolver más problemas interesantes y útiles dado que cuenta <strong>con</strong> el<br />

apoyo <strong>de</strong> circuitos pre<strong>con</strong>struidos, que sin embargo, no funcionan si no se les indica que hacer. Des<strong>de</strong> el punto<br />

<strong>de</strong> vista práctico, ya <strong>de</strong>s<strong>de</strong> hace años se observa que la lógica programable ofrece ventajas muy superiores al<br />

diseño <strong>con</strong> CI MSI SSI estándares. Quizás, por lo notado hasta ahora, el uso <strong>de</strong> estos chips está limitado a servir<br />

como circuitos <strong>de</strong>codificadores y circuitos <strong>de</strong> interfases <strong>de</strong> I/O (para potenciar las señales, mas no para crear<br />

lógica). A<strong>de</strong>más se introducirá el <strong>VHDL</strong> como lenguaje <strong>de</strong> <strong>de</strong>scripción <strong>de</strong> hardware para complementar las<br />

<strong>de</strong>scripciones esquemáticas y resolver más fácilmente las máquinas <strong>de</strong> estado y codificadores principalmente.<br />

<strong>Una</strong> metodología que para muchos en la SEE es muy audaz o difícil <strong>de</strong> aplicar utiliza el lenguaje <strong>de</strong><br />

programación C para apoyar las activida<strong>de</strong>s <strong>de</strong> enseñanza y aprendizaje <strong>de</strong>l diseño digital en el aula y en el<br />

laboratorio. Por ejemplo, el C se pue<strong>de</strong> usar para crear los <strong>con</strong>tenidos <strong>de</strong> una memoria, reducir una ecuación<br />

siguiendo un algoritmo típico como Queen-McKluskey, enviar datos a un chip por el puerto paralelo o serial,<br />

temporizar eventos para un circuito digital, etc. La ventaja <strong>de</strong> este método es que el alumno apren<strong>de</strong>rá a<br />

re<strong>con</strong>ocer tempranamente las diferencias entre el software y el hardware y podrá apren<strong>de</strong>r a complementar<br />

ambos para obtener un sistema eficiente, optimo y a bajo costo <strong>de</strong> tiempo y esfuerzo, introduciéndolo <strong>de</strong>s<strong>de</strong> los<br />

primeros cursos <strong>de</strong> diseño digital a una metodología <strong>de</strong> codiseño <strong>de</strong> hardware y software. El uso <strong>de</strong> programas<br />

en C también brindará algunas i<strong>de</strong>as al alumno <strong>de</strong> cómo <strong>con</strong>struir una herramienta CAD, para síntesis,<br />

simulación, verificación, mo<strong>de</strong>lamiento, <strong>de</strong>puración, etc.<br />

Con esta nueva metodología se podrá mostrar fácilmente el funcionamiento <strong>de</strong> varios circuitos digitales típicos<br />

utilizando una tarjeta a medida y una tarjeta <strong>de</strong> pruebas basada en un dispositivo <strong>de</strong> lógica programable, <strong>con</strong> el<br />

fin <strong>de</strong> reducir el tiempo <strong>de</strong> aprendizaje en las prácticas <strong>de</strong> laboratorio <strong>de</strong> Circuitos <strong>Digital</strong>es y permitir la<br />

experimentación <strong>de</strong> diseños lógicos sobre una plataforma <strong>de</strong> hardware real. En resumen, las tarjetas servirán<br />

para:


1. Desarrollar diseños <strong>con</strong> circuitos integrados <strong>de</strong> alta tecnología.<br />

2. Comprobar rápidamente el funcionamiento <strong>de</strong> los circuitos.<br />

3. Experimentar <strong>con</strong> múltiples alternativas <strong>de</strong> diseño.<br />

4. Eliminar el cableado manual durante el <strong>de</strong>sarrollo <strong>de</strong>l prototipo.<br />

Bajo este sistema el estudiante diseñará más, variados y mejores circuitos que los realizados antes en la misma<br />

cantidad <strong>de</strong> tiempo.<br />

Metodología <strong>de</strong> Diseño <strong>Digital</strong><br />

La metodología está basada en el uso <strong>de</strong> tarjetas <strong>de</strong> <strong>de</strong>sarrollo para comprobar el diseño realizado por el<br />

alumno en el laboratorio, y para <strong>de</strong>mostrar el funcionamiento <strong>de</strong> los circuitos en las clases <strong>de</strong> aula.<br />

Adicionalmente se entregarán los programas en C listos para usar, para reforzar y <strong>de</strong>spertar la curiosidad <strong>de</strong>l<br />

estudiante. En general, el alumno analiza un circuito mediante simulación en la computadora y verificación en la<br />

tarjeta; y diseña circuitos <strong>de</strong>l mismo modo. Cuando sea pertinente se usarán programas en C, por ejemplo, para<br />

un diseño que requiera comunicación serial o paralela entre la PC y el CPLD.<br />

Tarjetas <strong>de</strong> Pruebas<br />

El Grupo <strong>de</strong> Microelectrónica ha <strong>de</strong>sarrollado un sistema basado en tarjetas para el diseño digital <strong>con</strong><br />

lógica programable. El primer prototipo, esquematizado en la figura 1, por el momento se ha <strong>de</strong>nominado<br />

DGM-F10K10. El sistema está compuesto por tres elementos principales:<br />

1. ByteBlaster: circuito <strong>de</strong> <strong>con</strong>figuración <strong>de</strong> Altera Corp. Sirve, entre otros, para <strong>con</strong>figurar el<br />

EPF10K10LC84-4 montado sobre la tarjeta GM-F10K10.<br />

2. GM-F10K10: Es una tarjeta <strong>de</strong> <strong>de</strong>sarrollo <strong>de</strong> propósito general. Contiene dos relojes <strong>de</strong> cristal,<br />

opcionalmente se pue<strong>de</strong>n <strong>con</strong>ectar otros relojes cambiando la posición <strong>de</strong> unos jumpers. Cuenta <strong>con</strong><br />

expansores para <strong>con</strong>ectar fácilmente los 59 pines <strong>de</strong> usuario disponibles en el EPF10K10LC84-4.<br />

3. GM-T16V7F: Es una tarjeta específica, orientada al diseño <strong>de</strong> lógica secuencial. Soporta un panel <strong>de</strong><br />

cuatro visualizadores y un teclado matricial <strong>de</strong> 16 teclas.<br />

Este sistema ha servido para diseñar un gran número <strong>de</strong> circuitos en tiempos muy cortos, como sucedió en el<br />

caso <strong>de</strong>l Frecuencímetro <strong>Digital</strong> <strong>con</strong> Autorango, para el cual primero se <strong>de</strong>sarrolló una versión lógica <strong>con</strong> el<br />

EPF10K10LC84-4 y luego se sintetizó el diseño para un EPM7128SLC84-15, <strong>de</strong> menor costo que el chip<br />

anterior.<br />

Figura 1. Sistema <strong>de</strong><br />

Diseño DGM-F10K10


<strong>Una</strong> tarjeta mejorada se está <strong>de</strong>sarrollando actualmente, la cual agrega a la tarjeta GM-T16V7 interruptores y<br />

más indicadores visuales, tal como se muestra en la figura siguiente.<br />

Esta tarjeta será <strong>de</strong>dicada para manejar un teclado <strong>de</strong> 16 teclas y un panel <strong>de</strong> 4 visualizadores <strong>de</strong> 7 segmentos.<br />

A<strong>de</strong>más habrá 16 indicadores visuales (leds), 16 interruptores (dipswitch), 4 botones pulsadores, y 2<br />

visualizadores <strong>de</strong> 7 segmentos <strong>con</strong> habilitación permanente, compartiendo el bus <strong>de</strong> datos <strong>de</strong> los leds.<br />

Asimismo, se está <strong>de</strong>sarrollando una nueva versión <strong>de</strong> la tarjeta GM-F10K10, reemplazando un cristal por un<br />

circuito astable/monostable basado en un CI 555 y <strong>de</strong>jando solamente los circuitos para la <strong>con</strong>figuración<br />

individual vía JTAG a través <strong>de</strong>l ByteBlaster. Ambas tarjetas, se estima, estarán completamente listas y<br />

funcionales para las fechas <strong>de</strong>l próximo Workshop <strong>de</strong> Iberchip, don<strong>de</strong> sería posible hacer unas <strong>de</strong>mostraciones<br />

prácticas.<br />

Metodología <strong>de</strong> Diseño<br />

Figura 2. Tarjeta Proyectada para el Sistema <strong>de</strong> Diseño<br />

En la figura 3 se muestra el diagrama <strong>de</strong> bloques <strong>de</strong> un diseño típico usando el sistema DGM-F10K10. El<br />

procesador normalmente es una máquina <strong>de</strong> estados, que se pue<strong>de</strong> <strong>de</strong>scribir en <strong>VHDL</strong>. El bloque <strong>con</strong>formado<br />

por puertas lógicas, <strong>con</strong>tadores, registros, memorias, etc. forma el camino <strong>de</strong> datos (datapath), el cual pue<strong>de</strong><br />

hacerse en el MegaWizard <strong>de</strong>l MAX+plusII o usando los símbolos <strong>de</strong> las funciones SSI, MSI.<br />

Figura 3. Diagrama <strong>de</strong> Bloques <strong>de</strong> un Diseño Típico basado<br />

en el Sistema <strong>de</strong> Diseño DGM-F10K10


El Controlador <strong>de</strong> Teclado<br />

El teclado matricial <strong>con</strong>tiene un arreglo <strong>de</strong> cuatro filas y cuatro<br />

columnas. La figura 4 muestra un diagrama esquemático <strong>de</strong> las<br />

inter<strong>con</strong>exiones físicas. Para <strong>con</strong>ocer que tecla ha sido presionada se<br />

emplea un <strong>con</strong>tador <strong>de</strong> módulo 16. Cada fila se activa por cuatro<br />

ciclos, unas tras otra <strong>con</strong>secutivamente. En lo que dura la activación<br />

<strong>de</strong> una fila, se lee secuencialmente el estado <strong>de</strong> cada columna. Si una<br />

columna aparece <strong>con</strong> el mismo valor <strong>de</strong> la fila entonces se sabe que<br />

tecla fue presionada leyendo el estado <strong>de</strong>l <strong>con</strong>tador. Las <strong>con</strong>exiones Figura 4. Esquema <strong>de</strong> un<br />

eléctricas presentes <strong>de</strong>terminan que las filas se activan en el nivel bajo, teclado <strong>de</strong> 16 posiciones<br />

dado que las columnas están <strong>con</strong>ectadas a VCC mediante resistencias<br />

<strong>de</strong> 1K. La figura 5 ilustra el diagrama <strong>de</strong> bloques para el Controlador<br />

<strong>de</strong> Teclado.<br />

Figura 5. Diagrama <strong>de</strong> Bloques <strong>de</strong>l Controlador <strong>de</strong> Teclado<br />

Controlador <strong>de</strong> Visualización<br />

Contiene cuatro visualizadores <strong>de</strong> siete segmentos. Se <strong>con</strong>trola <strong>con</strong> un bus<br />

<strong>de</strong> datos <strong>de</strong> 7 bits. La versión actual en GM-T16V7, no <strong>con</strong>ecta los puntos<br />

<strong>de</strong>cimales, mas ellos estarán disponibles en la nueva versión. Cada<br />

visualizador <strong>de</strong>be encen<strong>de</strong>rse uno <strong>de</strong>spués <strong>de</strong> otro <strong>con</strong> una frecuencia alta<br />

(recomendable 1KHz).<br />

Figura 7. Diagrama <strong>de</strong> Bloques <strong>de</strong>l Controlador <strong>de</strong> Visualización<br />

Figura 6. Panel <strong>de</strong> Visualización


Prácticas y Proyectos <strong>de</strong> Laboratorio<br />

Con el sistema actual, el DGM-F10K10, es posible realizar prácticas <strong>de</strong> laboratorio que comprendan tanto diseño<br />

combinacional como diseño secuencial, simplemente empleando el segundo expansor <strong>de</strong> la tarjeta GM-F10K10<br />

y haciendo las <strong>con</strong>exiones sobre un protoboard. Con las nuevas versiones <strong>de</strong> tarjetas estas tareas se verán<br />

facilitadas.<br />

Para lógica combinacional, será sencillo comprobar el funcionamiento <strong>de</strong>:<br />

Puertas Básicas: NOT, NAND, NOR, AND, OR, XOR, XNOR<br />

Módulos Básicos: Multiplexores, Demultiplexores, Decodificadores, Codificadores<br />

Módulos Aritméticos: Sumadores, Comparadores<br />

En lógica secuencial, será sencillo comprobar el funcionamiento <strong>de</strong>:<br />

Latches: SR, SR <strong>con</strong> reloj, D.<br />

Flipflops: D, JK, T, <strong>con</strong> señales <strong>de</strong> <strong>con</strong>figuración síncronas y asíncronas<br />

Memorias: RAM, ROM<br />

Máquinas <strong>de</strong> estados: por ejemplo <strong>de</strong> tipo Mealy y Moore<br />

Contadores y registros <strong>de</strong> <strong>de</strong>splazamiento.<br />

En lógica secuencial, se podrán hacer circuitos más interesantes, como por ejemplo:<br />

Contador BCD: Contador automático <strong>de</strong>s<strong>de</strong> 0 a 9999 en BCD, <strong>con</strong> reloj <strong>de</strong> entrada <strong>de</strong> frecuencia<br />

superior a 1MHz (8 MHz por ejemplo)<br />

Cronómetro: Contador automático <strong>de</strong> segundos, minutos y horas.<br />

Lectora <strong>de</strong> Teclado: Circuito <strong>de</strong>tector <strong>de</strong> la tecla presionada. Muestra la tecla en un visualizador <strong>de</strong><br />

siete segmentos.<br />

Controlador <strong>de</strong> Semáforos: Control automático y manual <strong>de</strong> los semáforos <strong>de</strong> una intersección <strong>de</strong><br />

avenidas.<br />

Registro <strong>de</strong> Desplazamiento: Un registro <strong>de</strong> 4 x 4 flip flops para <strong>de</strong>splazar dígitos <strong>de</strong> 4 bits en serie.<br />

Cerradura Electrónica: Controla la apertura <strong>de</strong> una puerta mediante una clave <strong>de</strong> acceso.<br />

Reloj-Alarma: Permite el establecimiento <strong>de</strong> la hora actual y <strong>de</strong> la hora <strong>de</strong> alarma. Cuando se activa, la<br />

alarma produce un sonido durante un minuto.<br />

También pue<strong>de</strong>n realizarse proyectos <strong>de</strong> diseño <strong>de</strong> mayor complejidad, dado que los expansores pue<strong>de</strong>n ser<br />

intercambiados por otros circuitos permitiendo incorporar nuevas tarjetas <strong>de</strong> aplicación. Algunos ejemplos <strong>de</strong><br />

proyectos:<br />

1. Frecuencímetro<br />

2. Marcador <strong>de</strong> Tenis<br />

3. Marcador <strong>de</strong> Béisbol<br />

4. Marcador <strong>de</strong> Baloncesto<br />

5. Microprocesador RISC básico<br />

6. Juego <strong>de</strong> 4 dígitos<br />

7. Juego <strong>de</strong> Póker<br />

8. Generador <strong>de</strong> Tonos Telefónicos<br />

Por ejemplo, las especificaciones para un proyecto<br />

<strong>de</strong> un Calendario-Reloj-Alarma podrían ser: El<br />

calendario se indica mediante leds para los días y<br />

meses. El año se indica en un panel <strong>de</strong><br />

visualizadores <strong>de</strong> 7 segmentos. Los meses se<br />

indican como: 1= Enero, 12 = Diciembre. Los<br />

años pue<strong>de</strong>n estar entre 2000 y 2100, por ejemplo.<br />

Los días entre 1 y 31; se pue<strong>de</strong> ver el día <strong>de</strong> la<br />

semana en los leds, y el día <strong>de</strong>l mes en el<br />

9. Controlador <strong>de</strong> un Terminal <strong>de</strong><br />

Trenes<br />

10. Reloj-Alarma-Calendario<br />

11. El Juego <strong>de</strong> Tetris<br />

12. Pasamensajes<br />

13. Comunicación serial entre la PC y<br />

un CPLD


visualizador, <strong>de</strong>spués <strong>de</strong> pulsar una tecla pre<strong>de</strong>finida. La alarma pue<strong>de</strong> fijarse, por <strong>de</strong>cir, para 4 diferentes horas.<br />

Cada hora el reloj toca una melodía diferente (opcional). Se pue<strong>de</strong>n establecer los minutos y horas <strong>de</strong>l día.<br />

Para el juego <strong>de</strong> cuatro dígitos, don<strong>de</strong> el usuario <strong>de</strong>be adivinar el número generado<br />

pseudo-aleatoriamente por el circuito mediante aproximaciones sucesivas <strong>de</strong> acuerdo<br />

a la información <strong>de</strong> dígitos acertados y en su lugar, se podría usar un esquema como<br />

el mostrado en la figura.<br />

Un marcador <strong>de</strong> baloncesto pue<strong>de</strong> ser prototipado en este sistema, <strong>de</strong>scartando el<br />

<strong>con</strong>ector que alimenta a los interruptores y usando más visualizadores <strong>de</strong> siete<br />

segmentos, que implica usar más habilitadores si se sigue compartiendo el bus <strong>de</strong><br />

datos.<br />

Conclusiones<br />

Se ha mostrado un sistema práctico para el diseño digital, que en parte ha sido validado en una variedad <strong>de</strong><br />

diseños importantes y que será probado el próximo semestre en la Sección Electricidad y Electrónica<br />

(PUCP) <strong>de</strong>ntro <strong>de</strong>l Laboratorio <strong>de</strong> Circuitos <strong>Digital</strong>es.<br />

Se mostraron varias posibilida<strong>de</strong>s <strong>de</strong> diseño digitales <strong>con</strong> el sistema actual, el DGM-F10K10, y <strong>con</strong> el nuevo<br />

sistema proyectado.<br />

Se mencionó al lenguaje C como una herramienta <strong>de</strong> soporte al diseño lógico, no para <strong>de</strong>sarrollar programas<br />

sino para ilustrar el uso <strong>de</strong> C en la creación <strong>de</strong> herramientas que automaticen y optimicen el diseño lógico.<br />

Referencias<br />

1. ALTERA. 1998. Data Book. Altera Corp.<br />

2. BROWN, S.; ROSE, J. 1997. Architecture of FPGAs and <strong>CPLDs</strong>: A Tutorial. brown@eecg.toronto.edu.<br />

3. JAQUENOD, G.A. Computer Architecture & Logical Design Teaching: a Programmable Logic based<br />

approach. Copyright Intectra Inc. 1998.<br />

4. JENKINS, J. H. 1982. Designing with FPGAs and <strong>CPLDs</strong>. Prentice Hall. New Jersey.<br />

5. NELSON, V.P.; TROY, H.; CARROLL B.D.; IRWIN J.D. 1996. Análisis y Diseño <strong>de</strong> Circuitos Lógicos<br />

<strong>Digital</strong>es. Prentice Hall.<br />

6. SALCIC, Z. 1998. <strong>Digital</strong> Systems Design and Prototyping Using Field Programmable Logic. Kluwer<br />

Aca<strong>de</strong>mic Publishers.<br />

7. SMITH, D. J. HDL basic training: top-down chip <strong>de</strong>sign using Verilog and <strong>VHDL</strong>. 1996 EDN Magazine.<br />

http://209.67.241.58/reg/1996/102496/Df_04.htm<br />

8. VAN DEN BOUT, D. 1998. The Practical Xilinx � Designer LAB Book, Prentice Hall Inc. New York.<br />

9. WESTE, N.; ESHRAGHIAN, K. 1994. Principles of CMOS VLSI Design, A Systems Perspective. 2da<br />

Edición, Addison-Wesley Publishing Company.

Hooray! Your file is uploaded and ready to be published.

Saved successfully!

Ooh no, something went wrong!