projektovanje digitalnih sistemaes.elfak.ni.ac.rs/pld/materijal/ise tutorial 2_11.pdf ·...
TRANSCRIPT
ISE TutorijalII deo
Programabilna digitalna kola
Binarni brojač
count16rsten
clk
cout
4
q
en - dozvola brojanja
rst - sinhrono resetovanje
q - izlazi brojača
cout - izlazni prenos (1 za q = ˝1111˝)
Koraci Opis registarske komponente u VHDL-u Kreiranje testbenča Funkcionalna simulacija Sinteza i implementacija Vremenska simulacija Kreiranje test kola Sinteza i implementacija test kola Generisanje fajla za programiranje i programiranje
FPGA komponente. Testiranje
Kreiranje novog projekta
count16
Podešavanja
Novi projektni fajl
count16
Interfejscount16rst
en
clk
cout
4
q
Numeric_std USE IEEE.NUMERIC_STD.ALL
umesto
Paket numeric_std je standardni IEEE paket za aritmetiku u VHDL-u.
Paketi std_logic_arith i std_logic_unsigned, kao i paket std_logic_signed imaju sličnu namenu, ali nisu IEEE standard.
Koju od dve mogućnosti koristiti, stvar je izbora projektanta.
Naš izbor je numeric_std.
Pisanje koda
1
2
TestbenčVHDL modul koji se piše radi simulacije koda koji razvijamo.
U testbenču sadrži kod koji razvijamo u vidu instancirane komponente, plus dodatni kod generiše pobudne signale.
Testbenč nema ulaze i izlaze
Kod koji generise pobudne signale
Komponenta koja se testira
(count16)
en
clk
q
Testbenc
rstcout
Generisanje test benča
count16_tb
Desnim dugmetom misa preko imena VHDL
modula, a onda ˝New Source˝
Generisanje test benča
Ovde se bira VHDL modul za koji se generiše testbenč
(u našem projektu, za sada, postoji samo jedan modul)
1
2
Rezime testbenčaInformativni dijalog, poslednja mogućnost za povratak na
prethodne korake (Back)
Biramo Finish
Testbench
Arhitektura mikrosistema
Ne brisati ! Vreme za inicijalizaciju FPGA komponente nakon
uključenja napajanja
Prazan entitet –Testbench nema ulaze ni izlaze
Deklaracija komponente koja se testira
Unutrašnji signali testbencha za spregu sa portovima komponente koja se testira Taktni period, postaviti 10 ns
Instanciranje komponente koja se testira
Proces za generisanje taktnog signala
Proces za generisanje pobudnih signala, ovde pišemo naš kod, promenitit wait for 10 ns
Prelazak na funkcionalnu simulaciju
12
Testbenč
Kompletiranjetestbenča
Kod za generisanje pobudnih signala
Sve promene ulaznih signala sinhronizovane su s opadajućom ivicom taktnog signala (zato što se taktovanje brojača vrši rastucom ivicom)
Provera sintakse
1
2
1. Selektovati testbenč (dupli klik)
2. Dupli klik na Check Syntax
3. Ako je sintaksa testbenča ispravna, pojaviće se zeleni kružić
Pokretanje simulatora
Dupli klik na ˝Simulate
Behavioral Model˝
Rezultat simulacije
Signali Talasni dijagrami
VremeResetovanje simulacije
Startovanje simulacije za zadato vreme
simulacije
Pregled rezultata simulacije
Prva perioda brojanja
Izlazni prenos u završnom stanju
Pregled rezultata simulacije
Reset
Zatvaranje simulatora
1
2
Implementacija
12
3
Generisanja modela za vremensku simulaciju
Dupli klik na ˝Generate Post-Place & Rute Simulation Model˝
Prelazak na vremensku simulaciju
12
Provera sintakse i pokretanje simulacije
12
1. Dupli klik na ˝Check Simulation˝
2. Dupli klik na ˝Simulate Post-Place & Rute Model˝
Šta se zapravo desilo?Na osnovu obavljene implementacije, ˝Generate Post-Place & Rute Simulation Model˝ kreira detaljan strukturni VHDL model sa ubačenim kašnjenjima kroz zauzete elemente FPGA kola (veze, LUT, ...). Ime ovog fajla je count16_timesim.vhd i može se videti duplim klikom na:
Unutrašnji signali FPGA kola
Instanciranje i povezivanje zauzetih elemenata FPGA kola
KašnjenjeGenerisani VHDL model za vremensku simulaciju, count16_timesim.vhd ima identičan iterfejs (portove) kao count16.vhd i za njegovu simulaciju se koristi isti onaj testbenč koji je prethodno kreiran radi funkcionalne simulacije, count16_tb.vhd.
Analiza rezultata vremenske simulacije
Kašnjenje od trenutka rastuće ivice takta do promene stanja na izlazu brojača – 7 ns
Markeri
Gličevi
Analiza rezultata vremenske simulacije
Postavljanje izlaznog prenosa kasni 1.8 ns u odnosu na ulazak u završno stanje ˝1111˝
Deaktiviranje izlaznog prenosa kasni 1.7 ns u odnosu na izlazak iz završnog stanja.
Kreiranje kola za testiranje Kako testirati rad brojača na razvojnom
sistemu?
count16rst
en cout
q
4
q
LED
LEDcout
Rotirajuci prekidac
clkA
clkB
rst
enTest kolo
Taster
Prekidac
VHDL za test kolo
VHDL za test kolo
U arhitekturi test kola instanciraćemo komponentu count16
VHDL za test koloDeklaracija komponente
count16
Deklaracija internih signala test kola
Instanciranje test kola
Proces koji realizuje RS leč
Povezivanje izlaza
Kreiranje UCF-a
Mesto za pisanje ograničenja
Dupli klik na Edit Constraints
Kreiranje UCF-a
Sinteza, implementacija, generisanje fajla za programiranje
1
2
3
Programiranje FPGA komponente Na poznati način
Testiranje
Zadatak Na primeru 4-bitnog obostranog brojača, ponoviti
kompletan postupak projektovanja opisan u ovom tutorijalu.
udcounter
udenrstclk
cout
4
qen - dozvola brojanja
ud - izbor smera brojanja (1 - naviše, 0 - naniže)
rst - sinhrono resetovanje
cout - izlazni prenos (1 za ˝naviše˝ i q = ˝1111˝ ili ˝naniže˝ i q = ˝0000˝