Sunteți pe pagina 1din 12

Prelegerea 4

Construct ii la nivel de registru


La nivel de registru, bit ii de informat ie sunt grupat i n mult imi ordonate numite cuvinte
sau vectori. Componentele primitive sunt combinat ii mici de circuite secvent iale folosite
pentru a prelucra si stoca cuvinte.
4.1 Componente la nivel de registru
Cele mai importante (si deci utilizate) componente sunt listate n tabelul urmator. Com-
ponenta care da numele ntregului set este registrul paralel, o construct ie folosita pentru
memorarea de cuvinte.
Tip Componenta Funct ii
Combinat ional Port i pentru cuvinte Operat ii booleene
Multiplexori Funct ii combinat ionale generale
Magistrale pentru date.
Decodicatori, codicatori Conversii, controlul codului.
Sumatori Adunare si scadere.
Unitat i aritmetico-logice Operat ii numerice si logice.
Componente programabile logic Funct ii combinat ionale generale.
Secvent ial Registri paraleli Stocarea informat iei.
Registri de lucru Stocarea informat iei
Conversii serial-paralele.
Numar atori Generarea semnalului control/timp.
Componente programabile logic Funct ii generale secvent iale.
Componentele de la acest nivel sunt legate formand circuite cu ajutorul unor
magistrale capabile sa transfere cuvinte.
1
2 PRELEGEREA 4. CONSTRUCT II LA NIVEL DE REGISTRU
4.1.1 Tipuri
Cele doua mari tipuri listate sunt deosebit de generale. Nu exista o distinct ie clara ntre
ele, dupa cum se vede unele componente putand realiza funct ii comune.
Notat ia general acceptata pentru o component a la nivel de registru este de un drep-
tunghi cont inand o descriere abreviata a comportamentului, ca n Figura 1.
Unitate multifunct ionala
? ? ?
? ?
-
-

!
!

k
m m m
m m
X
1
X
2
X
3
Z
1
Z
2
Date de iesire
Date de intrare
F
E
S
Stare nala
Selector
Conectare
Control linii intrare
Control linii iesire
-
Figura 1: Reprezentarea unei componente la nivel de registru.
O linie de semnal poate reprezenta o magistrala care transfera simultan m (m > 1) bit i;
m este indicat explicit marcand sageata respectiva cu un slash si scriind lang a el num arul
m. Liniile de intrare/iesire sunt adesea separate n linii de date si linii de control. O
magistrala poate identicata printr-un nume care i precizeaza rolul; de exemplu tipul
de date transmise prin magistrala respectiva. Numele unei linii de control indica operat ia
determinata de aceasta (starea poate activa, de conectare sau init ializare). Daca nu se
precizeaza altceva, starea activa a unei magistrale apare cand liniile sale transmit valoarea
logica 1. Un cerc mic reprezent and inversiunea plasat la intrarea sau iesirea din bloc indica
0 ca stare activa si 1 stare inactiva; n acest caz, numele semnalului a carui stare activa
este 0 este barat deasupra.
Liniile de control de intrare se clasica n:
Magistrale de selectare: specica setul de operat ii realizat de unitatea respectiva;
Magistrale de conectare: specica timpul sau condit iile n care se efectueaza operat i-
ile selectate. Daca exista un timer, acesta este conectat la aceste linii.

In diagrama de sus, pentru a efectua o operat ie F


1
, se selecteaza din magistrala F linia
corespunzatoare operat iei F
1
, apoi se activeaz a linia de conectare E aplicand un semnal
0 1.
Daca exista semnale de control la iesire, acestea indica cand si cum unitatea indicata
sfarseste operat ia pe care o efectueaza.

In Figura 1, sfarsitul operat iei este indicat prin
S = 0.
4.1. COMPONENTE LA NIVEL DE REGISTRU 3
4.1.2 Operat ii
Structurile la nivel de poarta implementeaz a funct ii combinat ionale ale caror valori sunt
din mult imea B = {0, 1}; ele formeaza o algebra Boole. Aceste funct ii sunt extinse aici la
un domeniu din B
m
, un semnal ind un vector de m bit i. Fie z(x
1
, x
2
, . . . , x
n
) o funct ie
n-ara, si X
1
, . . . , X
n
m-tupluri de forma X
i
= (x
i,1
, . . . , x
i,m
). Se deneste operat ia pe
cuvinte z astfel:
z(X
1
, . . . , X
n
) = [z(x
1,1
, x
2,1
, . . . , x
n,1
), z(x
1,2
, x
2,2
, . . . , x
n,2
), . . . , z(x
1,m
, x
2,m
, . . . , x
n,m
)]
Aceasta denit ie generalizeaza operat iile booleene uzuale, cum ar AND, OR, NAND,
etc. De exemplu, denit ia operat iei extinse OR este:
X
1
X
2
. . . X
n
= (x
1,1
x
2,1
. . . x
n,1
, x
1,2
x
2,2
. . . x
n,2
, x
1,m
x
2,m
. . . x
n,m
).
Ea aplica operat ia OR pentru ecare din cei m bit i ai cuvintelor din suma.
Mult imea celor 2
2
m
funct ii combinat ionale denite pe cuvinte de lungime m formeaza
o algebra Boole n raport cu operat iile extinse AND, OR si NOT.
Operat iile bazate pe cuvinte sunt importante, dar ele nu ofera totdeauna construct ii
eciente, din mai multe motive, cum ar :
Operat iile realizate la nivel de registru sunt adesea de tip numeric, nu logic; deci ele
sunt dicil de ncorporat ntr-o structura booleana.
Multe operat ii logice asociate componentelor de tip registru sunt complexe si nu au
proprietat ile port ilor (de exemplu comutativitatea intrarilor).
Desi un sistem are adesea magistralele de dimensiune standard, unele transporta
semnale av and un numar diferit de bit i. De exemplu, iesirea dintr-un test pe o
mult ime S de cuvinte de m bit i este de un singur bit. Lipsa uniformitat ii marimii
cuvintelor pentru semnale face dicila denirea unei algebre eciente care sa le
cuprinda.
Din aceste motive, construct ia componentelor la nivel de registru este realizata frecvent
folosind metode euristice si intuitive.
4.1.3 Componente
Cele mai cunoscute componente combinat ionale si secvent iale de la nivel de registru sunt
urmatoarele:
i. Port i pentru cuvinte:
Fie X = (x
1
, x
2
, . . . , x
m
), Y = (y
1
, y
2
, . . . , y
m
) doua cuvinte de m bit i. O operat ie binara
f pe cuvinte cu argumentele X si Y , are ca rezultat un cuvant Z = (z
1
, z
2
, . . . , z
m
);
notat ia va Z = f(X, Y ), cu z
i
= f(x
i
, y
i
) (1 i m).
4 PRELEGEREA 4. CONSTRUCT II LA NIVEL DE REGISTRU
Exemplul 4.1 Z = X||Y reprezinta operat ia || (NAND) pe m bit i
Z = (z
1
, z
2
, . . . , z
m
) = (x
1
||y
1
, x
2
||y
2
, . . . , x
m
||y
m
)
Diagrama logica este data de Figura 2(a), iar simbolul de Figura 2(b):
`

. . .
?? ?? ?? ? ?

? ? ? ?
x
1
y
1
x
2
y
2
x
m
y
m X Y
m m
Z
z
m
z
2
z
1
(a) (b)
Figura 2: Reprezentarea operat iei NAND pe m bit i.

In cazul particular cand unul din operanzi se reduce la un bit, vom avea
X y = (x
1
y, x
2
y, . . . , x
m
y)
Exemplul 4.2 Pentru operat ia Z = X y (XOR) vom avea construct ia si respectiv
simbolul:
`

?
?
`

?
?
`

?
?
`

?
?
. . .
?
? ? ?
, ,
?

y
X
Z
z
m
z
2
z
1
x
1
x
2
x
m
y
m
m
(a) (b)
Figura 3.
Port ile pentru cuvinte sunt universale: pot implementa orice circuit logic combinat ional.
Analiza lor poate realizata folosind algebre booleene.

In pactica totusi, utilizarea lor
este limitata de relativa simplitate a operat iilor realizate si de variabilitatea dimensiunii
vectorilor folosit i.
Decodoare
Cel mai simplu circuit logic raspunde la ntrebarea:
Care este valoarea aplicata la intrare ?

P
P
P
- -
? -
x
0
y
0
y
1
(a)
x
0
-

P
P
P
-

P
P
P
-
? -
y
1
y
0
(b)
EDCD
-
? ?
x
0
y
0
y
1
(c)
EDCD
-
? ?
x
0
y
0
y
1
(d)
Figura 4: Decodicator elementar.
4.1. COMPONENTE LA NIVEL DE REGISTRU 5
Prin extensie paralela a circuitelor care realizeaza cele mai simple funct ii f(x
0
) = y
1
= x
0
(funct ia identica) si g(x
0
) = y
0
= x
0
(funct ia NOT) se obt ine un decodicator elementar
(EDCD). Daca este activa iesirea y
0
, atunci intrarea a avut valoarea 0; daca este activa
iesirea y
1
, intrarea a avut valoarea 1.
Pentru a izola iesirea de intrare, se foloseste un EDCD cu buer; aceasta se rea-
lizeaza extinzand serial circuitul anterior cu nca o complementare (Figura 4(b)).

In acest
fel, comportamentul de iesire al EDCD nu depinde de iesirea circuitului care asigura
intrarea.
Schemele (c) si (d) sunt reprezentarile simbolice ale celor doua decodicatoare.
Prin decodicare este realizata o reprezentare a semnalului de intrare. Aceasta este una
din principalele funct ii ale unui sistem digital.

Inainte de a genera un raspuns semnalului
primit, trebuie sa stim ce semnal s-a primit. Deci, prima problema care trebuie rezolvat a
este aceea de a construi un decodicator (DCD) cu n intrari (DCD
n
) pentru decodicarea
semnalelor codicate cu n bit i.
Denit ia 4.1 Un DCD
n
este un circuit combinat ional cu intrarea X formata din n bit i
x
n1
, . . . , x
0
si iesirea Y reprezentata prin m = 2
n
bit i y
m1
, . . . , y
0
. Fiecare iesire este
activata pentru o anumita congurat ie binara de intrare.
Structura unui DCD
n
se deneste recursiv. Astfel:
un DCD
1
este un EDCD reprezentat n Figura 4(b);
DCD
n
(n 2) se obt ine combin and un DCD
n1
cu un DCD
1
dupa regula din
Figura 5:
`` `` `
. . . . . .
P
P
!
!
, , P
P
!
!
- - -
? ?
? -
? ? ?
? ? ? ? ?
DCD
n1
-
-
?
-
?
-
?
?
-
? ?
x
n2
, . . . , x
0
x
n1
y
0
y
1
y
2
n1
1
y
2
n1 y
2
n
1
Figura 5: DCD
n
Singura dicultate n aceasta construct ie consta n numarul mare de nivele (adancimea)
ale structurii.

In plus, el cont ine pe aceste nivele 2
n
+ 2
n1
+ . . . + 2 = 2
n+1
2 port i
AND (nafar a de cele 2n invertoare). Adancimea (de ordin n) a structurii poate adusa
la o adancime de ordin 1, pe baza urmatoarei observat ii: intrarea n ecare AND este de
forma (a); folosind asociativitatea, cele doua componente AND pot nlocuite cu una
singura, av and trei intr ari, cum este n Figura 6:
6 PRELEGEREA 4. CONSTRUCT II LA NIVEL DE REGISTRU
`
`
`
??
?-
??
???
?
?
x
0
x
1
x
2
x
0
x
1
x
2
y
y
=
Figura 6.
Noul DCD va avea numai n 1 nivele. Procedeul se repeta de nc a n 1 ori; n nal
se obt ine un DCD
n
cu n intrari, 2n complement ari, 2
n
iesiri, dar numai 2
n
port i AND,
toate situate pe un singur nivel.
De exemplu, pentru n = 3 vom avea:

? ? ? ? ? ? ? ?
y
0
y
1
y
2
y
3
y
4
y
5
y
6
y
7
000 100 010 110 001 101 011 111
P
P

P
P

P
P

P
P

P
P

P
P

- - -
? -
- - -
? -
- - -
? -
? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ?
x
0
x
1
x
2
1
0
1
0
1
0
Figura 7: DCD
3
Codicatoare
Denit ia 4.2 Un codicator este un circuit cu m intrari dintre care la ecare moment
numai una este activa; pentru ecare intrare el genereaza o congurat ie binara de lungime
p. El consta din p port i OR sau din p port i NAND, ecare poarta avand maxim m intrari.

In mod normal, intr arile unui codicator sunt de fapt iesirile unui decodicator; din acest
motiv, un codicator nu este denit independent.
Exemplul 4.3 Un sumator complet este un circuit combinat ional cu trei intrari (Figura
8). x
0
, x
1
sunt numerele (de un bit) care se aduna, iar x
2
este bitul suplimentar de
deplasare (de la nsumarea altor doi bit i precedent i). Sunt doua iesiri: S - valoarea sumei
binare dintre x
0
si x
1
, si C
+
- valoarea noii deplasari.
Pentru construct ie vom folosi:
- Un decodicator DCD
3
ale carui port i sunt complementate;
- Un codicator compus din doua port i NAND, ecare cu cate 4 intrari.
4.1. COMPONENTE LA NIVEL DE REGISTRU 7
DCD
3

? ?
-
6
-
6
-
6
x
2
x
1
x
0
x
2
x
1
x
0
y
0
y
1
y
2
y
3
y
4
y
5
y
6
y
7
C
+ S
Figura 8: Codicator pentru construct ia unui sumator complet.
Pentru a vedea cum lucreaza, vom t ine cont de urmatoarea tabela de decodicare:
y
0
y
1
y
2
y
3
y
4
y
5
y
6
y
7
x
0
0 1 0 1 0 1 0 1
x
1
0 0 1 1 0 0 1 1
x
2
0 0 0 0 1 1 1 1

In exemplul de mai sus, daca iesirile decodicatorului nu ar complementate, atunci


codicatorul ar avea port i OR n loc de NAND (conform relat iilor De Morgan).
Daca dorim sa reprezentam toate funct iile binare cu 3 intr ari si 2 iesiri, vor necesare
doua port i NAND cu cel mult opt intr ari ecare. Cele 2
16
funct ii logice posibile vor
implementate folosind circuitul din Exemplul 4.3 n care se pun punctele (conectorii)
conform iesirilor din tabela care deneste funct ia logica respectiva.
Circuitul rezultat poate interpretat si ca o memorie xa.

Intr-adev ar, daca se con-
sidera intrarile drept adrese, atunci la ecare adresa exista stocata o anumit a valoare
binara, conform distribut iei conectorilor. Astfel, folosind Exemplul 4.3, la adresa 010 este
stocat cuvantul 01, la adresa 110 cuvantul stocat este 10, s.a.m.d.
Acest tip de memorie este numit read only memory (ROM).
Demultiplexoare
Un demultiplexor elementar (EDMUX) da posibilitatea de transfer a semnalului E n
doua locuri distincte (y
0
, y
1
), conform unei anumite funct ii de select ie x
0
. Circuitul aso-
ciat acestui deziderat este reprezentat n Figura 9(a).

In practica, pentru minimizarea
intr arilor la circuitele driver-ului, schema sa se complica prin folosirea unui decodicator
elementar (DCD
1
, numit si EDCD) pentru selectarea celor doua port i, si un buer in-
versor pentru demultiplexarea intr arii; se obt ine astfel circuitul (b), al carui simbol este
(c):
8 PRELEGEREA 4. CONSTRUCT II LA NIVEL DE REGISTRU
P
P
P


``
-
?
-
?

? ?
? ?
x
0
y
1
y
0
E
(a)
X
X
X

X
X
X

``

X
X
X

- -
?
-
?

? ?
? ?


x
0
y
0
y
1
E
EDCD
(b)
EDMUX
?
-
? ?
E
x
0
y
0
y
1
(c)
Figura 9: Schema unui demultiplexor elementar.
Denit ia 4.3 Un demultiplexor cu n intrari (DMUX
n
) transfera semnalul de la intrarea
E la una din cele m = 2
n
iesiri y
m1
, . . . , y
0
, selectat de codul binar x
n1
, . . . , x
0
.
O prima solut ie pentru implementarea unui demultiplexor consta n generalizarea schemei
(b): anume, utilizarea unui decodicator cu n intr ari si m = 2
n
port i NAND, conectate
ca n Figura 10:
`` `

P
P
P

DCD
n
x
n1
, . . . , x
0
-
? ? ?

? ? ?

? ? ?
y
0
y
1
. . . y
m1
E
. . .
y
0
y
1
y
m1
Figura 10: Demultiplexor DMUX
n
.
Deoarece pe nivelul de iesire al unui decodicator se aa port i AND, un procedeu simi-
lar cu cel de la decodicatoare permite reconstruirea unui DMUX cu m port i NAND
controlate de n EDCD-uri.
Multiplexoare
Funct ia inversa unui DMUX este multiplexarea (MUX): un circuit care aduna ntr-un
singur loc informat ia din mai multe locuri. Ea este de asemenea si o funct ie de comunicare,
asigurand interconectarea dintre blocuri distincte ale unui sistem digital.
Un multiplexor elementar (EMUX) este un selector care conecteaza semnalul i
1
sau
i
0
n y, n funct ie de valoarea semnalului de selectare x
0
. Circuitul este prezentat mai
jos, unde un EDCD cu intrarea x
0
deschide numai una din cele doua AND-uri care se
nsumeaza apoi de poarta OR n y:
4.1. COMPONENTE LA NIVEL DE REGISTRU 9
`

` `

X
X
X

X
X
X
- -
?
-
? ? ?
?-
?
?
?
?
x
0
i
0
i
1
y
EMUX
i
1
i
0
x
0
y
? ?
-
?
Figura 11: Schema si reprezentarea unui multiplexor elementar (EMUX).
Denit ia generala a acestui circuit este:
Denit ia 4.4 Un multiplexor (MUX
n
) este un circuit combinat ional cu n bit i de control
x
n1
, . . . , x
0
care selecteaza la iesirea y numai o intrare din cele m = 2
n
posibilitat i
i
m1
, . . . , i
0
.
O implementare posibila foloseste un DCD legat serial cu o structura ANDOR, ca n
Figura 12:
DCD
n
`` `
`

-
6
-
??
-
??
-
??
? -
?
?-
?
?
?
?
x
n1
, . . . , x
0
y
0
y
1
y
m1
i
0
i
1
. . .
i
m1
y
Figura 12: Multiplexor (MUX
n
).
Iesirea din decodicator deschide numai o poarta AND care transfera la iesire intrarea
selectata. Acestui circuit i se poate aplica proprietatea de asociativitate ntre port ile
AND ale iesirilor din decodicator si port ile AND suplimentare (ca la DCD-uri).
Se poate da si o denit ie recursiva a unui multiplexor, de complexitate mult scazut a:
Denit ia 4.5 MUX
n
poate construit printr-o conectare seriala a unui EMUX cu
doua MUX
n1
conectate paralel; n plus, MUX
1
= EMUX.
10 PRELEGEREA 4. CONSTRUCT II LA NIVEL DE REGISTRU
MUX
n1
MUX
n1
EMUX
-
6
-
6
-
? ? ? ?
? -
?
?
?
-
?
x
n2
, . . . , x
0
i
0
. . .
i
m/21
i
m/2
. . .
i
m1
i
0
. . .
i
m/21 i
0
. . .
i
m/21
y y
x
n1
x
0
i
0
i
1
y
y
Figura 13: Construct ia recursiva a unui multiplexor MUX
n
.
Desi un multiplexor este (prin denit ie) un circuit de select ie, el poate utilizat si pentru
realizarea unor funct ii booleene. Sa consideram variabilele x
n1
. . . , x
0
ca variabile logice
(booleene) ale unei funct ii care are pe coloana din dreapta i
m1
, . . . , i
0
. Pentru intrarea
(selector) 00 . . . 0 se selecteaza valoarea lui i
0
, s.a.m.d., pan a la intrarea 11 . . . 1 care
selecteaza valoarea i
m1
. Deci MUX executa tabela de adevar a unei funct ii booleene.
Exemplul 4.4 Sa consideram funct ia de transport C
+
a unui sumator pe trei bit i (Ex-
emplul 4.3). Tabela sa de adevar este data de secvent a y
3
+ y
5
+ y
6
+ y
7
= 00010111.
Daca acest vector este aplicat intrarilor selectate si variabilelor A, B, C de select ie, atunci
y = C
+
:
DCD
3
y
7
y
6
y
5
y
4
y
3
y
2
y
1
y
0
x
0
x
1
x
2
-
6
-
6
-
6 x
0
x
1
x
2

-
?
-
?
-
?
-
?
-
?
-
?
-
?
-
?


?
? -
?
? -
?
? -
?
?-
?
?
?
?
?
?
?
?
?
? ? ? ? ? ? ? ?
0 0 0 1 0 1 1 1
y
4.1. COMPONENTE LA NIVEL DE REGISTRU 11
sau, mai succint,
MUX
3
-
? ? ? ?

? ? ? ?
-
-
-
?
0
1
i
0
i
1
i
2
i
3
i
4
i
5
i
6
i
7
x
2
x
1
x
0
x
2
x
1
x
0
y
C
+
Solut ia prezentata este nsa prea generala si risipitoare de resurse. Ea poate min-
imizata la un MUX
2
(vezi gura (a)) folosind una din variabile pe pozit ie de selector.
Ideea poate perfectata, ajungandu-se n nal la un EMUX care selecteaza cu x
2
doua
funct ii de doua variabile x
0
si x
1
(gura (b)):
-
-
? ?
-
? ?
MUX
2
?
x
2
x
1
0
x
0
1
i
0
i
1
i
2
i
3
x
1
x
0
y
C
+
``

EMUX
-
?
?
-
?
?
? ?
-
?
(a)
x
1
x
0
x
2
i
0
i
1
x
0
y
C
+
(b)
Pentru claricare, vom detalia cazul (a); acesta este o notat ie simplicata a circuitului:
DCD
2
y
3
y
2
y
1
y
0
x
0
x
1

`

-
6
-
6
-
?
-
?
-
?
-
? ? ? ? ?
? -
?
?-
?
?
?
?
?
?
x
1
x
2
0
x
0
x
0 1
C
+
Construct ia tabelei de valori conduce la un comportament identic cu circuitul dat init ial,
desi acesta are numai 4 port i ANDn loc de 8. Mai mult, deoarece prima si ultima poarta
sunt controlate de constante, acestea pot eliminate si se ajunge la circuitul:
12 PRELEGEREA 4. CONSTRUCT II LA NIVEL DE REGISTRU
DCD
2
y
0
y
1
y
2
y
3
x
0
x
1

-
6
-
6
-
-
?
-
? ? ?
?
?-
?
?
?
x
1
x
2
? -

x
0


?
C
+
Exemplul 4.4 sugereaza ideea ca un multiplexor poate o solut ie pentru toate funct iile
booleene.
Teorema 4.1 Orice funct ie booleeana de n (n 0) variabile poate implementa cu un
circuit combinat ional logic (CLC).
Demonstrat ie: Pentru n = 0 armat ia este banala.
Pentru n 1, orice funct ie booleana de n variabile se poate pune sub forma normala
f(x
n1
, . . . , x
0
) = x
n1
g(x
n2
, . . . , x
0
) +x
n1
h(x
n2
, . . . , x
0
).
Pentru g si h se poate aplica inductiv acelasi procedeu. Din combinarea acestor doua
circuite, legate serial cu un EMUX, se obt ine circuitul solicitat.
CLC
g
CLC
h
EMUX
-
?- ? -
? -
?
?
?
-
?
x
n2
, . . . , x
0
g(x
n2
, . . . , x
0
) h(x
n2
, . . . , x
0
)
x
n1
i
0
i
1
x
0
y

S-ar putea să vă placă și