Laboratorij za načrtovanje integriranih vezij - Fakulteta za elektrotehniko, Ljubljana

Navodila za Xilinx ISE in ModelSim

1. Namestitev ISE in ModelSim | 2. Osnove Xilinx ISE | 3. Simulacija vezja | 4. Digilent orodja

Navodila za simulacijo v Xilinx ISE

Simulacija digitalnih vezij

V novejših verzijah orodja ISE imammo na voljo vgrajen simulator, ki pa zahteva predhodno pripravo testne strukture. V prvi točki bo prikazana grafična izdelava testne strukture (Test Bench Waveform). To orodje v najnovejši različici programske opreme ISE V11 žal ni več podprto.

V laboratoriju imamo nameščen simulator ModelSim, v katerem lahko izvajamo simulacijo s testno strukturo ali brez nje. Drugi del dokumenta na krako predstavlja izvedbo simulacije v ModelSim brez testne strukture.

1. Grafična izdelava testne strukture

V Project Navigatorju izberemo iz menuja Project: New Source. Odpre se okno v katerem vnesemo ime testne strukture in na levi izberemo vrsto: Test Bench Waveform. Nato se odpre okno v katerem določimo osnovne parametre testne strukture. Po potrebi nastavimo parametre ure (Clock), začetno trajanje testnih signalov (Initial Length of Test Bench) in pritisnemo gumb Finish.

Odpre se grafični urejevalnik signalov. Vlak impulzov za uro v vezju je že nastavljen, tako da je potrebno le še določiti časovni potek ostalih vhodnih signalov. Signalu s klikom na modra polja (ob vsaki periodi je eno modro polje) invertiramo vrednost. Ko narišemo časovno spreminjanje vseh vhodov je testna struktura pripravljena, tako da jo lahko shranimo in zapremo okno.

V kontrolnem oknu na levi strani naj bo odprt zavihek Source. Izberemo opcijo Sources for: Behavioral Simulation, kot kaže slika. Kliknemo na ime testne strukture in v oknu Processes bomo opazili ikono ModelSim Simulator. Kliknemo na + da se odpre Simulate Behavioral Model. Kliknemo z desnim gumbom na ikono simulatorja, tako se odpre menu iz katerega izberemo Properties in po potrebi nastavimo simulacijski čas (Simulation Run Time), ki naj bo enak času trajanja testne strukture. Nato le še z dvojnim klikom poženemo simulator in pregledamo rezultate.

2. Simulator Modelsim

Najlažje uporabljamo simulator tako, da ga poženemo iz programa Xilinx ISE, ker bo v tem primeru avtomatsko pognal skripto, ki prevede VHDL kodo, starta simulator in prenese vse signale v okno waveform.

Naslednji korak je določitev stimulatorjev vhodnim signalom. V najbolj preprosti obliki določimo konstantno vrednost signala ali periodičen signal tako, da kliknemo na ime vhodnega signala z desnim gumbom in izberemo Force ali Clock. Pri Force nastavimo vrednost (Value) v binarni obliki ali drugem številskem sistemu (npr. vrednost 5 v desetiškem sistemu: 10#5). Kadar uporabljamo stimulator Clock pa moramo predvsem nastaviti periodo - privzete enote so ps, če želimo drugače pa enoto dopišemo (npr. 100 ns).

Stimulatorje lahko določamo tudi s tekstovnimi ukazi, ki jih pišemo v spodnje okno (Transcript) ali pa shranimo v makro datoteko (do file) in poženemo (Tools > Execute macro). Tekstovni ukazi se generirajo tudi med nastavljanjem stimulatorjev z miško.

Simulacijo poženemo s klikom na gumb Run (1), ki se nahaja desno od okenca v katerem določimo simulacijski čas. Enostavne simulacije delamo tako, da poženemo simulacijo za določen čas, spremenimo konstantne stimulatorje, ponovno poženemo simulacijo itd. Če želimo ponoviti simulacijo od začetka, kliknemo na Restart (2), ki se nahaja levo od okenca s simulacijskim časom. Pri pregledu časovnega poteka signalov uporabimo ikone za zoomiranje (3).

Program prikazuje vrednosti vektorskih signalov v binarni obliki. Če želimo drugačen prikaz, z desnim klikom na ime signala izberemo obliko (Radix). Najpogosteje bomo izbrali nepredznačeno desetiško (Unsigned) ali predznačeno obliko (Decimal). Če izberemo z levim gumbom miške več signalov, lahko vsem naenkrat spremenimo prikaz.

Izvedba časovne simulacije

Časovno simulacijo vezja delamo z modelom, ki ga naredi programska oprema po implementaciji. Ko v programu ISE poženemo Generate Post... Simulation Model, dobimo VHDL model na nivoju gradnikov (ime_vezja_timesim.vhd) in datoteko z modelom zakasnitev (*.sdf). V programu ModelSim najprej prevedemo dobljeni model (Compile), nato pa odpremo okno za zagon simulacije (Simulate > Start Simulation).

Najprej kliknemo na zavihek SDF in v simulacijsko področje vključimo dobljeno *.sdf datoteko. Nato gremo nazaj na zavihek Design in pod knjižnico work izberemo vezje za simulacijo. Odpreti moramo ime vezja in izbrati arhitekturo z imenom structure, kot kaže slika na levi. Kliknemo OK in simulator se bo zagnal.

Sedaj moramo še z miško prenesti tiste signale iz okna object v simulacijko okno wave, ki jih bomo opazovali. Nato nastavimo stimulatorje in izvedemo simulacijo za določen čas. Na časovnem poteku signalov bomo opazili zakasnitve, ki predstavljajo ocenjene zakasnitve signalov v gradnikih vezja.

(c) Andrej Trost, LNIV 2010