EnglezăFrancezăSpaniolă

Ad


Favicon OnWorks

iverilog - Online în cloud

Rulați iverilog în furnizorul de găzduire gratuit OnWorks prin Ubuntu Online, Fedora Online, emulator online Windows sau emulator online MAC OS

Aceasta este comanda iverilog care poate fi rulată în furnizorul de găzduire gratuit OnWorks folosind una dintre multiplele noastre stații de lucru online gratuite, cum ar fi Ubuntu Online, Fedora Online, emulator online Windows sau emulator online MAC OS

PROGRAM:

NUME


iverilog - compilator Icarus Verilog

REZUMAT


iverilog [-ESVv] [-Bpath] [-ccmdfile|-fcmdfile] [-Dmacro[=defn]] [-pflag=valoare] [-dname]
[-g1995|-g2001|-g2005|-g ] [-Iincludedir] [-mmodule] [-Mfile] [-Nfile]
[-ooutputfilename] [-stopmodule] [-ttype] [-Tmin/typ/max] [-Wclass] [-ypath] sursă

DESCRIERE


iverilog este un compilator care traduce codul sursă Verilog în programe executabile pentru
simulare sau alte formate netlist pentru procesare ulterioară. Cel susținut în prezent
obiectivele sunt vvp pentru simulare și fpga pentru sinteza. Alte tipuri de țintă sunt adăugate ca
sunt implementate generatoare de cod.

OPŢIUNI


iverilog acceptă următoarele opțiuni:

-Bde bază iverilog programul folosește programe externe și fișiere de configurare pentru a preprocesa
și compilați sursa Verilog. În mod normal, calea folosită pentru a localiza aceste instrumente este
încorporat în iverilog program. Însă -B comutatorul permite utilizatorului să selecteze
un set diferit de programe. Calea dată este folosită pentru a localiza ivlpp, ivl, cod
generatoare și module VPI.

-cfişier -ffişier
Aceste steaguri specifică un fișier de intrare care conține o listă de fișiere sursă Verilog.
Acest lucru este similar cu cel comandă fişier a altor simulatoare Verilog, prin faptul că este un
fișier care conține numele fișierelor în loc să le preia pe linia de comandă. Vedea
Comandă Fişiere de mai jos.

-Dmacro Definește macro macro cu șirul „1” ca definiție. Această formă este în mod normal
folosit doar pentru a declanșa condițiile ifdef în sursa Verilog.

-Dmacro=defn
Definește macro macro as defn.

-dnume Activați o clasă de mesaje de depanare a compilatorului. The -d comutatorul poate fi folosit ca
de multe ori cât este necesar pentru a activa toate mesajele dorite. Numele acceptate sunt
scopes, eval_tree, elaborat și synth2; orice alte nume sunt ignorate.

-E Preprocesează sursa Verilog, dar nu o compila. Fișierul de ieșire este
Intrare Verilog, dar cu incluziuni de fișiere și referințe macro extinse și eliminate.
Acest lucru este util, de exemplu, pentru a preprocesa sursa Verilog pentru a fi utilizată de alții
compilatoare.

-g1995|-g2001|-g2001-noconfig|-g2005
Selectați limba Verilog generaţie pentru a sprijini în compilator. Aceasta selectează
între IEEE1364-1995, IEEE1364-2001, Sau IEEE1364-2005. În mod normal, Icarus Verilog
implicit la cea mai recentă generație cunoscută a limbii. Acest steag este cel mai util
a restrânge limba la un set susținut de instrumente ale unor generații specifice, pt
compatibilitate cu alte instrumente.

-gverilog-ams|-gno-verilog-ams
Activați sau dezactivați suportul (implicit) pentru Verilog-AMS. Foarte puțin Verilog-AMS
funcționalitatea specifică este acceptată în prezent.

-gspecificați|-gno-specifica
Activați sau dezactivați (implicit) specificați suportul pentru blocuri. Când este activat, specificați blocul
codul este elaborat. Când este dezactivat, specificați blocurile sunt analizate, dar ignorate. Specifica
blocurile nu sunt de obicei necesare pentru simularea RTL și, de fapt, pot răni
performanța simulării. Cu toate acestea, dezactivarea blocurilor de specificare reduce precizia
de simulări full-timing.

-gstd-include|-gno-std-include
Activați (implicit) sau dezactivați căutarea unei instalații standard incluse
director după toate celelalte directoare de includere explicite. Acest standard include
directorul este un loc convenabil pentru a instala fișiere de antet standard pe care un Verilog
programul poate include.

-grelativ-include|-gno-relativ-include
Activați sau dezactivați (implicit) adăugarea directorului de fișiere locale la începutul
calea de căutare a fișierului include. Acest lucru permite ca fișierele să fie incluse în raport cu
fișierul curent, nu fișierele mai comune se găsesc doar în directorul de lucru sau
în calea de căutare a fișierului include specificată.

-gxtypes|-gno-xtypes
Activați (implicit) sau dezactivați suportul pentru tipurile extinse. Activarea tipurilor extinse
permite noi tipuri care sunt acceptate de Icarus Verilog ca extensii dincolo de
Verilog de bază. Poate fi necesar să dezactivați tipurile extinse dacă se compila cod
care se ciocnește cu puținele cuvinte cheie noi folosite pentru implementarea sistemului de tip.

-gio-range-error|-gno-io-range-error
Standardele necesită ca un port vectorizat să aibă intervale de potrivire pentru portul său
declarație precum și orice declarație de net/registru. Era o practică comună în
trecut pentru a specifica doar intervalul pentru declarația net/registru și unele instrumente
permite încă asta. În mod implicit, orice nepotrivire este raportată ca o eroare. Folosind
-gno-io-range-error va produce un avertisment în loc de o eroare fatală pentru caz
a unei rețele/registru vectorizate și a unei declarații de port scalar.

-gstrict-ca-eval|-gno-strict-ca-eval
Standardul cere ca dacă orice intrare la o expresie de atribuire continuă
schimbă valoarea, întreaga expresie este reevaluată. În mod implicit, părți ale
expresiile care nu depind de valoarea (valorile) de intrare modificate nu sunt reevaluate.
Dacă o expresie conține un apel la o funcție care nu depinde doar de ea
valorile de intrare sau care are efecte secundare, comportamentul rezultat va diferi de
cea cerută de standard. Folosind -gstrict-ca-eval va forța standardul
comportament conform (cu o oarecare pierdere de performanță).

-Iinclusivir
Adăugați directorul inclusivir la lista de directoare căutate pentru Verilog include
fișiere. -I switch poate fi folosit de multe ori pentru a specifica mai multe directoare în
căutare, directoarele sunt căutate în ordinea în care apar pe linia de comandă.

-Mcale Scrieți în fișierul specificat de cale o listă de fișiere care contribuie la
compilarea designului. Aceasta include fișierele care sunt incluse de include
directive și fișiere care sunt încărcate automat de suportul bibliotecii. Ieșirea
este un nume de fișier pe linie, fără spațiu de început sau de final.

-mmodul
Adăugați acest modul la lista de module VPI care urmează să fie încărcate de simulare. Mulți
modulele pot fi specificate și toate vor fi încărcate, în ordinea specificată. The
modulul de sistem este implicit și întotdeauna inclus. Dacă un fișier System Function Table
( .sft) există pentru modulul care va fi încărcat automat.

-Ncale Acesta este folosit pentru depanarea compilatorului propriu-zis. Eliminați forma finală a netlist-ului
design la fișierul specificat. În caz contrar, nu afectează funcționarea
compilator. Evacuarea are loc după ce proiectul este elaborat și optimizat.

-o nume de fișier
Plasați ieșirea în fișier nume de fișier. Dacă nu este specificat niciun nume de fișier de ieșire, iverilog
folosește numele implicit a.out.

-psteag=valoare
Atribuiți o valoare unui indicator specific țintă. The -p comutatorul poate fi folosit la fel de des
necesar pentru a specifica toate steagurile dorite. Steagurile care sunt folosite depind de
ținta care este selectată și sunt descrise în documentația specifică țintei. Steaguri
care nu sunt folosite sunt ignorate.

-S Sintetiza. În mod normal, dacă ținta poate accepta descrieri comportamentale, atunci
compilatorul va lăsa procesele în formă comportamentală. The -S comutatorul cauzează
compilator pentru a efectua sinteza chiar dacă nu este necesar pentru țintă. Dacă
tipul țintă este un format netlist, the -S comutatorul este inutil și nu are efect.

-s modul superior
Specificați modulul de nivel superior de elaborat. Icarus Verilog va alege implicit
module care nu sunt instanțiate în niciun alt module, dar uneori nu este așa
suficient sau instanțiază prea multe module. Dacă utilizatorul specifică unul sau mai multe
module rădăcină cu -s steaguri, atunci vor fi folosite ca module rădăcină.

-Tmin|tip|max
Utilizați acest comutator pentru a selecta timpii min, typ sau max din expresiile min:typ:max.
În mod normal, compilatorul va folosi pur și simplu valoarea typ din aceste expresii
(tipărește un avertisment pentru primele zece pe care le găsește), dar acest comutator va spune
compilator în mod explicit ce valoare să folosească. Acest lucru va suprima avertismentul că
compilatorul face o alegere.

-tţintă
Utilizați acest comutator pentru a specifica formatul de ieșire țintă. Vezi OBIECTIVE secțiunea de mai jos
pentru o listă de formate de ieșire valide.

-v Activați mesajele detaliate. Aceasta va imprima liniile de comandă la care sunt executate
efectuează compilarea propriu-zisă, împreună cu informațiile despre versiune din diferite
componente, precum și versiunea produsului în ansamblu. Vei observa
că liniile de comandă includ o referință la un fișier temporar cheie care trece
informații către compilator propriu-zis. Pentru a împiedica ștergerea acelui fișier la
la sfârșitul procesului, furnizați un nume de fișier propriu în variabila de mediu
IVERILOG_ICONFIG.

-V Tipăriți versiunea compilatorului și ieșiți.

-Wclasă Activați diferite clase de avertismente. Vezi AVERTISMENT TIPURI secțiunea de mai jos pentru
descrieri ale diferitelor grupuri de avertizare. Dacă sunt multiple -W sunt folosite întrerupătoare,
setul de avertizare este unirea tuturor claselor solicitate.

-ylibdir
Adăugați directorul la calea de căutare a modulului de bibliotecă. Când compilatorul găsește un
modul nedefinit, caută în aceste directoare fișiere cu numele corect.

-Ysufix
Adăugați sufix la lista de sufixe de nume de fișier acceptate utilizate la căutarea a
bibliotecă pentru celule. Lista este implicită pentru o singură intrare .v.

MODULUL BIBLIOTECI


Compilatorul Icarus Verilog acceptă biblioteci de module ca directoare care conțin Verilog
fișiere sursă. În timpul elaborării, compilatorul observă instanțierea lui undefined
tipuri de module. Dacă utilizatorul specifică directoare de căutare în biblioteci, compilatorul va căuta
directorul pentru fișierele cu numele tipului de modul lipsă. Dacă găsește un astfel de fișier,
îl încarcă ca fișier sursă Verilog, ei încearcă din nou să elaboreze modulul.

Fișierele modulelor de bibliotecă ar trebui să conțină doar un singur modul, dar aceasta nu este o cerință.
Modulele bibliotecii pot face referire la alte module din bibliotecă sau din designul principal.

OBIECTIVE


Compilatorul Icarus Verilog acceptă o varietate de ținte, în scopuri diferite, și
-t comutatorul este folosit pentru a selecta ținta dorită.

zero Ținta nulă face ca niciun cod să nu fie generat. Este util pentru verificarea
sintaxa sursei Verilog.

vvp Aceasta este valoarea implicită. Ținta vvp generează cod pentru runtime vvp. Ieșirea
este un program complet care simulează designul, dar trebuie rulat de către vvp
comanda.

fpga Aceasta este o țintă de sinteză care acceptă o varietate de dispozitive fpga, mai ales prin EDIF
format de ieșire. Generatorul de cod fpga Icarus Verilog poate genera complet
modele sau macrocomenzi EDIF care pot fi la rândul lor importate în modele mai mari de către alții
unelte. The fpga tinta presupune sinteza -S steag.

vhdl Această țintă produce o traducere VHDL a listei de net Verilog. Ieșirea este a
un singur fișier care conține entități VHDL corespunzătoare modulelor din Verilog
cod sursa. Rețineți că doar un subset al limbajului Verilog este acceptat. Vedea
wiki pentru mai multe informații.

AVERTISMENT TIPURI


Acestea sunt tipurile de avertismente care pot fi selectate de către -W intrerupator. Tot avertismentul
tipuri (altele decât toate) poate fi de asemenea prefixat cu nO- pentru a dezactiva acel avertisment. Aceasta este
cel mai util după a -Perete argument pentru a suprima tipurile de avertizare izolate.

toate Acest lucru activează implicit, portbind, select-range, timecale și
categorii de avertizare sensibilitate-întreaga matrice.

implicit
Aceasta permite avertismente pentru crearea declarațiilor implicite. De exemplu, dacă a
firul scalar X este folosit, dar nu este declarat în sursa Verilog, aceasta va imprima a
avertisment la prima utilizare.

portbind
Acest lucru activează avertismente pentru porturile instanțiilor de module care nu sunt conectate
dar probabil ar trebui să fie. Porturile de intrare suspendate, de exemplu, vor genera a
avertizare.

select-range
Acest lucru activează avertismente pentru selectări constante în afara limitelor. Aceasta include parțial sau
selectări complet în afara limitelor, precum și o selecție care conține un „bx sau „bz” în
index.

interval de timp
Acest lucru permite avertismente pentru utilizarea neconsecventă a directivei privind intervalul de timp. Acesta detectează
dacă unele module nu au o scală de timp sau dacă modulele moștenesc o scală de timp de la altul
fişier. Ambele înseamnă probabil că intervalele de timp sunt inconsecvente și sincronizarea simulării
poate fi confuz și depinde de ordinea de compilare.

infloop Acest lucru activează avertismente pentru instrucțiunile mereu care pot avea bucle infinite de rulare
(are căi fără întârziere sau fără întârziere). Această clasă de avertismente nu este inclusă în -Perete
și, prin urmare, nu are un nO- variantă. Un mesaj de eroare fatal va fi întotdeauna
tipărit atunci când compilatorul poate determina că va exista cu siguranță un infinit
buclă (toate căile nu au întârziere sau nu au întârziere).

Când bănuiți că o declarație always produce o buclă infinită de rulare, utilizați aceasta
flag pentru a găsi declarațiile mereu care trebuie să aibă logica verificată. Este
de așteptat ca multe dintre avertismente să fie fals pozitive, deoarece codul tratează
valoarea tuturor variabilelor și semnalelor ca nedeterminată.

sensibilitate-intreg-vector
Acest lucru activează avertismente pentru atunci când o parte selectează într-o declarație „întotdeauna @*”.
are ca rezultat adăugarea întregului vector la lista de sensibilitate implicită.
Deși acest comportament este prescris de standardul IEEE, nu este ceea ce ar putea
poate fi de așteptat și poate avea implicații de performanță dacă vectorul este mare.

sensibilitate-toată-matrice
Acest lucru activează avertismente pentru atunci când un cuvânt este selectat într-o declarație „întotdeauna @*”.
are ca rezultat adăugarea întregului tablou la lista de sensibilități implicite. Cu toate că
acest comportament este prescris de standardul IEEE, nu este ceea ce ar putea fi
așteptat și poate avea implicații de performanță dacă matricea este mare.

SISTEM FUNCȚIA TABEL DOSARE


Dacă numele fișierului sursă ca a .sft sufix, atunci este considerat un tabel de funcții de sistem
fişier. Un fișier tabel cu funcții de sistem este utilizat pentru a descrie compilatorului tipurile de returnare
pentru funcțiile sistemului. Acest lucru este necesar deoarece compilatorul are nevoie de aceste informații
elaborează expresii care conțin aceste funcții de sistem, dar nu pot rula sizetf
funcții deoarece nu are timp de rulare.

Formatul tabelului este ASCII, o funcție pe linie. Liniile goale sunt ignorate și
linii care încep cu „#' caractere sunt linii de comentarii. Începe fiecare rând fără comentarii
cu numele funcției, apoi tipul vpi (adică vpiSysFuncReal). Următoarele tipuri sunt
sprijinit:

vpiSysFuncReal
Funcția returnează o valoare reală/în timp real.

vpiSysFuncInt
Funcția returnează un număr întreg.

vpiSysFuncSized
Funcția returnează un vector cu lățimea dată și este semnat sau nesemnat
conform steagului.

COMMAND DOSARE


Fișierul de comandă permite utilizatorului să plaseze nume de fișiere sursă și anumite linii de comandă
comută într-un fișier text în loc de pe o linie lungă de comandă. Fișierele de comandă pot include C
sau comentarii în stil C++, precum și # comentarii, dacă # începe linia.

fişier nume
Un nume de fișier simplu sau o cale de fișier este considerată numele unui fișier sursă Verilog.
Calea începe cu primul caracter care nu are spațiu alb. Variabilele sunt
înlocuite în numele fișierelor.

-c cmdfile -f cmdfile
A -c or -f token prefixează un fișier de comandă, exact așa cum o face pentru comandă
linia. Fișierul cmd poate fi pe aceeași linie sau pe următoarea linie fără comentarii.

-y libdir
A -y token prefixează un director de bibliotecă în fișierul de comandă, exact așa cum o face
pe linia de comandă. Parametrul la -y steag poate fi pe aceeași linie sau
următoarea linie fără comentarii.

Variabile în libdir sunt substituite.

+incdir+inclusivir
+incdir+ token în fișierele de comandă oferă directoare pentru a căuta fișiere includ
cam la fel ca -I steagurile funcționează pe linia de comandă. Diferența este
acel multiplu +includedir directoarele sunt parametri validi pentru un singur +incdir+
jeton, deși este posibil să aveți și mai multe +incdir+ linii.

Variabile în inclusivir sunt substituite.

+libext+ext
+libext jeton în fișierele de comandă cinci extensii de fișiere de încercat când căutați un
fișier de bibliotecă. Acest lucru este util împreună cu -y steaguri pentru a enumera sufixele de încercat
în fiecare director înainte de a trece la următorul director al bibliotecii.

+libdir+dir
Aceasta este o altă modalitate de a specifica directoarele bibliotecii. Vezi steagul -y.

+libdir-nocase+dir
Acesta este ca +libdir declarație, dar numele fișierelor din directoarele declarate
aici sunt insensibile la majuscule. Numele modulului lipsă dintr-o căutare nu trebuie să se potrivească cu
majuscule cu numele fișierului, atâta timp cât literele sunt corecte. De exemplu, se potrivește „foo”.
„Foo.v” dar nu „bar.v”.

+definiți+NUME=valoare
+definiți+ jetonul este același cu -D opțiunea de pe linia de comandă. Valoarea
o parte a jetonului este opțională.

+scala de timp+valoare
+scala de timp+ simbolul este utilizat pentru a seta intervalul de timp implicit pentru simulare.
Acestea sunt unitățile de timp și precizia dinaintea oricărei directive `timescale sau după a
directiva de resetare. Valoarea implicită este 1s/1s.

+toupper-filename
Acest simbol face ca numele fișierelor după aceasta în fișierul de comandă să fie traduse în
majuscule. Acest lucru ajută în situațiile în care un director a trecut printr-un DOS
mașină și, în acest proces, numele fișierelor devin supuse.

+tolower-filename
Acest lucru este similar cu cel +toupper-filename hack descris mai sus.

+lățime-întreg+valoare
Acest lucru permite programatorului să selecteze lățimea pentru variabilele întregi din
Sursa Verilog. Valoarea implicită este 32, valoarea poate fi orice valoare întreagă dorită.

VARIABILE IN COMMAND DOSARE


În anumite cazuri, iverilog acceptă variabile în fișierele de comandă. Acestea sunt șiruri ale
forma „$(varname)" sau "${varname}", Unde varname este numele variabilei de mediu
a citi. Întregul șir este înlocuit cu conținutul acelei variabile. Variabilele sunt
substituit numai în contexte care le acceptă în mod explicit, inclusiv fișierul și directorul
siruri de caractere.

Valorile variabilelor provin din mediul sistemului de operare și nu din preprocesor
definește în altă parte în fișier sau în linia de comandă.

PREDEFINIT MACROS


Următoarele macrocomenzi sunt predefinite de compilator:

__ICARUS__ = 1
Acest lucru este întotdeauna definit la compilarea cu Icarus Verilog.

__VAMS_ENABLE__ = 1
Acesta este definit dacă Verilog-AMS este activat.

EXEMPLE


Aceste exemple presupun că aveți un fișier sursă Verilog numit hello.v în curent
director

Pentru a compila hello.v într-un fișier executabil numit a.out:

iverilog salut.v

Pentru a compila hello.v într-un fișier executabil numit hello:

iverilog -o hello hello.v

Pentru a compila și a rula în mod explicit folosind vvp runtime:

iverilog -ohello.vvp -tvvp salut.v

Utilizați iverilog online folosind serviciile onworks.net


Servere și stații de lucru gratuite

Descărcați aplicații Windows și Linux

Comenzi Linux

Ad