projektovanje digitalnih sistemaes.elfak.ni.ac.rs/pld/materijal/ise tutorial 2_11.pdf ·...

39
ISE Tutorijal II deo

Upload: others

Post on 01-Mar-2020

1 views

Category:

Documents


0 download

TRANSCRIPT

Page 1: Projektovanje digitalnih sistemaes.elfak.ni.ac.rs/pld/Materijal/ISE Tutorial 2_11.pdf · 2013-12-06 · Koraci Opis registarske komponente u VHDL -u Kreiranje testbenča Funkcionalna

ISE TutorijalII deo

Page 2: Projektovanje digitalnih sistemaes.elfak.ni.ac.rs/pld/Materijal/ISE Tutorial 2_11.pdf · 2013-12-06 · Koraci Opis registarske komponente u VHDL -u Kreiranje testbenča Funkcionalna

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˝)

Page 3: Projektovanje digitalnih sistemaes.elfak.ni.ac.rs/pld/Materijal/ISE Tutorial 2_11.pdf · 2013-12-06 · Koraci Opis registarske komponente u VHDL -u Kreiranje testbenča Funkcionalna

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

Page 4: Projektovanje digitalnih sistemaes.elfak.ni.ac.rs/pld/Materijal/ISE Tutorial 2_11.pdf · 2013-12-06 · Koraci Opis registarske komponente u VHDL -u Kreiranje testbenča Funkcionalna

Kreiranje novog projekta

count16

Page 5: Projektovanje digitalnih sistemaes.elfak.ni.ac.rs/pld/Materijal/ISE Tutorial 2_11.pdf · 2013-12-06 · Koraci Opis registarske komponente u VHDL -u Kreiranje testbenča Funkcionalna

Podešavanja

Page 6: Projektovanje digitalnih sistemaes.elfak.ni.ac.rs/pld/Materijal/ISE Tutorial 2_11.pdf · 2013-12-06 · Koraci Opis registarske komponente u VHDL -u Kreiranje testbenča Funkcionalna

Novi projektni fajl

count16

Page 7: Projektovanje digitalnih sistemaes.elfak.ni.ac.rs/pld/Materijal/ISE Tutorial 2_11.pdf · 2013-12-06 · Koraci Opis registarske komponente u VHDL -u Kreiranje testbenča Funkcionalna

Interfejscount16rst

en

clk

cout

4

q

Page 8: Projektovanje digitalnih sistemaes.elfak.ni.ac.rs/pld/Materijal/ISE Tutorial 2_11.pdf · 2013-12-06 · Koraci Opis registarske komponente u VHDL -u Kreiranje testbenča Funkcionalna

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.

Page 9: Projektovanje digitalnih sistemaes.elfak.ni.ac.rs/pld/Materijal/ISE Tutorial 2_11.pdf · 2013-12-06 · Koraci Opis registarske komponente u VHDL -u Kreiranje testbenča Funkcionalna

Pisanje koda

1

2

Page 10: Projektovanje digitalnih sistemaes.elfak.ni.ac.rs/pld/Materijal/ISE Tutorial 2_11.pdf · 2013-12-06 · Koraci Opis registarske komponente u VHDL -u Kreiranje testbenča Funkcionalna

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

Page 11: Projektovanje digitalnih sistemaes.elfak.ni.ac.rs/pld/Materijal/ISE Tutorial 2_11.pdf · 2013-12-06 · Koraci Opis registarske komponente u VHDL -u Kreiranje testbenča Funkcionalna

Generisanje test benča

count16_tb

Desnim dugmetom misa preko imena VHDL

modula, a onda ˝New Source˝

Page 12: Projektovanje digitalnih sistemaes.elfak.ni.ac.rs/pld/Materijal/ISE Tutorial 2_11.pdf · 2013-12-06 · Koraci Opis registarske komponente u VHDL -u Kreiranje testbenča Funkcionalna

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

Page 13: Projektovanje digitalnih sistemaes.elfak.ni.ac.rs/pld/Materijal/ISE Tutorial 2_11.pdf · 2013-12-06 · Koraci Opis registarske komponente u VHDL -u Kreiranje testbenča Funkcionalna

Rezime testbenčaInformativni dijalog, poslednja mogućnost za povratak na

prethodne korake (Back)

Biramo Finish

Page 14: Projektovanje digitalnih sistemaes.elfak.ni.ac.rs/pld/Materijal/ISE Tutorial 2_11.pdf · 2013-12-06 · Koraci Opis registarske komponente u VHDL -u Kreiranje testbenča Funkcionalna

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

Page 15: Projektovanje digitalnih sistemaes.elfak.ni.ac.rs/pld/Materijal/ISE Tutorial 2_11.pdf · 2013-12-06 · Koraci Opis registarske komponente u VHDL -u Kreiranje testbenča Funkcionalna

Prelazak na funkcionalnu simulaciju

12

Testbenč

Page 16: Projektovanje digitalnih sistemaes.elfak.ni.ac.rs/pld/Materijal/ISE Tutorial 2_11.pdf · 2013-12-06 · Koraci Opis registarske komponente u VHDL -u Kreiranje testbenča Funkcionalna

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)

Page 17: Projektovanje digitalnih sistemaes.elfak.ni.ac.rs/pld/Materijal/ISE Tutorial 2_11.pdf · 2013-12-06 · Koraci Opis registarske komponente u VHDL -u Kreiranje testbenča Funkcionalna

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ć

Page 18: Projektovanje digitalnih sistemaes.elfak.ni.ac.rs/pld/Materijal/ISE Tutorial 2_11.pdf · 2013-12-06 · Koraci Opis registarske komponente u VHDL -u Kreiranje testbenča Funkcionalna

Pokretanje simulatora

Dupli klik na ˝Simulate

Behavioral Model˝

Page 19: Projektovanje digitalnih sistemaes.elfak.ni.ac.rs/pld/Materijal/ISE Tutorial 2_11.pdf · 2013-12-06 · Koraci Opis registarske komponente u VHDL -u Kreiranje testbenča Funkcionalna

Rezultat simulacije

Signali Talasni dijagrami

VremeResetovanje simulacije

Startovanje simulacije za zadato vreme

simulacije

Page 20: Projektovanje digitalnih sistemaes.elfak.ni.ac.rs/pld/Materijal/ISE Tutorial 2_11.pdf · 2013-12-06 · Koraci Opis registarske komponente u VHDL -u Kreiranje testbenča Funkcionalna

Pregled rezultata simulacije

Prva perioda brojanja

Izlazni prenos u završnom stanju

Page 21: Projektovanje digitalnih sistemaes.elfak.ni.ac.rs/pld/Materijal/ISE Tutorial 2_11.pdf · 2013-12-06 · Koraci Opis registarske komponente u VHDL -u Kreiranje testbenča Funkcionalna

Pregled rezultata simulacije

Reset

Page 22: Projektovanje digitalnih sistemaes.elfak.ni.ac.rs/pld/Materijal/ISE Tutorial 2_11.pdf · 2013-12-06 · Koraci Opis registarske komponente u VHDL -u Kreiranje testbenča Funkcionalna

Zatvaranje simulatora

1

2

Page 23: Projektovanje digitalnih sistemaes.elfak.ni.ac.rs/pld/Materijal/ISE Tutorial 2_11.pdf · 2013-12-06 · Koraci Opis registarske komponente u VHDL -u Kreiranje testbenča Funkcionalna

Implementacija

12

3

Page 24: Projektovanje digitalnih sistemaes.elfak.ni.ac.rs/pld/Materijal/ISE Tutorial 2_11.pdf · 2013-12-06 · Koraci Opis registarske komponente u VHDL -u Kreiranje testbenča Funkcionalna

Generisanja modela za vremensku simulaciju

Dupli klik na ˝Generate Post-Place & Rute Simulation Model˝

Page 25: Projektovanje digitalnih sistemaes.elfak.ni.ac.rs/pld/Materijal/ISE Tutorial 2_11.pdf · 2013-12-06 · Koraci Opis registarske komponente u VHDL -u Kreiranje testbenča Funkcionalna

Prelazak na vremensku simulaciju

12

Page 26: Projektovanje digitalnih sistemaes.elfak.ni.ac.rs/pld/Materijal/ISE Tutorial 2_11.pdf · 2013-12-06 · Koraci Opis registarske komponente u VHDL -u Kreiranje testbenča Funkcionalna

Provera sintakse i pokretanje simulacije

12

1. Dupli klik na ˝Check Simulation˝

2. Dupli klik na ˝Simulate Post-Place & Rute Model˝

Page 27: Projektovanje digitalnih sistemaes.elfak.ni.ac.rs/pld/Materijal/ISE Tutorial 2_11.pdf · 2013-12-06 · Koraci Opis registarske komponente u VHDL -u Kreiranje testbenča Funkcionalna

Š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.

Page 28: Projektovanje digitalnih sistemaes.elfak.ni.ac.rs/pld/Materijal/ISE Tutorial 2_11.pdf · 2013-12-06 · Koraci Opis registarske komponente u VHDL -u Kreiranje testbenča Funkcionalna

Analiza rezultata vremenske simulacije

Kašnjenje od trenutka rastuće ivice takta do promene stanja na izlazu brojača – 7 ns

Markeri

Gličevi

Page 29: Projektovanje digitalnih sistemaes.elfak.ni.ac.rs/pld/Materijal/ISE Tutorial 2_11.pdf · 2013-12-06 · Koraci Opis registarske komponente u VHDL -u Kreiranje testbenča Funkcionalna

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.

Page 30: Projektovanje digitalnih sistemaes.elfak.ni.ac.rs/pld/Materijal/ISE Tutorial 2_11.pdf · 2013-12-06 · Koraci Opis registarske komponente u VHDL -u Kreiranje testbenča Funkcionalna

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

Page 31: Projektovanje digitalnih sistemaes.elfak.ni.ac.rs/pld/Materijal/ISE Tutorial 2_11.pdf · 2013-12-06 · Koraci Opis registarske komponente u VHDL -u Kreiranje testbenča Funkcionalna

VHDL za test kolo

Page 32: Projektovanje digitalnih sistemaes.elfak.ni.ac.rs/pld/Materijal/ISE Tutorial 2_11.pdf · 2013-12-06 · Koraci Opis registarske komponente u VHDL -u Kreiranje testbenča Funkcionalna

VHDL za test kolo

U arhitekturi test kola instanciraćemo komponentu count16

Page 33: Projektovanje digitalnih sistemaes.elfak.ni.ac.rs/pld/Materijal/ISE Tutorial 2_11.pdf · 2013-12-06 · Koraci Opis registarske komponente u VHDL -u Kreiranje testbenča Funkcionalna

VHDL za test koloDeklaracija komponente

count16

Deklaracija internih signala test kola

Instanciranje test kola

Proces koji realizuje RS leč

Povezivanje izlaza

Page 34: Projektovanje digitalnih sistemaes.elfak.ni.ac.rs/pld/Materijal/ISE Tutorial 2_11.pdf · 2013-12-06 · Koraci Opis registarske komponente u VHDL -u Kreiranje testbenča Funkcionalna

Kreiranje UCF-a

Mesto za pisanje ograničenja

Dupli klik na Edit Constraints

Page 35: Projektovanje digitalnih sistemaes.elfak.ni.ac.rs/pld/Materijal/ISE Tutorial 2_11.pdf · 2013-12-06 · Koraci Opis registarske komponente u VHDL -u Kreiranje testbenča Funkcionalna

Kreiranje UCF-a

Page 36: Projektovanje digitalnih sistemaes.elfak.ni.ac.rs/pld/Materijal/ISE Tutorial 2_11.pdf · 2013-12-06 · Koraci Opis registarske komponente u VHDL -u Kreiranje testbenča Funkcionalna

Sinteza, implementacija, generisanje fajla za programiranje

1

2

3

Page 37: Projektovanje digitalnih sistemaes.elfak.ni.ac.rs/pld/Materijal/ISE Tutorial 2_11.pdf · 2013-12-06 · Koraci Opis registarske komponente u VHDL -u Kreiranje testbenča Funkcionalna

Programiranje FPGA komponente Na poznati način

Page 38: Projektovanje digitalnih sistemaes.elfak.ni.ac.rs/pld/Materijal/ISE Tutorial 2_11.pdf · 2013-12-06 · Koraci Opis registarske komponente u VHDL -u Kreiranje testbenča Funkcionalna

Testiranje

Page 39: Projektovanje digitalnih sistemaes.elfak.ni.ac.rs/pld/Materijal/ISE Tutorial 2_11.pdf · 2013-12-06 · Koraci Opis registarske komponente u VHDL -u Kreiranje testbenča Funkcionalna

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˝