25
Elektronski fakultet Niš Katedra za Računarstvo Algoritmi i arhitekture specijalizovanih računarskih sistema SEMINARSKI RAD TEMA: Euklidov algoritam za nalaženje najmanjeg zajedničkog delioca dva broja ZADATAK: U VHDL strukturalno opisati kolo za nalaženje najvećeg zajedničkog delioca dva broja (NZD). Širinu ulaznih i izlaznih magistrala kola opisati korišćenjem unconstrained tehnike. Izvršiti simulaciju opisanog kola i prikazati rezultate simulacije. Kolo implementirati na VirtexE FPGA čipu. Prikazati rezultate post- synthesis simulacije implementiranog kola. Diskutovati dobijene rezultate simulacije i implementacije za različite širini ulaznih magistrala.

Euklidov Algoritam Za Nalazenje NZD Dva Broja - Seminarski

  • View
    79

  • Download
    0

Embed Size (px)

DESCRIPTION

Euklidov Algoritam za nalazenje NZD-a dva broja

Citation preview

Page 1: Euklidov Algoritam Za Nalazenje NZD Dva Broja - Seminarski

Elektronski fakultet NišKatedra za RačunarstvoAlgoritmi i arhitekture specijalizovanih računarskih sistema

S E M I N A R S K IR A D

TEMA: Euklidov algoritam za nalaženje najmanjeg zajedničkog delioca dva broja

ZADATAK: U VHDL strukturalno opisati kolo za nalaženje najvećeg zajedničkog delioca dva broja (NZD). Širinu ulaznih i izlaznih magistrala kola opisati korišćenjem unconstrained tehnike. Izvršiti simulaciju opisanog kola i prikazati rezultate simulacije. Koloimplementirati na VirtexE FPGA čipu. Prikazati rezultate post-synthesis simulacije implementiranog kola. Diskutovati dobijene rezultate simulacije i implementacije za različite širini ulaznih magistrala.

Student: Vladan Stojanović

U

SADRŽAJ

Datum predajeDatum odbraneSeminarski rad, ocenaUsmeni, ocenaUkupno, ocena

Napomena:

Page 2: Euklidov Algoritam Za Nalazenje NZD Dva Broja - Seminarski

1. Uvod Strana 2

1.1. Opis domena problema Strana 2

1.2 Euklidov algoritam za nalaženje najmanjeg zajedničkog Strana 2

delioca dva broja

2. Rešenje Strana 4

2.1. Zahtevi Strana 4

2.2. Prikaz rešenja Strana 4

2.2.1 Opis rada kola Strana 6

2.3. Opis kola na VHDL-u Strana 8

2.4. Opis spoljnih pinova Strana 10

2.5. Struktura fajlova Strana 11

2.6. Rezultati simulacije Strana 12

3. Implementacija Strana 12

3.1. Implementacija kola Strana 13

3.2. Rezultat simulacije rada implementiranog kola Strana 13

3.3. Rezultati implementacije za različite dimenzije kola Strana 14

4. Zaključak Strana 16

5. Literatura Strana 17

6. Tabela za pregled i ocenu rada Strana 18

UVOD

1

Page 3: Euklidov Algoritam Za Nalazenje NZD Dva Broja - Seminarski

1. Uvod

1.1 Opis domena problema

Aritmetika je grana matematike koja beleži osnovne osobine određenih operacija

sa brojevima. Dolazi od grčke reči arithmetike, koja se sastoji od dve reči: arithmos (broj)

i techne (umeće). Postoje četiri operacije: sabiranje, oduzimanje, množenje i deljenje.

U matematici, najveći zajednički delilac (nzd) dva cela broja različita od nule je najveći

pozitivan ceo broj koji deli oba broja bez ostatka. Najveći zajednički delilac brojeva a i b se

označava kao nzd(a, b), ili nekad jednostavnije kao (a, b). Euklidov algoritam je efikasan

način za određivanje najvećeg zajedničkog delioca (NZD) datih brojeva. Algoritam nosi ime

po starogrčkom matematičaru Euklidu, koji ga je naveo u VII i X knjizi svojih Elemenata.

U ovom tekstu opisan je Euklidov algoritam za nalaženje najmanjeg zajedničkog

delioca dva broja i opisana je arhitektura kola koje izvršava ovaj algoritam. U uvodnom delu

teksta opisan je sam algoritam.

U drugom delu teksta opisana je arhitektura kola koje izvršava Euklidov algoritam za

za nalaženje NZD. Takođe, uz opis arhitekture kola, dati su i detalji oko opisa kola na

VHDL-u, i dati su rezultati behavioralne simulacije rada kola.

U trećem delu teksta, dati su rezultati implementacije kola. Pri tome je razmotrena i

simulacija rada implementiranog kola, tzv. post-route simulacija, gde su pomenuti određeni

efekti simulacije nad ovim realnim modelom kola.

1.2 Euklidov algoritam za nalaženje najmanjeg zajedničkog delioca dva broja

Euklidov algoritam je zasnovan na principu da se najveći zajednički delilac dva broja ne menja ukoliko se manji broj oduzme od većeg, pa se zatim odredi NZD novodobijenog broja i manjeg od prethodna dva. Na primer, 21 je NZD za 252 i 105 (252 = 21 × 12; 105 = 21 × 5); pošto je 252 − 105 = 147, NZD za 147 i 105 je takođe 21. Kako je veći od dva polazna broja na ovaj način smanjen, ponavljanjem postupka dobijaće se sve manji brojevi, dok se jedan od njih ne svede na nulu.

Euklidov algoritam je iterativne prirode, što znači da se krajnji rezultat dobija u nizu koraka, dok se međurezultat proizvoljnog koraka koristi u prvom sledećem. Ukoliko je k ceo broj kojim su označeni koraci algoritma počevši od nule, prvom koraku odgovara jednakost k = 0, drugom k = 1, i tako dalje.

Svaki korak počinje sa dva nenegativna ostatka rk−1 i rk−2. Kako algoritam osigurava da se ostaci svakim korakom neprekidno smanjuju, rk−1 je manje od svog prethodnika rk−2. Cilj k-tog koraka je da se odrede količnik qk i ostatak rk takvi da važi jednakost

2

Page 4: Euklidov Algoritam Za Nalazenje NZD Dva Broja - Seminarski

rk−2 = qk rk−1 + rk

gde je rk < rk−1. Drugim rečima, umnošci manjeg broja rk−1 se oduzimaju od većeg broja rk−2 sve dok je dobijeni ostatak manji od rk−1.

U prvom koraku (k = 0), ostaci r−2 ir−1 su jednaki a i b respektivno, a to su upravo brojevi za koje se traži NZD. U sledećem koraku (k = 1), ostaci postaju jednaki b i ostaku početnog koraka r0... Na osnovu toga, algoritam se može predstaviti nizom jednakosti

a = q0 b + r0

b = q1 r0 + r1

r0 = q2 r1 + r2

r1 = q3 r2 + r3

Ukoliko je a manje od b, u prvom koraku algoritma treba zameniti brojeve, odnosno,

za a < b, početni količnik q0 je jednak nuli, a ostatak r0 je jednak a. Na taj način, rk je manji od

svog prethodnika rk−1 za sve k ≥ 0.

Kako se ostaci smanjuju u svakom koraku, i kako ne mogu biti negativni, ostatak rN u

nekom trenutku mora postati jednak nuli, pa se tada algoritam zaustavlja. Poslednji

ostatak rN−1 koji je različit od nule je najveći zajednički delilac brojeva a i b. Broj N ne može

biti beskonačan pošto između nule i prvog ostatka r0 postoji konačan broj nenegativnih celih

brojeva.

Implementacija algoritma može biti prikazana pseudokôdom:

function nzd(a, b) if a = 0 return b while b ≠ 0 if a > b a := a − b else b := b − a return a

Promenljive a i b se smenjuju u čuvanju prethodnih ostataka rk−1 i rk−2. Ukoliko je na

početku iteracije a veće od b, onda a dobija vrednost rk−2, pošto je rk−2 > rk−1. U toku

izvršavanja petlje a se smanjuje oduzimanjem prethodnog ostatka b sve dok a ne postane

manje od b. Tada je a sledeći ostatak rk. Zatim se b smanjuje oduzimanjem a dok ne postane

manje od njega, i tada postaje jednako rk+1. Proces se nastavlja dok b ne postane jednako nuli.

3

Page 5: Euklidov Algoritam Za Nalazenje NZD Dva Broja - Seminarski

REŠENJE

2. Rešenje

2.1 Zahtevi

U tekstu zadatka se traži da na VHDL-u strukturalno opiše kolo za nalaženje najvećeg zajedničkog delioca dva broja (NZD). Širinu ulaznih i izlaznih magistrala kola treba opisati korišćenjem unconstrained tehnike. Pri tome treba izvršiti potrebne simulacije rada kola i priložiti vremenske dijagrame kao dokaz ispravnosti opisa i implementacije kola na FPGA čipu. U nastavku teksta sledi opis arhitekture kola i opis kola na VHDL-u.

2.2 Prikaz rešenja

Slika 1. Prikaz arhitekture sistema

Na slici 1 prikazana je arhitektura sistema. U tekstu koji sledi biće objašnjeni najvažniji od blokova date arhitekture.

Multiplekser je kombinaciono kolo koje vrši ulogu elektronskog prekidača. U svakom stanju se ostvaruje veza između izlaza i samo jednog odabranog ulaza. Multiplekser se sastoji iz jednog izlaza, n selekcionih ulaza i 2n informacijskih ulaza.

U zavisnosti od signala MUX_1_sel i MUX_2_sel, multiplekseri MUX_1 i MUX_2 određuju šta će se upisati u registre reg_1 i reg_2 (da li će se upisati podatak sa ulaznog porta INPUT ili rezultat oduzimanja koji dolazi sa izlaza male aritmetičko-logičke jedinice).

Small_ALU ili mala aritmetičko-logička jedinica je složeno integrisano kolo koje može da izvodi operaciju oduzimanja dva broja. Signal ALU_op_mode (koji dolazi iz FSM-a) određuje koji broj će biti umanjenik a koji umanjilac.

4

Page 6: Euklidov Algoritam Za Nalazenje NZD Dva Broja - Seminarski

Kolo komparatora nam služi da uporedimo dva broja iz registara, i da utvrdimo koji od njih je veći, ili, da li su jednaki. Na izlazu iz komparatora imamo tri signala koji se koriste za upravljanje tokom izvršenja samog algoritma.

FSM - Finite State Machine (konačni automati) predstavljaju najznačajniju tehniku za modeliranje sekvencijalnih kola, koja je naročito pogodna za projektovanje pojedinih tipova digitalnih sistema čije se ponašanje može opisti precizno definisanom sekvencom aktivnosti. Tipičan primer su upravljačke jedinice. Model konačnog automata zasnovan je konceptu stanja i prelaza između stanja. U svakom trenutku, automat je u jednom od konačnog broja svojih stanja. Pod dejstvom taktnog signala, a u zavisnosti od tekućeg stanja i trenutne vrednosti ulaza, automat prelazi u novo stanje i generiše odgovarajuće izlaze. Konačni automat se može predstaviti dijagramom (grafom) stanja (Sl. 2). U ovom dijagramu, krugovima su predstavljena stanja, a strelicama (granama) prelazi između stanja. Svaka grana je označena parom ulaz/izlaz i ukazuje na novo stanje u koje će automat preći, kao i na vrednost koja će biti generisana na izlazu, pod uslovom da je na ulazu prisutna navedena vrednost.

S0

S1 S2

0/1

1/1

1/0

0/1

0/1

1/01/0

Kombinaciona logika

Sekvencijalna logika

(flip-flopovi)

ulaz izlaz

pr_state nx_state

rst

clk

FSM

izlaz

ulazstanje

Slika 2

U cilju hardverske realizacije, stanja konačnog automata se kodiraju, tj. svakom stanju se dodeljuje jedinstveni n-bitni kôd. Za čuvanje kôda tekućeg stanja koriste se flip-flopovi, a za generisane kôda novog stanja i izlaza koristi se kombinaciona mreža. Uopšteni blok dijagram konačnog automata prikazan je na Sl. 3.

5

Page 7: Euklidov Algoritam Za Nalazenje NZD Dva Broja - Seminarski

S0

S1 S2

0/1

1/1

1/0

0/1

0/1

1/01/0

Kombinaciona logika

Sekvencijalna logika

(flip-flopovi)

ulaz izlaz

pr_state nx_state

rst

clk

FSM

izlaz

ulazstanje

Slika 3 – Blok šema konačnog automata

U donjem delu slike prikazana je sekvencijalna logika (flip-flopovi), a u gornjem kombinaciona logika. Kombinaciona logika ima dva ulaza: pr_state (tekuće stanje) i ulaz (pravi ulazi konačnog automata) i dva izlaza: ns_state (sledeće stanje) i izlaz (pravi izlazi konačnog automata). Sekvencijlani deo ima tri ulaza: clk (taktni signal), rst (reset ulaz), ns_state (sledeće stanje) i jedan izlaz: pr_state (tekuće stanje). Sekvencijalni deo sadrži n flip-flopova sa zajedničkim taktnim i reset signalom. Pod dejstvom reset signala, automat se postavlja u početno (inicijalno) stanje. Svaka aktivna ivica taktnog signala inicira prelazak u novo stanje, tako što u flip-flopove sekvencijalnog dela upisuje kôd sledećeg stanja (nx_state) koji tako postoje novo tekuće stanje (pr_state).

Podela kola na dva dela (Sl. 3) omogućava da i VHDL opis konačnog automata takođe bude razložen na dve sekcije. Iz perspektive VHDL-a, jasno je da će donji deo, s obzirom da je sekvencijalan, zahtevati proces, dok gornji, kombinacioni, neće. Međutim, kako procesom može biti opisana ne samo sekvencijalna već i kombinaciona logika, po pravilu, oba dela automata se opisuju pomoću zasebnih procesa.

2.2.1 Opis rada kola

Radi lakšeg objašnjenja rada kola, biće opisano svako stanje automata, kao i uloga elemenata kola koji učestvuju u radnji koja se obavlja u tom stanju. Na kraju je data i tabela sa pregledom vrednosti kontrolnih signala za sva stanja automata.

Na slici 5 dat je dijagram stanja automata. Sa slike se može uočiti da automat ima ukupno 6 stanja. Svaki kružić predstavlja stanje, a u okviru svakog stanja defnisane su vrednosti kontrolnih signala (ALU_op_mode, MUX_1_sel, MUX_2_sel, reg_1_en, reg_2_en). U nastavku sledi opis svakog od stanja.

6

Page 8: Euklidov Algoritam Za Nalazenje NZD Dva Broja - Seminarski

Slika 5 – Dijagram stanja automata

Stanje S1: To je tzv. stand-by stanje. U ovo stanje automat ulazi nakon aktiviranja signala reset, i nakon završetka algoritma. Sve dok je start signal jednak nuli, automat ostaje u stanju S1. Uslov prelaska u stanje S2 je pojava signala start, čime počinje izvršenje algoritma.

Stanje S2: U ovom stanju se vrši upis prvog operanda u registar reg_1. To se postiže postavljanjem kontrolnog signala reg_1_en na 1 (pri čemu je vrednost MUX_1_sel jednako nuli, što znači da je dozvoljen upis samo sa ulaznog porta – input). Dozvola upisa (reg_1_en = 1) odvija se na opadajućoj, dok se sam upis vrši na rastućoj ivici taktnog signala. Nakon upisa prvog operanda, automat bezuslovno prelazi u stanje S3.

Stanje S3: Stanje S3 je slično stanju S2, s tim sto se ovde vrši upis drugog operanda u registar reg_2 (što prati postavljanje signala reg_2_en na 1). Posle obavljene operacije upisa, automat takodje, bezuslovno prelazi u stanje S4.

Stanje S4: Stanje S4 služi za procenu vrednosti, tj. za određivanje koji od operanada je veći (ili, da li su možda jednaki). Za procenu vrednosti nam služi kolo komparatora. Ukoliko su jednaki, automat prelazi u stanje S1 gde se signalom finish javlja da je algoritam završen i da se na izlaznom portu output nalazi NZD za unešene vrednosti (pošto se ista vrednost nalazi u oba registra, bilo koju od ove dve vrednosti možemo uzeti kao rešenje. U našem slučaju, rešenje je izlaz iz registra reg_2).

Uslov prelaska iz stanja S4 u stanje S5 je, da je vrednost operanda u reg_1 veća od vrednosti operanda u reg_2. U suprotnom, automat prelazi u stanje S6.

Stanje S5: U stanju S5, postavlja se vrednost kontrolnog signala ALU_op_mode na 0, što znači da će mala aritmetičko-logička jedinica oduzeti operand iz reg_2 od operanda iz reg_1. Rezultat se vodi na ulaz oba registra, ali, pošto se u ovom stanju postavlja vrednost kontrolnog signala reg_1_en na 1, izlaz iz small_ALU se upisuje u reg_1. Nakon ovoga, automat bezuslovno prelazi u stanje S4.

7

Page 9: Euklidov Algoritam Za Nalazenje NZD Dva Broja - Seminarski

Stanje S6: Stanje S6 je slično stanju S5, s tim što se vrši oduzimanje operanda iz registra reg_1 od operanda iz registra reg_2 (ALU_op_mode = 1), a rezultat se upisuje u reg_2 (MUX_2_sel = 1, reg_2_en = 1). U stanju S6 kao i u S5, nakon upisa rezultata, bezuslovno prelazi u stanje S4.

S1 S2 S3 S4 S5 S6

ALU_op_mode 0 0 0 0 0 1

MUX_1_sel 0 0 0 1 1 1

MUX_2_sel 0 0 0 1 1 1

reg_1_en 0 1 0 0 1 0

reg_2_en 0 0 1 0 0 1

finish 1 0 0 0 0 0

Tabela stanja automata

2.3 Opis kola na VHDL-u

Pri opisu svih elemenata kola korišćen je standardan opis na VHDL-u kako bi se dobio sintetazibilan kôd. Iz tog razloga neće biti detaljno razmatran VHDL kôd za svaki element. Razmotren je samo kôd za FSM, small_ALU i za registar.

Na slici 3 prikazan je model procesnog sistema sa kontrolnom jedinicom. Kontrolna jedinica sistema prikazana je kao automat sa konačnim brojem stanja. Sa slike se vidi da se blok kontrolne jedinice, tj. automata sastoji od tri bloka. Prvi je kombinaciona logika koja na osnovu statusnih signala u kolu i trenutnog stanja automata određuje signal za prelaz u naredno stanje automata. Drugi blok predstavlja memorijski deo FSM-a koji pokazuje trenutno stanje automata. Signali na ulazu u ovaj blok upisuju se na ivicu taktnog signala. Za naš automat izabrano je da se signal za naredno stanje upiše u memorijski blok na opadajuću ivicu. Treći blok kola automata je kombinaciona logika koja na osnovu signala trenutnog stanja određuje vrednosti izlaznih signala kola automata.

Opis kola automata na VHDL-u sadrži dva procesa. U okviru jednog procesa vrši se tranzicija iz jednog u drugo stanje automata, a proces je osetljiv na promene taktnog i reset signala kola. Ovim procesom realizuje se memorijski deo kola automata.

present_state_proc:process(clk, rst)

begin

if rst = '1' then

present_state <= s1;

8

Page 10: Euklidov Algoritam Za Nalazenje NZD Dva Broja - Seminarski

else

if falling_edge(clk) then

present_state <= next_state;

end if;

end if;

end process;

U okviru drugog procesa koristi se case naredba pomoću koje se vrši dodela vrednosti izlaznim signalima kola automata u zavisnosti od stanja u kojem se automat nalazi. Na ovaj način realizovana je izlazna kombinaciona logika sa slike 3. Kombinaciona logika na ulazu realizovana je dodelom signala narednog stanja u VHDL opisu.

Opis male aritmetičko-logičke jedinice (small_ALU) sadrži jedan proces. On je osetljiv na ulazne signale input_1 i input_2 kao i na signal op_mode. To znači, da kada se na njenom ulazu nadju dva operanda (izlazi iz registara), ona vrši odredjenu radnju u zavisnosti od vrednosti signala op_mode ( R1 – R2, ili, R2 – R1). VHDL kôd procesa dat je u nastavku teksta.

entity small_ALU is

generic( n : integer := 8);

Port ( input_1 : in STD_LOGIC_VECTOR (n-1 downto 0);

input_2 : in STD_LOGIC_VECTOR (n-1 downto 0);

op_mode : in STD_LOGIC;

output : out STD_LOGIC_VECTOR (n-1 downto 0));

end small_ALU;

proc:process(input_1, input_2, op_mode)

begin

if op_mode = '0' then

output <= input_1 - input_2;

elsif op_mode = '1' then

output <= input_2 - input_1;

end if;

end process;

Takodje, i opis registra sadrži samo jedan proces, koji je osetljiv samo na signale takt i reset. U else uslovu naredbe grananja, koristimo i en , tj. utvđujemo da li postoji dozvola za upis. Iako se ovaj signal koristi u kôdu procesa, sam proces nije osetljiv na njega, jer, faktički, od tog signala ništa ne zavisi.

9

Page 11: Euklidov Algoritam Za Nalazenje NZD Dva Broja - Seminarski

entity reg_n is

generic( n : integer := 8);

Port ( input : in STD_LOGIC_VECTOR (n-1 downto 0);

clk : in STD_LOGIC;

rst : in STD_LOGIC;

en : in STD_LOGIC;

output : out STD_LOGIC_VECTOR (n-1 downto 0));

end reg_n;

proc:process(clk, rst)

variable state : STD_LOGIC_VECTOR(n-1 downto 0):= (others => '0');

begin

if rst = '1' then

state := (others => '0');

else

if rising_edge(clk) and en = '1' then

state := input;

end if;

end if;

output <= state;

end process;

Naredba variable state : STD_LOGIC_VECTOR(n-1 downto 0):= (others => '0'); je iskorišćena da bi se u okviru else naredbe grananja generisao flip-flop. U suprotnom, generisao bi se leč.

Na slici 6 prikazana je RTL šema kola dobijena nakon sinteze VHDL kôda kojim je kolo opisano. Detaljnim pregledom u RTL viewer-u mogu se uočiti svi signali kojima su odgovarajući elementi kola povezani, proveriti na koji je način sintetizovan odgovarajući element i drugo.

10

Page 12: Euklidov Algoritam Za Nalazenje NZD Dva Broja - Seminarski

Slika 6 – RTL dijagram .

2.4 Opis spoljnih pinova

Na slici 7 dat je prikaz entiteta kola za n=8. Sa slike se mogu uočtiti portovi kola, a njihov kraći opis dat je u nastavku teksta.

- clock : ovo je port na koji se dovodi taktni signal kola;- reset : ovo je port na koji se dovodi glavni reset kola;- start : port na koji se dovodi start signal kojim se pokreće obrada u kolu;- finish : signal koji generiše kolo, a postavljanje ovog signala označava kraj obrade

u kolu i početak isčitavanja vrednosti NZD;- input : ulazni port kola na koji se dovode vrednosti koje se upisuju u registre gde

se čuvaju operandi;- output : izlazni port sa kojeg se čita vrednost NZD-a.-

Slika 7 – Prikaz entiteta kola za N=8

11

Page 13: Euklidov Algoritam Za Nalazenje NZD Dva Broja - Seminarski

2.5 Struktura fajlova

Slika 8 – Prikaz strukture fajlova

Na osnovu VHDL kôda kojim je kolo opisano, fajl menadžer Xilinx ISE razvojnog okruženja pravi odgovarajuću strukturu. Struktura je napravljena tako da se mogu uočiti nivoi opisa kola po hijarahiji. Prikaz strukture fajlova dat je na slici 8. Sa slike se može uočiti pomenuta organizacija po hijararhiji i po instancama pojedinih elemenata kola. Na vrhu dijagrama može se uočiti naziv FPGA čipa na koji se opisano kolo implementira.

2.5 Rezultati simulacije

Verifikacija ispravnosti projektovanja i opisa kola na VHDL-u vrši se pregledom rezultata simulacije rada opisanog kola. Opis kola je uspešan ukoliko dobijeni rezultati simulacije odgovaraju očekivanim rezultatima. U ovom delu teksta biće reči o simulaciji rada kola na behavioralnim modelom kola. U narednom odeljku teksta razmotrena je implementacija opisanog kola na FPGA čipu. U tom delu teksta biće reči o simulaciji rada kola nad post route modelom kola.

Simulacija rada kola počinje dovođenjem reset signala na odgovarajući port kola. Nakon toga, kolo odlazi u stanje S1, tzv. stand-by stanje gde iščekuje signal start kako bi ušlo sekvencu izvršenja algoritma. Kada se dovede signal start, kolo prelazi na izvršenje algoritma tako što se preko ulaznog porta input unose vrednosti dva broja za koje želimo da odredimo NZD. Odmah posle unosa operanada, koji se upisuju u registre, kolo ulazi u sekvencu u okviru koje se izračunava NZD za unešene vrednosti. Nakon završetka rada kola, na izlaznom portu finish, postavlja se aktivna vrednost signala koja nam govori da je obrada u kolu završena. Tada se kolo vraća u stand-by stanje (S1) i u okviru tog stanja, sa izlaznog porta output možemo očitati i vrednost NZD-a.

12

Page 14: Euklidov Algoritam Za Nalazenje NZD Dva Broja - Seminarski

Slika 9 – Prikaz vremenskog dijagrama behavioralne simulacije rada kola

Na slici 9 je prikazan vremenski dijagram behavioralne simulacije rada kola. Kao što se vidi, prikazane se vrednosti sadržaja registara kroz sam proces simulacije, kao i vrednost koja se dobija na izlazu. Takodje, prikazana su stanja kroz koje kolo prolazi prilikom izvršenja algoritma. Rezultat koji se dobija na izlaznom portu odgovara NZD-u za unešene vrednosti, iz čega se može zaključiti da je projektovanje i opis kola na VHDL-u uspešno izvršeno.

U daljem tekstu dati su podaci koji se odnose na implementaciju kola. Najpre je izvršena simulacija rada, a zatim je dato poređenje za implementaciju kola za nekoliko različitih vrednosti generic parametara.

IMPLEMENTACIJA

3. Implementacija

3.1 Implementacija kolaImplementacija kola vrši se na VirtexE čipu XCV50E u pakovanju CS144.

Implementacija je izvršena za tri vrednosti generic parametara kola. Kolo ima 1536 slice-ova od kojih svaki ima ima po dve LUT sa četri ulaza i po dva flip flopa. U nastavku teksta dati su detalji kojise odnose na simulaciju rada kola za post route model kao i analiza zauzeća resursa i vremenskih parametara kola.

3.2 Rezultat simulacije rada implementiranog kola

Nakon izvršene simulacije rada kola nda behavioralnim modelom kola, dokazano je da da je opis kola na VHDL-u dobar. Međutim, behavioralni model kola ne uključuje postojanje parazitnih parametara koji se u praksi ne mogu izbeći. Parazitni parametri kola ogledaju se u postojanju otpornosti i kapacitivnosti veza u kolu koje utiču na rad kola. Može se dogoditi da simulacija rada kola daje očekivane rezultate, a kada se izvrši implementacija, na FPGA čipu, dobijamo nešto sasvim neočekivano. Iz tog razloga uvodi se simulacija rada kola nad post-route modelom. Post-route model kola uključuje postojanje parazitnih parametara kola kojisu

13

Page 15: Euklidov Algoritam Za Nalazenje NZD Dva Broja - Seminarski

svi preslikani u vremenski domen uvidu signala kroz kolo, kao i propagaciju kroz sastavne elemente FPGA kola, Kada se izvrši simulacija rada nad takvim modelom kola, dolazi do tzv. hazarda u kolu koji se ogledaju u višestrukim prelazima kroz stanja dok kolo ne dođe u regularno stanje. Posledica višestrukih prelaza je nejednaka putanja signala kroz kolo, kao i propagacija kroz elemente kola.

Slika 10 – Prikaz vremenskog dijagrama post-route simulacije rada kola

Na slici 10 prikazan je vremenski dijagram simulacije rada kola. gore je pomenuto da se post-route simulacija vrši nad fizičkim modelom kola u koji je uključen uticaj fizičkih parametara kola. Svi fizički parametri mapirani su kao kašnjenje gejtova. Pri tome nastaju hazardi u kolu koji mogu uticati na ispravnost funkcionisanja kola. na slici 11 prikazan je detalj vremenskog dijagrama post-route simulacije na kojem se vidi ova pojava.

Slika 11 – Detalj dijagrama post-route simulacije rada kola

3.3 Rezultati implementacije za različite dimenzije kolaImplementacija kola na FPGA čipu može se analizirati sa nekoliko stanovišta. Jedno

od najvažnijih je procenat zauzeća resursa čipa. Na osnovu ovog podatka procenjuje se efikasnost alata za sintezu, ali isto tako se može proceniti da li je VHDL kôd optimalan. U tabeli 2 dati su podaci koji govore o zauzeću resursa na upotrebljenom FPGA čipu i može se uočiti da broj slice-ova odgovara broju navedenom u uvodnom delu ovog dela teksta. Takođe se može uočiti da je broj upotrebljenih LUT-a i flip-flopova mali, što je posledica relativne jednostavnosti našeg kola.

14

Page 16: Euklidov Algoritam Za Nalazenje NZD Dva Broja - Seminarski

Tabela 2 – Iskorišćenje resursa VirtexE čipa za n = 8

U tabeli 3 dati su vremenski parametri kola koji prikazuju da kolo može da radi sa frekvencijom od 69.570MHz. Ovaj podatak je nastao od analize nad modelom kola i u praksi treba očekivati da je ova frekvencija nešto manja od priložene..

Maksimalna

frekvencija

Vreme kašnjenja signala pre aktivne

ivice takta

Vreme kašnjenja signala nakon aktivne

ivice takta

Maksimalno kašnjenje putanje

kombinacione logike

69.570MHz 3.608ns 8.061ns -

Tabela 3 – Pregled vremenskih parametara post-route modela kola

15

Page 17: Euklidov Algoritam Za Nalazenje NZD Dva Broja - Seminarski

ZAKLJUČAK

4. Zaključak

U ovom zadatku opisan je algoritam za nalaženje najmanjeg zajedničkog delioca dva broja. Najpre je dat sam algoritam a zatim je razmotrena arhitektura kola koje realizuje pomenuti algoritam. Dokazana je ispravnost projektovanja kao i opisa kola na VHDL-u putem simulacija rada kola na behavioralnom i post route modelu kola. Date su i tabele u kojima su dati podaci o iskorišćenju resursa na FPGA čipu na koji se implementira kolo.

16

Page 18: Euklidov Algoritam Za Nalazenje NZD Dva Broja - Seminarski

LITERATURA

5. Literatura1. “Euklidov algoritam”, http://sr.wikipedia.org2. Circuit Design with VHDL – 2004, Volnei A. Pedroni

17

Page 19: Euklidov Algoritam Za Nalazenje NZD Dva Broja - Seminarski

TABELA ZA PREGLED I OCENU SEMINARSKOG RADA

Ime temeIme i prezime, broj indeksa

Lista – podsetnik za ocenjivanje

A Kodkomentari u zaglavljima fajlovakomentari kroz kodnaming convenctionskorisnički tipovi podatakapriloženi rezultati simulacijekonstrukcije netipične za VHDL

B Dokumentacijaprisutna dokumentacija u elektronskom oblikupriložen plan rada i plan testiranjadoslednost korespondencije dokumentacije i kodatestiranje, proverljivost rezultatapoštovanje uputstava iz templejta

C Proces radapoštovanje rokovasamostalnost u raduoriginalnost primenjenog rešenja

Finalna evaluacija

kategorija max ocena napomenaFunkcionalnost 50Primenjene tehnike 20Analiza rešenja 15Prezentacija rešenja 15Poštovanje rokova 10Ukupno 100