Projektovanje digitalnih sistemaes.elfak.ni.ac.rs/pld/Materijal/ISE Tutorial 2_11.pdf ·...

Post on 01-Mar-2020

3 views 0 download

Transcript of Projektovanje digitalnih sistemaes.elfak.ni.ac.rs/pld/Materijal/ISE Tutorial 2_11.pdf ·...

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˝