Skip to content
Circuits digitalsLogo Càtedra Chip

Nombres

En els circuits digitals, els nombres s’implementen en notació binària i totes les operacions matemàtiques -suma, resta, comparació, multiplicació, divisió o mòdul- es realitzen manipulant bits.

Exemple: Nombre parell o senar

Dissenyarem un circuit que rebi a l’entrada un nombre de 4 bits i activi la sortida (Parell=1) quan el nombre d’entrada sigui parell.

Un nombre binari és parell si el seu bit menys significatiu (LSB) val 0.

Definim la variable d’entrada:

nombre[3:0]=[nombre3 nombre2 nombre1 nombre0]

El bit menys significatiu és nombre0.

La sortida és un sol bit:

  • Parell=1 si el nombre és parell.
  • Parell=0 si el nombre és senar.

Taula parcial d’exemples (la completa tindria 16 files):

nombreNombre en decimalnombre0 (LSB)ParitatParell
000000Parell1
000111Senar0
001020Parell1
001131Senar0
1110140Parell1
1111151Senar0

Construir el circuit és força directe, la sortida Parell s'ha d'activar (valor 1) si i només si nombre[0] té el valor 0, independentment del valor de la resta de bits de nombre.

La sortida és doncs la negació de nombre0.

Parell=nombre0

Per tant, només cal una porta NOT.

Circuit paritat

Exemple: Mòdul 7 d’un nombre de 4 bits

Dissenyarem un circuit que calculi el mòdul 7 d’un número binari n, de 4 bits. Calcular el mòdul 7 d’un número consisteix en trobar el residu quan aquest es divideix per 7. La notació per aquesta operació és:

residu=nmod7

Un número de 4 bits n[3:0]=[n3n2n1n0] pot prendre 16 valors diferents des de 0000 a 1111 (de 0 a 15 en decimal).

Els residus després de dividir un nombre per 7 poden prendre valors de 0 a 6. Per tal de representar el resultat de l'operació, n’hi haurà prou amb un nombre de 3 bits, que pot prendre valors del 000 al 111 (del 0 al 7 en decimal).

residu[2:0]=[residu2 residu1 residu0]

El primer pas per dissenyar aquest circuit és crear la taula de veritat completa que relaciona cada entrada n de 4 bits n[3:0] amb el seu residu corresponent de 3 bits residu[2:0].

residu[2:0]=n[3:0]mod7

n (decimal)n3n2n1n0residu (decimal)residu2residu1residu0
000000000
100011001
200102010
300113011
401004100
501015101
601106110
701110000
810001001
910012010
1010103011
1110114100
1211005101
1311016110
1411100000
1511111001

Per a cada sortida (residu0, residu1, residu2) es construeix un mapa de Karnaugh de 4 variables per obtenir la seva expressió booleana simplificada .

Sortida residu0

Muntem el mapa de Karnaugh de 4 variables d'entrada per a la sortida residu0 i n'identifiquem 3 grups.

n1 n0
n3 n2
00011110
000 1 1 0
010 1 1 0
110 1 0 0
100 1 1 0
n1 n0
n3 n2
00011110
000 1 1 0
010 1 1 0
110 1 0 0
100 1 1 0
n1 n0
n3 n2
00011110
000 1 1 0
010 1 1 0
110 1 0 0
100 1 1 0

L'expressió booleana simplificada per a residu0 tindrà 3 termes:

residu0=n1n0+n3n0+n2n0

Sortida residu1

Muntem el mapa de Karnaugh de 4 variables d'entrada per a la sortida residu1 i n'identifiquem 2 grups.

n1 n0
n3 n2
00011110
000 0 1 1
010 0 1 1
110 0 0 0
100 0 1 1
n1 n0
n3 n2
00011110
000 0 1 1
010 0 1 1
110 0 0 0
100 0 1 1

L'expressió booleana simplificada per a residu1 tindrà 2 termes:

residu1=n3n1+n2n1

Sortida residu2

Per a la sortida residu2 identifiquem 2 grups en el seu mapa de Karnaugh.

n1 n0
n3 n2
00011110
000 0 0 0
011 1 1 1
111 1 0 0
100 0 0 0
n1 n0
n3 n2
00011110
000 0 0 0
011 1 1 1
111 1 0 0
100 0 0 0

Així doncs, l'expressió booleana simplificada per a residu2 tindrà 2 termes:

residu2=n2n1+n3n2

A partir d'aquestes tres expressions podem emprar les portes lògiques per crear el circuit digital que implementarà la funció nmod7.

Circuit mod 7

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