RTL Projektovanje RTL Projektovanje o Projektovanje na registarskom

  • Slides: 81
Download presentation
RTL Projektovanje

RTL Projektovanje

RTL Projektovanje o Projektovanje na registarskom (mikroarhitekturalnom) nivou apstrakcije n n o Sistem se

RTL Projektovanje o Projektovanje na registarskom (mikroarhitekturalnom) nivou apstrakcije n n o Sistem se opisuje do nivoa registara i kombinacionih blokova Svi registri imaju zajednički takt (sinhroni sistemi) RTL metodologija: n n n 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 Arhitektura mikrosistema

Algoritam size = 4; sum = 0; for i in (0 to size-1) do

Algoritam size = 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; Pseudo-kod Prilagođen načinu rada računara 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. Arhitektura mikrosistema

Pseudo-kod u VHDL size = 4; sum = 0; for i in (0 to

Pseudo-kod u VHDL size = 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; Direktno prevođenje . . . 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; Arhitektura mikrosistema

Pseudo-kod u VHDL Nakon razmotavanja FOR LOOP petlje sum 0 sum 1 sum 2

Pseudo-kod u VHDL Nakon razmotavanja FOR LOOP petlje sum 0 sum 1 sum 2 sum 3 q <= r <= outp : = a(0); : = sum 0 + a(1); : = sum 1 + a(2); : = sum 2 + a(3); „ 000“ & sum(7 DOWNTO 3); „ 00000“ & sum(2 DOWNTO 0); <= q + 1 WHEN (r > 3) ELSE q; Promenljive postaju signali, a operacije hardverski kombinacioni blokovi OK: Pojedine operacije se obavljaju u paraleli, što dovodi do ubrzanja rada 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? Arhitektura mikrosistema - Hardver ne može dinamički da se ˝širi˝ i ˝skuplja˝

Realizacija algoritma u hadveru o o Registri se koriste kao zamena za promenljive Hardver

Realizacija algoritma u hadveru o o 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 Algoritamski korak Promenljive Naredba registarskog prenosa Obavlja se u JEDNOM

Algoritam -> RTL hardver Algoritamski korak Promenljive Naredba registarskog prenosa Obavlja se u JEDNOM taktnom ciklusu Algoritam Hardver a=a+b reg_A ← reg_A + reg_B a b + reg_A reg_B Sabirač Arhitektura mikrosistema Registri

Naredba registarskog prenosa rdest ← f(rsrc 1, rsrc 2, . . . , rsrcn)

Naredba registarskog prenosa rdest ← f(rsrc 1, rsrc 2, . . . , rsrcn) Odredišni registar Izvršava se u jednom taktnom ciklusu: Izvorni registri Funkcija - bilo koja funkcija koja se može realizovati u hadveru u vidu kombinacione mreže Izračunavanje funkcije Na izlazima izvornih reg. dostupne su nove vrednosti Arhitektura mikrosistema Upis u rdest

Naredbe registarskog prenosa - primeri Arhitektura mikrosistema

Naredbe registarskog prenosa - primeri Arhitektura mikrosistema

Realizacija naredbe registarskog prenosa r 1 ← r 1 + r 2 Arhitektura mikrosistema

Realizacija naredbe registarskog prenosa r 1 ← r 1 + r 2 Arhitektura mikrosistema

Šta ako više naredbi registarskog prenosa imaju isti odredišni registar ? MUX r 1

Šta ako više naredbi registarskog prenosa imaju isti odredišni registar ? MUX r 1 ← 1 r 1 ← r 1 + r 2 r 1 ← r 1 + 1 r 1 ← r 1 Bira narebu koja će se izvršiti Staza podataka Arhitektura mikrosistema

Paralelno izvršenje operacija Izračunavanje koje treba realizovati u hardveru Promenljive postaju registri, a programske

Paralelno izvršenje operacija Izračunavanje koje treba realizovati u hardveru Promenljive postaju registri, a programske naredbe postaju naredbe registarskog prenosa x y y y x ciklus ciklus = = = A; B; x + y; y + 1; x + 1; 1: 2: 3: 4: 5: rx ry ry ry rx ← ← ← A; B; rx + ry; ry + 1; rx + 1; U hardveru je dopušteno paralelno izvršenje međusobno nezavisnih operacija ciklus 1: rx ← A; ry ← B; ciklus 2: ry ← rx + ry; ciklus 3: ry ← ry + 1; rx ← rx + 1; Arhitektura mikrosistema Pralelizacija dovodi do ubrzanja rada

Staza podataka ciklus 1: rx ← A; ry ← B; ciklus 2: ry ←

Staza podataka ciklus 1: rx ← A; ry ← B; ciklus 2: ry ← rx + ry; ciklus 3: ry ← ry + 1; rx ← rx + 1; Arhitektura Staza podataka nijemikrosistema dovoljna !

Upravljačka jednica ciklus 1: rx ← A; ry ← B; ciklus 2: ry ←

Upravljačka jednica 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 Arhitektura mikrosistema Opisuje se u vidu konačnog automata

Blok dijagram RTL sistema Sprovodi algoritam: U svakom taktnom ciklusu bira operacije koje će

Blok dijagram RTL sistema 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: Registre Funkcionalne jedinice Multipleksere i Veze Arhitektura mikrosistema

Primer složene staze podataka U svakom taktnom ciklusu može da obavi nekoliko od više

Primer složene staze podataka U svakom taktnom ciklusu može da obavi nekoliko od više različitih naredbi registarskog prenosa Višefunkcionalne jedinice Arhitektura mikrosistema Selekcioni signali i tatkni signal nisu prikazani

ASMD dijagram (ASM + Data patah) ASM dijagram: definiše rad upravljačke jedinice start, z,

ASMD dijagram (ASM + Data patah) ASM dijagram: definiše rad upravljačke jedinice start, z, a 0 - ulazni signali ia, eb, rdy - izlazni signali ASMD dijagram: Sadrži naredbe registarskog prenosa definiše rad celog sistema (upravljačka Arhitektura mikrosistema jedinica + staza podataka)

Odložena dodela y je signal koji je aktivan za sve vreme dok je sistem

Odložena dodela y je signal koji je aktivan za sve vreme dok je sistem u stanju S 1 y je neaktivan. Kao da piše: y=´ 0´ r 1 zadržava (memoriše) tekuću vrednost. Kao da piše: r 1←r 1 U toku stanja S 1 izračunava se r 1+r 2, ali se upis u r 1 vrši tek sledećom ivicom takta, onda kada sistem prelazi u S 2 ! Arhitektura mikrosistema

Pristupi projektovanju o Dva pristupa rešavanju problema: n n ¨odozdo-naviše¨ (bottom-up) ¨odozgo-naniže¨ (top-down) Arhitektura

Pristupi projektovanju o Dva pristupa rešavanju problema: n n ¨odozdo-naviše¨ (bottom-up) ¨odozgo-naniže¨ (top-down) Arhitektura mikrosistema

Projektovanje ¨odozdo-naviše¨ o ¨Odozdo-naviše¨ (bottom-up) n n Projektant rešava izdvojene detalje celokunog problema koje

Projektovanje ¨odozdo-naviše¨ o ¨Odozdo-naviše¨ (bottom-up) n n 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 Komponenta Arhitektura mikrosistema Interfejs

Projektovanje ¨odozgo-naniže¨ o Projektant započinje rad na problemu razradom globalnog plana n n n

Projektovanje ¨odozgo-naniže¨ o Projektant započinje rad na problemu razradom globalnog plana n n n o 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 n n 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 o Faze n n n Opis ponašanja (sistem koja

Projektovanje ¨odozgo-naniže¨ - faze projektovanja o Faze n n n 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 o o o Najvažnija faza celokupnog procesa projektovanja Sistem koja se projektuje

Opis ponašanja o o o 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 o o Interfejs (značenje reči) - mesto na kome se

Opis ponašanja - Interfes o o 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 o Dva tipa ulaznih i izlaznih informacija: n Upravljački i

Opis ponašanja - Interfejs o Dva tipa ulaznih i izlaznih informacija: n Upravljački i statusni signali (najčešće jednobitni signali) o o o n 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 o o Ulazni podaci - informacija koju sistem treba da obradi Izlazni podaci - rezultat obrade Arhitektura mikrosistema

Interfes - Primer (Sekvencijalni delitelj) o o o Pre aktiviranja upravljačkog ulaza start (start=1)

Interfes - Primer (Sekvencijalni delitelj) o o o 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 Statusni izlaz Spada u specifiakciju interfejsa Upravljački ulaz Ulazi podataka Arhitektura mikrosistema Izlaz podataka

Interfes - Primer (Handshake interfejs ) o Handshake - način koordinacije dva podsistema putem

Interfes - Primer (Handshake interfejs ) o Handshake - način koordinacije dva podsistema putem dva signala: n n req (request - zahtev) i ack (acknowladge - potvrda) Arhitektura mikrosistema

Interfes - Primer (Handshake interfejs ) Predajnik Arhitektura mikrosistema Prijemnik

Interfes - Primer (Handshake interfejs ) Predajnik Arhitektura mikrosistema Prijemnik

Konverzija algoritma u ASMD dijagram Osnova za hardversko rešenje Osnova za softversko rešenje datog

Konverzija algoritma u ASMD dijagram Osnova za hardversko rešenje Osnova za softversko rešenje datog problema B = 0; while(A≠ 0) do if(A 0 = 1) then B = B + 1; end if; A = A >> 1; end while; 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 Softverski blok naredbi sekvencijalno izvršenje ASMD - sve naredbe u bloku

Paralelizacija sekvencijalnog kôda 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 Arhitektura mikrosistema ASMD Optimalno rešenje Nezavisne naredbe u paraleli

Konverzija algoritma u (sekvencijalni) ASMD dijagram o Algoritam je teže predstaviti u obliku ASMD

Konverzija algoritma u (sekvencijalni) ASMD dijagram o Algoritam je teže predstaviti u obliku ASMD dijagrama nego u obliku softverskog pseudo koda. n o => Opis ponašanja digitalnog sistema tipično počinje kreiranjem softverskog algoritma, koji se potom konvertuje u ekvivalentni ASMD dijagram Pravila za konverziju: n Svaka naredba dodele iz softverskog algoritma prevodi se u naredbu registarskog prenosa koja se smešta u zaseban blok stanja ASMD dijagrama. n 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 Bez TEST, ispitivanje r

Primer direktne konverzija algoritma u ASMD dijagram - sekvencijalni delitelj Bez TEST, ispitivanje r 1>=y koristilo bi staru vrednost r 1 !!! r 1 = x; r 2 = 0; while (r 1 >= y) { r 2 = r 2 + 1; r 1 = r 1 – y; } Izlaz iz r 2 Arhitektura mikrosistema

ASM dijagram sekvencijalnog delitelja Optimizacija (eliminacija stanja TEST) 4+3 q 3+2 q Arhitektura mikrosistema

ASM dijagram sekvencijalnog delitelja Optimizacija (eliminacija stanja TEST) 4+3 q 3+2 q Arhitektura mikrosistema

ASM dijagram sekvencijalnog delitelja Optimizacija (eliminacija stanja INIT) Algoritmaski ispravno. Problem u korisničkom interfejsu:

ASM dijagram sekvencijalnog delitelja Optimizacija (eliminacija stanja INIT) Algoritmaski ispravno. Problem u korisničkom interfejsu: rezultat (u r 2) je dostupan za očitavanje samo 1 taktni ciklus Arhitektura mikrosistema

ASM dijagram sekvencijalnog delitelja Optimizacija (eliminacija stanja INIT) Uvodi se još jedan registar (r

ASM dijagram sekvencijalnog delitelja Optimizacija (eliminacija stanja INIT) Uvodi se još jedan registar (r 3) koji čuva rezultat 2+3 q Šta ako je količnik 0 ? Arhitektura mikrosistema

ASM dijagram sekvencijalnog delitelja Optimizacija (Paralelizacija petlje) Neuspešni pokušaji Preuranjen upis u r 3

ASM dijagram sekvencijalnog delitelja Optimizacija (Paralelizacija petlje) Neuspešni pokušaji Preuranjen upis u r 3 Arhitektura mikrosistema

ASM dijagram sekvencijalnog delitelja Optimizacija (Paralelizacija petlje) 2+q Stanje C 123 se izvršava jedanput

ASM dijagram sekvencijalnog delitelja Optimizacija (Paralelizacija petlje) 2+q Stanje C 123 se izvršava jedanput više, ali se zato u r 3 upisuje jadnput manje Arhitektura mikrosistema

ASM dijagram sekvencijalnog delitelja Optimizacija (Eliminacija stanja N 3) 2+q Arhitektura mikrosistema

ASM dijagram sekvencijalnog delitelja Optimizacija (Eliminacija stanja N 3) 2+q Arhitektura mikrosistema

ASM dijagrami Milijevog tipa Uslovne operacije Vre Stanje Signali i promenljive 0. 0 ZELENO

ASM dijagrami Milijevog tipa Uslovne operacije 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 … … … Arhitektura mikrosistema

ASM dijagram sekvencijalnog delitelja Milijeva verzija (Eliminacija stanja INIT) Umesto da uvedemo r 3

ASM dijagram sekvencijalnog delitelja Milijeva verzija (Eliminacija stanja INIT) Umesto da uvedemo r 3 Problem s preranim brisanjem r 2 u stanju PASIVNO Arhitektura mikrosistema r 2 se resetuje u stanju PASIVO, pod uslovom ako je start=1

ASM dijagram sekvencijalnog delitelja Milijeva verzija (Spajanje stanja C 1 i C 2) Arhitektura

ASM dijagram sekvencijalnog delitelja Milijeva verzija (Spajanje stanja C 1 i C 2) Arhitektura mikrosistema r 2 se inkrementira jedanput više

ASM dijagram sekvencijalnog delitelja Milijeva verzija (Spajanje stanja C 1 i C 2) 2+q

ASM dijagram sekvencijalnog delitelja Milijeva verzija (Spajanje stanja C 1 i C 2) 2+q Arhitektura mikrosistema

ASM dijagram sekvencijalnog delitelja Milijeva verzija (Ranije postavljanje signala rdy) 2+q takta i 2

ASM dijagram sekvencijalnog delitelja Milijeva verzija (Ranije postavljanje signala rdy) 2+q takta i 2 registra Arhitektura mikrosistema

Razrada o o Cilj da polazni problem, prethodno precizno opisan ASM dijagramom, podeliti na

Razrada o o Cilj da polazni problem, prethodno precizno opisan ASM dijagramom, podeliti na dva dela: staza podataka n n o registri za čuvanje vrednosti promenljivih; kombinaciona logika za obavljanje izračunavanja iz naredbi registarskog prenosa i relacija. upravljačku jedinicu - sprovodi algoritam Arhitektura mikrosistema

Projektovanje staze podataka r 1 ← x r 1 ← r 1 -y r

Projektovanje staze podataka r 1 ← x r 1 ← r 1 -y r 2 ← 0 registar + oduzimač brojač r 2 ← r 2 + 1 r 3 ← r 2 registar r 1 >= y komparator Arhitektura mikrosistema

Projektovanje staze podataka (metodička staza podataka) r 1 ← x r 1 ← r

Projektovanje staze podataka (metodička staza podataka) r 1 ← x r 1 ← r 1 -y r 2 ← 0 registar + oduzimač brojač r 2 ← r 2 + 1 r 3 ← r 2 registar r 1 >= y komparator r 1 ← x (muxctrl=0, ldr 1=1) r 1 ← r 1 -y (muxctrl=1, ldr 1=1) r 2 ← 0 (clrr 2=0) r 2 ← r 2 + 1 (incr 2=1) r 3 ← r 2 (ldrr 3=1) r 1 >= y (r 1 gey) Arhitektura mikrosistema

Projektovanje upravljačke jedinice r 1 ← x (muxctrl=0, ldr 1=1) r 1 ← r

Projektovanje upravljačke jedinice r 1 ← x (muxctrl=0, ldr 1=1) r 1 ← r 1 -y (muxctrl=1, ldr 1=1) r 2 ← 0 (clrr 2=1) r 2 ← r 2 + 1 (incr 2=1) r 3 ← r 2 (ldrr 3=1) r 1 >= y (r 1 gey) Arhitektura mikrosistema

Upravljačka jedinica (strukturna varijanta ASM dijagrama) Arhitektura mikrosistema

Upravljačka jedinica (strukturna varijanta ASM dijagrama) Arhitektura mikrosistema

Staza podataka zasnovana na ALU sekvencijalna staza podataka Na osnovu sekvencijanog ASMD Arhitektura mikrosistema

Staza podataka zasnovana na ALU sekvencijalna staza podataka Na osnovu sekvencijanog ASMD Arhitektura mikrosistema Manja hardverska složenost, ali po cenu dužeg vremena izvršenja

Staza podataka zasnovana na ALU sekvencijalna staza podataka Neoptimizovana ALU Arhitektura mikrosistema Optimizovana ALU

Staza podataka zasnovana na ALU sekvencijalna staza podataka Neoptimizovana ALU Arhitektura mikrosistema Optimizovana ALU

Realizacija o o o Kreiranje VHDL opisa Simulacija Sinteza Arhitektura mikrosistema

Realizacija o o o Kreiranje VHDL opisa Simulacija Sinteza Arhitektura mikrosistema

Kreiranje VHDL opisa (organizacija projekta) delitelj. vhd datapath. vhd control. vhd Arhitektura mikrosistema

Kreiranje VHDL opisa (organizacija projekta) delitelj. vhd datapath. vhd control. vhd Arhitektura mikrosistema

Kreiranje VHDL opisa (datapath. vhd) Tri procesa Arhitektura mikrosistema

Kreiranje VHDL opisa (datapath. vhd) Tri procesa Arhitektura mikrosistema

Kreiranje VHDL opisa (control. vhd) Arhitektura mikrosistema

Kreiranje VHDL opisa (control. vhd) Arhitektura mikrosistema

Kreiranje VHDL opisa (delitelj. vhd) Arhitektura mikrosistema

Kreiranje VHDL opisa (delitelj. vhd) Arhitektura mikrosistema

Sekvencijalni brojač jedinica o Brojač jedinica (bit_counter) je kolo koje određuje broj 1 -ca

Sekvencijalni brojač jedinica o Brojač jedinica (bit_counter) je kolo koje određuje broj 1 -ca u ulaznom binarnom vektoru Arhitektura mikrosistema

Sekvencijalni brojač jedinica Algoritam o o o o B = 0; while(A≠ 0) do

Sekvencijalni brojač jedinica Algoritam o o o o B = 0; while(A≠ 0) do if(A 0 = 1) then B = B + 1; end if; A = A >> 1; end while; A, B => reg. A, reg. B Arhitektura mikrosistema

Sekvencijalni brojač jedinica Interfejs Arhitektura mikrosistema

Sekvencijalni brojač jedinica Interfejs Arhitektura mikrosistema

Sekvencijalni brojač jedinica Konverzija algoritma u ASM o o o o B = 0;

Sekvencijalni brojač jedinica Konverzija algoritma u ASM o o o o B = 0; while(A≠ 0) do if(A 0 = 1) then B = B + 1; end if; A = A >> 1; end while; Arhitektura mikrosistema

Sekvencijalni brojač jedinica Analiza ASM Za a = 0101 CLK START Tekuce stanje reg.

Sekvencijalni brojač jedinica Analiza ASM Za a = 0101 CLK START Tekuce stanje reg. A reg. B Sledece stanje 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 Arhitektura mikrosistema

Sekvencijalni brojač jedinica Optimizacja: stanje INCR pripojeno stanju TEST CLK START Tekuce stanje reg.

Sekvencijalni brojač jedinica Optimizacja: stanje INCR pripojeno stanju TEST CLK START Tekuce stanje reg. A reg. B Sledece stanje 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č jedinica Optimizacja: spajanje stanja TEST i SHIFT Arhitektura mikrosistema

Sekvencijalni brojač jedinica Optimizacja: spajanje stanja TEST i SHIFT Arhitektura mikrosistema

Sekvencijalni brojač jedinica Optimizacja: spajanje stanja TEST i SHIFT CLK START Tekuce stanje reg.

Sekvencijalni brojač jedinica Optimizacja: spajanje stanja TEST i SHIFT CLK START Tekuce stanje reg. A reg. B Sledece stanje 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č jedinica Optimizacja: ranije postavljanje signala rdy CLK START Tekuce stanje reg. A

Sekvencijalni brojač jedinica Optimizacja: ranije postavljanje signala rdy CLK START Tekuce stanje reg. A reg. B Sledece rdy stanje 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č jedinica Razrada reg. A ← reg. A >> 1 Pomerački registar sa

Sekvencijalni brojač jedinica Razrada reg. A ← reg. A >> 1 Pomerački registar sa paralelnim upisom reg. A ≠ 0 n-ulazno ILI kolo reg. B ← 0 Brojač sa sinhronim resetom reg. B ← reg. B +1 Arhitektura mikrosistema

Sekvencijalni brojač jedinica Razrada - staza podataka reg. A ← a (la=1, ea=1) reg.

Sekvencijalni brojač jedinica Razrada - staza podataka reg. A ← a (la=1, ea=1) reg. A ← reg. A >> 1 (la=0, ea=1) reg. A ≠ 0 (signal z) reg. B ← 0 (lb=eb=1) reg. B ← reg. B +1 (lb=0, eb=1) Arhitektura mikrosistema

Sekvencijalni brojač jedinica Razrada - ASM dijagram upravljačke jedinice reg. A ← a (la=1,

Sekvencijalni brojač jedinica Razrada - ASM dijagram upravljačke jedinice reg. A ← a (la=1, ea=1) reg. A ← reg. A >> 1 (la=0, ea=1) reg. A ≠ 0 (signal z) reg. B ← 0 (lb=eb=1) reg. B ← reg. B +1 (lb=0, eb=1) Arhitektura mikrosistema

Sekvencijalni brojač jedinica Realizacija - VHDL opis staze podataka procesi ENTITY datapath IS PORT(a

Sekvencijalni brojač jedinica Realizacija - VHDL opis staze podataka 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; a 0, z : OUT STD_LOGIC; clk : IN STD_LOGIC; rst : IN STD_LOGIC); END datapath; Arhitektura mikrosistema

Sekvencijalni brojač jedinica Realizacija - VHDL opis upravljačke jedinice ENTITY control IS PORT(start: IN

Sekvencijalni brojač jedinica Realizacija - VHDL opis upravljačke jedinice ENTITY control IS PORT(start: IN STD_LOGIC; rdy : OUT STD_LOGIC; z, a 0 : IN STD_LOGIC; la, ea, lb, eb : OUT STD_LOGIC; clk : IN STD_LOGIC; rst : IN STD_LOGIC); END control; Arhitektura mikrosistema

Sekvencijalni brojač jedinica Realizacija - VHDL opis sek. brojača jedinica ENTITY bit_counter IS PORT(a

Sekvencijalni brojač jedinica Realizacija - VHDL opis sek. brojača jedinica 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; Arhitektura mikrosistema

Sekvencijalni brojač jedinica Simulacija Arhitektura mikrosistema

Sekvencijalni brojač jedinica Simulacija Arhitektura mikrosistema

Sekvencijalni delitelj (ubrzani algoritam) “Ručno” deljenje Pomeranje/ oduzimanje Traje n taktnih ciklusa Arhitektura mikrosistema

Sekvencijalni delitelj (ubrzani algoritam) “Ručno” deljenje Pomeranje/ oduzimanje Traje n taktnih ciklusa Arhitektura mikrosistema

Algoritam Generiše bitove količnika, Qc, počev od bita najmanje težine Serijski upis jedinice Prikupljanje

Algoritam Generiše bitove količnika, Qc, počev od bita najmanje težine Serijski upis jedinice Prikupljanje bitova količnika u pomeračkom registru Serijski upis nule Arhitektura mikrosistema Zamena for petlje dowhile petljom

Funkcionalni ASM dijagram Arhitektura mikrosistema

Funkcionalni ASM dijagram Arhitektura mikrosistema

Razrada - komponente B←b Registri: A←a B - prihvatni registar C ← n-1 A

Razrada - komponente B←b Registri: A←a B - prihvatni registar C ← n-1 A - pomerački registar sa paralelnim upisom R← 0 C - brojač osnove n sa paralelnim upisom (R, A) ← (R, A) << 1 R - pomerački registar sa paralelnim upisom Q ← (Q << 1)1 Q - pomerački registar Q ← (Q << 1)0 R←R-B C←C-1 Arhitektura mikrosistema

Razrada - funkcionalne jedinice R←R-B C>0 (R i B su označeni brojevi u dvojičnom

Razrada - funkcionalne jedinice R←R-B C>0 (R i B su označeni brojevi u dvojičnom komplementu) Isto što i C ≠ 0 R≤B Umesto komparatora, koristimo izlazni prenos sabirača Arhitektura mikrosistema

Razrada - staza podataka Arhitektura mikrosistema

Razrada - staza podataka Arhitektura mikrosistema

Realizacija naredbi registarskog prenosa B←b eb = 1 A←a ea = 0, la =

Realizacija naredbi registarskog prenosa B←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 jedinice Arhitektura mikrosistema

ASM dijagram upravljačke jedinice Arhitektura mikrosistema

Realizacija - komponente COMPONENT shift IS GENERIC (N : INTEGER); PORT (si, ld, ena,

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); Arhitektura mikrosistema END COMPONENT;

Realizacija - staza podataka i upravljačka jedinica Arhitektura mikrosistema

Realizacija - staza podataka i upravljačka jedinica Arhitektura mikrosistema