Skip to content
Circuits digitalsLogo Càtedra Chip

Aritmètica de 4 bits

A continuació tractarem alguns circuits aritmètics que efectuen operacions amb 4 bits. Veurem exemples de sumadors i restadors de 4 bits i una UAL (ALU) molt simple.

Exemple: Suma de nombres de 4 bits

En aquest exemple veurem com podem sumar dos nombres binaris de 4 bits. Els sumadors binaris (ripple-carry adders) es poden construir amb sumadors complets (full adders) i un semisumador (half adder). En tractar-se d’una suma de 4 bits, haurem d'encadenar 3 sumadors complets i un semisumador, o bé 4 sumadors complets si configurem el primer sumador complet com a semisumador.

CircuitVerse té un objecte anomenat adder que implementa un sumador.

Elements de circuit
Entrada AEntrada BEntrada CinSortida SumSortida Cout

Les entrades A i B són les variables que es sumen i Cin és el bit de carry d'entrada. Les sortides són Sum amb el resultat i Cout amb el carry de sortida. Si passem el ratolí per les entrades i sortides de l'objecte podem veure el seu nom.

El circuit que efectua la suma concatena 3 sumadors complets i un semisumador:

Sumador de 4 bits

Si convé, podem implementar el mateix circuit amb 4 sumadors complets. La funció del semisumador la pot fer un sumador complet si hi introduïm una constant 0 a la seva entrada Centrada.

Sumador de 4 bits (alternatiu)

Implementem-ho a CircuitVerse:

Sumador de 4 bits a CircuitVerse

En aquest exemple els valors d'entrada són:

  • Entrada A = 0010
  • Entrada B = 0001

I les sortides:

  • Sortida S = A + B
  • Sortida Cout = Carry de sortida

A Jutge.org, els exercicis d'àlgebra de 4 bits i àlgebra de n bits utilitzen la nomenclatura de busos A[3:0] (definida a Busos) i entrades/sortides de 4 o n bits. Per tal que Jutge pugui validar correctament el circuit, cal utilitzar la propietat BitWidth de les entrades, sortides i adders. Aquest paràmetre es pot veure al menú Properties:

Entrada A de 4 bitsPropietats

Un cop canviat el BitWidth a 4 podem fer la suma amb un únic adder i simplificar el circuit:

Suma amb un únic adder

A CircuitVerse, les entrades i sortides de 4 bits tenen cable de color negre, mentre que Cin i Cout, de només 1 bit, són de color verd.

Exemple: Resta de nombres de 4 bits

Per tal de restar dos nombres binaris emprarem la fórmula:

S=AB=A+(B¯+1)

En aquest exemple realitzarem una resta de 4 bits. Considerem:

  • Entrada A = 1100 (12 en decimal)
  • Entrada B = 0101 (5 en decimal)
  • Sortida S = A - B (4 bits)
  • Sortida Cout = Carry de sortida

Primer neguem B:

B=0101B¯=1010

Després fem la suma:

S=A+B¯+1=1100+1010+1=1100+1011=0111

La següent taula especifica aquesta operació bit a bit (no és una taula de veritat):

bitAiBi¯CiSiCsortida
0 (LSB)00110
101010
210010
3 (MSB)11001

El circuit que efectua la resta concatena 4 sumadors, amb B¯ i Centrada=1:

Restador de 4 bits

A CircuitVerse es representa així:

Restador de 4 bits a CircuitVerse

Amb BitWidth = 4 simplifiquem el circuit:

Restador amb un únic adder

Exemple: Triar operacions

A més d'efectuar operacions aritmètiques, els circuits aritmètics també poden implementar la selecció d'una operació. Les UAL (ALU) permeten triar entre operacions en funció d'una variable. Aquest exemple explora aquesta funcionalitat.

Volem implementar un circuit que triï entre una suma i una resta en funció de la variable d'entrada op.

  • Si op=0, es fa una suma.
  • Si op=1, es fa una resta.

Per realitzar la suma de 4 bits A+B farem servir un Adder de BitWidth = 4. El carry d'entrada (Cin) ha de ser 0, així que hi connectarem un terra (ground).

Bloc de suma

Per fer la resta emprarem:

S=AB=A+B¯+1

Per negar B utilitzarem una porta NOT de 4 bits. El carry d'entrada (Cin) ha de ser 1, així que utilitzarem una font (power).

Afegint la peça del circuit que fa la resta obtenim:

Suma i resta

Tant Power com Ground es poden localitzar al menú d’inputs de CircuitVerse. Totes dues funcionen com a una constant. Power sempre té el valor 1 i Ground sempre té valor 0.

Ara cal afegir la part del circuit capaç de triar entre una operació i l’altra a partir de la variable d'entrada op. Utilitzarem un multiplexor, com el que es mostra a l'apartat de Multiplexors dels circuits combinacionals. Els multiplexors deixen passar un senyal o un altre en funció d'una variable selectora i això és el que ens cal en aquest cas.

El circuit complet, afegint aquest darrer element, és el següent:

Suma seleccionadaResta seleccionada

Podem emprar un multiplexor amb més de dues entrades per gestionar més operacions possibles.
Dins del menú de propietats del multiplexor a CircuitVerse es pot modificar el nombre d’entrades amb la propietat control signal size.

Les UALs (ALU) normalment trien entre 4 operacions (multiplexors de 4 entrades) amb un selector op de 2 bits.

Multiplexor 4 entrades

Exercicis a Jutge.org: Introduction to Digital Circuit Design

Recorda que per accedir als exercicis i perquè el Jutge valori les teves solucions has d'estar inscrit al curs. Trobaràs totes les instruccions aquí.



Logos Càtedra Chip

Xavier Casas, Francesc Madrid
Lliçons.jutge.org
© Universitat Politècnica de Catalunya, 2025

lliçons.jutge.org