transistores

13
Tecnológico De Estudios Superiores De Jocotitlán Ingeniería En Sistemas Computacionales Asignatura: Principios Electricos y Aplicaciones Digitales Lenguajes HDL P R E S E N T A: Luis Alberto Pérez González Jorge Luis Mondragon Zepeda Hugo Cesar Moreno Nicolas Docente: Leopoldo Gil Antonio

Transcript of transistores

Page 1: transistores

Tecnológico De Estudios Superiores De Jocotitlán

Ingeniería En Sistemas Computacionales

Asignatura:

Principios Electricos y Aplicaciones Digitales

Lenguajes HDL

P R E S E N T A:

Luis Alberto Pérez González

Jorge Luis Mondragon Zepeda

Hugo Cesar Moreno Nicolas

Docente: Leopoldo Gil Antonio

Grupo: ISC-403

Jocotitlán, Estado De México A 19 De Junio de 2015

Page 2: transistores

Introducción

Los circuitos de escala de integración media y alta se diseñaron mediante la reali-zación de un prototipo formado por módulos más sencillos y la comprobación de su funcionamiento antes de proceder a la integración. Esta forma dediseño recibe el nombre de abajo a arriba (bottom-up) porque se enlazan diversos módulos para constituir un bloque funcional más complejo. Pero en el caso de los circuitos inte-grados de complejidad VLSI y superiores no resulta práctica la realización física de un prototipo y por ello es necesario simular y verificar su correcto comportamiento antes de integrarlos.. Así, mediante simulación es posible una rápida detección de errores en fases tempranas del diseño, resulta factible la reutilización del mismo para diferentest ecnologías y se pueden utilizar las herramientas de síntesis actua-les para obtener rápidamente un esquema lógico o estructural y, en definitiva, una netlist* de entrada para el trazado físico (layout) del ASIC, MCM, etc. o la asigna-ción de recursos (mapping) en el caso de la lógica programable (PLDs y FPGAs).Todo ello, obviamente, incrementa la productividad y la eficacia del dise-ño.

Los HDL utilizan expresiones estándar basadas en texto que reflejan la estructura de los circuitos electrónicos, así como su comportamiento a lo largo del tiempo. Al igual que los lenguajes de programación concurrentes, la sintaxis y semántica de los HDL incluyen notaciones específicas para manejar la concurrencia. Sin embar-go, al contrario de lo que ocurre con la mayoría de los lenguajes de programación, los HDL incluyen también una notación específica para el tiempo, debido a que este es una característica fundamental en los circuitos electrónicos reales.

Los lenguajes cuyo único propósito es expresar la conectividad entre una jerarquía de bloques son más bien clasificados como "lenguajes de listas de conexiones" (o lenguajes "netlist"), tales como los que se usan en los programas de diseño asisti-do por ordenador (CAD). Los HDL son algo más rico que estos lenguajes de listas de conexiones, ya que no sólo permiten definir la estructura de un circuito, sino también su comportamiento.

Así, los HDL pueden ser usados para escribir especificaciones "ejecutables" de hardware. Es decir, un programa escrito en HDL hace posible que el diseñador de hardware pueda modelar y simular un componente electrónico antes de que este sea construido físicamente. Es esta posibilidad de "ejecución" de componentes lo que hace que a veces los HDL se vean como lenguajes de programación convencionales, cuando en realidad se debería clasificarlos más precisamente como lenguajes de modelado.

Page 3: transistores

UNIDAD 4- LENGUAJES HDL

4.1 Dispositivos lógicos programables

Un dispositivo lógico programable (PLD) es cualquier dispositivo lógico cuya función esta especificada por el usuario, se usan para reemplazar lógica SSI y MSI, ahorrando así en costo y tiempo en el diseño. Entre ellos se encuentran:

Arrays Lógicos Programables

Un Array Lógico Programable (PLA), es un circuito PLD que puede programarse para ejecutar una función compleja, normalmente se utilizan para implementar lógica combinacional, pero algunos PLA pueden usarse para implementar diseños lógicos secuenciales

Otros dispositivos lógicos programables son:

- ROM, memoria de solo lectura- PROM, memoria de solo lectura programable- EPROM, memoria de solo lectura programable y borrable- EPROM, memoria de solo lectura programable y borrable electrónicamente- RAM, memoria de acceso aleatorio- SRAM, memoria de acceso aleatorio estática

4.1.1 Tipos

PAL

MMI introdujo un dispositivo revolucionario en 1978, la Programable Array Logic (Matriz lógica programable). La arquitectura era más sencilla que la FPLA porque omitía la matriz OR programable. Esto hizo los dispositivos más rápidos, más pequeños y más baratos. Estaban disponibles en encapsulados de 20 pines y DIP de 300 milésimas de pulgada, mientras que las FPLA´s venían en encapsulados de 28 pines y DIP de 600 milésimas de pulgada. Ciertas publicaciones sobre PAL´s desmitificaban el proceso de diseño. El software de diseño PALASM (PAL Assembler, ensamblador PAL) convertía las ecuaciones Booleanas de los ingenieros en el patrón de fusibles requerido para programar el dispositivo. Los PAL de MMI pronto fueron distribuidos por National Semiconductor, Texas Instruments y AMD.

GAL´s

Una innovación del PAL fue la matriz lógica genérica (Generic array Logic) o GAL. Ambas fueron desarrolladas por Lattice Semiconductor en 1985. Este dispositivo tiene las mismas propiedades lógicas que el PAL, pero puede ser borrado y reprogramado. La GAL es muy útil en la fase de prototipo de un diseño, cuando un fallo en la lógica puede ser corregido por reprogramación. Las GAL’s se programan y reprograman utilizando un programador OPAL, o utilizando la técnica de programación circuital en chips secundarios.

Page 4: transistores

FPGA’s

Mientras el desarrollo de las PAL’s se enfocaba hacia las GAL’s y CPLD´s (ver secciones superiores), apareció una corriente de desarrollo distinta. Esta corriente de desarrollo desembocó en un dispositivo basado en la tecnología de matriz de puertas y se le denominó field-programmable gate array (FPGA). Algunos ejemplos de las primeras FPGA’s son la matriz 82s100 y el secuenciador 82S105 de Signetics, presentados a finales de los 70. El 82S100 era una matriz de términos AND, y también tenía funciones de biestable.

4.1.2 Características

ASIC: Son dispositivos definidos por el usuario. Pueden contener funciones analógicas, digitales y combinacionales.

PROM: Son memorias programables de solo lectura. Son usadas para codificar las combinaciones de entrada en funciones de salida.

PAL: Son dispositivos de matriz programables. Son los dispositivos programables por usuario más empleados.

GAL: Las gal son dispositivos de matrices lógica genérica. Son electrónicamente borrables.

PLA: Son matrices lógicas programables. Tienen mayor flexibilidad que otros dispositivos.

FPGA: Son campos de matrices de puertas programables. Contienen múltiples niveles de lógica.

4.1.3 Fabricantes

Actel: Es un fabricante de FPGA’s y soluciones lógica programables.

Altera Corp.: Es un fabricante líder de dispositivos lógicos programables.

Atmel Corp. (www.atmel.com): Es un fabricante de semiconductores.

Chip Express.

Cypress Sem: Es una empresa dedicada al diseño de semiconductor.Lattice Sem. Quicklogic Corp.: Son proveedores de matrices de puertas programables de campo, con dispositivos solo programables una vez.Xilinx Inc.: Proveedor de dispositivos de lógica programable

4.1.4. Pasos para el diseño con PLD’s

Son IC's estándar de la familia de ASIC´s que están disponibles en configuraciones estándar desde catálogos de partes y se venden en grandes volúmenes a muchos consumidores. Sin embargo, los PLD's pueden configurarse o programarse para crear partes configurables para una aplicación específica, los PLD's utilizan diferentes tecnologías para permitir la programación del dispositivo. Entre las principales características de los PLD's se puede destacar:

Page 5: transistores

No poseen mascaras o capas ni celdas lógicas configurables.

Rápido diseño.

Un solo gran bloque de interconexiones programables.

Poseen una matriz de macro celdas lógicas que usualmente consiste de un arreglo programable lógico seguido por un flip-flop o latch

4.2 Programación de circuitos combinacionales con HDL

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

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 obtener el circuito final con la intención de asegurar que este cumpla con los requerimientos solicitados.

4.2.2 Por tabla de verdad

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

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 el diagrama 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 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

 

Page 6: transistores

 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 TABLADE 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 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 salidaF2 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ónimo de Very High Speed Integrated Circuit y HDL es a su vez el acrónimo de Hardware Description Language.

Es un lenguaje definido por el IEEE (Institute of Electrical and Electronics Engineers)(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 de bloques, pero éstos no son prácticos en diseños complejos. Otros lenguajes para el mismo propósito son Verilog y ABEL.

Aunque puede ser usado de forma general para describir cualquier circuito se usa principalmente para programar PLD (Programable Logic Device - Dispositivo Lógico Programable), FPGA (Field Programable Gate Array), ASIC y similares Dentro del VHDL hay varias formas con las que podemos diseñar el mismo circuito y es tarea del diseñador elegir la más apropiada. Funcional: Describimos la forma en que se comporta el circuito. Esta es la forma que más se 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.

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.

Page 7: transistores

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 los C.I. Comerciales (decodificadores, comparadores, sumadores, etc.).Los PLD s pueden reemplazar circuitos integrados de propósito específico 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 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 las 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, respectivamente. La principal característica de ambos programas, es que pueden generar dibujos de circuitos de gran calidad, debido a la tecnología utilizada en su implementación: el lenguaje Post script para la descripción de diagramas. Sin embargo, se aprecia una ligera diferencia entre estas dos aplicaciones, lo cual podría ayudar a discriminar una a otra.

4.3.2. POR TABLA DE VERDAD

La 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 una tabla 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á 8posiblescombinaciones. Siendo el resultado (la columna salida) determinado por el estado de los interruptores de entrada.

4.3.3. POR ECUACIONES BOOLEANAS

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

Page 8: transistores

aplicar las mismas propiedades y operaciones que conocemos. Hay que utilizar nuevas operaciones y nuevas propiedades, definidas en el álgebra de Boole.

4.3.4. POR DESCRIPCIÓN DE COMPORTAMIENTO

Descripción VHDL de comportamiento. Esta es quizás la etapa más 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 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.

4.3.5. POR TABLA DE ESTADO

Un circuito cuya salida depende no solo de la combinación de entrada, sino también de la historia de las entradas anteriores se denomina Circuito Secuencial. La historia de las entradas anteriores en un momento dado se encuentra resumida en el estado del circuito, el cual se expresa en un conjunto de variables de estado. El circuito secuencial debe ser capaz de mantener su estado durante algún tiempo, para ello se hace necesario el uso de dispositivos de memoria. Los dispositivos de memoria utilizados en circuitos secuenciales pueden ser tan sencillos como un simple retardador (inclusive, se puede usar el retardo natural asociado a las compuertas lógicas) o tan complejos como un circuito completo de memoria denominado multivibrador biestable o Flip Flop.

Como puede verse entonces, en los circuitos secuenciales entra un factor que no se había considerado en los combinacionales, dicho factor es el tiempo. De hecho, los circuitos secuenciales se clasifican de acuerdo a la manera como manejan el tiempo en circuitos secuenciales síncronos y circuitos secuenciales asíncronos. En un circuito secuencial asíncrono, los cambios de estado ocurren al ritmo natural marcado por los retardos asociados a las compuertas lógicas utilizadas en su implementación, es decir, estos circuitos no usan elementos especiales de memoria, pues se sirven de los retardos propios (tiempos de propagación) de las compuertas lógicas usados en ellos.

Esta manera de operar puede ocasionar algunos problemas de funcionamiento, ya que estos retardos naturales no están bajo el control del diseñador y además no son idénticos en cada compuerta lógica. Los circuitos secuenciales síncronos, sólo permiten un cambio de estado en los instantes marcados por una señal de sincronismo de tipo oscilatorio denominada reloj. Con esto se pueden evitar los problemas que tienen los circuitos asíncronos originados por cambios de estado no uniformes en todo el circuito.

4.3.6. POR DIAGRAMA DE TRANSICIÓN

Page 9: transistores

Dibujar el diagrama de transición de estados y producción de salidas, las tablas de transición y la expresión lógica de las funciones f y g para el circuito secuencial de la figura. Obsérvese que ahora hay realimentación desde la salida y por consiguiente a la entrada se calculan funciones de x(t) y Q(t) pero Q(t) procede de los valores de D en (t-∆t). Si el biestable D se dispara a subidas dibujar la evolución temporal de la señal en Q cuando en la entrada x(t) y en el reloj Ck.

Conclusiones

El presente trabajo planteó como objetivo primario el estudiar el lenguaje HDL para describir algunas de sus arquitecturas. Como objetivo secundario se propuso simular las descripciones realizadas modificando los parámetros de interés: ancho de palabra y número de iteraciones, para determinar la exactitud que se obtiene en los resultados. La simulación se llevó a cabo con el cálculo de las funciones seno, coseno y arcotangente. La conclusión a esta unidad es sobre el Lenguaje HDL es que estos fueron diseñados para arreglar muchos problemas como errores al hacer los circuitos integrados estos nos sirven para poder corregir errores antes de montar los circuitos y pues en esta unidad aprendimos algo sobre el leguaje HDL .

Las simulaciones funcionales en VHDL se pueden llevar a cabo fácilmente mediante la descripción algorítmica de los bancos de prueba. Si bien las simulaciones exhaustivas llevan mucho tiempo, se pueden realizar de manera sencilla, ya que las diferentes metodologías existentes para describir bancos de prueba permiten generar gran cantidad de patrones de verificación.

Referencias

http://sedici.unlp.edu.ar/bitstream/handle/10915/3835/Conclusiones.pdf?sequence=8.

https://www.google.com.mx/search?q=introduccion+al+lenguaje+HDL&ie=UTF-8&sa=Search&channel=