Está en la página 1de 120

APRENDA PLD’s, PRINCIPIOS Y

APLICACIONES

ELABORADO POR:

ING. LUIS GERARDO FLORES RODRIGUEZ


2

DERECHOS RESRVADOS © 2002 Ing. Luis Gerardo Flores Rodríguez.

Esta obra y sus características son propiedad del autor, cualquier reproducción total o
parcial, queda estrictamente prohibida, de acuerdo a los derechos de autor que marca la ley.

Aprenda PLD’s Principios y Aplicaciones. L. Gerardo Flores R.


3

Resumen

En el capítulo uno, se presenta un repaso de los principios de los sistemas digitales, como
es el álgebra booleana, los mapas de Karnaugh, las compuertas simples y compuestas.
En el capítulo dos, se detalla que es la lógica programable, los tipos de PLD’s, ventajas,
limitaciones, selección, nomenclatura, las Macroceldas de salida lógica (OLMC),
fabricantes de PLD’s, y los pasos necesarios para la programación.
En el capítulo tres, se describe el software de desarrollo utilizado en este trabajo, el
WinCUPL (Compilador Universal de Lógica Programable bajo el sistema Windows), este
software de la compañía Logic Devices Co., es uno de los mas populares en el mercado.
En el capítulo cuatro, se menciona los tres posibles métodos de programación en la lógica
combinacional, donde se incluyen un ejemplo en cada método de implementación, dando
explicación paso a paso para su programación.
Y por ultimo, el capítulo cinco nos indica las dos maneras de programación en la lógica
secuencial; por secuencia y por ecuaciones. En ambas formas mostramos un ejemplo
práctico, dando por conclusión el mismo resultado.

Aprenda PLD’s Principios y Aplicaciones. L. Gerardo Flores R.


4

Contenido

Derechos de autor
Resumen
Contenido
Figuras
Antecedentes

1. INTRODUCCIÓN.

1.1 Sistemas analógicos y digitales

1.2 Sistemas Numéricos

1.3 Tabla de verdad

1.4 Compuertas simples y compuestas

1.4.1 Compuertas simples

1.4.2 Compuertas compuestas

1.5 Álgebra Booleana

1.6 Minitérminos y Maxitérminos

1.6.1 Minitérminos.(Suma de Productos).(Σm).

1.6.2 Maxitérminos.(Productos de Suma).(πM).

1.6.3 Minimización de funciones combinacionales

Aprenda PLD’s Principios y Aplicaciones. L. Gerardo Flores R.


5

1.7 Mapas de Karnaugh

1.7.1 Definición.

1.7.2 Redundancias.(Σd).

2. DISPOSITIVOS LÓGICOS PROGRAMABLES.

2.1 ¿Qué es la lógica programable?.

2.1.1 ASIC

2.1.2 PROM

2.1.3 PAL.

2.1.4 GAL

2.1.5 PLA

2.1.6 PLDs complejos.

2.1.7 FPGA.

2.2 Ventajas del uso de PLD’s.

2.3 Limitaciones de las PLD’s.

2.4 Selección del modelo adecuado para cada aplicación.

2.5 Nomenclatura generalizada de las PLD’s.

2.6 PALs programables varias veces : serie PALCExxx y GALs.

2.7 Fabricantes de PALs y GALs.

2.8 Programación de los PLD´s.

Aprenda PLD’s Principios y Aplicaciones. L. Gerardo Flores R.


6

3. COMPILADOR UNIVERSAL PARA LOGICA PROGRAMABLE. (WinCUPL)

3.1 Flujo de Datos.

3.2 Ciclo de "desarrollo".

3.3 Medio ambiente del WinCUPL.

3.3.1 Comandos de la barra de herramienta.

3.3.2 Comandos del menú File:.

3.3.3 Comandos del menú Edit:.

3.3.4 Comandos del menú View:.

3.3.5 Comandos del manú Options:.

3.3.6 Comandos del menú Run:.

3.3.7 Comandos del menú Utilities:.

3.3.8 Comandos del menú Window:.

3.3.9 Comandos del menú Help:.

3.4 Elementos del lenguaje.

3.4.1 Variables.

3.4.2 Palabras y símbolos reservados.

3.4.2.1 Palabras reservadas.

3.4.2.2 Símbolos reservados.

3.4.3 Comentarios.

Aprenda PLD’s Principios y Aplicaciones. L. Gerardo Flores R.


7

3.4.4 Notación de listas.

3.4.5 Archivo Plantilla.

3.4.6 Declaración de Pines y Campos.

3.4.6.1 Declaración de pines.

3.4.6.2 Declaración de campos de bits.

3.4.7 Comandos de Preprocesamiento.

3.4.8 Operadores Lógicos.

3.4.9 Extensiones.

3.4.10 Expresiones.

3.4.11 Ecuaciones Lógicas.

4. LOGICA COMBINACIONAL.

4.1 Ejemplo usando tabla de verdad.

4.2 Ejemplo usando ecuaciones booleanas.

4.3 Ejemplo usando el programa esquemático.

Aprenda PLD’s Principios y Aplicaciones. L. Gerardo Flores R.


8

5. LOGICA SECUENCIAL.

5.1 La macrocelda lógica de salida (OLMC) del GAL22V10.

5.2 La OLMC de la GAL16V8.

5.3 El modo combinacional.

5.4 El modo secuencial.

5.5 Tipos de máquinas de estados.

5.6 Ejemplo.

5.6.1 Implementación utilizando la secuencia de estados.

5.6.2 Implementación usando ecuaciones minimizadas.

Bibliografía.
Abreviaturas.
Glosario.

Aprenda PLD’s Principios y Aplicaciones. L. Gerardo Flores R.


9

Figuras
Figura 1.1 Ejemplo de representaciones análogas y digitales.
Figura 1.2 Mapas de Karnaugh.
Figura 1.3 Ejemplo de minimización.

Figura 2.1 Arquitectura elemental del PROM.


Figura 2.2 Arquitectura elemental del PAL.
Figura 2.3 Arquitectura elemental de un PLA.
Figura 2.4 Arquitectura elemental de un FPGA.
Figura 2.5 Estructuras de las GAL16V8 y GAL20V8.
Figura 2.6 Constitución de Macroceldas de salida lógica (OLMC’s) de un GAL.
Figura 2.7 Sistema necesario para el desarrollo de un PLD.

Figura 3.1 Flujo de datos del WinCUPL.


Figura 3.2 Diagrama de flujo del ciclo de desarrollo de PLD’s.
Figura 3.3 Pantalla general del WinCUPL.

Figura 4.1 Modo de programar el PLD.


Figura 4.2 Pantalla de creación de un nuevo archivo.
Figura 4.3 Pantalla de edición .
Figura 4.4 Pantalla de inserción de la tabla.
Figura 4.5 Acomodo de las variables y de la tabla de verdad.
Figura 4.6 Pantalla Output Files.
Figura 4.7 Pantalla de Minimization.
Figura 4.8 Pantalla Optimization.
Figura 4.9 Pantalla Devices.
Figura 4.10 Pantalla Library.
Figura 4.11 Pantalla General.
Figura 4.12 Pantalla de opciones del simulador.
Figura 4.13 Pantalla de los resultados de la compilación .

Aprenda PLD’s Principios y Aplicaciones. L. Gerardo Flores R.


10

Figura 4.14 Pantalla de cabecera del WinSim.


Figura 4.15 Pantalla de resultados de la simulación.
Figura 4.16 Minimización de la ecuación.
Figura 4.17 Pantalla de cabecera.
Figura 4.18 Pantalla de Edición .
Figura 4.19 Pantalla de cabecera del WinSim.
Figura 4.20 Resultados simulados del WinSim.
Figura 4.21 Pantalla general del programa Schematic.
Figura 4.22 Botones de herramienta.
Figura 4.23 Implementación lógica de la ecuación de números primos.
Figura 4.24 Programa fuente generado por el Schematic.
Figura 4.25 Pantalla de la cabecera del WinCUPL.
Figura 4.26 Programa fuente generado por Schematic, pegado en WinCUPL.
Figura 4.27 Programa fuente arreglado.
Figura 4.28 Pantalla de los resultados de simulación del programa Numprim_sh.

Figura 5.1 OLMC del GAL22V10.


Figura 5.2 OLMC del GAL16V8.
Figura 5.3 Modo combinacional para salidas activas a nivel bajo y a nivel alto.
Figura 5.4 Modo secuencial para salidas activas a nivel bajo y a nivel alto.
Figura 5.5 Diagrama de bloques generales para los dos tipos de máquinas de estado.
Figura 5.6 Distribución física del problema de control de semáforos.
Figura 5.7 Comportamiento del circuito.
Figura 5.8 Tabla equivalente con valores boléanos.
Figura 5.9 Minimización por mapa de las salidas Z1 y Z2.
Figura 5.10 Programa fuente en WinCUPL, usando la secuencia de estados.
Figura 5.11 Resultado de la simulación.
Figura 5.12 Minimización de las salidas de los flip-flop’s “D”.
Figura 5.13 Programa fuente, utilizando ecuaciones lógicas.
Figura 5.14 Resultado de la simulación.

Aprenda PLD’s Principios y Aplicaciones. L. Gerardo Flores R.


11

Antecedentes

El incremento de popularidad y de utilización de los dispositivos lógicos programables o


PLDs está siguiendo un proceso solamente comparable al que hace algunos años acompañó
a los microprocesadores. Los PLDs se utilizan en casi todos los nuevos equipos
electrónicos de control, industriales, de consumo, de oficina, de comunicaciones, etc.
Desde finales de la década de los sesenta, los equipos electrónicos digitales se han
construido utilizando circuitos integrados de función lógica fija, realizados en pequeña o
mediana escala de integración. Para las realizaciones muy complejas que exigirían un
número elevado de circuitos integrados (CI) de función fija, se utilizan circuitos diseñados
a medida que sólo sirven para una aplicación. Son los llamados CI específicos a una
aplicación o ASIC (Application Specific Integrated Circuit). Por regla general, los ASICs
los producen los fabricantes de CI con las especificaciones proporcionadas por el usuario.
Los equipos realizados con ASICs ocupan menos espacio, son más fiables, consumen
menos energía y en grandes series resultan más baratos que los equipos equivalentes
realizados con CI de función fija. Por otro lado, estos circuitos son muy difíciles de copiar.
Diferentes modalidades de ASICs son; los Circuitos a Medida (Full Custom), las Matrices
de Puertas (Gate Arrays), las Células Normalizadas (Standard Cell) y los FPICs (Field
Programmable Integrated Circuits); estos últimos son circuitos programables por el usuario
final.
Los PLDs (Programmable Logic Devices) son pequeñas ASICs configurables por el
usuario capaces de realizar una determinada función lógica. La mayoría de los PLD
consisten en una matriz de puertas AND seguida de otra matriz de puertas OR. Mediante
esta estructura, puede realizarse cualquier función como suma de términos productos.
Aunque las memorias PROM, EPROM y EEPROM son PLDs, muchas veces se las excluye
de esta denominación debido a que su contenido se define utilizando elementos de
desarrollo propios de microprocesadores, tales como; ensambladores, emuladores y
lenguajes de programación de alto nivel. Otras veces, cuando estas memorias se usan para
realizar una función lógica y no para guardar un programa de un microprocesador, se las
incluye dentro del término PLD.

Aprenda PLD’s Principios y Aplicaciones. L. Gerardo Flores R.


12

Los PLDs están situados en una zona intermedia entre los dispositivos a medida y la lógica
de catálogo formada por los CI de función fija. Tienen casi todas las ventajas de los ASICs
sin estar penalizados por un costo elevado para pequeñas series. Además el ciclo de diseño
con PLDs es mucho más rápido que los de las matrices de puertas o las células
normalizadas. En determinadas aplicaciones, un PLD puede sustituir desde unos pocos
hasta unas decenas de CI de función fija, mientras que los grandes ASICs pueden sustituir a
cientos e incluso miles de CI. En ocasiones, los PLD se utilizan para realizar prototipos que
posteriormente se llevarán a un ASIC más complejo.
El trabajo con PLDs proporciona: facilidad de diseño, prestaciones, fiabilidad, economía y
seguridad.
Las herramientas de soporte al diseño con PLDs facilitan enormemente este proceso. Las
hojas de codificación que se utilizaban en 1975 han dejado paso a los ensambladores y
compiladores de lógica programable (PALASM, AMAZE, ABEL, CUPL, OrCAD/PLD,
etc.). Estas nuevas herramientas permiten expresar la lógica de los circuitos utilizando
formas variadas de entrada tales como; ecuaciones, tablas de verdad, procedimientos para
máquinas de estados, esquemas, etc. La simulación digital posibilita la depuración de los
diseños antes de la programación de los dispositivos. Todo el equipo de diseño se reduce a
un software de bajo costo que corre en una PC, y a un programador.
Los PLDs TTL que hay en el mercado tienen tiempos de conmutación tan rápidos como los
circuitos integrados de función fija más veloces. Los PLDs ECL son todavía más rápidos.
Sin embargo, el incremento de velocidad obtenido con los dispositivos CMOS, que ya han
igualado o superado en prestaciones a los dispositivos TTL, está provocando el abandono
de la tecnología bipolar por parte de los fabricantes. En cuanto al consumo de potencia, los
PLDs generalmente consumen menos que el conjunto de chips a los que reemplazan.
Cuanto más complejo es un circuito, más probabilidades hay de que alguna de sus partes
falle. Puesto que los PLDs reducen el número de chips en los sistemas, la probabilidad de
un fallo disminuye. Los circuitos impresos con menor densidad de CI son más fáciles de
construir y más fiables. Las fuentes de ruido también se reducen.
En cuanto economía, hay aspectos que resultan difíciles de cuantificar. Por ejemplo, los
costos de pérdida de mercado por una introducción tardía de un producto.

Aprenda PLD’s Principios y Aplicaciones. L. Gerardo Flores R.


13

Otros son más claros, por ejemplo, la reducción del área de las placas de circuito impreso
obtenida gracias a que cada PLD sustituye a varios circuitos integrados de función fija.
Muchas veces se consigue reducir el número de placas de circuito impreso economizándose
en conectores. La reducción de artículos en almacén también aporta ventajas económicas.
De la misma manera que para altos volúmenes de producción las memorias ROM resultan
de menor costo que las EPROM, las HAL (Hard Array Logic) o PLDs programados por el
fabricante proporcionan ahorros adicionales en grandes cantidades.
Los PLDs tienen fusibles de seguridad que impiden la lectura de los dispositivos
programados, protegiendo los diseños frente a copias.
Además de los puntos mencionados, podemos añadir que los PLDs facilitan el ruteado de
las placas de circuito impreso debido a la libertad de asignación de patillas que
proporcionan. Permiten realizar modificaciones posteriores del diseño y en ocasiones hacen
posible la reutilización de circuitos impresos con algunos fallos, mediante una reasignación
de los PLDs.

Existen en la actualidad infinidad de arquitecturas diferentes de PLDs y su número se


incrementa día a día. Aunque resulta casi imposible hacer una referencia completa de todos
los tipos de PLDs en el mercado, en este trabajo sólo se presentarán algunas de las más
comunes.

Aprenda PLD’s Principios y Aplicaciones. L. Gerardo Flores R.


14

1. INTRODUCCIÓN.
1.1 Sistemas analógicos y digitales.
En la ciencia, la tecnología, la administración y, de hecho, muchos otros campos de la
actividad humana, constantemente se manejan cantidades. Estas se miden, monitorean,
registran, manipulan aritméticamente, observan o, en alguna otra forma, se utilizan en
muchos sistemas físicos. Cuando se manejan diversas cantidades es importante que
podamos representar sus valores con eficiencia y exactitud. Existen básicamente dos
maneras de representar el valor numérico de las cantidades: La analógica y la digital.
• Representaciones analógicas.- en la representación analógica, una cantidad se
denota por medio de otra que es proporcional a la primera.
• Las cantidades analógicas tienen una característica importante: Pueden variar
gradualmente sobre un intervalo continuo de valores.
• Representaciones digitales.- las cantidades no se denotan por valores
proporcionales, sino por símbolos denominados dígitos.

ANALÓGICA ≡ CONTINUO DIGITAL ≡ DISCRETO

Figura 1.1 Ejemplo de representaciones análogas y digitales.

• Sistema digital.- es una combinación de dispositivos diseñada para manipular


cantidades físicas o información que estén representadas en forma digital; esto es,
que solo pueden tomar valores discretos.
• Sistemas analógicos.- contienen dispositivos que manipulan cantidades físicas
representadas en forma analógica. En un sistema de este tipo, las cantidades varían
sobre un intervalo continuo de valores.

Aprenda PLD’s Principios y Aplicaciones. L. Gerardo Flores R.


15

“Ventajas de las técnicas digitales”.


1. Los sistemas digitales son más fáciles de diseñar.
2. Facilidad para almacenar la información.
3. Mayor exactitud y precisión.
4. Programación de la operación.
5. El ruido afecta en forma mínima a los circuitos digitales.

“Limitaciones de la técnicas digitales”.


Solo un problema: El mundo real es fundamentalmente ANALÓGICO
(velocidad, temperatura, distancia, sonido,... etc).

Cuando se tienen entradas y salidas analógicas, deben seguirse tres pasos para aprovechar
las técnicas digitales:
1. Convertir las entradas analógicas del “mundo real” a la forma digital.
2. Procesar ( realizar operaciones) con la información digital.
3. Convertir de nuevo las salidas digitales a la forma analógica del mundo
real.
Cada vez es más frecuente observar dentro de un mismo sistema el empleo de técnicas
analógicas y digitales para obtener mayor beneficio de ambas. En estos sistemas híbridos,
uno de los aspectos más importantes de la fase de diseño es determinar que partes del
sistema serán analógicos y cuales digitales.

1.2 Sistemas Numéricos.


El sistema numérico decimal fue inventado por matemáticos hindúes hace más de dos mil
años y los árabes lo introdujeron al mundo occidental en el siglo trece. Consta de diez
símbolos que van del cero al nueve, introduce el concepto del valor posicional, en el que
cada posición representa la base elevada a una potencia. En base 10 el dígito que se
encuentra en la posición de unidades debe ser multiplicado por 100, el de decenas por 101,
el de centenas por 102, etc. Por ejemplo:
7865 = (7 * 103) + (8 * 102) + (6 * 101) + (5 * 100)

Aprenda PLD’s Principios y Aplicaciones. L. Gerardo Flores R.


16

existen muchos otros sistemas numéricos, los cuales comparten con el sistema decimal las
siguientes propiedades:
• El número de símbolos diferentes (dígitos) usados por el sistema es igual a la base.
• El dígito mayor es siempre una unidad menor a la base.
• En cada posición se multiplica el valor del dígito por la base elevada a la potencia
correspondiente. Para un número entero, el último dígito (o sea el de la derecha)
está multiplicado por la base elevada a la potencia cero, el penúltimo está
multiplicado por la base elevada a la potencia uno, el antepenúltimo por la base
elevada a la potencia dos, y así sucesivamente.
• Los acarreos en sumas y restas, se propagan hacia la siguiente posición con mayor
peso ponderal.
El sistema numérico binario solo encuentra aplicación práctica hasta hace
aproximadamente 50 años al iniciarse el desarrollo de automatismos a relevadores.
Actualmente se emplea profusamente en las computadoras e instrumentos digitales por
requerir solo de dos niveles de señal para representar cada dígito.
El sistema binario consta de dos dígitos 0 y 1. Al representar un número entero en
binario la posición de la derecha está multiplicado por 20, la siguiente a 21, la siguiente
por 22, etc.
A cada dígito binario se le llama bit. Al bit de la extrema derecha se le conoce como
“bit menos significativo” y al de la extrema izquierda “bit más significativo”.
Ejemplo.- determine el valor del número binario 1011.
(1011) = (1 * 23) + (0 * 22) + (1 * 21) + (1 * 20)
= (1 * 8) + (0 * 4) + (1 * 2) + (1 * 1)
= 8 + 2 + 1 = 11
El sistema binario no es muy conveniente para que nosotros representemos cantidades
grandes, pues se requieren demasiados ceros y unos. Por tal razón se emplean
frecuentemente otros sistemas que correspondan a una representación abreviada del sistema
binario. Si se considera que existen 16 posibles combinaciones para un grupo de 4 bits (24 =
16) se tiene que un dígito hexadecimal (base 16) sustituye a cuatro dígitos binarios.
En el sistema hexadecimal trabajamos con 16 símbolos que son los números 0, 1, 2, 3, 4, 5,
6, 7, 8, 9, y las letras A, B, C, D, E, F.

Aprenda PLD’s Principios y Aplicaciones. L. Gerardo Flores R.


17

El procedimiento para convertir de binario a hexadecimal requiere solo separar al número


binario en grupos de 4 bits y sustituir cada grupo por el dígito hexadecimal
correspondiente. Para convertir de hexadecimal a binario se invierte el procedimiento.

Ejemplo.- Convertir de binario a hexadecimal el número binario 011111001000


0111 1100 1000
(7) (C) (8)

1.3 Tabla de verdad.


A las posibles combinaciones de las variables de entrada, y la salida de un circuito lógico se
llama tabla de verdad.

Variables lógicas:
A 0, 1
A, B 00,01, 10, 11
A, B, C 000, 001, 010, 011, 100, 101, 110, 111

n 2n

1.4 Compuertas simples y compuestas.

1.4.1 Compuertas simples.

AND.-
Tabla de verdad Símbolo Función lógica
B A F F =A*B
A
0 0 0 F
0 1 0
B
1 0 0
1 1 1

Aprenda PLD’s Principios y Aplicaciones. L. Gerardo Flores R.


18

OR.-
Tabla de verdad Símbolo Función lógica
B A F
0 0 0 A
0 1 1 F F =A + B
1 0 1 B
1 1 1

INVERSOR.-
Tabla de verdad Símbolo Función lógica

A F A F F =A
0 1
1 0

1.4.2 Compuertas compuestas.

NAND.-
Tabla de verdad Símbolo Función
lógica
B A F
0 0 1 A F= AB
F
0 1 1
1 0 1 B
1 1 0

NOR.-
Tabla de verdad Símbolo Función
lógica
B A F A
0 0 1 F F =A+B
0 1 0 B
1 0 0
1 1 0

Aprenda PLD’s Principios y Aplicaciones. L. Gerardo Flores R.


19

XOR.- OR exclusivo.-
Tabla de verdad Símbolo Función
lógica
F =A B + A B
B A F A
= A⊕B
0 0 0 F
0 1 1 B
1 0 1
1 1 0
NOREX.-

NOREX.- NOR Exclusivo


Tabla de verdad Símbolo Función lógica
B A F

F =A B + A B
0 0 1 A
0 1 0
1 0 0 F
B
1 1 1

1.5 Álgebra Booleana.

Método matemático para tratar de describir las propiedades de un sistema formal de


pensamiento que únicamente permite dos Posibilidades discursivas: Si-No, Arriba-Abajo,
Blanco-Negro, Cero-Uno. El creador de todo esto fue el matemático inglés George Boole
(1815-1864).
Funciones, Leyes y Propiedades del Álgebra Booleana:

0 = 1
Función AND. Función OR. Inversor.
0*0=0 0+0=0

1 = 0
0*1=0 0+1=1
1*0=0 1+0=1
1*1=1 1+1=1

Ley conmutativa. Ley distributiva. Ley asociativa.


X*Y=Y*X X * (Y + Z) =X * Y + X * Z X*(Y * Z) = (X * Y)Z
X + Y =Y + X X + Y * Z = (X + Y) * (X + Z) X + (Y + Z)=(X + Y) + Z

Aprenda PLD’s Principios y Aplicaciones. L. Gerardo Flores R.


20

X+X*Y= X+Y
Absorción. Identidad. Propiedad de la AND.
X + X * Y =X X* 0=0
X*(X + Y) =X X * (X + Y) = X *Y 0* X=0
X*1=X
1*X=X

Propiedades de la OR. Combinando. Doble complemento.

X * X = 0
X+0=X X*X=X
0+X=X X = X
X+1=1 X+X=X
1+X=1 X +X = 1

Leyes de Morgan de la complementación.

X + Y =X * Y

X * Y = X + Y

1.6 Minitérminos y Maxitérminos.


1.6.1 Minitérminos.(Suma de Productos).(Σm)
Una forma de sintetizar una función es a partir de la tabla de verdad.
Suma de productos.- Si en cada término de la función aparecen todas las variables, a esta
expresión se le llama función canónica externa (FCA) o suma de productos estándar.
Ejemplo.-
F (C, B, A) = A +AB + ABC suma de productos.
F (C, B, A) = ABC + ABC + ABC FCA.
A los términos que tienen todas las variables se les llama minitérminos.
Para obtener la FCA partiendo de una tabla de verdad, se procede con lo siguiente:
Se toman los renglones donde la función es 1, si la variable es 1 se deja tal cual, si es cero
se niega, después se suman lógicamente los productos lógicos correspondiente a dicho
renglón.

Aprenda PLD’s Principios y Aplicaciones. L. Gerardo Flores R.


21

Ejemplo:
B A F
0 0 0
0 1 1 F = AB +AB
1 0 1
1 1 0

1.6.2 Maxitérminos.(Productos de Suma).(πM)

Cuando en cada término ( producto) aparecen todas las variables se llama maxitérmino y a
la expresión formada por maxitérminos se le llama función canónica conjunta o producto
de suma estándar (FCC).
F(C, B, A) = (A + B)( C + A) productos de suma
F(C, B, A) = (A +B + C)(A + B +C) FCC
Una FCC se obtiene de una tabla de verdad de la forma siguiente:
Se toman de la columna de salida los ceros, si la variable es uno se niega, si es cero se deja
tal cual, después se multiplican lógicamente los maxitérminos asociados a cada renglón.

1.6.3 Minimización de funciones combinacionales.


La tarea de un diseñador lógico consiste en implementar una función lógica al mínimo
costo.
Métodos de Minimización:
• Veitch
• Karnaugh
• Quine McCluskey

Aprenda PLD’s Principios y Aplicaciones. L. Gerardo Flores R.


22

1.7 Mapas de Karnaugh.


Así como una tabla de verdad representa una función lógica, en los mapas se asocia un área
a la combinación de las variables y la función se representa por un ”1” o un “0” en dichas
áreas.
Mapas de Karnaugh.

Una variable. 0 1
0 1
0
Dos variables.
1

00 01 11 10 00 01 11 10
00
0
01 Cuatro variables.
Tres
1 11
variables.
10

Figura 1.2 Mapas de Karnaugh

1.7.1 Definición.
Dos términos son lógicamente adyacentes cuando difieren en una variable únicamente.

AB C
Son lógicamente adyacentes
ABC

DC B A

DCBA
No son lógicamente adyacentes.

Aprenda PLD’s Principios y Aplicaciones. L. Gerardo Flores R.


23

Una función será mínima cuando contiene el mínimo número de términos y cada término el
número mínimo de variables.
El proceso de Minimización es el siguiente:
Del mapa de Karnaugh se asocia el máximo número de unos (será en potencia de dos, o
sea, 1, 2, 4, 8, …) que sean lógicamente adyacentes entre sí.
El proceso de Minimización se lleva a cabo por una aplicación interactiva del teorema:
AB +AB = A.
El término minimizado contendrá las variables que no cambian, así mismo, los unos que
hayan sido asociados se pueden volver a asociar según el teorema:
A +A = A.

00 01 11 10
00 1 0 0 0
01 1 1 1 0
11 1 1 1 0
10 1 0 0 0 F = WY +WX

Figura 1.3 Ejemplo de minimización.

1.7.2 Redundancias.(Σd)
En ciertas ocasiones la función no depende de ciertas combinaciones de las variables de
entrada, ya que estas combinaciones no se presentan. Se dice que el valor de la función “ no
importa” (don’t care). En la columna de salida esto se representa por los siguientes
símbolos y se les llama redundancias:
X

Redundancias ∅
*

En el proceso de minimización la redundancia se toma como uno ó como cero según más
convenga.

Aprenda PLD’s Principios y Aplicaciones. L. Gerardo Flores R.


24

Ejemplo.- Implementar la siguiente función:

F = Σm(0, 3, 4, 8, 12) + Σd(1, 2, 10)


00 01 11 10
00 1 X 1 X
01 1 0 0 0
11 1 0 0 0
D C B A
10 1 0 0 X

F = AB + CD

Aprenda PLD’s Principios y Aplicaciones. L. Gerardo Flores R.


25

2. DISPOSITIVOS LÓGICOS PROGRAMABLES.


2.1 ¿Qué es la lógica programable?.
La lógica programable, como el nombre implica, es una familia de componentes que
contienen conjuntos de elementos lógicos (AND, OR, NOT, LATCH, FLIP-FLOP) que
pueden configurarse en cualquier función lógica que el usuario desee y que el componente
soporte.

Todas las entradas pueden conectarse a una misma compuerta AND, pero cada compuerta
AND está conectada a una determinada compuerta OR de salida. Los dispositivos PLD’s
surgieron como un compromiso entre desempeño y flexibilidad-costo. Las PLA tienen
mayor flexibilidad debido a que tienen tanto la matriz AND como la OR programables,
pero eso implica un menor rendimiento. Con una sola matriz programable, las PALs ganan
velocidad a costa de la pérdida de un poco de flexibilidad eso se compensa mediante la
oferta de varias configuraciones básicas y la incorporación de las GALs, sobre las cuales
trataremos unas líneas más adelante.

Hay varias clases de dispositivos lógicos programables: ASICs, FPGAs, PLAs, PROMs,
PALs, GALs, y PLDs complejos.

2.1.1 ASIC.
ASIC significa Circuitos Integrados de Aplicación Específica y son dispositivos definibles
por el usuario. Los ASICs, al contrario que otros dispositivos, pueden contener funciones
analógicas, digitales, y combinaciones de ambas. En general, son programables mediante
máscara o sea, que los fabricantes configuran el dispositivo según las especificaciones del
usuario, y no por el usuario. Se usan para combinar una gran cantidad de funciones lógicas
en un dispositivo. Sin embargo, estos dispositivos tienen un costo inicial alto, por lo tanto
se usan principalmente cuando se necesitan en una gran cantidad. Los encontramos por
ejemplo en los teléfonos celulares, juegos de video,...,etc.

Aprenda PLD’s Principios y Aplicaciones. L. Gerardo Flores R.


26

2.1.2 PROM.
Las PROM son memorias programables de sólo lectura. Aunque el nombre no implica la
lógica programable, las PROM, son de hecho lógicas. La arquitectura de la mayoría de las
PROM consiste generalmente en un número fijo de términos AND que alimenta una matriz
programable OR. Se usan principalmente para decodificar las combinaciones de entrada en
funciones de salida.

“AND” “OR”
FIJA PROGRAMABLE

Figura 2.1 Arquitectura elemental del PROM

Aprenda PLD’s Principios y Aplicaciones. L. Gerardo Flores R.


27

2.1.3 PAL.
Las PAL son dispositivos de matriz programable. La arquitectura interna consiste en
términos AND programables que alimentan términos OR fijos. Todas las entradas a la
matriz pueden ser combinadas mediante AND entre si, pero los términos AND específicos
se dedican a términos OR específicos. Las PAL tienen una arquitectura muy popular y son
probablemente el tipo de dispositivo programable por usuario más empleado. Si un
dispositivo contiene macrocélulas, comúnmente tendrá una arquitectura PAL. Las
macrocélulas típicas pueden programarse como entradas, salidas, o entrada / salida (E/S)
usando una habilitación tri-estado. Normalmente tienen registros de salida que pueden
usarse o no conjuntamente con el pin de E/S asociado. Otras macrocélulas tiene más de un
registro, varios tipos de retroalimentación en las matrices, y ocasionalmente realimentación
entre macrocélulas.

“AND” “OR”
PROGRAMABLE FIJO

Figura 2.2 Arquitectura elemental del PAL.

Aprenda PLD’s Principios y Aplicaciones. L. Gerardo Flores R.


28

2.1.4 GAL.
Las GAL son dispositivos de matriz lógica genérica. Están diseñados para emular muchas
PAL pensadas para el uso de macrocélulas. Si un usuario tiene un diseño que se
implementa usando varias PAL comunes, puede configurar varias de las mismas GAL para
emular cada de uno de los otros dispositivos. Esto reducirá el número de dispositivos
diferentes en existencia y aumenta la cantidad comprada. Comúnmente, una cantidad
grande del mismo dispositivo debería rebajar el costo individual del dispositivo. Estos
dispositivos también son eléctricamente borrables, lo que los hace muy útiles para los
ingenieros de diseño.

2.1.5 PLA.
Las PLA son matrices lógicas programables. Estos dispositivos contienen ambos términos
AND y OR programables lo que permite a cualquier término AND alimentar cualquier
término OR. Las PLA probablemente tienen la mayor flexibilidad frente a otros
dispositivos con respecto a la lógica funcional. Normalmente poseen realimentación desde
la matriz OR hacia la matriz AND que puede usarse para implementar máquinas de estado
asíncronas. La mayoría de las máquinas de estado, sin embargo, se implementan como
máquinas síncronas. Con esta perspectiva, los fabricantes crearon un tipo de PLA
denominado Secuencial (Sequencer) que posee registros de realimentación desde la salida
de la matriz OR hacia la matriz AND.

Figura 2.3 Arquitectura


elemental de
un PLA.

Aprenda PLD’s Principios y Aplicaciones. L. Gerardo Flores R.


29

2.1.6 PLDs complejos.


Los PLDs complejos son lo que el nombre implica, Dispositivos Complejos de Lógica
Programable. Se consideran PAL muy grandes que tienen algunas características de las
PLA. La arquitectura básica es muy parecida a la PAL con la capacidad para aumentar la
cantidad de términos AND para cualquier término OR fijo. Esto se puede realizar quitando
términos AND adyacentes o empleando términos AND desde una matriz expandida. Esto
permite que cualquier diseño pueda ser implementado dentro de estos dispositivos.

2.1.7 FPGA.
Las FPGA son Campos de Matrices de Puertas Programables. Simplemente son matrices de
puertas eléctricamente programables que contienen múltiples niveles de lógica. Las FPGA
se caracterizan por altas densidades de puerta, alto rendimiento, un número grande de
entradas y salidas definibles por el usuario, un esquema de interconexión flexible, y un
entorno de diseño similar al de matriz de puertas. No están limitadas a la típica matriz
AND-OR. Por contra, contienen una matriz interna configurable de relojes lógicos (CLBs)
y un anillo de circunvalación de bloques de E/S (IOBs).
Cada CLB contiene lógica programable combinacional y registros de almacenamiento. La
sección de lógica combinacional es capaz de implementar cualquier función booleana de
sus variables de entrada.
Cada IOB puede programarse independientemente para ser una entrada, y salida con
control tri-estado o un pin bidireccional. También contiene flip-flops que pueden usarse
como buffers de entrada y salida. Los recursos de interconexión son una red de líneas que
corren horizontalmente y verticalmente las filas y columnas entre el CLBS.
Los interruptores programables conectan las entradas y salidas de IOBS y CLBS a líneas
cercanas. Las líneas largas recorren la anchura o longitud entera del dispositivo,
estableciendo intercambios para proporcionar una distribución de señales críticas con la
mínima demora o distorsión.
Los diseñadores que usan FPGAs pueden definir funciones lógicas en un circuito y revisar
estas funciones como sea necesario. Así, las FPGAs pueden diseñarse y verificarse en unos
días, a diferencia de las varias semanas necesarias para las matrices de puerta
programables.

Aprenda PLD’s Principios y Aplicaciones. L. Gerardo Flores R.


30

Figura 2.4 Arquitectura elemental de un FPGA.

2.2 Ventajas del uso de PLD’s.

• Reducción de retardos de propagación de las lógicas.


• Reducción del número de puntos de soldadura y de cables o pistas. Con
ello se logra aumentar la confiabilidad.
• Facilidad para cambiar el diseño.
• Menor número de circuitos integrados, y por ende, disminución del
consumo de energía y de las fuentes posibles de ruido y aumento de la
confiabilidad del circuito.
• Menor superficie ocupada en la placa.
• Protección del diseño (fusible de seguridad).
• Su tiempo de propagación ronda los 5 a 10 ns, equivalente al de las
compuertas que puede reemplazar; pero con una sola PLD se pueden

Aprenda PLD’s Principios y Aplicaciones. L. Gerardo Flores R.


31

reemplazar varios niveles o retardos de compuertas.


• Facilidad de diseño y montaje.
• Reducción de la variedad de circuitos integrados usados en el circuito,
disminuyendo su costo de producción seriada.
• Optimización del diseño a bajo costo.

2.3 Limitaciones de las PLD’s.

• Las PAL son OTP, es decir, sólo se pueden programar una vez.
• Su precio es un poco mayor a las compuertas simples o
compuestas.
• No se encuentran comúnmente en tiendas comerciales de
electrónica.
• Dado que el número de minitérminos es limitado, algunas lógicas
necesitarían varios PLD’s para ser implementadas y quizás resulta más
simple y menos costoso implementarla con compuertas.

2.4 Selección del modelo adecuado para cada aplicación.


Características a evaluar:

• Número de entradas.
• Número de salidas.
• Número de líneas de E/S.
• Polaridad de salida.
• Salidas combinacionales.
• Salidas XOR.
• Salidas de registro (R-S, J-K, D ó T ; en general D).
• Salidas TRI-STATE.
• Número de minitérminos.
• Realimentación de salidas.
• Macroceldas.

Aprenda PLD’s Principios y Aplicaciones. L. Gerardo Flores R.


32

2.5 Nomenclatura generalizada de las PLD’s.


Tecnología:
PAL = Programmable Array Logic (TTL)
GAL = Generic Array Logic (E2CMOS)
PL = Factory Programmed PAL
Número de Entradas
Tipo de Salida:
L = Activa Baja
H = Activa Alta
C = Complementaria
P = Polaridad Programada
V = Variable (GAL solamente)
Z = Reprogramable en el sistema (GAL)
Número de Salidas
Velocidad:
Sin símbolo = 35 ns (TTL)
A = 25 ns (TTL)
B = 15 ns (TTL)
D = 10 ns (TTL)
A-10 = 10 ns (GAL)
A-12 = 12 ns (GAL)
A-20 = 20 ns (GAL)
Tipo de Paquete:
N = DIP de Plastico
J = DIP de Cerámica
Rango de Temperatura:
C = Comercial
M = Militar
I = Industrial (GAL solamente).
GAL 16 V 8 D N I

2.6 PALs programables varias veces : serie PALCExxx y GALs.


Las GALs tienen macroceldas programables. Son más caras que las PALs pero pueden
implementar diseños hechos para varios tipos de PALs. No necesitan ser borradas
previamente a su programación y permiten la reprogramación en campo de pruebas. Los
circuitos PALCExxx son PLDs de la compañía Advance Micro Devices (AMD), son
equivalentes a los circuitos GALs de la compañía Lattice. Los PALxxVxx son
reprogramables, donde la compañía Altera tiene EEPLDs (Eléctricamente borrables).

Aprenda PLD’s Principios y Aplicaciones. L. Gerardo Flores R.


33

A continuación se pueden ver tres figuras, que muestran las estructuras de las GAL16V8 y
GAL20V8 y la constitución de sus macroceldas (OLMCs).

Figura 2.5 Estructuras de las GAL16V8 y GAL20V8.

Figura 2.6 Constitución de Macroceldas de salida lógica (OLMCs) de un GAL.

Aprenda PLD’s Principios y Aplicaciones. L. Gerardo Flores R.


34

2.7 Fabricantes de PALs y GALs.

• AMD.
• Altera.
• Atmel.
• Lattice.
• Texas Instruments.
• Xilinx.

2.8 Programación de los PLD´s.

Se necesitan algunos equipos para diseñar y construir circuitos con el empleo de PLD:

• Computadora personal (PC)


• Software para creación y desarrollo de PLD (WinCUPL, ABEL,...,etc)
• Aparato o dispositivo programador (Programador de PLD’s)
• Software para excitar el aparato programador (Software del programador de
PLD’s).
• Dispositivo de lógica programable (PAL, GAL,...,etc.)

En la figura 2.7 se muestra una disposición típica para programación. La PC, en la cual se
corre el software para desarrollo, traduce el diseño de entrada a un archivo llamado
“trazado de fusibles”. Este archivo es como un mapa que muestra cuáles fusibles se deben
fundir para abrirlos en un dispositivo programable y cuáles deben permanecer intactos.
Luego, el trazado de fusibles se traduce a un formato de archivo de salida adecuado para
transmisión al aparato de programación de dispositivos.

En seguida, se llama en la PC al software de programación que se comunica con el aparato


de programación. Esto permite al usuario informar al aparato de programación el tipo de
dispositivo

Aprenda PLD’s Principios y Aplicaciones. L. Gerardo Flores R.


35

que se va a programar. Después se envía el archivo de salida por un cable al programador.


Este proceso se llama carga. Finalmente, se introduce el PLD en la base del aparato
programador y se envía la orden desde la computadora para programar la pieza.

Figura 2.7 Sistema necesario para el desarrollo de un PLD.

Los aparatos para programación suelen tener una base especial que permite dejar caer el
microcircuito y, luego, sujetar los contactos con las terminales. Esta base se llama de fuerza
nula para inserción (ZIF). Muchos fabricantes disponen numerosos programadores
universales que pueden programar casi cualquier tipo de dispositivo, incluso PROM,
EPROM, microcomputadoras de un solo microcircuito y un buen número de PLD.

Afortunadamente, conforme hubieron más piezas programables, los fabricantes sintieron la


necesidad de uniformizar (“estandarizar”) las asignaciones de terminales y los métodos de

Aprenda PLD’s Principios y Aplicaciones. L. Gerardo Flores R.


36

programación. Como resultado, se constituyó el Joint Elearonic Device Engineering


Council (JEDEC). Uno de los resultados fue la norma (“estándar”) JED, un formato normal
para transferir los datos de programación para los PLD, independientes de cualquiera que
fuere el fabricante del dispositivo o el software de programación. También se normalizaron
las asignaciones de terminales, para diversos paquetes de Circuitos Integrados, a fin de
hacer los programadores universales menos complicados. En consecuencia, los aparatos
para programación pueden programar numerosos tipos de PLD. El software que permite al
diseñador especificar una configuración para un PLD, sólo necesita producir un archivo de
salida que cumpla con la norma JEDEC. Luego, este archivo JEDEC se puede cargar en
cualquier programador de PLD compatible con JEDEC, que tenga capacidad para
programar el tipo deseado de PLD.

El proceso de generar un archivo JEDEC para transferir un diseño al aparato programador


de PLD sería muy tedioso si se hiciera a mano. En los últimos 10 años se ha producido
software de desarrollo que permiten al usuario utilizar su diseño en alguna forma
conveniente y, luego, crear en forma automática el archivo JEDEC para el dispositivo
especificado.

Aprenda PLD’s Principios y Aplicaciones. L. Gerardo Flores R.


37

3. COMPILADOR UNIVERSAL PARA LA LOGICA PROGRAMABLE


(WinCUPL).

Hay diferentes instrumentos de software para desarrollar los PLD. Todos tienen semejanzas
compartidas y sus diferencias distintivas. Para los ejemplos que presentaremos más
adelante, utilizaremos uno de los compiladores disponibles de alto nivel de uso más extenso
en la actualidad, se llama WinCUPL, se puede adquirir de la compañía Logical Devices. El
WinCUPL puede producir archivos de programación para una gran variedad de dispositivos
programables.

Este software de desarrollo esta constituido de cuatro módulos diferentes :

WinCUPL .- Es la comunicación con el usuario y cuenta con todas las herramientas de la


compilación.

WinSim.- Simula gráficamente el diseño del usuario para su verificación, antes de


programar el dispositivo programable.

Schematic.- Esta herramienta es usada para crear un diagrama esquemático, muy útil para
el análisis inicial del diseño. Si el diagrama pasa la validación del proceso,
crea un código fuente, el cual deberá ser compilado y simulado.

SMCupl.- Esta es una herramienta para crear diagramas de estado, (máquinas de


estado). Si el proceso de validación es aceptado, se genera un archivo fuente,
que será compilado y simulado después.

Aprenda PLD’s Principios y Aplicaciones. L. Gerardo Flores R.


38

3.1 Flujo de Datos.

En la figura 3.1, se ilustra el flujo de datos para crear un diseño usando WinCUPL.
WinCUPL Schematic SMCupl WinSim

Descripción de las extensiones de los archivos


.PLD Archivo fuente
.SI Archivo simulación
.DOC Archivo documento. Ecuaciones, matriz de fusibles
.LST Archivo con la lista de errores
.MX Archivo macro expansión
.SO Archivo salida del simulador
.ABS Archivo absoluto ( Diseño en forma binaria)
.JED(1) Archivo JEDEC sin vectores
.JED(2) Archivo JEDEC con vectores
.HL Archivo en formato para los PLD’s Signetics
.HEX Archivo ASCII
.PLA Archivo en formato PALASM de Berkeley

Figura 3.1 Flujo de datos del WinCUPL

Aprenda PLD’s Principios y Aplicaciones. L. Gerardo Flores R.


39

3.2 Ciclo de "desarrollo".

El primer paso en cualquier diseño es la definición minuciosa del problema y su alcance. El


resultado de este paso son las etiquetas para todas las entradas y salidas. También se define
la relación entre todas las entradas y salidas y se puede expresar en numerosas formas, tales
como tablas de verdad, tablas de estado, ecuaciones lógicas e incluso diagramas lógicos. El
segundo paso es crear el archivo de entrada o “fuente” en el formato requerido por el
compilador. En seguida, se llama al compilador y se le da el nombre del archivo de entrada.
Con el proceso de compilación se produce un buen número de diferentes archivos de salida.
El archivo de documentación (DOC para el CUPL) contiene cualquier mensaje de error
generado por el compilador. El archivo de trazado de fusibles muestra el patrón real de
fusibles que se fundirán para unirlos en el dispositivo programable. Este archivo también se
puede convenir al archivo JEDEC que utilizará el programa (es decir, el aparato de progra-
mación).
Si el compilador genera cualquier mensaje de error, hay que determinar la causa y
corregirla con el empleo del editor de textos para alterar el archivo de entrada. Este proceso
se repite hasta que ya no hay errores ni advertencias. En este punto, se puede probar el
diseño con el empleo de un simulador; éste es un programa de computadora que calcula los
estados lógicos de salida con base en la descripción del circuito lógico y de las entradas en
curso. Se produce un grupo de entradas hipotéticas que probarán que el dispositivo trabaja
como se espera. Se les llama vectores de prueba. Si estos vectores son lo suficientemente
minuciosos, se puede probar el diseño antes de programar el primer dispositivo. Cuando el
diseñador está convencido que el diseño funcionará, se genera el archivo JEDEC y se llama
al software de programación. El archivo JEDEC sirve como archivo de entrada para el
programador y el PLD se coloca en el aparato programador. Muchos aparatos
programadores también tienen capacidad no sólo de programar la pieza, sino también de
corregir los vectores de prueba en la entrada, mientras que vigila la salida. Con esto se
comprueba que el PLD funcionará a la perfección. Después se coloca el PLD en un circuito
y se prueba su funcionamiento con todos los componentes periféricos. En el diagrama de
flujo de la figura 3.2 se demuestra el proceso completo para el proceso de desarrollo.

Aprenda PLD’s Principios y Aplicaciones. L. Gerardo Flores R.


40

Diseño

Crear archivo fuente

Compilar
Editar archivo
fuente

Sí ¿Hay
errores?

No

Determinar falla Simular


del diseño

Sí ¿Hay
problemas?

No

Crear archivo JEDEC

Programar el PLD

Solución de errores
Prueba en el circuito

No Sí
HECHO
¿Funciona?

Figura 3.2 Diagrama de flujo del ciclo de desarrollo de PLD’s.

Aprenda PLD’s Principios y Aplicaciones. L. Gerardo Flores R.


41

3.3 Medio ambiente del WinCUPL.

Al invocar el WinCUPL nos aparece la pantalla de la figura 3.3, explicaremos en que se


dividen y su funcionamiento.

Comandos de la barra Sección de edición. Menú de comandos de


de herramientas. archivo.

Sección de notificación Sección de archivos


de errores. generados.

Figura 3.3 Pantalla general del WinCUPL.

Aprenda PLD’s Principios y Aplicaciones. L. Gerardo Flores R.


3.3.1 Comandos de la barra de herramientas. 42
Abrir un nuevo archivo.

Abrir un archivo existente.

Salvar archivo.

Imprimir.

Cortar.

Copiar.

Pegar.

Compila dependiendo del dispositivo.

Compila virtualmente.

Simular dependiendo del dispositivo.

Simular virtualmente.

Calculadora de Windows (opcional).

Windows explorer (opcional).

MS-DOS (opcional).

SMCupl (opcional).

Schematic (opcional).

Programador (opcional).

WinSim (opcional).

Editor de macros (opcional).

Invoca SMCupl, Schematic y WinSim (opcional).

Aprenda PLD’s Principios y Aplicaciones. L. Gerardo Flores R.


43

3.3.2 Comandos del menú File:

El menú File ofrece los siguientes comandos:

New Crea un nuevo diseño, proyecto ó archivo texto.

Open Abre un archivo existente.

Close Cierra la ventana activa.

Save Salva el archivo activo.

Save As Salva el archivo activo con un nuevo nombre.

Save All Salva todos los archivos abiertos.

Open Project Abre un proyecto existente.

Close Project Cierra el proyecto.

Import Importa archivo fuente escrito en un lenguaje diferente y lo convierte a


código fuente del CUPL.

Export Exporta código fuente CUPL a otro lenguaje.

Print Setup Envía el documento activo a la impresora seleccionada.

Print Imprime el documento activo.

MRU... Contiene los archivos activos más recientemente usados.

Exit Salir del WinCupl.

Aprenda PLD’s Principios y Aplicaciones. L. Gerardo Flores R.


44

3.3.3 Comandos del menú Edit:

El menú edit es desplegado cuando la ventana activa es un documento. El menú ofrece los
siguientes comandos:

Undo Invierte la última edición del comando o acción del comando.

Cut Borra el texto seleccionado.

Copy Copia el texto seleccionado.

Paste Pega el texto seleccionado.

Find Buscar texto.

Find Next Sigue buscando texto.

Replace Encuentra y remplaza el texto por otro.

Insert CUPL Macro Reference Inserta un macro-referencia del CUPL.

Insert CUPL Macro Definition Inserta un macro-definición del CUPL.

Update Macro Symbol Table Actualiza el macro-símbolo de la tabla a macro-


referencia.

Insert Table Inserta una tabla binaria.

3.3.4 Comandos del menú View:

El menú de comandos View ofrece las siguientes opciones:

Toolbar Presenta o esconde la barra de herramientas.

Status Bar Presenta o esconde la barra de status.

Aprenda PLD’s Principios y Aplicaciones. L. Gerardo Flores R.


45

Project Presenta o esconde la ventana del proyecto al lado derecho del usuario.

Font Cambia el tipo de letra.

Refresh Actualiza los colores y formatos desplegados en el editor.

3.3.5 Comandos del manú Options:

El menú de Options ofrece los siguientes comandos:

Compiler Activar las opciones del compilador CUPL.

Simulator Activar las opciones del simulador.

VHDL Activar las opciones de análisis y compilación del VHDL.

WinCUPL Activar las opciones del medio ambiente del WinCUPL.

3.3.6 Comandos del menú Run:

El menú Run ofrece los siguientes comandos:

Device Dependent Compile Compila dependiendo del dispositivo.

Device Independent Compile Compila virtualmente.

Device Dependent Simulation Simula dependiendo del circuito

Device Independent Simulation Simula virtualmente.

VHDL Compile Compila un archivo VHDL.

VHDL Analysis Corre el análisis de un archivo VHDL.

Aprenda PLD’s Principios y Aplicaciones. L. Gerardo Flores R.


46

3.3.7 Comandos del menú Utilities:

El menú Utilities ofrece los siguientes comandos:

BackPin Corre la utilería BackPin.

PlPartition Configura y corre la utilería PlPartition.

ISP Download Corre la utilería ISP Download.

CUPL Tools Despliega las cuatro herramientas dwl Win CUPL.

3.3.8 Comandos del menú Window:

El menú Window ofrece los siguientes comandos:

Cascade Despliega las ventanas en forma de cascada.

Tile Horizontal Despliega las ventanas horizontalmente.

Tile Vertical Despliega las ventanas verticalmente.

Arrange Icons Despliega íconos de ventanas cerradas.

3.3.9 Comandos del menú Help:

El menú Help ofrece los siguientes comandos:

Contents Ofrece un índice de temas para obtener ayuda.

Search For Help On Despliega el díalogo de búsqueda para temas de ayuda.

About WinCupl Despliega el número de versión para esta aplicación.

Aprenda PLD’s Principios y Aplicaciones. L. Gerardo Flores R.


47

3.4 Elementos del lenguaje.


3.4.1 Variables.
Son cadenas de caracteres alfanuméricos (strings) que especifican los pines del elemento,
nodos internos, constantes, señales de entrada, señales de salida, señales intermedias o
estados de señales.

Las variables pueden iniciar con un número, un carácter alfabético o un subrayado (_), pero
debe contener al menos un carácter alfabético.

Las variables distinguen entre las mayúsculas y las minúsculas.

No se aceptan espacios dentro de un nombre de variable. Use el subrayar para separar


palabras.

Las variables pueden contener hasta 31 caracteres.

Las variables no pueden contener un símbolo reservado del CUPL. (Mas adelante están
listados).

No pueden usarse palabras reservadas del CUPL como nombres de variables.

Todas las palabras introducidas en el archivo fuente deben ser escritas con sintaxis inglesa,
el CUPL no entiende las tildes, la ~, los apóstrofes, la diéresis, etc. No los permite aún en
los comentarios.

3.4.2 Palabras y símbolos reservados.


3.4.2.1 PALABRAS RESERVADAS

APPEND FORMAT PIN


ASSEMBLY FUNCTION PINNODE
ASSY IF PRESENT

Aprenda PLD’s Principios y Aplicaciones. L. Gerardo Flores R.


48

COMPANY JUMP REV


CONDITION LOC REVISION
DATE LOCATION SEQUENCE
DEFAULT MACRO SEQUENCED
DESIGNER MIN SEQUENCEJK
DEVICE NAME SEQUENCERS
ELSE NODE SEQUENCET
FIELD OUT TABLE
FLD PARTNO

3.4.2.2 SÍMBOLOS RESERVADOS.


& + [ /*
* . ] */
: , ¨ /
; $ ! -
@ ( ^ =
# ) '
3.4.3 Comentarios.
Van encerrados entre los símbolos /* y */.

3.4.4 Notación de listas.


La lista es comúnmente usada en la declaración de pines y nodos, campos de bits,
ecuaciones lógicas y operaciones de agrupamiento. El formato es como sigue:

[variable, variable, .., variable]


donde:
[ ] denotan un conjunto de variables.
Ejemplos:
[UP, DOWN, LEFT, RIGHT]
[A0,Al,A2,A3]

Aprenda PLD’s Principios y Aplicaciones. L. Gerardo Flores R.


49

Cuando es un conjunto de variables indicadas secuencialmente se colocan de menor a


mayor peso, así:
[Variable m. .n]
Ejemplo:
[A0..3]
Los ceros a la izquierda del índice serán removidos, es decir:
[A00..03] será leído como [A0, Al, A2, A3] no como [A00, A0l, A02, A03].
La lista [A0. .7] puede escribirse como:
[A0..2, A3, A4, A5..7]

3.4.5 Archivo Plantilla.


Es un archivo que asiste al usuario en la edición del archivo fuente y que se muestra a
continuación:

Name XXXXX;

Partno XXXXX;

Date XX/XX/XX;

Revision XX;

Designer XXXXX;

Company XXXXX;

Assembly XXXXX;

Location XXXXX;

/****************************************************************/

/* */

/* */

/****************************************************************/

/* Allowable Target Device Types: */

/****************************************************************/

Aprenda PLD’s Principios y Aplicaciones. L. Gerardo Flores R.


50

/** Inputs **/

Pin = ; /* */

Pin = ; /* */

Pin = ; /* */

Pin = ; /* */

Pin = ; /* */

/** Outputs **/


Pin = ; /* */

Pin = ; /* */

Pin = ; /* */

Pin = ; /* */

/** Declarations and Intermediate Variable Definitions **/

/** Logic Equations **/

Este archivo contiene las siguientes secciones:


• Información de cabecera : Palabras reservadas acompañadas de XXXs que se
reemplazan con los textos que identificarán el archivo para hacer revisiones
posteriores.

La declaración NAME es muy importante, pues el nombre que se escriba aquí será
el mismo con el que se generarán todos los archivos durante la compilación. (.LST,
.DOC, .JED, etc.).

Un ejemplo del formato de la información de cabecera es el siguiente:


Name CODER
Partno P9000285;

Aprenda PLD’s Principios y Aplicaciones. L. Gerardo Flores R.


51

Revision 02;
Date 10/14/95;
Designer Gerardo Flores;
Company U A de C;
Assembly none;
Location none;
Device P22V10;
Format j;

• Partno : identifica el número de una compañía, (como el NIT).


• Revisión : aumenta su número cada vez que se entra en el archivo.
• Date: se renueva cada vez que se entra en el archivo.
• Designer : nombre del diseñador.
• Assembly : tarjeta PC donde trabajará la PLD programada.
• Location : código de localidad estadounidense. Nosotros la declaramos "none".
• Device : código de la PLD a utilizar.
• Format: formato en el cuál se va a compilar.

El archivo plantilla provee todas las declaraciones excepto DEVICE y FORMAT. Estas son
opcionales de ser declaradas, al fin y al cabo, en el momento de correr CUPL deben
declararse.

Si se deja alguna información sin declarar el CUPL emite un mensaje, pero continúa con la
compilación. No ocurre lo mismo si se utilizan símbolos que indican acento (como tildes),
en este caso se emite el mensaje y la compilación se detiene.

Aprenda PLD’s Principios y Aplicaciones. L. Gerardo Flores R.


52

• Bloque titular: Símbolos de comentarios que encierran un espacio para llenarlo con
la descripción del diseño que se va a implementar y las posibles PLDs que aceptan
tal diseño.

• Declaración de pines: Palabras reservadas y operadores propios del formato de


declaración de pines de entrada y salida. Espacios de comentario para describir las
funciones de cada pin. Las líneas sobrantes de declaración de pin deben ser
removidas, de otra forma se producirá un error de sintaxis en la compilación.

Las líneas /*Input*/ y /*Output*/ son sólo de lectura y no interfieren en la compilación, así
que se pueden declarar los pines como se desee. Esta aclaración se hace por que a veces se
utilizan pines que hacen la función de entrada y salida a la vez y no se debe caer en el error
de declararlos dos veces, pues se causaría un error de compilación.

• Declaraciones y definición de variables intermedias : Espacio para declarar campos


de bits (registros) y para escribir ecuaciones intermedias.

• Ecuaciones lógicas: Espacio para escribir las ecuaciones lógicas que describen el
funcionamiento de la PLD.

3.4.6 Declaración de Pines y Campos.


3.4.6.1 Declaración de pines.
Declarar los pines es definir los nombres de variables que se asignan a los números de pin
que se van a utilizar. Cada elemento en la librería tiene los pines ya numerados.
El formato para declarar un pin es el siguiente:

PIN pinn = [!]var;


donde:
pinn es un número decimal, o una lista de números agrupados usando la notación de listas,
que es:

Aprenda PLD’s Principios y Aplicaciones. L. Gerardo Flores R.


53

[pinn1, pinn2, pinn3,…, pinnn]

! es un signo de admiración opcional que define la polaridad de la señal de entrada ó salida.

= es el operador de asignación

var es un nombre de variable ó una lista de nombres de variables usando la notación de


listas, así:

[var1 ,var2,..,varn]

; es el punto y coma que marca el fin de la declaración.


Algunos ejemplos de declaraciones válidas de pines son:

pin 1 = clock; /*Reloj de registro*/


pin 2 = !enable; /*Habilita I/O de la puerta*/
pin[3,4] = ! [stop,go] /*Control de señales*/
pin[5..7] = [a0..2] I*Direcciona bits 0-2*/

La naturaleza del pin (entrada, salida ó bidireccionamiento) no se especifica en la


declaración de los pines. El compilador infiere la naturaleza del pin durante el proceso
siguiendo la especificación lógica hecha para el nombre de variable de dicho pin. Si la
especificación lógica y las características físicas del integrado son incompatibles, CUPL
exhibe un mensaje de error denotando el uso impropio del pin.

3.4.6.2 Declaración de campos de bits.


Una declaración de campos de bits asigna un nombre de variable a un grupo de bits. El
formato es el siguiente

FIELD var = [var, var, var,..., var];

Aprenda PLD’s Principios y Aplicaciones. L. Gerardo Flores R.


54

donde:
FIELD es una palabra reservada.
var es un nombre válido de variable.
= es el operador de asignación.
; es el punto y coma que marca el fin de la declaración.

La declaración de campos de variables se coloca en la sección de "declaraciones y


definición de variables intermedias" del archivo fuente y provista por el archivo plantilla.

Después de asignado un nombre de variable a un grupo de bits, puede usarse el nombre en


una expresión. La operación especificada en la expresión es aplicada a cada bit en el grupo.

3.4.7 Comandos de Preprocesamiento.


La parte de preprocesamiento de CUPL opera sobre el archivo fuente antes de ser pasado
por el evaluador gramatical y otras secciones del compilador. La siguiente es una lista de
los comandos de preprocesamiento disponibles:
$DEFINE $IFNDEF
$ELSE $INCLUDE
$ENDIF $UNDEF
$IFDEF
El signo pesos es el primer carácter en todos los comandos de preprocesamiento y debe ser
usado en la columna uno de la línea. Se puede escribir el comando en mayúsculas ó en
minúsculas.

$DEFINE.
Este comando reemplaza un string de caracteres por un número, símbolo u otro operador
especificado. El formato es como sigue:

Aprenda PLD’s Principios y Aplicaciones. L. Gerardo Flores R.


55

$DEFINE argumento1 argumento2

$UNDEF.
Este comando cancela una instrucción $DEFINE. El formato es como sigue:

$UNDEF argumento

$INCLUDE.
Este comando incluye un archivo especificado en el archivo fuente para ser procesado por
CUPL. El formato es como sigue:

$INCLUDE archivo

$IFDEF.
Este comando compila condicionalmente secciones de un archivo fuente. El formato es
como sigue:

$IFDEF argumento

$IFNDEF.
Este comando condiciona la compilación de secciones en el archivo fuente. El formato es
como sigue:

$IFNDEF argumento

$ENDIF.
Este comando finaliza una condición de compilación inicializada con los comandos
$IFDEF ó $IFNDEF. El formato es como sigue:

$ENDIF

Aprenda PLD’s Principios y Aplicaciones. L. Gerardo Flores R.


56

$ELSE.
Este comando invierte las condiciones de compilación definidas con los comandos $IFDEF
ó $IFNDEF. El formato es como sigue:

$ELSE
3.4.8 Operadores Lógicos.
CUPL maneja las cuatro operaciones básicas estándar usadas para expresiones booleanas.
La siguiente es una lista de esos operadores en su orden de mayor a menor prioridad en el
paquete.
Operador Ejemplo Descripción
! !A NOT
& A&B AND
# A#B OR
$ A$B XOR

3.4.9 Extensiones.
Se pueden adicionar extensiones a nombres de variables para indicar funciones específicas
asociadas con los nodos internos principales de las PLDs. La siguiente es una lista de las
extensiones soportadas por CUPL. El compilador verifica el uso de la extensión para
determinar si es válida para la PLD especificada.

Extensión Descripción
.D Entrada D de un flip-flop tipo D.
.L Entrada D de un lazo transparente.
.J Entrada J de un flip-flop tipo JK.
.K Entrada K de un flip-flop tipo JK.
.S Entrada S de un flip-flop tipo SR.
.R Entrada R de un flip-flop tipo SR.
.T Entrada T de un flip-flop tipo T.

Aprenda PLD’s Principios y Aplicaciones. L. Gerardo Flores R.


57

.DQ Salida Q de un flip-flop tipo D.


.LQ Salida Q de un lazo transparente.
.AP Preset asíncrono de flip-flop.
.AR Reset asíncrono de flip-flop.
.SP Preset síncrono de flip-flop.
.SR Reset síncrono de flip-flop.
.CK Reloj programable de flip-flop.
.OE Salida de habilitación programable.
.CA Matriz complemento.
.PR Precargado programable.
.CE Entrada CE de un flip-flop tipo D-CE habilitado.
.LE Lazo habilitado programable.
.OBS Observabilidad programable de nodos internos.
.BYP Dirección de registro programable (register bypass).
.DFB Selección de ruta de realimentación de registro D.
.LFB Selección de ruta de realimentación de lazo D.
.TFB Selección de ruta de realimentación de registro T.
.IO Selección de ruta de realimentación de pin.
.INT Selección de ruta de realimentación interna.
.CKMUX Seleccionar como reloj de multiplexor.
.OEMUX Seleccionar tri-estado del multiplexor.
.TEC Selección de fusible dependiendo de la tecnología.

El compilador acepta solamente los flip-flops que físicamente se encuentran internamente


en la PLD especificada. Por ejemplo, el compilador no intentará emular un flip-flop tipo JK
en una PLD que solo acepta registros tipo D.
3.4.10 Expresiones.
Las expresiones son combinaciones de variables y operadores que producen un único
resultado cuando son evaluadas. Una expresión puede estar compuesta de sub-expresiones.
Las expresiones son evaluadas de acuerdo al nivel de prioridad de los operadores
involucrados en ellas. Cuando los operadores en la expresión tienen el mismo nivel de

Aprenda PLD’s Principios y Aplicaciones. L. Gerardo Flores R.


58

prioridad la evaluación se hace de izquierda a derecha. Los paréntesis pueden ser utilizados
para cambiar el orden de la evaluación; la expresión en el interior del paréntesis se evalúa
primero.
La siguiente lista muestra el orden de evaluación de las expresiones:

Expresión Resultado

A#
A#B&C
B&C

A&C

(A#B)&C #

B&C
!A&B !A&B

!(A&B) !A#!B

A#

A#B&C#D
D#

B&C

A#

A#B&(C#D) B&C

B&D

Aprenda PLD’s Principios y Aplicaciones. L. Gerardo Flores R.


59

3.4.11 Ecuaciones Lógicas.


El formato para las ecuaciones lógicas es el siguiente:

[!]var[.ext] = exp;
donde:
var es un nombre de variable ó una lista de nombres de variables usando la notación de
listas. Cuando se usa una lista de variables la expresión es aplicada a cada variable de la
lista.
.ext es una extensión opcional para asignar una función a los nodos principales internos de
una PLD.
exp es una expresión, es decir, una combinación de variables y operadores.
= es el operador de asignación; este asigna el valor de una expresión a una variable ó grupo
de variables.
! es un signo de admiración opcional que define la polaridad de la señal.

El operador complemento puede ser usado para expresar la ecuación en lógica negativa. El
operador se antepone al nombre de variable (sin espacios) y denota que la expresión al lado
derecho de la ecuación será complementada antes de ser asignada a la variable.

Las ecuaciones lógicas se colocan en la sección "Ecuaciones Lógicas" del archivo fuente y
provista por el archivo plantilla.

Las ecuaciones lógicas no están limitadas solamente a variables de pin (ó de nodo), pues
pueden ser escritas para un nombre de variable arbitrario. Una variable definida de esta
manera es una variable intermedia. Utilizando variables intermedias se producen,
generalmente, archivos fuente con mayor facilidad de lectura y comprensión.

Las variables intermedias se colocan en la sección de "declaraciones y definición de


variables intermedias" del archivo fuente y provista por el archivo plantilla.

Aprenda PLD’s Principios y Aplicaciones. L. Gerardo Flores R.


60

4. LOGICA COMBINACIONAL
Hay tres formas de programar el PLD en la lógica combinacional:
- Tabla de verdad.
- Ecuaciones Booleanas.
- Diseño esquemático.

Figura 4.1 Modo de programar el PLD.

Aprenda PLD’s Principios y Aplicaciones. L. Gerardo Flores R.


61

4.1 Ejemplo usando tabla de verdad.


El primer paso para crear un archivo PLD es abrir un nuevo diseño al oprimir del menú File
<New> , como se muestra en la figura 4.2:

Figura 4.2 Pantalla de creación de un nuevo archivo.


La práctica que haremos, es la de detectar el número primo de tres bits, donde A, B, y C
son las entradas y X la salida.
Después de llenar la cabecera de información, donde especificamos las entradas y salidas,
sin pinnodes, nos carga el WinCUPL el editor, como se muestra en la figura 4.3:

Aprenda PLD’s Principios y Aplicaciones. L. Gerardo Flores R.


62

Figura 4.3 Pantalla de edición.

Después en la pantalla de edición se declaran los valores de los pines:


/* ********************** INPUT PINS **************************/
PIN 2 = C ; /*ENTRADA C */
PIN 3 = B ; /*ENTRADA B*/
PIN 4 = A ; /*ENTRADA A*/
/* ********************** OUTPUT PINS ************************/
PIN 12 = X ; /*SALIDA X*/
Para crear la tabla de verdad, seleccionaremos el <Insert Table> del menú Edit, donde
asignaremos las entradas y la salida. El número de columnas van a ser de ocho, debido a
que tenemos tres bits:

Aprenda PLD’s Principios y Aplicaciones. L. Gerardo Flores R.


63

Figura 4.4 Pantalla de inserción de la tabla.

El seteo de la tabla de verdad es dada antes de darle <OK> a la pantalla. Después se inserta
automáticamente a la sección de Edición del archivo fuente.

Después de la inserción de la tabla, hay que definir los campos de entrada y salida usando
el comando <FIELD>, como se muestra a continuación:
FIELD ENTRADAS = [C,B,A];
FIELD SALIDA = [X];

Estos comandos van antes de la tabla de verdad, dándonos la pantalla de la figura 4.5:

Aprenda PLD’s Principios y Aplicaciones. L. Gerardo Flores R.


64

Figura 4.5 Acomodo de las variables y de la tabla de verdad.

Ahora especificaremos las opciones del compilador que se encuentran en el menú


<Options>, en donde se presentan seis opciones más.
Output Files. En esta opción seleccionamos:

Figura 4.6 Pantalla Output Files.

Aprenda PLD’s Principios y Aplicaciones. L. Gerardo Flores R.


65

Mnimization. En esta opción seleccionamos:

Figura 4.7 Pantalla Minimization.

Optimization. En esta opción no hay ninguna selección:

Figura 4.8 Pantalla Optimization.

Device. En esta opción seleccionamos el PLD que vamos ha utilizar. Para este ejemplo y
los siguientes, utilizaremos el GAL16v8, de la compañía LATTICE. Hay que tomar en

Aprenda PLD’s Principios y Aplicaciones. L. Gerardo Flores R.


66

cuenta, que en la cabecera del programa fuente, se define el dispositivo y, debe coincidir
con el dispositivo seleccionado en la opción del compilador.

Figura 4.9 Pantalla Devices.

Library. En esta opción, se da la dirección en donde se encuentra los archivos de la librería


del WinCUPL. Por default, desde la instalación se respeta la misma trayectoria, a menos
que el usuario haya dado otra dirección.

Figura 4.10 Pantalla Library.

Aprenda PLD’s Principios y Aplicaciones. L. Gerardo Flores R.


67

General. En esta opción seleccionamos lo siguiente:

Figura 4.11 Pantalla General.

Después damos clic en <Apply> y luego en <OK>.

Ahora seleccionamos del menú de comandos de archivo la opción <Simulator>. Esta


opción nos da tres alternativas, las tres deben estar seleccionadas:

Figura 4.12 Pantalla de Opciones del simulador.

Ya que están las opciones <Compiler> y <Simulator> , corremos la compilación al dar clic
en el menú de comandos de la barra de herramienta <Compilar dependiendo del
dispositivo>. Si existe algún error se tendrá que volver al archivo fuente y encontrar el o los
errores, hasta lograr que la compilación haya sido exitosa, dándonos la pantalla de la figura
4.13:

Aprenda PLD’s Principios y Aplicaciones. L. Gerardo Flores R.


68

Figura 4.13 Pantalla de los resultados de la compilación.

Una vez logrado la compilación con éxito, se invoca el WinSim, en donde se va ha simular
el programa
fuente. Aquí nos
colocamos en el
menu <File> y
tomamos la
opción <New>,
la cual nos
presenta la
pantalla de la
figura 4.14:

Figura 4.14 Pantalla de cabecera del WinSim.

En esta pantalla damos <clic> en <Design File>, y buscamos el archivo fuente, en nuestro
ejemplo será “NUM_PRIMOS.PLD”, después damos <OK>.

Inmediatamente se nos presenta una pantalla cuadriculada. En esta pantalla hay que agregar
las señales y la cantidad de vectores ha simular.

Para agregar las señales damos <clic> en <Add Signal>, y nos estará preguntando las
señales que deseamos agregar, al terminar damos <Done>.

Aprenda PLD’s Principios y Aplicaciones. L. Gerardo Flores R.


69

Para agregar los vectores damos <clic> en <Add Vector>, aquí daremos los vectores
necesarios para la combinación de las tres variables de entrada, en nuestro caso serán siete.
Después damos la combinación de las variables de entrada con el botón derecho del mouse,
o sea , damos la tabla de verdad. Y por ultimo damos <clic> en <Simulate>. La pantalla
que nos aparece es de la figura 4.15:

Figura 4.15 Pantalla de resultados de la simulación.

Una vez compilado y simulado, en la pantalla general del WinCUPL, en la sección de


archivos generados, debe estar un archivo “NUM_PRIMOS.JED”. Este archivo .JED es el
que se necesita para programar el PLD, en nuestro ejemplo es con un GAL 16v8.

El siguiente paso es usar el software de programación, en donde se le especifica el


dispositivo a utilizar, y por ultimo la carga del archivo .JED al circuito integrado.
Finalmente probar el diseño.

Aprenda PLD’s Principios y Aplicaciones. L. Gerardo Flores R.


70

4.2 Ejemplo usando ecuaciones booleanas.


Para este tipo de desarrollo de programas fuentes, en donde se utilizan ecuaciones
booleanas, antes de iniciar, debemos tener la minimización de la ecuación. Siguiendo con el
mismo ejemplo, el detectar el numero primo de 3 bits, debemos realizar la minimización,
utilizando un mapa de Karnaugh de 3 variables, en donde vaciaremos la salida de la tabla
de verdad, como se muestra en la figura 4.16:

BA
CBA X 00 01 11 10
C
0 0 0 0 0 0 1 1 1
0 0 1 1
0 1 0 1 1 0 1 1 0
0 1 1 1
1 0 0 0
1 0 1 1 X= A+BC
1 1 0 0
1 1 1 1
Figura 4.16 Minimización de la ecuación.

Una vez teniendo la ecuación minimizada, procedemos abrir el programa WinCUPL, en


donde crearemos un nuevo diseño y nuevamente nos va a aparecer la pantalla de cabecera
como se muestra en la figura 4.17. Para este ejemplo el nombre del archivo .PLD, con
ecuaciones es el de Numprim_eq.

Figura 4.17 Pantalla de Cabecera.

Aprenda PLD’s Principios y Aplicaciones. L. Gerardo Flores R.


71

Una vez llenada la cabecera, se le da los valores de entrada-salida. Nuevamente serán tres
entradas y una salida, con cero Pinnodes.
Al terminar de dar estos valores, nos presenta la pantalla de edición como se muestra en la
figura 4.18:

Figura 4.18 Pantalla de Edición.


En esta pantalla en las secciones de entrada y salida daremos las asignaciones de pines y
variables.
/************** INPUTS PINS ****************/
PIN 2 = C ;
PIN 3 = B ;
PIN 4 = A ;
/************** OUTPUTS PINS ****************/
PIN 12 = X ;

Aprenda PLD’s Principios y Aplicaciones. L. Gerardo Flores R.


72

Después de asignar los valores en la sección de entrada y salida, abrimos un nuevo


comentario de ecuaciones lógicas, en donde se escribe la función minimizada obtenida en el
mapa de Karnaugh, como se muestra en seguida:
/************** EQUATIONS LOGICS ****************/
X = A # B & !C ;
Después de haber agregado la ecuación en la sección de edición, nos vamos a la sección
menú de comandos de archivo y seleccionamos <Compiler>, nuevamente nos presenta las
seis opciones donde:
En la pantalla de <Output files> queda igual a la figura 4.6.
En la pantalla de <Minimization> se escoge la opción “None”.
En la pantalla de <Optimization> queda igual a la figura 4.8.
En la pantalla de <Devices> queda igual a la figura 4.9.
En la pantalla de <Library> queda igual a la figura 4.10.
En la pantalla de <General> queda igual a la figura 4.11.
Como se puede ver, la única pantalla que cambia es la de <Minimization>, en donde se
escogió la opción de “None”, esto debido a que nosotros ya realizamos la minimización.

Ahora se escoge de la sección menú de comandos de archivo la opción <Simulator>, en


donde nuevamente se designan las tres opciones, como se ve en la figura 4.12.
Ya estando seleccionadas las opciones Compiler y Simulator se corre la compilación,
dándonos la pantalla de la figura 4.13.
Al darnos la compilación sin errores, se invoca el WinSim, en donde le solicitamos archivo

nuevo, y al presentarnos la pantalla de cabecera del WinSim, en la opción <Design File>, le

damos la trayectoria del archivo fuente “Numprim_eq.pld”, dándonos la pantalla de la

figura 4.19.

Después de tener los datos de cabecera, tenemos que agregar la señales y los vectores.

Nuevamente nos vamos a la opción <Add signal>, en donde agregamos las señales de

entrada y salida, y después nos vamos a la opción <Add vectors>, una vez seteado las

señales de entrada con unos y ceros, se simula, dándonos la pantalla de la figura 4.20.

Aprenda PLD’s Principios y Aplicaciones. L. Gerardo Flores R.


73

Figura 4.19 Pantalla de cabecera del WinSim.

Figura 4.20 Resultados simulados del WinSim.

Al terminar de simular, salvamos y cerramos el archivo simulado en WinSim, después

podemos verificar en la sección de archivos generados del WinCUPL el archivo

“Numprim_eq.jed”, el cual deberá contener los vectores necesarios para programar el GAL

16v8, en nuestro programador de PLD’s.

Aprenda PLD’s Principios y Aplicaciones. L. Gerardo Flores R.


74

4.3 Ejemplo usando el programa esquemático.

Como se comentaba en el inicio de este capítulo, otra forma para generar el archivo JED, es

usando el programa <Schematic>.

En este programa nos proporciona una librería de compuertas lógicas, en donde nosotros

dibujamos el circuito de la ecuación obtenida en el mapa de Karnaugh.

Para este ejemplo, vamos a darle el nombre del programa fuente “Numprim_sh”, el cual se

le agrega al seleccionar en la barra de menú la opción <File> en donde se selecciona

<New>, dándonos la pantalla de la figura 4.21:

Figura 4.21 Pantalla general del programa Schematic.

Aprenda PLD’s Principios y Aplicaciones. L. Gerardo Flores R.


75

En esta pantalla se puede observar, las herramientas para desarrollar el dibujo de la

ecuación lógica, estas herramientas y su descripción, se ve en la figura 4.22.

Figura 4.22 Botones de herramienta.

1 2 3

Botón 1: En este botón se encuentran las librerías de las compuertas a utilizar.


Botón 2: En este botón hacemos la conexión entre las compuertas.
Botón 3: En este botón especificamos las variables de entrada y salida.
Una vez realizado la implementación de la ecuación lógica obtenida del mapa de Karnaugh
se nos presenta la pantalla de la figura 4.23:

Figura 4.23 Implementación lógica de la ecuación de números primos.

Aprenda PLD’s Principios y Aplicaciones. L. Gerardo Flores R.


76

Una vez terminada la implementación lógica se escoge la opción <Compile> y de ahí


seleccionamos <Generate CUPL>, en donde compilará y generará el archivo fuente .PLD
para copiarlo y pegarlo en el programa WinCUPL, en donde se le dará el arreglo necesario
para que funcione con las características del dispositivo PLD que estamos utilizando.
En la figura 4.24 se puede observar al archivo generado por el programa Schematic:

Figura 4.24 Programa fuente generado por el Schematic.

Ahora abrimos el programa WinCUPL con un nuevo diseño con el nombre que le dimos al
programa en Schematic, como se muestra en la figura 4.25.

Aprenda PLD’s Principios y Aplicaciones. L. Gerardo Flores R.


77

Figura 4.25 Pantalla de la cabecera del WinCUPL.

Al darle OK a la pantalla de cabecera del WinCUPL, nos va a preguntar el número de


entradas, salidas y pinnodes, a todos les damos cero.
Al crear la pantalla de edición, nos posicionamos al final de la información de cabecera, y
ahí le damos pegar <Paste>, y se nos presentará el programa fuente generado por el
Schematic, como se muestra en la figura 4.26.

Figura 4.26 Programa fuente generado por Schematic, pegado en WinCUPL.

Aprenda PLD’s Principios y Aplicaciones. L. Gerardo Flores R.


78

En la figura 4.27, se muestra el arreglo necesario que se le hizo a las entradas y salidas,
para que funcione con nuestro dispositivo (GAL 16v8), y además se declaran los pines de
entrada y salida.

Figura 4.27 Programa fuente arreglado.

Al terminar de arreglar el programa fuente se proceden con los pasos antes mencionados en
la sección de ecuaciones booleanas para la compilación y la simulación, dándonos como
resultado la figura 4.28:

Aprenda PLD’s Principios y Aplicaciones. L. Gerardo Flores R.


79

Figura 4.28 Pantalla de los resultados de simulación del programa Numprim_sh


Nuevamente se debe de verificar el archivo Numprim_sh.JED, que tenga los vectores, que
son necesarios para programar nuestro PLD.

Aprenda PLD’s Principios y Aplicaciones. L. Gerardo Flores R.


80

5. LOGICA SECUENCIAL

5.1 La macrocelda lógica de salida (OLMC) del GAL22V10


Una OLMC contiene circuitos lógicos programables, que se pueden configurar como
entrada o salida combinacional, o como salida secuencial. En el modo secuencial, la salida
proviene de un flip-flop. Las OLMCs se configuran internamente de forma automática,
mediante la programación de un conjunto de celdas que están separadas de las celdas de la
matriz lógica.
La Figura 5.1 muestra el diagrama lógico básico de la OLMC de la gal22vl0. Las entradas
de la compuerta OR procedentes de las compuertas AND conectadas a la matriz varían de
diez a dieciséis. La lógica está formada por un flip-flop y dos multiplexores.

De la matriz
programable

A la matriz
programable

Figura 5.1 OLMC del GAL22V10

El multiplexor de 4 a 1, se conecta una de sus cuatro líneas de entrada al buffer de tres esta-
dos de salida en función del estado de las dos entradas de selección, S0 y S1. Las entradas
del multiplexor de 4 a 1, son la salida de la compuerta OR, el complemento de la salida de
la compuerta OR, la salida Q del flip-flop y el complemento de la salida del flip-flop, Q.
Esto permite que la salida de la OLMC sea activa a nivel alto o a nivel bajo, en cada modo.

Aprenda PLD’s Principios y Aplicaciones. L. Gerardo Flores R.


81

El multiplexor de 2 a 1 conecta la salida del buffer triestado o la salida Q del flip-flop a


través de un buffer a la matriz AND, en función del estado de S1. Los bits de selección, S0 y
S1 , para cada OLMC, se programan en un grupo dedicado de celdas de la matriz mediante
el software de compilación, por lo que el usuario no puede manipular directamente estos
bits.
El flip-flop que se utiliza es tipo D disparado por flanco positivo. La entrada de reset asín-
crona (AR) pone al flip-flop en estado 0 lógico (Q = 0) independientemente de la señal de
reloj. La entrada de inicialización síncrona (SP) activa el flip-flop poniéndolo en estado 1
(Q = 1) en el flanco de subida del impulso de reloj. La GAL22V10 tiene términos producto
para las entradas AR y SP. Las cuatro configuraciones de la OLMC son:

• Modo combinacional con salida activa a nivel bajo


• Modo combinacional con salida activa a nivel alto
• Modo secuencial con salida activa a nivel bajo
• Modo secuencial con salida activa a nivel alto

5.2 La OLMC de la GAL16V8


La OLMC de la GALI6V8 es algo diferente de la que dispone la GAL22V10. Una OLMC
de la GAL16V8 se puede programar en tres modos distintos para emular la mayoría de las
PALs existentes, es decir, una GAL16V8 puede reemplazar a la PAL para la que se ha
programado emular. Dispone de dos modos combinacionales, simple y complejo, y un
modo secuencial.

La Figura 5.2 muestra un diagrama lógico básico de la OLMC de la GAL16V8. Cada


OLMC está formada por dos celdas globales, SYN y AC0, que afectan a todas OLMCs.
Existen también dos celdas locales para cada OLMC, AC1(n) y XOR, que sólo afectan a la
OLMC asociada. Las celdas globales y locales sirven para seleccionar varios caminos en la
OLMC y determinar el modo combinacional o secuencial.
El bit SYN y el AC0 controlan el modo de configuración. SYN = 0 y AC0 = 1 establecen el
modo secuencial, y SYN = 1 y AC0 = 0 determinan los modos combinacionales. El bit

Aprenda PLD’s Principios y Aplicaciones. L. Gerardo Flores R.


82

AC1 controla la configuración de entrada/salida. El bit XOR selecciona la polaridad de


salida, activa a nivel bajo (XOR = 0) o activa a nivel alto (XOR = 1).

De la matriz
programable

A la matriz
programable

Figura 5.2 OLMC del GAL16V8

5.3 El modo combinacional

Los modos en la GAL22V10 se determinan mediante S0 y S1, los cuales se controlan por
programación. En el modo combinacional, S1S0= 10 ó S1S0= 11. Las Figuras 5.3 muestra
los caminos lógicos a través de la OLMC para obtener una salida activa a nivel bajo y a
nivel alto, junto con el esquema lógico efectivo de la OLMC, para cada caso. En el modo
combinacional el flip flop no se utiliza.

En la Figura 5.3(a), la inversión del buffer triestado produce una salida activa a nivel bajo.
En la parte (b), la inversión del multiplexor 4 a 1 y la cancelación del buffer de tres estados
dan lugar a la salida activa a nivel alto.

Aprenda PLD’s Principios y Aplicaciones. L. Gerardo Flores R.


83

(a) OLMC en modo


combinacional activo a nivel
bajo y diagrama lógico efectivo.

(b) OLMC en modo


combinacional activo a nivel
alto y diagrama lógico efectivo.

Figura 5.3 Modo combinacional para salidas activas a nivel bajo y a nivel alto. Las
líneas gruesas indican los caminos lógicos para cada caso

5.4 El modo secuencial


En el modo secuencial, S1S0 = 00 ó S1S0 = 01. Las Figuras 5.4 muestra los caminos lógicos
a través de la OLMC que proporcionan salidas secuenciales activas a nivel alto, junto con la
lógica efectiva de la OLMC para cada caso. En la parte (a), la inversión del buffer de tres

Aprenda PLD’s Principios y Aplicaciones. L. Gerardo Flores R.


84

estados produce una salida activa a nivel bajo. En la parte (b), la inversión del flip-flop
(salida Q) y la cancelación del buffer de tres estados, dan lugar a una salida activa a nivel
alto. Observe que la realimentación a la matriz AND a través de un buffer se realiza a partir
de la salida Q del flip-flop y no del pin de salida como en el caso del modo combinacional,
por lo que una salida secuencial no puede utilizarse como entrada.

(a) OLMC en modo secuencial activo


a nivel bajo y diagrama lógico
efectivo.

(b) OLMC en modo secuencial activo


a nivel alto y diagrama lógico
efectivo.

Figura 5.4 Modo secuencial para salidas activas a nivel bajo y a nivel alto. Las líneas
gruesas indican los caminos lógicos para cada caso.

Aprenda PLD’s Principios y Aplicaciones. L. Gerardo Flores R.


85

5.5 Tipos de máquinas de estados


Los circuitos lógicos secuenciales se pueden clasificar dentro de la categoría de circuitos
conocidos como máquinas de estados, de las que existen dos tipos básicos. En la máquina
de estados de Moore que se muestra en la Figura 5.5 (a), la salida depende sólo del estado
interno y de cualquier entrada sincronizada con el circuito. Ejemplos de las máquinas
estados de tipo Moore son los contadores, en las que los flip-flops son los elementos de
memoria.
En la máquina de estado Mealy, las salidas vienen determinadas por el estado interno y por
entradas que no están sincronizadas con el circuito, como se indica en la Figura 5.5 (b).

Figura 5.5 Diagramas de bloques generales para los dos tipos de máquinas de estado.

5.6 Ejemplo
Especificaciones del problema:
Los semáforos que controlan el tráfico en la intersección de dos calles utilizan un sistema
digital de control (CT), cuya tarea es la encender y apagar los semáforos en una secuencia

Aprenda PLD’s Principios y Aplicaciones. L. Gerardo Flores R.


86

que responda al flujo de vehículos y peatones. Consideraremos un ejemplo simplificado, en


el que una calle norte-sur (NS) cruza una calle de la misma magnitud que corre de este a
oeste (EO), como se muestra en la figura 5.6. Las únicas entradas a la unidad de control son
las señales de un conjunto de botones marcados con la palabra CAMINE, que aprietan los
peatones que desean cruzar la calle. Si no hay peatones, los semáforos permiten que el
tráfico de NS fluya durante un minuto; es decir, están en verde en la dirección NS y en rojo
en la dirección EO. Después, las luces cambian automáticamente para permitir que el
tráfico EO fluya durante un minuto. De esta manera, las luces verdes alternan entre las
direcciones NS y EO a intervalos de un minuto. Sin embargo, si un peatón aprieta un botón
marcado con CAMINE, todos los semáforos pasan a rojo durante un minuto, para permitir
que los peatones crucen cualquier calle. A fin de que el problema no sea demasiado grande,
ignoraremos las luces de advertencia amarillas ó ámbar que son parte vital de un sistema
real de control de tráfico.

Figura 5.6 Distribución física del problema de control de semáforos.

Los botones peatonales se representarán colectivamente con una sola variable binaria x. La
señal x = 1 indica a CT que se ha apretado un botón peatonal y x = 0 indica que no se ha
apretado dicho botón. Supondremos que CT tiene dos señales de salida primarias: z1 para
que el semáforo esté en verde (z1 = 1) o en rojo (z1 = 0) en la dirección EO y z2 para que el

Aprenda PLD’s Principios y Aplicaciones. L. Gerardo Flores R.


87

semáforo esté en verde (z2 = 1) o en rojo (z2 = 0) en la dirección NS. De esta manera, la
condición de todos los semáforos en rojo, cuando pueden cruzar los peatones, se indica con
z1 = z2 = 0. Como el periodo mínimo que estará un semáforo en rojo o en verde es un
minuto, escogemos este lapso como el periodo del reloj que sincroniza a CT.
En la figura 5.7 (a) se muestra el diagrama de transición de estados, y la tabla de transición
de estados en la figura 5.7 (b). En dichas figuras se muestra el comportamiento del circuito,
indicando su estado presente y su estado siguiente, así como su salida.

(a) (b)
Figura 5.7 Comportamiento del circuito.
Para poder representar los estados, se le debe asignar variables booleanas, como son cuatro
estados, es necesario utilizar dos bits para dicha representación (B y A). De esta manera
obtenemos:

B A
S0 es representado en binario por = 0 0
S1 es representado en binario por = 0 1
S2 es representado en binario por = 1 0
S3 es representado en binario por = 1 1

Por lo tanto, la tabla de estados de la figura 5.7(b), sustituyendo con los valores boléanos
obtenidos con las variables A y B, nos da la tabla de la figura 5.8.

Aprenda PLD’s Principios y Aplicaciones. L. Gerardo Flores R.


88

Estados Estados Salidas Flip-Flop’s a utilizar


Presente Siguiente
XBA B+ A+ Z2 Z1 DB DA
0 0 0 0 1 0 1 0 1
0 0 1 0 0 1 0 0 0
0 1 0 0 1 0 0 0 1 Figura 5.8 Tabla
0 1 1 0 0 0 0 0 0 con valores booleanos.
1 0 0 1 0 0 1 1 0
1 0 1 1 1 1 0 1 1
1 1 0 0 1 0 0 0 1
1 1 1 0 0 0 0 0 0

Al tener la tabla de la figura 5.8 , podemos implementar el diseño de las siguientes dos
maneras:
• Utilizando la secuencia de los estados, ó
• Utilizando las ecuaciones minimizadas de los flip-flop’s, de las salidas y de
los estados siguientes.
Nosotros vamos hacer las dos implementaciones, por lo tanto, en el WinSim nos debe de
dar la mismas señales de salida, en esta practica utilizaremos el GAL16v8.

5.6.1 Implementación utilizando la secuencia de estados.

Abrimos el WinCUPL y seleccionamos un nuevo diseño, llenamos los datos de cabecera,


los pines de entrada, los pines de salida y los pinnodes, estos últimos serán cero.
Hay que tomar en cuenta en los pines de entrada el pin 1, que es la entrada del pulso de
reloj, y también el pin 11, que es el habilitador de las salidas de los flip-flop’s tipo “D” que
usa el GAL16v8. Y, como salidas, tendremos las Z2 y Z1, estas salidas, será necesario
minimizarlas con mapa de Karnaugh ( figura 5.9 ), e incluir las funciones obtenidas en el
final del programa fuente, las salidas de los flip-flop’s B y A, solamente se mencionan en la
sección de salidas, para tomar referencia en la sección de secuencia, por lo tanto,
obtendremos el programa fuente de la figura 5.10.

Aprenda PLD’s Principios y Aplicaciones. L. Gerardo Flores R.


89

BA BA
x 00 01 11 10 x 00 01 11 10
0 1 0 0 0 0 0 1 0 0
1 1 0 0 0 1 0 1 0 0

Z1= Ā B Z2= A B
Figura 5.9 Minimización por mapa de las salidas Z1 y Z2.

Figura 5.10 Programa fuente en WinCUPL, usando la secuencia de estados.

Para compilar, damos las mismas opciones mostradas en las figuras 4.6, 4.7, 4.8, 4.9, 4.10,
4.11 y 4.12 . Al no encontrar errores en la compilación, invocamos el simulador, damos de
alta las señales de entrada y salida, agregamos los vectores. Hay que poner la señal de pulso

Aprenda PLD’s Principios y Aplicaciones. L. Gerardo Flores R.


90

de reloj en “clk” y la señal de “!oe” debe estar en cero. Al probar la simulación, nos da la
figura 5.11.

Figura 5.11 Resultado de la simulación.

Podemos observar la señal de control “x”, que, cuando vale cero, los semáforos (Z1 y Z2),
están intercalando sus valores. Pero cuando “x” vale uno, los semáforos duran un ciclo en
rojo ambos, dando el permiso al peatón a que cruce la calle.

Aprenda PLD’s Principios y Aplicaciones. L. Gerardo Flores R.


91

5.6.2 Implementación usando ecuaciones minimizadas.


En la implementación con ecuaciones, es necesario minimizar las salidas de los flip-flop’s
“D”, en este caso DA y DB de la figura 5.8, que es nuestra tabla de transición de estados.
Las salidas Z1 y Z2 ya tenemos las ecuaciones (figura 5.9). La minimización de los flip-
flop’s, se puede ver en la figura 5.12.

BA BA
X 00 01 11 10 X 00 10 11 10

0 1 0 0 1 0 0 0 0
0
0 1 0 1 1 1 0 0
1 1

DA = A B + A X + A B X DB = B X

Figura 5.12 Minimización de las salidas de los flip-flop’s “D”.

Al tener las ecuaciones, abrimos el WinCUPL, llenamos la cabecera, los pines de estrada y
de salida, de igual forma, damos cero a pinnodes.
Hay que tomar en consideración, que para indicar salida de flip-flop tipo “D”, es necesario
agregar la extensión .D, esto se muestra en el programa fuente, en la sección de ecuaciones
lógicas, como se muestra en la figura 5.13 .

Al momento de compilar, en las opciones de minimización, se escoge “None”, debido a que


ya fue minimizado por nosotros con los mapas de Karnaugh.

Como se puede observar en la figura 5.14, los resultados de la simulación, es igual a las
señales de la figura 5.11, que fue con secuencia de estados.

Aprenda PLD’s Principios y Aplicaciones. L. Gerardo Flores R.


92

Figura 5.13 Programa fuente, utilizando ecuaciones lógicas.

Figura 5.14 Resultado de la simulación.

Aprenda PLD’s Principios y Aplicaciones. L. Gerardo Flores R.


93

Bibliografía

Digital designing with programmable logic devices.


John W. Carter.
Prentice Hall (1997).

CUPL, Referece and Applications.


Logical Devices, Inc (1995).

CUPL, WinCUPL and Compiler, Users Guide.


Logical Devices, Inc. (1998).

Digital desiging with CPLD Applications and VHDL.


Robert K. Dueck.
Delmar (2001).

A VHDL Primer.
J. Bhasker.
Prentice Hall (1999).

Digital Systems, Principles and Applications. (Eigth Edition).


Ronald J. Tocci, Neal S. Winmer.
Prentice Hall (2001).

VHDL, Lenguaje para síntesis y modelado de circuitos.


Fernando Pardo, José A. Boluda.
Alfaomega (2000).

Fundamentos de Sistemas Digitales.


T.L. Floyd.
Prentice Hall (1997).

Introducción al Diseño Lógico Digital.


John P. Hayes.
Addison Wesley (1996).

Diseño digital, principios y practicas.


John F. Wakerly.
Prentice Hall (1992).

Análisis y Diseño de circuitos lógicos digitales.


Victor P. Nelson, H. Troy Nagle, Bill D. Carrol, J. David Irwin.
Prentice Hall (1996).

Aprenda PLD’s Principios y Aplicaciones. L. Gerardo Flores R.


94

Abreviaturas

ASIC (Application Specific Integrated Circuits). Circuitos Integrados de


Aplicación Específica.
BIT (Binary digIT). Digito Binario.
CI (Integrated Circuit “IC”). Circuito Integrado.
CLB (Configurable Logic Block). Bloque Lógico Configurable.
CLK (Clok). Pulso de Reloj.
CMOS (Complementary Metal Oxide Semiconductor). Semiconductor de Oxido de
Metal Complementado.
CPLD (Complex Programmable Logic Device). Dispositivo Lógico Programable
Complejo.
E/S (Input/Output “I/O”). Entrada y Salida.
EEPLD (Elctrically Erasable Programmable Logic Device). Dispositivo Lógico
Programable Eléctricamente Borrable.
EEPROM (Electrically Erasable Programmable Read Only Memory). Memoria
Programable de Solo Lectura Electricamente Borrable.
EPROM (Erase Programmable Read Only Memory). Memoria Programable de Solo
Lectura Borrable.
FPGA (Field Programmable Gate Array). Campos de Arreglos de Compuertas
Programables.
GAL (Generic Array Logic). Arreglo Lógico Genérico.
I/O (Input/Output). Entrada y Salida.
IOB (Input Output Block). Bloque de Entrada y Salida.
JEDEC (Joint Electronic Device Engineering Council).
NS (Nano segundo). Notación científica de 10-9 segundos.
OE (Output Enable). Habilitar Salida.
OLMC (Output Logic Macro Cell). Macro Celda de Salida Lógica.
PAL (Programmable Array Logic). Lógica de Arreglo Programable.

Aprenda PLD’s Principios y Aplicaciones. L. Gerardo Flores R.


95

PC (Personal Computer). Computadora Personal.


PLA (Programmable Logic Array). Arreglo Lógico Programable.
PLD (Programmable Logic Device). Dispositivo Lógico Programable.
PROM (Programmable Read Only Memory). Memoria de Solo Lectura
Programable.
TTL (Transistor Transistor Logic). Logica Transistor Transistor.
WinCUPL (Windows Compiler Universal Programmable Logic). Compilador Universal
de Lógica Programable bajo el sistema Windows.
WinSim (Windows Simulator). Simulador bajo Windows.

Aprenda PLD’s Principios y Aplicaciones. L. Gerardo Flores R.


96

Glosario

& Cuando se emplea dentro de un símbolo IEEE/ ANSI, indica una función AND o
una compuerta AND.

+ Cuando se emplea dentro de un símbolo IEEE/ ANSI sobre la entrada de reloj,


indica que el contenido del contador se incrementará en uno con cada pulso de reloj.

- Cuando se emplea dentro de un símbolo IEEE/ ANSI y sobre la entrada del reloj,
señala que el contador será reducido en uno cuando aparezca la entrada de reloj.

→ Al emplearse en la etiqueta de una entrada dentro de un símbolo IEEE/ ANSI,


indica que cuando se presente una transición activa en la entrada, esto da como
resultado una operación de corrimiento hacia la derecha.

/ Cuando se emplea un símbolo IEEE/ ANSI como etiqueta de una salida, señala la
separación de dos funciones.

Acarreo del contador de rizo Véase propagación del acarreo.

Acarreo Dígito o bit que se genera cuando se suman dos números y el resultado es mayor
que la base del sistema numérico empleado para efectuar la operación.

Actuador Dispositivo controlado eléctricamente que controla una variable física.

Acumulador Registro principal de una unidad aritmética-lógica (ALU).

ADC de aproximaciones sucesivas Tipo de convertidor analógico-digital en el que se


utilizan un registro paralelo interno y una lógica compleja para llevar a cabo la
conversión. El tiempo de conversión para este tipo de convertidor siempre es el
mismo, sin importar cuál sea el valor de la señal de entrada analógica.

ADC de destello (flash) Tipo de convertidor analógico-digital que tiene la mayor


velocidad de conversión disponible en la actualidad.

ADC de rampa digital Tipo de convertidor analógico-digital en el que se genera


internamente una onda que tiene la forma de una escalera y la cual se emplea para
llevar a cabo la conversión. El tiempo de conversión para este tipo de convertidor
analógico-digital varía y esto depende del valor de la señal analógica de entrada.

ADC de rampa digital ascendente / descendente Tipo de convertidor analógico digital


que emplea un contador ascendente descendente para aumentar o disminuir el

Aprenda PLD’s Principios y Aplicaciones. L. Gerardo Flores R.


97

voltaje a la salida del convertidor digital analógico hasta que éste intersecte el valor
de la entrada analógica.

ADC de voltaje a frecuencia Tipo de convertidor analógico digital que convierte el


voltaje analógico en un tren de pulsos de frecuencia variable los cuales son contados
para producir una salida digital.

Adendo Número que se va a sumar a otro.

Adquisición de datos Proceso mediante el cual una computadora adquiere datos


analógicos digitalizados.

Agrupamiento Combinación de celdas adyacentes en un mapa de Karnaugh que contienen


unos, con la finalidad de simplificar una expresión que tiene la forma de una suma
de productos.

Álgebra booleana Proceso algebraico utilizado como herramienta para el análisis y diseño
de sistemas digitales. En el álgebra booleana sólo son posibles dos valores: “0” y
“1”.

Almacenamiento secundario Lugar para guardar grandes cantidades de datos. No forma


parte de la memoria interna de la computadora.

AND alambrado Término empleado para describir la función lógica creada cuando se
conectan entre sí dos salidas de colector abierto.

Arreglo lógico programable (PLA) Clase de dispositivos lógicos programables. Los


arreglos AND y OR son programables. También recibe el nombre de arreglo lógico
de campo programable (FPLA).

Asegurado Término utilizado para describir el estado de una señal lógica; sinónimo de
"activo".

BCD/DEC Cuando se emplea dentro de un símbolo IEEE/ANSI, señala una función de


decodificación BCD a decimal.

BIN/OCT Cuando se emplea dentro de un símbolo IEEE/ANSI, indica una función de


decodificación de binario a octal.

Bit Dígito del sistema binario de numeración.

Bit de paridad Bit adicional que acompaña a cada grupo de un código, de forma tal que el
número de unos que se transmite sea siempre par (o impar).

Bit de signo Bit que se añade a la posición extrema izquierda de un número binario para
indicar si éste representa una cantidad positiva o negativa.

Aprenda PLD’s Principios y Aplicaciones. L. Gerardo Flores R.


98

Bit más significativo (MSB) Bit que se encuentra en el extremo izquierdo (mayor peso) de
una cantidad expresada en binario.

Bit menos significativo (LSB) Bit que se encuentra en el extremo derecho (peso más
pequeño) de una cantidad expresada en binario.

Bloque común de control Símbolo empleado por el estándar IEEE/ANSI para describir
situaciones donde una o más entradas son comunes a más de uno de los circuitos
que constituyen el CI.

BORRAR Entrada asíncrona de un FF utilizada para hacer de manera inmediata Q = 0.

Byte Palabra de ocho bits.

C Cuando se emplea como etiqueta de entrada dentro de un símbolo IEEE/ANSI, éste


señala que la entrada controla la forma en que los datos ingresan al elemento de
almacenamiento.

Canal de control Conjunto de líneas de señal que se emplean para sincronizar las
actividades del CPU y los demás elementos.

Canal de datos Líneas bidireccionales que llevan los datos entre el CPU y la memoria, ó
entre el CPU y los dispositivos de E/S.

Canal de direcciones Líneas unidireccionales que llevan la dirección desde el CPU hacia
la memoria y los dispositivos de E/S.

Canal (bus) flotante Cuando todas las salidas conectadas al canal (BUS) de datos están en
su estado de alta impedancia.

Capacidad Cantidad de espacio de almacenamiento en una memoria expresada como un


número de bits o de palabras.

CAS antes de RAS Método para refrescar una memoria RAM dinámica que tenga
contadores de refresco internos. Cuando la entrada CAS es llevada a "bajo" y se
mantiene ahí mientras la señal RAS es pulsada a "bajo", una operación interna de
refresco se realiza en la dirección de la fila dada por el contador de refresco interno.

Celda de memoria Dispositivo que guarda un sólo bit.

CI bipolar Categoría de circuitos digitales integrados en que los principales elementos de


circuito son transistores NPN y PNP.

CI unipolar Circuitos digitales integrados en los que el principal elemento de circuito son
los transistores unipolares de efecto de campo (MOSFET)

Aprenda PLD’s Principios y Aplicaciones. L. Gerardo Flores R.


99

Ciclo de ejecución Periodo durante el que la unidad de control de una computadora


obtiene de la memoria los códigos de instrucción.

Circuito de muestreo y retención Tipo de circuito que emplea una amplificador de


aislamiento con ganancia unitaria en conjunción con un capacitor con el objeto de
lograr un proceso de conversión analógico-digital más estable.

Circuito lógico Cualquier circuito que se comporta de acuerdo con un conjunto de reglas
lógico.

Circuito NOR exclusivo Circuito lógico con dos entradas que produce una salida ALTO
sólo cuando las entradas son iguales.

Circuito NOT Véase INVERSOR.

Circuito OR exclusivo Circuito lógico con dos entradas que produce una salida ALTO
sólo cuando las entradas son diferentes.

Circuitos de inhibición Circuitos lógicos que controlan el paso de una señal de entrada
hacia la salida.

Circuitos digitales integrados Circuitos digitales en un solo encapsulado que han sido
fabricados mediante el uso de varias tecnologías para la fabricación de circuitos
integrados.

Circuitos lógicos combinatorios Circuitos construidos con combinaciones de compuertas


lógicas, sin ninguna retroalimentación de las salidas hacia las entradas.

Círculos (inversores) pequeños símbolos que aparecen sobre las líneas de entrada o salida
de los símbolos de circuito lógico y que representan la inversión de una señal en
particular. Si el círculo está presente, se dice entonces que la entrada o salida es
activa en BAJO.

CMOS (semiconductor metal-óxido complementario) Tecnología de circuito integrado


que emplea transistores MOSFET como elemento principal de circuito. Esta familia
lógica pertenece a la categoría de CI digitales unipolares.

Codificador Circuito digital que produce un código de salida que depende de cuál de las
entradas se encuentre activa.

Codificador de 3 a 8 líneas Circuito digital que genera un código de tres bits que depende
de cuál de las líneas de entrada esté activada.

Aprenda PLD’s Principios y Aplicaciones. L. Gerardo Flores R.


100

Codificador de prioridad Tipo especial de codificador que detecta cuando dos o más
entradas son activadas al mismo tiempo y genera un código que corresponde a la
entrada con mayor prioridad.

Codificador octal a binario Véase codificador de 8 a 3 líneas.

Código ASCII (American Standard Code for Information Interchange, Código Americano
estándar para el intercambio de información) Código alfanumérico de siete bits
empleado por la mayoría de los fabricantes de computadoras.

Código binario puro Representación de un numero decimal mediante su equivalente


binario.

Código de operación Parte de una instrucción de computadora que define el tipo de


operación que ésta debe ejecutar sobre un dato específico.

Código decimal codificado en binario (código BCD) Código de cuatro bits empleado
para representar cada dígito de un número decimal mediante su equivalente binario
de cuatro bits.

Código Gray Código en el que nunca cambia más que un sólo bit al ir de un valor al
siguiente.

Códigos alfanuméricos Códigos que representan números, letras, signos de puntuación y


caracteres especiales.

Colisión de la cabeza Contacto entre una cabeza de L/E y la superficie de un disco duro
que daña la superficie de éste.

Comparador de magnitud Circuito digital que compara dos cantidades binarias de entrada
y que genera como salida un indicador que señala si las entradas son iguales; si no
lo son entonces la salida indica cuál es la mayor.

Compatible eléctricamente Cuando dos CI de diferentes series lógicas se pueden conectar


directamente sin tomar ninguna medida especial para asegurar en forma apropiada
su operación.

Compatible en terminal (pin) Cuando las terminales de dos diferentes CI tienen la misma
función.

Complemento Véase Inversión.

Compuerta NAND Circuito digital que lleva a cabo la operación AND seguida por un
INVERSOR. La salida de una compuerta NAND es BAJO (nivel lógico 0) sólo si
todas las entradas son ALTO (nivel lógico 1).

Aprenda PLD’s Principios y Aplicaciones. L. Gerardo Flores R.


101

Compuerta NOR Circuito lógico que opera como una compuerta OR seguida por un
INVERSOR. la salida de una compuerta NOR es BAJO (nivel lógico 0) si
cualquiera o todas las entradas son ALTO (nivel lógico 1).

Compuerta OR Circuito digital que realiza la operación OR. La salida de este circuito es
ALTO (nivel lógico 1) si cualquiera de sus entradas se encuentra en ALTO.

Computadora digital Sistema de circuitos (hardware) que realiza operaciones aritméticas


y lógicas, maneja datos y toma decisiones.

Conmutación Proceso de cambio de un estado binario hacia otro.

Contador ascendente Contador que cuenta desde cero hasta un máximo.

Contador asíncrono Tipo de contador en el que la salida de cada flip-flop sirve como la
entrada de reloj del siguiente que se encuentra en la cadena.

Contador BCD Contador binario que cuenta desde 00002 hasta 10012 antes de volver a
comenzar en el conteo con 00002.

Contador binario Grupo de flip-flops conectados en una configuración especial en la que


los estados de los flip-flops representan el número binario equivalente al número de
pulsos que se ha presentado en la entrada del contador.

Contador de anillo Registro de corrimiento en el que la salida del último flip-flop está
conectada a la entrada del primero.

Contador de décadas Cualquier contador que es capaz de pasar por diez estados lógicos
diferentes.

Contador de frecuencia Circuito que puede medir y presentar visualmente la frecuencia de


una señal.

Contador de programa (PC) Registro del CPU que guarda la dirección donde se
encuentra la siguiente instrucción.

Contador de refresco Contador que mantiene el rastro de las direcciones de fila durante la
operación de refresco a una DRAM.

Contador de rizo Véase Contador asíncrono.

Contador descendente Contador que cuenta en forma descendente desde un máximo hasta
cero.

Contador Johnson Registro de corrimiento en el que se invierte la salida del último flip-
flop y se conecta a la entrada del primero.

Aprenda PLD’s Principios y Aplicaciones. L. Gerardo Flores R.


102

Contador multietapa Contador en el cual varias etapas están interconectadas, de modo


que la salida de una etapa sirve como señal de reloj a la entrada de la siguiente, con
lo que se obtiene un mayor rango de división de frecuencia.

Contador paralelo Véase contador síncrono.

Contador preiniciable Contador que se puede preiniciar en cualquier valor inicial ya sea
de manera síncrona o asíncrona.

Contador síncrono Contador en el que todos los flip flops están sincronizados
simultáneamente por un reloj.

Contienda por el canal Situación en que las salidas de dos o más dispositivos activos son
colocadas en la misma línea del canal y al mismo tiempo.

Controlador de DRAM CI empleado para manejar las operaciones de regeneración y


multiplexado que son necesarias en los sistemas DRAM.

Conversión de paralelo a serial Proceso por el que todos los bits de datos se presentan
simultáneamente en la entrada del circuito y entonces son trasmitidos hacia la salida
de éste uno a la vez.

Convertidor analógico-digital de doble pendiente Tipo de convertidor analógico-digital


que carga linealmente un capacitor a partir de una corriente que es proporcional a
VA durante un intervalo fijo de tiempo, después de lo cual incrementa un contador a
medida que el capacitor se descarga linealmente hasta llegar a cero.

Convertidor analógico-digital (ADC) Circuito que convierte una entrada analógica en su


correspondiente salida digital.

Convertidor digital-analógico (DAC) Circuito que convierte una entrada digital en una
salida analógica.

Corrimiento de reloj Llegada de una señal de reloj a las entradas de reloj de diferentes
flip-flops en distintos tiempos como consecuencia de los retardos de propagación.

Convertidor de nivel de voltaje Circuito que toma un conjunto de niveles de voltaje de


entrada y lo convierte a otros niveles diferentes en su salida.

Cosumando Número que se suma al sumando.

CT = 0 Cuando se emplea en la etiqueta de una entrada dentro de un símbolo IEEE/ANSI,


señala que el contenido del contador será borrado cuando la entrada vaya hacia su
estado activo.

Aprenda PLD’s Principios y Aplicaciones. L. Gerardo Flores R.


103

CTR Cuando aparece dentro de un símbolo IEEE/ ANSI, la etiqueta indica que el CI es un
contador.

D Cuando se emplea dentro de un símbolo IEEE/ ANSI, la etiqueta indica "dato"

DAC bipolar Convertidor digital-analógico que acepta como entrada números binarios con
signo y produce como salida el correspondiente valor analógico positivo y negativo.

DAC con red escalera R/2R Tipo de convertidor digital analógico cuyos valores de
resistencia interna abarcan sólo rangos de 2 a 1.

Decodificador Circuito digital que convierte un código binario de entrada en su


correspondiente salida numérica.

Decodificador activo en ALTO (BAJO) Decodificador que produce un estado lógico


ALTO (BAJO) en la salida cuando se presenta una detección.

Decodificador BCD a decimal Decodificador que convierte una entrada BCD en una
salida decimal equivalente.

Decodificador de 1 a 10 Véase Decodificador de BCD a decimal.

Decodificador de 4 a 10 Véase Decodificador de BCD a decimal.

Decodificador/manejador de BCD a siete segmentos Circuito digital que toma una


entrada BCD de cuatro bits y activa las salidas requeridas para presentar el dígito
decimal equivalente sobre un dispositivo de visualización de siete segmentos.

Demultiplexor (DEMUX) Circuito lógico que, dependiendo del estado de sus entradas de
selección, canaliza los datos que están en su entrada hacia una de las varias salidas.

Desacoplamiento de la fuente de alimentación Conexión de un pequeño capacitor de RF


entre tierra y VCC, cerca de cada circuito TTL que se encuentra sobre la tarjeta de
circuito impreso.

Detector de flanco Circuito que produce espigas positivas de corta duración cuya aparición
coincide con la transición activa del reloj.

Desborde de la capacidad máxima de representación (overflow) Se presenta cuando al


sumar números binarios con signo, se genera un acarreo de 1, proveniente de la
posición MSB del número hacia la posición correspondiente al bit del signo.

Diagrama de tiempos Ilustración de los niveles lógicos en función del tiempo.

Digitalización Proceso mediante el que una señal analógica es convertida en un dato


digital.

Aprenda PLD’s Principios y Aplicaciones. L. Gerardo Flores R.


104

Dígito binario Bit.

Dígito más significativo (MSD) Dígito que tiene el mayor peso en un número en
particular.

Dígito menos significativo (LSD) Dígito que tiene el menor peso en un número en
particular.

DIP Encapsulado de doble línea. Es el tipo más común de encapsulado para CI.

Dirección Número que identifica de manera única la ubicación de una palabra en la


memoria.

Dirección del operando Dirección de memoria donde se encuentra o va a guardarse un


operando.

Disco duro Disco rígido de metal utilizado para almacenamiento secundario.

Disparado por flanco Forma en la que se activa un flip-flop mediante la transición de una
señal. Un flip-flop puede ser disparado ya sea por flanco positivo o por flanco
negativo.

Disparador Señal de entrada de un flip-flop o multivibrador monoestable que provoca que


la salida cambie hacia un estado que depende de las condiciones de las señales de
control.

Disparador Schmitt Circuito digital que acepta una señal que cambia con lentitud y que
produce su salida una señal rápida libre de oscilaciones.

Dispositivo lógico programable (PLD) CI que contiene un número muy grande de


funciones lógicas interconectadas. El usuario puede programar el CI para una
determinada función al interrumpir las conexiones apropiadas.

Distribuidores de datos Véase demultiplexor.

DIVn Cuando se emplea dentro de un símbolo IEEE/ ANSI, señala que el circuito es un
contador de módulo n.

ECL Lógica de emisor acoplado; también se conoce como lógica en modo de corriente.

Entrada flotante Señal de entrada que se deja sin conectar en un circuito lógico.

Entrada paralela/salida serial Tipo de registro donde los datos se cargan en paralelo y
sólo tiene una salida que es serial.

Aprenda PLD’s Principios y Aplicaciones. L. Gerardo Flores R.


105

Entrada serial/salida paralela Tipo de registro que puede cargarse de manera serial y
cuyas salidas son paralelas.

Entrada serial/salida serial Tipo de registro que se puede cargar de manera serial y cuya
salida también es serial.

Entradas asíncronas Entradas del flip-flop que pueden afectar su operación en forma
independiente de las entradas de sincronía y de reloj.

Entradas de acción inmediata Sinónimo de “entradas asíncronas”.

Entradas de control Señales de entrada que están sincronizadas con la transición activa
del reloj y que determinan el estado de la salida de un flip-flop.

Entradas síncronas Véase entradas de control.

Equivalente funcional Cuando dos funciones lógicas realizadas por dos diferentes CI son
exactamente iguales.

Error de cuantización Error causado por la resolución diferente de cero de un convertidor


analógico-digital; éste es un error inherente al dispositivo.

Error de desvío (offset) Desviación de la salida ideal de cero volts de un convertidor


digital-analógico cuando la entrada es cero. En realidad, para esta situación, el
voltaje de salida es muy pequeño.

Error de escala completa Término utilizado por algunos fabricantes de convertidores


digitales-analógicos para especificar la exactitud de un convertidor digital-
analógico. Este error se define como la máxima desviación de la salida de un
convertidor digital-analógico de su valor ideal esperado.

Error de linealidad Término empleado por algunos fabricantes de convertidores digital-


analógico para especificar la exactitud del dispositivo. Se define como la máxima
desviación en el tamaño de paso con respecto al tamaño de paso ideal.

ESCRITURA Término utilizado para describir la condición donde el CPU envía datos
hacia otro elemento.

ESPIGA Véase señal falsa.

Estado borrado Estado Q = 0 de un flip-flop.

Estado casi estable Estado en el que permanece temporalmente un multivibrador


monoestable (normalmente Q = 1) antes de regresar a su estado estable (por lo
general, Q = 0).

Aprenda PLD’s Principios y Aplicaciones. L. Gerardo Flores R.


106

Estado de inicio Estado Q = 1 de un flip-flop.

Factor de carga Véase factor de carga de la salida.

Factor de carga de la salida Número máximo de entradas lógicas estándar que la salida de
un circuito digital puede manejar en forma confiable.

Firmware Programa de computadora almacenado en una ROM.

Flip-flop Dispositivo de memoria capaz de almacenar un nivel lógico.

FIip-flop D sincronizado por reloj Tipo de flip-flop en el que la entrada D (dato) es la


entrada síncrona.

Flip-flop J-K sincronizado por reloj Tipo de flip-flop en el que las entradas J y K son las
entradas sincrónas.

Flip-flops maestro/esclavo Flip-flops ya en desuso que tienen en su estructura interna dos


flip-flops - un maestro y un esclavo.

Flip-flops sincronizados por reloj Flip-flops que tienen una entrada de reloj.

Forma de onda en escalera Tipo de forma de onda generado en la salida de un convertidor


digital-analógico a medida que su entrada cambia de manera creciente.

Forma de suma de productos Expresión lógica que está formada por la disyunción de dos
o más términos productos) AND.

G Etiqueta empleada dentro de un símbolo IEEE/ANSI para indicar una dependencia AND.

Generación defunciones lógicas Implantación de una función lógica directamente de una


tabla de verdad mediante un CI digital tal como un multiplexor.

Generador de funciones Circuito que produce varias formas de onda distintas; se puede
construir usando una ROM, un DAC y un contador.

Generador de paridad Circuito que toma un conjunto de bits y produce el bit de paridad
correcto para dicho conjunto.

Glitch Abrupto cambio en voltaje de muy corta duración, de naturaleza adulterada.

HPRI/BCD Cuando se emplea dentro de un símbolo IEEE/ANSI, señala que la función del
CI es convertir una entrada activa con la mayor prioridad en su correspondiente
código BCD.

Aprenda PLD’s Principios y Aplicaciones. L. Gerardo Flores R.


107

IEEE/ANSI Instituto de Ingenieros Eléctricos y en Electrónica / Instituto Americano de


Estándares Nacionales.

Indeterminado Dícese del voltaje de un nivel lógico cuando se encuentra fuera de los
intervalos correspondientes a los niveles lógicos 0 y 1.

INICIO Término sinónimo de DC SET.

Inicio en DC Entrada asíncrona de un flip-flop empleada para poner de inmediato un 1 en


la salida ( Q = 1 ).

Inmunidad al ruido Capacidad de un circuito para tolerar el voltaje de ruido de sus


terminales.

Instrucción de múltiples bytes Instrucción de computadora que está representada por más
de un byte.

Instrucción de múltiples direcciones Palabra de instrucción de computadora que contiene


más de una dirección.

Interfaz Unión de diferentes dispositivos de manera que sean capaces de funcionar en


forma compatible y coordinada; conexión de la salida de un sistema a la entrada de
otro diferente con distintas características eléctricas.

Interruptor bilateral Circuito CMOS que actúa como interruptor de un polo un tiro
controlado por el nivel lógico de una entrada.

Intervalo de muestreo Ventana de tiempo durante la que un contador de frecuencias


recolecta muestras para determinar la frecuencia de una señal.

Inversión Operación que lleva a un nivel lógico hacia su estado opuesto.

INVERSOR También se conoce como circuito NOT; circuito lógico que implanta la
operación NOT. Un inversor tiene sólo una entrada y el nivel lógico de su salida
siempre es el opuesto al de la entrada.

Jam Transfer Véase también transferencia asíncrona.

Latch-up Condición peligrosa de alta corriente en un CI CMOS provocada ya sea por


espigas de alto voltaje u oscilación (ringing) en las entradas y salidas del
dispositivo.

LCD Dispositivo de visualización de cristal líquido.

Lectura Término empleado para describir la condición en la que el CPU recibe datos
provenientes de otro elemento.

Aprenda PLD’s Principios y Aplicaciones. L. Gerardo Flores R.


108

LED Diodo emisor de luz.

Lenguaje de alto nivel Lenguaje de programación de computadoras que emplea el idioma


inglés con el propósito de facilitar la escritura de un programa para computadora.

Lenguaje de máquina Lenguaje de programación de computadoras en el que se emplean


grupos de unos y ceros para representar las instrucciones. El lenguaje de máquina es
el único lenguaje que en realidad entiende la computadora.

Línea de datos bidireccional Término utilizado cuando una línea de datos funciona ya sea
como línea de entrada o de salida dependiendo de los estados de las entradas de
habilitación.

Lógica de toma de corriente (Current sinking logic) Familia lógica en la cual la salida de
un circuito lógico toma corriente de la entrada del circuito lógico que está
impulsando.

Logica de suministro de corriente Familia lógica en la cual la salida de un circuito


suministra corriente al circuito al que está impulsando.

Lógica en un arreglo programable (PAL) Clase de dispositivos lógicos programables. El


arreglo AND es programable, mientras que el arreglo OR es alambrado.

LSI Gran escala de integración (desde l00 hasta 9999 compuertas).

Manejador Término técnico que algunas veces se añade a la descripción de un CI para


indicar que sus salidas pueden operar con límites de corriente o voltaje mayores que
los de un CI estándar.

Manejadores de canal Circuitos intermedios entre las salidas de los dispositivos


conectados a un canal común y el propio canal; se emplean cuando un número muy
grande de dispositivos comparte el mismo canal.

Mapa de Karnaugh Formato bidimensional de una tabla de verdad empleado para


simplificar una expresión que está en la forma de suma de productos.

Maxicomputadora Sistema de cómputo grande que se emplea para mantener y actualizar


grandes cantidades de datos e información.

Máxima frecuencia aplicable al reloj (FMAX) La mayor frecuencia que se puede aplicar
en la entrada de reloj de un flip-flop y para la que éste dispara de manera confiable.

Memoria Habilidad de la salida de un circuito para permanecer en un estado después de


que ha desaparecido la condición de entrada que le dio origen.

Aprenda PLD’s Principios y Aplicaciones. L. Gerardo Flores R.


109

Memoria auxiliar Aquella parte de la memoria de una computadora que se separa de la


memoria interna de trabajo de la máquina. Generalmente tiene alta densidad y alta
capacidad, similar a un disco magnético.

Memoria de acceso aleatorio (RAM) Memoria en la que el tiempo de acceso a cualquier


localidad es el mismo.

Memoria de acceso secuencial (SAM) Memoria en la que el tiempo de acceso cambia de


acuerdo con la ubicación del dato guardado en ella.

Memoria de destello (FLASH) CI de memoria no volátil que tiene alta velocidad de


acceso y la capacidad de borrado dentro del circuito que tienen los EEPROM pero
con mayores densidades y más bajo costo.

Memoria de disco magnético Memoria de almacenamiento secundario que guarda los


datos como puntos magnetizados sobre la superficie de un disco plano que da
vueltas.

Memoria de disco óptico Clase de dispositivo de memoria secundaria que emplea un haz
láser para escribir y leer con la misma facilidad.

Memoria de lectura/escritura (RWM) Cualquier memoria en la que se puede escribir y


leer con la misma facilidad.

Memoria intermedia (buffer) con velocidades de transmisión de datos diferentes


Aplicación de los FIFO en la que se describen datos en forma secuencial y con
cierta velocidad, y éstos se leen con una velocidad diferente.

Memoria interna Porción de la memoria de alta velocidad de una computadora que


mantiene el programa y los datos que la máquina está trabajando. También llamada
memoria principal o memoria de trabajo.

Memoria no volátil Memoria que guarda la información sin necesidad de potencia


eléctrica.

Memoria primero en entrar-primero en salir (FIFO) Memoria de semiconductor de


acceso secuencial en la que las palabras de datos se leen en el mismo orden en que
fueron escritas.

Memoria únicamente de lectura (ROM) Dispositivo de memoria diseñado para


aplicaciones donde la relación entre las operaciones de lectura y las de escritura es
muy grande.

Memoria volátil Memoria que requiere de energía eléctrica para mantener la información
que se encuentra almacenada en ella.

Aprenda PLD’s Principios y Aplicaciones. L. Gerardo Flores R.


110

Método de paridad Esquema utilizado para detectar los errores que ocurren durante la
transmisión de datos.

Microcomputadora Nuevo miembro de la familia de computadoras que está formado por


microprocesador, circuitos de memoria y pastillas de interface E/S. En algunos
casos, los componentes anteriores se encuentran todos en un solo CI.

Microprocesador (MPU) CI. LSI que contiene la unidad de central de procesamiento


(CPU).

Minicomputadoras Computadoras que en general son más grandes y rápidas y que además
poseen más capacidades que las microcomputadoras.

Minuendo Número del que se resta el sustraendo.

Mnemotécnico Abreviatura que representa el código de operación de una instrucción de


computadora.

Modo de transición (toggle) Modo de operación en el que un flip-flop cambia de estado


con cada pulso de reloj.

Monotonicidad Propiedad mediante la cual la salida de un convertidor digital-analógico se


incrementa o permanece en el mismo valor a medida que la entrada aumenta.

MOSFET Transistor de efecto de campo semiconductor metal-óxido.

MSI Mediana escala de integración (entre 12 y 99 compuertas).

Multiplexado Proceso de selección de una entrada entre varias y transmisión de los datos
seleccionados hacia un sólo canal de salida.

Multiplexado de direcciones Multiplexado empleado en las RAM dinámicas que permite


ahorrar terminales de CI que participan en la recepción de las dos mitades en que se
divide una dirección completa y que se envían al CI en pasos separados.

Multiplexor (MUX) Circuito lógico que, dependiendo del estado de sus entradas de
selección, lleva uno de sus varios datos a su salida.

Multiplicador binario Circuito digital especial capaz de llevar a cabo la operación


aritmética de multiplicación sobre dos números binarios.

Multivibrador estable Circuito digital que oscila entre dos estados de salida inestables.

Multivibrador biestable Nombre que algunas veces se emplea para designar al flip-flop.

Aprenda PLD’s Principios y Aplicaciones. L. Gerardo Flores R.


111

Multivibrador monoestable Circuito que pertenece a la familia de los flip-flops pero que
tiene un sólo estado estable (por lo general Q = 0).

Multivibrador monoestable no reactivable Tipo de multivibrador monoestable que no


responde a una señal aplicada en la entrada de disparo mientras se encuentra en su
estado casi estable.

Multivibrador monoestable reactivable Tipo de multivibrador monoestable que responde


a una señal aplicada en la entrada dc disparo mientras se encuentra en su estado casi
estable.

Nivel lógico Estado de un voltaje variable. Los estados 1 (ALTO) y 0 (ALTO) corresponde
a los dos rangos de voltaje utilizables de un dispositivo digital.

Nivel lógico activo Nivel lógico para el que se considera que el circuito es activo. Si el
símbolo para el circuito incluye un círculo (inversor), el circuito es activo en BAJO.
Por otro lado, si éste no tiene un círculo (inversor), entonces el circuito es activo en
ALTO.

NMOS (Semiconductor metal-óxido de canal N) Tecnología de circuito integrado que


emplea transistores MOSFET de canal N como elemento principal de circuito.

No asegurado Término utilizado para describir el estado de una señal lógica; sinónimo de
“inactivo”.

"No importa" Situación en la que se puede asignar, para un conjunto dado de condiciones
de entrada, el nivel de la salida de un circuito ya sea como 0 ó 1.

Notación de dependencia Método empleado para representar de manera simbólica la


relación que existe entre las entradas y salidas de un circuito lógico. Este método
hace uso de símbolos calificadores colocados cerca de la parte superior central o del
centro geométrico del símbolo.

Número de módulo Número de diferentes estados por los que puede pasar una secuencia
del contador; relación de división en frecuencia de un contador.

Observación/análisis Proceso empleado para detectar problemas en circuitos o sistemas


con la finalidad de predecir las posibles fallas antes de tomar un instrumento de
medición. Cuando se emplea este proceso, el técnico debe comprender la operación
del circuito, observar los síntomas de la falla y entonces razonar durante el proceso
de operación del circuito.

Octetos Grupos de ocho unos que son adyacentes entre sí dentro de un mapa de Karnaugh.

Operación AND Operación del álgebra booleana en la que se emplea el símbolo ● para
señalar la conjunción de dos o mas variables lógicas. El resultado de una operación

Aprenda PLD’s Principios y Aplicaciones. L. Gerardo Flores R.


112

AND será ALTO (nivel lógico 1) sólo si todas las variables se encuentran en
ALTO.

Operación de escritura Operación en la que se coloca una nueva palabra en cierta


localidad de memoria.

Operación de lectura Operación en la que se ubica una palabra en una localidad de


memoria específica para, posiblemente ser transferida hacia otro dispositivo.

Operación NOT Operación del álgebra booleana en la que se emplea un símbolo de barra
o comilla para señalar la inversión de una o más variables lógicas.

Operación OR Operación del álgebra booleana en la que se emplea el símbolo + para


indicar la disyunción de dos o más variables lógicas. El resultado de la operación
OR será ALTO (nivel lógico 1) si una o más variables se encuentran en ALTO.

Operando Datos sobre los que opera la computadora a medida que ejecuta un programa.

Oscilador controlado por voltaje (VCO) Circuito que produce como salida una señal que
tiene una frecuencia que es proporcional al voltaje aplicado en la entrada del
oscilador.

Osciloscopio de almacenamiento digital Instrumento que muestrea, digitaliza, almacena y


presenta visualmente formas de onda analógicas.

Palabra Grupo de bits que representan cierta unidad de información.

Palabra de computadora Grupo de bits que forma la unidad primaria de información en


una computadora.

Palabra de memoria Grupo de bits en la memoria que representa instrucciones o datos de


algún tipo.

Periféricos Dispositivos de entrada y salida de las computadoras.

Plano posterior Conexión eléctrica común a todos los segmentos de un LCD.

Porcentaje de resolución Relación entre el tamaño de paso y el valor a escala completa de


un convertidor digital-analógico. También se puede definir como el recíproco del
número máximo de pasos de un convertidor digital-analógico.

Predicción de acarreo Habilidad de algunos sumadores para predecir, sin tener que
esperar a que el acarreo se propague por todos los sumadores completos, si se
generará o no el bit de acarreo (CSAL) como resultado de una adición; de este
modo se reduce el tiempo total de retardo.

Aprenda PLD’s Principios y Aplicaciones. L. Gerardo Flores R.


113

PREINICIO Entrada asíncrona utilizada para poner Q = 1 de manera inmediata.

Primer complemento a 1 Resultado obtenido cuando se complementa cada bit de un


número binario.

Producto velocidad-potencia Valor numérico (en joules) utilizado con frecuencia para
comparar dos familias lógicas diferentes. Se obtiene al multiplicar el retardo de
propagación por la disipación de la potencia del circuito lógico.

Programa Secuencia de instrucciones codificadas en binario y diseñadas para realizar una


tarea con la computadora.

Programa de carga e iniciación (bootstrap) Programa de almacenamiento en ROM que la


computadora ejecuta inmediatamente después de su encendido.

Propagación del acarreo Retardo intrínseco del circuito para algunos sumadores, que
impide que el bit de acarreo (Csal) y el resultado de la adición aparezcan en la salida
al mismo tiempo.

Prueba de exactitud estática Prueba en la que se aplica un valor binario fijo en la entrada
de un convertidor digital-analógico y se mide con exactitud su salida. El resultado
medido debe encontrarse dentro del intervalo especificado por el fabricante del
convertidor digital analógico.

Prueba en escalera Proceso mediante el que se incrementa la entrada de un convertidor


digital-analógico y se observa su salida para determinar si exhibe o no un formato
tipo escalera.

Pulsador lógico Herramienta de prueba que genera un pulso de corta duración cuando se
acciona manualmente.

Punta de prueba lógica Herramienta para la detección de fallas digitales que detecta e
indica el nivel lógico particular de un punto en particular de un circuito.

Punto binario En un número binario, signo que separa la parte entera de la fraccionaria.

R Cuando se emplea como etiqueta de una entrada dentro de un símbolo IEEE/ANSI,


señala una función de reiniciación (reset).

RAM dinámica (DRAM) Tipo de memoria de semiconductor que almacena datos como
cargas en capacitores que necesitan regenerarse de manera periódica.

RAM estática (SRAM) RAM de semiconductor que guarda información en celdas


formadas por flip flops y que no necesita de un refresco periódico.

Aprenda PLD’s Principios y Aplicaciones. L. Gerardo Flores R.


114

RAM no volátil Combinación sobre el mismo circuito de un arreglo de RAM estática y de


una EEPROM. La EEPROM sirve como respaldo no volátil de la SRAM.

Regeneración Proceso mediante el que se recargan las celdas de una memoria dinámica.

Registro Grupo de flip-flops capaces de almacenar datos.

Registro básico D Circuito que contiene un circuito de cerrojo con compuertas NAND y
otras dos compuertas NAND de conducción.

Registro básico (latch) Tipo de flip-flop.

Registro básico (latch) de compuertas NAND Flip flop construido con dos compuertas
NAND acopladas entre sí.

Registro básico (latch) de compuertas NOR Flip flop construido con dos compuertas
NOR conectadas entre sí.

Registro con entrada y salida paralela Tipo de registro que puede ser cargado de manera
paralela y que tiene disponibles salidas paralelas.

Registro de corrimiento Circuito digital que acepta datos binarios de una fuente de
entrada y entonces los desplaza, un bit a la vez, a través de la cadena de flip-flops.

Registro de corrimiento circular Registro de corrimiento en el que una de las salidas del
último flip-flop está conectada a una de las entradas del primero.

Registro intermedio (buffer) Registro que retiene datos de manera temporal.

REINICIO Término que es sinónimo de BORRAR. Estado Q = 0 de un flip-flop.

Reloj Señal digital que tiene la forma de un tren de pulsos rectangular o de una onda
cuadrada.

Representación analógica Representación de una cantidad que varía sobre un intervalo


continuo de valores.

Representación digital Representación de una cantidad que cambia en pasos discretos


sobre un determinado intervalo de valores.

Resolución En un convertidor digital-analógico, el cambio más pequeño que se observa en


la salida para un cambio en la entrada digital. También recibe el nombre de tamaño
de paso. En un convertidor analógico-digital, la cantidad más pequeña de cambio en
la entrada analógica que produce un cambio en la salida digital.

Aprenda PLD’s Principios y Aplicaciones. L. Gerardo Flores R.


115

Retardos de propagación Tiempo que transcurre desde que la señal se aplica en una en-
trada hasta que la salida cambia de estado.

ROM programable y borrable eléctricamente (EEPROM) ROM que puede


programarse, borrarse y volverse a programar eléctricamente.

ROM programable y borrable (EPROM) ROM que puede ser programada


eléctricamente por el usuario. Se puede borrar (en general con luz ultravioleta) y
volverse a programar las veces que sea necesario.

ROM programable (PROM) ROM que puede ser programada eléctricamente por el
usuario. No se puede borrar ni tampoco volver a programarse.

ROM programada por mascarilla (MROM) ROM programada por el fabricante de


acuerdo con las especificaciones del cliente. No se puede borrar o volver a
programar.

Ruido Fluctuaciones no deseadas en el voltaje, que pueden originarse en el medio ambiente


y que provocan mal funcionamiento en los circuitos digitales.

Salida a escala completa Máximo valor posible que puede tener la salida de un
convertidor digital-analógico.

Salida de colector abierto Tipo de estructura de salida de algunos circuitos TTL en la que
se emplea sólo un transistor con colector flotante.

Salida de tres estados Tipo de estructura de la salida que permite tres estados: ALTO,
BAJO y de alta impendancia (Z alta).

Salida de tótem Término utilizado para describir la forma en que están conectados dos
transistores bipolares en la salida de la mayor parte de los circuitos TTL.

SBD Diodo de barrera Schottky empleado en todos los circuitos de la serie Schottky TTL.

Segundo complemento Resultado obtenido cuando se suma 1 al bit menos significativo de


un número binario expresado en forma complemento a uno.

Selección Técnica empleada con frecuencia para eliminar las espigas de decodificación.

Selección de la dirección de la columna Señal empleada para fijar la dirección de la


columna en una memoria DRAM.

Selectores de datos Véase multiplexor.

Semisumador Circuito lógico con dos entradas y dos salidas. Las entradas son un bit del
cosumando y otro para el adendo, respectivamente. Las salidas son el bit de suma

Aprenda PLD’s Principios y Aplicaciones. L. Gerardo Flores R.


116

producido por la adición de los bits correspondientes al adendo y al cosumando, y el


acarreo (CSAL) que será sumado en la siguiente etapa.

Sigma Σ Letra griega que representa la adición y que a menudo se emplea para señalar los
bits de salida de un sumador paralelo.

Sistema analógico Combinación de dispositivos diseñados para operar sobre cantidades


físicas que están representadas en forma analógica.

Sistema binario Sistema numérico en el que sólo son posibles dos dígitos: 0 y 1.

Sistema de numeración octal Sistema numérico en base 8; para expresar un número en


octal se emplean los dígitos desde 0 al 7.

Sistema de valores posicionales Sistema en el cual el valor de un dígito depende de su


posición relativa dentro de un número.

Sistema decimal Sistema numérico que emplea lo diferentes dígitos o símbolos para
representar una cantidad.

Sistema digital Combinación de dispositivos diseñada para manejar cantidades físicas que
están representadas en forma digital.

Sistema híbrido Sistema que emplea técnicas tanto analógicas como digitales.

Sistema lógico secuencial Sistema lógico en el que los estados lógicos de las salidas así
como la secuencia de operaciones dependen de las condiciones de entrada tanto pasadas
como presentes.

Sistemas síncronos Sistemas en que las salidas de un circuito sólo pueden cambiar de
estado durante las transiciones de la señal de un reloj.

Software de desarrollo para PLD Software que toma el diseño lógico introducido por el
usuario y lo traduce a un archivo (gráfica de fusibles) de salida para ser transferido
al dispositivo programador, que luego actúa fundiendo los fusibles adecuados. El
software CUPL utilizado en este trabajo es un ejemplo de software de desarrollo de
alto nivel.

SRGn Cuando se emplea en la etiqueta de un bloque de control común en un símbolo


IEEE/ANSI, señala el CI es un registro de corrimiento de n bits.

SSI Pequeña escala de integración (menos de 12 compuertas).

Substrato Pieza de material semiconductor que forma parte del bloque básico de cualquier
CI.

Aprenda PLD’s Principios y Aplicaciones. L. Gerardo Flores R.


117

Sumador BCD Sumador especial que contiene dos sumadores paralelos de cuatro bits y un
circuito de detección y corrección. Cada vez que la suma de dos códigos BCD es
mayor que 10012 (910), el circuito de detección y corrección se da cuenta de esto,
suma al resultado el factor de corrección 01102 (610) y genera un acarreo para la
siguiente posición decimal.

Sumador completo Circuito lógico con tres entradas y dos salidas. Las entradas son un bit
de acarreo (CENT) que proviene de la etapa previa, un bit de consumando y otro del
adendo, respectivamente. Las salidas son el bit de suma y un bit de acarreo (CSAL)
generado por la adición del bit del adendo con el bit del cosumando y CENT.

Sumador paralelo Circuito digital formado por sumadores completos y empleado para
sumar al mismo tiempo todos los bits del sumando al cosumando.

Sustraendo Número que se sustrae del minuendo.

Tabla de excitación de un J-K Tabla que muestra las condiciones de las entradas J y K
necesarias para cada posible transición de estado para un sólo flip-flop.

Tabla de excitación del circuito Tabla que muestra las posibles transiciones del estado
PRESENTE al SIGUIENTE junto con los niveles requeridos J y K en cada flip flop.

Tabla de verdad Tabla lógica que contiene las respuestas de un circuito para las diferentes
combinaciones de los niveles lógicos en sus entradas.

Tamaño de paso Véase Resolución.

Tecnología de bajo voltaje Nueva línea de dispositivos lógicos que operan a un voltaje
nominal de 3.3 Volts.

Temporizador 555 CI compatible con TTL que se puede alambrar para que opere en
modos diferentes, tales como el monoestable y el astable.

Teoremas booleanos Reglas que se aplican en el álgebra booleana para simplificar


expresiones lógicas.

Teoremas de DeMorgan (1) Teorema que afirma que el complemento de una suma
(operación OR) es igual al producto (operación AND) de los complementos, y (2)
teorema que afirma que el complemento de un producto (operación AND) es igual a
la suma (operación OR) de los complementos.

Tiempo de acceso En una operación de lectura, tiempo que transcurre entre el momento en
que la memoria recibe como entrada una nueva dirección y el instante en que el dato
se encuentra disponible en la salida.

Aprenda PLD’s Principios y Aplicaciones. L. Gerardo Flores R.


118

Tiempo de estabilización Tiempo necesario para que la salida de un convertidor digital-


analógico vaya desde cero hasta la mitad de su valor a escala completa cuando los
bits de entrada se cambian desde todos en cero hasta todos en uno.

Tiempo de establecimiento Intervalo de tiempo que precede de manera inmediata a la


transición activa de la señal de reloj y durante el que la entrada de control debe
mantenerse en el nivel apropiado.

Tiempo de retención Intervalo de tiempo que sigue a la transición activa del reloj y
durante el que deben mantenerse estables los niveles de las entradas de control.

Transductor Dispositivo que convierte una variable física en una eléctrica (por ejemplo,
una fotocelda o un termocople).

Transferencia asíncrona Transferencia de datos realizada sin la ayuda del reloj.

Transferencia paralela de datos Operación mediante la cual se transfiere


simultáneamente todo el contenido de un registro hacia otro.

Transferencia serial de datos Transferencia de datos de un lugar hacia otro un bit a la vez.

Transferencia síncrona Transferencia de datos realizada por las entradas síncronas y de


reloj de un flip-flop.

Transición con pendiente positiva (TPP) Ocurre cuando la señal de reloj cambia del 0
lógico hacia el 1 lógico.

Transición falsa (glitch) Cambio momentáneo, abrupto y de corta duración en el voltaje.

Transistor activo en nivel alto Véase Transistor de fuente de corriente.

Transistor activo en el nivel bajo Véase Transistor de carga de corriente.

Transistor de disipación de corriente Nombre dado al transistor de salida (Q4) de un


circuito TTL. El transistor se enciende cuando el nivel lógico de la salida es BAJO.

Transistor de suministro de corriente Nombre dado al transistor de salida (Q3) de la


mayor parte de los circuitos TTL. Este transistor conduce cuando el nivel lógico de
la salida es ALTO.

Transitorios de corriente Espigas de corriente generadas por la estructura de salida en


forma de tótem de un circuito TTL y que son causados cuando ambos transistores se
encienden al mismo tiempo.

Transmisión paralela Transferencia simultánea de todos los bits de un número binario de


un lugar a otro.

Aprenda PLD’s Principios y Aplicaciones. L. Gerardo Flores R.


119

Transmisión serial Transferencia de información binaria de un lugar hacia otro un bit a la


vez.

Transparente Término que se refiere a la operación de un registro básico (latch) tipo D


donde la salida Q sigue a la entrada D.

Trazador de corriente Herramienta de prueba que detecta un cambio en la corriente que


circula por un alambre o sobre la pista de una tarjeta de circuito impreso.

TTL de bajo consumo de potencia Subfamilia TTL que emplea el circuito básico TTL
con excepción de que los valores de todas las resistencias son mayores.

TTL Schottky Subfamilia TTL que emplea circuitos estándar TTL con la excepción de que
emplea diodos de barrera Schottky (SBD) conectados entre la base y el colector de
cada transistor.

TTL Schottky de bajo consumo de potencia Subfamilia TTL que emplea un circuito TTL
Schottky idéntico pero con valores de resistencia más grande.

TTL (lógica transistor-transistor) Tecnología de circuito integrado que emplea


transistores bipolares como su elemento principal de circuito.

ULSI Ultra gran escala de integración (más de 100,000 compuertas).

Unidad aritmética-lógica (ALU) Circuito digital utilizado en computadoras para efectuar


varias operaciones aritméticas y lógicas.

Unidad central de procesamiento (CPU) Parte de una computadora que está compuesta
por una unidad aritmético-lógica (ALU) y una de control.

Unidad de carga (UL) Forma en que algunos fabricantes especifican las corrientes de
entrada y salida. En un circuito lógico TTL estándar, una unidad de carga es igual a
40 micro Amperes en el estado ALTO mientras que en el estado BAJO ésta es igual
a 1.6 mili Amperes.

Unidad de control Parte de una computadora que se encarga de decodificar las


instrucciones de un programa y de proporcionar las señales de temporización
necesarias para la ejecución de tales instrucciones.

Unidad de entrada Parte de una computadora que facilita la alimentación de información


hacia la unidad de memoria o la ALU de la computadora.

Unidad de memoria Parte de una computadora que almacena las instrucciones y datos
recibidos desde la unidad de entrada así como los resultados obtenidos por la unidad
aritmética-lógica.

Aprenda PLD’s Principios y Aplicaciones. L. Gerardo Flores R.


120

Unidad de salida Parte de una computadora que recibe los datos enviados por la unidad de
memoria o la ALU y los presenta al mundo externo.

Verificación por suma total (checksum) Palabra de datos especial que se guarda en la
última localidad de una ROM. Se obtiene de la adición de todas las demás palabras
de datos que están en la ROM y se emplea con fines de verificación de errores.

Verificador de paridad Circuito que toma un conjunto de bits (incluyendo el de paridad) y


comprueba si éste tiene la paridad correcta.

VLSI Muy grande escala de integración (entre 10,000 y 99, 999 compuertas).

Aprenda PLD’s Principios y Aplicaciones. L. Gerardo Flores R.

También podría gustarte