UNIDAD 4.docx

13
UNIDAD 4 - LENGUAJES HDL 4.1. DISPOSITIVOS LÓGICOS PROGRAMABLES Un Dispositivo Lógico Programable (PLD) es cualquier dispositivo lógico cuya función está especificada por el usuario, después de fabricado el dispositivo. Se usan para remplazar lógica SSI y MSI, ahorrando así en costo y tiempo en el diseño. Entre ellos, encontramos: Arrays Lógicos Programables Un Array Lógico Programable (PLA), es un circuito PLD que puedeprogramarse para ejecutar una función compleja. Normalmente se utilizan paraimplementar lógica combinacional, pero algunos PLA pueden usarse paraimplementar diseños lógicos secuenciales. El PLA es una solución con un solocircuito integrado a muchos problemas lógicos, que pueden tener muchasentradas y muchas salidas. Se trata de una solución AND-OR de dos niveles combinacional que puedeprogramarse para realizar cualquier expansión lógica de suma de productos,sujeta a las limitaciones del producto. Estas limitaciones son el número deentradas (n), el número de salidas (m) y el número de términos productos (p). Se puede describir como un “PLA n x m con p términos productos”. Por tanto suutilidad está limitada a funciones que puedan expresarse en forma de suma deproductos usando p o menos términos productos. Un caso especial de PLA es el de uno de los PLD’s más populares, el PAL(Lógica de ArrayProgramable). En este dispositivo solo es programable la partecorrespondiente a la AND, mientras que la OR es fija. Otros dispositivos lógicos programables de interés son: · ROM, memoria de solo lectura · PROM, memoria de solo lectura programable · EPROM, memoria de solo lectura programable y borrable · EEPROM, memoria de solo lectura programable y borrable electrónicamente

Transcript of UNIDAD 4.docx

Page 1: UNIDAD 4.docx

UNIDAD 4 - LENGUAJES HDL

4.1. DISPOSITIVOS LÓGICOS PROGRAMABLES

Un Dispositivo Lógico Programable (PLD) es cualquier dispositivo lógico cuya función está especificada por el usuario, después de fabricado el dispositivo. Se usan para remplazar lógica SSI y MSI, ahorrando así en costo y tiempo en el diseño. Entre ellos, encontramos:

Arrays Lógicos ProgramablesUn Array Lógico Programable (PLA), es un circuito PLD que puedeprogramarse para ejecutar una función compleja. Normalmente se utilizan paraimplementar lógica combinacional, pero algunos PLA pueden usarse paraimplementar diseños lógicos secuenciales. El PLA es una solución con un solocircuito integrado a muchos problemas lógicos, que pueden tener muchasentradas y muchas salidas.Se trata de una solución AND-OR de dos niveles combinacional que puedeprogramarse para realizar cualquier expansión lógica de suma de productos,sujeta a las limitaciones del producto. Estas limitaciones son el número deentradas (n), el número de salidas (m) y el número de términos productos (p). Sepuede describir como un “PLA n x m con p términos productos”. Por tanto suutilidad está limitada a funciones que puedan expresarse en forma de suma deproductos usando p o menos términos productos.

Un caso especial de PLA es el de uno de los PLD’s más populares, el PAL(Lógica de ArrayProgramable). En este dispositivo solo es programable la partecorrespondiente a la AND, mientras que la OR es fija.

Otros dispositivos lógicos programables de interés son:· ROM, memoria de solo lectura· PROM, memoria de solo lectura programable· EPROM, memoria de solo lectura programable y borrable· EEPROM, memoria de solo lectura programable y borrable electrónicamente· RAM, memoria de acceso aleatorio· SRAM, memoria de acceso aleatorio estática· DRAM, memoria de acceso aleatorio dinámica

4.1.1. TIPOS

ASICSDesde los finales de la década de 1970, los equipos electrónicos digitales utilizan Circuitos Integrados (CI oCHIPS) de función lógica fija, realizados en pequeña o mediana escala de integración (SSI, MSI).Para la implementación de aplicaciones muy complejas, que requieren de una gran cantidad de circuitos de función fija, por lo que resulta más conveniente intégralos en un

Page 2: UNIDAD 4.docx

solo dispositivo fabricado a la medida, los cuales son llamados: ASICS, ApplicationSpecificIntegratedCircuits. (Circuitos Integrados de Aplicación Especifica o circuitos a la medida).Entre las ventajas que presenta el uso de los ASICs podemos mencionar que: Ahorran espacio, reducen elnúmero de dispositivos, tienen menor costo, reducen el tiempo de ensamble, bajo consumo de potencia, menor calentamiento, facilidad en la verificación (control de calidad) y mejor confiabilidad.Los ASIC se pueden clasificar por su tecnología defabricación en cuatro categorías: Arreglos de Compuertas,Celdas Estándar, Full Custom y Lógica Programable

Clasificación de los ASICS

Las tecnologías de Arreglos de Compuertas, Celdas Estándar y Full Custom, están encaminadas a la producción industrial de alto volumen y requieren de equipo especializado para la fabricación del ASIC.Por otro lado, con la Lógica Programable es posible diseñar e implementar funciones desde un solo circuito con el uso de solamente una computadora, un programador y software de Diseño Electrónico Asistido EDA (ElectronicDesignAssistant).

PLDUn dispositivo de lógica programable (PLD) es un Circuito Integrado cuya estructura lógica final es directamente configurada por el usuario, sin necesidad de llevar a cabo ningún proceso de fabricación.PeggyAycinena de la revista electrónica IntegratedSystemDesign asegura que los dispositivos lógicos programables son la ola del futuro porque presentan las siguientes características: 10,000 compuertas en 1 in2, entradas y salidas configurables reprogramables y programables remotamente para diferentes funciones.Los PLDs facilitan el proceso de diseño y reducen el tiempo de desarrollo, cuando se requieren prototipos o producción de baja escala, pues todo el proceso se puedellevar a cabo con la ayuda de una computadora personal, programas de aplicación y el programador los cuales actualmente están disponibles a bajo costo.

Los diferentes tipos de dispositivos de lógica programable que existen hoy en día pueden clasificarse por su tecnología o su capacidad (Figura 2) tales como:

• Simplex Programmable Logic Device SPLDs.• Complex Programmable Logic Device CPLDs.• Field Programmable Gate Arraysevice FPGAs.• Field Programmable Inter Connect FPICs.

De la clasificación anterior en este documento sólo nos enfocaremos, como ejemplos a los Simplex ProgrammableLogicDeviceSPLDs.Los SPLDs están constituidos por un arreglo de compuertas AND, seguido por otro

Page 3: UNIDAD 4.docx

arreglo de compuertasOR, con uno o ambos arreglos programables. Algunos incluyen FlipFlops.

Arreglo And Or de un SPLD.

A su vez los SPLDs se pueden clasificar según su estructura interna en:

• PAL ProgrammableArrayLogic, VANTIS.

• GAL Generic Array Logic, Lattice Semiconductor.

• PLA ProgrammableLogicArray.

• PLD

4.2.1. POR CAPTURA ESQUEMÁTICA

Por Captura Esquemática se entiende el proceso de descripción, mediante un dibujo, de un circuito eléctrico, en el se que representan a los diferentes componentes del circuito y solo se efectúan interconexiones entre ellos.

Existen varios programas con la aplicación de Captura Esquemática como el “Schematic” del IspStarter de Lattice Semiconductor o “Fundation” de XILINX entre otros.

Esta técnica permite simular en la computadora el circuito virtualmente y verificar su funcionamiento antes de su fabricación o implementación en un PLD, reduciendo así el ciclo de diseño y el tiempo de obtención de un producto.

Programa de Captura Esquemática.Los cuatro componentes básicos de la captura esquemática son: Símbolos, Conectores, Etiquetas y Puertos de Entrada y/o Salida.

Utilizando el programa IspStarter de Lattice

Semiconductor, el primer paso en el proceso de obtener el circuito es precisamente la

captura esquemática en donde se genera un archivo de extensión .SCH, posteriormente

se pasa al proceso de enlace (link) en donde se valida si los componentes son permitidos

en el dispositivo seleccionado, además si el dispositivo tiene la capacidad de integrar los

elementos requeridos (FitDesign). También es posible efectuar la simulación antes de

Page 4: UNIDAD 4.docx

obtener el circuito final con la intención de asegurar que este cumpla con los

requerimientos solicitados.

En el proceso de enlace se genera un archivo reporte con extensión .REP que nos indica,

entre otras cosas, laasignación de terminales (Pin Out) y el archivo JEDEC con el cual

efectuaremos la programación del circuito a través de un programador.

Diagrama del proceso de diseño digital por medio de captura esquemática. 

La desventaja de la captura esquemática es que en eldiseño de circuitos grandes no es

posible comprenderlosdebido a que hay demasiados componentes einterconexiones en la

pantalla, para esos casos esrecomendable el uso de lenguajes de descripción

dehardware.

4.2.2. POR TABLA DE VERDAD

Para aclarar el proceso es necesario un ejemplo específico, la tabla de verdad especifica

un circuito combinacional con dos entradas y dos salidas. Las funciones de BOOLE

pueden expresarse en suma de términos mínimos.

  |

|

El diseño de circuitos combinacionales parte la especificación del problema y culmina en

un diagrama lógico de circuitos o un conjunto de funciones booleanas a partir de las

cuales se puede obtener ediagrama lógico. El procedimiento implica los pasos siguientes:

De la especificación del circuito, deduzca el número requerido de entradas y salidas;

asigne un símbolo a cada una.

Deduzca la tabla de verdad que define la relación requerida entre las entradas y las

Page 5: UNIDAD 4.docx

salidas.

Obtenga las funciones booleanas simplificadas para cada salida en función de variables

de entrada.

Dibuje el diagrama lógico y verifique que el diseño sea correcto 

  |   |   |   |   |   |

  |   | | | |

  | | | | | |

  | |

  | | | | | |

  |   | | |

  |   | |   |   |   |

  |   | | | |

  | | | | | |

  |   | | |

| | | |

  | | | | | |

  | |

4.2.3. POR ECUACIONES BOOLEANAS

Si se requiere reducir la función que realiza el circuito. Este proceso parte del diagrama

lógico dado y culmina en un conjunto de funciones BOOLEANAS, una tabla de vedad o

una posible explicación del funcionamiento del circuito. Si el diagrama lógico analizar va

acompañado de un nombre de función o de una explicación de lo que se supone que

hace, el problema de análisis se reduce a una verificación de la función planeada. El

análisis se efectúa manual mente encontrando las funciones BOOLEANAS o la TABLA

DE VERDAD, o bien utilizando un programa de simulación de computadora.

El primer paso del análisis consiste en asegurarse del que el circuito dado sea

Page 6: UNIDAD 4.docx

combinacional y no secuencial. El diagrama del circuito combinacional tiene  compuertas

lógicas sin trayectoria de retroalimentación ni elementos de memoria. Una trayectoria de

retroalimentación es una conexión de salida de una compuerta a la entrada de una

segunda compuerta que forma parte de la entrada a la primera compuerta.

El análisis del circuito combinacional dela figura ilustra, es un circuito que tiene

tres entradas binarias A,B y C y dos salidas binarias F1 y F2. Las salidas de

diversas compuertas que son función únicamente de variables de entrada son T1

y T2. La salida F2 se deduce fácilmente de las variables de entrada. Las funciones

BOOLEANAS de esta salida son:

F2= AB+AC+BC

F1= A+B+C

T2= ABC

4.2.4. POR DESCRIPCIÓN DE COMPORTAMIENTO

Lenguaje de Descripción de Hardware de alta escala de integración (VHDL)

VHDL es el acrónimo que representa la combinación de VHSIC y HDL, donde

VHSIC es el acrónimode Very High SpeedIntegratedCircuit y HDL es a su vez el

acrónimo de Hardware DescriptionLanguage.

Es un lenguaje definido por el IEEE (Institute of Electrical and

ElectronicsEngineers) (ANSI/IEEE 1076-1993) usado por ingenieros para describir

circuitos digitales. Otros métodos para diseñar circuitos son la captura de

esquemas (con herramientas CAD) y los diagramas debloques, pero éstos no son

prácticos en diseños complejos. Otros lenguajes para el mismo propósito son

Verilog y ABEL.

Page 7: UNIDAD 4.docx

Aunque puede ser usado de forma general para describir cualquier circuito se usa

principalmentepara programar PLD (Programable LogicDevice - Dispositivo Lógico

Programable),FPGA (Field ProgrammableGateArray), ASIC y similares

Dentro del VHDL hay varias formas con las que podemos diseñar el mismo circuito

y es tarea deldiseñador elegir la más apropiada.

    * Funcional:

Describimos la forma en que se comporta el circuito. Esta es la forma que másse parece a los lenguajes de software ya que la descripción es secuencial. Estas sentencias secuenciales se encuentran dentro de los llamados procesos en VHDL. Los procesos son ejecutados en paralelo entre sí, y en paralelo con asignaciones concurrentes de señales y con las instancias a otros componentes.

    * Flujo de datos: describe asignaciones concurrentes (en paralelo) de señales.

   * Estructural: se describe el circuito con instancias de componentes. Estas instancias forman un diseño de jerarquía superior, al conectar los puertos de estas instancias con las señales internas del circuito, o con puertos del circuito de jerarquía superior.

    * Mixta: combinación de todas o algunas de las anteriores.

En VHDL también existen formas metódicas para el diseño de máquinas de estados, filtros digitales, bancos de pruebas etc.

4.3. Programación de circuitos secuenciales con HDL

Los circuitos de conmutación secuenciales tienen la propiedad de que la salida no sólo depende de la entrada actual, sino también de la secuencia de entradas anteriores.

Son las siglas de Programable Logic Designo dispositivos de lógica programable. Estos circuitos integrados permiten generar dentro de las mismas funciones que no disponemos en losC.I. Comerciales (decodificadores, comparadores, sumadores, etc).Los PLD´s pueden reemplazar circuitos integrados de propósito especifico en el diseño de circuitos digitales. Un solo PLD es funcionalmente equivalente a dispositivos que tienen desde 5 hasta 10,000compuertas lógicas.

Estos dispositivos están basados en transistores bipolares transistores especiales que

Page 8: UNIDAD 4.docx

cuando se hace circular una fuerte corriente dejan de conducir ,pero pueden volver a conducir aplicando una diferencia de potencial en el circuito.

4.3.1. POR CAPTURA ESQUEMÁTICA

Los programas de captura esquemática son aplicaciones creadas para esbozar circuitos electrónicos y exportar los esquemas como archivos netlist ; los cuales satisfacen la sintaxis de algún núcleo de simulación en particular.Dentro de este grupo de programas, que delegan al usuario la tarea de enlazar los archivos netlist  generados con el núcleo de simulación, se encuentran: XCircuit  11, y gschem 12; pertenecientes a los grupos Open Circuit Design ygEDA , respectivamente. La principal característica de ambos programas, es que pueden generar dibujos decircuitos de gran calidad, debido a la tecnología utilizada en su implementación: el lenguaje Postscript  para la descripción de diagramas. Sin embargo, se aprecia una ligera diferencia entre estas dos aplicaciones, locual podría ayudar a discriminar entre una y otra. Por una parte, el autor de gschem reconoce que  XCircuit  produce mejores salidas gráficas; y por otra, gschem está más orientado al diseño de circuitos que a dibujos de calidad en sí, lo cual se aprecia en su funcionalidad. Lamentablemente, la desventaja de programas de este tipo, es el hecho de tener que enlazar explícitamente el núcleo de simulación; lo cual incrementa la curva de aprendizaje de usuarios provenientes de ambientes más amigables

4.3.2.

POR TABLA DE VERDADLa tabla de verdad es un instrumento utilizado para la simplificación de circuitos digitales a través de su ecuación booleana.Las tablas de verdad pueden tener muchas columnas, pero todas las tablas funcionan de igual forma.Hay siempre una columna de salida (última columna a la derecha) que representa el resultado de todas las posibles combinaciones de las entradas.El número total de columnas en unatabla de verdad es la suma de las entradas que hay + 1 (la columna de la salida).

El número de filas de la tabla de verdad es la cantidad de combinaciones que se pueden lograr con las entradas y es igual a 2n, donde n es el número de columnas de la tabla de verdad (sin tomar en cuenta la columna de salida)Ejemplo: en la siguiente tabla de verdad hay 3 columnas de entrada, entonces habrán: 23= 8 combinaciones (8 filas)Un circuito con 3 interruptores de entrada (con estados binarios "0" o "1"), tendrá 8 posiblescombinaciones. Siendo el resultado (la columna salida) determinado por el estado de los interruptores de entrada.

4.3.3. POR ECUACIONES BOOLEANAS

Page 9: UNIDAD 4.docx

Los Números Reales lo conocemos muy bien, así como todas las operaciones definidas en él. Estamos acostumbrados a trabajar con ellos desde pequeños, por eso este tipo de Ecuaciones nos parecen intuitivas y sencillas, aunque no comprendamos lo que significan las variables usadas. Hemos dicho que los circuitos digitales trabajan con números, y que estos números se expresan en binario. Veremos más adelante cómo con un conjunto de ecuaciones podemos describir lo que hace un circuito, que transforma los números de la entrada y los saca por la salida.Sin embargo, puesto que estos números vienen expresados en binario, las variables y números utilizados NO SON REALES.Para describir un circuito digital utilizaremos ecuaciones, Para describir un circuito digital utilizaremos ecuaciones matemáticas. Sin embargo, estas ecuaciones tienen variables y números que NO SON REALES, por lo que NO podemos aplicar las mismas propiedades y operaciones que conocemos. Hay que utilizar nuevas operaciones y nuevas propiedades, definidas en el ALGEBRA DE BOOLE.Por tanto, vamos a trabajar con unas ecuaciones a las que NO estamos acostumbrados. Son muy sencillas, pero al principio pueden resultar poco intuitivas. En este capítulo aprenderemos a trabajar con ellas.

Las operaciones del Álgrebra de BooleEn el Álgebra de Boole hay dos operaciones, denotadas con los símbolos + y ( - ) _ pero que ¡¡no tienen nada que ver con las operaciones que todos conocemos de suma y producto!!. ¡¡¡No hay que confundirlas!!!!. El + y el _ del Algebra de Boole se aplican a bits, es decir, a números que sólo pueden ser el ’0’ ó el ’1’.La operación +Esta operación se define de la siguiente manera:0 + 0 = 00 + 1 = 11 + 0 = 11 + 1 = 1Las tres primeras operaciones nos resultan obvias, son iguales que la suma que conocemos, sin embargo la expresión 1 + 1 = 1 nos puede resultar chocante. ¿¿Pero no me habían dicho toda la vida que 1+1=2??, nos podemos estar preguntando. Sí, pero hay que recordar que aquí estamos utilizando otra operación que NO ES LA SUMA, la denotamos con el mismo símbolo ’+’, ¡¡pero no es una suma normal!! ¡¡Hay que cambiar el “chip”!!¡¡Ahora estamos con Algebra de Boole!!

4.3.4. POR DESCRIPCIÓN DE COMPORTAMIENTO

Descripción VHDL de comportamiento.- Esta es quizás la etapa mas importante del diseño, ya que en ella se toman decisiones claves para el resultado final.El método se clarifica con un ejemplo, en el cual se ha buscado también la aplicación delos criterios de jerarquía, modularidad y regularidad. Para ello se trata de que todos los pasos de la secuencia sean iguales, cuando ello es posible. También se siguieron las

Page 10: UNIDAD 4.docx

recomendaciones de no usar lógica auxiliar en las señales de reloj (todos los cambios del sistema se producen sincronizados con la señal de reloj la cual es única para todos los Flip Flops.)Síntesis.- Ya en la descripción inicial se halla presente la división del circuito en una parte de control y una parte de datos. Por lo tanto la síntesis consistirá en pasar de la descripción de comportamiento a una descripción de estructura (y comportamiento) que contemple los requisitos expuestos.En esta etapa son importantes la elección del tipo de lógica a utilizar y la estrategia de reloj, esto se podrá apreciar en el ejemplo que consiste en un circuito de control para un convertidor A/D de aproximaciones sucesivas. Comportamiento.En una especificación de este tipo decimos cual es la función que cumple el sistema.