Subcircuito (bloque reutilizable): definición, ejemplo y equivalente en inglés
Un subcircuito es un bloque de lógica reutilizable y con nombre, con entradas y salida propias, definido una vez y usado en otras fórmulas. Un modelo lo fija a una versión, y así editar el bloque no cambia en silencio las reglas que lo usan.
Cualquier fórmula puede empaquetarse como subcircuito: se le da un nombre, se declaran sus entradas, y el nombre se convierte en un operador al que otras fórmulas pueden llamar con sus propios argumentos. Lógicamente, una llamada a un subcircuito es una sustitución: reemplazar la llamada por el cuerpo del bloque, con los argumentos en lugar de las entradas, da una fórmula corriente, y la ley de expansión de subcircuitos hace exactamente ese reemplazo. Los subcircuitos no añaden poder expresivo; lo que añaden es estructura, un único lugar donde vive y se nombra una pieza de lógica compartida.
Un ejemplo resuelto en palabras: un semisumador tiene la suma A XOR B. Empaqueta la suma como un bloque xor2 con entradas a y b. La suma de un sumador completo es entonces xor2(xor2(A, B), Cin), dos llamadas al mismo bloque, y desarrollar las dos llamadas da (A XOR B) XOR Cin. Si el bloque se reescribe después como (a AND NOT b) OR (NOT a AND b), la tabla del sumador no cambia, porque los dos cuerpos son equivalentes; la comprobación de equivalencia sobre el bloque es la prueba que hace segura la reescritura.
Los subcircuitos son los módulos del diseñador de hardware y las funciones del programador: un votador de mayoría, un comparador o una subregla de elegibilidad escrita una vez y reutilizada. Fijar la versión importa porque un bloque compartido es un punto de fallo compartido, y un modelo que nombra la versión contra la que se comprobó sigue siendo reproducible. El término se confunde con una subexpresión (una parte sin nombre de una fórmula) y con una referencia a otra salida, que comparte un valor y no una definición.
El error habitual
Editar un bloque compartido y suponer que todos los modelos que lo usan se han vuelto a comprobar. Un modelo fija la versión contra la que se comprobó, así que conserva el comportamiento antiguo hasta que alguien actualiza la fijación, y esa actualización es el momento de repetir las comprobaciones. Un bloque cambiado en el sitio es un cambio para todos los que lo llaman.
Preguntas
¿Un subcircuito cambia la tabla de verdad de la fórmula que lo llama?
No. La llamada se desarrolla en el cuerpo del bloque con los argumentos sustituidos, y la fórmula desarrollada tiene la tabla que habría tenido escrita por completo. La ley de expansión de subcircuitos en las páginas de leyes muestra ese desarrollo como una equivalencia.
¿Puede un subcircuito llamarse a sí mismo?
No. La lógica combinacional no tiene bucles, y un bloque que se refiriera a sí mismo no tendría desarrollo finito. Los bloques pueden llamar a otros bloques, siempre que la cadena de llamadas termine.
Relacionado
Véase también
- Expansión de un subcircuito (paso de reescritura de Tangibool)
- Expansión de una referencia a una salida con nombre (Tangibool)
- Lógica combinacional: definición, ejemplo y equivalente en inglés
- Compuerta lógica (puerta lógica): definición, ejemplo y equivalente en inglés
- Semisumador, suma: A XOR B
- Sumador completo, suma: A XOR B XOR Cin
Glosario
Generado a partir del motor de Tangibool, semántica tangibool-semantics/1, motor 1.0.0, compilación . Cada tabla, mapa, simplificación y veredicto de estas páginas lo calculó el motor de Tangibool al compilar el sitio, y cada afirmación la volvió a comprobar el mismo verificador exacto que usa la app. Los límites se indican donde aplican. © 2026 Foreranger LTD.