Documentos de Académico
Documentos de Profesional
Documentos de Cultura
APLICACIONES
ELABORADO POR:
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.
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.
Contenido
Derechos de autor
Resumen
Contenido
Figuras
Antecedentes
1. INTRODUCCIÓN.
1.7.1 Definición.
1.7.2 Redundancias.(Σd).
2.1.1 ASIC
2.1.2 PROM
2.1.3 PAL.
2.1.4 GAL
2.1.5 PLA
2.1.7 FPGA.
3.4.1 Variables.
3.4.3 Comentarios.
3.4.9 Extensiones.
3.4.10 Expresiones.
4. LOGICA COMBINACIONAL.
5. LOGICA SECUENCIAL.
5.6 Ejemplo.
Bibliografía.
Abreviaturas.
Glosario.
Figuras
Figura 1.1 Ejemplo de representaciones análogas y digitales.
Figura 1.2 Mapas de Karnaugh.
Figura 1.3 Ejemplo de minimización.
Antecedentes
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.
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.
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.
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.
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.
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
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
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
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
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.-
F =A B + A B
0 0 1 A
0 1 0
1 0 0 F
B
1 1 1
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
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
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
X + Y =X * Y
X * Y = X + Y
Ejemplo:
B A F
0 0 0
0 1 1 F = AB +AB
1 0 1
1 1 0
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.
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
1.7.1 Definición.
Dos términos son lógicamente adyacentes cuando difieren en una variable únicamente.
AB C
Son lógicamente adyacentes
ABC
DC B A
DCBA
No son lógicamente adyacentes.
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 +AB = 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 +WX
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.
F = AB + CD
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.
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
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
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.
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.
• 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.
• 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.
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).
• AMD.
• Altera.
• Atmel.
• Lattice.
• Texas Instruments.
• Xilinx.
Se necesitan algunos equipos para diseñar y construir circuitos con el empleo de PLD:
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.
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.
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.
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.
En la figura 3.1, se ilustra el flujo de datos para crear un diseño usando WinCUPL.
WinCUPL Schematic SMCupl WinSim
Diseño
Compilar
Editar archivo
fuente
Sí ¿Hay
errores?
No
Sí ¿Hay
problemas?
No
Programar el PLD
Solución de errores
Prueba en el circuito
No Sí
HECHO
¿Funciona?
Salvar archivo.
Imprimir.
Cortar.
Copiar.
Pegar.
Compila virtualmente.
Simular virtualmente.
MS-DOS (opcional).
SMCupl (opcional).
Schematic (opcional).
Programador (opcional).
WinSim (opcional).
El menú edit es desplegado cuando la ventana activa es un documento. El menú ofrece los
siguientes comandos:
Project Presenta o esconde la ventana del proyecto al lado derecho del usuario.
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 no pueden contener un símbolo reservado del CUPL. (Mas adelante están
listados).
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.
Name XXXXX;
Partno XXXXX;
Date XX/XX/XX;
Revision XX;
Designer XXXXX;
Company XXXXX;
Assembly XXXXX;
Location XXXXX;
/****************************************************************/
/* */
/* */
/****************************************************************/
/****************************************************************/
Pin = ; /* */
Pin = ; /* */
Pin = ; /* */
Pin = ; /* */
Pin = ; /* */
Pin = ; /* */
Pin = ; /* */
Pin = ; /* */
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.).
Revision 02;
Date 10/14/95;
Designer Gerardo Flores;
Company U A de C;
Assembly none;
Location none;
Device P22V10;
Format j;
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.
• 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.
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.
• Ecuaciones lógicas: Espacio para escribir las ecuaciones lógicas que describen el
funcionamiento de la PLD.
= es el operador de asignación
[var1 ,var2,..,varn]
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.
$DEFINE.
Este comando reemplaza un string de caracteres por un número, símbolo u otro operador
especificado. El formato es como sigue:
$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
$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.
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
[!]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.
4. LOGICA COMBINACIONAL
Hay tres formas de programar el PLD en la lógica combinacional:
- Tabla de verdad.
- Ecuaciones Booleanas.
- Diseño esquemático.
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:
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
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.
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:
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:
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>.
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:
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 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.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.
“Numprim_eq.jed”, el cual deberá contener los vectores necesarios para programar el GAL
Como se comentaba en el inicio de este capítulo, otra forma para generar el archivo JED, es
En este programa nos proporciona una librería de compuertas lógicas, en donde nosotros
Para este ejemplo, vamos a darle el nombre del programa fuente “Numprim_sh”, el cual se
1 2 3
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.
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.
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:
5. LOGICA SECUENCIAL
De la matriz
programable
A la matriz
programable
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.
De la matriz
programable
A la matriz
programable
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.
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
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.
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.
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
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
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.
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.
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.
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
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.
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.
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
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 .
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.
Bibliografía
A VHDL Primer.
J. Bhasker.
Prentice Hall (1999).
Abreviaturas
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 y sobre la entrada del reloj,
señala que el contador será reducido en uno cuando aparezca la entrada de reloj.
/ Cuando se emplea un símbolo IEEE/ ANSI como etiqueta de una salida, señala la
separación de dos funciones.
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.
voltaje a la salida del convertidor digital analógico hasta que éste intersecte el valor
de la entrada analógica.
Á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”.
AND alambrado Término empleado para describir la función lógica creada cuando se
conectan entre sí dos salidas de colector abierto.
Asegurado Término utilizado para describir el estado de una señal lógica; sinónimo de
"activo".
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.
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.
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.
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.
CI unipolar Circuitos digitales integrados en los que el principal elemento de circuito son
los transistores unipolares de efecto de campo (MOSFET)
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 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.
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.
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.
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.
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 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.
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 en terminal (pin) Cuando las terminales de dos diferentes CI tienen la misma
funció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).
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.
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 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 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 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.
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.
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 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.
CTR Cuando aparece dentro de un símbolo IEEE/ ANSI, la etiqueta indica que el CI es un
contador.
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 BCD a decimal Decodificador que convierte una entrada BCD en una
salida decimal equivalente.
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.
Detector de flanco Circuito que produce espigas positivas de corta duración cuya aparición
coincide con la transición activa del reloj.
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.
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 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.
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.
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 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.
Equivalente funcional Cuando dos funciones lógicas realizadas por dos diferentes CI son
exactamente iguales.
ESCRITURA Término utilizado para describir la condición donde el CPU envía datos
hacia otro elemento.
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.
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 sincronizados por reloj Flip-flops que tienen una entrada de reloj.
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.
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.
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.
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.
Instrucción de múltiples bytes Instrucción de computadora que está representada por más
de un byte.
Interruptor bilateral Circuito CMOS que actúa como interruptor de un polo un tiro
controlado por el nivel lógico de una entrada.
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.
Lectura Término empleado para describir la condición en la que el CPU recibe datos
provenientes de otro elemento.
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.
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 de disco óptico Clase de dispositivo de memoria secundaria que emplea un haz
láser para escribir y leer con la misma facilidad.
Memoria volátil Memoria que requiere de energía eléctrica para mantener la información
que se encuentra almacenada en ella.
Método de paridad Esquema utilizado para detectar los errores que ocurren durante la
transmisión de datos.
Minicomputadoras Computadoras que en general son más grandes y rápidas y que además
poseen más capacidades que las microcomputadoras.
Multiplexado Proceso de selección de una entrada entre varias y transmisión de los datos
seleccionados hacia un sólo canal de salida.
Multiplexor (MUX) Circuito lógico que, dependiendo del estado de sus entradas de
selección, lleva uno de sus varios datos a su salida.
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.
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).
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.
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.
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.
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
AND será ALTO (nivel lógico 1) sólo si todas las variables se encuentran en
ALTO.
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.
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.
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.
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.
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.
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.
RAM dinámica (DRAM) Tipo de memoria de semiconductor que almacena datos como
cargas en capacitores que necesitan regenerarse de manera periódica.
Regeneración Proceso mediante el que se recargan las celdas de una memoria dinámica.
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) 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.
Reloj Señal digital que tiene la forma de un tren de pulsos rectangular o de una onda
cuadrada.
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 (PROM) ROM que puede ser programada eléctricamente por el
usuario. No se puede borrar ni tampoco volver a programarse.
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.
Selección Técnica empleada con frecuencia para eliminar las espigas de decodificación.
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
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 binario Sistema numérico en el que sólo son posibles dos dígitos: 0 y 1.
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.
Substrato Pieza de material semiconductor que forma parte del bloque básico de cualquier
CI.
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.
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.
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 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.
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 serial de datos Transferencia de datos de un lugar hacia otro un bit a la vez.
Transición con pendiente positiva (TPP) Ocurre cuando la señal de reloj cambia del 0
lógico hacia el 1 lógico.
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.
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 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.
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.
VLSI Muy grande escala de integración (entre 10,000 y 99, 999 compuertas).