Temario Maestro · Sistemas Digitales
1.º Grado en Ingeniería Informática · UAX · Convocatoria extraordinaria · Teoría completa desde cero, sin dar nada por sabido. Todos los ejemplos numéricos y todos los mapas están verificados con Python (_verif_sistemas.py).
1 · Conceptos básicos: cómo guarda información un ordenador
Bit (binary digit, «dígito binario»): la unidad mínima de información. Solo puede valer 0 o 1 (apagado/encendido, falso/verdadero, 0 V / 5 V).
Byte (u octeto): grupo de 8 bits. Puede tomar 2⁸ = 256 valores distintos (de 00000000 a 11111111). Medio byte (4 bits) se llama nibble y equivale exactamente a un dígito hexadecimal.
Palabra (word): número de bits que un circuito o memoria maneja «de una vez» (8, 16, 32, 64 bits…). En memorias, el ancho de palabra es el número de bits de cada posición.
Unidades de capacidad: 1 KiB (kibibyte) = 2¹⁰ = 1024 bytes; 1 MiB = 2²⁰ = 1 048 576 bytes; 1 GiB = 2³⁰ bytes. En asignaturas de sistemas digitales, «1 KB» y «1K» casi siempre significan 1024 (potencia de 2), no 1000. Análogamente Kibit = 1024 bits. ¡Ojo!: b minúscula = bit, B mayúscula = byte.
Variable lógica: símbolo (A, B, C…) que solo puede valer 0 o 1. Función lógica: regla que asigna un 0 o un 1 de salida a cada combinación de las entradas (ejemplo: F = A·B, «F vale 1 solo si A y B valen 1 a la vez»).
Mini-ejemplo. ¿Cuántos valores distintos puede representar un nibble (4 bits)? 2⁴ = 16 (del 0 al 15), justo los 16 símbolos hexadecimales 0–9, A–F.
2 · Sistemas de numeración y conversiones entre bases
Un número escrito en base b usa los dígitos 0…b−1 y cada posición vale una potencia de b. Trabajamos con cuatro bases:
| Base | Nombre | Dígitos | Notación |
| 2 | binario | 0, 1 | 101101₂ / 0b101101 |
| 8 | octal | 0–7 | 55₈ / 0o55 |
| 10 | decimal | 0–9 | 45₁₀ |
| 16 | hexadecimal | 0–9 y A=10, B=11, C=12, D=13, E=14, F=15 | 2D₁₆ / 0x2D |
2.1 · Cualquier base → decimal (método de los pesos)
Regla: multiplica cada dígito por su peso (la base elevada a la posición, empezando en 0 por la derecha) y suma.
Ejemplos resueltos.
10110111₂ = 1·128 + 0·64 + 1·32 + 1·16 + 0·8 + 1·4 + 1·2 + 1·1 = 183₁₀.
173₈ = 1·64 + 7·8 + 3·1 = 123₁₀.
0xB7 = 11·16 + 7·1 = 183₁₀ (B vale 11).
2.2 · Decimal → otra base (divisiones sucesivas)
Regla: divide una y otra vez entre la base apuntando los restos; el número se lee con los restos de abajo hacia arriba (el último resto es el dígito más significativo).
Ejemplo: 45₁₀ → binario.
45÷2 = 22 resto 1 · 22÷2 = 11 resto 0 · 11÷2 = 5 resto 1 · 5÷2 = 2 resto 1 · 2÷2 = 1 resto 0 · 1÷2 = 0 resto 1.
Leyendo de abajo arriba: 101101₂. Comprobación: 32+8+4+1 = 45 ✓.
Ejemplo: 183₁₀ → hexadecimal. 183÷16 = 11 resto 7; 11÷16 = 0 resto 11(=B) → 0xB7 ✓.
2.3 · Binario ↔ hexadecimal y binario ↔ octal (el atajo de agrupar bits)
Regla de oro: 1 dígito hexadecimal = 4 bits (porque 16 = 2⁴); 1 dígito octal = 3 bits (porque 8 = 2³). Se agrupa desde la derecha, rellenando con ceros a la izquierda si falta. No hace falta pasar por decimal.
Ejemplos resueltos.
101101₂ → hex: 0010|1101 → 2|D → 0x2D. 101101₂ → octal: 101|101 → 5|5 → 55₈.
0xB7 → binario: B=1011, 7=0111 → 10110111₂. 635₈ → binario: 6=110, 3=011, 5=101 → 110011101₂.
Hex ↔ octal: pasa por binario y reagrupa (0x3E = 00111110 → 111|110 → 76₈).
Fallo típico de examen: agrupar desde la izquierda. 1101011₂ a octal es 001|101|011 = 153₈ (correcto), no 110|101|1… Memoriza la tabla de nibbles: 8=1000, 9=1001, A=1010, B=1011, C=1100, D=1101, E=1110, F=1111.
Operaciones con bases mezcladas (p. ej. 0x2A + 110110₂): convierte TODO a decimal, opera, y convierte el resultado a la base pedida. 0x2A = 42; 110110₂ = 54; 42+54 = 96 = 01100000₂ = 0x60.
3 · Aritmética binaria y números con signo
3.1 · Suma binaria
Reglas por columna: 0+0=0 · 0+1=1 · 1+0=1 · 1+1=10 (escribo 0, me llevo 1) · 1+1+1=11 (escribo 1, me llevo 1). El «me llevo» es el acarreo (carry).
Ejemplo: 1011 + 0111 (11+7).
1111 ← acarreos
1011
+ 0111
10010 = 18 ✓
3.2 · Resta binaria
Puede hacerse con «préstamos» (borrow), pero en el examen conviene el método seguro: restar es sumar el complemento a 2 (apartado 3.4).
3.3 · Complemento a 1 (Ca1)
Complemento a 1 de un número binario: invertir todos sus bits (0↔1). Ejemplo: Ca1(01011010) = 10100101.
3.4 · Complemento a 2 (Ca2): la representación estándar de los enteros con signo
Complemento a 2 con n bits: los positivos se escriben en binario normal (bit más alto 0); un número negativo −x se representa invirtiendo los bits de x y sumando 1. El bit más significativo actúa como bit de signo (0 = positivo, 1 = negativo).
Ejemplo: −45 en 8 bits.
1) |−45| = 45 = 00101101 · 2) invierto: 11010010 · 3) sumo 1: 11010011. Por tanto −45 = 11010011.
Lectura inversa (¿qué vale 11010011?): el bit alto es 1 → negativo. Atajo: lectura sin signo − 2ⁿ = 211 − 256 = −45 ✓.
Rango en Ca2 con n bits: de −2ⁿ⁻¹ a +2ⁿ⁻¹−1. Con 8 bits: −128 … +127 (asimétrico: el 0 «gasta» un hueco del lado positivo). Sin signo: 0 … 2ⁿ−1 (con 8 bits, 0…255).
Extensión de signo: para pasar un Ca2 de n bits a más bits se replica el bit de signo a la izquierda: 1011 (−5 en 4 bits) → 11111011 (−5 en 8 bits).
3.5 · Restar sumando y desbordamiento (overflow)
Ejemplo: 73 − 45 en 8 bits.
73 = 01001001; −45 = 11010011. Sumo: 01001001 + 11010011 = 1·00011100.
Sale un acarreo del bit más significativo: se descarta. Resultado: 00011100 = 28 = 73−45 ✓.
Overflow (desbordamiento): el resultado no cabe en el rango. Detección con los signos: positivo + positivo = «negativo» u negativo + negativo = «positivo» ⇒ overflow. Al sumar operandos de signos opuestos jamás hay overflow.
Acarreo ≠ overflow. El acarreo es el bit que «se sale» por la izquierda (en Ca2 se descarta sin más); el overflow es un error de rango y se detecta mirando los signos. En 73−45 hay acarreo y NO hay overflow. En 100+42 = 10001110 (parece −114) no hay acarreo pero SÍ overflow (142 > 127).
3.6 · Otras representaciones de enteros con signo
Signo-magnitud: el primer bit es el signo y el resto el valor absoluto (−45 = 1·0101101). Problemas: dos ceros (00000000 y 10000000) y las sumas no salen directamente. Complemento a 1 como sistema: negativo = inversión de bits, también con doble cero. Por eso los procesadores usan Ca2.
3.7 · Idea de la coma flotante (complementario)
Coma flotante: para números reales muy grandes o pequeños se guardan tres campos: signo, exponente y mantisa (cifras significativas), como una «notación científica binaria»: valor = ±mantisa × 2^exponente (estándar IEEE 754: 32 bits = 1+8+23). Basta con conocer la idea de los tres campos.
4 · Álgebra de Boole
El álgebra de Boole es el conjunto de reglas para operar variables lógicas con tres operaciones básicas: NOT (negación, A o A'), AND (producto lógico, A·B) y OR (suma lógica, A+B). Prioridad de evaluación: primero NOT, luego AND, luego OR (como «por dentro» de las mates: primero paréntesis).
4.1 · Axiomas y teoremas (tabla de referencia)
| Nombre | Forma OR | Forma AND |
| Elemento neutro | A + 0 = A | A · 1 = A |
| Elemento dominante | A + 1 = 1 | A · 0 = 0 |
| Idempotencia | A + A = A | A · A = A |
| Complemento | A + A = 1 | A · A = 0 |
| Doble negación | A = A |
| Conmutativa | A + B = B + A | A·B = B·A |
| Asociativa | (A+B)+C = A+(B+C) | (A·B)·C = A·(B·C) |
| Distributiva | A·(B+C) = A·B + A·C | A + B·C = (A+B)·(A+C) |
| Absorción | A + A·B = A | A·(A+B) = A |
| Absorción 2 (¡muy preguntada!) | A + A·B = A + B | A·(A+B) = A·B |
| De Morgan | (A + B) = A · B | (A · B) = A + B |
De Morgan con ejemplo. Simplifica (A·B + C).
Paso 1 (De Morgan sobre la suma): (A·B) · C. Paso 2 (De Morgan sobre el producto): (A + B) · C.
Regla memorizable: «la raya se rompe y el operador se da la vuelta» (OR↔AND).
Simplificación algebraica paso a paso. F = A·B + A·B + A·B
= A·(B + B) + A·B (distributiva) = A·1 + A·B (complemento) = A + A·B (neutro) = A + B (absorción 2).
5 · Tablas de verdad
Tabla de verdad: tabla que enumera todas las combinaciones posibles de las entradas y, para cada una, el valor de la salida. Con n variables tiene 2ⁿ filas (2 vars → 4 filas, 3 → 8, 4 → 16). Es la definición completa y sin ambigüedad de una función lógica.
5.1 · Cómo se construye (método fijo, siempre igual)
- Escribe las variables en orden de peso: A (mayor peso) … a la derecha la de peso 1.
- Enumera las filas contando en binario de 0 a 2ⁿ−1: la fila i contiene el número i en binario. Truco de rellenado: la última columna alterna 0,1,0,1…; la anterior 0,0,1,1…; la anterior 0,0,0,0,1,1,1,1…
- Numera las filas: el número de fila (en decimal) será el índice de mintérmino/maxtérmino.
- Evalúa la función fila a fila (primero NOT, luego AND, luego OR) o traduce el enunciado («vale 1 si hay mayoría…»).
5.2 · Cómo se lee
Cada fila responde una pregunta concreta: «¿cuánto vale F si A=…, B=…, C=…?». Para evaluar F(1,0,1) se busca la fila 101 (la nº 5). Dos funciones son equivalentes si sus tablas coinciden en todas las filas — así se comprueban las simplificaciones.
Ejemplo resuelto (lo usaremos en todo el tema): F = A·B + C.
Evaluamos las 8 filas; p. ej. fila 4 (A=1,B=0,C=0): A·
B = 1·1 = 1 → F = 1+0 = 1.
| fila | A | B | C | F |
|---|
| 0 | 0 | 0 | 0 | 0 |
| 1 | 0 | 0 | 1 | 1 |
| 2 | 0 | 1 | 0 | 0 |
| 3 | 0 | 1 | 1 | 1 |
| 4 | 1 | 0 | 0 | 1 |
| 5 | 1 | 0 | 1 | 1 |
| 6 | 1 | 1 | 0 | 0 |
| 7 | 1 | 1 | 1 | 1 |
Filas con F=1 (sombreadas): 1, 3, 4, 5, 7.
6 · De la tabla de verdad a la función lógica
Mintérmino (mᵢ): producto (AND) de TODAS las variables, una vez cada una, que vale 1 solo en la fila i. Receta: en la fila i, la variable que vale 1 va tal cual y la que vale 0 va negada. Ej. (3 vars): fila 5 = 101 → m₅ = A·B·C.
Maxtérmino (Mᵢ): suma (OR) de todas las variables que vale 0 solo en la fila i. Receta INVERSA: la variable que vale 0 va tal cual y la que vale 1 va negada. Ej.: fila 2 = 010 → M₂ = A + B + C. Se cumple Mᵢ = mᵢ.
6.1 · Suma de mintérminos (SOP canónica)
SOP = Sum Of Products, en español suma de productos (forma normal disyuntiva): F escrita como OR de mintérminos, uno por cada fila donde F=1. Notación compacta: F = Σm(lista de filas con 1).
Paso a paso con el ejemplo del tema (F=1 en las filas 1, 3, 4, 5, 7):
F = Σm(1, 3, 4, 5, 7) = m₁+m₃+m₄+m₅+m₇ = A·B·C + A·B·C + A·B·C + A·B·C + A·B·C.
6.2 · Producto de maxtérminos (POS canónica)
POS = Product Of Sums, producto de sumas (forma normal conjuntiva): F como AND de maxtérminos, uno por cada fila donde F=0. Notación: F = ∏M(filas con 0). Regla clave: Σm y ∏M de una misma función usan índices complementarios.
Con el mismo ejemplo (F=0 en las filas 0, 2, 6):
F = ∏M(0, 2, 6) = (A+B+C) · (A+B+C) · (A+B+C).
Comprobación rápida: {1,3,4,5,7} ∪ {0,2,6} = {0…7} y no comparten índices ✓.
Error típico: escribir ∏M con los índices de los unos. Los maxtérminos siempre se toman de las filas donde F vale cero.
7 · Mapas de Karnaugh (el corazón del examen)
Mapa de Karnaugh: la tabla de verdad redibujada como cuadrícula, colocada de forma que celdas vecinas difieren en una sola variable. Sirve para obtener a ojo la expresión mínima (con menos términos y menos letras) sin álgebra.
7.1 · Colocación de los índices y código Gray
Código Gray: ordenación 00, 01, 11, 10 en la que cada valor difiere del siguiente en un solo bit (también entre el último y el primero: 10→00). Se usa en las cabeceras del mapa precisamente para que dos celdas contiguas (también a través de los bordes) se diferencien en una única variable: al agrupar celdas, la variable que cambia dentro del grupo se elimina. Con el orden binario normal (00,01,10,11) el paso 01→10 cambia dos bits y el método no funcionaría.
Convención de esta asignatura (la de los exámenes): columnas AB en Gray (00, 01, 11, 10) y filas C (3 variables: 0, 1) o CD (4 variables: 00, 01, 11, 10). A es la variable de mayor peso: el número de mintérmino de cada celda es i = 4A+2B+C (3 vars) o i = 8A+4B+2C+D (4 vars). En los mapas de abajo, el numerito gris de cada celda es su mintérmino.
Mapa de 2 variables (filas A, columnas B):
Mapa de 3 variables (celdas = nº de mintérmino):
| C\AB | 00 | 01 | 11 | 10 |
|---|
| 0 | m0 | m2 | m6 | m4 |
|---|
| 1 | m1 | m3 | m7 | m5 |
|---|
Mapa de 4 variables:
| CD\AB | 00 | 01 | 11 | 10 |
|---|
| 00 | m0 | m4 | m12 | m8 |
|---|
| 01 | m1 | m5 | m13 | m9 |
|---|
| 11 | m3 | m7 | m15 | m11 |
|---|
| 10 | m2 | m6 | m14 | m10 |
|---|
Fíjate: en el mapa de 4 variables la tercera columna es AB=11 (¡no 10!). Las celdas 3,7,15,11 forman la fila CD=11. Los bordes se «enrollan»: la columna 00 es vecina de la 10, y la fila 00 de la 10; por eso las cuatro esquinas (0, 2, 8, 10) son adyacentes entre sí.
7.2 · Reglas de agrupación (para SOP: se agrupan los UNOS)
- Los grupos son rectángulos de 1, 2, 4, 8 o 16 celdas (potencias de 2). Nada de grupos de 3, 6 o en «L».
- Un grupo de 2ᵏ celdas elimina k variables (las que cambian dentro del grupo) → interesa hacer los grupos lo más grandes posible.
- Los grupos pueden solaparse (una celda puede estar en varios) y pueden cruzar los bordes (columnas 00–10, filas 00–10, y las 4 esquinas).
- Hay que cubrir todos los unos con el menor número de grupos posible.
- Término de cada grupo: mira qué variables quedan constantes en todas sus celdas; la que vale 1 va tal cual, la que vale 0 va negada, y las que cambian desaparecen.
Ejemplo 3 variables: F = Σm(0, 2, 5, 7).
| C\AB | 00 | 01 | 11 | 10 |
|---|
| 0 | 10 | 12 | 06 | 04 |
|---|
| 1 | 01 | 03 | 17 | 15 |
|---|
Grupo 1: celdas 0 y 2 (columnas AB=00 y AB=01 de la fila C=0): constantes A=0, C=0 → término
A·
C (B se elimina).
Grupo 2: celdas 5 y 7: constantes A=1, C=1 → término A·C (B se elimina).
F = A·C + A·C (es la XNOR de A y C: vale 1 cuando A=C).
Ejemplo 4 variables con esquinas: F = Σm(0, 2, 5, 7, 8, 10, 13, 15).
| CD\AB | 00 | 01 | 11 | 10 |
|---|
| 00 | 10 | 04 | 012 | 18 |
|---|
| 01 | 01 | 15 | 113 | 09 |
|---|
| 11 | 03 | 17 | 115 | 011 |
|---|
| 10 | 12 | 06 | 014 | 110 |
|---|
Las cuatro esquinas 0, 2, 8, 10 son un grupo de 4 (adyacencia por los dos bordes): constantes B=0, D=0 →
B·
D.
El cuadrado central 5, 7, 13, 15: constantes B=1, D=1 → B·D.
F = B·D + B·D. Un grupo de 4 elimina 2 variables (aquí A y C en ambos).
Ejemplo con el hilo del tema: F = A·
B + C = Σm(1, 3, 4, 5, 7).
| C\AB | 00 | 01 | 11 | 10 |
|---|
| 0 | 00 | 02 | 06 | 14 |
|---|
| 1 | 11 | 13 | 17 | 15 |
|---|
Grupo de 4: toda la fila C=1 (celdas 1, 3, 5, 7) → término C.
Grupo de 2: celdas 4 y 5 (A=1, B=0) → A·
B.
F mínima = C + A·B: el mapa devuelve exactamente la forma simple de la función. La celda 5 está en dos grupos: solaparse es legal y gratis.
7.3 · POS: agrupar los CEROS
Para la forma producto de sumas se agrupan los ceros con las mismas reglas; cada grupo da una suma con la regla INVERSA: variable constante a 0 → sin negar, constante a 1 → negada. La función es el AND de esas sumas. (Equivale a simplificar F en SOP y aplicar De Morgan.)
Ejemplo: mismo mapa del hilo (ceros en 0, 2, 6).
| C\AB | 00 | 01 | 11 | 10 |
|---|
| 0 | 00 | 02 | 06 | 14 |
|---|
| 1 | 11 | 13 | 17 | 15 |
|---|
Ceros 0 y 2: constantes A=0, C=0 → suma (A + C).
Ceros 2 y 6 (010 y 110): constantes B=1 y C=0; regla inversa: B=1 →
B, C=0 → C → suma (
B + C). A cambia y se elimina.
F = (A + C)·(B + C). Comprobado por tabla de verdad: coincide con C + A·
B ✓.
7.4 · Indiferencias (don't care, X)
Don't care (X): combinaciones de entrada que nunca ocurren (o cuya salida da igual), p. ej. los códigos 1010–1111 en una entrada BCD. En el mapa se marcan con X y pueden usarse como 1 o como 0, según convenga: se toman como 1 solo si agrandan un grupo. No es obligatorio cubrirlas.
Ejemplo: F = Σm(6, 7, 8, 9) con d(10, 11, 12, 13, 14, 15).
| CD\AB | 00 | 01 | 11 | 10 |
|---|
| 00 | 00 | 04 | X12 | 18 |
|---|
| 01 | 01 | 05 | X13 | 19 |
|---|
| 11 | 03 | 17 | X15 | X11 |
|---|
| 10 | 02 | 16 | X14 | X10 |
|---|
Celdas 8, 9 + seis X → grupo de 8 (toda la mitad A=1) → término A.
Celdas 6, 7 + X 14, 15 → grupo de 4 → B·C.
F = A + B·C. Sin las X el resultado sería mucho peor (A·
B·
C +
A·B·C).
7.5 · Receta completa para un problema de Karnaugh
- 1) Dibuja el mapa con las cabeceras en Gray y numera mentalmente las celdas.
- 2) Coloca los 1 (de la Σm o de la tabla), los 0 y las X.
- 3) Busca grupos del mayor tamaño posible, empezando por los unos «difíciles» (los que solo caben en un grupo: grupos esenciales). Recuerda bordes y esquinas.
- 4) Extrae el término de cada grupo (constantes: 1→tal cual, 0→negada).
- 5) F = suma (OR) de los términos. Para POS repite con los ceros y la regla inversa.
- 6) Comprueba 2 o 3 celdas sueltas sustituyendo valores en tu expresión.
8 · Puertas lógicas y bloques combinacionales
8.1 · Las puertas, una a una
| Puerta | Función | Expresión | Vale 1 cuando… | Tabla (A,B → S) |
| NOT (inversor) | niega | S = A | A = 0 | 0→1 · 1→0 |
| AND | producto | S = A·B | todas las entradas a 1 | 00→0 01→0 10→0 11→1 |
| OR | suma | S = A+B | alguna entrada a 1 | 00→0 01→1 10→1 11→1 |
| NAND | AND negada | S = (A·B) | NO todas a 1 | 00→1 01→1 10→1 11→0 |
| NOR | OR negada | S = (A+B) | todas a 0 | 00→1 01→0 10→0 11→0 |
| XOR (⊕) | o-exclusiva | S = A⊕B = A·B + A·B | entradas DISTINTAS (nº impar de unos) | 00→0 01→1 10→1 11→0 |
| XNOR | XOR negada | S = (A⊕B) = A·B + A·B | entradas IGUALES (nº par de unos) | 00→1 01→0 10→0 11→1 |
La bolita ○ significa negación. NAND y NOR son «universales»: cualquier circuito puede construirse solo con NAND (o solo con NOR). XOR detecta imparidad: A⊕B⊕C vale 1 con 1 o 3 unos (base de los generadores de paridad).
8.2 · Decodificador (n → 2ⁿ)
Decodificador: n entradas y 2ⁿ salidas; activa exactamente una salida: la número i cuando la entrada vale i en binario. Es decir, cada salida Oᵢ ES el mintérmino mᵢ. Suele llevar una entrada de habilitación E (enable): si E está inactiva, ninguna salida se activa.
Diseño con decodificador + OR (cae siempre): para implementar F = Σm(1, 4, 6) con un decodificador 3→8, conecta las salidas O₁, O₄ y O₆ a una puerta OR. Traducción directa mintérmino ↔ número de salida. Con entradas A̅BC̅D etc., primero calcula el número: A̅·B·C̅·D = 0101 = salida O₅.
8.3 · Codificador (2ⁿ → n)
Codificador: el inverso del decodificador: 2ⁿ entradas y n salidas; da en binario el número de la entrada activa (I₅ activa → salida 101). Los codificadores con prioridad resuelven el caso de varias entradas activas dando la de mayor índice.
8.4 · Multiplexor (MUX 2ⁿ:1) y demultiplexor
Multiplexor: «conmutador digital»: 2ⁿ entradas de datos, n líneas de selección y 1 salida. La salida copia la entrada elegida: Y = I(S). MUX 2:1: Y = S·I₀ + S·I₁. Un MUX de 16 entradas necesita 4 líneas de selección.
Demultiplexor: lo contrario: 1 entrada de datos que se envía a una de las 2ⁿ salidas (las demás quedan a 0). Un decodificador con enable actúa de demultiplexor (el dato entra por E).
Función con MUX: para implementar F(A,B,C) = Σm(1,2,4,7) con un MUX 8:1, conecta A,B,C a la selección y pon a 1 las entradas I₁, I₂, I₄, I₇ (y 0 el resto): la tabla de verdad se «copia» en las entradas.
8.5 · Comparador
Comparador de magnitud: recibe dos números A y B y activa una de tres salidas: A>B, A=B, A<B. Se compara empezando por el bit más significativo. Para 1 bit: (A=B) es la XNOR; (A>B) = A·B; (A<B) = A·B.
8.6 · Sumadores
Semisumador (half adder): suma dos bits A y B → suma S = A⊕B, acarreo C = A·B. No admite acarreo de entrada.
Sumador completo (full adder): suma tres bits (A, B y el acarreo de entrada Cin) → S = A⊕B⊕Cin y Cout = A·B + Cin·(A⊕B). Encadenando n sumadores completos (el Cout de uno al Cin del siguiente) se construye el sumador de n bits (ripple carry).
Mini-ejemplo: A=1, B=1, Cin=1 → 1+1+1 = 3 = 11₂ → S=1, Cout=1. Truco: cuenta los unos y escríbelo en binario de 2 bits (Cout S).
9 · Memorias
9.1 · Organización y fórmulas
Una memoria se describe como 2ⁿ × m: 2ⁿ posiciones (palabras) de m bits cada una. Entonces:
· Líneas de dirección = n = log₂(nº de posiciones) — seleccionan la posición (con un decodificador interno).
· Líneas de datos = m (el ancho de palabra).
· Capacidad total = 2ⁿ × m bits (÷8 → bytes; ÷8·1024 → KiB).
Mini-ejemplos verificados.
· 12 líneas de dirección y 8 de datos → 2¹² = 4096 posiciones × 8 bits = 4096 B = 4 KiB.
· Chip 2K×4 → 2048×4 = 8192 bits = 1 KiB.
· ¿Líneas para 64 KiB (palabra de 1 byte)? 64·1024 = 65536 = 2¹⁶ → 16 líneas.
· 256K×32 → 2¹⁸ posiciones → 18 líneas de dirección, 32 de datos, 2¹⁸·32 bits = 1 MiB.
9.2 · Mapa de direcciones (en hexadecimal)
Regla: última dirección = primera + tamaño − 1. Tamaños útiles en hex: 1 KiB = 0x400, 2 KiB = 0x800, 4 KiB = 0x1000, 8 KiB = 0x2000, 16 KiB = 0x4000.
Ejemplos: bloque de 4 KiB desde 0x2000 → 0x2000 + 0x1000 − 1 = 0x2FFF. Memoria de 0x0000 a 0x7FFF → 0x8000 = 2¹⁵ posiciones = 32 KiB y 15 líneas. El error clásico es olvidar el −1.
9.3 · Ampliación de memorias (dos direcciones distintas)
Ampliar el nº de PALABRAS (más direcciones, mismo ancho): se ponen k = (total/chip) chips y las log₂(k) líneas altas de dirección van a un decodificador que activa el chip select (CS) de un solo chip; las líneas bajas van a todos.
Ampliar el ANCHO de palabra (mismas direcciones, palabra más larga): chips en paralelo, todos reciben la misma dirección a la vez y cada uno aporta un trozo de la palabra. Sin decodificador.
Ejemplos:
· 8K×8 con chips 2K×8 → 8K/2K = 4 chips; 13 líneas totales: 11 bajas a todos + 2 altas a un decodificador 2→4 (CS).
· 4K×16 con chips 4K×4 → 16/4 = 4 chips en paralelo, misma dirección, cada uno da 4 bits de la palabra.
10 · Biestables y circuitos secuenciales
Circuito combinacional: la salida depende SOLO de las entradas actuales (todo lo anterior: puertas, mux, sumadores…). Circuito secuencial: la salida depende también del estado almacenado; tiene memoria y normalmente un reloj (clock) cuyos flancos (subidas) marcan cuándo se actualiza el estado.
Biestable (flip-flop): celda de memoria de 1 bit con salida Q. Tipos que caen:
· RS: S=1 pone Q a 1 (set), R=1 lo pone a 0 (reset); R=S=1 es combinación prohibida.
· D (delay/dato): en cada flanco, Q ← D (copia lo que había en D justo antes del flanco).
· JK: J=K=0 mantiene; J=1,K=0 set; J=0,K=1 reset; J=K=1 conmuta (Q ← Q). Arregla el caso prohibido del RS.
· T (toggle): T=0 mantiene, T=1 conmuta en cada flanco.
Cronograma mini (verificado): biestable D con Q inicial 0 y D = 1, 0, 1 en tres flancos → Q pasa a 1, 0, 1 (copia el D previo a cada flanco). Regla de oro de los cronogramas: las entradas se leen con los valores ANTERIORES al flanco; el nuevo Q solo cuenta a partir del flanco siguiente.
Contador binario: n biestables (p. ej. T con T=1, en cascada) cuentan de 0 a 2ⁿ−1 y vuelven a 0 (módulo 2ⁿ). Cada biestable T con T=1 divide la frecuencia del reloj entre 2: k biestables en cascada dividen entre 2ᵏ. Registro: n biestables D en paralelo que almacenan una palabra completa.
Mini-ejemplo: 4 biestables → contador módulo 2⁴ = 16 (de 0 a 15). Reloj de 8 MHz con 2 biestables T en cascada → 8/2/2 = 2 MHz.
11 · Chuleta final (lo que hay que saber de memoria)
| Tema | Fórmula / regla |
| Filas de una tabla | 2ⁿ |
| Mintérmino / maxtérmino | mᵢ: 1→tal cual, 0→negada (producto) · Mᵢ: al revés (suma) · Σm y ∏M: índices complementarios |
| Karnaugh | Gray 00,01,11,10 · grupos 1,2,4,8,16 · grupo de 2ᵏ elimina k variables · bordes y esquinas adyacentes · SOP: unos · POS: ceros con regla inversa · X: úsala solo si agranda |
| Hex/octal ↔ binario | 1 hex = 4 bits · 1 octal = 3 bits (desde la derecha) |
| Ca2 de −x | invertir bits de x y sumar 1 · valor si bit alto=1: lectura − 2ⁿ |
| Rangos (n bits) | sin signo: 0…2ⁿ−1 · Ca2: −2ⁿ⁻¹…2ⁿ⁻¹−1 |
| Overflow | (+)+(+)=(−) o (−)+(−)=(+) · con signos opuestos, nunca · acarreo se descarta |
| Memoria 2ⁿ×m | n líneas dirección · m líneas datos · capacidad 2ⁿ·m bits · fin de bloque = inicio + tamaño − 1 |
| Ampliación | más palabras → decodificador en líneas altas · más ancho → chips en paralelo |
| Sumador completo | S = A⊕B⊕Cin · Cout = A·B + Cin·(A⊕B) |
| Biestables | D: Q←D · T=1: conmuta · JK=11: conmuta · RS=11: prohibido |
Material de estudio generado y verificado con Python para la convocatoria extraordinaria · Sistemas Digitales · UAX.