Documente Academic
Documente Profesional
Documente Cultură
OPERAIILEARITMETICE
10.1 PROCESORUL ARITMETIC
Unprocesoraritmeticreprezintundispozitivcapabilsefectuezeoperaiisimplesaucomplexeasupra
unoroperanzifurnizainformatecorespunztoare.Caexemplesepotda:
UnitateaAritmeticsimpl;
Incrementatorul;
DispozitivulpentruTransformataFourierRapidetc.
Rezultat: Z
Operanzii: X, Y
Operaia: *
Procesor Aritmetic
Formate:
Timp: T(*, )
Condiii: Ci
Singulariti: Si
Figura10.1.Procesorularitmetic
Intrri:
unasaumaimultemriminumerice:X,Y;
unsimbolaloperaiei,operatorul:*;
unsimboldeformat:.
Operanziidelaintraresuntcaracterizaiprintreiproprieti:
aparinuneimulimifiniteMdemriminumerice,caracterizateprintrogam:
suntcunoscutecuopreciziedat:
227
suntreprezentatecuajutorulunorsimboluri/cifre,ncadrulunuisistemdenumeraie,subformaunor
ntupluri:
,,
date.
Operatorii sunt codificai cu ajutorul unor simboluri *, care corespund unui set redus sau extins de
operaiiaritmetice:
, , ,
Formatul. Atunci cnd sunt posibile mai multe formate, pentru reprezentarea operanzilor, acest lucru
poatefispecificatlaintrareaformat,printrunsimboldat.
Ieiri:
unasaumaimultemriminumericeZ,carereprezintrezultatul;
unulsaumaimultesimboluriCi,reprezentndcondiiilencareaparerezultatul;
unulsaumaimultesimboluriSi,reprezentndsingulariti.
Ieirilenumericeposedaceleaiproprieticaioperanziidelaintrare:gam,precizieireprezentare.
Condiiilespecificcaracteristicialerezultatului:<0,=0,>0etc.
Singularitilesuntasociatecusituaiilencarerezultatulobinutesteinvalid:
pierdereaexcesivdeprecizie,laoperaiilenvirgulmobil;
eroridatoratehardwarelui.
nacestesituaiiapareunpseudorezultatZ(Si),mpreuncusingularitateaSi,caresunttratateattprin
hardware,cticuajutorulunorrutinespecificealesistemuluideoperare.
Timpul de operare T(*) este dat pentru fiecare operaie (*), efectuat de ctre procesor. Timpul de
operare,nunelecazuri,poatefivariabil:
228
Observaii:
definiiadatprocesoruluiaritmeticcuprindeunspectrulargdecutiinegre,delauncontorsimplu
(ADDONE),pnlaungeneratordefunciitrigonometricesauunprocesorFFT.
structurainternestespecificatantermeniitimpuluiasociatcuexecuiadiferiteloroperaii,cti
cuformatuldereprezentareadatelor.
10.1.2Dinpunctuldevederealproiectantuluiintereseazspecificareadetaliatastructuriiinterne.
Aceastspecificaretrebuiesconsidere:
algoritmiiaritmetici(proiectareaaritmetic),
structuralogicaprocesorului(proiectarealogic).
Proiectareaaritmeticpleacdelaspecificaiiledatedectreutilizatoriletransformanspecificatiide
operaii aritmetice detaliate, la nivel de ranguri individuale/bit, n cadrul reprezentrii concrete a
datelor.Acestespecificatii,lanivelderangindividual,reprezint,ncontinuare,dateleiniiale(tabelede
adevr,diagrameetc)pentruproiectarealogic.
Proiectarealogicpleacdelaspecificaiilefurnizatedectreproiectareaaritmetici,ncadrulunei
tehnologiidate,selecteazatipuriledecircuitelogice,pecareleinterconecteaza,nmodcorespunzator,
n vederea implementarii operaiilor aritmetice impuse de ctre algoritmii aritmetici. n cazul n care
algoritmii aritmetici nu se pot executa ntrun singur pas, se proiecteaza secvene, constand n pasi
aritmetici elementari, efectuati sub controlul unor semnale de comanda. Astfel, proiectantul la nivel
logictrebuieselaboreze,attproiectulunitiideexecutie,ctiproiectulunitiidecomanda.
Specificaiiledetipblackbox,pentruproiectareaunuiprocesoraritmetic,seobinprintransformarea
specificatiilordatedectreutilizator,astfelnct,elescorespundposibilitilordeimplementare.
nacestcontexttrebuiesseaibenvederec:
datelesereprezintsubformaunorvectoribinari;
la baza circuitelor, care efectueaz operaiile aritmetice, se afla circuite logice, ce opereaza cu
semnalebinare.
Avndnvedereceledemaisus:
intrrileXiYvordeveni:
,
229
operaia,ctiformatul.
ieirilereprezinturmtoriivectorinumerici:
,rezultatul;
,indicatoriidecondiii
,indicatoriidepseudorezultat.
ncontinuaresevorexaminaalgoritmiioperaiiloraritmeticenvirgulfixinvirgulmobil.
ncondiiile:
2
Laadunarea/scdereacelordoioperanzi,demaisus,aparurmtoarelesituaii:
0,
a)
230
0,
| |
| |
Exemplul1:
|0010|
|0011|
0010
0011
|0101|
0101
b)x<0,y>0,dar0<x+y2n11
=2 | |+| |=
transport
seneglijeaz>0
Exemplul2:
0110
1010
0111
0111
|0110|
2
10001
|0111|
10000
|0110|
|0111|
10000
|0111|
|0110|
0001
transport,seneglijeaz
0,
c)
0,
| |
0
| |
<0
Exemplul3:
0111
0110
|0111|
|0110|
1001
0110
1111
d)
0,
0,
| |
| |
| |
| |
transport
<0
seneglijeaz
231
Exemplul4:
0011
|0010|
0010
1101
1110
|0011|
|0010|
11011
|0011|
10000
10000
1011
transport,seneglijeaz
Schemaunuisumator/scztor
Schemasebazeazpeutilizareaadoucircuite:XORiADDaacumesteprezentatnfigura10.2.
A[4]
B[4]
Operaia
XOR
7486
C4
Descrierea
,
,
ADD
SUB
Sumator
7483
Comanda
D
0
1
,
,
C0
Z[4]
Figura10.2.Unsumator/scztor
Coduldeoperaiespecificoperatorul:
careiavalorile0pentru+i1pentru
Poziionareaindicatorilordecondiii
Indicatoriidecondiiispecificoseriedeproprietialerezultatului,careaparenregistrulacumulator
alrezultatuluiAC.Deregul,eisuntstocainbistabilenotatecumnemonice,careformeazunregistru,
ncorporatncuvntuldestarealprogramului/procesului.Indicatoriidecondiiispecificdiversesituaii:
rezultat=0mnemonicaZ,(
semnulrezultatului>0sau<0mnemonicaS,
apariiatransportului,lastngaranguluidesemn,mnemonicaC,
rezultatulverificriiparitiimnemonicaP,
232
1 ;
Poziionareaindicatorilordepseudorezultat
Printre situaiile care conduc la un pseudorezultat, n cazul operrii n virgul fix, este i aceea cnd
apareodepire.
Depirea se manifest n condiiile n care cei doi operanzi care se adun au acelai semn. Dac
rezultatulobinutareunsemndiferitdesemnulcomun,alcelordoioperanzi,sanregistratodepire.
Depirea poate constitui o cauz de ntrerupere/suspendare a programului n cadrul creia a aprut.
Aceastsituaieestesemnalizatsistemuluideoperare,nvederealuriiuneideciziicorespunztoare.
Situaia de depire se semnaleaz prin generarea unui semnal D egal cu suma modulo doi ntre
transportulnranguldesemnitransportulnafararanguluidesemn,ncadrulregistruluiacumulator,
alrezultataului:
Implementri
Operaia de adunare pe un singur rang se realizeaz prin generarea sumei i a transportului, folosind
circuitelelogicenecesarerealizriifiziceaexpresiilorlogicedemaijos:
.
. .
.
.
. .
Aceastaseconcretizeazntruncircuitdetipschemabloc,denumitSUM,prezentatncontinuare:
Ciin
Xi
Yi
SUM
C1
A0
B0
Z0
C0
Rezi
Ciout
Figura10.3.Modulsumator
DescriereanVerilogaunuisumatorcu3intrriidouieiriesteurmtoarea:
233
module fulladd(sum,carry,a,b,c);
input a,b,c;
output sum,carry;
wire sum1;
xor xor1(sum1,a,b);
xor xor2(sum,sum1,c);
and and1(c1,a,b);
and and2(c2,b,c);
and and3(c3,a,c);
or or1(carry,c1,c2,c3);
endmodule
Compilareaacesteidescrerilaniveldemticonducelarezultatulprezentatnfigura10.4:
Figura10.4.Descrierealaniveldemti
Cuajutorulsumatoruluilaniveldebitsepoaterealizaunsumatorpenbiiaacumesteprezentatn
figura10.5.
C1in
X0
Y0
SUM
C1
A0
B0
Z0
C0
SUM
SUM
C1
Rez0
Ciout
X1
Y1
A0
B0
Z0
Rez1
Ciout
C0
C1
X n-1
Y n-1
A0
B0
Z0
C0
Rezn-1
Ciout
Figura10.5.Sumatorpenbii
SumatorullaniveldebitpoatefiextinsicuoperaiilelogiceSI/AND,SAU/OR,canfigura10.6,ncadrul
creia ieirile sumatorului, circuitului AND i circuitului OR sunt aplicate la intrrile unui multiplexor
MUX.Coduldeoperaie,pentruselectareaoperatorului,seforeazlaintrareaSel,amultiplexorului.
234
Figura10.6.Sumatorulextins,laniveldebit.
Figura10.7.Implementarecomplet,cuadugareaoperaieidescdere.
InversarealuiyserealizeazsubcontrolulsemnaluluideselecieInvY,aplicatlaintrareadeseleciea
celuidealdoileamultiplexor
235
Operaiile ADD, SUB, ANDi OR se regsesc n Unitile Aritmetice Logice ale oricrui procesor. Exist
uneleprocesoarecareauimplementatinstruciuneasetonlessthan,cesetraduceprinforeazn
(1),bitulcelmaipuinsemnificativalrezultatului,dacoperandulxestemaimicdectoperanduly,n
condiiilencaretoiceilalibiiairezultatuluivorfi0.Astfel,nfigurademaisusaaprutonouintrare
lamultiplexorless.
Structura poate fi completat cu detalierea schemei UAL pentru bitul cel mai semnificativ, n care se
punenevidendepireaaritmetic.
Figura10.8.DetaliereauneischemeUALcuevideniereadepiriiaritmetice
Implementareaoperaieisetonlessthanpresupuneefectuareascderiiluiydinx.
Dacx<y,sevapoziionan1semnulrezultatului,adic
nforarean1abituluicelmaipuinsemnificativalrezultatului
Aceastsoluieesteilustratnschemablocdinfigura10.9.
236
.Acestlucrutrebuiessereflectens
inzeroabiilor
Figura10.9.Implementareaoperaieisetonlessthan.
nfigura10.9fostimplementatipoziionarean1,aindicatoruluidecondiii,carespecificapariia
unuirezultategalcu0,laieireaunitiiarimeticelogice.BistabilulZsepoziioneazn1.
10.2.2SUMATOAREPERFORMANTE
Sumatorulcutransportsuccesiv
Tipul cel mai simplu de sumator paralel este sumatorul cu transport succesiv, obinut prin
interconectareaunorsumatoarecomplete.Ecuaiilepentrutransportisum,lanivelulunuietaj,sunt
datemaijos:
.
. .
.
.
. .
Se poate observa c cele dou funcii combinaionale se implementeaz pe dou niveluri logice. n
condiiilen carentarziereapeunnivellogicestet,rezult cntarziereaminim perangvafi 2 .
ntruct,ncazulcelmaidefavorabil,transportulsepropagdelarangulcelmaipuinsemnificativpn
laieireaceluimaisemnificativrang,rezultontrziereegalcu2 ,undenestenumrulderanguri.
Esteevidentcoasemeneasoluienuesteacceptabil.
237
Sumatorulcuntrziereminim
,delaieireaceluimaipuinsemnificativrang,sencearcstabilirea
Considerndecuaiasumei,
1 , ct i de intrrile pentru
cu
, pentru a simplifica
relaiile,careurmeazaseobine.
Pentrurangulurmtor1,seobineurmtoareaexpresieasumei:
nexpresialui
Calculullui
Astfel,pentru
sevanlocui
cucomponentelecarelalctuiesc,conformformuleiprecedente.
conducelaurmtoareaexpresie:
sevaobineoexpresieformatprinadunarealogica12produselogicedecte4
variabile fiecare. Aceasta presupune utilizarea unei pori OR cu 12 intrri i a 12 pori AND, cu cte 4
intrri. Extinznd procedeul la urmtoarele ranguri se vor obine expresii cu numeroi termeni de tip
produs,care,larndullor,voraveamultecomponente.Uncalculsimpluaratc,ncazulunuisumator
pe64debii,vorfinecesarecirca10 pori,practicdenerealizatnprezent.
Principiulanticipriitransportului
ntructsumatorulcutransportsuccesivestelent,iarsumatorulcuntrziereminimesteimposibilde
realizat,secautosoluieintermediar.Aceastagrupeazrelaiileobinutelasumatorulcuntrziere
minim,astfelnctsseobindimensiunirezonabile.
Ideeadebazesteaceeadeacaracterizacomportareaunuirangalsumatoruluidinpunctuldevedereal
generrii/propagriiunuitransport.Astfel,ranguljalunuisumatorgenereaz, ,transportdacareloc
238
relaia:
.Deasemenea,ranguljalunuisumatorpropag, ,transportnsituaiaurmtoare:
i pentru suma
, la nivelul
fiecruirangalsumatorului:
Astfel,unsumatorcompletvaconstndoupri:parteaP/GiparteaSum
Figura10.10.Sumatorulcuanticipareatranspportului
Relaiiledemaisussepotstructuralanivelula4seciunialeunuisumator,bazatpeideeamenionat
anterior.ncepndcurangulcelmaipuinsemnificativseobin:
pentrusume:
i:
pentrutransporturi:
239
AcesterelaiisuntimplementatenunitateadeanticipareatransportuluiUAT.
Pentruoseciunede4bii,sumatorulcutransportanticipatesteprezentatnfigura10.11.
x3 y3
Sum3
Sum3
C3
P/G 3
P3
GP
G3
x2 y2
Sum2
Sum2
C2
P/G 2
P2
G2 C
1
x1 y1
Sum1
Sum1
P/G 1
P1
x0 y0
Sum0
Sum0
G1 C
0
GC
P/G 0
P0
G0
C0
Figura10.11.Seciunepe4biiaunuisumatorcuanticipareatransportului
240
Sumatorulcusalvareatransportului
ncazuladunriimaimultorvectoribinarisimultansepoaterecurgelaoschemmairapida,constndn
utilizareamaimultorsumatoarencascad.
Fiecazuladunriiapatrunumeredecte4bii,notatecua,b,e,f.Rangurilenumerelorb, e,fsevor
adunantrunsumatorcusalvareatransportului,carevaaveaieiripentrusumitransport.Acestea,
la rndul lor, se vor aduna cu rangurile numrului a, ntrun alt sumator cu salvare a transportului.
Ieirilereprezentndrangurilesumeiiranguriletransportuluisevoradunantrunsumatorobinuit.
a
Sumator cu salvare a
transportului
Sumator cu salvare a
transportului
C'
S'
Sumator obinuit
Sum
Figura10.12.Utilizareamaimultorsumatoarencascad.
Detaliiledeimplementaresuntlsatepeseamacititorului.
Comparaientrectevatipuridesumatoare,penbii,nprivinantrzieriiiaarieiocupate:
Tipsumator
ntrziere
Ariaocupata
Transportsuccesiv
ntrziereminim
/ 2
Transportanticipat
2 log
22 log
1 .
241
10.2.3NMULIREA
nmulirea numerelor const n generarea i adunarea produselor partiale obinute prin nmulirea
ranguluicurentalnmultitoruluicudenmulitul.ncazulnumerelorbinare,produsulparialcurenteste
egalcudenmulitul,deplasatsprestngaconformpoziieiranguluinmulitorului,dacbitulcurental
nmulitorului este unu, sau egal cu zero, dac bitul curent al nmulitorului este zero. Dac produsul
parialcurentestediferitdezero,elseadunlasumaproduselorparialeanterioare.
Existiposibilitateaca,dupfiecareadunare,sumaproduselorparialesfiedeplasatspredreaptacu
unrang.
nmulireancoddirect
nmulireancoddirect/semnimodulpresupunetratareaseparatasemnelorinmulireamodulelor.
FienumereleXiY,
careurmeazsfienmulite,pentruafurnizaprodusulZ:
Semnulprodusuluiz2n1vafiobinutastfel:
Produselepariale: , ,
| |.
. 2
| |.
. 2
seobindupcumurmeaz:
.
| |.
. 2
iarsumalorvaconducelaprodusulmodulelor:
242
Fiecazuladounumerereprezentatencoddirectpe5bii:
denmulitul
11000i
nmulitorul
01000
Pentrusemnrezult:
1,
ntimpcemodululprodusuluisevaobinedupcumsearatmaijos:
1000
1001
1000
0000
0000
1000
01001000
01001000
Astfel,produsulcelordounumerevaavea9bii:
101001000.
n exemplul de mai sus produsele pariale sau obinut prin deplasarea spre stnga a denmulitului,
nmulitcurangulcorespunzatoralnmulitorului.
Soluieparalel.
O implementare combinaional presupune utilizarea sumatoarelor complete i a unor pori AND.
Astfel,seobineunsumatormodificat,pentruunrang,conformschemeidinfigura10.13.
243
Figura10.13.Unsumatormodificatpentruunrang.
x3
x2
sumator
modificat
x3
x2
sumator
modificat
SP0,3
sumator
modificat
SP1,4
z4
x1
sumator
modificat
x1
SP0,2
sumator
modificat
SP1,3
z3
x0
sumator
modificat
x0
sumator
modificat
SP0,1
sumator
modificat
SP1,2
z2
0
y0
y1
SP0,0
0
SP1,1
z1
SP1,0
z0
Figura10.14.Primeledouetajealedispozitivuluiparaleldenmulire.
Sanotatcu
bitulialsumeiproduselorparialej.Schemadinfigura10.14prezintnumaiprimele
douetajealedispozitivuluiparaleldenmulire.
Sumatorulmodificatpoatefiutilizatncadruluneistructuridenmulireparalel,canfigurademaisus.
Din punctul de vedere al implementrii algoritmului, se poate afirma c, n acest caz, este vorba de o
programare spaial, care conduce la viteza ridicat de operare. Soluia necesit, pentru
244
1 sumatoaremodificate.ncelmaidefavorabilcaz,rezultatulnmuliriiseobine
implementare,
1 pori.
duppropagareasemnalelorprin4
Selaspeseamacititoruluielaborareauneisoluiibazatepesumatoarecusalvareatransportuluii
sumatoarecutransportanticipat.
Soluieserialparalel
n scopul reducerii cantitii de hardware, dispozitivele de nmulire se realizeaz sub forma unei
structuriparalelehardware,pentruunpasdenmulire,cuoperaresecvenial.
Dacsenoteazprodusulparialjcuppj,atunciunpasdenmulirevaaveaurmtoareaform:
. 2
Oschembloc,pentrusoluiamenionatmaisus,esteprezentatncontinuarenfigura10.15:
x3
x2
x1
x0
yj
...
0
...
...
Figura10.15.Soluieserialparalelpentruundispozitivdenmulire.
Operareaseefectueazconformurmatoareisecvene:
1. anuleazconinutulregistruluincareseacumuleazsumeleproduselorpariale;
2. iniializeaznumrulranguluibituluinmulitoruluij=0;
3. formeazprodusulparial .
4. adunprodusulpariallajumtateasuperioararegistruluisumeiproduselorpariale;
5. efectueazj=j+1idacj=ntrecila8.
6. deplaseazladreaptacuunrangconinutulregistruluisumeiproduselorpariale;
245
7. trecilapasul3;
1 rangurisaobinutnregistruldedeplasare.
8. produsulcu2
Rezultatulsepoatestocafiesubformaunuisingurcuvnt,pstrndjumtateasuperioar,fiesubforma
unuicuvntdublu.nprimulcazvafiafectatprecizia.
nmulireanumerelorncodcomplementar
ntruct, n marea majoritate a cazurilor, numerele negative se reprezint n calculatoare n codul
complementar,ncontinuarevorfiexaminatectevametodedenmulirenacestcod.
Maintisevorexaminadeplasrilearitmeticelastngailadreaptancodcomplementar.
Seconsiderurmtoarelecazuri:
x>0.
0
Deplasarealastnga:
2
0,
Deplasarealadreapta:
2 .
00
x<0.
1
Deplasarealastnga:
2
0,
Deplasarealadreapta:
2
246
11
Ctevametodepentrunmulireanumerelorreprezentatencodcomplementar.
Metoda1.
Semodific,dacestecazul,nmulitorulidenmulitulastfelnctnmulitorulsfiepozitiv.
Produseleparialesecalculeaznmodobinuit.
Metoda2.
Aceastmetodpresupunenmulireanumerelorcusemnnmanieraobinuit,caicndarfivorbade
numerentregifrsemn.Rezultatulvaficorectnumaincazulncareceidoioperanzisuntpozitivi.n
cazcontrarsuntnecesarecorecii,caresencadreazntreicazuri.
1.x>0,y>0.
| |. | |
2.x<0,y>0.
2
| |;
| |;
2 . | |
| |. | |;rezultatincorect
| |. | |;rezultatcorect
Rezultnecesitateauneicoreciiegalcu:2
2 . | |,caresevaadunalarezultatulincorect.
3.x>0,y<0;
| |;
2 . | |
| |;
| |. | |;rezultatincorect
| |. | |;rezultatcorect
Rezultnecesitateauneicoreciiegalcu:2
2 . | |,caresevaadunalarezultatulincorect.
4.x<0,y<0;
2
| |;
| |;
247
2 . | |
2 . | |
| |. | |;rezultatincorect
| |. | |;rezultatcorect
2 . | |
incorect.
Metodaestegreoaieiareuncaracterpurteoretic.
10.2.4ALGORITMULLUIBOOTH
nacestcazsepleacdelaobservaiac,valoareaunuinumrY,reprezentatncodcomplementar,se
poatecalculaastfel:
. 2
. 2
. 2
. 2
. 2
.2
unde:
reprezintranguldesemn,codificatcu0/1ncazulnumerelorpozitive/negative;
constituierangulaflatladreaptarangului0,avndiniialvaloarea0.
nacestecondiiivaloareaprodusului
sevaexprimadupcumurmeaz:
.2
Pebazaformuleidemaisussepoatecalculaprodusulparialderangi:
Tabelul10.1.Produsulparial
produsparial
0
.2
.2
0
Pentruimplementareahardwareseconsiderresurselecorespunztoareuneistructuriorientatepeun
singuracumulator:
248
Denmulit (X)
nmulitor (Y)
MQq
RD
1
MUX
0/1
0/1
SL
activare
selectare
Sumator
0/1
CNT
Figura10.16.ImplementareahardwareaalgoritmuluiluiBooth
Resurselehardware:
ACregistruacumulator;
RDregistrudedatealmemoriei;
MQregistrudeextensiealacumulatorului;
registrudeunbit,extensialuiMQ;
CNTcontordecicluri(
log
SLstructuralogicpentruactivareaiselectareaintrrilormultiplexorului,ctipentrucontrolul
);
transportuluilasumator;
Sumatorsumatorcombinaionalcunranguribinare.
Descriereaoperriidispozitivuluisepoatefacecuajutorulurmtoareiorganigramedinfigura10.17:
249
Figura10.17.Organigramaoperriidispozitivului.
ncontinuaresevaprezentaunprogramVerilogpentrusimulareaunuidispozitivdenmulire.
250
//Simularea
unui
dispozitiv
de
nmulire
numerelor
reprezentate
8;
reg 2 n
1 0 ;
reg 2 0 CNT;
reg MQ ;
initial begin: init
AC=-7; RD=-5; MQ=0; MQq=0; CNT = n-1;
$display("timp
RD
AC
MQ
MQq
CNT");
251
//Cazul: RD = 5; AC = 7;
Timp
RD
AC
MQ
MQq
CNT
000101
00000111
00000000
111
00000101
00000111
00000111
111
00000101
00000000
00000111
111
00000101
11111011
00000111
111
00000101
11111101
10000011
111
00000101
11111101
10000011
110
00000101
11111110
11000001
110
00000101
11111110
11000001
101
00000101
11111111
01100000
101
00000101
11111111
01100000
100
10
00000101
00000100
01100000
100
11
00000101
00000010
00110000
100
12
00000101
00000010
00110000
011
13
00000101
00000001
00011000
011
14
00000101
00000001
00011000
010
15
00000101
00000000
10001100
010
16
00000101
00000000
10001100
001
17
00000101
00000000
01000110
001
Produs = 0000000000100011
Stop at simulation time 19
C1>$finish;
252
Top-level modules:
inmultitorb
// Cazul: RD = 5; AC = -7;
Timp
RD
AC
MQ
MQq
CNT
00000101
11111001
00000000
111
00000101
11111001
11111001
111
00000101
00000000
11111001
111
00000101
11111011
11111001
111
00000101
11111101
11111100
111
00000101
11111101
11111100
110
00000101
00000010
11111100
110
00000101
00000001
01111110
110
00000101
00000001
01111110
101
00000101
00000000
10111111
101
10
00000101
00000000
10111111
100
11
00000101
11111011
10111111
100
12
00000101
11111101
11011111
100
13
00000101
11111101
11011111
011
14
00000101
11111110
11101111
011
15
00000101
11111110
11101111
010
16
00000101
11111111
01110111
010
17
00000101
11111111
01110111
001
18
00000101
11111111
10111011
001
Produs= 1111111111011101
Stop at simulation time 20
C1>$finish;
253
RD
AC
MQ
MQq
CNT
11111011
11111001
00000000
111
11111011
11111001
11111001
111
11111011
00000000
11111001
111
11111011
00000101
11111001
111
11111011
00000010
11111100
111
11111011
00000010
11111100
110
11111011
11111101
11111100
110
11111011
11111110
11111110
110
11111011
11111110
11111110
101
11111011
11111111
01111111
101
10
11111011
11111111
01111111
100
11
11111011
00000100
01111111
100
12
11111011
00000010
00111111
100
13
11111011
00000010
00111111
011
14
11111011
00000001
00011111
011
15
11111011
00000001
00011111
010
16
11111011
00000000
10001111
010
17
11111011
00000000
10001111
001
18
11111011
00000000
01000111
001
Produs= 0000000000100011
Stop at simulation time 20
C1>
254
10.2.5MPRIREA
Caregulgeneral,mprireanumerelorserealizeazprinscderearepetatampritorului,deplasat
spredreaptacuunrang,dinrestuldelascdereaprecedent,pnlaobinereaunuirestegalcuzero
saumaimicdectmpritorul;caprimrestseconsiderdempritul.
ngeneralsepracticdoumetode:
metodabazatperefacereaultimuluirestpozitiv(metodacurestaurare)i
metodancarenuserefaceultimulrestpozitiv(metodafrrestaurare).
Pentruprimametodseprezintexemplulurmtor,ncaredemprituleste22,iarmpritoruleste9:
22:9=q0,q1q2
224040
999
133131
999
42222
999
51313
q0=299
44
99
55
q1=4q2=4
22:9=2,44
255
Ceadeadoumetodapleacdelaideeac,nlocdeascdeampritoruldeplasatladreaptacuun
rang,dinultimulrestpozitiv,sevaadunampritoruldeplasatladreapt,laultimulrestnegativ.Metoda
sevailustraprinexempluldemaijos:
22:9=q0,q1q2
225040
9+99
134131
9+99
43222
9+99
52313
q0=3+99
144
+99
55
+9
4
q1=6q2=
Catulvaaveaforma:3, 65656,ncaretermeniicubarsuntnegativi 3,
6 5
6 5
6 ,ceea
cevaimpuneefectuareauneicoreciicarevaaducerezultatullaforma:22:9=2,44444
Ultima metod necesit un numr mai mare de pai, astfel nct, n continuare, se va examina
implementareametodeibazataperestaurareaultimuluirestpozitiv.
256
Algoritmulmpririinumerelorreprezentatencomplementulfadedoi,cu
restaurareaultimuluirestpozitiv
Pentruilustrareaalgoritmuluisevorconsideraurmtoareleresursehardware:
ACacumulator;
RDregistruldedatealmemoriei;
MQregistruldeextensieaacumulatorului;
CNTregistruincrementator,contordecicluri.
mpritorulYvafincrcatnRD,iardempritulXnAC.nMQsevaacumulactul.
n-1 RD 0
n-1 AC 0
n-1 MQ 0
CNT
Figura10.18.Ilustrarearesurselorhardware.
Descriereaalgoritmului:
1. SedeplaseazconinutulluiRDcuprangurisprestnga,ncondiiilencare2 esteprimancercare
demultiplubinaralmpritorului.
SeverificdacRD=0,ncazafirmativoperaiasetermincusemnalizareauneierori.
DacRD0,sencarcCNTcuvectorulbinaravndvaloareap.
2. Dac dempritul i mpritorul au semne identice/diferite se scade/se adun mpritorul din/la
demprit,pentruaobinerestul.
3. a) Dac restul i dempritul au semne identice sau restul este egal cu zero, se introduce o
unitatenbitulcelmaipuinsemnificativalluiMQ,iarrestulvalualoculdempritului.
b)Dacrestulidempritulausemnediferiteirestulcurentnuestezero,seintroduceunzeron
bitulcelmaipuinsemnificativalluiMQ,framaimodificadempritul.
4. Sedeplaseazconinutulregistruluimpritoruluicuunrangspredreapta,extinzndrangul
desemn.
SedecrementeazCNT.
SedeplaseazMQsprestngacuunbit.
5. Serepetpaii24pncndconinutulluiCNTdevineegalcuzero.
6. DacdempritulimpritorulauavutsemneidenticerezultatulseaflnregistrulMQ.ncazuln
care semnele celor doi operanzi au fost diferite, rezultatul se obine prin complementarea
coninutuluiregistruluiMQ.
257
Realizareapracticaalgoritmuluiimpuneintroducereaunorresursehardwaresuplimentare,fadeAC,
RD,MQ,CNTianume:
R[n]registrulncareseobinerestulcurent;
z[1]bistabilncaresestocheazainformaia(1/0)referitoarelasemneleidentice/diferitealecelor
doioperanzi;
e[1]bistabilcaresemnalizeazcondiiadeeroare/noneroare(1/0);
Sunitatelogiccombinaional,caregenereazsemnaluldesfritaloperaiilordedeplasarespre
stnganregistrulRD;
Vunitatelogiccombinaional,careverificsemneleoperanzilordinacumulator(demprit)i
dinregistrulrestuluicurentR;
Uunitatelogiccombinaional,careverificexistenaunuirestcurentegalcuzero;
Structurageneral,laniveldeschembloc,adispozitivuluidemprireestedatnfigura10.19.
S
n-1 AC 0
F
Z
RD
RD
MUX
n-1 ADD 0
e
n-1
CNT
n-1 MQ 0
Deplasare stnga
Figura10.19.Structurageneral,laniveldeschembloc,adispozitivuluidemprire.
258
RE 2
RE 1
ees
Prelucrare
exponeni
UALE
Condiii
RD
es
Deplasare logic
AC
UAL
MQ
Deplasare logic
Condiii
Prelucrri
mantise/fracii
Figura10.20.Schemablocaunitiiaritmeticenvirgulmobil
Parteacareprelucreazexponeniiconineurmtoareleresurse:
RE1iRE2registrepentruexponeni;
eesbistabildeextensiearegistruluiexponentuluilastnga;
UALEUnitateAritmeticLogicpentruExponeni.
nparteacareprelucreazmantisele/fraciile,faderesurselehardwarepentruprelucrareanvirgul
fixaumaiaprutdoucircuitededeplasarelogiciunbistabildeextensieaacumulatoruluilastnga
es.Celedouunitiaritmeticelogicesuntprevazutecucircuitelogicepentrugenerareaindicatorilorde
259
condiii i de eroare. Operanzii de prelucrat se afl iniial n registrele AC i RD. Din acestea se extrag
exponenii (operaia de despachetare), care sunt ncrcai n RE1 i RE2. Fraciile sunt deplasate spre
stnga n AC i RD, pentru a beneficia de o precizie maxim. Dup terminarea operaiilor asupra
exponenilor i fractiilor, are loc o inserie (operaia de mpachetare) a exponentului rezultatului n
registrulAC,prindeplasareafracieidinACspredreapta.
ZE XE YE
ZE : 0
ZE
XE
YE
Figura10.21.Organigramaoperaieiadunare/scderenvirgulmobil
260
Figura10.22.Organigramaoperaieidenmulirenvirgulmobil
261
262