Elektronski fakultet Niš
Katedra za Računarstvo
Algoritmi i arhitekture specijalizovanih računarskih sistema
S E M I N A R S K I
R A D
TEMA: Digitalni časovnik
ZADATAK: U VHDL opisati digitalni sistem koji pokazuje tačno vreme.
Vreme se izražava u satima, minutima i sekundama na sedmosegmentnom
displeju. Sistem preko IO pina povezati na generator takta. Generator takta daje
20MHz takt. Predvideti par tastera povezanih na IO pinove sistema preko kojih
je moguće zadati tačno vreme. Funkcionalnom simulacijom pokazati ispravnost
funkcija sistema. Kolo implementirati na Xilinx Virtex2 FPGA čipu.
Odgovarajućim simulacijama pokazati ispravnost implementacije.
Student
Datum
predaje
Datum
odbrane
Seminarski
rad, ocena
Usmeni,
ocena
Ukupno,
ocena
U
Napomena:
SADRŽAJ
1. Uvod
1.1. Osnovni pojmovi o vremenu
2. Rešenje
2.1. Zahtevi
2.2. Prikaz rešenja
2.3. Opis kola na VHDL-u
2.4. Struktura fajlova
2.5. Opis spoljnih pinova kola
2.6. Rezultati simulacije
3. Implementacija
3.1. Implementacija kola
3.2. Rezultat simulacije rada implementiranog kola
3.3. Rezultati implementacije
Strana 2
Strana 2
Strana 4
Strana
Strana
Strana
Strana
Strana
Strana
4
4
6
9
10
11
Strana 13
Strana 13
Strana 13
Strana 13
4. Zaključak
Strana 16
5. Literatura
Strana 17
6. Tabela za pregled i ocenu rada
Strana 18
1
UVOD
1. Uvod
U ovom tekstu opisan je postupak projektovanja digitalnog sistema za merenje i prikaz
vremena. Treba reći da je princip rada sistema veoma prost. Sistem broji dogañaje koji traju
jednu sekundu. Dogañaji koji se broje su prelasci stanja taktnog signala sa negativne na
pozitivnu vrednost koji se dešavaju u regularnim vremenskim intervalima od jedne sekunde.
Rezultat brojanja-merenja, dat je u predefinisanoj formi na sedmosegmentnom LED displeju.
U uvodnom delu teksta objašnjen je princip generisanja dogañaja koji traju tačno
jednu sekundu, kao i dobro poznat format prikaza rezultata merenja na displeju. U drugom
delu teksta izložen je postupak projektovanja sistema kao i njegov opis na VHDL-u. Nakon
toga su dati rezultati simulacije rada opisanog kola i potvrñena je ispravnost njegovog
funkcionisanja. U trećem delu teksta dati su rezultati koji se dobiju nakon implementacije
kola na željeno FPGA kolo.
1.1
Osnovni pojmovi o vremenu
Pre nego što bude objašnjen princip projektovanja sistema za merenje vremena dato je
razmatranje o vremenu kao fizičkoj veličini i pojmovima vezanih za vreme.
U fizici, vreme je osnovna fizička veličina kojom se odreñuje položaj nekog tela u
prostorno-vremenskom kontinuumu. Pre formulisanja teorije relativiteta, na snazi je bila
Njutnova definicija vremena koja je korigovana u Anštajnovoj teoriji relativiteta. Anštajn je
povezao vreme i prostor u jedinstvenu dimenziju prostor-vremena koja se smatra četvrtom
dimenzijom prostora.
Konvencionalno merenje vremena u svetu zasniva se na praćenju kretanja nebeskih
tela čija je putanja kretanja izdeljena na jednake delove i na taj način omogućeno razlaganje
vremena na manje vremenske intervale. Vreme je jedna od sedam osnovnih fizičkih veličina u
SI sistemu. Jedinica za merenje vremena je sekund. Sekund je najpre definisan kao 86.400-i
deo prosečnog solarnog dana. Kasnije su učinjeni napori da se sekund definiše tačnije i
usvojena je definicija koja se zasniva na kretanju Zemlje oko Sunca za odreñenu epohu. Na
kraju je vreme od jedne sekunde definisano kao trajanje od 9192631770 perioda zračenja koje
odgovara prelazu izmeñu dva hiperfina nivoa osnovnog stanja atoma cezijuma 133 na
temperaturi od 0K. U praksi postoje i druge jedinice izvedene u odnosu na sekund. To su
minut, čas i dan.
Slika 1 – Format prikaza izmerenog vremena
Projektovani sistem prikazuje rezultate merenja broja prelaska sa nižeg na viši nivo
taktnog signala kola. Radi tačnijeg merenja vremena, za izvor taktnog signala se najčešće bira
oscilator čija je frekvencija oscilovanja stabilisana nekom od metoda stabilizacije. Oscilator
najčešće radi na višim frekvencijama kako bi se umanjio uticaj odstupanja frekvencije od
tačne vrednosti. Za ovaj sistem je usvojeno da se koristi izvor oscilacija na 20 MHz. Ulazna
2
frekvencija se najpre deli kako bi se dobio interval oscilacija od jedne sekunde, a zatim se
signal periode od jedne sekunde vodi na sistem brojača koji se koriste za brojanje dogañaja i
formiranje prokaza u dobro poznatoj formi koja je prikazana na slici 1. To je forma prikaza u
kojoj su najpre date cifre koje označavaju časove, zatim minute i na kraju sekunde. Interval
brojanja je 24 časa. Nakon tog intervala, rezultat brojanja se resetuje i brojanje počinje od
početka. Na slici 2 prikazana je arhitektura digitalnog časovnika. U narednom delu teksta biće
dat detaljniji prikaz arhitekture digitalnog časovnika.
Slika 2 – Prikaz arhitekture digitalnog časovnika
3
REŠENJE
2. Rešenje
U ovom delu teksta opisan je postupak projektovanja arhitekture digitalnog časovnika,
opis na VHDL-u, kao i simulacija nad behavioralnim modelom radi verifikacije ispravnosti
opisa kola na VHDL-u. takoñe je dat prikaz interfejsa časovnika sa eksternim kolima
(oscilator, displej…).
2.1 Zahtevi
U tekstu zadatka je rečeno da sistem treba projektovati tako da se za merenje vremena
koristi izor iz spoljnog oscilatora frekvencije 20MHz. prikaz rezultata merenja odvija se na
sedmosegmentnom LED displeju u formatu prikazanom na slici 1. Takoñe je predviñeno
postojanje tastera kojim se sistem može podesiti u željeno stanje radi prikaza tačnog vremena.
2.2 Prikaz rešenja
Slika 3 – Prikaz arhitekture sistema
4
Na slici 3 dat je prikaz arhitekture digitalnog časovnika. Sa slike se mogu uočiti
blokovi koji pripadaju celinama prikazanim na slici 2. Sa slike se uočava sistem brojača kao i
kolo za deljenje frekvencije. Ostali delovi sistema su tu da obezbede ispravno funkcionisanje
sistema. Za prikaz na sedmosegmentni LED displej neophodno je prilagoditi format BCD
cifara na format potreban za prikaz. Zato se na izlazu svakog BCD brojača postavlja
dekodersko kolo koje prevodi prezentaciju broja iz jedne u drugu formu. Takoñe se uočava i
sistem od 4 multipleksera i kolo za formiranje signala za selekciju cifre koja se podešava
pomoću tastera.
Kolo delitelja frekvencije treba da ulaznu frekvenciju od 20 MHz podeli i formira
signal frekvencije 1 Hz. Za te potrebe koristi se sistem od dva brojača i jednog T flip flopa.
Kola multipleksera se koriste kako bi se selektovao izvor taktnog signala za BCD brojače. U
normalnom režimu rada, izvor takta potiče od signala kojim se formira krajnje stanje BCD
brojača, ili u terminologiji digitalnih brojača stanje poznato kao overflow. U režimu kada se
podešava stanje sistema, takni signal potiče od spoljnog tastera za podešavanje sistema. Svaki
pritisak na taster uvećaće stanje selektovanog brojača. Predviñeno je da se može podesiti
stanje četiri brojača. To su brojači za minute i brojači za sate. Brojače za sekunde nije
praktično podešavati.
Koli za formiranje selekcionog signala je kružni registar koji pomera logičku nulu
kojom se vrši selekcija cifre-BCD brojača koji se podešava. Pritiskom na taster set, nula se
pomeri za jedno mesto, i selektuje se naredni brojač čije se stanje podešava. Operacija
podešavanja počinje pritiskom na taster set i tada nula dolazi na mesto koje selektuje gornji
ulaz multipleksera za BCD brojač za desetice časova. Pritisak na taster + uvećava stanje
brojača za jedan. Narednim pritiskom na taster set nula kružnog registra dolazi na mesto
kojim se selektuje BCD brojač za jedinice časova. Kao i u prethodnom slučaju, stanje BCD
brojača uvećava se za jedan nakon pritiska na taster +. Narednim pritiskom na taster set dobija
se mogućnost podešenja stanja desetica minuta, a narednim se omogućava podešenje stanja
jedinica za minute. Peti po redu pritisak na taster set dovodi nulu u kružnom registru u tzv.
standby stanje, tj. kolo časovnika prelazi u normalan režim rada.
Kolo dekodera na izlazu BCD brojača prilagoñava stanje BCD brojača za prikaz na
sedmosegmentnom displeju. Na slici 4 data je šema po kojoj se vrši kodiranje informacije.
Slika 4 – Pregled šeme za kodiranje decimalnih cifara
Na slici 3 se uočava blok koji ima funkciju da izvrši reset stanja časovnika kada doñe
u stanje 24:00:00. Ovo je stanje u kojem se resetuje sadržaj dva BCD brojača za časove, dok
se preostali brojači interno resetuju iz njihovih krajnjih stanja u početno. Blok predstavlja
dvoulazno I kolo na čije ulaze je doveden bit 1 dekadnog BCD 2 brojača za časove, a na drugi
ulaz je doveden bit 2 brojača jedinica časova BCD 10.
5
U nastavku teksta sledi kraći opis blokova sistema sa slike 3 na VHDL-u, kao i opis
celog kola.
2.3 Opis kola na VHDL-u
Najpre će biti opisano kolo za deljenje frekvencije. Za potrebe deljenja frekvencije,
najčešće se koristi T flip flop. Na izlazu T flip flopa signal takta ima dva puta manju
frekvenciju od ulazne. Tipični delitelji se realizuju kao niz T flip flopova. Na taj način se
frekvencija deli 2n puta, gde je n broj T flip flopova u lancu. Meñutim, ovde nije pogodno
koristiti taj pristup. Razlog za tako nešto je činjenica da se nemože dobiti tačna frekvencija od
1 Hz deljenjem frekencije od 20 MHz sa cifrom 2n. Zato je primenjen drugi princip deljenja.
Deljenje je izvedeno u četiri stepena-koraka. Najpre je frekvencija podeljena sa 10, zatim sa
1000, zatim ponovo sa 1000 i na kraju sa 2. Deljenje sa 10 ostvaruje se modifikovanim
opisom BCD 10 brojača. Modifikovani brojač nema paralelni izlaz za stanje već samo izlaz za
overflow. Deljenje sa 1000 se ostvaruje upotrebom kola brojača sa 10 bita. Broj mogućih
stanja je 1024 (0 do 1023). Brojanje počinje od 0 i kada brojač doñe u stanje 999, na narednu
ivicu taktnog signala dolazi do resetovanja stanja na 0, a na izlazu se generiše overflow signal.
Izlazni signal ima frekvenciju 1000 puta manju u odnosu na taktni signal kola brojača. Izlazni
signal se ponovo vodi na još jedno kolo istog brojača. Izlaz drugog kola brojača ima 1000
puta manju frekvenciju od ulaznog, što ukupno daje frekvenciju od 2 Hz. Dobijeni signal ima
duty cycle od 1/1000, tj. nivo jedinice traje 1000 puta manje u odnosu na nulu. Da bi se duty
cycle sveo na ½, na izlazu drugog brojača postavlja se T flip flop koji frekvenciju deli sa 2, ali
istovremeno se na izlazu dobija signal koji promeni stanje na svakih 107 taktnih intervala
ulaznog taktnog signala, formirajući na taj način signal frekvencije 1 Hz, tj. signal sa
periodom 1s. Kolo delitelja je opisano strukturno . Prvi blok je modifikovani BCD brojač, a
drugi blok je sistem sa dva brojača modula 1000 i jednim T flip flopom. Na slici 5 prikazana
je RTL šema kola, a u nastavku je dat VHDL kod kola sa brojačima i T flip flopom.
Slika 5 – RTL dijagram kola delitelja frekvencije iz RTL schematic viewer-a
entity freq_devider_10_6 is
port(clock : in std_logic;
reset : in std_logic;
freq_devider_out : out std_logic);
end freq_devider_10_6;
architecture Behavioral of freq_devider_10_6 is
constant end_state : unsigned(9 downto 0):="1111100111";
begin
proc:process(clock, reset)
variable state_1, state_2 : unsigned(9 downto 0):="0000000000";
variable t : std_logic;
begin
if reset = '1' then
6
state_1 := "0000000000";
state_2 := "0000000000";
else
if rising_edge(clock) then
if state_1 = end_state then
if state_2 = end_state then
state_2 := "0000000000";
t := not t;
else
state_2 := state_2 + 1;
end if;
state_1 := "0000000000";
else
state_1 := state_1 + 1;
end if;
end if;
end if;
freq_devider_out <= t;
end process;
end Behavioral;
Kolo kružnog registra za formiranje signala za selekciju koji se koristi pri podešavanju
željenog stanja sistema brojača, opisano je behavioralno. Registar ima 5 bita. Bit najveće
težine se nakon reseta inicijalizuje na vrednost 0. A svi ostali na vrednost 1. Kolo ima
funkciju da na svom četvorobitnom izlazu drži stanje 1111 kada se kolo nalazi u normalnom
režimu rada. Kada se dovede rastuća ivica taknog signala (pritisak na taster set), registar izvrši
pomeranje i stanje na izlazu odgovara stanju gde je 0 pomerena za jedno mesto udesno. Tako
je pri podešenju desetica časova, stanje na izlazu registra 0111, za podešavanje jedinica
časova 1011, itd. Nakon petog pritiska na taster set, nula se vraća na mest bita najveće težine,
a signal na izlazu je jednak 1111. U nastavku teksta dat je VHDL kod kola kružnog
pomeračkog registra.
entity zero_shift_reg is
Port ( clock : in STD_LOGIC;
reset : in STD_LOGIC;
output : out std_logic_vector(3 downto 0));
end zero_shift_reg;
architecture Behavioral of zero_shift_reg is
begin
proc:process(clock, reset)
variable state : std_logic_vector(4 downto 0):="01111";
begin
if reset = '1' then
state := "01111";
else
if rising_edge(clock) then
state := state(0) & state(4 downto 1);
end if;
end if;
output <= state(3 downto 0);
end process;
end Behavioral;
7
Kolo BCD brojača opisano je korišćenjem interne promenljive koja uvećava stanje na svaku
rastuću ivicu taktnog signala. Takoñe se u okviru procesa vrši ispitivanje uslova kada dolazi do
overflow-a. Za stanje kada se dešava overflow koristi se konstanta end_state. VHDL kod svih BCD
brojača ima istu strukturu s tom razlikom što svaki od njih ima drugu vrednost za
end_state.kolo modifikovanog BCD 10 brojača nema paralelni izlaz za stanje zatošto nije bilo
potrebe da se koristi u kolu za deljenje frekvencije. U nastavku je dat VHDL kod za kolo
BCD 10.
entity BCD_10 is
port(clock : in std_logic;
reset : in std_logic;
end_out : out std_logic;
state : out std_logic_vector(3 downto 0));
end BCD_10;
architecture Behavioral of BCD_10 is
constant end_state : unsigned(3 downto 0):= "1001" ;
begin
proc:process(clock, reset)
variable int_state : unsigned(3 downto 0):="0000";
begin
if reset = '1' then
int_state := "0000";
end_out <= '0';
else
if rising_edge(clock) then
if int_state = end_state then
int_state := "0000";
end_out <= '1';
else
int_state := int_state + 1;
end_out <= '0';
end if;
end if;
end if;
state <= (std_logic_vector(int_state));
end process;
end Behavioral;
Kolo sedmosegmentnog dekodera opisano je behavioralno korišćenjem case naredbe s
obzirom da postoji potreba za više uslova za proveru vrednosti ulaznog signala na osnovu
koje se odreñuje vrednost za izlazni signal. U nastavku je dat VHDL kod za pomenuto kolo.
entity seven_seg_dec is
port(sSeg_in : in std_logic_vector(3 downto 0);
sSeg_out : out std_logic_vector(7 downto 0));
end seven_seg_dec;
architecture Behavioral of seven_seg_dec is
begin
proc:process(sSeg_in)
begin
case sSeg_in is
8
when "0000" => sSeg_out <= x"3F"; -- 0
when "0001" => sSeg_out <= x"06"; -- 1
when "0010" => sSeg_out <= x"5B"; -- 2
when "0011" => sSeg_out <= x"4F"; -- 3
when "0100" => sSeg_out <= x"66"; -- 4
when "0101" => sSeg_out <= x"6D"; -- 5
when "0110" => sSeg_out <= x"7D"; -- 6
when "0111" => sSeg_out <= x"07"; -- 7
when "1000" => sSeg_out <= x"7F"; -- 8
when "1001" => sSeg_out <= x"6F"; -- 9
when others => sSeg_out <= x"3F"; -- 0
end case;
end process;
end Behavioral;
Kolo multipleksera ima veoma jednostavan i dobro poznati opis tako da njegov VHDL
kod ovde neće biti prikazan. Kolo digitalnog časovnika opisano je strukturno. Svaka od
komponenti sa slike 3 je instancirana i izvršeno je povezivanje portova izmeñu komponenti.
VHDL kod je obiman tako da ovde neće biti predstavljen. Na slici 6 prikazana je RTL šema
opisanog kola. U nastavku sledi opis entiteta i strukture fajlova projekta, a zatim i deo koji se
odnosi na testiranje funkcionalnosti kola.
Slika 6 - RTL šema opisanog kola
2.4 Struktura fajlova
Pri opisu sistema na VHDL-u, koristi se razvojno okruženje Xilinx ISE. Pomenuto
okruženje ima ugrañeni fajl menadžer koji se brine o hijararhiji opisa kola na VHDL-u. Pri
tome je hijararhija predstavljena na nivou stabla. Na ovaj način moguće je pratiti upotrebu
svake instance u kolu na višem nivou hijararhije i na taj način izvršiti primarnu verifikaciju
ispravnog opisa. Na slici 7 dat je prikaz fajl menadžera za projekat digitalnog časovnika. Sa
slike se može uočiti naziv i tip svake instancirane komponente. Redosled kojim su
9
instancirani elementi odgovara onom iz fajla digital_clock.vhd.
Slika 7 – Prikaz strukture VHDL opisa kola
2.5 Opis spoljnih pinova kola
Na slici 8 prikazan je izgled entiteta kola digitalnog časovnika. Sa slike se mogu uočiti
portovi kola časovnika. U nastavku teksta sledi opis svakog porta:
Slika 8 – Prikaz entiteta digitalnog časovnika
-
clock : ulazni port na koji se dovodi spoljni taktni signal frekvencije 20 MHz;
reset : ulazni port na koji se dovodi reset signal kola;
set_time : ulazni port kola koji se priključuje na taster SET kojim se vrši podešavanje
časovnika na tačno vreme;
plus : ulazni port kola koji se priključuje na taster PLUS kojim se vrši podešavanje
pojedinih cifara časovnika;
h10_out : izlazni port kola koji se povezuje na sedmosegmentni displej za prikaz
dekadne cifre za časove;
h01_out : izlazni port kola koji se povezuje na displej za jedinice časova;
m10_out : izlazni port kola koji se povezuje na displej za dekadne cifre minuta;
m01_out : izlazni port kola koji se povezuje na displej za jedinice minuta;
10
-
s10_out : izlazni port kola koji se povezuje na displej za dekadne cifre sekudi;
s01_out : izlazni port kola koji se povezuje na displej za prikaz jedinica sekundi.
2.6 Rezultati simulacije
Simulacija rada kola izvršena je tako što je originalni opis kola na VHDL-u malo
modifikovan. Modifikacija se ogleda u vidu uklanjanja kola za deljenje ulazne frekvencije
kola. Razlog za ovako nešto potiče od stanja u koje program odlazi prilikom simulacije rada
originalnog kola. Proces simulacije moguće je izvršiti za najviše nekoliko sekundi što je
zapravo ograničeno količinom RAM memorije računara. Naime, pri simulaciji rada kola, XST
simulator počinje da zauzima veliku količinu RAM-a i neminovno dolazi do stanja kada se
kolčina raspoloživog RAM-a smanji toliko da program doñe u stanje u kome prijavi grešku.
Pokušaj simulacije sproveden je i za slučaj kada se na modifikovano kolo direktno dovede
taktni signal od jedne sekunde, ali bez delitelja frekvencije. Tada dolazi do slične situacije
koja je gore opisana. Iz pomenutih razloga, za testiranje je usvojeno da se kolo pobuñuje
frekvencijom od 1 MHz, a testirano je kolo bez delitelja frekvencije. Treba reći i to da se i pri
ovakvoj test konfiguraciji ispoljava pojava velikog zauzeća RAM-a, ali je u ovom slučaju
simulaciju moguće izvršiti za jedan ceo ciklus merenja vremena, tj za period od 24
časa.
Slika 9 – Vemenski dijagram simulacije rada nad behavioralnim modelom kola
Slika 10 - Prikaz sekvence podešavanja časovnika
11
Na slici 9 dat je vremenski dijagram simulacije rada kola za ceo ciklus od 24 časa.
Test kola osmišljen je tako da se prikaže i proces kada se podešava tačno vreme časovnika.
Tako je usvojeno da se u jednom kratkom vremenskom intervalu formira sekvenca pobudnih
signala koja simulira pritisak tastera SET i PLUS. Na slici 10 prikazan je detalj vremenskog
dijagrama koji prikazuje talasne oblike signala SET i PLUS, kao i promenu stanja na izlazima
odgovarajućeg brojača koji se podešava. Tako se na vremenskom dijagramu sa slike 10 može
uočiti 6 izlaza kola koji prikazuju sedmosegmenti kod, a ispod njih se nalazi 6 vrednost koje
predstavljaju izlaze BCD brojača date u istom redosledu kao i odgovarajući signali sa izlaznih
portova kola. na taj način je lakše pratiti stanja BCD brojača. Prikazani vremenski dijagrami
prikazuju da kolo radi ispravno. U narednom delu teksta prikazana je simulacija rada nad
post-route modelu kola.
12
IMPLEMENTACIJA
3. Implementacija
Implementacija opisanog kola, tj. test okruženja, izvršena je na Virtex2 FPGA čipu. U
ovom delu teksta dati su rezultati implementacije kola koji se ogledaju u pregledu zauzeća
resursa na upotrebljenom FPGA čipu, vremenski parametri kola, kao i vremenski dijagram
simulacije rada kola.
3.1 Implementacija kola
Implementacija opisanog kola vrši se na Virtex2 FPGA čipu. Za implementaciju je
izbrano kolo XC2V250 u pakovanju FG456. Kolo ima 1536 slice-a od kojih svaki slice ima
po dve LUT sa 4 ulaza i po dva flip flopa. U nastavku teksta dati su detalji koji se 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 nad behavioralnim modelom kola, dokazano je da
je opis kola na VHDL-u dobar. Meñutim, behavioralni model kola ne uključuje postojanje
parazitnih parametara kola 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 rezultata, a kada se izvrši implementacija na
FPGA čipu, dobijemo 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 koji su svi preslikani u vremenski domen u vidu kašnjenja 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šestrikih prelaza je nejednaka putanja
signala kroz kolo, kao i propagacije kroz elemente kola.
Slika 11 – Vremenski dijagram simulacije rada kola sa post route modelom kola
Na slici 11 prikazan je vremenski dijagram koji se dobije nakon izvršene simulacije
rada kola nad post-route modelom. Na slici su prikazani izlazi kola, dok izlaze brojača nije
moguće predstaviti na vremenskom dijagramu sa lakoćom kao kod behavioralnog modela
13
kola. Sa slike se može uočiti da prikazane vrednosti odgovaraju vrednostima sa slike 9 što
direktno ukazuje na činjenicu da kolo ispravno funkcioniše i sa modelom kod kojeg su
uključeni fizički parametri kola preslikani u vreme propagacije signala. Na slici 12 prikazan je
detalj simulacije rada kola nad post-route modelom. Na slici je prikazan detalj kada dolazi do
reseta dva brojača za prikaz časova. Pažljivom analizom dijagrama vidi se da je vreme
uspostavljanja validnih vrednosti u kolima brojača proporcionalno putanji signala kroz kola.
vidimo da se najpre uspostavlja vrednost za sekunde, a zatim i vrednosti brojača za minute i
časove. Brojači za časove se u ovom trenutku postavljaju u stanje 24, ali se isto tako odmah
postavlja i signal koji resetuje oba brojača i na taj način ih postavlja u stanje 00. Ovaj detalj
nije postojao kod simulacije nad behavioralnim modelom kola. Naime, stanje brojača
uspostavljeno je trenutno.
Slika 12- Detalj simulacije sa post route modelom kola
Iz priloženih dijagrama dolazi se do zaključka da kolo digitalnog časovnika radi
ispravno i da je VHDL opis kola korektan, a pri tome su zadovoljeni svi zahtevi iz teksta
zadatka. U nastavku teksta razmotreni su rezultati implementacije kola na FPGA čip.
3.3 Rezultati implementacije kola
Implementacija 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 kod optimalan. U
tabeli 1 dati su podaci koji govore o zauzeću resursa na upotrebljenom FPGA čipu. Može se
uočiti da broj slice-ova odgovara broju navedenom u uvodnom delu ovog dela teksta. Takoñe
Tabela 1 - Iskorišćenje resursa VirtexE čipa
se može uočiti da broj upotrebljenih LUT-a i flip flopova. Procenat iskorišćenja resursa kola
14
je veoma mali, što je i bilo očekivano celo kolo ima 6 BCD brojača za cifre časovnika i još tri
brojača, jedan modifikovani BCD i dva brojača modula 1000 u okviru kola za deljenje
frekvencije. Kombinaciona logika ima malo veći procenat zauzeća zbog postojanja
sedmosegmentnih dekodera za prikaz cifara na displeju.
U tabeli 2 dati su vremenski parametri kola koji prikazuju da kolo može da radi sa
frekvencijom od čak 462 MHz. 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
postavljanja
signala pre
aktivne ivice
takta
Vreme kašnjenja
signala nakon
aktivne ivice
takta
Maksimalno
kašnjenje petlje
kombinacione
logike
462,963 MHz
-
5,852 ns
-
Tabela 2 – Pregled vremenskih parametara post-route modela kola
15
ZAKLJUČAK
4. Zaključak
U ovom radu opisan je postupak projektovanja digitalnog časovnika. Arhitektura kola
časovnika je opisana na VHDL-u. Svi uslovi iz teksta zadatka su ispunjeni. U kolu postoje
tasteri za podešenje tačnog vremena, implementacija je izvršena na Virtex2 FPGA čipu, a
simulacijama nad behavioralnim i post-route modelom kola dokazana je ispravnost rada kola.
16
LITERATURA
5. Literatura
1. http://en.wikipedia.org/wiki/Time
2. Circuit Design with VHDL, Volnei A. Pedroni, MIT press
17
TABELA ZA PREGLED I OCENU SEMINARSKOG RADA
Ime teme
Ime i prezime, broj indeksa
Lista – podsetnik za ocenjivanje
A
Kod
komentari u zaglavljima fajlova
komentari kroz kod
naming convenctions
korisnički tipovi podataka
priloženi rezultati simulacije
konstrukcije netipične za VHDL
B
Dokumentacija
prisutna dokumentacija u
elektronskom obliku
priložen plan rada i plan testiranja
doslednost korespondencije
dokumentacije i koda
testiranje, proverljivost rezultata
poštovanje uputstava iz templejta
C
Proces rada
poštovanje rokova
samostalnost u radu
originalnost primenjenog rešenja
Finalna evaluacija
kategorija
Funkcionalnost
Primenjene tehnike
Analiza rešenja
Prezentacija rešenja
Poštovanje rokova
Ukupno
max
50
20
15
15
10
100
ocena
napomena
18
Download

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