25.07.2013 Views

Komponente digitalnih sistema

Komponente digitalnih sistema

Komponente digitalnih sistema

SHOW MORE
SHOW LESS

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

Hooray! Your file is uploaded and ready to be published.

Saved successfully!

Ooh no, something went wrong!