400 likes | 548 Views
ISE Tutori j al. II deo. Binarni brojač. 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 Sinte za i implementacija
E N D
ISE Tutorijal II deo
Binarni brojač en - dozvola brojanja rst - sinhrono resetovanje q - izlazi brojača cout - izlazni prenos (1 za q = ˝1111˝) Programabilna digitalna kola
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
Novi projektni fajl count16
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
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ča Informativni dijalog, poslednja mogućnost za povratak na prethodne korake (Back) Biramo Finish
Testbenč Automatski generisani kod Ne brisati ! Vreme za inicijalizaciju FPGA komponente nakon uključenja napajanja
Prelazak na funkcionalnu simulaciju 1 Testbenč 2
Kompletiranjetestbenča Generisanje taktnog signala
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 • Selektovati testbenč (dupli klik) • Dupli klik na Check Syntax • Ako je sintaksa testbenča ispravna, pojaviće se zeleni kružić 2
Pokretanje simulatora Dupli klik na ˝Simulate Behavioral Model˝
Rezultat simulacije Startovanje simulacije za zadato vreme simulacije Resetovanje simulacije Vreme Talasni dijagrami Signali
Pregled rezultata simulacije Izlazni prenos u završnom stanju Prva perioda brojanja
Implementacija 1 2 3
Generisanja modela za vremensku simulaciju Dupli klik na ˝Generate Post-Place & Rute Simulation Model˝
Provera sintakse i pokretanje simulacije 1 2 • Dupli klik na ˝Check Simulation˝ • 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 Kašnjenje Generisani 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. Instanciranje i povezivanje zauzetih elemenata FPGA kola
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?
VHDL za test kolo U arhitekturi test kola instanciraćemo komponentu count16
VHDL za test kolo Deklaracija 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
Sinteza, implementacija, generisanje fajla za programiranje 1 2 3
Programiranje FPGA komponente • Na poznati način
Zadatak • Na primeru 4-bitnog obostranog brojača, ponoviti kompletan postupak projektovanja opisan u ovom tutorijalu. en - 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˝