Sistemas Digitales
Circuitos Combinatorios
Segundo Cuatrimestre 2024
Sistemas Digitales
DC - UBA
1
Repaso: Algebra de Boole
Axiomas
Partimos de las siguientes proposiciones (axiomas):
2
Axiomas
Partimos de las siguientes proposiciones (axiomas):
(A1) Existen dos elementos: X = 1 si X ̸= 0 ó X = 0 si X ̸= 1
2
Axiomas
Partimos de las siguientes proposiciones (axiomas):
(A1) Existen dos elementos: X = 1 si X ̸= 0 ó X = 0 si X ̸= 1
(A2) Existe el operador negación () tal que: Si X = 1 ⇒ X = 0
2
Axiomas
Partimos de las siguientes proposiciones (axiomas):
(A1) Existen dos elementos: X = 1 si X ̸= 0 ó X = 0 si X ̸= 1
(A2) Existe el operador negación () tal que: Si X = 1 ⇒ X = 0
(A3) 0 · 0 = 0 1+1=1
2
Axiomas
Partimos de las siguientes proposiciones (axiomas):
(A1) Existen dos elementos: X = 1 si X ̸= 0 ó X = 0 si X ̸= 1
(A2) Existe el operador negación () tal que: Si X = 1 ⇒ X = 0
(A3) 0 · 0 = 0 1+1=1
(A4) 1 · 1 = 1 0+0=0
2
Axiomas
Partimos de las siguientes proposiciones (axiomas):
(A1) Existen dos elementos: X = 1 si X ̸= 0 ó X = 0 si X ̸= 1
(A2) Existe el operador negación () tal que: Si X = 1 ⇒ X = 0
(A3) 0 · 0 = 0 1+1=1
(A4) 1 · 1 = 1 0+0=0
(A5) 0 · 1 = 1 · 0 = 0 0+1=1+0=1
2
Propiedades
De los axiomas anteriores se derivan las siguientes propiedades:
Propiedad AND OR
Identidad 1.A = A 0+A=A
Nulo 0.A = 0 1+A=1
Idempotencia A.A = A A+A=A
Inverso A.A = 0 A+A=1
Conmutatividad A.B = B.A A+B =B +A
Asociatividad (A.B).C = A.(B.C ) (A + B) + C = A + (B + C )
Distributividad A + (B.C ) = (A + B).(A + C ) A.(B + C ) = A.B + A.C
Absorción A.(A + B) = A A + A.B = A
De Morgan A.B = A + B A + B = A.B
3
Propiedades
De los axiomas anteriores se derivan las siguientes propiedades:
Propiedad AND OR
Identidad 1.A = A 0+A=A
Nulo 0.A = 0 1+A=1
Idempotencia A.A = A A+A=A
Inverso A.A = 0 A+A=1
Conmutatividad A.B = B.A A+B =B +A
Asociatividad (A.B).C = A.(B.C ) (A + B) + C = A + (B + C )
Distributividad A + (B.C ) = (A + B).(A + C ) A.(B + C ) = A.B + A.C
Absorción A.(A + B) = A A + A.B = A
De Morgan A.B = A + B A + B = A.B
Tarea: ¡Demostrarlas!
3
Ejercicio 0
Demostrar si la siguiente igualdad entre funciones booleanas es
verdadera o falsa:
(X + Y ) = (X · Y ) · Z + X · Z + (Y + Z )
4
Ejercicio 0
Demostrar si la siguiente igualdad entre funciones booleanas es
verdadera o falsa:
(X + Y ) = (X · Y ) · Z + X · Z + (Y + Z )
Solución:
(X · Y ) · Z + X · Z + (Y + Z ) ←− De Morgan
4
Ejercicio 0
Demostrar si la siguiente igualdad entre funciones booleanas es
verdadera o falsa:
(X + Y ) = (X · Y ) · Z + X · Z + (Y + Z )
Solución:
(X · Y ) · Z + X · Z + (Y + Z ) ←− De Morgan
(X · Y ) · Z + X · Z + Y · Z ←− Distributiva
4
Ejercicio 0
Demostrar si la siguiente igualdad entre funciones booleanas es
verdadera o falsa:
(X + Y ) = (X · Y ) · Z + X · Z + (Y + Z )
Solución:
(X · Y ) · Z + X · Z + (Y + Z ) ←− De Morgan
(X · Y ) · Z + X · Z + Y · Z ←− Distributiva
(X · Y ) · Z + (X + Y ) · Z ←− De Morgan
4
Ejercicio 0
Demostrar si la siguiente igualdad entre funciones booleanas es
verdadera o falsa:
(X + Y ) = (X · Y ) · Z + X · Z + (Y + Z )
Solución:
(X · Y ) · Z + X · Z + (Y + Z ) ←− De Morgan
(X · Y ) · Z + X · Z + Y · Z ←− Distributiva
(X · Y ) · Z + (X + Y ) · Z ←− De Morgan
(X + Y ) · Z + (X + Y ) · Z ←− Distributiva
4
Ejercicio 0
Demostrar si la siguiente igualdad entre funciones booleanas es
verdadera o falsa:
(X + Y ) = (X · Y ) · Z + X · Z + (Y + Z )
Solución:
(X · Y ) · Z + X · Z + (Y + Z ) ←− De Morgan
(X · Y ) · Z + X · Z + Y · Z ←− Distributiva
(X · Y ) · Z + (X + Y ) · Z ←− De Morgan
(X + Y ) · Z + (X + Y ) · Z ←− Distributiva
(X + Y ) · (Z + Z ) ←− Inverso
4
Ejercicio 0
Demostrar si la siguiente igualdad entre funciones booleanas es
verdadera o falsa:
(X + Y ) = (X · Y ) · Z + X · Z + (Y + Z )
Solución:
(X · Y ) · Z + X · Z + (Y + Z ) ←− De Morgan
(X · Y ) · Z + X · Z + Y · Z ←− Distributiva
(X · Y ) · Z + (X + Y ) · Z ←− De Morgan
(X + Y ) · Z + (X + Y ) · Z ←− Distributiva
(X + Y ) · (Z + Z ) ←− Inverso
(X + Y ) · 1 ←− Identidad
4
Ejercicio 0
Demostrar si la siguiente igualdad entre funciones booleanas es
verdadera o falsa:
(X + Y ) = (X · Y ) · Z + X · Z + (Y + Z )
Solución:
(X · Y ) · Z + X · Z + (Y + Z ) ←− De Morgan
(X · Y ) · Z + X · Z + Y · Z ←− Distributiva
(X · Y ) · Z + (X + Y ) · Z ←− De Morgan
(X + Y ) · Z + (X + Y ) · Z ←− Distributiva
(X + Y ) · (Z + Z ) ←− Inverso
(X + Y ) · 1 ←− Identidad
X + Y Lo que querı́amos demostrar.
4
Notación
En el lenguaje coloquial vamos a llamar a las operaciones
indistintamente de la siguiente forma:
A + B ≡ A OR B
5
Notación
En el lenguaje coloquial vamos a llamar a las operaciones
indistintamente de la siguiente forma:
A + B ≡ A OR B
AB ≡ A.B ≡ A AND B
5
Notación
En el lenguaje coloquial vamos a llamar a las operaciones
indistintamente de la siguiente forma:
A + B ≡ A OR B
AB ≡ A.B ≡ A AND B
A ≡ NOT A
5
Compuertas, señales y tablas de
verdad
Compuertas
Son modelos idealizados de dispositivos electrónicos o de
computo, que realizan operaciones booleanas.
Las podemos representar gráficamente:
6
Compuertas
Son modelos idealizados de dispositivos electrónicos o de
computo, que realizan operaciones booleanas.
Las podemos representar gráficamente:
O describir mediante un lenguaje de descripción de hardware
(HDL), por ejemplo en SystemVerilog:
assign o = a & b ;
6
Tablas de verdad
Son representaciones que nos permiten observar todas las
salidas para todas las combinaciones de entradas1 .
Por ejemplo, la función del ejercicio (F = X + Y ) se representa:
X Y F
0 0
0 1
1 0
1 1
1
Como resulta esperable, esta representación puede volverse muy compleja cuando el número de variables y
salidas crece.
7
Tablas de verdad
Son representaciones que nos permiten observar todas las
salidas para todas las combinaciones de entradas1 .
Por ejemplo, la función del ejercicio (F = X + Y ) se representa:
X Y F
0 0 1
0 1
1 0
1 1
1
Como resulta esperable, esta representación puede volverse muy compleja cuando el número de variables y
salidas crece.
7
Tablas de verdad
Son representaciones que nos permiten observar todas las
salidas para todas las combinaciones de entradas1 .
Por ejemplo, la función del ejercicio (F = X + Y ) se representa:
X Y F
0 0 1
0 1 0
1 0
1 1
1
Como resulta esperable, esta representación puede volverse muy compleja cuando el número de variables y
salidas crece.
7
Tablas de verdad
Son representaciones que nos permiten observar todas las
salidas para todas las combinaciones de entradas1 .
Por ejemplo, la función del ejercicio (F = X + Y ) se representa:
X Y F
0 0 1
0 1 0
1 0 1
1 1
1
Como resulta esperable, esta representación puede volverse muy compleja cuando el número de variables y
salidas crece.
7
Tablas de verdad
Son representaciones que nos permiten observar todas las
salidas para todas las combinaciones de entradas1 .
Por ejemplo, la función del ejercicio (F = X + Y ) se representa:
X Y F
0 0 1
0 1 0
1 0 1
1 1 1
1
Como resulta esperable, esta representación puede volverse muy compleja cuando el número de variables y
salidas crece.
7
Compuertas - NOT
Gráficamente:
Tabla de verdad:
A NOT A
0 1
1 0
En SystemVerilog:
assign o = ˜a ; 8
Compuertas - AND
Gráficamente:
Tabla de verdad:
A B A AND B
0 0 0
0 1 0
1 0 0
1 1 1
En SystemVerilog:
assign o = a & b ;
9
Compuertas - OR
Gráficamente:
Tabla de verdad:
A B A OR B
0 0 0
0 1 1
1 0 1
1 1 1
En SystemVerilog:
assign o = a | b ;
10
Compuertas - XOR u OR-EXCLUSIVA
Gráficamente:
Tabla de verdad:
A B A XOR B
0 0 0
0 1 1
1 0 1
1 1 0
En SystemVerilog:
assign o = a ˆ b ;
11
Entradas y salidas - Categorización
Distintas vistas de un circuito
Por momentos vamos a querer abstraer nuestros circuitos en
módulos de los cuales observaremos solamente sus entradas y
salidas. Veamos un ejemplo donde ocultamos parte de la
complejidad pasando de una vista interna del circuito (caja blanca)
a una externa (caja negra).
12
Desde el museo: ALU 74181
13
Ejemplo con una ALU
Aplicando lo anterior, podemos trabajar con la ALU viéndola de la
siguiente manera:
14
Entradas/Salidas
Establecen el sentido de la información:
En la ALU anterior se representan con las flechas...
15
Entradas/Salidas
Establecen el sentido de la información:
En la ALU anterior se representan con las flechas...
En SystemVerilog:
module ALU #(parameter DATA WIDTH = 1 6 )
( i n p u t [ DATA WIDTH− 1 : 0 ] operandoZ ,
i n p u t [ DATA WIDTH− 1 : 0 ] operandoY ,
i n p u t [ 2 : 0 ] opcode ,
output [ DATA WIDTH− 1 : 0 ] s a l i d a s ,
output o v e r f l o w ) ;
end module ;
15
Entradas/Salidas: Tipos
En la ALU, ¿son funcionalmente todas iguales las entradas y
salidas?
16
Entradas/Salidas: Tipos
En la ALU, ¿son funcionalmente todas iguales las entradas y
salidas?
NO
Datos vs. Control
16
Lógica proposicional a circuitos
combinatorios
Motivación
El estudio de la lógica proposicional y del álgebra de Boole tiene
que ver con que vamos a querer implementar funciones lógicas en
nuestro soporte electrónico con circuitos combinatorios.
17
Traduciendo una fórmula
Sabemos que se puede describir el comportamiento de un circuito
combinatorio construyendo una tabla de verdad que determine las
salidas que corresponden a cada combinación de los valores de
entrada. Vamos a utilizar esto para describir un procedimiento que
nos permite construir un circuito combinatorio cuyo
comportamiento implementa cualquier fórmula proposicional φ.
18
Traduciendo una fórmula
Habrá casos en los que nos resultará difı́cil derivar un circuito de la
fórmula, ya sea porque no vemos un vı́nculo directo entre la
expresión y las compuertas básicas, o porque es conveniente
expresarlo con una tabla de verdad.
19
Mecanismo de traducción
El mecanismo es el siguiente:
20
Mecanismo de traducción
El mecanismo es el siguiente:
• Si tenemos una fórmula φ que se expresa en función de las
variables x1 , . . . , xn (las entradas).
20
Mecanismo de traducción
El mecanismo es el siguiente:
• Si tenemos una fórmula φ que se expresa en función de las
variables x1 , . . . , xn (las entradas).
• Construimos una tabla de verdad con una fila para cada
combinación posible de las entradas (por ej.
x1 → 1, x2 → 0, . . . , xn → 1) y en la columna de la salida
ingresamos el valor de la fórmula evaluada en esos valores
φ(1, 0, . . . , 1).
20
Mecanismo de traducción
El mecanismo es el siguiente:
21
Mecanismo de traducción
El mecanismo es el siguiente:
• Vamos a utilizar solamente las filas en las que la función vale
1.
21
Mecanismo de traducción
El mecanismo es el siguiente:
• Vamos a utilizar solamente las filas en las que la función vale
1.
• Para cada fila i en la que φ es verdadera (vale 1) vamos a
construir un término ti como conjunción (y lógico o AND) de
todas las entradas, donde cada variable aparece negada si su
valor era 0 en la fila y sin negar en caso contrario.
21
Mecanismo de traducción
El mecanismo es el siguiente:
• Vamos a utilizar solamente las filas en las que la función vale
1.
• Para cada fila i en la que φ es verdadera (vale 1) vamos a
construir un término ti como conjunción (y lógico o AND) de
todas las entradas, donde cada variable aparece negada si su
valor era 0 en la fila y sin negar en caso contrario.
• Por ejemplo, si en la fila 4 la asignación (valuación) de las
variables era x1 → 1, x2 → 0, . . . , xn → 1, t4 va a ser
x1 ∧ ¬x1 ∧ . . . ∧ xn .
21
Mecanismo de traducción
El mecanismo es el siguiente:
22
Mecanismo de traducción
El mecanismo es el siguiente:
• Una vez que tenemos los términos ti , tj , . . . para cada fila en
la que la función vale 1, vamos a hacer una disyunción (o
lógico u OR) de todos los términos φ′ = ti ∨ tj ∨ . . ..
22
Mecanismo de traducción
El mecanismo es el siguiente:
• Una vez que tenemos los términos ti , tj , . . . para cada fila en
la que la función vale 1, vamos a hacer una disyunción (o
lógico u OR) de todos los términos φ′ = ti ∨ tj ∨ . . ..
• A este mecanismo se lo conoce como suma de productos y
nos da una expresión de φ o de la tabla de verdad que puede
traducirse fácilmente a un circuito combinatorio.
22
Volviendo al ejemplo
La fórmula (F = X + Y ) se representa:
X Y F
0 0 1
0 1 0
1 0 1
1 1 1
23
Volviendo al ejemplo
La fórmula (F = X + Y ) se representa:
X Y F
0 0 1
0 1 0
1 0 1
1 1 1
En este caso los términos serı́an t1 = ¬x ∧ ¬y ,t3 = x ∧ ¬y y
t4 = x ∧ y y la expresión φ′ = (¬x ∧ ¬y ) ∨ (x ∧ ¬y ) ∨ (x ∧ y ).
A esta expresión se la conoce como suma de productos.
23
Circuitos básicos
Ejercicio I - Sumador Simple
Armar un sumador de 1 bit. Tiene que tener dos entradas de un
bit y dos salidas, una para el resultado y otra para indicar si hubo o
no acarreo.
24
Ejercicio I - Sumador Simple
Armar un sumador de 1 bit. Tiene que tener dos entradas de un
bit y dos salidas, una para el resultado y otra para indicar si hubo o
no acarreo.
Solución:
24
Ejercicio I - Sumador Simple
Armar un sumador de 1 bit. Tiene que tener dos entradas de un
bit y dos salidas, una para el resultado y otra para indicar si hubo o
no acarreo.
Solución:
A B Sum carry
0 0 0 0
0 1 1 0
1 0 1 0
1 1 0 1
24
Ejercicio I - Sumador Simple
Armar un sumador de 1 bit. Tiene que tener dos entradas de un
bit y dos salidas, una para el resultado y otra para indicar si hubo o
no acarreo.
Solución:
A B Sum carry
0 0 0 0
0 1 1 0
1 0 1 0
1 1 0 1
24
Ejercicio II - Sumador Completo
Teniendo dos sumadores simples (de 1 bit) y sólo una compuerta a
elección, arme un sumador completo. El mismo tiene 2 entradas
de 1 bit y una tercer entrada interpretada como CIn , tiene como
salida COut y S.
25
Ejercicio II - Sumador Completo
Teniendo dos sumadores simples (de 1 bit) y sólo una compuerta a
elección, arme un sumador completo. El mismo tiene 2 entradas
de 1 bit y una tercer entrada interpretada como CIn , tiene como
salida COut y S. Solución:
25
Ejercicio II - Sumador Completo
Teniendo dos sumadores simples (de 1 bit) y sólo una compuerta a
elección, arme un sumador completo. El mismo tiene 2 entradas
de 1 bit y una tercer entrada interpretada como CIn , tiene como
salida COut y S. Solución:
Cin A B S Cout
0 0 0 0 0
0 0 1 1 0
0 1 0 1 0
0 1 1 0 1
1 0 0 1 0
1 0 1 0 1
1 1 0 0 1
1 1 1 1 1
25
Ejercicio II - Sumador Completo
Teniendo dos sumadores simples (de 1 bit) y sólo una compuerta a
elección, arme un sumador completo. El mismo tiene 2 entradas
de 1 bit y una tercer entrada interpretada como CIn , tiene como
salida COut y S. Solución:
Cin A B S Cout
0 0 0 0 0
0 0 1 1 0
0 1 0 1 0
0 1 1 0 1
1 0 0 1 0
1 0 1 0 1
1 1 0 0 1
1 1 1 1 1
25
Ejercicio III - Shift
Armar un circuito de 3 bits. Este deberá mover a izquierda o a
derecha los bits de entrada de acuerdo al valor de una entrada
extra que actúa como control. En otras palabras, un shift izq-der
de k-bits es un circuito de k + 1 entradas (ek , ..., e0 ) y k salidas
(sk−1 , ..., s0 ) que funciona del siguiente modo:
• Si ek = 1, entonces si = ei−1 para todo 0 < i < k y s0 = 0
• Si ek = 0, entonces si = ei+1 para todo 0 ≤ i < k − 1 y
sk−1 = 0
26
Ejercicio III - Shift
Armar un circuito de 3 bits. Este deberá mover a izquierda o a
derecha los bits de entrada de acuerdo al valor de una entrada
extra que actúa como control. En otras palabras, un shift izq-der
de k-bits es un circuito de k + 1 entradas (ek , ..., e0 ) y k salidas
(sk−1 , ..., s0 ) que funciona del siguiente modo:
• Si ek = 1, entonces si = ei−1 para todo 0 < i < k y s0 = 0
• Si ek = 0, entonces si = ei+1 para todo 0 ≤ i < k − 1 y
sk−1 = 0
Ejemplos:
shift lr(1,011) = 110
26
Ejercicio III - Shift
Armar un circuito de 3 bits. Este deberá mover a izquierda o a
derecha los bits de entrada de acuerdo al valor de una entrada
extra que actúa como control. En otras palabras, un shift izq-der
de k-bits es un circuito de k + 1 entradas (ek , ..., e0 ) y k salidas
(sk−1 , ..., s0 ) que funciona del siguiente modo:
• Si ek = 1, entonces si = ei−1 para todo 0 < i < k y s0 = 0
• Si ek = 0, entonces si = ei+1 para todo 0 ≤ i < k − 1 y
sk−1 = 0
Ejemplos:
shift lr(1,011) = 110 shift lr(0,011) = 001
26
Ejercicio III - Shift
Armar un circuito de 3 bits. Este deberá mover a izquierda o a
derecha los bits de entrada de acuerdo al valor de una entrada
extra que actúa como control. En otras palabras, un shift izq-der
de k-bits es un circuito de k + 1 entradas (ek , ..., e0 ) y k salidas
(sk−1 , ..., s0 ) que funciona del siguiente modo:
• Si ek = 1, entonces si = ei−1 para todo 0 < i < k y s0 = 0
• Si ek = 0, entonces si = ei+1 para todo 0 ≤ i < k − 1 y
sk−1 = 0
Ejemplos:
shift lr(1,011) = 110 shift lr(0,011) = 001
shift lr(1,100) = 000
26
Ejercicio III - Shift
Armar un circuito de 3 bits. Este deberá mover a izquierda o a
derecha los bits de entrada de acuerdo al valor de una entrada
extra que actúa como control. En otras palabras, un shift izq-der
de k-bits es un circuito de k + 1 entradas (ek , ..., e0 ) y k salidas
(sk−1 , ..., s0 ) que funciona del siguiente modo:
• Si ek = 1, entonces si = ei−1 para todo 0 < i < k y s0 = 0
• Si ek = 0, entonces si = ei+1 para todo 0 ≤ i < k − 1 y
sk−1 = 0
Ejemplos:
shift lr(1,011) = 110 shift lr(0,011) = 001
shift lr(1,100) = 000 shift lr(1,101) = 010
26
Ejercicio III - Shift
• Si ek = 1, entonces si = ei−1 para todo 0 < i < k y s0 = 0
• Si ek = 0, entonces si = ei+1 para todo 0 ≤ i < k − 1 y
sk−1 = 0
Solución:
27
Ejercicio III - Shift
• Si ek = 1, entonces si = ei−1 para todo 0 < i < k y s0 = 0
• Si ek = 0, entonces si = ei+1 para todo 0 ≤ i < k − 1 y
sk−1 = 0
Solución:
" #
0 si e3 = 0
s2 =
e1 si e3 = 1
27
Ejercicio III - Shift
• Si ek = 1, entonces si = ei−1 para todo 0 < i < k y s0 = 0
• Si ek = 0, entonces si = ei+1 para todo 0 ≤ i < k − 1 y
sk−1 = 0
Solución:
" #
0 si e3 = 0
s2 =
e1 si e3 = 1
e3 .e1
27
Ejercicio III - Shift
• Si ek = 1, entonces si = ei−1 para todo 0 < i < k y s0 = 0
• Si ek = 0, entonces si = ei+1 para todo 0 ≤ i < k − 1 y
sk−1 = 0
Solución:
" # " #
0 si e3 = 0 0 si e3 = 1
s2 = s0 =
e1 si e3 = 1 e1 si e3 = 0
e3 .e1
27
Ejercicio III - Shift
• Si ek = 1, entonces si = ei−1 para todo 0 < i < k y s0 = 0
• Si ek = 0, entonces si = ei+1 para todo 0 ≤ i < k − 1 y
sk−1 = 0
Solución:
" # " #
0 si e3 = 0 0 si e3 = 1
s2 = s0 =
e1 si e3 = 1 e1 si e3 = 0
e3 .e1 e3 .e1
27
Ejercicio III - Shift
• Si ek = 1, entonces si = ei−1 para todo 0 < i < k y s0 = 0
• Si ek = 0, entonces si = ei+1 para todo 0 ≤ i < k − 1 y
sk−1 = 0
Solución:
" # " # " #
0 si e3 = 0 0 si e3 = 1 e0 si e3 = 1
s2 = s0 = s1 =
e1 si e3 = 1 e1 si e3 = 0 e2 si e3 = 0
e3 .e1 e3 .e1
27
Ejercicio III - Shift
• Si ek = 1, entonces si = ei−1 para todo 0 < i < k y s0 = 0
• Si ek = 0, entonces si = ei+1 para todo 0 ≤ i < k − 1 y
sk−1 = 0
Solución:
" # " # " #
0 si e3 = 0 0 si e3 = 1 e0 si e3 = 1
s2 = s0 = s1 =
e1 si e3 = 1 e1 si e3 = 0 e2 si e3 = 0
e3 .e1 e3 .e1 e3 .e0 + e3 .e2
27
Ejercicio III - Shift
Solución:
28
Más combinatorios: Multiplexor y Demultiplexor
Las lı́neas de control c permiten
seleccionar una de las entradas e, la que
corresponderá a la salida s.
Las lı́neas de control c permiten
seleccionar cual de las salidas s tendrá
el valor de e.
29
Multiplexor y Demultiplexor
• Ejemplo,
30
Más combinatorios: Codificador y Decodificador
Cada combinación de las lı́neas e
corresponderá a una sola lı́nea en alto
de la salida s.
Una y sólo una lı́nea en alto de e
corresponderá a una combinación en la
salida s.
31
Codificador y Decodificador
• Ejemplo,
32
Timing
Timing
¡Las compuertas no son instantáneas!
Revisitemos nuestro Shift LR:
33
Timing
Para el circuito Shift LR anterior, supongamos (de forma
optimista) que todas las compuertas tardan 10ps en poner un
resultado válido en sus salidas. A partir de ello, dibujemos el
diagrama de tiempos para cuando todas las entradas cambian
simultáneamente de ’0’ a ’1’.
34
Timing
Hagamos un diagrama de tiempos2 :
2
Y nombremos a las señales que no tienen nombre
35
Timing
Diagrama de tiempos
36
Timing
¿Cuál es el mı́nimo tiempo que se debe esperar para leer un
resultado válido de su salida?
37
Timing
¿Cuál es el mı́nimo tiempo que se debe esperar para leer un
resultado válido de su salida?
• En un circuito combinatorio el tiempo que tarda la salida en
estabilizarse depende de la cantidad de capas de compuertas
(latencia)
37
Timing
¿Cuál es el mı́nimo tiempo que se debe esperar para leer un
resultado válido de su salida?
• En un circuito combinatorio el tiempo que tarda la salida en
estabilizarse depende de la cantidad de capas de compuertas
(latencia)
• En este caso debemos esperar al menos 3 · 10ps = 30ps para
poder leer la salida.
37
Timing
¿Cuál es el mı́nimo tiempo que se debe esperar para leer un
resultado válido de su salida?
• En un circuito combinatorio el tiempo que tarda la salida en
estabilizarse depende de la cantidad de capas de compuertas
(latencia)
• En este caso debemos esperar al menos 3 · 10ps = 30ps para
poder leer la salida.
¿Cómo enfrentamos este problema?
Secuenciales...
37
Intervalo