IngleseFranceseSpagnolo

Ad


Favicon di OnWorks

iverilog - Online nel cloud

Esegui iverilog nel provider di hosting gratuito OnWorks su Ubuntu Online, Fedora Online, emulatore online Windows o emulatore online MAC OS

Questo è il comando iverilog che può essere eseguito nel provider di hosting gratuito OnWorks utilizzando una delle nostre molteplici workstation online gratuite come Ubuntu Online, Fedora Online, emulatore online Windows o emulatore online MAC OS

PROGRAMMA:

NOME


iverilog - compilatore Icarus Verilog

SINOSSI


iverilog [-ESVv] [-Bpercorso] [-ccmdfile|-fcmdfile] [-Dmacro[=defn]] [-pflag=valore] [-dname]
[-g1995|-g2001|-g2005|-g ] [-Iincludedir] [-module] [-Mfile] [-Nfile]
[-onomefileoutput] [-stopmodule] [-ttype] [-Tmin/typ/max] [-Wclass] [-ypath] file sorgente

DESCRIZIONE


iverilog è un compilatore che traduce il codice sorgente di Verilog in programmi eseguibili per
simulazione o altri formati di netlist per ulteriori elaborazioni. Il attualmente supportato
gli obiettivi sono VVP per simulazione, e FPGA per sintesi. Altri tipi di target vengono aggiunti come
i generatori di codice sono implementati.

VERSIONI


iverilog accetta le seguenti opzioni:

-Bbase I iverilog programma utilizza programmi esterni e file di configurazione per la preelaborazione
e compilare il sorgente Verilog. Normalmente, il percorso utilizzato per individuare questi strumenti è
incorporato nel iverilog programma. in ogni caso, il -B l'interruttore consente all'utente di selezionare
un diverso insieme di programmi. Il percorso indicato viene utilizzato per individuare ivpp, iv, codice
generatori e i moduli VPI.

-cfiletto -ffiletto
Questi flag specificano un file di input che contiene un elenco di file di origine Verilog.
Questo è simile al command filetto di altri simulatori Verilog, in quanto è un
file che contiene i nomi dei file invece di portarli sulla riga di comando. Vedere
Comando File qua sotto.

-Dmacro Definisce macro macro con la stringa "1" come definizione. Questo modulo è normalmente
utilizzato solo per attivare i condizionali ifdef nel sorgente Verilog.

-Dmacro=def
Definisce macro macro as def.

-dNome Attiva una classe di messaggi di debug del compilatore. Il -d l'interruttore può essere usato come
spesso quanto necessario per attivare tutti i messaggi desiderati. I nomi supportati sono
ambiti, eval_tree, elaborati e synth2; tutti gli altri nomi vengono ignorati.

-E Preelabora il sorgente Verilog, ma non compilarlo. Il file di output è il
Input di Verilog, ma con inclusioni di file e riferimenti macro espansi e rimossi.
Questo è utile, ad esempio, per preelaborare il sorgente Verilog per l'uso da parte di altri
compilatori.

-g1995|-g2001|-g2001-noconfig|-g2005
Seleziona la lingua Verilog ELETTRICA da supportare nel compilatore. Questo seleziona
fra IEEE1364-1995, IEEE1364-2001, o IEEE1364-2005. Normalmente, Icarus Verilog
l'impostazione predefinita è l'ultima generazione conosciuta della lingua. Questo flag è molto utile
limitare la lingua a un insieme supportato da strumenti di generazioni specifiche, per
compatibilità con altri strumenti.

-gverilog-ams|-gno-verilog-ams
Abilita o disabilita il supporto (predefinito) per Verilog-AMS. Molto poco Verilog-AMS
funzionalità specifiche sono attualmente supportate.

-gspecifica|-gno-specificare
Abilita o disabilita (impostazione predefinita) specifica il supporto del blocco. Quando abilitato, specifica il blocco
codice è elaborato. Se disabilitato, specifica che i blocchi vengono analizzati ma ignorati. Specificare
i blocchi non sono comunemente necessari per la simulazione RTL e in effetti possono ferire
svolgimento della simulazione. Tuttavia, disabilitare i blocchi di specifica riduce la precisione
di simulazioni a tempo pieno.

-gstd-include|-gno-std-include
Abilita (predefinito) o disabilita la ricerca di un'installazione standard include
directory dopo tutte le altre directory di inclusione esplicite. Questo standard include
directory è un posto conveniente per installare file di intestazione standard che un Verilog
programma può includere.

-inclusione-grelativa|-gno-relativo-include
Abilita o disabilita (impostazione predefinita) l'aggiunta della directory dei file locali all'inizio di
il percorso di ricerca del file di inclusione. Ciò consente di includere file relativi a
file corrente non i file più comuni si trovano solo nella directory di lavoro o
nel percorso di ricerca del file di inclusione specificato.

-gxtypes|-gno-xtypes
Abilita (predefinito) o disabilita il supporto per i tipi estesi. Abilitazione dei tipi estesi
consente nuovi tipi supportati da Icarus Verilog come estensioni oltre il
Verilog di base. Potrebbe essere necessario disabilitare i tipi estesi durante la compilazione del codice
che si scontra con le poche nuove parole chiave utilizzate per implementare il sistema dei tipi.

-gio-range-errore|-gno-io-intervallo-errore
Gli standard richiedono che una porta con vettori abbia intervalli corrispondenti per la sua porta
dichiarazione nonché qualsiasi dichiarazione di rete/registro. Era pratica comune nel
past per specificare solo l'intervallo per la dichiarazione net/register e alcuni strumenti
permettere ancora questo. Per impostazione predefinita, qualsiasi mancata corrispondenza viene segnalata come errore. Usando
-gno-io-intervallo-errore produrrà un avviso invece di un errore fatale per il caso
di una rete/registro vettoriale e una dichiarazione di porta scalare.

-gstrict-ca-eval|-gno-rigoroso-ca-eval
Lo standard richiede che se qualsiasi input per un'espressione di assegnazione continua
cambia valore, l'intera espressione viene rivalutata. Per impostazione predefinita, parti del
le espressioni che non dipendono dai valori di input modificati non vengono rivalutate.
Se un'espressione contiene una chiamata a una funzione che non dipende esclusivamente dalla sua
valori di input o che ha effetti collaterali, il comportamento risultante sarà diverso da
quello richiesto dalla norma. Usando -gstrict-ca-eval forzerà lo standard
comportamento conforme (con qualche perdita di prestazioni).

-Iincluso
Aggiungi directory incluso all'elenco delle directory cercate per Verilog include
File. Il -I switch può essere usato molte volte per specificare diverse directory in cui
search, le directory vengono cercate nell'ordine in cui appaiono sulla riga di comando.

-Msentiero Scrivi nel file specificato dal percorso un elenco di file che contribuiscono al
compilazione del disegno. Ciò include i file inclusi da include
direttive e file che vengono caricati automaticamente dal supporto della libreria. Il risultato
è un nome di file per riga, senza spazio iniziale o finale.

-mmodulo
Aggiungi questo modulo all'elenco dei moduli VPI da caricare dalla simulazione. Molti
i moduli possono essere specificati e tutti verranno caricati, nell'ordine specificato. Il
il modulo di sistema è implicito e sempre incluso. Se un file della tabella delle funzioni di sistema
( .sft) esiste per il modulo verrà caricato automaticamente.

-Nsentiero Questo è usato per il debug del compilatore vero e proprio. Scarica il modulo della netlist finale del
design al file specificato. Altrimenti non influisce sul funzionamento del
compilatore. Il dump avviene dopo che il design è stato elaborato e ottimizzato.

-o Nome del file
Inserisci l'output nel file Nome del file. Se non viene specificato alcun nome di file di output, iverilog
usa il nome predefinito a. fuori.

-pflag=valore
Assegna un valore a un flag specifico di destinazione. Il -p l'interruttore può essere utilizzato tutte le volte che
necessario specificare tutti i flag desiderati. I flag utilizzati dipendono dal
target selezionato e sono descritti nella documentazione specifica del target. bandiere
quelli non utilizzati vengono ignorati.

-S Sintetizzare. Normalmente, se il target può accettare descrizioni comportamentali il
compilatore lascerà i processi in forma comportamentale. Il -S l'interruttore provoca il
compilatore per eseguire la sintesi anche se non è necessaria per il target. Se la
il tipo di destinazione è un formato netlist, il -S l'interruttore non è necessario e non ha alcun effetto.

-s modulo superiore
Specificare il modulo di primo livello da elaborare. Icarus Verilog sceglierà per impostazione predefinita
moduli che non sono istanziati in nessun altro modulo, ma a volte non lo è
sufficiente o crea un'istanza di troppi moduli. Se l'utente ne specifica uno o più
moduli radice con -s flag, verranno invece utilizzati come moduli root.

-Tmin|tip|max
Utilizzare questo interruttore per selezionare i tempi min, typ o max dalle espressioni min:typ:max.
Normalmente, il compilatore utilizzerà semplicemente il valore typ di queste espressioni
(stampa un avviso per i primi dieci che trova) ma questo interruttore dirà al
compilatore in modo esplicito quale valore utilizzare. Questo sopprimerà l'avvertimento che il
compilatore sta facendo una scelta.

-tbersaglio
Utilizzare questa opzione per specificare il formato di output di destinazione. Vedi il OBIETTIVI sezione sottostante
per un elenco di formati di output validi.

-v Attiva i messaggi verbosi. Questo stamperà le righe di comando che vengono eseguite per
eseguire la compilazione effettiva, insieme alle informazioni sulla versione dai vari
componenti, nonché la versione del prodotto nel suo insieme. te ne accorgerai
che le righe di comando includano un riferimento a un file temporaneo di chiave che passa
informazioni al compilatore vero e proprio. Per evitare che il file venga eliminato al
fine del processo, fornisci un tuo nome file nella variabile d'ambiente
IVERILOG_ICONFIG.

-V Stampa la versione del compilatore ed esci.

-Wclasse Attiva diverse classi di avvisi. Vedi il AVVERTIMENTO TIPI sezione sottostante per
descrizioni dei diversi gruppi di allerta. Se multiplo -W si utilizzano interruttori,
il warning set è l'unione di tutte le classi richieste.

-ylibdir
Aggiungi la directory al percorso di ricerca del modulo della libreria. Quando il compilatore trova an
undefined module, cerca in queste directory i file con il nome corretto.

-Ysuffisso
Aggiungi suffisso all'elenco dei suffissi dei nomi di file accettati utilizzati durante la ricerca a
libreria per le cellule. L'elenco predefinito è la voce singola .v.

MODULO BIBLIOTECHE


Il compilatore Icarus Verilog supporta le librerie di moduli come directory che contengono Verilog
file sorgenti. Durante l'elaborazione, il compilatore nota l'istanziazione di undefined
tipi di modulo. Se l'utente specifica le directory di ricerca della libreria, il compilatore cercherà
la directory per i file con il nome del tipo di modulo mancante. Se trova un file di questo tipo,
lo carica come file sorgente Verilog, riprovano ad elaborare il modulo.

I file del modulo della libreria dovrebbero contenere solo un singolo modulo, ma questo non è un requisito.
I moduli della libreria possono fare riferimento ad altri moduli nella libreria o nel design principale.

OBIETTIVI


Il compilatore Icarus Verilog supporta una varietà di target, per scopi diversi, e il
-t l'interruttore viene utilizzato per selezionare il target desiderato.

nullo La destinazione nulla non comporta la generazione di codice. È utile per controllare il
sintassi del sorgente Verilog.

VVP Questa è l'impostazione predefinita. Il target vvp genera codice per il runtime vvp. Il risultato
è un programma completo che simula il progetto ma deve essere eseguito dal VVP
comando.

FPGA Questo è un obiettivo di sintesi che supporta una varietà di dispositivi fpga, principalmente di EDIF
uscita in formato. Il generatore di codice FPGA Icarus Verilog può generare completo
disegni o macro EDIF che possono a loro volta essere importati in progetti più grandi da altri
utensili. Il FPGA obiettivo implica la sintesi -S bandiera.

vhdl Questo target produce una traduzione VHDL della netlist Verilog. L'uscita è a
singolo file contenente entità VHDL corrispondenti ai moduli nel Verilog
codice sorgente. Tieni presente che è supportato solo un sottoinsieme del linguaggio Verilog. Vedere
il wiki per ulteriori informazioni.

AVVERTIMENTO TIPI


Questi sono i tipi di avvisi che possono essere selezionati dal -W interruttore. Tutto l'avvertimento
tipi (diversi da contro tutti i) può anche essere preceduto da no- per disattivare quell'avviso. Questo è
più utile dopo a -Parete argomento per sopprimere i tipi di avviso isolati.

contro tutti i Ciò abilita l'implicito, il portbind, l'intervallo di selezione, la scala temporale e
categorie di avviso dell'intero array di sensibilità.

implicito
Ciò abilita gli avvisi per la creazione di dichiarazioni implicite. Ad esempio, se a
il filo scalare X viene utilizzato ma non dichiarato nel sorgente Verilog, questo stamperà a
avviso al primo utilizzo.

portbind
Ciò abilita gli avvisi per le porte delle istanze del modulo che non sono connesse
ma probabilmente dovrebbe esserlo. Le porte di ingresso penzolanti, ad esempio, genereranno a
avvertimento.

seleziona-intervallo
Ciò abilita gli avvisi per le selezioni fuori limite costanti. Questo include parziale o
selezioni completamente fuori limite, nonché una selezione contenente un 'bx o 'bz nel
indice.

tempi
Ciò abilita gli avvisi per l'uso incoerente della direttiva sulla scala temporale. rileva
se alcuni moduli non hanno una scala temporale o se i moduli ereditano la scala temporale da un'altra
file. Entrambi probabilmente significano che i tempi sono incoerenti e i tempi della simulazione
può creare confusione e dipendere dall'ordine di compilazione.

inondazione Ciò abilita gli avvisi per le istruzioni sempre che possono avere cicli infiniti di runtime
(ha percorsi senza ritardo o zero). Questa classe di avvertenze non è inclusa in -Parete
e quindi non ha a no- variante. Un messaggio di errore fatale sarà sempre
stampato quando il compilatore può determinare che ci sarà sicuramente un infinito
loop (tutti i percorsi hanno ritardo zero o nullo).

Quando sospetti che un'istruzione always stia producendo un ciclo infinito di runtime usa questo
flag per trovare le istruzioni always che devono avere la loro logica verificata. è
si aspettava che molti degli avvertimenti fossero falsi positivi, dal momento che il codice tratta
il valore di tutte le variabili e i segnali come indeterminato.

sensibilità-intero-vettore
Ciò abilita gli avvisi per quando una parte viene selezionata all'interno di un'istruzione "always @*"
comporta l'aggiunta dell'intero vettore all'elenco di sensibilità implicita.
Sebbene questo comportamento sia prescritto dallo standard IEEE, non è quello che potrebbe
essere previsto e può avere implicazioni sulle prestazioni se il vettore è grande.

sensibilità-intero-array
Ciò abilita gli avvisi per quando una parola viene selezionata all'interno di un'istruzione "sempre @*"
comporta l'aggiunta dell'intero array all'elenco di sensibilità implicita. Sebbene
questo comportamento è prescritto dallo standard IEEE, non è quello che potrebbe essere
previsto e può avere implicazioni sulle prestazioni se l'array è di grandi dimensioni.

SISTEMA FUNZIONE TABELLA FILE


Se il nome del file sorgente come a .sft suffisso, allora è considerata una tabella di funzioni di sistema
file. Un file della tabella delle funzioni di sistema viene utilizzato per descrivere al compilatore i tipi restituiti
per le funzioni di sistema. Questo è necessario perché il compilatore ha bisogno di queste informazioni per
elaborare espressioni che contengono queste funzioni di sistema, ma non possono eseguire sizetf
funzioni poiché non ha tempo di esecuzione.

Il formato della tabella è ASCII, una funzione per riga. Le righe vuote vengono ignorate e
righe che iniziano con '#' sono righe di commento. Ogni riga senza commento inizia
con il nome della funzione, quindi il tipo vpi (ovvero vpiSysFuncReal). I seguenti tipi sono
supportati:

vpiSysFuncReal
La funzione restituisce un valore reale/in tempo reale.

vpiSysFuncInt
La funzione restituisce un numero intero.

vpiSysFuncSize
La funzione restituisce un vettore con la larghezza data ed è firmata o non firmata
secondo la bandiera.

COMANDO FILE


Il file di comando consente all'utente di inserire i nomi dei file di origine e determinate righe di comando
passa in un file di testo invece che su una lunga riga di comando. I file di comando possono includere C
o commenti in stile C++, nonché # commenti, se # inizia la riga.

filetto Nome
Un semplice nome di file o percorso di file è considerato il nome di un file di origine Verilog.
Il percorso inizia con il primo carattere senza spazi. Le variabili sono
sostituito nei nomi dei file.

-c cmdfile -f cmdfile
A -c or -f token prefissa un file di comando, esattamente come fa sul comando
linea. Il file cmd può trovarsi sulla stessa riga o sulla riga successiva senza commenti.

-y libdir
A -y token prefissa una directory di libreria nel file di comando, esattamente come fa
sulla riga di comando. Il parametro per il -y bandiera può essere sulla stessa linea o il
riga successiva di non commento.

Variabili in libdir sono sostituiti.

+indir+incluso
I +indir+ token nei file di comando fornisce le directory in cui cercare i file di inclusione
più o meno allo stesso modo che -I i flag funzionano sulla riga di comando. La differenza è
quel multiplo +incluso dir le directory sono parametri validi per un singolo +indir+
token, anche se potresti averne più di uno +indir+ Linee.

Variabili in incluso sono sostituiti.

+liext+ext
I +liext token nei file di comando cinque estensioni di file da provare quando si cerca un
file di libreria. Questo è utile in combinazione con -y flag per elencare suffissi da provare
in ogni directory prima di passare alla directory della libreria successiva.

+libdir+dir
Questo è un altro modo per specificare le directory della libreria. Vedi la bandiera -y.

+libdir-nocase+dir
Questo è come il file +libdir dichiarazione, ma i nomi dei file all'interno delle directory dichiarati
qui sono insensibili alle maiuscole. Il nome del modulo mancante in una ricerca non deve necessariamente corrispondere a
maiuscole e minuscole del nome del file, purché le lettere siano corrette. Ad esempio, "foo" corrisponde
"Foo.v" ma non "bar.v".

+definire+NOME=APPREZZIAMO
I +definire+ token è lo stesso di -D opzione sulla riga di comando. Il valore
parte del token è facoltativa.

+cronologia+APPREZZIAMO
I +cronologia+ token viene utilizzato per impostare la scala temporale predefinita per la simulazione.
Questa è l'unità di tempo e la precisione prima di ogni `direttiva sulla scala temporale o dopo a
`direttiva di rivendita. L'impostazione predefinita è 1s/1s.

+nome-file-toupper
Questo token fa sì che i nomi dei file successivi a questo nel file di comando vengano tradotti in
maiuscolo. Questo aiuta nelle situazioni in cui una directory è passata attraverso un DOS
macchina e nel processo i nomi dei file vengono mutilati.

+nome-file-tolow
Questo è simile al +nome-file-toupper hack sopra descritto.

+larghezza intera+APPREZZIAMO
Ciò consente al programmatore di selezionare la larghezza per le variabili intere nel
Fonte Verilog. Il valore predefinito è 32, il valore può essere qualsiasi valore intero desiderato.

VARIABILI IN COMANDO FILE


In alcuni casi, iverilog supporta le variabili nei file di comando. Queste sono le stringhe del
forma "$(nomevar)" o "${nomevar}", dove nomevar è il nome della variabile d'ambiente
leggere. L'intera stringa viene sostituita con il contenuto di quella variabile. Le variabili sono
sostituiti solo in contesti che li supportano esplicitamente, inclusi file e directory
stringhe.

I valori delle variabili provengono dall'ambiente del sistema operativo e non dal preprocessore
definisce altrove nel file o nella riga di comando.

PREDEFINITO MACRO


Le seguenti macro sono predefinite dal compilatore:

__ICARO__ = 1
Questo è sempre definito quando si compila con Icarus Verilog.

__VAMS_ABILITA__ = 1
Questo è definito se Verilog-AMS è abilitato.

ESEMPI


Questi esempi presuppongono che tu abbia un file sorgente Verilog chiamato hello.v nel corrente
elenco

Per compilare hello.v in un file eseguibile chiamato a.out:

iverilog ciao.v

Per compilare hello.v in un file eseguibile chiamato hello:

iverilog -o ciao ciao.v

Per compilare ed eseguire esplicitamente utilizzando il runtime vvp:

iverilog -ohello.vvp -tvvp ciao.v

Usa iverilog online utilizzando i servizi onworks.net


Server e workstation gratuiti

Scarica app per Windows e Linux

Comandi Linux

Ad