Komponente digitalnih sistema
Komponente digitalnih sistema
Komponente digitalnih sistema
You also want an ePaper? Increase the reach of your titles
YUMPU automatically turns print PDFs into web optimized ePapers that Google loves.
<strong>Komponente</strong> <strong>digitalnih</strong> <strong>sistema</strong><br />
promenljivu Podatak, bit po bit, od bita najmanje do bita najveće težine i dodaje 1 promenljivoj BrojJedinica za<br />
svaku 1 na koju naiđe u ulaznoj reči. Promenljiva Maska sadrži konstantu 1, a promenljiva Temp se koristi za<br />
privremeno čuvanje bita najmanje težine promenljive Podatak. Nakon inicijalizacije, algoritam izdvaja bit<br />
najmanje težine promenljive Podatak i smešta ga u promenljivu Temp, zatim dodaje Temp na BrojJedinica i<br />
konačno, pomera promenljivu Podatak za jednu poziciju udesno. Ova sekvenca operacija se ponavlja sve dok<br />
promenljiva Podatak sadrži vrednost različitu od “sve nule”. Uočimo da će za različite ulazne reči, broj<br />
ponavljanja ove sekvence operacija biti različit. Na Sl. 2‐40(a), prikazan je algoritam brojanja jedinica. Naredbe<br />
1, 2 i 3 se koriste za inicijalizaciju promenljivih. Naredbe 4 i 5 dodaju bit najmanje težine promenljive Podatak<br />
na tekuću vrednost promenljive BrojJedinica, dok naredba 6 pomera sadržaj promenljive Podatak za jednu bit‐<br />
poziciju udesno. (Pri pomeranju udesno, u bit najveće težine upisuje se 0.) Konačno, naredba 7 prenosi sadržaj<br />
promenljive BrojJedinica na izlaz.<br />
(a) (b)<br />
Upravljačka<br />
reč<br />
IE Adresa<br />
upisa<br />
Adresa<br />
čitanja A<br />
Adresa<br />
čitanja B<br />
ALU<br />
Operacija<br />
Operacija<br />
pomerača<br />
OE<br />
1 1 R1 X X X Propuštanje 0<br />
2 0 R3 0 0 Sabiranje Propuštanje 0<br />
3 0 R2 0 X Inkrement Propuštanje 0<br />
4 0 R4 R1 R2 AND Propuštanje 0<br />
5 0 R3 R3 R4 Sabiranje Propuštanje 0<br />
6 0 R1 R1 0 Sabiranje Pomeranje udesno 0<br />
7 0 ‐ R3 0 Sabiranje Propuštanje 1<br />
Done = 1<br />
Podatak ≠ 0<br />
Start = 1<br />
Podatak = 0<br />
S0<br />
S1<br />
S2<br />
S3<br />
S4<br />
S5<br />
S6<br />
S7<br />
(c)<br />
Start = 0<br />
Podatak = Ulaz<br />
BrojJedinica = 0<br />
Maska = 1<br />
Temp = Podatak AND<br />
Mask<br />
BrojJedinica = BrojJedinica + Temp<br />
Podatak = Podatak >> 1<br />
Izlaz = BrojJedinica<br />
(d)<br />
Sl. 2‐40. Algoritam brojanja jedinica: (a) polazni algoritam; (b) dodela registara; (c) upravljačke reči brojača<br />
jedinica; (d) konačni automat upravljačke jedinice.<br />
70