Simulacija računalnih sklopova

  • Upload
    sm

  • View
    207

  • Download
    3

Embed Size (px)

DESCRIPTION

Bilješke

Citation preview

  • 1 | S i m u l a c i j a r a u n a l n i h s k l o p o v a b i l j e k e P M F - S p l i t

    Simulacija raunalnih sklopova biljeke

    Uvod

    Simulacijske tehnike se danas koriste u skoro svim aspektima istraivanja. Kod arhitekture raunala, simulacijske

    tehnike slue za testiranje novih postupaka i tehnologija. Pomou njih se promatra sustav i prati kako se izvodi

    odreeni dio izvrnog koda. Koristei simulacijske tehnike, skraeno je vrijeme izmeu ideje i finalnog proizvoda,

    jer je omogueno kontinuirano testiranje koritenjem simulatora.

    Posebnu ulogu imaju jezici za opis sklopovlja koji omoguuju veliku razinu apstrakcije, a samim time i veu

    fleksibilnost kod sklopovske implementacije.1 U dananje vrijeme brzog razvoja tehnologije, vrijeme potrebno za

    sam razvoj sve je krae. Da bi se ubrzalo vrijeme razvoja novog sklopovlja (engl. hardware), dizajneri koriste

    aplikacijske modele sklopovlja. Implementira se sklopovlje na temelju nekog aplikacijskog modela opisanog

    raznim programskim jezicima. Da bi se dobio rezultat, ti aplikacijski modeli se izvravaju koristei unaprijed

    definirane parametre i podatke.2 Takoer te modele koriste programeri koji razvijaju aplikacije za sklopovlje kako

    bi napisali, ali i testirali samu aplikaciju prije nego je sklopovlje proizvedeno. Time se bitno skrauje vrijeme

    potrebno za razvoja i aplikacija i sklopovlja. Takoer, omoguavaju se programerima uvid u samo izvravanje

    aplikacije, a time i lake otklanjanje greaka3

    Postoje i posebni programski jezici za opis sklopovlja (engl. hardware description language, HDL). HDL jezici

    spadaju u kategoriju programskih jezika koji omoguuju formalno opisivanje sklopovlja do u najsitnije detalje, do

    razine elektrinih krugova ili digitalne logike. Nakon opisa nekog sklopovlja HDL jezikom, mogue je simulirati

    sklopovlje nekim od simulatora ili isprogramirati FPGA procesor.

    FPGA (engl. Field programmable gate array) je integrirani sklop dizajniran da bude konfiguriran od strane kupca

    ili dizajnera. U elektronici, jezik za hardverski opis HDL (engl. hardware description language ) je bilo koji jezik iz

    klase programskih jezika za formalni opis elektronikih sklopova, takoer se sa jezikom za hardverski opis (HDL)

    mogu opisati i digitalni logiki sklopovi. Jezik za Hardverski opis se koristi za pisanje izvrne specifikacije pojedinih

    dijelova hardvera. Da biste definirali ponaanje FPGA korisnik koristi jezik HDL ili shematski dizajn. Najei HDL

    programski jezici su VHDL i Verilog, poto su ti programski jezici prilino sloeni njihova sloenost se pokuava

    smanjiti uvoenjem alternativnih jezika odnosno funkcija. Kako bi se pojednostavio dizajn sloenih sustava u

    FPGAs, postoje knjinice predefiniranih sloenih funkcije i sklopova koji su testirani i optimizirani za ubrzanje

    procesa dizajna. Unaprijed definirani krugovi obino se nazivaju IP jezgre, i mogu se dobiti od prodavaa FPGA.

    1 Davor Kobal, Pregled simulatora arhitekture raunala i sklopovlja

    2 S.A. Herrod, Using Complete Machine Simulation to Understand Computer System Behavior, doctoral dissertation, Stanford Univ., 1998.

    3 S. Onder and R. Gupta, Automatic generation of microarchitecture simulators in IEEE International Conference on Computer Languages,

    1998, paper, p. 80-89.

  • 2 | S i m u l a c i j a r a u n a l n i h s k l o p o v a b i l j e k e P M F - S p l i t

    FPGA arhitektura

    Iako svaki proizvoa FPGA koristi neku svoju specifinu FGPA arhitekturu,

    sve one u osnovi su varijacija arhitekture prikazane na slici

    Arhitekturu ine:

    a. logiki blokovi, rasporeeni u dvodimenzionalno polje;

    b. U/I blokovi, rasporeeni po obodu ipa i

    c. programabilna mrea sprege smjetena u kanalima

    izmeu logikih blokova.

    Logiki dijelovi slue za realizaciju logikih funkcija, mrea omoguava povezivanje logikih dijelova s ciljem

    kreiranja sloenijih funkcija, dok se putem U/I blokova ostvaruje povezanost internih resursa sa pinovima ipa.

    Dodatno, FPGA moe sadravati i razliite specijalizirane logike resurse, kao to su ALU jedince, RAM memorija,

    dekoderi i dr.

    Povijesno, FPGAs su sporiji, manje energetski uinkovitiji i openito tee je postii funkcionalnost u odnosu na

    ASIC (engl. Applicationspecific integrated circuit) tehnologiju.

    Prednost FPGA je u tome to posjeduje sposobnost nadogradnje funkcionalnosti nakon to se jednom

    isprogramira, tj. moemo raditi izmjene programskog koda ako to elimo u bilo kojem trenutku nakon upotrebe

    FPGA ipa. Prednosti FPGA tehnologije takoer ukljuuje krae vrijeme potrebno do stavljanja proizvoda na

    trite, te nie inenjerske trokove prilikom izrade FPGA. FPGA se moe koristiti za implementaciju bilo koje

    logike funkcije koju je mogao obavljati ASIC.

    FPGA tehnologija primjenjuje se u raznim podrujima kao na primjer, obrada digitalnih signala, svemirskim i

    obrambenim sustavima, ASIC prototipovima, bioinformatici, raunalnim sklopovima, radio astronomiji i mnogim

    drugim podrujima. Tradicionalno, FPGA je rezerviran za odreene primjene kod kojih je obujam proizvodnje

    sklopova vrlo malen.4

    4 FPGA Basics video: http://www.youtube.com/watch?v=L2wsockKwPQ

  • 3 | S i m u l a c i j a r a u n a l n i h s k l o p o v a b i l j e k e P M F - S p l i t

    Osnove logikog dizajna

    Kljuni postulat na kojem se temelji dizajn (oblikovanje) i funkcioniranje raunalnih sklopova je mogunost

    svoenja svih operacija koje se na njima izvravaju na logike operacije. Iz navedenog slijedi kako je osnovni

    element na kojem se temelji izgradnja ovakvih sklopova logika primitiva.

    Temeljne graevne jedinice, logike primitive

    Logika primitiva, odnosno komponenta koja implementira osnovne logike operacije. Digitalni sklopovi,

    openito, se sastoje od veeg broja logikih primitiva ili logikih vrata, koje su meusobno povezane na

    odgovarajui nain. Jedan od naina prezentacije veza je i shematski prikaz na kojem se logike primitive

    predstavljaju odgovarajuim, standardnim, simbolima,

    dok se veze meu njima predstavljaju crtama.

    Sinteza logikih funkcija

    Svaka logika primitiva, kao i svaka logika funkcija jednoznano je odreena tablicom istinitosti. Nisu sve logike

    primitive meusobno nezavisne, pa se npr. XOR moe izraziti preko preostale tri navedene na gornjoj slici. Izraz

    koji bi prikazao ovu navedenu injenicu zapisuje se kao:

    Provjera ispravnosti napisanog izraza provodi se konstruiranjem tablica istinitosti za lijevu i desnu stranu.

    Skup primitiva preko kojeg se mogu izraziti sve druge primitive naziva se logikom bazom pa za ovaj sluaj skup

    AND, OR i NOT predstavlja logiku bazu.

    Rezultat matematike logike je injenica da logike funkcije nisu jedinstvene, te je za danu funkciju uvijek mogue

    konstruirati neku drugu ekvivalentnu funkciju.

    Sada kada je sve tako jednostav no i jasno, izradimo jedan jednostavan primjer logikog sklopa.

  • 4 | S i m u l a c i j a r a u n a l n i h s k l o p o v a b i l j e k e P M F - S p l i t

    Osnovni logiki sklopovi

    Prilikom obavljanja razliitih zadataka raunalo neprekidno izvrava logike operacije. Koritenjem osnovnih

    zakona Booleove algebre moe se pokazati kako se sve logike operacije mogu pojednostavniti na negaciju,

    konjunkciju i disjunkciju. Posljedica primjene Booleove algebre je konstrukcija logikih sklopova koji vjerno

    oponaaju znaenje logikih operacija.

    Raunalo pamti samo 2 stanja (u govoru ima napona nema napona).

    Vano: mi samo prikazujemo ta stanja s 1 i 0 (binarni brojevni sustav).

    Osnovni logiki sklopovi oponaaju djelovanje osnovnih logikih operacija.

    1. Sklop NE (NOT) oponaa djelovanje negacije.

    2. Sklop I (AND) oponaa djelovanje konjunkcije.

    3. Sklop ILI (OR) oponaa djelovanje disjunkcije.

    Sloeni logiki sklopovi kreiraju se pomou osnovnih sklopova.

    ulaz A

    ulaz B izlaz AB

    ulaz A

    ulaz B izlaz A+B

    A B Z= AB

    0 0 0

    0 1 0

    1 0 0

    1 1 1

    A Z=

    0 1

    1 0

    A B Z=A*B

    0 0 0

    0 1 1

    1 0 1

    1 1 1

  • 5 | S i m u l a c i j a r a u n a l n i h s k l o p o v a b i l j e k e P M F - S p l i t

    Sloeni logiki sklopovi

    Sloeni logiki sklopovi prikazuju se pomou jednadbi, tablica istinitosti ili simbolikim prikazom. Svaki od

    navedenih primjera vaan je u konstrukciji sloenih sklopova npr. poluzbrajala.

    Primjer 1.:

    Jednadba sloenog logikog sklopa glasi BAY . Y je izlaz sklopa, a A i B su ulazi tog sloenog sklopa. Svaki

    operator u jednadbi predstavlja jedan osnovni logiki sklop koji moramo upotrijebiti. Zakljuak je ovaj sloeni

    sklop sastoji se od dva osnovna logika sklopa (ILI i NE). U poetku sklop moemo zamisliti kao na donjem crteu

    kutiju s dva ulaza i jednim izlazom.

    Sada moemo poeti s detaljima (kako je sklop stvarno realiziran).

    Ovaj sklop se dosta esto koristi pa je dobio svoje ime NI.

    Tablica je :

    A B Y

    0 0 1

    0 1 1

    1 0 1

    1 1 0

    Zakljuak jednadba, crte i tablica istinitosti su tri naina prikazivanja istog sklopa.

    A

    C

    A

    B BAY

  • 6 | S i m u l a c i j a r a u n a l n i h s k l o p o v a b i l j e k e P M F - S p l i t

    Primjer 2.: Jednadba sloenog logikog sklopa glasi BBABAY

    Kad nacrtamo sklop kako je napisana jednadba moramo upotrijebiti 5 logikih sklopova. Treba nacrtati sklop da

    se vidi postupak crtanja.

    Na ovom sklopu moemo primjeniti postupak minimizacije sklopa primjeniti zakone Booleove agebre i pokuati

    realizirati sklop s istim djelovanjem, ali s manjim brojem osnovnih logikih sklopova.

    Osnovni zakoni Booleove algebre:

    1. Zakon komutativnosti : AB=BA

    A+B=B+A

    2. Zakon asocijativnosti: (AB)C=A(BC)

    (A+B)+C=A+(B+C)

    3. Zakon distributivnosti: A(B+C)=AB+AC

    A+(BC)=(A+B)(A+C)

    4. De Morganovi zakoni BABA

    BABA

    Vidimo da se naa jednadba moe primjenom zakona distibutivnosti napisati kao BBBAY BAY 1 BAY . Vidimo da se u jednadbi pojavljuju samo jedan operator, a to znai da e i sklop

    biti izveden s jednim logikim sklopom (utedili smo etiri sklopa).

    A

    B

  • 7 | S i m u l a c i j a r a u n a l n i h s k l o p o v a b i l j e k e P M F - S p l i t

    Da smo dobili sklop s istim djelovanjem moemo pokazati i pomou tablica istinitosti u oba sluaja.

    BBABAY

    BAY

    A B B AB BA BABA BBABAY

    0 0 1 0 0 0 0

    0 1 0 0 0 0 1

    1 0 1 0 1 1 1

    1 1 0 1 0 1 1

    piemo sve mogue kombinacije koje se mogu pojaviti na ulazima A, B

    Zadaci:

    1. Nacrtaj sklop zadan jednadbom BABAY .

    2. Napii tablicu istinitosti.

    3. to sklop radi?

    A B AB AB Y

    0 0 0 1 1

    0 1 0 1 1

    1 0 0 1 1

    1 1 1 0 1

  • 8 | S i m u l a c i j a r a u n a l n i h s k l o p o v a b i l j e k e P M F - S p l i t

    Osnovni postupci u radu sa sloenim sklopovima

    Kod kreiranja sloenih sklopova poput poluzbrajala i punog zbrajala treba znati pretvarati jednadbu u tablicu i

    obrtnuto, jednadbu u crte i obrnuto.

    Pretvaranje tablice u jednadbu:

    U tablici pronaemo sve redove u kojima je rezultat 1

    Ulaze u tom redu poveemo operatorom I

    Ako je vrijednost ulaza 0 tada ga piemo kao negaciju

    Sve umnoke meusobno poveemo operatorom ILI

    Primjer:

    A B Y

    0 0 1

    1 1 0

    0 1 1

    1 0 0

    1. U tablici pronaemo retke u kojima je rezultat 1. U ovom primjeru su to 1. i 3. red.

    2. U pronaenim redovima ulaze spojimo operatorom I. Za 1. redak to e biti BA jer su oba

    ulaza 0, a za 3. redak tablice BA .

    3. Jednadbu dobijemo povezivanjem izraza operatorom ILI

    4. Rezultat: BABAY

    5. Jednadbu pokuavamo pojednostaviti koritenjem zakona Booleove algebre:

    B)B(AY = 1A =A

  • 9 | S i m u l a c i j a r a u n a l n i h s k l o p o v a b i l j e k e P M F - S p l i t

    Pretvaranje jednadbe u simboliki prikaz:

    Crtanje se svodi na odreivanje prioritetnih operacija.

    Primjer:

    C)B(AY

    1. Ispod negacije je izraz u kojem je operacija najvieg stupnja negacija, zatim konjunkcija, a zatim

    disjunkcija.

    2. Nacrtamo ulaze u sklop (A, B, C)

    3. Ulaz B dovedemo na NE sklop, a izlaz iz NE sklopa zajedno s ulazom s A dovedemo na I sklop. Izlaz iz I

    sklopa zajedno s ulazom C dovedemo na ILI sklop i konani izlaz provuemo kroz ne sklop kao bi realizirali

    konanu negaciju.

    A

    B

    C

  • 10 | S i m u l a c i j a r a u n a l n i h s k l o p o v a b i l j e k e P M F - S p l i t

    Pretvaranje jednadbe u tablicu:

    Provodimo isti postupak analize jednadbe i utvrujemo koje operacije su prioritetne.

    Primjer:

    C)B(AY

    1. Jednadba ima tri logike varijable A, B, C. To znai da moramo napisati sve mogue kombinacije ulaza

    (kombinacija ima 2broj ulaznih varijabli), u ovom sluaju 8 kombinacija.

    2. Redoslijed kolona u tablici odgovara redoslijedu itanja jednadbe.

    A B C B AB CAB CAB

    0 0 0 1 0 0 1

    0 0 1 1 0 1 0

    0 1 0 0 0 0 1

    0 1 1 0 0 1 0

    1 0 0 1 1 1 0

    1 0 1 1 1 1 0

    1 1 0 0 0 0 1

    1 1 1 0 0 1 0

    3. Provjeru moemo napraviti tako da iz tablice napiemo jednadbu, minimiziramo i dobijemo poetnu

    jednadbu.

  • 11 | S i m u l a c i j a r a u n a l n i h s k l o p o v a b i l j e k e P M F - S p l i t

    Logiki sklopovi, podjela

    Logike sklopove koji realiziraju neku logiku funkcije dijelimo u dvije skupine. Prvu ine kombinacijski logiki

    sklopovi a drugi slijedni ili sekvencijski logiki sklopovi.

    Kombinacijski sklopovi

    Kombinacijski logiki sklopovi su sklopovi kod kojih izlazna logika funkcija ovisi samo od ulaznih veliina. Primjeri

    kombinacijskih logikih sklopova su zbrajalo, koder, multipleksor, dekoder, demultipleksor.

    Poluzbrajalo

    Primjer kombinacijskog logikog sklopa je zbrajalo, koje ima dva ulaza i dva izlaza. Na ulaze se dovode bitovi

    operanada koje zbrajamo a izlazi su njihov zbroj i prijenos na vie brojno mjesto. Slika nie prikazuje tablicu

    istinitosti zbrajala, logiki izraz i simboliki prikaz.

  • 12 | S i m u l a c i j a r a u n a l n i h s k l o p o v a b i l j e k e P M F - S p l i t

    Potpuno zbrajalo

    Potpuno zbrajalo je kombinacijski logiki sklop koji za razliku od poluzbrajala ima tri ulaza i dva izlaza. Osim bitova

    operanada koje zbrajamo na ulaz se dovodi takoer prijenos sa nieg brojnog mjesta. Na izlazu se dobiva zbroj i

    prijenos na vie brojno mjesto. Potpuno zbrajalo moe se realizirati pomou dva poluzbrajala.

    Slika potpunog zbrajala

    Koder

    Koder je kombinacijsko logiki sklop koji generira n-bitni kod za svaki od m ulaza (primjer: BCD koder). Slika ispod

    prikazuje primjer BCD kodera, koji za svaku decimalnu znamenku generira etverobitni kod.

  • 13 | S i m u l a c i j a r a u n a l n i h s k l o p o v a b i l j e k e P M F - S p l i t

    Dekoder

    Dekoder je kombinacijski logiki sklop koji za svaku binarnu kodnu rije na ulazu ima poseban izlaz koji je u stanju

    1 samo ako je na ulazu ta kodna rije.

    Za n ulaznih bita takvih izlaza moe biti najvie 2n. U sklopovima se esto koristi jedan dodatni, kontrolni, ulaz

    koji slui za aktiviranje i deaktiviranje sklopa. Priemu vrijedi: ako je kontorlni ulaz 1 tada je tono jedan od izlaza

    dekodera u stanju 1, a ako je kontrolni ulaz u stanju 0 sklop je deaktiviran te su svi izlazi u stanju 0.

    Oznaka koju koristimo za sklop je DEK n/m gdje n oznaava broj ulaza, a m broj izlaza.

    Pojednostavljeno, dekoder je sklop koji ima onoliko ulaza koliko ima bitova kod i onoliko izlaza koliko se znakova

    moe predoiti dotinim kodom. Slika ispod prikazuje trobitni dekoder koji za svaki trobitni kod aktivira jednu od

    izlaznih linija.

    Primjer dekodera 4/16 (bez kontrolnog ulaza) izradite sami. Pojasnite to ovaj dekoder radi i po emu se razlikuje

    u odnosu na dekoder prikazan na prethodnoj slici.

    Dekoderi se u praksi proizvode kao standardne komponente. Ako je potrebno izvriti dekodiranje veeg broja

    ulaznih varijabli od onog to ga imaju standardne komponente, moraju se povezati u veu dekodersku mreu

    postupkom koji se zove kaskadiranje. Najmanje znaajne bitove (npr. ako elimo 4 ulaza, a imamo dekodere 2/4,

    onda su o prva 2 ulaza) dovedemo paralelno na ulaze etiriju dekodera od kojih je samo jedan aktivan ovisno o

    stanju izlaza prvog (prethodnog) dekodera.

  • 14 | S i m u l a c i j a r a u n a l n i h s k l o p o v a b i l j e k e P M F - S p l i t

    Primjer kaskadiranja dan je na iduoj slici

    Multipleksor

    Multipleksor je logiki sklop koji na temelju n-bitne adrese odabire jednu od 2n ulaznih linija i prenosi je na izlaz.

    Na slici je prikazan primjer multipleksora sa dvobitnom adresom.

    Multiplekosor je kombinacijski sklop koji informaciju prisutnu na jednom ulazu selektira izmeu informacija

    prisutnih na drugim ulazima i alje na jedan izlaz. Iz navedenog se razloga multipleksor jo naziva i selektor

    podataka. Kao i drugi sklopovi multipleksor se moe realizirati sa i bez kontrolnog ulaza kojim se sklop po potrebi

    deaktivira. Selektirajui ulazi odreuju stanje koje varijable na ulazu aljemo na izlaz. Ako je broj selektirajuih

    varijabli n onda moemo imati najvie 2n ulaznih varijabli.

    Oznaka koju koristimo za sklop je MUX n/m gdje n oznaava broj ulaza, a m broj izlaza.

    Za vjebu pokuajte izraditi MUX 4/1 i 8/1. Opiite rijeima karakteristike ovog multipleksora.

    Pokuajte pronai primjenu multipleksora u praksi, po uzoru na jednostavan zadatak koji ste imali kada ste

    realizirali alarm vozila kada ostavite ukljuena svjetla, a ugasite motor.

    Na kraju provjerite vae rjeenje sa rjeenjem na iduoj slici.

  • 15 | S i m u l a c i j a r a u n a l n i h s k l o p o v a b i l j e k e P M F - S p l i t

    Primjer multipleksora 4/1 Primjer multipleksora 8/1

    Kao i dekodere, multipleksore takoer moemo kaskadirati ime se omoguuje da nekoliko standardnih

    multipleksora manjeg opsega od potrebnog, modularno izgradi multipleksor s traenim brojem ulaznih bitova.

    Na slici je prikazan multipleksor 16/1 realiziran pomou pet multipleksora tipa 4/1

  • 16 | S i m u l a c i j a r a u n a l n i h s k l o p o v a b i l j e k e P M F - S p l i t

    Slijedni ili sekvencijski sklopovi

    Slijedni ili sekvencijski logiki sklopovi su sklopovi kod kojih izlazne veliine ovise od ulaznih ali i od unutarnjeg

    stanja samog sklopa. Sekvencijski logiki imaju unutarnje stanje, odnosno elemente koji mogu pamtiti ili

    pohranjivati informaciju. Primjeri sekvencijskih logikih sklopova su brojila, posmani registri, upravljaki sklop

    raunala.

    Dekoder je kombinacijski logiki sklop koji za svaku binarnu kodnu rije na ulazu ima poseban izlaz koji je u stanju

    1 samo ako je na ulazu ta kodna rije.

    Za n ulaznih bita takvih izlaza moe biti najvie 2n. U sklopovima se esto koristi jedan dodatni, kontrolni, ulaz

    koji slui za aktiviranje i deaktiviranje sklopa. Pri emu vrijedi: ako je kontrolni ulaz 1 tada je tono jedan od izlaza

    dekodera u stanju 1, a ako je kontrolni ulaz u stanju 0 sklop je deaktiviran te su svi izlazi u stanju 0.

    Oznaka koju koristimo za sklop je DEK n/m gdje n oznaava broj ulaza, a m broj izlaza.