simulacija računalnih sklopova
DESCRIPTION
BilješkeTRANSCRIPT
-
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.