Arhitektura mikrosistema Smer: Mikroelektronika Semestar: IX Fond: 2 + 2 + 0 Predmetni nastavnik: Goran Lj. Đorđević Konsultacije: kabinet 1ž (u prizemlju)
Arhitektura mikrosistema Sadržaj: Principi projektovanja digitalnih sistema Reprezentacija dizajna Proces projektovanja CAD alati Logičko projektovanje Bulova algebra i minimizacija prekidačkih funkcija Tehnološko mapiranje Komponente digitalnih sistema Kombinacione komponente (ALU, dekoderske mreže, komparatori, pomerači i rotatori) Sekvencijalne komponente (leč kola i flip-flopovi, memorijske komponente, konačni automati) ASM dijagrami (projektovanje mikroarhitektura) ASM dijagrami Opis ponašanja, razrada i realizacija Sinteza staze podataka (sinteza visokog nivoa) Dodela registara, funkcionalnih jedinica, magistrala Protočnost, ulančavanje funkc. Jedinica, usitnjavanje ciklusa Raspoređivanje operacija
Ispit Završni ispit (test pitanja i zadaci - 10 pitanja i kraćih zadataka) Poena Ocena 60 - 67 6 68 - 75 7 76 - 83 8 84 - 91 9 92 -100 10
Moore-ov zakon
Moore-ov zakon na primeru Intel-ovih mikroprocesora 4004 8008 8080 8085 8086 286 386 486 Pentium® proc P6 0.001 0.01 0.1 1 10 100 1000 1970 1980 1990 2000 2010 Year Transistors (MT) 2X growth in 1.96 years!
Moore-ov zakon - Minimalna širina linija -
Moore-ov zakon - Površina čipa -
Moore-ov zakon - Broj slojeva (foto-litografskih maski) -
Moore-ov zakon - Troškovi fabrikacije -
Moore-ov zakon - Gustina defekata -
Moore-ov zakon - Cena ˝po čipu˝ -
Problem: Disipacija toplote
Problem produktivnost projektovanja 10,000 1,000 100 10 1 0.1 0.01 0.001 100,000 (M) Logic Tr./Chip 10,000 Tr./Staff Month. 1,000 58%/Yr. compounded Complexity 100 Complexity growth rate (K) Trans./Staff - Mo. Productivity Logic Transistor per Chip 10 x x 1 x x 21%/Yr. compound x x x Productivity growth rate x 0.1 0.01 2003 1981 1983 1985 1987 1989 1991 1993 1995 1997 1999 2001 2005 2007 2009
Razvoj New Applications More Performance Performance
Nove primene ˝embedded˝ uređaji
Tendovi 2003 2004 2005 2006 2007 2010 2013 2016 Line (um) 107 90 80 70 65 45 32 22 Gate (um) 53 40 35 25 18 13 Vdd (V) 1.0 0.9 0.7 0.6 0.5 0.4 P (W) 150 160 180 190 218 251 288 Transistors/chip (mil.) 153 193 243 307 386 773 1546 3092 Cost/transistor (microcent) 49 34 24 17 12 4.3 1.54 0.53 Internal Freq. (GHz) 3 4 5.17 5.63 6.73 11.5 19.35 28.7
Principi digitalnog projektovanja Reprezentacija dizajna Nivoi apstrakcije Proces projektovanja CAD alati
VLSI danas Implementacione tehnogije (ASIC, FPGA) Metodologija projektovanja (VHDL) CAD alati
Reprezentacija dizajna (domeni projektovanja) Bihejvioralna ili funkcionalna reprezentacija – opisuje funkcionalnost, ali ne i realizaciju konkretnog dizajna. Sistem je crna kutija, sa poznatim ulazima, izlazima i ponašanjem. Ništa se ne kazuje o unutrašnjosti crne kutije. (Šta sistem radi?) Strukturna reprezentacija – opisuje sistem kao skup komponenti i njihovih veza.(Od čega se sistem sastoji?) Fizička reprezentacija – opisuje fizičke karakteristike sistema, npr. dimenzije i pozicije sastavinih kompnenti i njihovih veza. (Kako je sistem napravljen?)
Funkcionalni domen Funkcionalni ili bihejvioralni domen Opis ponašanja sistema u funkciji ulaza i proteklog vremena. Daje odgovor na pitanje: Šta ili kako sistem radi? Definiše algoritam rada sistema i interfejs sistema i okruženja. Rezultat - funkcionalna reprezentacija u obliku: dijagrama toka, programa u višem programskom jeziku, opisa u HDL-u, matematičke formule, grafikona ... Funkcionalni (ili bihejvioralni) domen je onaj u kome se na sistem gleda kao na crnu kutiju, a projektant je fokusiran na opis ponašanja sistema u funkciji ulaza i proteklog vremena. Drugim rečima, projektant opisuje šta sistema radi (treba da radi), ali ne i kako sistem treba realizovati. Cilj je definisati odziv sistema na bilo koju kombinaciju vrednosti ulaznih promenljivih. Projektanti se bave razradom algoritma rada sistema i definišu kako sistem interaguje sa svojim okruženjem. Rezultat projektovanja je funkcionalna reprezentacija sistema, koja može biti data u obliku dijagrama toka, programa u višem programskom jeziku, opisa u jeziku za opis hardvera, matematičke formule, grafikona i sl.
Strukturni domen Razlaže sistem na skup komponenti i njihovih veza. Daje odgovor na pitanje: Kako pomoću raspoloživih komponenti realizovati sistem date funkcije? Rezultat – strukturna reprezentacija u vidu: blok dijagrama, šematskog prikaza, netliste... Strukturni domen je onaj u kome se sistem razlaže na skup komponenti i njihovih veza. Projektovanje treba da da odgovor na pitanje: kako pomoću raspoloživih komponenti realizovati sistema koji će ostvariti zadatu funkciju. Rezultat projektovanja je strukturna reprezentacija sistema koja može biti data u obliku blok dijagrama koji prikazuje komponente sistema i njihove veze, šematskog prikaza mreže logičkih kola, ili mreže tranzistora.
Fizički domen Definiše fizičke karakteristike sistema (dimenzije i poziciju komponenata iz strukturnog opisa) Bavi se fizičkim raspoređivanjem i povezivanjem komponenti. Rezultat – fizička reprezentacija u obliku: layouta čipa, mehaničkih crteža, crteža štampane ploče... Konačni produkt projektovanja na osnovu koga se može direktno realizovati sistem ili fabrikovati čip. Konačno, fizička domen je onaj u kome se definišu fizičke karakteristike sistema, koje se odnose na dimenzije i poziciju svake pojedinačne komponente i veze sadržane u strukturnom opisu. Projektovanje u ovom domenu polazi od strukturne reprezentacije, a bavi se fižičkim raspoređivanjem i povezivanjem komponenti. Rezultat projektovanja je fizička reprezentacija sistema u obliku layout-a čipa, mehaničkih crteža ili crteža štampane ploče. Fizička reprezentacija predstavlja konačni produkt projektovanja u obliku proizvodne dokumentacije na osnovu koje se može direktno realizovati sistem ili ili fabrikovati čip
Funkcionalni domen (šta sistem radi)
Strukturni domen (sistem razložen na komponente)
Fizički domen (kako je sistem napravljen)
Primer: Projektovanje jednostavnog elektronskog budilnika Problem: Razviti bihejvioralnu, strukturnu i fizičku reprezentaciju projekta jednostavnog elektronskog budilnika. Rešenje: Specifikacija sistema (polazni zahtevi): Elektonski budilnik se sastoji od displeja sa tečnim kristalom (LCD) koji pokazuje sekunde, minute i sate i pet prekidača koji se koriste za: podešavanje tekućeg vremena (S1), podešavanje vremena alarma, tj. zvonjenja (S2), podešavanja minuta (S3), podešavanja sati (S4) i dozvole zvonjenja (S5). Kada je S1 zatvoren, omogućeno je podešavanje vremena pomoću prekidača S3 i S4. Svaki pritisak na S3 ili S4 uvećava minute ili sate za 1, što se može pratiti na displeju. Kada je S2 zatovoren, na sličan način pomoću prekidača S3 i S4, omogućeno je podešavanje vremena buđenja. U toku ovog podešavanja na displeju je prikazano vreme buđenja. Konačno, kada je S5 zatvoren, budilnik je aktiviran, a onda kada sat dostigne vreme buđenja emituje se jednoličan zvučni signal u trajanju od 5s.
Bihejvioralna reprezentacija elektronskog budilnika: proces sat - opisuje kako radi sat -
Bihejvioralna reprezentacija elektronskog budilnika: proces podešavanje - opisuje kako se podešava vreme -
Bihejvioralna reprezentacija elektronskog budilnika: proces zvono - opisuje uslove za aktiviranje zvona -
Strukturna reprezentacija elektronskog budilnika
Fizička reprezentacija elektronskog budilnika: (a) izgled prednje ploče; (b) izgled štampane ploče.
Proces projektovanja (glavne faze) Proces projektovanja elektronskih uređaja, a posebno digitalnih sistema, uvek prolazi kroz tri faze koje su pozicionirane oko tri glavne reprezentacije: Razvoj bihejvioralne reprezentacije koja definiše funkcionalnost proizvoda Prevođenje bihejvioralne reprezentacije u strukturnu koja sadrži komponente iz raspoložive biblioteke komponenti Razvoj fizičke reprezentacije koja opisuje kako sklopiti i fabrikovati proizvod
Nivoi apstrakcije Projektovanje elektronskih sistema se može obavljati na nekoliko različitih nivoa apstrakcije ili nivoa detaljnosti, gde je svaki nivo definisan tipom gradivnih elemenata (komponenti) koji se u njemu koriste. U opštem slučaju, kod elektronskih sistema mogu se identifikovati sledeća četiri nivoa apstrakcije, počev od najnižeg: nivo tranzistora, nivo gejtova, registarski nivo i nivo procesora
Nivoi apstrakcije Nivo apstrakcije Bihejvioralna reprezentacija Strukturne komponente Fizički objekti Tranzistorski nivo Diferencijalne jednačine, U-I Dijagrami Tranzistori, otpornici, kondenzatori Analogne i digitalne ćelije Nivo gejtova Logičke funkcije, konačni automati Logička kola, flip- flopovi Moduli, funkcionalne Jedinice Registarski nivo (RTL) Algoritmi, dijagrami toka, ASM dijagrami Sabirači, komparatori, registri, brojači, multiplekseri Čipovi Sistemski Izvršna specifikacija, programi Procesori, kontroleri, memorije, ASIC kola Štampane ploče, mikročip-moduli Glavne komponente nivoa gejtova su logička kola i flip-flopovi. Logička kola ili gejtovi su specijalizovanja elektronska kola koja obavljaju logičke operacije. Flip-flopovi su osnovni memorijski elementi koji su u stanju da pamte jedan bit informacije koji uzima jednu od dve vrednosti: 0 (netačno, ne) ili 1 (tačno, da). Gejtovi i flip-flopovi su primeri tipičnih digitalnih ćelija koje imaju ulaze i izlaze na svojim obodima. Ove ćelije se grupišu, raspoređuju po silicijumskoj povišini i međusobno povezuju tako da čine aritmetičke i memorijske module ili jedinice, koje se dalje koriste kao bazične komponente na registarskom nivou apstrakcije. Bihejvioralni opis registarskih modula, realizovanih pomoću logičkih kola i flip-flopova, se predstavlja u obliku logičkih funkcija ili dijagrama konačnih automata. Glavne komponente registarskog nivoa su aritmetičke i registarske jedinice, kao što su sabirači, komparatori, množači, brojači, registri, registarski fajlovi. Na fizičkom nivou, svaka od ovih komponenti je makro-ćelija ili jedinica koja ima fiksne dimenzije, fiksno propagaciono kašnjenje i fiksnu poziciju ulaz i izlaza raspoređenih po obodu. Registarske komponente mogu se rasporediti i povezati tako da čine IC, koji se koriste kao osnovne komponente na sledećem višem nivou apstrakcije. U opštem slučaju, IC se opisuju dijagramima toka, ASM dijagramima, tabelama stanja, opisom u jeziku za opis hardvera (VHDL). Nivo procesora je najviši nivo apstrakcije, s obzirom da su osnovne komponente na ovom nivou procesori, memorijska kola i aplikaciono-specifična integrisana kola (ASIC). U opštem slučaju, jedna ili više ovih komponenti se postavlja na štampanu ploču i povezuje metalnim vezama koje su odštampane na ploči. U nekim slučajevima, dimenzije ploče se mogu smanjiti ako se za povezivanje čipova, umesto štampane ploče, koristi silicijumski substrat. Takav način pakovanja mikročipova se zove mikročip modul (MCM – MicroChip Module). Sistem koji je sačinjen od procesorskih komponenti obično se opisuje tekstualno, izvršnom specifikacijom napisanom u jeziku za opis hardvera ili algoritmom ili programom napisanim u višem programskom jeziku (npr. C).
Y dijagram Domeni projektovanja i nivoi apstrakcije se mogu vizuelno prikazati u obliku tzv. Y dijagrama (Sl. 3‑1). Ose odgovaraju domenima projektovanja, a kružnice nivoima apstrakcije. U preseku kružnica i osa nalazimo glavne komponente ili oblike reprezentacije koji se koriste na odgovarajućem nivou apstrakcije u datom domenu projektovanja.
Proces projektovanja (detaljnije) Projektovanje: niz koraka koji su neophodni da bi se polazni koncept nekog proizvoda pretočio u proizvodne crteže koji pokazuju kako napraviti taj proizvod. Faze (koraci) projektovanja: Specifikacija dizajna: opis funkcionalnosti proizvoda i opis interfejsa proizvoda prema okruženju u kome će proizvod raditi. Predstava u vidu blok dijagrama dopunjena tekstualnim opisom u prirodnom jeziku. Razvoj biblioteke komponenti: Proizvod može sadržati samo komponente (sastavne delove) iz raspoložive biblioteke komponenti. Komponente su projektovane, testirane i dokumentovane (spremne za korišćenje). Projektant ne mora da analizira strukturu komponenti, već se oslanja na njihovu specifikaciju, koja uključuje: Funkcionalnost komponente Fizičke dimenzije komponente Električna ograničenja Talasni oblici napona na ulazima i izlazima Modeli komponente
Proces projektovanja (nastavak) Sinteza dizajana: procedura konvertovanja specifikacije ili bihejvioralnog opisa u strukturni opis korišćenjem komponenti sa nižeg nivoa apstrakcije koje su uključene u raspoloživu biblioteku. Hijerarhijsko projektovanje (odozgo-naniže): Bihejvioralni opis deli na više blokova. Zatim se formira novi, strukturni opis podeljenih blokova i njihovih veza, zajedno sa bihejvioralnim opisom svakog bloka. Ovaj proces se iterativno nastavlja sve dok svakom bloku ne odgovara jedna komponenta iz ciljne biblioteke. Tipovi sinteze: Sinteza sistema: konvertuje specifikaciju proizvoda u strukturu komponenti sa procesorskog nivoa, kao što su procesori, memorije i ASIC kola Sinteza arhitekture: konvertuje algoritme, dijagrame toka ili skupove instrukcija u komponente sa registarskog nivoa, kao što su brojači, registri, sabirači i množači Sekvencijalna sinteza: transforimiše opis konačnih automata u mrežu gejtova i flip-flopova Logička sinteza: transformiše Bulove izraze u mrežu gejtova
Proces projektovanja (nastavak) Analiza dizajna: procena valjanosti dobijenog rešenja da li su polazni zahtevi zadovoljeni? da li postoji bolje rešenje? Mere kvaliteta: Cena proizvodnje – površina na čipu Performanse proizvoda – kašnjenje od ulaza do izlaza, taktni period, vreme izvršenja programa Testavilnost proizvoda - broj otkaza i broja test sekvenci koje su potrebne da bi se ovi otkazi otkrili Dokumentovanje dizjana: dokumentacija je namenjena korisniku. Sadrži bihejvioralnu i fizičku reprezentaciju, ali izostavlja detalje strukturne reprezentacije Proizvodnja: nije deo već cilj projektovanja. Zadatak proizvodnje je da na osnovu konačnih proizvodnih nacrta fabrikuje proizvod, sastavljanjem i odgovarajućim povezivanjem sastavnih delova.
CAD alati Alati za opis i modelovanje dizajna: Softverski alati za projektovanje pomoću računara. Mogu se svrstati u pet kategorija: Alati za opis i modelovanje dizajna: Grafički šematski editori: unos crteža električne šeme (opis strukture) Jezici za opis hardvera (VHDL, Verilog): omogućavaju opis strukture i opis ponašanja. Podrška projektovanju odozgo-naniže. Alati za sintezu: obavljaju automatsku konverziju bihejvioralnog u strukturni opis korišćenjem komponenti iz raspoložive biblioteke. Alati za logičku sintezu. Konvertuju Bulove jednačina u mreže gejtova, minimizujući pri tome broj gejtova, propagaciono kašnjenje, potrošnju ili neki drugi unapred postavljeni cilj. Alati za sekvencijalnu sintezu: sintetišu strukture koje sadrže memorijske elemente - konačni automati. Minimizuju broj memorijskih elemenata i kodiraju stanja i ulaze na način koji minimizuje ukupnu cenu (tj. hardversku složenost), minimizuju ulazno-izlazno kašnjenje i pojednostave Bulove jednačine. Alati za bihejvioralnu sintezu ili sintezu visokog nivoa: konvertuju aritmetičke izraze, skupove instrukcija ili algoritamske opise u registarsku strukturu, pri tome minimizujući veličinu mikročipa i vreme izvršenja.
CAD alati (nastavak) Alati za verifikaciju i simulaciju dizajna: Verifikacija: dokaz ekvivalentnosti dve različite reprezentacije (npr. bihejvioralne i strukturne) istog sistema. Simulacija: rad sistema se verifikuje samo za neki podskup ulaznih vrednosti tako što se na osnovu strukturne predstave dizajna, a korišćenjem modela strukturnih komponenti, generišu izlazne vrednosti i porede sa odgovarajućim skupom očekivanih izlaznih vrednosti koje slede na osnovu bihejvioralnog opisa. Alati za fizičko projektovanje: Alati za raspoređivanje: optimizuje raspored komponenti na štampanoj ploči ili ćelija i modula na mikročipu, tako da ukupna zauzeta površina bude minimalna. Alati za rutiranje: odrežuje pozicuju svake veze koja povezuje komponente dizajna, na način koji će minimizovati maksimalnu dužinu neke veze ili zbir dužina svih veza i pri tome optimizovati korišćenje nivoa za povezivanje na štampanoj ploči ili mikročipu Alati za testiranje: generisanje test sekvenci. Ovi alati olakšavaju posao projektanta prilikom pronalaženja skupa test vektora koji će pobuditi što je moguće veći broj putanja kroz sistem.
Mapa procesa projektovanja