View
75
Download
2
Category
Preview:
DESCRIPTION
RTL Projektovanje. RTL Projektovanje. Projektovanje na registarskom (mikroarhitekturalnom) nivou apstrakcije Sistem se opisuje do nivoa registara i kombinacionih blokova S vi registri imaju zajednički takt (s inhroni sistemi ) RTL metodologija : Konverzija algoritma u RTL hardver - PowerPoint PPT Presentation
Citation preview
RTL Projektovanje
Arhitektura mikrosistema
RTL Projektovanje Projektovanje na registarskom (mikroarhitekturalnom) nivou apstrakcije
Sistem se opisuje do nivoa registara i kombinacionih blokova Svi registri imaju zajednički takt (sinhroni sistemi)
RTL metodologija: Konverzija algoritma u RTL hardver Do nivoa taktnih ciklusa opisuje ponašanje digitalnog sistema Opis se kreira u VHDL-u, simulira u VHDL simulatoru i sintetiše alatom za
sintezu
Registar
Kombinaciona logika
Registar
CLK CLK
Ulazni podaci
Takt
Izlazni podaci
Arhitektura mikrosistema
Algoritamsize = 4;sum = 0;for i in (0 to size-1) do { sum = sum + a(i);}q = sum / 8;r = sum rem 8;if(r > 3) { q = q + 1;}outp = q;
Detaljan opis toka izvršenja nekog zadatka ili postupka rešavanja nekog problema u
vidu sekvence akcija ili koraka
Osnovne karakteristika algoritma:
Sekvencijalno izvršenje - ˝naredba po naredba˝ u strogo definisanom redosledu
Korišćenje promenljivih - ime promenljive ukazuje na simboličku adresu memorijske lokacije gde se smešta vrednost promenljive.
Prilagođen načinu rada računara
Pseudo-kod
Arhitektura mikrosistema
Pseudo-kod u VHDLsize = 4;sum = 0;for i in (0 to size-1) do { sum = sum + a(i);}q = sum / 8;r = sum rem 8;if(r > 3) { q = q + 1;}outp = q;
. . .CONSTANT size : INTEGER := 4;SIGNAL outp : STD_LOGIC_VECTOR(7 DOWNTO 0);. . .PROCESS(a) VARIABLE sum,q,r : STD_LOGIC_VECTOR(7 DOWNTO 0);BEGIN sum := a(0); FOR i IN 1 TO size-1 LOOP sum := sum + a(i); END LOOP; q <= „000“ & sum(7 DOWNTO 3); r <= „00000“ & sum(2 DOWNTO 0); outp <= q + 1 WHEN (r > 3) ELSE q;END PROCESS;
Direktno prevođenje
Arhitektura mikrosistema
Pseudo-kod u VHDL
sum0 := a(0);sum1 := sum0 + a(1);sum2 := sum1 + a(2);sum3 := sum2 + a(3);q <= „000“ & sum(7 DOWNTO 3);r <= „00000“ & sum(2 DOWNTO 0);outp <= q + 1 WHEN (r > 3) ELSE q;
Nakon razmotavanja FOR LOOP petlje
+a(0)a(1) +a(2)
+
a(3)
sum0sum1
sum2 & T
F
+1
& >3
sum3
q
r
outp
OK: Pojedine operacije se obavljaju u paraleli, što dovodi do ubrzanja rada
Promenljive postaju signali, a operacije hardverski kombinacioni blokovi
NOT OK: Rešenje nije univerzalno
Šta ako se size promeni s 4 na 20?
- umesto 3, biće potrebno 19 sabirača
Šta ako size nije konstanta, već promenljiva?
- Hardver ne može dinamički da se ˝širi˝ i ˝skuplja˝
Arhitektura mikrosistema
Realizacija algoritma u hadveru Registri se koriste kao zamena za promenljive Hardver koji obavlja operacije sadržane u algoritmu
(kao npr. +, -, *, ...) realizuju se u vidu funkcionalnih jedinica (sabirač, oduzimač, množač ...).
Staza podataka (data path) = Registri + funkcionalne jedinice + mux i veze za povezivanje reg. i funkc. jed.
Hardver koji reguliše redosled izvršenja operacija u stazi podataka realizuje se u vidu upravljačke jedinice - konačni automat
Arhitektura mikrosistema
Algoritam -> RTL hardver
Algoritam Hardver
a = a + b reg_A ← reg_A + reg_B
a
b
reg_A
reg_B
+ Sabirač
Promenljive Registri
Algoritamski korak
Naredba registarskog prenosa
Obavlja se u JEDNOM taktnom ciklusu
Arhitektura mikrosistema
Naredba registarskog prenosa
rdest ← f(rsrc1, rsrc2, ..., rsrcn)
Izvorni registri
Odredišni registar
Funkcija - bilo koja funkcija koja se može realizovati u
hadveru u vidu kombinacione mreže
Izračunavanje funkcije Upis u rdest
Izvršava se u jednom taktnom ciklusu:
Na izlazima izvornih reg. dostupne su nove
vrednosti
Arhitektura mikrosistema
Naredbe registarskog prenosa - primeri
r ← 1 U registar r se upisuje konstanta 1
r ← r U registar r se upisuje njegov tekući sadržaj. Sadržaj registra r, naravno, ostaje nepromenjen.
r ← r << 2 Sadržaj registra r se pomera za dve bitske pozicije ulevo, a zatim upisuje u isti registar.
r0 ← r1 Sadržaj registra r1 se upisuje (prenosi) u registar r0
n ← n + 1 Sadržaj registra n se uvećava za 1 i rezultat se upisuje u isti registar.
s ← a2 + b2 Zbir kvadrata sadržaja registara a i b se smešta u registar s.
Arhitektura mikrosistema
Realizacija naredbe registarskog prenosa
nxD FF
d q
nxD FF
d q
+
clk
r2_reg
r1_reg
r1_next
TaddToq
r2_reg
r1_next
r1_reg
clk
2
3 5 7
1 3 5din
r1 ← r1 + r2
Arhitektura mikrosistema
+
+1
n x DFF
d q
n x DFF
d q
r1_next1
r1_reg
clk
selekcija
r2_regdin
Šta ako više naredbi registarskog prenosa imaju isti odredišni registar ?
r1 ← 1r1 ← r1 + r2r1 ← r1 + 1r1 ← r1
Staza podataka
Bira narebu koja će se izvršiti
MU
X
Arhitektura mikrosistema
Paralelno izvršenje operacija
x = A;y = B;y = x + y;y = y + 1;x = x + 1;
Izračunavanje koje treba realizovati u hardveru
ciklus 1: rx ← A;ciklus 2: ry ← B;ciklus 3: ry ← rx + ry;ciklus 4: ry ← ry + 1;ciklus 5: rx ← rx + 1;
Promenljive postaju registri, a programske naredbe postaju naredbe registarskog prenosa
ciklus 1: rx ← A; ry ← B;ciklus 2: ry ← rx + ry;ciklus 3: ry ← ry + 1; rx ← rx + 1;
U hardveru je dopušteno paralelno izvršenje međusobno nezavisnih operacija
Pralelizacija dovodi do ubrzanja rada
Arhitektura mikrosistema
Staza podatakaciklus 1: rx ← A; ry ← B;ciklus 2: ry ← rx + ry;ciklus 3: ry ← ry + 1; rx ← rx + 1;
n x DFF
d q
n x DFF
d q+
+1
“1”
rx
ry
A
B 0
00
1
0
1
s0
s1
0110
s2
2
Ciklus Operacije s0 s1 s2 1. rx ← A
ry ← B ˝00˝ 0 x
2. ry ← rx + ry ˝10˝ 1 0 3. ry ← ry + 1
rx ← rx + 1 ˝01˝ 1 1
Staza podataka nije dovoljna !
Arhitektura mikrosistema
Upravljačka jednica
n x DFF
d q
n x DFF
d q+
+1
“1”
rx
ry
AB
0
00
1
0
1
01
10
2
Upravljačka jedinica
s0
s1
s2
start
rdy
rx
ry
ciklus 1: rx ← A; ry ← B;ciklus 2: ry ← rx + ry;ciklus 3: ry ← ry + 1; rx ← rx + 1;
U svakom taktnom ciklusu bira operacije koje će se izvršiti u stazi podataka
rdy = ´0´s0 = ˝10˝;s1 = ´1´s2 = ´0´
rdy = ´0´s0 = ˝01˝;s1 = ´1´s2 = ´1´
rdy = ´0´s0 = ˝00˝;s1 = ´0´s2 = ´0´
C1
C2
C3
start
rdy = ´1´s0 = ˝00˝;s1 = ´0´s2 = ´0´
C0
0
1
Opisuje se u vidu konačnog automata
Arhitektura mikrosistema
Blok dijagram RTL sistema
UPRAVLJACKA JEDINICA
STAZA PODATAKA
Komande – interni upravljacki signali
Interni statusni signali
Ulazi podataka
Upravljacki i statusni ulazi
Upravljacki i statusni izlazi
Izlazi podataka
DIGITALNI SISTEM
Sprovodi algoritam:U svakom taktnom ciklusu bira operacije koje će se izvršiti u stazi podataka.Realizuje se u vidu konačnog automata
Sadrži hardverske resurse:RegistreFunkcionalne jediniceMultipleksere i Veze
Arhitektura mikrosistema
Primer složene staze podataka
Multiplekser
R1
Multiplekser
R2 R3
[abs/min] [abs/max/+/-]>> 1 >> 3
Ul1 Ul2
Izl
Multiplekser
Višefunkcionalne jedinice
Selekcioni signali i tatkni signal nisu prikazani
U svakom taktnom ciklusu može da obavi nekoliko od više različitih naredbi registarskog prenosa
Arhitektura mikrosistema
ASMD dijagram (ASM + Data patah)regA ← ardy
IDLE
start 0
regB ← 0
1
regA ← regA >>1
regA ≠ 0
regA(0)
regB ← regB + 1
1
0
SHIFT
NE
DA
rdy
la, eardy
IDLE
start 0
lb,eb
1
ea
z
a0
eb
1
0
SHIFT
NE
DA
rdy
ASM dijagram: definiše rad upravljačke jedinicestart, z, a0 - ulazni signaliia, ea, eb, rdy - izlazni signali
ASMD dijagram:Sadrži naredbe registarskog prenosa - definiše rad celog sistema (upravljačka jedinica + staza podataka)
Arhitektura mikrosistema
Odložena dodela
r1 ← r1 + r2y
S0
S1
S2
clk
S0 S1 S2stanje
y
2r2(r2_reg)
3 5
3 5r1
(r1_reg)
r1_nexty je signal koji je aktivan
za sve vreme dok je sistem u stanju S1
U toku stanja S1 izračunava se r1+r2, ali se upis u r1 vrši tek sledećom ivicom takta, onda
kada sistem prelazi u S2 !
y je neaktivan. Kao da piše: y=´0´r1 zadržava (memoriše) tekuću vrednost.Kao da piše: r1←r1
Arhitektura mikrosistema
Pristupi projektovanju Dva pristupa rešavanju problema:
¨odozdo-naviše¨ (bottom-up) ¨odozgo-naniže¨ (top-down)
Arhitektura mikrosistema
Projektovanje ¨odozdo-naviše¨ ¨Odozdo-naviše¨ (bottom-up)
Projektant rešava izdvojene detalje celokunog problema koje potom ugrađuje u konačno rešenje
Rešeni detalji se obično međusobo ne uklapaju idealno
Najveći deo ukupnog projektantskog vremena troši na uklapanje nezavisnih detalja, što često uključuje i prepravku već rešenih delova opšteg problema
Nije pogodno za projektovanje složenih digitalnih sistem
Interfejs
Komponenta
Arhitektura mikrosistema
Projektovanje ¨odozgo-naniže¨ Projektant započinje rad na problemu razradom
globalnog plana sveobuhvatno sagledavanje problema, razrada strategije rešavanja problema, dekompozicija problema na potprobleme manjeg
obima definisanje odnosa (interfejsa) između potproblema projektant ne rešava odmah uočene potprobleme,
već ih tretira kao apstraktne sklopove (crne kutije) koje međusobno uklapa i povezuje
U nastavku Projektant razrađuje i rešava potprobleme Problem uklapanja ne postoji (interfejsi su definisani
u prvoj fazi)
Arhitektura mikrosistema
Projektovanje ¨odozgo-naniže¨ - faze projektovanja Faze
Opis ponašanja (sistem koja se projektuje opisuje se na algoritamskom nivou, npr. u vidu ASMD dijagrama )
Razrada (podela sistema na dva upravljačku jedinicu i staza podataka )
Realizacija (realizacija hardvera sistema)
Arhitektura mikrosistema
Opis ponašanja Najvažnija faza celokupnog procesa
projektovanja Sistem koja se projektuje opisuje se na
algoritamskom nivou, npr. u vidu ASMD dijagrama
Sistem se tretira kao crna kutija sa naznačenim ulazima i izlazima koja se ponaša na način koji je opisan algoritmom
Arhitektura mikrosistema
Opis ponašanja - Interfes Interfejs (značenje reči) - mesto na kome se dva nezavisna
sistema susreću ili spajaju (ili sredstvo koje koriste) radi zajedničkog dejstva ili međusobne komunikacije.
Digitalni sistem u toku rad ineraguje sa svojim okruženjem (drugi digitalni sistemi, ne-digitalni uređaji, pa čak i čovek koji posredstvom odgovarajućih ulazno-izlaznih uređaja komunicira sa sistemom)
Za definisanje interfesa potrebno je znati koje informacije se razmenjuju između sistema i okruženja i na koji način sistem komunicira sa okruženjem
Specifikacija interfejsa digitalnog sistema uključuje specifikaciju ulaza i izlaza (tj. portova) proširenu pravilima za korišćenje sistema od strane korisnika
Arhitektura mikrosistema
Opis ponašanja - Interfejs Dva tipa ulaznih i izlaznih informacija:
Upravljački i statusni signali (najčešće jednobitni signali) Upravljački ulazi - iniciraju naku aktivnost sistema Statusni ulazi - sistem dobija informaciju o trenutnom stanju
okruženja Upravljački izlazi - sistem inicira neku aktivnost u okruženju Statusni izlazi - obaveštava okruženje o svom trenutnom stanju Signali takta i resetovanja - prisutni kod svih sistema
Podaci Ulazni podaci - informacija koju
sistem treba da obradi Izlazni podaci - rezultat obrade
RTLSISTEM
...
...
...
...
statusni/upravljacki
ulazi
ulazipodataka
statusni/upravljacki
izlazi
izlazipodataka
rstclk
Arhitektura mikrosistema
Interfes - Primer (Sekvencijalni delitelj) Pre aktiviranja upravljačkog ulaza start
(start=1) korisnik, treba da postavlja deljenik i delilac na ulazima podatak x i y. Korisnik ne sme da menja x i y za vreme dok traje izračunavanje (dok je rdy=0).
Trajanje signala start mora biti tačno jedan taktni period.
Korisnik je u obavezi da pre sledećeg aktiviranja signala start čeka barem dva taktna ciklusa nakon što je sistem završio prethodno izračunavanje
PASIVNO
10
Blokovi stanja, grananja i uslovnog izlaza koji
realizuju izracunavanje kolicnika. (ova stanja ne
postavljaju signal rdySEKVENCIJALNI
DELITELJ
start
x
rdy
qy
rdy
start
Ulazi podataka
Upravljački ulaz
Izlaz podataka
Statusni izlaz
Spada u specifiakciju
interfejsa
Arhitektura mikrosistema
Interfes - Primer (Handshake interfejs ) Handshake - način koordinacije dva podsistema
putem dva signala: req (request - zahtev) i ack (acknowladge - potvrda)
PREDAJNIK PRIJEMNIK
req
ack
data
(1)
(2)
(3)
(4)
(1)req
data
ack
Arhitektura mikrosistema
Interfes - Primer (Handshake interfejs )
PREDAJNIK PRIJEMNIK
req
ack
data
(1)
(2)
(3)
(4)
(1)req
data
ack
Predajnik Prijemnik
Rout <- datareq
ack
1
0
ack1
0
S1
S2. . .
. . .
req
Rin <- bus
ack
req
0
0
1
1
R1
R2
. . .
. . .
Arhitektura mikrosistema
Konverzija algoritma u ASMD dijagram
B = 0;while(A≠0) do if(A0 = 1) then B = B + 1; end if; A = A >> 1;end while;
B <- 0A <- a
S0
start
A <- A >> 1
A=0
A(0)
B <- B + 1
Kraj
S1 S2
0
1
0
1
da
ne
Osnova za softversko rešenje datog problema
Osnova za hardversko
rešenje
?
Sekvencijalno izvršenje algoritamskih koraka
Ne sadrži informaciju o trajanju operacija
Dozvoljava paralelizam (sve operacije obuhvaćene jednim stanjem izvršavaju se istovremeno)
Nameće diskretizaciju vremena (jedno stanje, jedan taktni ciklus)
Arhitektura mikrosistema
Paralelizacija sekvencijalnog kôda
a = b + cd = a – ef = b - g
...
...
a ← b + cd ← a – ef ← b - g
...
...
a ← b + c
d ← a – e
f ← b - g
...
...
a ← b + c
d ← a – ef ← b - g
...
...
Softverski blok naredbi - sekvencijalno izvršenje
ASMD - sve naredbe u bloku se izvršavaju paralelno.
maksimalan paralelizam - neispravno rešenje jer nisu uvažene zavisnosti između naredbi
ASMD - sekvencijalno izvršenje naredbi
Ispravno (očuvane su sve zavisnosti), ali sporo
ASMD - Optimalno rešenje
Nezavisne naredbe u paraleli
Arhitektura mikrosistema
Konverzija algoritma u (sekvencijalni) ASMD dijagram Algoritam je teže predstaviti u obliku ASMD dijagrama
nego u obliku softverskog pseudo koda. => Opis ponašanja digitalnog sistema tipično počinje kreiranjem
softverskog algoritma, koji se potom konvertuje u ekvivalentni ASMD dijagram
Pravila za konverziju: Svaka naredba dodele iz softverskog algoritma prevodi
se u naredbu registarskog prenosa koja se smešta u zaseban blok stanja ASMD dijagrama .
Svaka naredba grananja (npr. if, while) iz softverskog algoritma se prevodi u prazan blok stanja posle kojeg sledi blok grananja s upisanom relacijom iz softverske naredbe .
Arhitektura mikrosistema
Primer direktne konverzija algoritma u ASMD dijagram - sekvencijalni delitelj
r1 = x;r2 = 0;while (r1 >= y) { r2 = r2 + 1; r1 = r1 – y;}
PASIVNO
r1 <- xrdy
start10
r2 <- 0
r1 <- r1 - y
INIT
TEST
r2 <- r2 + 1
C1r1 >= y
1
0
C2
PASIVNO
r1 <- xrdy
start10
r2 <- 0
r1 <- r1 - y
INIT
TEST
r2 <- r2 + 1
C1
r1 >= y1
0
C2
PASIVNO
10
Blokovi stanja, grananja i uslovnog izlaza koji
realizuju izracunavanje kolicnika. (ova stanja ne
postavljaju signal rdySEKVENCIJALNI
DELITELJ
start
x
rdy
qy
rdy
start
Izlaz iz r2
Bez TEST, ispitivanje r1>=y koristilo bi staru vrednost r1 !!!
Arhitektura mikrosistema
ASM dijagram sekvencijalnog deliteljaOptimizacija (eliminacija stanja TEST)
PASIVNO
r1 <- xrdy
start10
r2 <- 0
r1 <- r1 - y
INIT
r2 <- r2 + 1
C1
r1 >= y1
0
C2
PASIVNO
r1 <- xrdy
start10
r2 <- 0
INIT
r1 >= y1
0 r1 <- r1 - y
r2 <- r2 + 1
C1
C2
PASIVNO
r1 <- xrdy
start10
r2 <- 0
r1 <- r1 - y
INIT
TEST
r2 <- r2 + 1
C1r1 >= y
1
0
C2
PASIVNO
r1 <- xrdy
start10
r2 <- 0
r1 <- r1 - y
INIT
TEST
r2 <- r2 + 1
C1
r1 >= y1
0
C2
3+2q 4+3q
Arhitektura mikrosistema
ASM dijagram sekvencijalnog deliteljaOptimizacija (eliminacija stanja INIT)
PASIVNO
r1 <- xrdy
start10
r2 <- 0
r1 <- r1 - y
INIT
r2 <- r2 + 1
C1
r1 >= y1
0
C2
PASIVNO
r1 <- xrdy
start10
r2 <- 0
INIT
r1 >= y1
0 r1 <- r1 - y
r2 <- r2 + 1
C1
C2
PASIVNO
r1 <- xr2 <- 0
rdy
start10
r1 >= y1
0 r1 <- r1 - y
r2 <- r2 + 1
C1
C2
Algoritmaski ispravno.
Problem u korisničkom interfejsu: rezultat (u r2) je dostupan za očitavanje samo 1 taktni ciklus
PASIVNO
10
Blokovi stanja, grananja i uslovnog izlaza koji
realizuju izracunavanje kolicnika. (ova stanja ne
postavljaju signal rdySEKVENCIJALNI
DELITELJ
start
x
rdy
qy
rdy
start
Arhitektura mikrosistema
ASM dijagram sekvencijalnog deliteljaOptimizacija (eliminacija stanja INIT)
PASIVNO
r1 <- xr2 <- 0
rdy
start10
r1 >= y1
0 r1 <- r1 - y
r2 <- r2 + 1
C1
C2
r3 <- r2
C3
PASIVNO
r1 <- xr2 <- 0
rdy
start10
r1 >= y1
0 r1 <- r1 - y
r2 <- r2 + 1
C1
C2
r3 <- r2
C3
r1 >= y
r3 <- 0
0 1
N3
Uvodi se još jedan registar (r3) koji čuva rezultat
Šta ako je količnik 0 ?
2+3q
Arhitektura mikrosistema
ASM dijagram sekvencijalnog deliteljaOptimizacija (Paralelizacija petlje)
PASIVNO
PASIVNO
r1 <- xr2 <- 0
rdy
start10
r1 >= y1
0 r1 <- r1 - y
C1
r1 >= y
r3 <- 0
0 1
N3
r3 <- r2
C3
r2 <- r2 + 1
C2
PASIVNO
r1 <- xr2 <- 0
rdy
start10
r1 >= y1
0 r1 <- r1 - y
C1
r1 >= y
r3 <- 0
0 1
N3
r2 <- r2 + 1r3 <- r2
C23
Neuspešni pokušaji
Preuranjen upis u r3
Arhitektura mikrosistema
ASM dijagram sekvencijalnog deliteljaOptimizacija (Paralelizacija petlje)
PASIVNO
r1 <- xr2 <- 0
rdy
start10
r1 >= y1
0 r1 <- r1 – yr2 <- r2 + 1
r3 <- r2
C123
r1 >= y
r3 <- 0
0 1
N3
Stanje C123 se izvršava jedanput više, ali se zato u
r3 upisuje jadnput manje
2+q
Arhitektura mikrosistema
ASM dijagram sekvencijalnog deliteljaOptimizacija (Eliminacija stanja N3)
PASIVNO
r1 <- xr2 <- 0
rdy
start10
r1 >= y1
0 r1 <- r1 – yr2 <- r2 + 1
r3 <- r2
C123
r1 >= y
r3 <- 0
0 1
N3
PASIVNO
r1 <- xr2 <- 0
rdy
start10
start | r1 >= y1
0 r1 <- r1 – yr2 <- r2 + 1
r3 <- r2
C123
2+q
Arhitektura mikrosistema
ASM dijagrami Milijevog tipa
BRZINA=3
ZELENO
ZUTO
CRVENO
STOPBRZINA=1
BROJAC<-BROJAC+1
STOPBROJAC<-BROJAC+2
BROJAC /= 0
0
1
NAPUSTI
OSTANI
Vre Stanje Signali i promenljive
0.0 ZELENO STOP=0 BRZINA=3 BROJAČ=000 OSTANI = 0 NAPUSTI = 0
0.5 ŽUTO STOP=1 BRZINA=1 BROJAČ=000 OSTANI = 0 NAPUSTI = 1
1.0 CRVENO STOP=1 BRZINA=0 BROJAČ=001 OSTANI = 0 NAPUSTI = 0
1.5 ZELENO STOP=0 BRZINA=3 BROJAČ=011 OSTANI = 0 NAPUSTI = 0
2.0 ŽUTO STOP=1 BRZINA=1 BROJAČ=011 OSTANI = 1 NAPUSTI = 0
2.5 ŽUTO STOP=1 BRZINA=1 BROJAČ=100 OSTANI = 1 NAPUSTI = 0
3.0 ŽUTO STOP=1 BRZINA=1 BROJAČ=101 OSTANI = 1 NAPUSTI = 0
3.5 ŽUTO STOP=1 BRZINA=1 BROJAČ=110 OSTANI = 1 NAPUSTI = 0
4.0 ŽUTO STOP=1 BRZINA=1 BROJAČ=111 OSTANI = 1 NAPUSTI = 0
4.5 ŽUTO STOP=1 BRZINA=1 BROJAČ=000 OSTANI = 0 NAPUSTI = 1
5.0 CRVENO STOP=1 BRZINA=0 BROJAČ=001 OSTANI = 0 NAPUSTI = 0
5.5 ZELENO STOP=0 BRZINA=3 BROJAČ=011 OSTANI = 0 NAPUSTI = 0
6.0 ŽUTO STOP=1 BRZINA=1 BROJAČ=011 OSTANI = 1 NAPUSTI = 0
… … …
Uslovne operacije
Arhitektura mikrosistema
ASM dijagram sekvencijalnog deliteljaMilijeva verzija (Eliminacija stanja INIT)
PASIVNO
r1 <- xr2 <- 0
rdy
start10
r1 >= y1
0 r1 <- r1 - y
r2 <- r2 + 1
C1
C2
r2 se resetuje u stanju PASIVO,
pod uslovom ako je start=1Umesto da uvedemo r3
PASIVNO
r1 <- xrdy
start10
r1 >= y1
0 r1 <- r1 - y
r2 <- r2 + 1
C1
C2
r2 <- 0
Problem s preranim brisanjem r2 u stanju PASIVNO
Arhitektura mikrosistema
ASM dijagram sekvencijalnog deliteljaMilijeva verzija (Spajanje stanja C1 i C2)
PASIVNO
r1 <- xrdy
start10
r1 >= y1
0 r1 <- r1 – yr2 <- r2 + 1
C12
r2 <- 0
r2 se inkrementira jedanput više
PASIVNO
r1 <- xrdy
start10
r1 >= y1
0 r1 <- r1 - y
r2 <- r2 + 1
C1
C2
r2 <- 0
Arhitektura mikrosistema
ASM dijagram sekvencijalnog deliteljaMilijeva verzija (Spajanje stanja C1 i C2)
PASIVNO
r1 <- xrdy
start10
r1 >= y1
0 r1 <- r1 - y
C
r2 <- 0
r2 <- r2 + 1
r1 >= y
0
1
PASIVNO
r1 <- xrdy
start10
r1 >= y1
0 r1 <- r1 – yr2 <- r2 + 1
C12
r2 <- 0
2+q
Arhitektura mikrosistema
ASM dijagram sekvencijalnog deliteljaMilijeva verzija (Ranije postavljanje signala rdy)
PASIVNO
r1 <- xrdy
start10
r1 >= y1
0 r1 <- r1 - y
C
r2 <- 0
r2 <- r2 + 1
r1 >= y
0
1
PASIVNO
r1 <- xrdy
start10
r1 >= y1
0 r1 <- r1 - y
C
r2 <- 0
r2 <- r2 + 1
r1 >= y01
rdy
2+q takta i
2 registra
Arhitektura mikrosistema
Razrada Cilj da polazni problem, prethodno precizno opisan ASM
dijagramom, podeliti na dva dela: staza podataka
registri za čuvanje vrednosti promenljivih; kombinaciona logika za obavljanje izračunavanja iz naredbi
registarskog prenosa i relacija. upravljačku jedinicu - sprovodi algoritam
UPRAVLJACKA JEDINICA
STAZA PODATAKA
Komande – interni upravljacki signali
Interni statusni signali
Ulazi podataka
Upravljacki i statusni ulazi
Upravljacki i statusni izlazi
Izlazi podataka
DIGITALNI SISTEM
Arhitektura mikrosistema
Projektovanje staze podataka
PASIVNO
r1 <- xr2 <- 0
rdy
start10
start | r1 >= y1
0 r1 <- r1 – yr2 <- r2 + 1
r3 <- r2
C123
r1 ← x
r1 ← r1-y
r2 ← 0
r2 ← r2 + 1
r3 ← r2
r1 >= y
registar + oduzimač
brojač
registar
komparator
Arhitektura mikrosistema
Projektovanje staze podataka(metodička staza podataka)
mux
01
r1n
(-)n
≥
Kom
p.
n
nld
r2 r3n
inc clr ld
n
y x
q
Upravljacka jedinica
muxctrl
ldr1
r1geyldr3
clrr2incr2 Staza
podataka
start
rdy
clk
rst
rst
n n
r1 ← x
r1 ← r1-y
r2 ← 0
r2 ← r2 + 1
r3 ← r2
r1 >= y
registar + oduzimač
brojač
registar
komparator
r1 ← x (muxctrl=0, ldr1=1)
r1 ← r1-y (muxctrl=1, ldr1=1)
r2 ← 0 (clrr2=0)
r2 ← r2 + 1 (incr2=1)
r3 ← r2 (ldrr3=1)
r1 >= y (r1gey)
Arhitektura mikrosistema
Projektovanje upravljačke jedinicePASIVNO
r1 <- xr2 <- 0
rdy
start10
start | r1 >= y1
0 r1 <- r1 – yr2 <- r2 + 1
r3 <- r2
C123
r1 ← x (muxctrl=0, ldr1=1)
r1 ← r1-y (muxctrl=1, ldr1=1)
r2 ← 0 (clrr2=1)
r2 ← r2 + 1 (incr2=1)
r3 ← r2 (ldrr3=1)
r1 >= y (r1gey)
PASIVNO
start10
start | r1gey1
0ldr1incr2ldr3muxctrl
C123
ldr1clrr2rdy
Arhitektura mikrosistema
Upravljačka jedinica (strukturna varijanta ASM dijagrama)
PASIVNO
start10
start | r1gey1
0ldr1incr2ldr3muxctrl
C123
ldr1clrr2rdy
PASIVNOr1 ← xr2 ← 0
rdy
start
1
0
10
r1 ← r1 – yr2 ← r2 + 1
r3 ← r2
C123
r1 ≥ y
Arhitektura mikrosistema
Staza podataka zasnovana na ALUsekvencijalna staza podataka
PASIVNO
r1 <- xrdy
start10
r2 <- 0
r1 <- r1 - y
INIT
r2 <- r2 + 1
C1
r1 >= y1
0
C2
PASIVNO
r1 <- xrdy
start10
r2 <- 0
INIT
r1 >= y1
0 r1 <- r1 - y
r2 <- r2 + 1
C1
C2
r1
ldr1
r2
ldr2
01
muxctrl
2
x
q
ALU
y
aluctrl
r1y
a
b
n
n
nn
n
n
2
4
c
d
Na osnovu sekvencijanog ASMD
Operacija aluctrl c d Propuštanje 000 a - ˝Sve nule˝ 001 0 - Oduzimanje 011 a-b - Inkrementiranje 010 a+1 - Veće-jednako 100 - a≥b
Manja hardverska složenost, ali po cenu dužeg vremena izvršenja
Arhitektura mikrosistema
Staza podataka zasnovana na ALUsekvencijalna staza podataka
+1
-
≥
0
a
baluctrl
c
d
0
1
2
3
d
others
01
00|11
01
10
a
0
b
10|11
00|010
1
+
sa
sb
cout
cin
scc
aluctrl
r1
ldr1
r2
ldr2
01
muxctrl
2
x
q
ALU
y
aluctrl
r1y
a
b
n
n
nn
n
n
2
3
c
d
Neoptimizovana ALU Optimizovana ALU
Operacija aluctrl sa sb cin
Propuštanje (c = a)
00 a 0 0
Sve nule (c = 0)
01 0 0 0
Oduzimanje (c = a – b)
10 a b 1
Inkrement (c = a + 1)
11 a 0 1
Arhitektura mikrosistema
Realizacija Kreiranje VHDL opisa Simulacija Sinteza
Arhitektura mikrosistema
Kreiranje VHDL opisa(organizacija projekta)
mux
01
r1n
(-)n
≥
Kom
p.
n
nld
r2 r3n
inc clr ld
n
y x
q
Upravljacka jedinica
muxctrl
ldr1
r1geyldr3
clrr2incr2 Staza
podataka
start
rdy
clk
rst
rst
n n
delitelj.vhd datapath.vhd
control.vhd
Arhitektura mikrosistema
Kreiranje VHDL opisa(datapath.vhd)
mux
01
r1n
(-)n
≥
Kom
p.
n
nld
r2 r3n
inc clr ld
n
y x
q
Upravljacka jedinica
muxctrl
ldr1
r1geyldr3
clrr2incr2 Staza
podataka
start
rdy
clk
rst
rst
n n
Tri procesa
Microsoft Word Document
Arhitektura mikrosistema
Kreiranje VHDL opisa(control.vhd)
mux
01
r1n
(-)n
≥
Kom
p.
n
nld
r2 r3n
inc clr ld
n
y x
q
Upravljacka jedinica
muxctrl
ldr1
r1geyldr3
clrr2incr2 Staza
podataka
start
rdy
clk
rst
rst
n n
Microsoft Word Document
PASIVNOldr1crl2rdy
start
1
0
10
muxctrlldr1inc2ldr3
C123
r1y
Arhitektura mikrosistema
Kreiranje VHDL opisa(delitelj.vhd)
PASIVNO
10
Blokovi stanja, grananja i uslovnog izlaza koji
realizuju izracunavanje kolicnika. (ova stanja ne
postavljaju signal rdySEKVENCIJALNI
DELITELJ
start
x
rdy
qy
rdy
start
Microsoft Word Document
Arhitektura mikrosistema
Sekvencijalni brojač jedinica Brojač jedinica (bit_counter) je kolo koje
određuje broj 1-ca u ulaznom binarnom vektoru
bit_counter
a b
clk
rst
start
rdy
n log2n
clk
a
start
b
rdy
A
B
IzracunaranjeRezultat dostupna
za ocitavanjeRezultat dostupna
za ocitavanje
Upis ulaznog vektora
0 1 . . .
Arhitektura mikrosistema
Sekvencijalni brojač jedinicaAlgoritam
B = 0; while(A≠0) do if(A0 = 1) then B = B + 1; end if; A = A >> 1; end while;
A, B => regA, regB
bit_counter
a b
clk
rst
start
rdy
n log2nregBregA
Arhitektura mikrosistema
Sekvencijalni brojač jedinicaInterfejs
regA ← ardy
IDLE
start0
regB ← 0
1
Izracunavanje
clk
a
start
b
rdy
A
B
IzracunaranjeRezultat dostupna
za ocitavanjeRezultat dostupna
za ocitavanje
0 1 . . .
Arhitektura mikrosistema
Sekvencijalni brojač jedinicaKonverzija algoritma u ASM
B = 0; while(A≠0) do if(A0 = 1) then B = B + 1; end if; A = A >> 1; end while;
regA ← ardy
IDLE
start0
regB ← 0
1
regA ≠ 0
TEST
regA(0)
regB ← regB + 1
INCR
regA ← regA >>1
1
0
SHIFT
NE
DA
Arhitektura mikrosistema
Sekvencijalni brojač jedinicaAnaliza ASMregA ← ardy
IDLE
start 0
regB ← 0
1
regA ≠ 0
TEST
regA(0)
regB ← regB + 1
INCR
regA ← regA >>1
1
0
SHIFT
NE
DA
CLK START Tekuce stanje
regA regB Sledecestanje
rdy
0 1 IDLE xxxx xx TEST 1
1 0 TEST 0101 00 INCR 0
2 0 INCR 0101 00 SHIFT 0
3 0 SHIFT 0101 01 TEST 0
4 0 TEST 0010 01 SHIFT 0
5 0 SHIFT 0010 01 TEST 0
6 0 TEST 0001 01 INCR 0
7 0 INCR 0001 01 SHIFT 0
8 0 SHIFT 0001 10 TEST 0
9 0 TEST 0000 10 IDLE 0
10 0 IDLE 0000 10 IDLE 1
11 0 IDLE xxxx 10 IDLE 1
Za a = 0101
Arhitektura mikrosistema
Sekvencijalni brojač jedinicaOptimizacja: stanje INCR pripojeno stanju TEST
regA ← ardy
IDLE
start 0
regB ← 0
1
regA ≠ 0
TEST
regA(0)
regB ← regB + 1
regA ← regA >>1
1
0
SHIFT
NE
DA
CLK START Tekuce stanje
regA regB Sledecestanje
rdy
0 1 IDLE xxxx xx TEST 1
1 0 TEST 0101 00 SHIFT 0
2 0 SHIFT 0101 01 TEST 0
3 0 TEST 0010 01 SHIFT 0
4 0 SHIFT 0010 01 TEST 0
5 0 TEST 0001 01 SHIFT 0
6 0 SHIFT 0001 10 TEST 0
7 0 TEST 0000 10 IDLE 0
8 0 IDLE 0000 10 IDLE 1
9 0 IDLE xxxx 10 IDLE 1
Arhitektura mikrosistema
Sekvencijalni brojač jedinicaOptimizacja: spajanje stanja TEST i SHIFT
regA ← ardy
IDLE
start 0
regB ← 0
1
regA ≠ 0
TEST
regA(0)
regB ← regB + 1
regA ← regA >>1
1
0
SHIFT
NE
DA
regA ← ardy
IDLE
start0
regB ← 0
1
regA ← regA >>1
regA ≠ 0
regA(0)
regB ← regB + 1
1
0
SHIFT
NE
DA
Arhitektura mikrosistema
Sekvencijalni brojač jedinicaOptimizacja: spajanje stanja TEST i SHIFT
regA ← ardy
IDLE
start0
regB ← 0
1
regA ← regA >>1
regA ≠ 0
regA(0)
regB ← regB + 1
1
0
SHIFT
NE
DA
CLK START Tekuce stanje
regA regB Sledecestanje
rdy
0 1 IDLE xxxx xx TEST 1
1 0 SHIFT 0101 00 SHIFT 0
2 0 SHIFT 0010 01 SHIFT 0
3 0 SHIFT 0001 01 SHIFT 0
4 0 SHIFT 0000 10 IDLE 0
5 0 IDLE 0000 10 IDLE 1
6 0 IDLE xxxx 10 IDLE 1
Arhitektura mikrosistema
Sekvencijalni brojač jedinicaOptimizacja: ranije postavljanje signala rdy
regA ← ardy
IDLE
start 0
regB ← 0
1
regA ← regA >>1
regA ≠ 0
regA(0)
regB ← regB + 1
1
0
SHIFT
NE
DA
rdy
CLK START Tekuce stanje
regA regB Sledecestanje
rdy
0 1 IDLE xxxx xx TEST 1
1 0 SHIFT 0101 00 SHIFT 0
2 0 SHIFT 0010 01 SHIFT 0
3 0 SHIFT 0001 01 SHIFT 0
4 0 SHIFT 0000 10 IDLE 1
5 0 IDLE 0000 10 IDLE 1
Arhitektura mikrosistema
Sekvencijalni brojač jedinicaRazrada
regA ← ardy
IDLE
start0
regB ← 0
1
regA ← regA >>1
regA ≠ 0
regA(0)
regB ← regB + 1
1
0
SHIFT
NE
DA
rdy
regA ← a
regA ← regA >> 1
regA ≠ 0
regB ← 0
regB ← regB +1
Pomerački registar sa paralelnim upisom
n-ulazno ILI kolo
Brojač sa sinhronim resetom
Arhitektura mikrosistema
Sekvencijalni brojač jedinicaRazrada - staza podataka
shift(regA)
ldena
q
din
n
counter(regB)
q
dinldena
log2n
0
log2n
Upravljačka jedinica
n
laea
lbeb
z
a0Staza podataka
b
start
rdy
a
regA ← a (la=1,ea=1)
regA ← regA >> 1 (la=0, ea=1)
regA ≠ 0 (signal z)
regB ← 0 (lb=eb=1)
regB ← regB +1 (lb=0, eb=1)
Arhitektura mikrosistema
Sekvencijalni brojač jedinicaRazrada - ASM dijagram upravljačke jedinice
regA ← ardy
IDLE
start 0
regB ← 0
1
regA ← regA >>1
regA ≠ 0
regA(0)
regB ← regB + 1
1
0
SHIFT
NE
DA
rdy
regA ← a (la=1,ea=1)
regA ← regA >> 1 (la=0, ea=1)
regA ≠ 0 (signal z)
regB ← 0 (lb=eb=1)
regB ← regB +1 (lb=0, eb=1)
la, eardy
IDLE
start0
lb,eb
1
ea
z
a0
eb
1
0
SHIFT
NE
DA
rdy
Arhitektura mikrosistema
Sekvencijalni brojač jedinicaRealizacija - VHDL opis staze podataka
shift(regA)
ldena
q
din
n
counter(regB)
q
dinldena
log2n
0
log2n
Upravljačka jedinica
n
laea
lbeb
z
a0Staza podataka
b
start
rdy
a
procesi
ENTITY datapath IS PORT(a : IN STD_LOGIC_VECTOR(7 DOWNTO 0); b : OUT STD_LOGIC_VECTOR(3 DOWNTO 0); la,ea,lb,eb : IN STD_LOGIC; a0,z : OUT STD_LOGIC; clk : IN STD_LOGIC; rst : IN STD_LOGIC);END datapath;
Microsoft Word Document
Arhitektura mikrosistema
Sekvencijalni brojač jedinicaRealizacija - VHDL opis upravljačke jedinice
shift(regA)
ldena
q
din
n
counter(regB)
q
dinldena
log2n
0
log2n
Upravljačka jedinica
n
laea
lbeb
z
a0Staza podataka
b
start
rdy
a
ENTITY control IS PORT(start: IN STD_LOGIC; rdy : OUT STD_LOGIC; z, a0 : IN STD_LOGIC; la,ea,lb,eb : OUT STD_LOGIC; clk : IN STD_LOGIC; rst : IN STD_LOGIC);END control;
Microsoft Word Document
Arhitektura mikrosistema
Sekvencijalni brojač jedinicaRealizacija - VHDL opis sek. brojača jedinica
bit_counter
a b
clk
rst
start
rdy
n log2n
ENTITY bit_counter IS PORT(a : IN STD_LOGIC_VECTOR(7 DOWNTO 0); b : OUT STD_LOGIC_VECTOR(3 DOWNTO 0); start : IN STD_LOGIC; rdy : OUT STD_LOGIC; clk : IN STD_LOGIC; rst : IN STD_LOGIC);END bit_counter;
Microsoft Word Document
Arhitektura mikrosistema
Sekvencijalni brojač jedinicaSimulacija
Arhitektura mikrosistema
Sekvencijalni delitelj (ubrzani algoritam)
A B Q140 : 9 = 15 9---- 50- 9---- 5 <- R
A B Q10001100 : 1001 = 1111-1001----- 10001 -1001 ----- 10000 -1001 ----- 01110 -1001 ------ 0101 <- R
R A Q
00000000 10001100 00000000
0) 00000001 00011000 00000000
1) 00000010 00110000 00000000
2) 00000100 01100000 00000000
3) 00001000 11000000 00000000
4) 00010001 10000000 00000000 -00001001 <- B -------- 00001000 10000000 00000001
5) 00010001 00000000 -00001001 <- B -------- 00001000 00000000 00000011
6) 00010000 00000000 -00001001 <- B -------- 00000111 00000000 00000111
7) 00001110 00000000 -00001001 <- B -------- 00000101 00000000 00001111
“Ručno” deljenje
Pomeranje/oduzimanje
Traje n taktnih ciklusa
Arhitektura mikrosistema
Algoritam
R = 0; for C = 0 to N-1 do (R,A) = (R,A) << 1; if(R ≥ B) then QC = 1; R = R - B; else QC = 0; end if; end for;
R = 0; for C = 0 to N-1 do (R,A) = (R,A) << 1; if(R ≥ B) then Q = (Q << 1)1; R = R - B; else Q = (Q << 1)0; end if; end for;
R = 0; C = N-1; do (R,A) = (R,A) << 1; if(R ≥ B) then Q = (Q << 1)1; R = R - B; else Q = (Q << 1)0; end if; C = C – 1; while(C≥0);
(a) (b) (c)
Generiše bitove količnika, Qc, počev od bita najmanje težine
Prikupljanje bitova količnika u pomeračkom registru
Zamena for petlje do-while petljom
Serijski upis jedinice
Serijski upis nule
Arhitektura mikrosistema
Funkcionalni ASM dijagram
PASIVNO
rdyB ← bA ← aC ← n-1
start
R <- 0
(R,A) ← (R,A) << 1
C ← C - 1
R ≥ B
Q ← (Q << 1)0Q ← (Q << 1)1
R ← R - B
C ≥ 0
SHRA
SHQ1 SHQ2
SUBB
PASIVNO
rdyB ← bA ← aC ← n-1
start
R <- 0
(R,A) ← (R,A) << 1
R ≥ B
Q ← (Q << 1)0Q ← (Q << 1)1
R ← R - B
C ≥ 0
SHRA
TEST1
SHQ1 SHQ2
SUBB
1 0
0 1
1
0
C ← C - 1
TEST2
DECR
0 1
1 0
1
0
PASIVNO
rdyB ← bA ← aC ← n-1
start
R <- 0
(R,A) ← (R,A) << 1
C ← C - 1
R ≥ B
Q ← (Q << 1)0Q ← (Q << 1)1
R ← R - B
C > 0
SHRA
1 0
0 1
1
0
DECR
DECR
Arhitektura mikrosistema
Razrada - komponente
B ← b
A ← a
C ← n-1
R ← 0
(R,A) ← (R,A) << 1
Q ← (Q << 1)1
Q ← (Q << 1)0
R ← R - B
C ← C - 1
Registri:
B - prihvatni registar
A - pomerački registar sa paralelnim upisom
C - brojač osnove n sa paralelnim upisom
R - pomerački registar sa paralelnim upisom
Q - pomerački registar
Arhitektura mikrosistema
Razrada - funkcionalne jedinice
R ≤ B
Umesto komparatora, koristimo izlazni prenos sabirača
R ← R - B
(R i B su označeni brojevi u dvojičnom komplementu)
+
R B
cin
R - B
1
+
R B
cin
R - B
1cout
1 za R ≤ B0 za R > B
C > 0
Isto što i C ≠ 0
nC
C > 0
Arhitektura mikrosistema
Razrada - staza podataka
shift(reg R)
si
ldena
q
dinlr
er
mux
n
0
rsel 01
shift(reg A)
si
ldena
q
din
0
n
a
reg.(reg B)ena
q
din
qn-1laea
eb
n
b
(+) cincout
shift(reg Q) siena
q
n
r
1
n
q
control
cout
start
rdy
datapath
counter(C)
q
dinldena
log2n
n-1
lcecz
eq
qr
regB
regB_not
sum qc
dr
Arhitektura mikrosistema
Realizacija naredbi registarskog prenosaB ← b eb = 1
A ← a ea = 0, la = 1
C ← n-1 lc = 1, ec = 0
R ← 0 rsel = 0, lr = 1, er = 0
(R,A) ← (R,A) << 1 er = 1, lr = 0, ea = 1, la = 0
Q ← Q << 1 eq = 1
R ← R - B rsel = 1, er = 0, lr = 1
C ← C - 1 lc = 0, ec = 1
Arhitektura mikrosistema
ASM dijagram upravljačke jedinicePASIVNO
rdyeb; la; ea; lc; ec
start
lr; er
er; ea
ec
cout
eqeq; rsel; lr; er
z
SHRA
INCR
1 0
0 1
1
0
PASIVNO
rdyB ← bA ← aC ← n-1
start
R <- 0
(R,A) ← (R,A) << 1
C ← C - 1
R ≥ B
Q ← (Q << 1)0Q ← (Q << 1)1
R ← R - B
C ≥ 0
SHRA
SHQ1 SHQ2
SUBB
PASIVNO
rdyB ← bA ← aC ← n-1
start
R <- 0
(R,A) ← (R,A) << 1
R ≥ B
Q ← (Q << 1)0Q ← (Q << 1)1
R ← R - B
C ≥ 0
SHRA
TEST1
SHQ1 SHQ2
SUBB
1 0
0 1
1
0
C ← C - 1
TEST2
DECR
0 1
1 0
1
0
PASIVNO
rdyB ← bA ← aC ← n-1
start
R <- 0
(R,A) ← (R,A) << 1
C ← C - 1
R ≥ B
Q ← (Q << 1)0Q ← (Q << 1)1
R ← R - B
C > 0
SHRA
1 0
0 1
1
0
DECR
DECR
Arhitektura mikrosistema
Realizacija - komponente COMPONENT shift IS GENERIC (N : INTEGER); PORT (si,ld,ena,rst,clk : IN STD_LOGIC; din : IN STD_LOGIC_VECTOR(N-1 DOWNTO 0); q : OUT STD_LOGIC_VECTOR(N-1 DOWNTO 0)); END COMPONENT;COMPONENT counter IS GENERIC (N : INTEGER); PORT (ld,ena,rst,clk : IN STD_LOGIC; din : IN STD_LOGIC_VECTOR(N-1 DOWNTO 0); q : OUT STD_LOGIC_VECTOR(N-1 DOWNTO 0)); END COMPONENT;COMPONENT adder IS GENERIC (N : INTEGER); PORT (cin : IN STD_LOGIC; x,y : IN STD_LOGIC_VECTOR(N-1 DOWNTO 0); s : OUT STD_LOGIC_VECTOR(N-1 DOWNTO 0); cout: OUT STD_LOGIC); END COMPONENT;
Arhitektura mikrosistema
Realizacija - staza podataka i upravljačka jedinica
Microsoft Word Document
Recommended