Documentos de Académico
Documentos de Profesional
Documentos de Cultura
7-Sistemas Combinacionales
7-Sistemas Combinacionales
Este material est basado en: textos y material de apoyo: Contemporary Logic Design 1st / 2nd edition. Gaetano Borriello and Randy Katz. Prentice Hall, 1994, 2005 material del curso ELO211 del Prof. Leopoldo Silva material en el sitio http://es.wikipedia.org
7: Combinacionales
7-Sistemas Combinacionales
7.1 Introduccin 7.2 Multiplexores, Demultiplexores, Decodificador 7.3 PLAs, PALs, ROMs 7.4 FPGAs 7.5 HDLs
7: Combinacionales
7-Sistemas Combinacionales
7.1 Introduccin 7.2 Multiplexores, Demultiplexores, Decodificadores 7.3 PLAs, PALs, ROMs 7.4 FPGAs 7.5 HDLs
7: Combinacionales
Mux/Demux
Se usan para conectar y rutear
Y Z
Muchos inputs a un output - multiplexor Un input a muchos outputs demultiplexor Se pueden usan para conectar entre diferentes fuentes y destinos
control control
multiplexor
demultiplexor
switch 4x4
7: Combinacionales 6
MUX
A Sum Ss
DEMUX S0 S1
7: Combinacionales
Multiplexores
Multiplexores: concepto general 2n data inputs, n inputs de control inputs, 1 output se usan para conectar 2n puntos a un de punto salida patrn de control binario indexa cual input se conecta al output I1 I0 A Z A Z
Z = A' I0 + A I1 0 1 I0 I1 0 0 0 0 1 1 1 1 0 0 1 1 0 0 1 1 0 1 0 1 0 1 0 1 0 0 1 0 0 1 1 1
forma funcional forma lgica dos formas alternativas para una tabla de verdad Mux 2:1
7: Combinacionales
Multiplexores (cont'd)
2:1 mux: 4:1 mux: 8:1 mux: Z = A'I0 + AI1 Z = A'B'I0 + A'BI1 + AB'I2 + ABI3 Z = A'B'C'I0 + A'B'CI1 + A'BC'I2 + A'BCI3 + AB'C'I4 + AB'CI5 + ABC'I6 + ABCI7
2 n -1 k=0
En general: Z =
(mkIk)
I0 I1
2:1 mux A
I0 I1 I2 I3 I4 I5 I6 I7
8:1 mux
A B C
7: Combinacionales
4:1 mux
7: Combinacionales
10
Multiplexores en cascada
Se pueden implementar multiplexores mas grandes usando multiplexores mas pequeos en cascada
I0 I1 I2 I3 I4 I5 I6 I7 4:1 mux 8:1 mux 2:1 mux 4:1 mux Z implementacin alternativa I0 I1 I2 I3 A I4 I5 2:1 mux 2:1 mux 2:1 mux 2:1 mux C
7: Combinacionales
8:1 mux
B C
4:1 mux
seales de control B y C simultneamente seleccionan I6 una de I0, I1, I2, I3 y una de I4, I5, I6, I7 I7 seal de control A elige cual de los outputs de los muxs se envia a Z
A B
11
Z F
7: Combinacionales
12
C' C' 0 1
C' C' 0 1
0 1 4:1 MUX 2 3 S1 S0 A B
7: Combinacionales
13
F 0 1 In 1 0 In' 1 1 1
cuatro posibles configuraciones de filas de la tabla de verdad se pueden expresar como una funcin de In
A 0 0 0 0 0 0 0 0 1 1 1 1 1 1 1 1
B 0 0 0 0 1 1 1 1 0 0 0 0 1 1 1 1
C 0 0 1 1 0 0 1 1 0 0 1 1 0 0 1 1
D 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1
G 1 1 0 1 0 0 1 1 1 0 0 1 1 0 1 0
Actividad
Realizar F = BCD + ABC con un 4:1 multiplexor y un minimo numero de compuertas:
A 0 0 0 0 0 0 0 0 1 1 1 1 1 1 1 1 B 0 0 0 0 1 1 1 1 0 0 0 0 1 1 1 1 C 0 0 1 1 0 0 1 1 0 0 1 1 0 0 1 1 D 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 Z 0 0 1 0 0 0 0 0 0 0 1 0 1 1 0 0
0 when BC
0 D A 0
0 1 4:1 MUX 2 3 S1 S0 B C
15
Demultiplexor/decodificador
Decodificador/demultiplexor: concepto general un input de datos, n inputs de control, 2n outputs inputs de control (llamado selects (S)) representan index binario de cual output se conecta el input input de datos tpicamente se llama enable (G)
1:2 Decoder: O0 = G S O1 = G S 2:4 Decoder: O0 = G S1 O1 = G S1 O2 = G S1 O3 = G S1 S0 S0 S0 S0 O0 O1 O2 O3 O4 O5 O6 O7 3:8 Decoder: = G S2 S1 S0 = G S2 S1 S0 = G S2 S1 S0 = G S2 S1 S0 = G S2 S1 S0 = G S2 S1 S0 = G S2 S1 S0 = G S2 S1 S0
7: Combinacionales 16
Implementacin de demultiplexores
decodificador 1:2
active-high enable G S O1 O0 active-low enable \G S O1 O0
decodificador 2:4
G active-high enable O0 O1 O2 O3 \G active-low enable O0 O1 O2 O3
S1 S0
S1 S0
7: Combinacionales
17
demultiplexor genra minterms apropiados basados en las seales de control ("decodifica" seales de control)
F1
Enable
F2
F3
7: Combinacionales
19
Decodificadores en cascada
decodificador 5:32 decodificador 1x2:4 decodificador 4x3:8
0 1 2 3:8 DEC3 4 5 6 7 S2 S1 S0 A'B'C'D'E' 0 1 2 3:8 DEC 3 4 5 6 7 S2 S1 S0 A'BC'DE'
0 2:4 DEC 1 2 S1 S0 3 A B
0 1 2 3:8 DEC3 4 5 6 7 S2 S1 S0 C D E
ABCDE
0 1 2 3:8 DEC 3 4 5 6 7 S2 S1 S0 C D E
AB'C'D'E'
AB'CDE
7: Combinacionales
20
7-Sistemas Combinacionales
7.1 Introduccin 7.2 Multiplexores, Demultiplexores, Decodificador 7.3 PLAs, PALs, ROMs 7.4 FPGAs 7.5 HDLs
7: Combinacionales
21
AND array
product terms
OR array
outputs
7: Combinacionales 22
C 1 0 0
Antes de programar
Todas las conexiones posibles estn disponibles antes de programar
en realidad, todas las AND y ORs son NANDs
7: Combinacionales
24
Durante programacin
Conexiones no deseadas se eliminan fuse (normalmente conectadas, se rompen esas no deseadas) anti-fuse (normalmente desconectadas, se hacen conexiones deseadas)
A B C
F0
F1
F2
F3
7: Combinacionales
25
Representaciones alternativas
Mas corta para no tener que dibujar todos los cable significa conexin esta presente y seal perpendicular es input a una compuerta
ejemplo: F0 = A B + A' B' F1 = C D' + C' D A B C D AB A'B' CD' C'D
AB+A'B' CD'+C'D
7: Combinacionales 26
PLA: ejemplo
Mltiples funciones usando A, B, C F1 = A B C full decoder as for memory address F2 = A + B + C bits stored in memory A B C F3 = A' B' C' A'B'C' F4 = A' + B' + C' A'B'C F5 = A xor B xor C A'BC' F6 = A xnor B xnor C
A'BC AB'C ABC' ABC A 0 0 0 0 1 1 1 1 B 0 0 1 1 0 0 1 1 C 0 1 0 1 0 1 0 1 F1 F2 0 0 0 1 0 1 0 1 0 1 0 1 0 1 1 1 F3 F4 1 1 0 1 0 1 0 1 0 1 0 1 0 1 0 0 F5 F6 0 0 1 1 1 1 0 0 1 1 0 0 0 0 1 1 AB'C'
F1 F2 F3 F4 F5 F6 7: Combinacionales
27
PALs y PLAs
Programmable logic array (PLA) lo que hemos visto hasta ahora arreglos AND y OR generales, sin restricciones Programmable array logic (PAL) topologa del arreglo OR es restringida (eg. 8, 4, 2 ORs, numero de inputs fijo para cada OR) plano de ORs es mas rpido y pequeo todos los trminos de los productos no se comparten entre los ouputs
una columna del arreglo OR solo tiene acceso a un subconjunto del los posibles productos
7: Combinacionales
28
7: Combinacionales
29
no es un buen candidato para implementacin en PLA ya que los trminos no son compartidos entre los outputs pero la implementacin es mucho mas compacta y regular que usando compuertas AND y OR discretas
7: Combinacionales
30
7: Combinacionales
Y 7: Combinacionales
32
Actividad
Mapear las funciones a un PLA: W = AB + AC + BC X = ABC + AB + AB Y = ABC + BC + BC
A B C
Y
34
7: Combinacionales
Actividad (cont)
9 trminos no caben en PLA de 7 trminos se puede usar teorema de consenso A B C a W para simplificar a: W = AB + AC 8 trminos no caben en PLA de 7 trminos observe que AB = ABC + ABC reescribir W para reutilizar trminos: W = ABC + ABC + AC Ahora cabe W = ABC + ABC + AC X = ABC + AB + AB Y = ABC + BC + BC Esto es mapeo de tecnologa manipular funciones lgicas para poder usar recursos disponibles
W = AB + AC + BC X = ABC + AB + AB Y = ABC + BC + BC
ABC ABC AC AB AB BC BC
Y
35
7: Combinacionales
truth table
Estructura de ROM
Similar a PLA pero con un arreglo AND completamente decodificado
Arreglo OR completamente flexible
n address lines inputs
decoder
2n word lines
7: Combinacionales
39
7-Sistemas Combinacionales
7.1 Introduccin 7.2 Multiplexores, Demultiplexores, Decodificador 7.3 PLAs, PALs, ROMs 7.4 FPGAs 7.5 HDLs
7: Combinacionales
42
43
Esta celda es de 8 entradas y una salida implementa: f = (s0 + s1)(sAA0+sAA1)(s0 + s1)(sBB0+sBB1) Esta celda puede implementar todas las funciones de dos variables, todas las de tres con al menos unas sin 7: Combinacionales 44 complementar, muchas de cuatro y hasta algunas de ocho
Esta celda es de 4 entradas y puede implementar cualquier funcin de cuatro variables Para su funcionamiento primero se graba la tabla de bsqueda con la tabla de verdad de la funcin, se direcciona usando el decodificador Una ves configurada, se usa el multiplexor con la combinacin de las 7: Combinacionales 45 variables de entrada y en la salida se obtiene el bit almacenado
Finalmente:
7: Combinacionales
46
7: Combinacionales
47
7-Sistemas Combinacionales
7.1 Introduccin 7.2 Multiplexores, Demultiplexores, Decodificador 7.3 PLAs, PALs, ROMs 7.4 FPGAs 7.5 HDLs
7: Combinacionales
48
reemplazo textual para una esquemtica composicin jerrquica de mdulos desde elementos primitivos describe lo que hace un modulo no los componentes especficos la etapa de sntesis genera el circuito para el modulo circuito de prueba
7: Combinacionales
49
HDLs
Abel (circa 1983) desarrollado por Data-I/O usado para PLUs principalmente para maquinas de estados ISP (circa 1977) proyecto de CMU simulacin, pero no sntesis Verilog (circa 1985) desarrollado por Gateway (absorvido por Cadence) similar a Pascal y C eficiente y facil de usar standard de IEEE VHDL (circa 1987) desarrollado por DoD de USA similar a Ada muy general pero complejo standard de IEEE
7: Combinacionales
50
Verilog
Permite descripcin estructurales y de comportamiento Estructural estructura explicita del circuito e.g., cada compuerta es instanciada y conectada a otras Comportamiento programa describe input/output del circuito pueden haber muchas implementaciones del mismo comportamiento e.g., diferentes implementaciones de una funcin Booleana
7: Combinacionales
51
Modelo Estructural
module xor_gate (out, a, b); input a, b; output out; wire abar, bbar, t1, t2; inverter inverter and_gate and_gate or_gate endmodule invA (abar, a); invB (bbar, b); and1 (t1, a, bbar); and2 (t2, b, abar); or1 (out, t1, t2);
7: Combinacionales
52
7: Combinacionales
53
7: Combinacionales
54
Simulacin completa
Instanciar componente de estimulo y componente para probar circuito
x y a b z
test-bench
7: Combinacionales
56
Ejemplo comparador
module Compare1 (Equal, Alarger, Blarger, A, B); input A, B; output Equal, Alarger, Blarger; assign #5 Equal = (A & B) | (~A & ~B); assign #3 Alarger = (A & ~B); assign #3 Blarger = (~A & B); endmodule
7: Combinacionales
57
assign neighbors = {n7, n6, n5, n4, n3, n2, n1, n0}; always @(neighbors or self) begin count = 0; for (i = 0; i < 8; i = i+1) count = count + neighbors[i]; out = (count == 3); out = out | ((self == 1) & (count == 2)); end endmodule
7: Combinacionales 58
Asignacin
Estructuras de datos
Paralelismo
59