ModelSim szimulátor

ModelSim szimulátor

Szeretnék beszélni egy kicsit a digitális szimulációs projektek. Igen, igen. Ez a téma már többször felmerült, és természetesen - egy kimeríthetetlen téma. Még egyszer írt a szimulációs eszközök Quartus II változat 9. de a legújabb verzióját Quartus II v10 a „natív” alterovskogo szimulátor többé. Hogy megmondjam az igazat, én ideges. A kis projektek esetében ez szimulátor elég. Aztán írtam egy cikket a iverilog szimulátor - egy egyszerű, nyílt forráskódú szimulátor - elég tisztességes dolog. És most szeretnék röviden beszélni a program ModelSim:

ModelSim szimulátor

Fogok beszélni egyik változata, azaz a ModelSim Altera Starter Edition.

Ott megjelenik egy táblázat összehasonlító jellemzőit különböző változatai ModelSim:

Úgy döntünk, Starter Edition - ez ingyenes, nem igényel engedélyt lehet használni a kis projektek akár 10.000 sornyi kódot. Azt hiszem, nem elég, hogy fejét. Átadjuk az alábbi letöltési linkre. Azt verzióját válasszák a Windows. fájlméret letöltendő - 586Mb. Ez nem kicsi, de nem túl sok jelenleg. Általánosságban, a rock és set ..

Most azt akarom, prosimulirovat ugyanazt a példát, amely már sikeresen próbáltuk utánozni a iverilog. Ez a két szamlalo.v fájlt és tcounter.v - azok helyét az én mappa C: \ Altera \ 10.0 \ projektek \ először.
A tartalom ezen fájlok itt:

szamlalo.v - egy számláló párhuzamos terhelés. Ha WR jel aktív ebben a pillanatban az első clk. regiszterben a számláló száma beviteli busz wdata rögzítésre. Ellenkező esetben a számláló értéke eggyel nő mindegyik első clk.

modul számláló (
bemeneti huzal visszaállítása,
bemeneti huzal clk,
bemeneti huzal [7: 0] wdata,
bemeneti huzal wr,
kimeneti reg [7: 0] adatok
);
Mindig @ (posedge clk vagy posedge visszaállítás)
if (reset)
adat <= 8'h00;
más
if (WR)
adat <= wdata;
más
adat <= data + 8'h01;

És ez - vcounter.v - „testbench” az én számláló. Ez a program használható, hogy ellenőrizze a helyes működését a számláló modult.

`Időskála 1ns / 100PS
modul test_counter;

reg visszaállítása, CLK, wr;
reg [7: 0] wdata;
drót [7: 0] data_cnt;

számláló counter_inst (reset, CLK, wdata, WR, data_cnt);

kezdeti
kezdődik
clk = 0;
reset = 0;
wdata = 8'h00;
WR = 1'b0;

# 50 reset = 1;
# 4 Reset = 0;
# 50;

@ (Posedge CLK)
# 0
kezdődik
wdata = 8'h55;
WR = 1'b1;
vég

@ (Posedge CLK)
# 0
kezdődik
wdata = 8'h00;
WR = 1'b0;
vég
vég

kezdeti
kezdődik
# 400 $ befejezni;
vég

kezdeti
kezdődik
$ DumpFile ( "out.vcd");
$ Dumpvars (0, test_counter);
$ Dumpvars (0, counter_inst);
vég

kezdeti
$ Monitor ($ stime alaphelyzetbe clk wdata wr data_cnt .....);

Itt vannak a fájlok megpróbálom bizonyítani használata ModelSim munkát.

Amikor futtatja a programot ModelSim látunk ilyesmit képernyő (kattintson a képre a nagyobb):

ModelSim szimulátor

Az első dolog, amit tennie kell -, hogy menjen a munka mappát. Ehhez válassza ki az elemet a File / Change Directory menüben.

ModelSim szimulátor

A párbeszédpanelen adja meg az utat, hogy a projekt:

ModelSim szimulátor

Miután kiválasztotta a mappát, akkor le kell fordítanunk a projekt a könyvtárban. A választás penkt Compile / Compile menü.

ModelSim szimulátor

Itt ki kell választani az összes fájlt a projekthez. Dialog lehetővé teszi, hogy válassza ki egyszerre több fájlt.

ModelSim szimulátor

Válasszon ki egy fájlt - kattints Compile gombra.

ModelSim szimulátor

ModelSim kéri a könyvtár nevét kell létrehozni. Alapesetben a nevét a munkát. Nos ez legyen meg. A válasz igen. Miután összeállítása a Transcript ablakban ellenőrizze, hogy nincsenek hibák a forrás fájlokat.

ModelSim szimulátor

Megjegyezzük, hogy a könyvtár ablakban egy új könyvtári munkában. mint amilyennek lennie kellene. Most válassza ki az elemet szimulálása / Start Simulation menü.

ModelSim szimulátor

ModelSim szimulátor

Tehát most lássuk, mit teszünk a szimulációban. Azt, hogy néhány lépést előre szimuláció kiválasztásával szimulálása \ Run \ Run100.

És itt van a szimuláció eredménye:

ModelSim szimulátor

Megjegyezzük, hogy szöveges kimenetet a Transcript ablakban, és a jelek magukat a Wave ablakban ugyanazok, mint abban az esetben a szimuláció segítségével nyílt forráskódú Icarus-Verilog.

Nos, itt - a jelek formájában láthatjuk, hogy a számláló megfelelően működik - így tervezett nálunk!

Valaki segítsen telepíteni ModelSim a ubuntu.Pri indítási problémák „./vish: betöltése közben hibát megosztott könyvtárakat: libXft.so.2: nem lehet megnyitni megosztott objektum fájlt: Nincs ilyen fájl vagy könyvtár”.


megpróbálja telepíteni további könyvtárak sudo apt-get install libxft2

Valaki segítsen telepíteni ModelSim a ubuntu.Pri indítási problémák „./vish: betöltése közben hibát megosztott könyvtárakat: libXft.so.2: nem lehet megnyitni megosztott objektum fájlt: Nincs ilyen fájl vagy könyvtár”.

Moline idézve Dmitry:

Ugyanez a probléma, mint Vadim és Ia.
Összes termel egyenes vonalak, bár mindent megtett, mint írva a cikkben. Csak írtam programot, és még megpróbált nézd meg a munkáját elemei a standard könyvtár, de az eredmény ugyanaz.


Ugyanez volt a helyzet, úgy döntött, a következő: ha a Szimulációs \ Start Simulation választani csak egy testbencha fájlt, úgy döntöttem, az első két - egyenesek. Hogy az impulzusok hasonlóak voltak a screenshotok, akkor kicsinyíteni a chart (jobb klikk - talál alább).


Megvan - ha megadjuk mindkét modul (tesztelés és a testbench) egyetlen fájl ModelSim nem lesz képes megjeleníteni szimulációs eredmények alapján. Nos, mindez lehetséges?

Használja huzal típusú szimuláció a kimeneti jel, nem csak a reg akkor nem „bolt” jel állapota a nyilvántartásba, és hogy elkerüljék a hardver költségek?

Uram, soha nem tudni, hogy ki fog reagálni, ha elolvassa a cikket megjelent egy pár hülye kérdéseket:
1) Lehet-e levelet testbench ugyanabban a fájlban a teszt modult, egy testbench van megvalósítva egy egységet? (Tudom, pökhendi, mert könnyű a Google, de vajon kinek kevés, nem teher)
2) Miért hozzon létre egy (bejelentett) jelvezeték [7: 0] data_cnt a testbenche?
Értem helyesen:
számláló counter_inst (újra beállítva, CLK, wdata, WR, data_cnt); - ezt a sort hozunk létre egy példányt a modul számláló és helyettesíti a kimeneti regiszter adatok jel data_cnt? és mi az értelme ennek a cselekvés, hogy miért nem lehetett cserélni a jelet a neve megegyezik egy adat, vagy akár adat regiszter, mind a teszt modult? Általában kimeneti regiszter testbencha vagy mindig szükséges, csak a jel, mint a kimeneti?

Ugyanez a probléma, mint Vadim és Ia.
Összes termel egyenes vonalak, bár mindent megtett, mint írva a cikkben. Csak írtam programot, és még megpróbált nézd meg a munkáját elemei a standard könyvtár, de az eredmény ugyanaz.

Ugyanez volt a helyzet, úgy döntött, a következő: ha a Szimulációs \ Start Simulation választani csak egy testbencha fájlt, úgy döntöttem, az első két - egyenesek. Hogy az impulzusok hasonlóak voltak a screenshotok, akkor kicsinyíteni a chart (jobb klikk - talál alább).

Kapcsolódó cikkek