Este documento presenta conceptos introductorios sobre sistemas digitales y representaciones numéricas. Explica las diferencias entre representaciones analógicas y digitales, y define sistemas digitales y analógicos. Luego describe ventajas de las técnicas digitales como facilidad de diseño y almacenamiento de información. Finalmente, introduce conceptos como sistemas de numeración posicional y polinomial, métodos de conversión entre bases numéricas, y operaciones aritméticas básicas en sistemas digitales.
Existen varios tipos de multivibradores, sin embargo daré a conocer con este trabajo solo dos tipos. Su clasificación se establece en función del número de estados estables asociados a cada uno de ellos.
Sistemas combinacionales introducción a los Codificadores y decodificadoresIsrael Magaña
Clase de electrónica digital, introducción a los codificadores y decodificadores así como descripción de los sistemas combinacionales, enfoque ingeniería electromecánica
Existen varios tipos de multivibradores, sin embargo daré a conocer con este trabajo solo dos tipos. Su clasificación se establece en función del número de estados estables asociados a cada uno de ellos.
Sistemas combinacionales introducción a los Codificadores y decodificadoresIsrael Magaña
Clase de electrónica digital, introducción a los codificadores y decodificadores así como descripción de los sistemas combinacionales, enfoque ingeniería electromecánica
Presentación e introducción a la electrónica digitalTeodoro Ibarra
Esta presentación contiene una breve introducción y descripción de la importancia de llevar el curso de electrónica digital y su planificación durante el semestre agosto-diciembre 2011 en el Tecnológico de Jerez.
En esta presentación podrá encontrar explicación sobre los sistemas numéricos decimal y binario, la conversión entre ellos y las operaciones suma, resta, multiplicación y división de binarios.
Today is Pentecost. Who is it that is here in front of you? (Wang Omma.) Jesus Christ and the substantial Holy Spirit, the only Begotten Daughter, Wang Omma, are both here. I am here because of Jesus's hope. Having no recourse but to go to the cross, he promised to return. Christianity began with the apostles, with their resurrection through the Holy Spirit at Pentecost.
Hoy es Pentecostés. ¿Quién es el que está aquí frente a vosotros? (Wang Omma.) Jesucristo y el Espíritu Santo sustancial, la única Hija Unigénita, Wang Omma, están ambos aquí. Estoy aquí por la esperanza de Jesús. No teniendo más remedio que ir a la cruz, prometió regresar. El cristianismo comenzó con los apóstoles, con su resurrección por medio del Espíritu Santo en Pentecostés.
1. Capítulo 1:
Sistemas Numéricos y Códigos.
SISTEMAS DIGITALES I
22/10/2008 Sistemas Digitales I - Ing. S. Ríos
2. CAPITULO1: CONCEPTOS INTRODUCTORIOS AL
DISEÑO DIGITAL
Representaciones analógicas: Las cantidades análogas pueden
variar gradualmente sobre un intervalo continuo de valores.
Representaciones digitales: Las cantidades varían en etapas
discretas a o largo del tiempo.
Señal Digital Señal Análogica
Sistema Digital: Un sistema digital es una combinación de
dispositivos, diseñada para manipular cantidades físicas o
información que estén representados en forma digital.
Sistema Analógico: Un sistema analógico contiene
dispositivos que manipulan cantidades físicas representadas
en forma analógica.
22/10/2008 Sistemas Digitales I - Ing. S. Ríos
3. CAPITULO1: CONCEPTOS INTRODUCTORIOS
AL DISEÑO DIGITAL
Ventajas de las técnicas digitales
Mas fácil de diseñar (V,I,P,Vmax , Vmin, vs Fanout, Vmax).
Facilidad de almacenar información (memorias vs relés)
Control de precisión y exactitud (control de bits en la conversión )
Programación de la operación (en memorias)
El ruido afecta en forma mínima.
Alto grado de integración (Corta, Mediana ---> Larga SI)
22/10/2008 Sistemas Digitales I - Ing. S. Ríos
4. CAPITULO1: CONCEPTOS INTRODUCTORIOS
AL DISEÑO DIGITAL
Limites en las Técnicas Digitales
“El mundo real es analógico”
Convertidores Digitales Analógicos (DAC) y Analógicos a Digitales
(ADC)
Convertir las entradas analógicas “del mundo real” a la forma
digital.
Procesar la información digital.
Convertir las salidas digitales a la forma analógica “del mundo
real”
22/10/2008 Sistemas Digitales I - Ing. S. Ríos
5. CAPITULO1: CONCEPTOS INTRODUCTORIOS
AL DISEÑO DIGITAL
Sistemas de Numeración
Un sistema de numeración es un conjunto ordenado de símbolos
llamados dígitos con leyes definidas para la suma, resta,
multiplicación.
(N)r= (parte entera . parte fraccionaria)
Octal
Punto base Binario
N= número Decimal
r= base del sistema
Los números se representan en cualquier sistema de numeración
de 2 formas: Notación Posicional y Notación Polinomial.
22/10/2008 Sistemas Digitales I - Ing. S. Ríos
6. CAPITULO1: CONCEPTOS INTRODUCTORIOS
AL DISEÑO DIGITAL
Notación Posicional: Implica la colocación de dígitos a ambos
lados del punto base, por ende sus posiciones no se pueden
alterar.
( N) r= ( a n-1 a n-2 a n- 3 …a i…a 1 a 0 . a -1 a -2 …a -f …a -m ) r base
Parte entera Parte fraccionaria
Punto base
r= base del sistema m= número de dígitos en la parte
fraccionaria
a= los dígitos del set
an-1= dígito más significativo
n= número de dígitos en la
parte entera a-m = dígito menos significativo
Ej.: (1531.75)10 Ej.: (5131.75)10 no son lo mismo
22/10/2008 Sistemas Digitales I - Ing. S. Ríos
7. CAPITULO1: CONCEPTOS INTRODUCTORIOS
AL DISEÑO DIGITAL
Base del Sistema: Número de dígitos que tiene el sistema.
Sistema Decimal: 10 dígitos: 0, 1, 2, 3, 4, 5, 6, 7, 8, 9
Sistema Binario: 2 dígitos: 0, 1
Sistema Octal: 8 dígitos: 0, 1, 2, 3, 4, 5, 6, 7
Sistema Hexadecimal: 16 dígitos: 0, 1, 2, 3, 4, 5, 6, 7, 8, 9, A, B,
C, D, E, F
Ej.: Sistema Binario: (110011. 1101)2
Sistema Octal: (1437. 64)8
Sistema Hexadecimal: (AF10. B04)16
Sistema Decimal: (1531. 46)10
22/10/2008 Sistemas Digitales I - Ing. S. Ríos
8. CAPITULO1: CONCEPTOS INTRODUCTORIOS
AL DISEÑO DIGITAL
Decimal Binario Octal Hexadecimal
0 0000 0 0
1 0001 1 1
2 0010 2 2
3 0011 3 3
4 0100 4 4
5 0101 5 5
6 0110 6 6
7 0111 7 7
8 1000 10 8
9 1001 11 9
10 1010 12 A
11 1011 13 B
12 1100 14 C
13 1101 15 D
14 1110 16 E
15 1111 17 F
22/10/2008 Sistemas Digitales I - Ing. S. Ríos
9. CAPITULO1: CONCEPTOS INTRODUCTORIOS
AL DISEÑO DIGITAL
Notación Polinomial: Se expresa como una sumatoria de los dígitos
multiplicada por un factor que es la base elevada a un exponente.
n-1
(N)r= aj rj
J=-m
= an-1rn-1 + an-2rn-2 + … + a1r1 + a0r0+ a-1r-1 + a-2r-2 + …+ a-mr -m
Ej.: (1748.75)10 = 1x103 + 7x102 + 4x101 + 8x100 + 7x10-1 + 5x10-2
n= 4 y m = 2
(1011.101) 2 = 1x1011 + 0x1010 + 1x101 + 1x100 + 1x10-1 + 0x10-10 + 1x10-11
n=4ym=3
22/10/2008 Sistemas Digitales I - Ing. S. Ríos
10. CAPITULO1: CONCEPTOS INTRODUCTORIOS
AL DISEÑO DIGITAL
Método de Conversión de Base por Sustitución:
Sirve para convertir de cualquier base a decimal. Se usa la notación
polinomial.
Binario a Decimal:
Ej.: (1011.101)2 = 1x23 + 0x22+ 1x21+ 1x20 + 1x2-1 + 0x2-2 + 1x2-3
= 8 + 0 + 2 + 1 + 0.5 + 0 + 0.125
= (11.625)10
22/10/2008 Sistemas Digitales I - Ing. S. Ríos
11. CAPITULO1: CONCEPTOS INTRODUCTORIOS
AL DISEÑO DIGITAL
Octal a Decimal
Ej.: (150.1)8 = 1x82 + 5x81 + 0x80 + 1x8-1
n=3 = 64 + 40 + 0 + 0.125
m=1 = (104.125)10
Hexadecimal a Decimal
(10x160)
Ej.: (32A)16 = 3x162 + 2x161 + A x 160
= 768 + 32 +10
= (810)10
22/10/2008 Sistemas Digitales I - Ing. S. Ríos
12. CAPITULO1: CONCEPTOS INTRODUCTORIOS
AL DISEÑO DIGITAL
Método de Conversión de Base por Multiplicación y División para la Base
Utilizado para convertir de decimal a cualquier otra base
(N)10= (E10 . F10)
Por separado la parte entera de la fraccionaria.
De Decimal a Binaria
La parte entera la dividimos sucesivamente para 2 hasta cuando el
cociente sea igual a 0 .
Ej.: (19.75)10 ()2
19 2
LSD -1- 9 2 (19)10 = (10011. )2
-1- 4 2
-0- 2 2
-0- 1 2
-1- 0 Cociente = 0 fin de la conversión
22/10/2008 Sistemas Digitales I - Ing. S. Ríos
MSD
13. CAPITULO1: CONCEPTOS INTRODUCTORIOS
AL DISEÑO DIGITAL
De Decimal a Octal
La parte entera la dividimos para 8 sucesivamente hasta cuando el cociente
sea igual a 0
Ej.: (19.75)10 ()8
19 8 (19)10 = (23)8
LSD -3- 2 8
-2- 0 Cociente = 0
MSD
De Decimal a Hexadecimal
Dividimos para 16 la parte entera
Ej.: (423)10 ()16
423 16
LSD -7- 26 16 (423)10 = (1A7)16
-10- 1 16
-1- 0
22/10/2008 Sistemas Digitales I - Ing. S. Ríos
MSD
14. CAPITULO1: CONCEPTOS INTRODUCTORIOS
AL DISEÑO DIGITAL
La parte fraccionaria se la trabaja multiplicando por la base a la cual
queremos llegar. Puede darse conversión exacta e inexacta.
Si es inexacta: racionales – periódicos
= 0 exacta
Cj
0 inexacta
Cj es el último valor fraccionario
De Decimal a Binario: Multiplicamos por 2
Ej.: (0.75)10 = (0.11)2
MSD
0.75x2 = 1 +0.5
LSD
0.5x2 = 1+ 0 Cj=0 EXACTA
22/10/2008 Sistemas Digitales I - Ing. S. Ríos
15. CAPITULO1: CONCEPTOS INTRODUCTORIOS
AL DISEÑO DIGITAL
De Decimal a Octal: Multiplicamos por 8
Ej.: (0.75)10 = (0.6)8
0.75x8 = 6 + 0.0
Cj =0 EXACTA
De Decimal a Hexadecimal: Multiplicamos por 16
Ej.: (19.75)10 = (13.C)16
19 16 0.75x16 = 12 + 0
-3- 1 16 =C+0 EXACTA
-1- 0
22/10/2008 Sistemas Digitales I - Ing. S. Ríos
16. CAPITULO1: CONCEPTOS INTRODUCTORIOS
AL DISEÑO DIGITAL
Caso: De Binario a Octal: de 3 en 3 porque el mayor dígito octal = 7
se puede escribir con 3 dígitos binarios (7)8 = (111)2
Ej.: ( 100 111 010 .)2 (472)8
4 7 2
Caso: De Binario a Hexadecimal: de 4 en 4 porque el mayor dígito
hexadecimal = 15 se puede escribir con 4 dígitos binarios (F)16 =
(1111)2
Ej.: 00(11 1010 0110. )2 (3A6)16
3 A 6
22/10/2008 Sistemas Digitales I - Ing. S. Ríos
18. CAPITULO1: CONCEPTOS INTRODUCTORIOS
AL DISEÑO DIGITAL
Operaciones Aritméticas
Suma
De números Decimales De números Binarios
1111 1 acarreo 1111 11 acarreo
Ej.: 2954.764 Ej.: 10111.1011
+ 3875.643 10110.1110
0 6830.407 1 01110.1001
acarreo final acarreo final
De números Octales De números Hexadecimales
111 1
Ej.: 134.76 Ej.: F 0 1 . A
+ 257.34 +13C.1
0 414.32 103D.B
acarreo final acarreo final
22/10/2008 Sistemas Digitales I - Ing. S. Ríos
19. CAPITULO1: CONCEPTOS INTRODUCTORIOS
AL DISEÑO DIGITAL
Resta
Se realiza de 2 formas diferentes: -Tradicional
- Por complementos
Ej.: 1958.03 Minuendo Si préstamo final = 0 => Resultado positivo
- 1767.96 Sustraendo Si préstamo final = 1 => Recomplementamos
0 0190.07 (Negativo)
Repuesta +
Préstamo final
Ej.: 1011.11 Minuendo
- 1001.01 Sustraendo
0 0010.10
Repuesta +
Préstamo final
22/10/2008 Sistemas Digitales I - Ing. S. Ríos
20. CAPITULO1: CONCEPTOS INTRODUCTORIOS
AL DISEÑO DIGITAL
Complemento
Tenemos 2 tipos: - Complemento a la base
- Complemento a la base -1
Complemento a la Base (Complemento a la r):
( N) r,c = r n – ( N) r (Complemento a r de un número N en una base r)
r: base n: número de dígitos de la parte entera de N
Decimal:
Ej.: ( 1958.03)10 ( 1958.03)10,c = 104 -1958.03
r = 10 n = 4 = 8041.97
22/10/2008 Sistemas Digitales I - Ing. S. Ríos
21. CAPITULO1: CONCEPTOS INTRODUCTORIOS
AL DISEÑO DIGITAL
Binario:
Ej.: (10001.11)2 (10001.11)2,c = 25 - 10001.11
= 32 -10001.11
= 100000- 10001.11
r=2 n=5 = 01110.01
Regla en Binario
De derecha a izquierda escribo igual los números binarios hasta que
encuentro al 1er “1” lo escribo igual y los demás números los invierto.
22/10/2008 Sistemas Digitales I - Ing. S. Ríos
22. CAPITULO1: CONCEPTOS INTRODUCTORIOS
AL DISEÑO DIGITAL
Complemento a la Base -1 (Complemento a la r-1):
( N) r-1,c = r n – r -m - ( N) r
Decimal:
Ej.: ( 1958.03)10 (1958.03)9,c = 104 - 10-2 - 1958.03
n =4 r =10 m=2 = 8041.96
Regla: Para cada dígito se coloca un número que sumado de 9.
Binario:
Ej.: (10001.11)2 (10001.11)1,c = 25 - 2-2 – 10001.11
n =5 r =2 m =2 = 100000 – 0.01 – 10001.11
= 01110.00
Regla: Para cada dígito se coloca un número que sumado de “1”
22/10/2008 Sistemas Digitales I - Ing. S. Ríos
23. CAPITULO1: CONCEPTOS INTRODUCTORIOS
AL DISEÑO DIGITAL
Resta de Números por complemento a r (a la base)
Cuando restamos números sin signo por complemento a la base
si el resultado nos da acarreo = “1”, a este 1 se lo ignora y los
restantes dígitos son la respuesta con signo +. Por otro lado si la
respuesta da acarreo = 0 el resultado es negativo y deberá
recomplementarse. La única diferencia con el complemento a r-
1, es que es valor del acarreo los sumamos al dígito menos
significativo.
22/10/2008 Sistemas Digitales I - Ing. S. Ríos
24. CAPITULO1: CONCEPTOS INTRODUCTORIOS
AL DISEÑO DIGITAL
Decimales Complemento a 10
Ej.: 1958.03 Minuendo Se la realiza sacando el complemento al
- 1767.96 Sustraendo sustraendo y sumando ese valor al minuendo
=>
1958.03
+ 8232.04 (1767.96)10,c = 104 – 1767.96 = 8232.04
1 0190.07
acarreo Final = 1 => Respuesta = + (0190.07)10
22/10/2008 Sistemas Digitales I - Ing. S. Ríos
25. CAPITULO1: CONCEPTOS INTRODUCTORIOS
AL DISEÑO DIGITAL
Decimales Complemento a 10
Ej.: 1767.96 Minuendo
- 1958.03 Sustraendo
1767.96
+ 8041.97 (1958.03)10,c = 104 – 1958.03 = 8041.97
0 9809.93
acarreo Final = 0 => Respuesta = - y recomplementada
(9809.93)10,c = 104 – 9809.93 = 0190.07
Respuesta = - (0190.07)10
22/10/2008 Sistemas Digitales I - Ing. S. Ríos
26. CAPITULO1: CONCEPTOS INTRODUCTORIOS
AL DISEÑO DIGITAL
Binarios por Complementos a 2
Ej.: 100111.01 Minuendo
- 100100.11 Sustraendo
100111.01
+ 011011.01
1 000010.10
acarreo Final = 1 => R = + (000010.10)
Ej.: 10001.11
- 10111.10
10001.11
+ 01000.10
0 11010.01
Recomplementar R= - (00101.11)2
22/10/2008 Sistemas Digitales I - Ing. S. Ríos
27. CAPITULO1: CONCEPTOS INTRODUCTORIOS
AL DISEÑO DIGITAL
Resta de Números por Complemento a r-1 (a la base -1)
Decimales: Complemento a 9: El complemento sale colocando un
número que sumando sea = 9
Ej.: 1767.96 Minuendo 1767.96
- 1958.03 Sustraendo + 8041.96
0 9809.92
acarreo final = 0 => Recomplemento
Respuesta = - 0190.07
22/10/2008 Sistemas Digitales I - Ing. S. Ríos
28. CAPITULO1: CONCEPTOS INTRODUCTORIOS
AL DISEÑO DIGITAL
Producto:
Ej.: 0101 = 5
x 1101 = 13
0101
0000
0101
0101
1000001 = 65
Números con signo
0 + Convención
1 -
22/10/2008 Sistemas Digitales I - Ing. S. Ríos
29. CAPITULO1: CONCEPTOS INTRODUCTORIOS
AL DISEÑO DIGITAL
Sobrecarga
Cuando un resultado se va fuera del rango. El rango en binario se
define como: -2n + 1 (N)10 2n – 1
Ej.: n = 7 => -27 + 1 (N)10 27 – 1
- 127 (N)10 127
Para sobrecarga en binario nos fijamos en el acarreo final y el acarreo
sobre el dígito del signo. Si los 2 acarreos son iguales => no hay
sobrecarga y analizo el resultado tanto en signo como en magnitud.
Si ambos acarreos son diferentes => sobrecarga => añada una
columna más => expando con 0 para que siga siendo +
1 para que siga siendo -
22/10/2008 Sistemas Digitales I - Ing. S. Ríos
30. CAPITULO1: CONCEPTOS INTRODUCTORIOS
AL DISEÑO DIGITAL
Suma con Signos
En las sumas con signo se trabaja con la columna del signo normalmente y se
procede a la suma binaria. Para analizar el resultado primero nos fijamos si hay
o no sobrecarga.
Si no hay sobrecarga observamos el bit del signo en la respuesta. Si el bit es 0
=> la respuesta es positiva y es la encontrada. Si el bit del signo es 1 => la
respuesta es negativa y debe recomplementarse.
Ej.: (+6)10 + (+10)10 = +(16)10
111 0111
(+6)10 = 0110 00110 000110 No hay
(+10)10 = 01010 + 01010 + 001010 Sobrecarga
(+16)10 = 010000 0 10000 0 010000
Sobrecarga = expando bit signo R= +(10000)2
22/10/2008 Sistemas Digitales I - Ing. S. Ríos
31. CAPITULO1: CONCEPTOS INTRODUCTORIOS
AL DISEÑO DIGITAL
Ej.: (+6)10 + (-10)10 = -(4)10
(-10)10 = 10110
011
00110
+ 10110
0 11100
bit del signo R = -(0100)2
No hay sobrecarga
Ej.: Realice la siguiente suma. Las cantidades indicadas ya contienen el signo.
11111 1 011111 1
01110101 001110101
+ 01011101 + 001011101
0 11010010 0 011010010
Sobrecarga => expando Signo + R= +(11010010)2
22/10/2008 Sistemas Digitales I - Ing. S. Ríos
32. CAPITULO1: CONCEPTOS INTRODUCTORIOS
AL DISEÑO DIGITAL
Restas con Signo
Se realiza la resta con complemento a la base 2. Se analiza si existe
sobrecarga. Si no la hay => se estudia el bit del signo y se escribe el
resultado. Si hay sobrecarga se expande una columna.
Ej.: Realice la siguiente resta de números con signo por complemento:
0 111
01010111 Minuendo 01010111
- 11011111 Sustraendo + 00100001
0 01111000
Signo +
No hay sobrecarga
R= + (1111000)2
22/10/2008 Sistemas Digitales I - Ing. S. Ríos
33. CAPITULO1: CONCEPTOS INTRODUCTORIOS
AL DISEÑO DIGITAL
Ej: Realice la siguiente resta de números con signo por complemento:
0
11001001 11001001
- 01111111 + 10000001
1 01001010
Sobrecarga => expando
1
111001001 111001001
- 001111111 + 110000001
No hay 1 101001010
Sobrecarga
Signo - => recomplemento
R= - (10110110)2
22/10/2008 Sistemas Digitales I - Ing. S. Ríos
34. CAPITULO1: CONCEPTOS INTRODUCTORIOS
AL DISEÑO DIGITAL
Códigos
Codificar es dar un orden, es traducir una información
Código: es un grupo de dígitos que representan una información.
Existe códigos binario, BCD, de reflexión, etc.
Código Binario: 2n = número de combinaciones
n = número de dígitos del código
Ej.: 23 = 8 combinaciones con 3 dígitos
+ - . , *
001 011 010 100 101
¿Y si quiero codificar más de 8 símbolos distintos?
22/10/2008 Sistemas Digitales I - Ing. S. Ríos
35. CAPITULO1: CONCEPTOS INTRODUCTORIOS
AL DISEÑO DIGITAL
Códigos BCD (o NBCD): Cuando cada dígito de un número decimal se
representa con su equivalente binario => BCD. Ya que el mayor dígito
decimal es el 9 => se utilizan 4 bits siempre.
Ej.: ( 8 7 4 )10 () BCD
1000 0111 0100
(1000 0111 0100 ) NBCD
Ej.: ( 0110 1000 0011 1001) BCD
6 8 3 9
(6839)10
No es lo mismo un binario que un BCD o NBCD
Ej.: (137)10 = (10001001)2
8 bits
= (000100110111) BCD
22/10/2008 Sistemas Digitales I - Ing. S. Ríos
12 bits
36. CAPITULO1: CONCEPTOS INTRODUCTORIOS
AL DISEÑO DIGITAL
Código de Exceso de 3
Es un código NBCD porque la conversión se la hace para cada dígito.
A cada uno de los bits se le suma 3 antes de codificarlo en binario.
Ej.: (48)10 ( )xs3
4 8
+3 +3
7 11
(0111)2 (1011)2 (0111 1011)xs3
De Reflexión: se repiten ciertos dígitos y se cambia el primero
22/10/2008 Sistemas Digitales I - Ing. S. Ríos
37. CAPITULO1: CONCEPTOS INTRODUCTORIOS
AL DISEÑO DIGITAL
Código de Distancia Unitaria: Ocurre cuando de uno a otro código
cambia solo un bit a la vez
Código Gray: Es un código de distancia unitaria
De Gray a Binario: de izquierda a derecha busco el 1er “1” y lo
escribo igual. Luego escribo 1´s hasta que el siguiente 1 es
encontrado, en cuyo caso escribo un “0”. Entonces escribo 0´s
hasta encontrar el siguiente 1 en cuyo caso escribo un “1” y así
sucesivamente.
Ej.: (101010)Gray
(110011)2
22/10/2008 Sistemas Digitales I - Ing. S. Ríos
38. CAPITULO1: CONCEPTOS INTRODUCTORIOS
AL DISEÑO DIGITAL
De Binario a Gray: Colocar un “0” al lado del MSD y comenzando por
la izquierda realice EXOR entre los bits adyacentes.
2 iguales => 0 A B A+ B
2 diferentes => 1 0 0 0
0 1 1
1 0 1
1 1 0
Ej.: 0(1 1 0 0 1)2 => (10101)GRAY
10 101
Ej.: 0(1 0 1 0 1 0 0)2 => (1111110)Gray
1 1 1 1 1 10
22/10/2008 Sistemas Digitales I - Ing. S. Ríos
39. CAPITULO1: CONCEPTOS INTRODUCTORIOS
AL DISEÑO DIGITAL
Códigos Alfanuméricos:
ASCII(American Standar Code for Information Interchange) 7 dígitos
EBCDIC (Extended Binary Coded Decimal Interchange Code) 8 dígitos
Ej.: A 1000001 ASCII 7 dígitos
A 1 1000001 EBCDIC 8 dígitos
Extendido
22/10/2008 Sistemas Digitales I - Ing. S. Ríos
40. CAPITULO1: CONCEPTOS INTRODUCTORIOS
AL DISEÑO DIGITAL
Código de Detección de Errores:
Se añade un dígito más a una palabra
X Y
Transmisión Medio de Recepción
transmisión
Paridad Par: se añade un cero en caso par de unos
Ej.: 01000001 A con paridad par
Paridad Impar: se añade un cero en caso de que exista un número
impar de unos
Ej.: 11000001 A con paridad impar
22/10/2008 Sistemas Digitales I - Ing. S. Ríos
41. CAPITULO1: CONCEPTOS INTRODUCTORIOS
AL DISEÑO DIGITAL
Bloque de información (con paridad par):
Ej.: 1 00100 Bloques Par x Par
1 10000 ó Impar x Impar
0 01010
1 10101
1 10000
0 11011
22/10/2008 Sistemas Digitales I - Ing. S. Ríos
43. Capítulo 2.- Fundamentos Del Diseño Digital
Lógica: es el proceso de clasificación de la información; en donde la
información tiene que estar relacionada con aseveraciones y no puede
ser interrogaciones o exclamaciones. Nos interesa la lógica binaria:
F => 0 y V => 1
Los pensamientos se expresan como proposiciones. Los proposiciones se
representan por variables lógicas que pueden ser verdaderas o falsas.
Ej.: primeras letras del alfabeto mayúsculas: A, B, C, D, E, F.
últimas letras del alfabeto minúsculas: p, q, r, s, t,…, x, y, z.
22/10/2008 Sistemas Digitales I - Ing. S. Ríos
44. Capítulo 2.- Fundamentos Del Diseño Digital
Además se debe especificar el tipo de lógica o la condición
de polarización.
Ej.:
(Variable lógica).(Condición de Polarización de la variable)
(Nemónico) . (Condición de la Polarización)
A. L MS . H
B.H MB . L
22/10/2008 Sistemas Digitales I - Ing. S. Ríos
45. Capítulo 2.- Fundamentos Del Diseño Digital
Tabla de Verdad: Es una manera de tabular o listar todas las posibles
combinaciones que forman las variables de entrada con sus
respectivas salidas.
A B F
0 0 0 A Circuito F
B digital
0 1 0
1 0 1
1 1 1 2n = # de combinaciones
Para unir las variables lógicas se usan conectores:
Conectores Naturales: And, or, no
Conectores No Naturales: Exor, Nexor
22/10/2008 Sistemas Digitales I - Ing. S. Ríos
46. Capítulo 2.- Fundamentos Del Diseño Digital
Conectores Naturales: Tablas de Verdad
AND (Multiplicación Lógica)
A B A AND B A B A.B
F F F 0 0 0
F V F 0 1 0
V F F 1 0 0
V V V 1 1 1
22/10/2008 Sistemas Digitales I - Ing. S. Ríos
47. Capítulo 2.- Fundamentos Del Diseño Digital
Conectores Naturales: Tablas de Verdad
OR (Suma Lógica)
A B A OR B
A B A +B
F F F
0 0 0
F V V
0 1 1
V F V
1 0 1
V V V
1 1 1
NO (Negación Lógica)
A NO A A A
F V A A Teorema de
0 1
V F Involución
1 0
22/10/2008 Sistemas Digitales I - Ing. S. Ríos
48. Capítulo 2.- Fundamentos Del Diseño Digital
Condición de Polarización
V Depende de los niveles de voltaje
Sabemos que A o del tipo de lógica usada sabremos
F cuando es V o F
L A es Falso L A es Verdadero
A.H A.L
H A es Verdadero H A es Falso
Lógica Positiva Lógica Negativa
22/10/2008 Sistemas Digitales I - Ing. S. Ríos
49. Capítulo 2.- Fundamentos Del Diseño Digital
Lógica Mixta: Mezcla de las 2 lógicas
L Falso
Positiva
A.L A.H H Verdadero
A.H A.L
L Verdadero
Negativo
H Falso
22/10/2008 Sistemas Digitales I - Ing. S. Ríos
50. Capítulo 2.- Fundamentos Del Diseño Digital
Tablas de Voltaje:
AND ( Puertas de Producto)
Tabla de Verdad Tabla de Voltaje Puerta Lógica AND
A B A.B A.H B.H (A.B).H
0 0 0 L L L A.H
L H L (A . B) .H
0 1 0
B.H
1 0 0 H L L
1 1 1 H H H
22/10/2008 Sistemas Digitales I - Ing. S. Ríos
51. Capítulo 2.- Fundamentos Del Diseño Digital
Tablas de Voltaje:
NAND
Tabla de Verdad Tabla de Voltaje Puerta Lógica NAND
A B A NAND B A.H B.H (A.B).L
0 0 1 L L H A.H
0 1 1 (A . B) L
L H H
B.H
1 0 1 H L H
1 1 0 H H L
22/10/2008 Sistemas Digitales I - Ing. S. Ríos
52. Capítulo 2.- Fundamentos Del Diseño Digital
OR
Tabla de Voltaje Puerta Lógica OR
A.L B.L A.B.L
A.L
H H H (A . B). L
H L H B.L
L H H
L L L
22/10/2008 Sistemas Digitales I - Ing. S. Ríos
53. Capítulo 2.- Fundamentos Del Diseño Digital
NOR
Tabla de Voltaje Puerta Lógica NOR
A.L B.L A.B.H
A.L
H H L A . B. H
H L L
B.L
L H L
L L H
22/10/2008 Sistemas Digitales I - Ing. S. Ríos
54. Capítulo 2.- Fundamentos Del Diseño Digital
OR (Puertas de Suma)
Tabla de Verdad Tabla de Voltaje Puerta Lógica OR
A B A+B A.H B.H A+B.H
A.H
0 0 0 L L L A+B.H
B.H
0 1 1 L H H
1 0 1 H L H
1 1 1 H H H
Tabla de voltaje para OR da iguales valores ya sea puerta de suma o de
producto
22/10/2008 Sistemas Digitales I - Ing. S. Ríos
55. Capítulo 2.- Fundamentos Del Diseño Digital
NOR (Puertas de Suma)
Tabla de Verdad Tabla de Voltaje Puerta Lógica NOR
A B A NOR B A.H B.H A+B.L
A.H
0 0 1 L L H A+B.L
B.H
0 1 0 L H L
1 0 0 H L L
1 1 0 H H L
22/10/2008 Sistemas Digitales I - Ing. S. Ríos
56. Capítulo 2.- Fundamentos Del Diseño Digital
NAND
Tabla de Voltaje Puerta Lógica NAND
A.L B.L A+B.H
H H L A.L
(A+B).H
L H H
B.L
H L H
L L H
22/10/2008 Sistemas Digitales I - Ing. S. Ríos
57. Capítulo 2.- Fundamentos Del Diseño Digital
AND
Tabla de Voltaje Puerta Lógica AND
A.L B.L A+B.L
H H H
A.L
H L L (A+B).L
B.L
L H L
L L L
22/10/2008 Sistemas Digitales I - Ing. S. Ríos
58. Capítulo 2.- Fundamentos Del Diseño Digital
NO
Tabla de Verdad Inversor
A A A.H A.L
0 1 A.H A .L
1 0
A.L A .H
A.L A.H
22/10/2008 Sistemas Digitales I - Ing. S. Ríos
59. Capítulo 2.- Fundamentos Del Diseño Digital
Operadores No Naturales
OR EXCLUSIVO
Tabla de Verdad Tabla de Voltaje Puerta Lógica EXOR
A B A B A.H B.H A B.H A.H
A B.H
0 0 0 L L L B.H
0 1 1 L H H
1 0 1 H L H
1 1 0 H H L
22/10/2008 Sistemas Digitales I - Ing. S. Ríos
60. Capítulo 2.- Fundamentos Del Diseño Digital
NEXOR
Tabla de Verdad Tabla de Voltaje Puerta Lógica NEXOR
A B A NEXOR B A.H B.H A B.L
A.H
A B.L
0 0 1 L L H
B.H
0 1 0 L H L
1 0 0 H L L
1 1 1 H H H
22/10/2008 Sistemas Digitales I - Ing. S. Ríos
61. Capítulo 2.- Fundamentos Del Diseño Digital
Coincidencia
Tabla de Verdad Tabla de Voltaje Puerta Lógica
Coincidencia
A B A . B A.H B.H A . B.H
0 0 1 L L H A.H
0 1 0 L H L (A . B) H
B.H
1 0 0 H L L
1 1 1 H H H
22/10/2008 Sistemas Digitales I - Ing. S. Ríos
62. Capítulo 2.- Fundamentos Del Diseño Digital
Inversor de Voltaje ¿que hacer cuando no lo encontramos en el mercado?
A.H A.L
- Con NAND: corto circuito o puenteo las entradas o conecto a +Vcc una
entrada
- Con NOR:
A.L A.H
22/10/2008 Sistemas Digitales I - Ing. S. Ríos
63. Capítulo 2.- Fundamentos Del Diseño Digital
Implementación de Circuitos Digitales
A.H
B.H Circuito F.H
C.H Digital
Existen diferentes maneras de implementar el circuito lógico dependiendo
de la lógica y puertas usadas
F ABC AB BC
22/10/2008 Sistemas Digitales I - Ing. S. Ríos
64. Capítulo 2.- Fundamentos Del Diseño Digital
Usando solo And, Or, e Inversores
A.H AB C .H
B.H
C.H
A.H A.L A B.H F.H
B.H
B.H B C.H
C.H
Usando And, Nand (suma) e Inversores
A.H
ABC.H
B.H
C.H ABC.L
F.H
AB.H AB.L
A.H
B.H
B.H BC.H BC.L
22/10/2008 C.H Sistemas Digitales I - Ing. S. Ríos
65. Capítulo 2.- Fundamentos Del Diseño Digital
Usando solo Nand
22/10/2008 Sistemas Digitales I - Ing. S. Ríos
66. Capítulo 2.- Fundamentos Del Diseño Digital
Usando solo Puertas NAND de 2 Entradas
22/10/2008 Sistemas Digitales I - Ing. S. Ríos
67. Capítulo 2.- Fundamentos Del Diseño Digital
Puertas Lógicas Resumen
Producto Suma Nombre ECG Descripción
AND 7408 4 And, 2
entradas
NAND 7400 4 Nand, 2
entradas
NOR 7402 4 Nor, 2
entradas
OR 7432 4 Or, 2 entradas
EXOR 7486 4 Exor
NEXOR 74266 4 Nexor
INVERSOR 7404 6 Inversores
22/10/2008 Sistemas Digitales I - Ing. S. Ríos
68. Capítulo 2.- Fundamentos Del Diseño Digital
Circuitos Integrados
Los C. I. digitales son una colección de resistores, diodos y
transistores fabricados sobre una pieza de material semiconductor
(Si) denominada sustrato. El C.I. se encuentra dentro de un
encapsulado plástico o de cerámica con terminales. El más común
encapsulado es el Dip (Dual in line package)
22/10/2008 Sistemas Digitales I - Ing. S. Ríos
69. Capítulo 2.- Fundamentos Del Diseño Digital
Algebra de Boole
Postulados de Huntington
Axiomas
1.- Sobre un conjunto S de elementos que es cerrado con respeto a
un operador, si para cada par de elementos en S, el operador
especifica un único resultado el cual también es un elemento de S.
A, B S
C=A.B
C S
2.a.- Existe un elemento 0 en S tal que para cada A en S A+0=A
2.b.- Existe un elemento 1 en S tal que para cada A en S A.1= A
3.a.- Leyes Conmutativas A+B = B+A
3.b.- A.B = B.A
4.a.- Leyes Distributivas A+(B.C) = (A+B).(A+C)
4.b.- A.(B+C) = (A.B)+(A.C)
5.- Para cada A en S existe un elemento A tal que A+A = 1
A.A = 0
22/10/2008 Sistemas Digitales I - Ing. S. Ríos
70. Capítulo 2.- Fundamentos Del Diseño Digital
Identidades
0.A=0 1+A=1
1.A=A 0+A=A
A.A=A A+A=A
A.A=0 A+A=1
A=A
Teoremas
A+AB=A Absorción
A+AB=A+B Absorción
AB+AB=A Adyacencia Lógica
A+B+C+… = A . B . C ….. De Morgan
A.B.C……= A + B + C +…. De Morgan
22/10/2008 Sistemas Digitales I - Ing. S. Ríos
71. Capítulo 2.- Fundamentos Del Diseño Digital
Representación de expresiones Lógicas
Productos Lógicos (Minitérminos) SOP
Suma de productos en la forma canónica
F1=f(A,B,C)
A Circuito
F1 F2=g(A,B,C)
B
Digital
C F2
Partimos de la tabla de verdad
Minitérminos A B C F1 F2 F1 = (minitérminos = 1)
m0 0 0 0 0 1 F1 = (1,2,6,7)
m1 0 0 1 1 0 F1 = m1 + m2 + m6 + m7
m2 0 1 0 1 1 Para que m1 = 1 los valores
m3 0 1 1 0 0 de verdad de los productos
m4 1 0 0 0 1 deben ser iguales a 1
m5 1 0 1 0 0 m1 = 1 Con A=0; B=0; C=1
m6 1 1 0 1 1 m1 = A B C
m7 1 1 1 1 1
22/10/2008 Sistemas Digitales I - Ing. S. Ríos
72. Capítulo 2.- Fundamentos Del Diseño Digital
m2 = A B C m6 = A B C m7 = A B C
F1 = A BC+ABC+ABC+ABC
F1 = A (B C + B C) + A (B C + B C)
F1 = A (B C) + A B (C + C)
F1 = A (B C) + A B
F2 = (minitérminos = 1)
F2 = (0,2,4,6,7)
F2 = m0 + m2 + m4 + m6 + m7
F2 =ABC+ABC+ABC+ABC+ABC
22/10/2008 Sistemas Digitales I - Ing. S. Ríos
73. Capítulo 2.- Fundamentos Del Diseño Digital
Sumas Lógicas (Maxitérminos) POS Productos de Sumas en la
forma canónica
Maxitérminos A B C F1 F2 F1 = (Maxitérminos = 0)
M0 0 0 0 0 1 F1 = (0,3,4,5)
M1 0 0 1 1 0 F1 = M0 . M3 . M4 . M5
M2 0 1 0 1 1 Para que M0 = 0 los valores
M3 0 1 1 0 0 de verdad de los sumandos
M4 1 0 0 0 1 deben ser iguales a 0
M5 1 0 1 0 0 M0 = 0 Con A=0; B=0; C=0
M6 1 1 0 1 1 M0 = A + B + C
M7 1 1 1 1 1
F1 = (A + B + C).(A + B + C).(A + B + C).(A + B + C)
0 valor no negado en los POS
1 valor no negado en los SOP
22/10/2008 Sistemas Digitales I - Ing. S. Ríos
74. Ejercicio: Para la siguiente tabla de verdad encuentre la
función lógica mínima.
ABCD F1 F1 = (miniterminos = 1)
0000 1 F1 = (0,1,2,3,8,9,10,11)
0001 1
0010 1
0011 1
0100 0
0101 0
0110 0
0111 0
1000 1
1001 1
1010 1
1011 1
1100 0
1101 0
1110 0
1111 0
22/10/2008 Sistemas Digitales I - Ing. S. Ríos
75. Mapa de Karnaugh
Mapa de dos variables
A B F Con SOP: A A
m0 F= (1,3)
0 0 0 0 2
F= m1 +m3 B 0 0
m1 0 1 1 F= B+AB
B 1 1 1 3
F=B( +A)
m2 1 0 0 F=B
m3 1 1 1 Con el mapa F=B
22/10/2008 Sistemas Digitales I - Ing. S. Ríos
76. Mapa de Karnaugh
Cada Celda corresponde a cada minitérmino.
Se agrupan los 1 para trabajar con SOP.
Se realizan agrupamientos de 1’s adyacentes.
No existen adyacencia en las diagonales.
Se realizan agrupamientos de 1’s en 2n celdas:
1,2,4,8,16 etc celdas.
El número de variables eliminadas de la expresión =n
La variable constante permanece como parte del
agrupamiento. La(s) variable(s) que cambia(n) de valor
se eliminan del resultado.
Por lo menos un 1 del agrupamiento debe quedar
cubierto solo una vez.
22/10/2008 Sistemas Digitales I - Ing. S. Ríos
77. Mapa de Karnaugh
A A A A A
B 0 0 1 2 0 0 1 2 1 0 1 2 1 0
B 0 1 1 3 B 1 1 1 3 B 1 1 1 3 B 0 1
F=A F=A+B F=1 F= B + A B
F= A + B
22/10/2008 Sistemas Digitales I - Ing. S. Ríos
78. Mapa de Karnaugh
Mapa de tres Variables
A B C F
0 0 0 1
A
0 0 1 1 10 12 16 14
0 1 0 1 C 11 13 17 05
0 1 1 1
B
1 0 0 0
1 0 1 0 F= +B+C
1 1 0 0
1 1 1 0 A
A 1 0 0 1
10 12 06 04 C 1 0 0 1
C 11 13 07 05 B
F=B
B
F=A
22/10/2008 Sistemas Digitales I - Ing. S. Ríos
79. Mapa de Karnaugh
Mapa de cuatro variables
A
1 1
A
10 14 012 08 D
C 1 1
11 15 113 19
D B
13 17 115 111
F= B D
C
02 06 014 010
A
B 1 1
1 1
1 1 D
F= C + D
C 1 1
B
F=B
22/10/2008 Sistemas Digitales I - Ing. S. Ríos
80. Mapa de Karnaugh
Mapa de 5 variables
A
B B
12 8 28 24
1 0 1 4 1 16 1 20
13 9 25
1 1 1 5 1 17 1 21 29
7 11 E 23 27 E
3 15 19 31
D 6 10 D 22 26
2 14 18 30
C C
F= B D
22/10/2008 Sistemas Digitales I - Ing. S. Ríos
81. Mapa de Karnaugh
Mapa de 6 variables
B B
AB
AB
22/10/2008 Sistemas Digitales I - Ing. S. Ríos
82. Mapa de Karnaugh
Implicante Primo: es cualquier agrupamiento que no esté cubierto
por un agrupamiento más grande.
Implicante Esencial: es un agrupamiento primo que tiene 1’s que
están cubiertos por un solo agrupamiento (Agrupamientos que se
realizan de una sola manera posible).
Implicante Necesario: Es el que nos ayuda a reducir la expresión
lógica.
Implicante Opcional: varias expresiones lógicas mínimas de las
cuales solo una es válida.
Implicante Redundante: es el que no es necesario.
22/10/2008 Sistemas Digitales I - Ing. S. Ríos
83. Condiciones sin importancia (Don’t Care)
La salida Ø se produce para cierta
A combinación de entrada que en el
Circuito
B
Digital
F mundo real es inexistente.
C
A
-Ø 0 0 1 Ø
Don´t Care -x C 0 Ø 1 1
A B C F -d
0 B
0 0 0 Ø
1
0 0 1 0 F= A
0 1 0 1
0 1 1 0 Da lo mismo tener un cero que un uno
1 0 0 1 al hacer la implementación o el diseño
0
1 0 1 Ø ya que por lo general son condiciones
1
1 1 0 0 que en las entradas no suceden.
1 1 1 0
22/10/2008 Sistemas Digitales I - Ing. S. Ríos
84. Ejemplo
Caso típico
0 apagado
Diodos emisores de luz 1 encendido
a
b a
x1 c
Decodificador f b
x2 d g
para Display
x3 e
de 7 segmentos
x4 f e c
g
d
NBCD Pantalla Típica
Punto decimal
Para este decodificador las entradas son X1, X2, X3, X4 y las salidas son a,
b, c, d, e, f, g. Los números NBCD están en el rango de 0 a 9. Las
combinaciones posibles con 4 entradas son 16 pero solo 10 serán
ocupadas. Las combinaciones que no se ocupan en las salidas serán Ø.
22/10/2008 Sistemas Digitales I - Ing. S. Ríos
87. Método de la variable entrante en el mapa ( VEM)
En un mapa se introduce la variable y se reduce una variable en el mapa.
Para ingresar la variable C agrupo sus 2 posibilidades conservando iguales
las combinaciones de A y B y multiplico por el valor de la función.
A B C F A A
0 0 0 1 C+C 0 1 0 1 0
0 0 1 1 1 C 1 1 0 Ø
B c c
0 1 0 0 B
VEM VEM
0 1 1 1
1 0 0 0
Se agrupan celdas adyacentes y que tengan variables iguales, la
suma de variables únicas o grupos de productos iguales. Solo
1 0 1 Ø
variables en el Paso 1 y de no haber con quien agrupar entonces
1 1 0 1 se agrupan con 1 o con Ø. Si alguien falta de agrupar, se lo
1 1 1 0 realizará en el paso 2. Se agrupan variables VEM o VEM en el
paso 1 obligatoriamente. No es obligatorio para VEMØ o VEMØ
22/10/2008 Sistemas Digitales I - Ing. S. Ríos
88. Método de la variable entrante en el mapa ( VEM)
Paso 1
a) Agrupamos todas las VEM o VEM únicas que no pueden agruparse con otra VEM ó VEM idéntica
o con un “1” o con “Ø” (islas).
b) Agrupamos todas los MEV dobles (formamos grupos de 2 VEM).
c) Formamos grupos de una VEM con un “1”
d) Formamos grupos de una VEM con un “Ø”
e) Formamos grupos de 4 VEM idénticos o con 1 o Ø; 8,16 ect.
Paso 2
a) Reemplazar las VEM o VEM por un “0”
b) Reemplazar 0 0; Ø Ø
c) Reemplazar 1 1 Si no está completamente cubierto: A + A = 1
Ø Si está completamente cubierto.
d) Reemplazar VEM Ø ó VEM Ø “0”.
e) Reemplazar VEM + VEM Ø 1 Si no está cubierto o si solo el Ø está cubierto.
VEM + VEM Ø Ø Si está completamente cubierto o si solo el VEM está cubierto.
VEM
c Ø+c c Ø+c
22/10/2008 Sistemas Digitales I - Ing. S. Ríos
89. Capítulo 2.- Fundamentos Del Diseño
Digital
Ejemplo: I ngrese c al mapa y obtenga la expresión lógica mínima para F ( celdas con
variables únicas se agrupan primero)
Ø c+ Ø c = Ø
A B C F
0 0 0 0
Paso 1 Paso 2
0 0 1 0
A
0 1 0 1
0 1 1 1
A
1 0 0 1
0 c
0 0
1 0 1 0
1 1 0 Ø B c+c1 cØ+cØ
B 1 Ø
1 1 1 Ø 1 Ø
F=C A + B
22/10/2008 Sistemas Digitales I - Ing. S. Ríos
91. HDL: Lenguaje de Descripción
del Hardware
Similar a un lenguaje de computadora excepto que un
HDL describe Hardware que luego de simulado puede ser
construido.
Existen 2 HDL que son estándares IEEE: VHDL (Very High
Speed Integrated Circuit Hardware Description Lenguage)
y Verilog HDL.
El VHDL es más popular pero ambos se usan a nivel
industrial.
Inicio en 1980 en el Departamento de Defensa (DoD).
Luego en 1983 formalmente empezaron el proyecto VHDL
con: Intermetrics, Texas Instruments e IBM.
IEEE empezó la estandarización en 1984 que luego se
aprobó en 1987 con el número 1076.
En 1994 el IEEE publicó la revisión del estandar IEEE Std
1076-1993 que es la que se encuentra vigente.
92. VHDL
Trabaja con diseño jerárquico: top – down o down - top.
Independencia tecnológica que permite diseñar circuitos
cuya descripción no depende de la forma de
implementación física posterior.
Universalidad, es decir compatibilidad con un gran
número de herramientas CAD.
Diferentes tipos de Descripciones: Sistema, algorítmico,
RTL, Lógico, Conmutación, Eléctrico, Físico.
Características: Se declara una caja negra (entity) con
un identificador para el circuito, y sus terminales de
entrada y salida. También se declaran las direcciones de
los terminales (in, out) y el tipo de datos que admiten.
Luego se describe el circuito en sí dentro del cuerpo de
una arquitectura. Esta descripción difiere según el nivel.
93. Estructura de un programa en
VHDL
Cuando se utiliza VHDL, un sistema digital se divide en varios bloques para
efectuar el proceso lo más comprensible y que sea fácil de probar y de dar
mantenimiento. En VHDL, cada porción del diseño es considerado un
bloque, que es descrito en el lenguaje, mediante una entidad y una
arquitectura.
La entidad me describe el exterior de mi circuito y la arquitectura su
comportamiento interno.
entidad 1
Bloque 1 arquitectura 1
entidad 2 entidad 3
Bloque 2 Bloque 3 arquitectura 2 Arquitectura 3
entidad 4
Bloque 4
arquitectura 4
94. Ejemplo de entidad y arquitectura
ENTI TY nand2 I S A
PORT(I1,I2: I N BIT; F
O: OUT BIT); B
END nand2;
ARCHI TECTURE C1 OF nand2 I S
BEGI N
O<=NOT(I1 AND I2)
END C1;
Adicionalmente el archivo de texto creado se graba con extensión vhd.
Para nuestro ejemplo: nand2.vhd
95. Estructura Básica de un programa VHDL.
Se inicia declarando las bibliotecas que se usarán en el
programa.
Ej: LIBRARY ieee;
USE ieee.std_logic_1164.all;
USE ieee.std_logic_unsigned.all;
Luego se indica la entidad con sus entradas, salidas y los
modos y tipos de datos.
Modo: IN OUT BUFFER INOUT
Entrada Salida Salida realimentada Bidireccional
Tipo: BIT, STD_LOGGIC, STD_LOGIC_VECTOR
Después se lista la arquitectura.
96. Estructura Básica de un programa VHDL.
LI BRARY ieee;
USE ieee.std_logic_1164.all;
USE ieee.std_logic_unsigned.all;
ENTI TY <nombre_entidad> I S
PORT(<nombre_pin>: <modo><tipo>;
<nombre_pin>: <modo><tipo>);
END <nombre_entidad>;
ARCHI TECTURE <nombre_arquitectura> OF <nombre_entidad> I S
BEGI N
<sentencia>; <comentario>
<sentencia>; <comentario>
END <nombre_arquitectura>;
98. Ejemplos de tipos de datos
BIT: describe valores binarios. Rango: ‘0’, ‘1’
Ejemplo:
ENTI TY nand2 I S
PORT(A,B: I N BIT;
F: OUT BIT);
END nand2;
BIT_VECTOR: describe cadenas de bits. Rango: conjunto de
bits. Se escribe entre comillas: “1010”
Ejemplo:
ENTI TY manejador I S
PORT (S: IN BIT_VECTOR (3 DOWNTO 0);
X: OUT BIT_VECTOR (1 TO 7));
END manejador;
99. Ejemplos de tipos de datos
CHARACTER: describe caracteres. Rango:
son los 256 caracteres del estandar ISO
8859-1: 1987 los 128 primeros son los
caracteres ASCII.
‘a’
STRING: describe cadenas de caracteres.
Rango: conjunto de caracteres.
“abcde”
100. Estructura de un programa
escrito en VHDL
En VHDL una arquitectura ARCHI TECTURE nombre_arq OF nombre_ent I S
tiene dos partes: La
región de las declaraciones [Declaración de señales]
[Declaración de tipos]
y el cuerpo de la [Declaración de variables]
arquitectura. [Declaración de constantes]
[Declaración de componentes]
La región de declaraciones [Especificación de atributos]
precede la palabra clave
BEGIN. Puede ser usada BEGI N
para declarar señales, {Instanciación de componentes}
variables y constantes. {Enunciado concurrente}
{Enunciado secuencial [Proceso]}
También puede ser usada
para declarar componentes END nombre_arq;
y especificar atributos.
101. Tipos de descripciones dentro
de la arquitectura
Estructural o lógica: Descripción exacta
del esquema lógico que resuelve la
función objeto del diseño.
De flujo de datos o RTL.
Comportamental o algorítmica
(descripción funcional).
102. Descripción Estructural o lógica
En la descripción estructural el cuerpo
de la arquitectura se transforma en una component nombre_componente
descripción exacta del esquema lógico.
Para la descripción estructural el VHDL port (señales_entrada: modo tipo;
se apoya en las declaraciones de
componentes señales_salida: modo tipo);
La cantidad de declaraciones de
componentes debe de corresponder con end component;
la cantidad de componentes distintas
que formarán parte del circuito físico
que realiza la función lógica a diseñar.
La declaración component posee una
estructura similar a la de una entidad,
pero no tiene la misma connotación.
103. Descripción Estructural o lógica
En la sección de declaraciones de la
arquitectura (región ubicada entre la ARCHI TECTURE nombre_arq OF nombre_ent I S
palabra reservada architecture y la [ Declaración de tipos]
palabra begin) puede existir la necesidad [ Declaración de señales]
[ Declaración de variables]
de realizar algunas declaraciones de [ Declaración de constantes]
señales internas, las cuales intervienen [ Declaración de componentes]
[ Especificación de atributos]
en la descripción del circuito, pero que
no tienen acceso a los terminales BEGI N
externos del diseño (no están declaradas I nstanciación de componentes
en la entidad.
...
Aparecen en mayúsculas las palabras
I nstanciación de componentes
reservadas del lenguaje VHDL para
resaltarlas, pero no es necesario ya que END nombre_arq;
el VHDL no es sensible al tipo de letra
104. Descripción Estructural o lógica
Ej: Realizar la
descripción en VHDL de A
tipo estructural de la B
Y
operación EXOR
Y = AB + AB
ENTITY XOR IS
PORT (A,B: IN BIT;
Y: OUT BIT);
END XOR;
105. Descripción Estructural o lógica
La arquitectura puede ser la siguiente:
Architecture XOR1 of XOR is
- - declaración de señales
signal AN, BN : bit;
signal ANB, ABN : bit;
- - declaración de componentes
A AN ANB
component INV
port (I: in bit; B
Y
O: out bit);
end component;
component AND2
port (I1, I2: in bit; ABN
O: out bit); BN
end component;
component OR2
port (I1, I2: in bit;
O: out bit);
end component;
106. Descripción Estructural o lógica
Estamos usando 3 tipos begin
de componentes: un -- instanciación de componentes
inversor (declarado INV), U1: INV port map (A,AN);
una compuerta AND de U2: INV port map (B,BN);
dos entradas (declarada U3: AND2 port map (AN,B,ANB);
AND2) y una compuerta U4: AND2 port map (A,BN,ABN);
OR de dos entradas U5: OR2 port map (ANB,ABN,Y);
(declarada OR2). end XOR1;
Para la descripción de la
función lógica XOR se
emplearon dos instancias,
U1 y U2 de INV; dos
instancias U3 y U4 de
AND2 y una instancias U5
de OR2.
107. Descripción Estructural o lógica
En la asociación nominal o component OR2
explícita se vuelve port (I1, I2: in bit;
O: out bit);
irrelevante el orden de los end component;
parámetros, por cuanto
dentro del paréntesis se begin
indican explícitamente las ...
señales que se conectan a - - asociación explícita
los terminales de las
U5: OR2 port map(O=>Y, I1=>ANB,
componentes, mediante el I2=>ABN);
símbolo => de asignación
end XOR1;
108. Descripción Estructural o lógica
ENTI TY XOR I S component AND2
PORT (A, B: I N BIT; port (I1, I2: in bit;
Y: OUT BIT); O: out bit);
END XOR; end component;
component OR2
Architecture XOR1 of XOR is port (I1, I2: in bit;
- declaración de señales O: out bit);
signal AN, BN : bit; end component;
signal ANB, ABN : bit; begin
- declaración de componentes - instanciación de componentes
U1: INV port map(A,AN);
component INV U2: INV port map(B,BN);
port (I: in bit; U3: AND2 port map(AN,B,ANB);
O: out bit); U4: AND2 port map(A,BN,ABN);
end component; U5: OR2 port map(ANB,ABN,Y);
end XOR1;
Evidentemente, el estilo estructural de la escritura de una arquitectura
es extenso, incluso para circuitos relativamente pequeños, por lo que si
el circuito es grande su escritura puede ser tediosa y propensa a
cometer errores.
109. Descripción Estructural o lógica
Uno de los tipos de señales
con que trabaja en VHDL es
el arreglo de señales, tanto
del tipo bit_vector, como del
tipo std_logic_vector. Esto
permite escribir de forma
más compacta los diseños en
VHDL.
Ellos representan un arreglo
de bits y se utilizan con
dispositivos multiterminales.
110. Descripción Estructural o lógica
Ej: Realizar la
descripción VHDL de
tipo estructural de un
decodificador de 2
entradas y 4 salidas,
activadas con el nivel
bajo, y una entrada
de habilitación,
también activa en el
nivel bajo.
111. Descripción Estructural o lógica
Lo primero es realizar la architecture decod_a of decod2x4 is
declaración de la entidad. La -- declaración de señales
declaración de la arquitectura signal AN(1),AN(0), EN: bit;
del decodificador, en su
-- declaración de componentes
primera parte, corresponde a
la declaración de los component INV
port (I: in bit;
diferentes tipos de O: out bit);
componentes. Se usan dos end component;
tipos de componentes: INV, component NAND3
un inversor y NAND3, una port (I1, I2, I3: in bit;
compuerta NAND de 3 O: out bit);
end component;
entradas.
112. Descripción Estructural o lógica
begin
--instanciación de componentes
En el cuerpo de la U1: INV port map (A(0),AN(0));
arquitectura se observa la U2: INV port map (A(1),AN(1));
instanciación de los 7 U3: INV port map (NEN,EN);
componentes, los cuales U4: NAND3 port map (EN, AN(1), AN(0), NY(0));
son conectados usando la U5: NAND3 port map (EN, AN(1), A(0), NY(1));
cláusula port map con U6: NAND3 port map (EN, A(1), AN(0), NY(2));
asociación implícita. U7: NAND3 port map (EN, A(1), A(0), NY(3));
end decod_a;
113. Descripción por flujo de datos
o RTL
En la descripción por flujo de datos, la
arquitectura describe como fluyen las
señales de entrada por el circuito hacia
los terminales de salida.
Este estilo de escritura de la
arquitectura es llamada descripción de
transferencia de registros RTL (Register
Transfer Language).
114. Descripción por flujo de datos
o RTL
Ejemplo: La arquitectura por descripción
En la aproximación por flujo de de flujo de datos de una compuerta XOR
de dos entradas es:
datos se utilizan declaraciones
architecture XOR2 of XOR is
de asignación de señales, así
begin
como operadores lógicos que
--asignación de señales
no se emplean en el estilo de
Y <= (not A and B) or (A and not B);
escritura estructural. end XOR2;
Los operadores lógicos que A
tiene el VHDL en sus librerías B
Y
son: not, and, or, nand, nor,
xor y xnor.
115. Descripción por flujo de datos
o RTL
La forma de descripción de la
arquitectura mediante la Ejemplo: La existencia del operador XOR
aproximación por flujo de datos compacta extraordinariamente el cuerpo
simplifica los diseños VHDL, pues de la arquitectura de la entity XOR
los hace más compactos. Architecture XOR3 of XOR is
Después de la palabra clave begin Begin
se produce la asignación del flujo - asignación de señales
de datos de las señales del
miembro de la derecha hacia la Y < = A xor B;
señal Y, del miembro de la End XOR3
izquierda (salida).
El miembro de la derecha del
operador de asignación <= se le
conoce como expresión, cuyo valor
se obtiene evaluándola completa.
116. Descripción por flujo de datos
o RTL
El VHDL, como otros Lógicos: AND, OR, XOR, NOT, NAND,
lenguajes de programación NOR y XNOR
posee un conjunto de Aritméticos: +, -, * (multiplicación solo
operadores que se usan con por 2)
las señales o con las De relación: =, /=, <, >, <=, >=
variables declaradas en sus De concatenación: &
diseños.
117. Descripción por flujo de datos
o RTL
La tabla presentada a Operadores Definidos para los tipos
continuación contiene
una clasificación de los
operadores definidos en Bit, Boolean, Bit_vector,
el lenguaje VHDL, así Lógicos: std_logic y std_logic_vector
como los tipos de datos
sobre los que se pueden De relación: Integer, Bit, y Bit_vector
operar los mismos. Aritméticos: Integer
Los operadores lógicos
han sido extendidos al Concatenación: Bit, Bit_vector y para las
cadenas
uso en cualquier tipo de
señal lógica, ya sea
bit_vector, std_logic, o
std_logic_vector.
118. Descripción por flujo de datos
o RTL
Cuando los operadores lógicos
se usan con los tipos de
señales std_logic o bit, ellos
poseen su significado usual. Un ejemplo de operaciones lógicas con el
tipo de datos vector es el siguiente:
Los valores '0' y '1' son valores
’’01100101’’xor’’10101101’’=’’11001000’’
constantes y deben estar
encerrados entre apóstrofes.
Cuando el tipo de señal usada
es declarada std_logic_vector
o bit_vector, entonces los
valores deben estar encerrados
entre comillas.
119. Descripción por flujo de datos
o RTL
Ejemplo: Sean las siguientes
Existe un operador interno del declaraciones:
VHDL, que es el signo & y que
Signal a: bit_vector(1 to 4);
realiza la concatenación de
señales o variables de distinta Signal b: bit_vector(1 to 8);
“longitud”. b<=’’0000’’&a;
En el ejemplo para concatenar la señal a, a la mitad de la
derecha del vector b y no tener incongruencias en los
resultados con vectores se realizan las asignaciones
siguientes. El símbolo & añade el vector a (de 4 bits) al
final de una secuencia de 4 ceros “0000” para realizar
exitosamente la asignación al vector b, que fue declarado
como un vector de 8 bits.
120. Descripción por flujo de datos
o RTL
En el cuerpo de la arquitectura de un -- asignación de señales
diseño VHDL por RTL se usan, Nombre de la señal<=expresion;
sentencias concurrentes de asignación
-- asignación condicional de señales
de señales, cuyo formato se presenta
Nombre de la señal<=expresión
a continuación. when expresión booleana else
En una descripción RTL, el valor de la Nombre de la señal<=expresión
expresión del miembro de la derecha when expresión booleana else
de la asignación de señales ( < = ), se …
lo transfiere al nombre de la señal del Nombre de la señal<=expresión
miembro de la izquierda. when expresión booleana else
Expresión;
Ambos miembros deben ser del
mismo tipo, para que no existan
incompatibilidades.
121. Descripción por flujo de datos
o RTL
Ejemplo 8:
Entity comp is
Realice una descripción en VHDL de Port ( a, b: in bit_vector ( 3 dow nto 0) ;
la arquitectura de un comparador E: out bit) ;
de dos entradas, a y b, de 4 bits End comp;
cada una y una salida E de 1 bit.
Architecture comparador_1 of comp is
En esta arquitectura se describe
cómo los datos se mueven desde Begin
los terminales de entrada, de señal --asignación de señales
en señal, hasta la salida.
E< = not( a( 0) xorb( 0) )
Se necesita del conocimiento del and not( a( 1) xorb( 1) )
circuito lógico del comparador, del and not( a( 2) xorb( 2) )
cual obtener la función E de salida: and not( a( 3) xorb( 3) )
end comparador_1;
E=(a0 b0)(a1 b1)(a2 b2)(a3 b3)
122. Descripción por flujo de datos
o RTL
Library ieee;
Ejemplo 8: Use ieee.std_logic_1164.all;
Realice una descripción en
VHDL de la arquitectura de Entity comp is
un comparador de dos Port ( a, b: in bit_vector( 3 dow nto 0) ;
entradas, a y b, de 4 bits E: out bit) ;
cada una y una salida E de 1 End comp;
bit.
Architecture comparador_2 of comp is
Otra solución más compacta Begin
se puede construir usando la --asignación de señales
estructura when – else. Esta
solución no necesita del E< = ‘1’ w hen ( a= b) else ‘0’;
conocimiento del circuito
lógico del comparador. end comparador_2;
123. Descripción por flujo de datos
o RTL
En VHDL, cuando una señal cambia de valor se dice que
se ha producido un evento. La existencia de eventos da
lugar a otro evento (cambio de valores en las expresiones
en los miembros de la derecha de los operadores de
asignación). De esta manera se actualizan los valores de
las señales.
En el ejemplo anterior, un cambio en las entradas a o b,
o en ambas provocará un cambio en la expresión. Este
cambio es asignado a la señal de salida E, actualizando
su valor.
E <= '1' when (a=b) else '0';
124. Descripción por flujo de datos
o RTL
Otro tipo de sentencia de asignación
concurrente usada en la descripción
por flujo de datos es la asignación --asignación de señal seleccionada
de señal seleccionada, cuya sintaxis
se expresa a continuación. Este tipo with expresión select
de declaración de asignación utiliza
la estructura with – select – when señal <= valor1 de la señal when alternativa 1,
En esta estructura se evalúa la valor2 de la señal when alternativa 2,
expresión que acompaña a la ...
declaración with y cuando el valor valorn de la señal when alternativa n;
coincide con una de las alternativas
señaladas después de la palabra
clave when, entonces el valor
correspondiente a esta alternativa se
lo asigna al nombre de la señal.
125. Descripción por flujo de datos
o RTL
Las alternativas contenidas Valor de la señal when alternativa1 |
después de la palabra clave
when pueden ser varias o una alternativa2 | alternativa3 | …..
sola. Si son varias, las | alternativaN,
alternativas deben ser todas
Las barras verticales (| ) tienen el
distintas y cubrir todos los
mismo significado que la operación OR
posibles valores de éstas.
Cuando el valor de la señal
para varias alternativas es el
mismo, pueden ser
expresadas como una lista de
valores separados por barras
verticales ( | )
126. Descripción por flujo de datos
o RTL
Cuando no se cubren todos
los posibles valores de las --asignación de señal seleccionada
alternativas, se debe usar la
with expresión select
palabra clave de VHDL
others, con el último when señal <= valor1 de la señal when alternativa 1,
valor2 de la señal when alternativa 2,
en este tipo de asignación ...
de señales. valorn de la señal when others;
Este tipo de declaración de
asignación utiliza la
estructura with – select –
when others
127. Descripción por flujo de datos
o RTL
Ejemplo 9: Entity circuito is
Escriba en VHDL una port (m: in integer range (31 downto 0);
descripción de la T: out std_logic);
siguiente función: End circuito;
Architecture RTL of circuito is
T(x,y,z,u,v) =
(0,4,18,19,22,23,25,29) + Begin
(14,16,20,24) -- asignación de señal seleccionada
With m select
T <= ‘1’ when 0 | 4 | 18 | 19 | 22 | 23 | 25 | 29,
‘-’ when 14 | 16 | 20 | 24, -- opcionales
‘0’ when others;
end RTL;
128. Descripción por flujo de datos
o RTL
Ejemplo 10: entity detector is
port (N: in integer range (15 downto 0);
Escriba en VHDL la P: out std_logic);
end detector;
descripción de un circuito
combinacional, el cual recibe architecture num_par of detector is
Begin
en sus entradas los dígitos del -- asignación de señal seleccionada
sistema decimal codificados with N select
P <= ‘1’ when 0 | 2 | 4 | 6 | 8,
en NBCD y tiene una salida P, ‘0’ when 1 | 3 | 5 | 7 | 9,
que va a ‘1’ cuando se detecta ‘-’ when others; -- opcionales
end num_par;
en sus entradas un dígito par.
129. Descripción por flujo de datos
o RTL
Ejemplo 11:
Realizar la descripción por
flujo de datos de un MUX
4 a 1.
130. Descripción por flujo de datos
o RTL
architecture MUX1 of MUX is
signal x: bit_vector(3 downto 0);
Begin
--asignación de señales
X(3) <= S(1) and S(0) and D(3);
X(2) <= S(1) and not S(0) and D(2);
X(1) <= not S(1) and S(0) and D(1);
X(0) <= not S(1) and not S(0) and D(0);
F <= x(3) or x(2) or x(1) or x(0);
end MUX1;
La arquitectura basada en flujo de datos utilizando
operadores lógicos necesita del circuito final de este MUX
131. Descripción por flujo de datos
o RTL
Ejemplo 12: Otra solución usando architecture mux2 of mux is
with – select.
Como se observa, esta begin
descripción de la arquitectura
-- asignación de señal seleccionada
es más simple que la anterior y
no necesita del conocimiento with S select
de la lógica interna del circuito. F <= D(0) when “00”,
D(1) when “01”,
D(2) when “10”,
D(3) when “11”;
end mux2
132. Descripción por flujo de datos
o RTL
Ejemplo 13: Diseñe un
buffer con tercer estado
cuyo circuito se --file: ejemplo13.vhd
muestra. library ieee;
use ieee.std_logic_1164.all;
entity ejemplo13 is
port (EN_L, A: in std_logic;
Y : out std_logic);
end ejemplo13;
architecture buffer of ejemplo13 is
begin
Y <= A when EN_L = ‘1’ else ‘Z’;
end buffer;
133. Descripción por flujo de datos
o RTL
Ejemplo 14: Diseñe un --file: ejemplo14.vhd
library ieee;
circuito que multiplique use ieee.std_logic_1164.all;
dos números enteros use ieee.std_logic_unsigned.all;
positivos de dos bits cada entity ejemplo14 is
uno. Debe tener además port (EN_L: in bit;
una entrada habilitadora A, B: in std_logic_vector(1 downto 0);
P: out std_logic_vector(3 downto 0));
EN_L activa en nivel bajo, end ejemplo14;
tal que la salida esté en
architecture producto of ejemplo14 is
un tercer estado de alta begin
impedancia si EN_L = H with EN_L select
P <= A*B when ‘1’,
’’ZZZZ’’ when ‘0’;
end producto;
134. Descripción por flujo de datos
o RTL
Ejemplo 15: library ieee;
use ieee.std_logic_1164.all;
Empaquetar el diseño
del buffer con tercer PACKAGE bufferPCK is
estado cuyo circuito se component ejemplo13
port( EN_L, A: in std_logic;
muestra en la figura.
Y: out std_logic);
end component;
end bufferPCK;
File: bufferPCK.vhd
135. Sentencias Concurrentes
I ntroducción
Las sentencias concurrentes son aquellas que se
ejecutan simultáneamente en la simulación. Se utilizan
para el modelado del hardware, deben formar parte
siempre del cuerpo de arquitecturas o de bloques y son
las siguientes:
Procesos
Asignaciones concurrentes a señal
Llamadas concurrentes o procedimientos
Instanciaciones de componentes
136. Sentencia w hen - else
Permite realizar asignaciones condicionales de valores, expresiones u
objetos o señales. Su sintaxis de declaración es:
[etiqueta:] señal <= valor_1 w hen condición_1 else
valor_2 [w hen condición_2] [else
… ] [else
valor_n w hen condición_n] [else unaffected];
La señal recibe una asignación u otra (valor_1…valor_n) en función de
las condiciones que aparecen tras w hen. Para la opción de no
asignación puede (no cambio en la función) utilizarse la keyword
unaffected
137. Ejemplo de sentencia w hen - else
Modelo de un sumador de un bit con retención de la suma
entity SUMADOR is:
port(A, B: in bit; ENABLE: in bit ;
SUMA: out bit_vector (1 downto 0));
end SUMADOR;
architecture CON_WHEN of SUMADOR is
begin
SUMA <= “00”w hen (A=‘0’ and B= ‘0’ and ENABLE = ‘1’) else
“01”w hen (A=‘1’ and B= ‘0’ and ENABLE = ‘1’) else
“01”w hen (A=‘0’ and B= ‘1’ and ENABLE = ‘1’) else
“10”w hen (A=‘1’ and B= ‘1’ and ENABLE = ‘1’) else
unaffected;
end CON_WHEN
138. Sentencia w ith-select
Su sintaxis es la siguiente:
[etiqueta:] w ith expresión select
señal <= valor_1 w hen resultado_1[,
valor_2 w hen resultado_2] [,
……..] [,
valor_n w hen resultado_n] [,
unaffected w hen others];
El valor asignado depende de la evaluación de la expresión que aparece
entre las palabras reservadas with y select. El resultado se compara con
los valores tras when y se ejecuta la asignación que resulta verdadera.
139. Ejemplo de sentencia w ith-select
El sumador anterior puede ser descrito también del siguiente modo:
architecture CON_WITH_SELECT of SUMADOR is
begin
w ith (ENABLE & A & B ) select
SUMA <= “00” w hen “100”,
“01” w hen “101”,
“01” w hen “110”,
“10” w hen “111”,
unaffected w hen others;
end CON_WITH_SELECT;
140. Sentencias Secuenciales
I ntroducción
Las sentencias secuenciales son aquellas que
solamente pueden aparecer dentro de procesos y
subprogramas. Se ejecutan ordenadamente, de tal
manera que el simulador finaliza completamente
una sentencia antes de pasar a la siguiente.
Todo lo contrario de lo que ocurre en las sentencias
concurrentes en donde no importa el orden.
141. Sentencia w ait
Es una de las más utilizadas en el modelado de circuitos síncronos,
w ait detiene la ejecución de un proceso o un procedimiento en
espera de que se satisfaga una determinada condición. Su sintaxis es
la siguiente:
[etiqueta:] w ait [on señal_1, señal_2,…..]
[until condición]
[for expresión_temporal];
Por tanto puede haber tres tipos de argumentos de ellos, o bien
ninguno. En este último caso el proceso queda detenido hasta el final
de la simulación.
142. Sentencia Wait on
Wait on produce el mismo efecto que la lista de sensibilidad de un
proceso. Por ejemplo:
PROCESO_1: process(A,B)
begin
…
end process PROCESO_1;
PROCESO_2: process
begin
…
w ait on A,B;
end process PROCESO_2
143. Case - w hen
La sentencia case-when permite seleccionar una entre varias
alternativas excluyentes entre sí de una expresión determinada, su
sintaxis general es la siguiente:
[etiqueta:] case expresión is
w hen caso_1[ caso_2 ……] => sentencias secuenciales
....
end case [etiqueta];
De este modo una arquitectura alternativa para el mismo sumador
anterior podría ser como se muestra a continuación.
144. Ejemplo de Case-When
architecture CON_CASE of SUMADOR is
begin
process
variable X: bit_vector(2 downto 0);
begin
X<= ENABLE & A & B;
case X is
w hen “100”=> SUMA <=“00”;
w hen “101”| “110” => SUMA <=“01”;
w hen “111” => SUMA <= “10”;
w hen others => null;
end case;
end process;
end CON_CASE
145. Bucles
Para la ejecución de bucles en VHDL se utiliza la palabra reservada
loop. Existen tres formas de definir un bucle:
- Con for-loop siempre se hace referencia a un bucle finito,
-Con w hile-loop a uno finito o infinito (depende de la condición) y
-Con simplemente loop a uno infinito
A continuación analizaremos estas tres opciones.
146. For - Loop
Esta sentencia causa la ejecución de un bucle un numero fijo de veces,
su sintaxis es la siguiente:
[etiqueta:] for indice in rango loop
sentencias secuenciales
end loop [etiqueta];
Es necesaria las indicaciones de un índice y un rango. El índice es una
variable discreta, enumerada o entera, que no es preciso declarar y que
cambia su valor en una unidad por cada ejecución del bucle a lo largo
del rango especificado.
147. Ejemplo For-loop
Contar el numero de unos de una señal binaria de 32 bits.
….
for I in 0 to 31 loop
if SENAL (I)=‘1’ then NUMERO_UNOS:= NUMERO_UNOS+1;
end if;
end loop;
….
148. While - Loop
El siguiente tipo de bucle utiliza la palabra reservada w hile para
imponer la condición de repetición. Su sintaxis es la siguiente:
[etiqueta:] w hile condición loop
sentencias secuenciales
end loop [etiqueta];
El bucle se repite en tanto que la condición que aparece tras while sea
verdadera.
149. Ejemplo While-loop
….
I:=0;
w hile (I>32) loop
if SEÑAL (I)=‘1’ then NUMERO_UNOS:= NUMERO_UNOS+1;
end if
I:= I+1;
end loop;
....
Ahora si se nesecita declarar una variable (I) para poder establecer la
condición del bucle, no resulta ventajosa con respecto a for loop.
150. Loop
Ejecuta un bucle infinito y su sintaxis es así:
[etiqueta:] loop
sentencias secuenciales
end loop [etiqueta];
153. Operación circuital de una
puerta básica TTL estandar
Nand 7400
Q1 con Emisor múltiple.
Q3 y Q4 poste totémico.
Q2 seguidor de Q4.
C Q2 Q3 Q4
L sat corte sat
H corte sat corte
154. Diodos Fijadores de Entradas(Input
Clamping Diodes)
Los diodos actúan como “fijadores de nivel” de entrada para suprimir la
oscilación parásita que resulta de las rápidas transiciones de voltaje que se
producen en los sistemas TTL.
Por ejemplo, consideremos que el voltaje de salida de una puerta TTL cambie
de uno lógico a cero lógico. El conductor que conecta esta puerta con la otra
conduce esta señal. Si el conductor que actúa como una línea de transmisión no
esta terminado correctamente resulta una oscilación parásita (“ringing”).
Vout Vin
t t
155. Los diodos de entrada fijan el impulso negativo en aproximadamente -0.75v y
absorben una cantidad suficiente de energía de la señal aplicada para evitar un
gran sobreimpulso positivo que podría poner nuevamente en conducción a la
puerta.
Vout Vin
t t
156. Características de la Serie Estándar TTL
(54/74…)
La más importante ayuda para entender hojas de especificaciones de CI es
conocer todos lo términos y símbolos usados.
La columna nominal nos indica los mejores valores para el voltaje de fuente de
poder y temperatura de operación.
Las columnas Min y Max determinan el rango de variación recomendado.
Cuando estas condiciones no son respetadas, el dispositivo puede operar
erradamente.
VIH o Vin(1) .-Voltaje de entrada de nivel alto. Si cualquiera entrada o ambas
tienen aplicado el voltaje igual o mayor que 2v.
VIL o Vin(0) .-Voltaje de entrada de nivel bajo. Cualquier voltaje aplicado a la
entrada menor o igual que 0.8v.
IOH o Iout(1) .-Corriente de salida de nivel alto. No debe ser mayor que -0.4mA.
157. Datos del fabricante
IOL o Iout(0) .-Corriente de salida de nivel bajo. No debe ser mayor que 16mA.
VOH o Vout(1) .-Voltaje de salida de nivel alto. Cuando el voltaje de salida es
mayor o igual a 2.4v.
VOL o Vout(0) .-Voltaje de salida de nivel bajo. Cuando el voltaje de salida es
menor o igual a 0.4v.
IIH o Iin(1) .-Corriente de entrada de nivel alto. Cuando la entrada tiene el nivel de
voltaje Alto max corriente que circula en la entrada es 40uA.
IIL o Iin(0) .-Corriente de entrada de nivel bajo. La max corriente que puede
circular en la entrada es -1.6mA.
ICCH o ICC(1) .-Corriente de fuente de poder para salidas Altas.
ICCL o ICC(0) .- Corriente de fuente de poder para salidas Bajas.