⚡ Repaso Exprés · Sistemas Digitales

1.º Ingeniería Informática · UAX · Lectura: 30 min · Orientado a cómo resolver cada tipo de ejercicio · Notación: Karnaugh con columnas AB en Gray (00·01·11·10), A = mayor peso · Todos los números verificados con Python

1CONVERSIONES RÁPIDAS

Decimal → binario (2 métodos)

A) Restos: divide entre 2 apuntando restos; lee de abajo arriba.
B) Restas de potencias (el rápido):
  1. Busca la mayor potencia de 2 que quepa → pon 1.
  2. Resta y repite. Potencia que no quepa → pon 0.
Ej. 183 → 128 cabe (resto 55) · 64 no · 32 sí (23) · 16 sí (7) · 8 no · 4 sí (3) · 2 sí (1) · 1 sí → 10110111₂. Comprobación: 128+32+16+4+2+1 = 183 ✓

Decimal con coma

Parte entera por restos. Parte decimal: multiplica ×2 y apunta la parte entera de cada resultado (lee de arriba abajo).
Ej. 0.625×2=1.25 → 0.25×2=0.5 → 0.5×2=1.0 → 0.101₂.
6.375 = 4+2 + 0.25+0.125 = 110.011₂

Binario ↔ hex / octal

Agrupa desde la derecha (rellena con 0 a la izquierda): hex = grupos de 4, octal = grupos de 3. Nunca pases por decimal.
Ej. 101101₂ → hex: 0010|1101 = 0x2D · octal: 101|101 = 55₈
0xB7 → 1011 0111 ✓ · Hex↔octal: pasa por binario y reagrupa.

Tabla de los 16 nibbles (memoriza)

01234567
00000001001000110100010101100111
89ABCDEF
10001001101010111100110111101111
Potencias de 2 (de memoria): 1 · 2 · 4 · 8 · 16 · 32 · 64 · 128 · 256 · 512 · 1024 (2¹⁰=1K) · 2048 · 4096 · 8192 · 16384 · 32768 · 65536 (2¹⁶=64K). Truco: 2¹²=4K, 2²⁰=1M. Y con bases mezcladas (0x2A + 110110₂): pasa TODO a decimal, opera, convierte al final.

2COMPLEMENTO A 2 EXPRÉS

Truco rápido Ca2: desde la derecha, copia todo hasta el primer 1 incluido; invierte el resto.
Ej. −45 en 8 bits: 45 = 00101101 → copio el 1 final, invierto 001011011010011
Resta = suma del Ca2: A − B = A + Ca2(B), y descarta el acarreo final si sobra un bit.
Ej. 25 − 58 (8 bits): 25=00011001, 58=00111010, Ca2(58)=11000110.
00011001 + 11000110 = 11011111. Bit de signo 1 → negativo: Ca2(11011111)=00100001=33 → −33
Rangos con n bits: [−2ⁿ⁻¹, 2ⁿ⁻¹−1]. 4 bits: −8…7 · 8 bits: −128…127 · 16 bits: −32768…32767.

Acarreo (carry) vs desbordamiento (overflow)

ConceptoCuándo importaRegla
CarryNúmeros sin signoSale acarreo del último bit → resultado no cabe
OverflowNúmeros con signo (Ca2)Solo puede darse si los operandos tienen el mismo signo y el resultado sale con signo contrario
Signo ASigno BSigno resultado¿Overflow?
++
+
+cualquieraNUNCA
Ej. 100+100 (8 bits, con signo): 01100100+01100100 = 11001000 = −56 (¡falso!). Dos positivos → resultado negativo → overflow (200 > 127) ✓

3TABLA DE VERDAD → FUNCIÓN (en 30 segundos)

  1. Numera cada fila con su índice decimal (A = mayor peso: índice = 4A+2B+C, o 8A+4B+2C+D).
  2. Filas con F=1mintérminos: F = Σm(…). Filas con F=0maxtérminos: F = ∏M(…).
  3. Escribir un mintérmino (producto): variable a 1 → tal cual, a 0 → negada.
  4. Escribir un maxtérmino (suma): ¡al revés! variable a 0 → tal cual, a 1 → negada.
Ej. m₅ con (A,B,C): 5 = 101 → m₅ = A·B·C.
M₂: 2 = 010 → M₂ = (A + B + C) — vale 0 solo en la fila 010 ✓
Los índices de Σm y ∏M son complementarios: si F = Σm(1,4,5), entonces F = ∏M(0,2,3,6,7).
Truco: Σm = «suma de los unos» · ∏M = «producto de los ceros». Si te piden F: F = Σm(los índices donde F=0).

4KARNAUGH: RECETA COMPLETA

Dónde va cada mintérmino (¡memoriza estas plantillas!)

3 variables — columnas AB en Gray, fila C:

C\AB00011110
0m0m2m6m4
1m1m3m7m5

4 variables — columnas AB, filas CD, ambas en Gray:

CD\AB00011110
00m0m4m12m8
01m1m5m13m9
11m3m7m15m11
10m2m6m14m10
Reglas de agrupación (en este orden):
  1. Grupos de tamaño potencia de 2: busca 8 → 4 → 2 → 1 (cuanto más grande, más simple).
  2. Solo rectángulos/cuadrados. Bordes opuestos se tocan; las 4 esquinas forman grupo.
  3. Un 1 puede estar en varios grupos, pero cada grupo debe aportar algún 1 nuevo.
  4. Don't cares (X): úsalos solo si agrandan el grupo; no hace falta cubrirlos.
  5. Término del grupo = variables que NO cambian dentro de él (a 1 → tal cual, a 0 → negada). Grupo de 2ᵏ elimina k variables.

Micro-ejemplo 1 (3 var, SOP y POS del mismo mapa)

F(A,B,C) = Σm(0,1,2,4,6):

C\AB00011110
010121614
111030705

Fila C=0 completa (grupo de 4) → la única variable que no cambia es C, fija a 0 → C · m1+m0 (columna 00) → A=0,B=0 fijas → AB

SOP mínima: F = C + AB ✓ (verificado)

POS: agrupo los 0 (índices 3,5,7): pareja 3-7 → B y C fijas a 1 → término suma (B+C); pareja 5-7 → A,C a 1 → (A+C).
F = (B+C)(A+C) = ∏M(3,5,7) ✓ (regla: en el término suma, variable a 1 → negada, a 0 → tal cual)

Micro-ejemplo 2 (4 var, esquinas + centro)

F(A,B,C,D) = Σm(0,2,5,7,8,10,13,15):

CD\AB00011110
00100401218
01011511309
110317115011
101206014110

4 esquinas (0,2,8,10) → B=0 y D=0 fijas → BD · centro (5,7,13,15) → B=1, D=1 → BD

F = BD + BD ✓ (verificado; es B XNOR D)

Don't cares: «F=1 si el dígito BCD ≥ 6, m10–m15 imposibles» → F = Σm(6,7,8,9) + d(10…15). Con las X, el grupo 8,9 crece a toda la mitad A=1 (8–15) → A; y 6,7 con 14,15 → BC. F = A + BC

5LEER Y DIBUJAR CIRCUITOS

Puertas: símbolo, expresión y tabla mínima

PuertaExpresiónSale 1 cuando…00011011
AND (D recta)F = A·Btodas a 10001
OR (punta curva)F = A+Balguna a 10111
NOT (triángulo + burbuja)F = Aentrada a 0invierte
NAND (AND + burbuja)F = A·BNO todas a 11110
NOR (OR + burbuja)F = A+Btodas a 01000
XOR (OR + doble curva)F = A⊕Bimpar de unos / distintas0110
XNORF = A⊕Biguales1001
Circuito → expresión: recorre de entradas a salida, anotando en cada hilo lo que lleva. La salida de cada puerta = su operación sobre lo anotado en sus entradas.
Ej. A y B entran a un OR (hilo: A+B); C entra a un NOT (hilo: C); ambos hilos a un AND → F = (A+B)·C. Su tabla (filas 0–7): 0,0,1,0,1,0,1,0 ✓
Expresión → circuito: capa 1 = NOT de las variables negadas; capa 2 = un AND por cada producto; capa 3 = un OR final que junta todos los productos. (Para POS: OR primero, AND final.)
Solo-NAND (regla de las 2 burbujas): en una SOP,
  1. Doble negación sobre todo: F = SOP.
  2. De Morgan a la negación interior → cada AND se vuelve NAND, y el OR final se vuelve NAND de las salidas negadas.
  3. Regla gráfica: AND→NAND y OR→NAND directamente (dos burbujas en el mismo hilo se anulan). NOT = NAND con las 2 entradas unidas.
Ej. F = AB + C = AB+C = AB · C = NAND( NAND(A,B), NAND(C,C) ) ✓ (verificado las 8 filas)

6ÁLGEBRA DE BOOLE: CHULETA DE TEOREMAS

NombreFórmulaÚsalo para…
Elemento neutro / nuloA+0=A · A·1=A · A+1=1 · A·0=0eliminar constantes
IdempotenciaA+A=A · A·A=Aduplicar un término para agrupar dos veces
ComplementoA+A=1 · A·A=0anular términos imposibles
InvoluciónA = Aquitar dobles negaciones (paso NAND)
DistributivaA(B+C)=AB+AC · A+BC=(A+B)(A+C)desarrollar POS→SOP (¡la 2.ª solo en Boole!)
AbsorciónA+AB=A · A(A+B)=Atachar el término largo que contiene al corto
Absorción 2.ª formaA+AB = A+Bquitar la negada que sobra ✓
Adyacencia (unificación)AB+AB = Abase de Karnaugh: fusionar términos vecinos
De MorganA+B=A·B · A·B=A+Bromper negaciones grandes; NAND/NOR
ConsensoAB + AC + BC = AB + ACtachar el término «puente» BC ✓
En el examen: si te piden «demuestre algebraicamente», nombra el teorema en cada paso. Cadena típica POS→SOP: distributiva → complemento (A·A=0) → absorción.

7BLOQUES COMBINACIONALES

Decodificador n → 2ⁿ

Cada salida Yᵢ = mintérmino i (vale 1 solo con la entrada i). Implementar F = Σm(…): conecta las variables a las entradas (A al peso alto) y una OR a las salidas de esos mintérminos.
Ej. F = Σm(1,2,4,7) con deco 3:8 → OR(Y1,Y2,Y4,Y7). (Es A⊕B⊕C ✓.)

Multiplexor 2ⁿ : 1

Selección S = las variables (A al peso alto); cada entrada de datos Iᵢ = valor de F en la fila i (0 o 1).
Ej. F(A,B,C)=Σm(1,3,5,6) con MUX 8:1 → I1=I3=I5=I6=1, resto 0; sel = ABC.

Semisumador / sumador completo

SCout
Semisumador (A+B)A⊕BA·B
Sumador completo (A+B+Cin)A⊕B⊕CinAB + Cin(A⊕B)
Ej. A=1, B=1, Cin=1 → S = 1⊕1⊕1 = 1; Cout = 1·1 + 1·(1⊕1) = 1 → 11₂ = 3 ✓. Sumador de n bits = n sumadores completos encadenando el acarreo (ripple carry).

Comparador (1 bit)

(A=B) = A⊕B (XNOR) · (A>B) = A·B · (A<B) = A·B. Para n bits: compara del bit más alto hacia abajo; el primero distinto decide.

8MEMORIAS EXPRÉS

Fórmulas con nombre:
  1. Capacidad = 2ⁿ palabras × m bits/palabra (memoria «2ⁿ × m»).
  2. Líneas de dirección n = log₂(nº palabras) · Líneas de datos = m.
  3. Ampliar palabras (más profundidad): apilar chips + decodificador sobre las líneas altas de dirección → los CS.
  4. Ampliar ancho (más bits/palabra): chips en paralelo, misma dirección y mismo CS, cada uno aporta sus bits.
  5. Nº de chips = (capacidad total) / (capacidad de un chip).
  6. Mapa hex: un chip de 2ᵏ palabras ocupa un rango que abarca exactamente k bits bajos: tamaño 2ᵏ = «span» en hex (2K = 0x800, 4K = 0x1000, 16K = 0x4000).
Ej. 1 — Datos de un chip. Memoria 16K × 8:
n = log₂(16384) = 14 líneas de dirección, 8 de datos.
Capacidad = 16384 × 8 = 131072 bits = 16384 bytes = 16 KiB
Ej. 2 — Ampliación. Construir 64K × 8 con chips 16K × 8:
64K/16K = 4 chips apilados. 64K → 16 líneas (A15…A0); cada chip usa A13…A0; A15 A14 → decodificador 2:4 → CS.
Rangos: chip0 0000–3FFF · chip1 4000–7FFF · chip2 8000–BFFF · chip3 C000–FFFF
Y para 4K × 16 con chips 4K × 8: 2 chips en paralelo (uno da D15–D8 y otro D7–D0), misma dirección.
Truco del mapa hex: chip de 2K empieza en múltiplos de 0x800 (2K−1 = 07FF); de 4K en múltiplos de 0x1000; de 16K en múltiplos de 0x4000. La dirección inicial del chip i = i × tamaño.

9BIESTABLES Y CONTADORES EXPRÉS

Tablas características

DQ⁺JKQ⁺TQ⁺
0000Q (mantiene)0Q
11010 (reset)1Q (conmuta)
Q⁺ = D101 (set)Q⁺=T⊕Q
11Q (conmuta)

JK con J=K=1 ≡ T con T=1. Tabla de excitación JK: 0→0: J=0,K=X · 0→1: J=1,K=X · 1→0: J=X,K=1 · 1→1: J=X,K=0.

Receta contador síncrono (mód. 2ⁿ ascendente)

  1. Tabla de estados: estado actual → siguiente (0,1,2,…,máx,0).
  2. Para cada biestable, columna de su entrada (con la tabla de excitación).
  3. Simplifica cada entrada por Karnaugh.
  4. Atajo binario con T (o JK con J=K): T₀=1, T₁=Q₀, T₂=Q₁·Q₀, T₃=Q₂Q₁Q₀ («conmuta cuando todos los de abajo están a 1»).
Ej. Mód-8 con T: T₀=1, T₁=Q₀, T₂=Q₁Q₀ → secuencia simulada 0,1,2,3,4,5,6,7,0 ✓. Todos los relojes al mismo CLK (síncrono); asíncrono = el CLK de cada etapa es la salida de la anterior.

10ERRORES QUE TE QUITAN PUNTOS

  1. Agrupar bits desde la izquierda al pasar a hex/octal: siempre desde la derecha (1101011₂ → 001|101|011 = 153₈, no 110|101|1…).
  2. Leer los restos al revés en decimal→binario: el último resto es el bit más significativo (se lee de abajo arriba).
  3. Poner las columnas del Karnaugh en orden binario 00-01-10-11: es Gray 00-01-11-10, si no, los vecinos no son adyacentes y todo sale mal.
  4. Colocar mintérminos con B como mayor peso: aquí A es el mayor peso (m = 8A+4B+2C+D). Revisa m₅ ≠ m₆.
  5. Confundir la regla de escritura: mintérmino «1 = tal cual», maxtérmino «0 = tal cual». Son opuestas.
  6. Olvidar que bordes y esquinas se tocan en el mapa: un grupo de 4 esquinas o una pareja borde-borde vale (y suele ser LA simplificación).
  7. Hacer grupos de 3 o 6: solo potencias de 2 (1, 2, 4, 8). Y sentirte obligado a cubrir las X: los don't cares son opcionales.
  8. Confundir carry con overflow: el acarreo final en Ca2 se descarta; el overflow solo existe si dos operandos del mismo signo dan resultado de signo contrario.
  9. En solo-NAND, olvidar que el inversor también debe ser una NAND (dos entradas unidas), y dejar un término suelto sin pasar por la NAND final.
  10. En memorias, confundir palabras con bits: 16K × 8 son 16384 palabras (14 líneas de dirección), no 16384 bits. Capacidad total = palabras × ancho.

Repaso Exprés · Sistemas Digitales · UAX · Todos los ejemplos numéricos y mapas verificados con Python (38/38 comprobaciones OK) · Imprime en A4 vertical