Írni és futtatni egy szkriptet, hogy szimulálja Verilog-kódot ModelSim

Hello mindenkinek! Remélem, mindenki jó volt a nyaralás, és készen áll az új erők, hogy meghódítsa a magassága FPGA fejlesztés.

Ma szeretnék írni egy kis útmutató, hogy indítson testbenchey a Verilog / SystemVerilog ModelSim nélkül GUI használatban.







A terv a következő lesz:

Menjünk! Kezdeni, meg kell, hogy a keze a következő:


  • szerelt ModelSim;
  • a kész projekt Verilog / SystemVerilog;
  • kész testbench a Verilog / SystemVerilog;

Példaként figyelembe vesszük a projekt HappyNY

1. hozzáadása az elérési utat a futtatható fájlt ModelSim PATH

Ellenőrizze, hogy meg kell tenni, akkor könnyen: típusú ModelSim parancssorból. ha nem, akkor indítsa el a ModelSim, akkor az aktuális tétel kimarad. Ellenkező esetben, a Windows, ez történik az alábbiak szerint: a nyílt parancsot, és írjuk be a parancsot

ahol az elérési utat a futtatható fájl ModelSim (miután, meg kell adnia annak elérési utat a futtatható). A parancs után végezzen vizsgálatot, azt az elején ezt a bekezdést, ha valami nincs rendben, majd ismételje meg a lépést.

2. Az írás szkriptek futtatásához

Vizsgáljuk meg ezt a darabot forgatókönyvet.

A csapat az átirat a zászló - ugyanaz, mint a visszhang. azaz Miután megadta ezt a parancsot, az összes többi parancsot egy script, nyomtatott teljesítmény a ModelSim parancssor, azaz világossá válik, hogy melyik csapat és amikor végre miután néhány közülük olyan hiba (ha van).

vlib parancs létrehoz egy projekt könyvtár nevű munkát.

Csapat vlog a zászlók - kihívás Verilog fordító.

Flag -sV. akkor kitalálta, azt mondja a fordító, hogy használja a SystemVerilog szabvány. Összeállította az összes fájlt függetlenül, ellentétben például Quartus. így ha például import utasítás egyes részeinek a csomag. akkor meg kell tennie azokat az egyes fájlok, ahol használják őket, vagy közvetlenül a fájl, amely tartalmazza a csomag (Quartus, ha nem előre a befogadás őrök, dobja ebben az esetben a hiba).

Flag + incdir + .. / azt mutatja, ahol a fordító kell keresni egy olyan fájlt (azaz fájlok meghatározott kódot az irányelv `tartalmazza).

Ezután jön a neve a fájl összeállítani.

vsim parancs - az, hogy a szimulációt.

-t zászló meghatározza a pontosságát időrácsra.
-voptargs zászló lesz az érveket a későbbi automatikus hívás optimalizáló vopt, azaz ott lesz a kihívás vopt + acc. Ez a zászló tartalmaz optimalizálást különböző tárgyakat a projektben, és magában foglalja a megjelenése ezeket a tárgyakat a szimulátorban. Bővebben olvashatsz róla itt., 154. o.
A végén jön a neve a felső szintű testbencha, ebben a példában ez megegyezik a fájl nevét.

És végül, az utolsó része a script:

Először is, adjuk hozzá a szükséges jeleket képez hullám Ablak parancs hozzáadása hullám. Felhívjuk figyelmét, hogy az egyik jel változik a formátum a karaktert -radix ASCII zászló.

Ezután állítsa be a készüléket időrácsra skála. Fuss szimuláció a forgatókönyvet írt testbenche. Stretch (vagy csökken) a képen az ablak hullám úgy, hogy pontosan beleillik az ablak méretét.







3. Indítsa ModelSim a program futása

Az első dolog, amit meg kell nyitni shellparancsot vagy terminál, és keresse meg a könyvtárat, ahol a szkript és a projekt fájlokat. Akkor meg kell futtatni a futtatható fájl ModelSim kulcs -Van . a mi esetünkben:

Többé nem kell tennie semmit. Ha valamilyen oknál fogva nem tud hozzáadni az utat a ModelSim környezeti változó helyett ModelSim, akkor adja meg a teljes elérési utat a futtatható fájlt. Ha ez nem működik, akkor fut ModelSim viszont akkor lehet ModelSim parancssorban lépjen a projekt könyvtárba, és futtassa a script parancsot:

Miután az összes itt leírt, akkor a következő képet látja:

Köszönöm a figyelmet, jó szerencsét!

Jó napot! Nemrég próbáltam csinálni valami hasonlót VHDL és pihent a tény, hogy ellentétben Verilog'a fontos annak érdekében, összeállításának fájlokat. Súlyos IDE megbirkózni vele gond, de a „dig” onnan, hogy hogyan csinálják - nem működött. Ezzel kapcsolatban kérdés - van-e ilyen fejlesztések VHDL?

Py.Sy.Esli becsületes, kiderült, hogy a sorrendben a fájlok összeállításához a nem-projekt mód Vivado, de ez túl tüske lehetőséget. Ha a projekt kriptovat mag jelenléte a file-ok sorrendjét egyre egy kicsit, és generit szkriptek szimulálják Vivado ebben a módban nem lehet. Készítsen minden egyes alkalommal, amikor egy projekt - ez nem túl kényelmes.

VHDL soha nem dolgozott, így semmi konkrét támogató, sajnos, nem tudok. Az egyik elképzelés az, hogy megpróbál futtatni egy szimulációt a projekt segítségével NativeLink kvartusa és lássuk, mit generálása script, majd próbálja elemezni) Ami a jelenléte a chip-függő az IP, már van szüksége a gyártó könyvtár, fel kell használni, amikor meghatározza a könyvtárak ModelSim.

És megpróbálja elindítani a ModelSim hogy hozzon létre egy projektet, a szükséges fájlokat, majd futtassa az Auto-generálása Compile rendelés. Alapján a megrendelés túlnyúló csinálni alappálya. A projekt már nem használható, és szervezni mindent tcl, sh, vagy amit akarsz. Belépve a munkát végeznek a szerkesztők kezeli ez nem olyan nehéz.

Néhány IDE automatikusan képes lefordítani a forráskódot (szintetizálható leírás) a szimuláció. HDL tervező képes pontosan ennyit összeállítani modelsima továbbra is csak fájlokat testbencha össze, amelyek általában sokkal kisebb, és nem éri meg sok erőfeszítést, hogy adjunk nekik a forgatókönyvet. mint vivada is képes, de lehet, hogy tévedek, hosszú ideig nem működött

Hasonló megközelítést hibakeresés látható itt.
- .bat létrehozza és törli a könyvtárat szemetet társított szimuláció;
- .tcl - működteti összeállítása, és a hibakeresés jelek
Hozzáteszem csak a formáció vlog vonalak részei (nem egy sorban).
Kényelmes elég, amikor a kezébe (az interfész) do égve, és make-fájlokat még mindig nem akar kommunikálni.

valójában kezdeni scripting testbenchey sokkal erősebb dolog. lehet induláskor meghatározott paraméterek attól függően, ki fog futni egy adott vizsgálat (kit) valamennyi vizsgálati környezet megváltoztatásával a legfelső szinten testbencha változó értékek alapján a kiválasztott vizsgálati válassza ki a különböző rögtönzött előzőleg elkészített (mellesleg sokkal könnyebb megtartani a teremtés script rögtönzött a külön fájlban, különösen, ha sok jel származik) lehet letiltani bizonyos elemeit DUT, különösen, ha a vizsgált modul több blokk, amely felgyorsítja sim hangban, esetenként jelentős mértékben)

1. Azt hozzátenném, hogy akkor nem csak .do, de .tcl
2. keltél hiába mappa rtl_work. Sok fejlesztő használja az alapértelmezett mappa / könyvtár munkáját, és nem azonnal felismeri.
sorok:
vlib rtl_work
VMAP munka rtl_work

helyettesíteni lehet:
vlib munka

3. Továbbá, hogy törölje a könyvtár nem szükséges, akkor hozzon létre egy új alatt a régi. Ő biztosan levelet figyelmeztet, hogy a könyvtár már ott van, de semmi rossz nem fog történni.
4. Miért veszi a nevét összeállított fájlok fogszabályozó? Ha ez a kódolási stílust, akkor nem helyettesíti a változót a fájl elérési útját. Például ez nem fog működni.
5. -L szükség, ha összeköti a felek (kivéve a munka) könyvtárakban. kapcsolódó munka alapértelmezés szerint.
6. vlog -work tökéletesen működik is. Ez úgy történik, alapértelmezés szerint.

Köszönöm, kijavítjuk ma) Eredetileg úgy vezették a szkriptet, amely kvartus segítségével NativeLink, így néhány dolgot már tudjuk, először (4-6. Számú)