sábado, 12 de enero de 2008

Análisis de artículo publicado en SAAEI2005

Análisis del artículo “Metodología para el Desarrollo de Prácticas de Electrónica Digital Basadas en Circuitos Configurables”, desarrollada por Camilo Quintáns Graña y Miguel Ángel Domínguez Gómez del Departamento de Tecnología Electrónica E.T.S.I. Industriales de la Universidad de Vigo en España.

Resumen publicado por los autores.

El progreso de los circuitos integrados ha permitido tener disponibles actualmente circuitos configurables que incluyen bloques digitales muy complejos. Un ejemplo de estos circuitos son las matrices de puertas programables (FPGAs: Field Programmable Gate Arrays) Los fundamentos y Características de las FPGAs no son fáciles de explicar ya que existen una gran cantidad de conceptos que se interrelacionan. En este artículo se propone un método docente que facilita el proceso de aprendizaje de los fundamentos de las FPGAs y del diseño de sistemas basados en este tipo de circuito configurable.

Análisis del artículo.

En este artículo, los autores presentan un método docente para introducir a los alumnos en el mundo del desarrollo de sistemas basados en circuitos configurables de última generación, tal como lo son las matrices de puertas programables (FPGAs: Field Programmable Gate Arrays). Esto es motivado a que los avances en la complejidad y capacidad de los recursos lógicos de los circuitos integrados VLSI ha llevado a un aumento en la utilización de los dispositivos FPGAs en una gran variedad de aplicaciones y por lo tanto se deben adaptar los métodos docentes para lograr un perfil del nuevo ingeniero adecuado a las nuevas necesidades del mercado.

Para la aplicación del método los alumnos tienen el conocimiento previo adquiridos en la asignatura de “Fundamentos de Electrónica” donde se realizaron prácticas de sistemas digitales combinacionales y CI de tecnología TTL.

El método consiste en la realización de un conjunto de prácticas, tal como se muestra en la tabla I. Se puede observar que las prácticas llevan de manera progresiva al trabajo con las FPGAs, comenzando desde el conocimiento del software de diseño y simulación hasta la implementación en la FPGA de un control para un motor paso a paso.





Para el desarrollo de las práctica, los alumnos deben guiarse según el diagrama de bloque de la metodología (Figura 1)


Figura 1. Metodología para el desarrollo de las prácticas.

Para la realización de las prácticas se utilizan los siguientes recursos de hardware y software:

Computador con el entorno EDA. Debida a la distribución libre se eligio el entorno ISE de Xilinx.
Placa de prototipado con tarjeta de entradas, salidas y componentes discretos.
Placa de desarrollo con FPGA Spartan 2E de Xilinx.
Placa de periféricos genéricos de Digilent.

La tarjeta de desarrollo utiliza el dispositivo FPGA Spartan 2E. La familia Spartan 2E de 1,8V, da al usuario un gran rendimiento y abundantes recursos lógicos. Internamente contiene miles de puertas y celdas lógicas, miles de bits de memoria distribuida y màs de 100 Kbits de bloques de RAM. La familia Spartan 2E es una alternativa avanzada para los programadores de ASICs. FPGA acorta el tiempo de desarrollo de un proyecto y permite la actualización del hardware sin necesidad de reemplazar componentes, cosa imposible en ASICs. En la figura 2 puede observarse una fotografìa de la tarjeta de desarrollo y la placa de periféricos.



Figura 2. Tarjeta de desarrollo basada en la FPGA Spartan 2E de Xilinx

En el artículo se presenta como ejemplo explicativo de la metodología la práctica 6 por ser una de las más completas.

Lo que se espara del desarrollo de esta práctica es que los alumnos aprendan a utilizar las memorias RAM (Random Access Memory) y CAM (Content Addressable Memory) y de métodos de encriptación y compresión de datos.

Una memoria CAM compara la entrada con el contenido grabado en ella y genera una salida que puede ser de varias clases dependiendo del tipo de CAM. Para esta práctica en particular la salida de la CAM es la dirección de memoria cuyo contenido coincide con el dato de entrada.

El sistema planteado en la práctica cumple con las siguientes especificaciones:

Para encriptar y comprimir los datos, el transmisor utiliza una memoria CAM de 16 posiciones y 8 bit, por lo tanto se crea una tabla con 16 caracteres ASCII para transmitir, en este caso números y operaciones matemáticas básicas. Los símbolos se envian codificados en ASCII. Cuando se desea enviar uno de estos símbolos, en la entrada del transmisor se introduce el codigo ASCII correspondiente y lo que se transmite es la dirección de memoria donde se encuentra almacenado dicho símbolo, según la tabla de encriptación (Tabla II).



La encriptación se produce porque lo que se transmite es la dirección de memoria y no el código ASCII y la compresión es porque se introduce en el transmisor un código de 6 bits y se transmite otro de 4 bits.

El código ASCII recibido se muestra en los diodos leds y la dirección transmitida se muestra en unos display 7 segmentos presentes en la placa de periféricos.

En la figura 3 se muestra el diagrama de bloque del diseño adaptado para su implementación en la FPGA.

Figura3. Diagrama de bloques del sistema transmisor/receptor

Ambos bloques tienen dos modos de funcionamiento: uno de escritura que es el momento en que se carga la tabla de encriptación en las memorias CAM del transmisor y RAM del receptor y otro modo de transmisión y recepción respectivamente.

Los alumnos deben realizar todo el diseño del sistema, simularlo y realizarlo fisicamente en la FPGA y comprobar el correcto funcionamiento de todo el sistema.
Es importante resaltar que si se diseña cada bloque del sistema transmisor/receptor utilizando dispositivos digitales discretos tales como compuertas, contadores, decodificadores, etc., las tarjetas de prototipo contendrían varios chips como los mencionados anteriormente, entre otros, sin embargo al utilizar una FPGA se puede tener todo el sistema montado en una sola pastilla y el tiempo de realización es realmente muy corto si se compara con el tiempo que toma armar y comprobar un sistema montado con electrónica digital discreta además que a la hora de realizar correcciones o actualizaciones al sistema, es más sencillo hacerlo desde una FPGA que desde una tarjeta de prototipo.

Después de haber implementado este método en sus cursos académicos, los autores llegaron a las siguientes conclusiones:

● Facilita el aprendizaje del funcionamiento de los circuitos configurables y reduce el tiempo que los alumnos deben dedicar en esta tarea.
● El alumno puede comparar los resultados obtenidos al implementar un mismo diseño con placa de prototipo y componentes discretos con respecto a su realización física en un dispositivo configurable (FPGA).
● El alumno aprende de una forma práctica todos los pasos necesarios en la metodología de diseño y realización de sistemas electrónicos digitales.

jueves, 6 de diciembre de 2007

SPLD

Dispositivos lógicos programables sencillos (SPLD)

Características generales

Los SPLD se pueden considerar que se encuentran entre los productos estándar (SSI y MSI) y los circuitos “custom” y “semi-custom”. Su capacidad de integración es, en media, por lo que pueden realizar tareas relativamente sencillas, si bien pueden realizar funciones para las cuales eran necesarios varios circuitos estándar.

Se basan en el empleo de matrices lógicas programables:


Fiugura 1. Matrices OR y AND sin programar




Fiugura 2. Matrices OR y AND programadas

En la figura 1 puede observarse que inicialmente todas las variables están conectadas, mediante fusibles, a todas las entradas de las compuertas.

Durante el proceso de programación cuando se requiere la conexión entre una fila y una columna el fusible se deja intacto. Por el contrario, cuando dicha unión no se requiere, el fusible se abre. En la figura 2 se pueden observar los fusibles que quedan intactos después de una programación de un SPLD.

Una ventaja adicional de los SPLD es su coste reducido. Permiten el diseño de circuitos combinacionales y secuenciales no muy complejos, a medida y a un bajo coste.



Tipos de SPLD .

Existen cuatro tipos de dispositivos SPLD:

• PROM, Programmable Read-Only Memory.
• PLA, Programmable Logic Array.
• PAL, Programmable Array Logic.
• GAL, Generic Array Logic.

Una PROM materializa funciones de conmutación (FC) directamente como suma de minterms ya que el grupo de puertas AND está prefijado. Cuando una FC sólo utiliza unos pocos minterms o admite una fuerte simplificación utilizar una PROM puede ser un despilfarro.

Para este tipo de situaciones se utilizan dispositivos PLA con conexiones programables tanto en el grupo de puertas AND como en el grupo de puertas OR.

Las PALs son un caso particular de las PLA con conexiones OR preprogramadas.

Memoria programable de sólo lectura (PROM)

Se utiliza como una memoria direccionable y no como un dispositivo lógico, debido a las limitaciones que imponen las puertas AND fijas.


Figura3. PROM

Matriz Lógica Programable (PLA)

También se conoce como FPLA (Field Programmable Logic Array), debido a que es el usuario, y no el fabricante, es el que la programa.



Figura 4. PLA

Matriz Lógica Programable (PAL)

Mejora las desventajas de las PLA en cuanto a los retardos en los fusibles. Es el dispositivo programable, para una sola vez, más común, y se implementa con tecnología TTL y ECL.


Figura 5. PAL

Se utilizada para generar funciones lógicas combinacionales específicas (suma de productos).

Por ejemplo:

Las salidas de la matriz AND son entradas de la OR y la salida de cada puerta OR se asocia a una lógica de salida.

Algunas PAL tienen pines de entrada/salida combinacionales y de polaridad programable (se usa puerta OR-exclusiva para realizar la inversión, que se funde en caso de inversión)

Matriz Lógica Genérica (GAL)

Es el desarrollo más reciente. Tiene una estructura muy parecida a la PAL, pero con las siguientes diferencias:

• Es reprogramable.
• Tiene configuraciones de salida reprogramables.

Usa tecnología E2CMOS (Electrically Erasable CMOS). La celda E2CMOS se activa o desactiva mediante programación.



Figura 6. GAL

Es un PLD con una matriz AND reprogramable, matriz OR fija y salida lógica programable.

Las salidas son unas OLMC (Output Logic Macrocells). Son macroceldas lógicas que contienen puertas OR y lógica programable, circuitos lógicos que se pueden programar como lógica combinacional o lógica secuencial (flip-flops, contadores y registros).

Pueden tener elevado número de entradas y de salidas.

Matriz reprogramable: red de conductores con celdas E2CMOS en cada punto de intersección (PAL, fusible).

Una celda E2CMOS puede mantener su estado programado más de 20 años.



Figura 7. Cuadro comparativo

Consideraciones para realizar un diseño con PLD

SISTEMAS DE DESARROLLO

Imprescindible para realizar un diseño lógico con PLD.

Herramientas software generales:

1. Compiladores
2. Software para simulación y test
3. Algoritmos de reducción
4. Software para programar el dispositivo

• ELECCIÓN DEL PLD

Criterios:

1. Número de entradas y salidas necesarias
2. Rapidez
3. Número de puertas y biestables necesarios
4. Consumo
5. Posibilidad de reprogramación
6. Disponibilidad y herramientas de apoyo del fabricante
7. Encapsulado
8. Coste