🚀 Projeto 18 – Projetista de Somador Completo e Multiplexador 4:1
🎯 Objetivo
Implementar a simulação lógica em software de um Somador Completo de 4 bits (Ripple Carry Adder) e de um Multiplexador de 4 canais.
📋 Requisitos do Projeto
- Full Adder 1 bit: Função que aceita \(A, B, C_{\text{in}}\) e retorna \((\text{Soma}, C_{\text{out}})\).
- Somador 4 bits: Função que utiliza 4 Full Adders em cadeia para somar dois números binários de 4 bits.
💡 Código de Referência
def full_adder(a: int, b: int, c_in: int):
soma = a ^ b ^ c_in
c_out = (a & b) | (c_in & (a ^ b))
return soma, c_out
def somador_4bits(bin_a: list, bin_b: list):
c = 0
resultado = []
for i in range(3, -1, -1):
s, c = full_adder(bin_a[i], bin_b[i], c)
resultado.insert(0, s)
return resultado, c
# Teste: 5 + 3 = 8 (0101 + 0011 = 1000)
a = [0, 1, 0, 1]
b = [0, 0, 1, 1]
res, carry = somador_4bits(a, b)
print(f"Resultado: {res}, Carry Out: {carry}")