EngelsFransSpaans

Ad


OnWorks-favicon

irilog - Online in de cloud

Voer iverilog uit in de gratis hostingprovider van OnWorks via Ubuntu Online, Fedora Online, Windows online emulator of MAC OS online emulator

Dit is de opdracht iverilog die kan worden uitgevoerd in de gratis hostingprovider van OnWorks met behulp van een van onze meerdere gratis online werkstations zoals Ubuntu Online, Fedora Online, Windows online emulator of MAC OS online emulator

PROGRAMMA:

NAAM


iverilog - Icarus Verilog-compiler

KORTE INHOUD


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

PRODUCTBESCHRIJVING


irilog is een compiler die Verilog-broncode vertaalt naar uitvoerbare programma's voor
simulatie of andere netlijstformaten voor verdere verwerking. De momenteel ondersteunde
doelen zijn vp voor simulatie, en FPGA voor synthese. Andere doeltypen worden toegevoegd als
codegeneratoren zijn geïmplementeerd.

OPTIES


irilog accepteert de volgende opties:

-Bbaseren De irilog programma gebruikt externe programma's en configuratiebestanden om voor te verwerken
en compileer de Verilog-bron. Normaal gesproken is het pad dat wordt gebruikt om deze tools te vinden
ingebouwd in de irilog programma. echter, de -B schakelaar stelt de gebruiker in staat om te selecteren
een andere reeks programma's. Het opgegeven pad wordt gebruikt om te lokaliseren ivlpp, ivl, gecodeerd
generatoren en de VPI-modules.

-cfilet -ffilet
Deze vlaggen specificeren een invoerbestand dat een lijst met Verilog-bronbestanden bevat.
Dit is vergelijkbaar met de commando filet van andere Verilog-simulators, in die zin dat het een
bestand dat de bestandsnamen bevat in plaats van ze op de opdrachtregel te nemen. Zien
commando Bestanden hieronder.

-Dmacro Definieert macro macro met de string `1' als definitie. Dit formulier is normaal
alleen gebruikt om ifdef-voorwaarden in de Verilog-bron te activeren.

-Dmacro=defin
Definieert macro macro as def.

-dnaam Activeer een klasse van compiler foutopsporingsberichten. De -d schakelaar kan worden gebruikt als
vaak zo nodig om alle gewenste berichten te activeren. Ondersteunde namen zijn
scopes, eval_tree, uitgebreide en synth2; alle andere namen worden genegeerd.

-E Verwerk de Verilog-bron voor, maar compileer deze niet. Het uitvoerbestand is het
Verilog-invoer, maar met bestandsinsluitingen en macroverwijzingen uitgebreid en verwijderd.
Dit is bijvoorbeeld handig om de Verilog-bron voor te verwerken voor gebruik door anderen
samenstellers.

-g1995|-g2001|-g2001-noconfig|-g2005
Selecteer de Verilog-taal generatie ondersteunen in de compiler. Dit selecteert
tussen IEEE1364-1995, IEEE1364-2001of IEEE1364-2005. Normaal gesproken Icarus Verilog
standaard ingesteld op de laatst bekende generatie van de taal. Deze vlag is het handigst
om de taal te beperken tot een set die wordt ondersteund door tools van specifieke generaties, voor
compatibiliteit met andere tools.

-gverilog-ams|-gno-verilog-ams
Ondersteuning voor Verilog-AMS in- of uitschakelen (standaard). Zeer weinig Verilog-AMS
specifieke functionaliteit wordt momenteel ondersteund.

-gspecificeer|-gno-specificeren
In- of uitschakelen (standaard) specificeer blokondersteuning. Indien ingeschakeld, specificeer blok
code wordt uitgewerkt. Indien uitgeschakeld, specificeren blokken worden geparseerd maar genegeerd. Specificeer
blokken zijn meestal niet nodig voor RTL-simulatie en kunnen zelfs pijn doen
uitvoering van de simulatie. Het uitschakelen van gespecificeerde blokken vermindert echter de nauwkeurigheid
van full-time simulaties.

-gstd-inclusief|-gno-std-include
Activeer (standaard) of deactiveer het zoeken naar een standaard installatie-include
directory na alle andere expliciete include-directories. Deze standaard omvat
directory is een handige plaats om standaard headerbestanden te installeren die een Verilog
programma kan bevatten.

-grelative-opnemen|-gno-relatief-include
In- of uitschakelen (standaard) het toevoegen van de map met lokale bestanden aan het begin van
het include-bestandszoekpad. Hierdoor kunnen bestanden worden opgenomen ten opzichte van de
huidige bestand niet de meest voorkomende bestanden zijn alleen te vinden in de werkmap of
in het opgegeven zoekpad voor het include-bestand.

-gxtypen|-gno-xtypes
Ondersteuning voor uitgebreide typen inschakelen (standaard) of uitschakelen. Uitgebreide typen inschakelen
maakt nieuwe typen mogelijk die worden ondersteund door Icarus Verilog als extensies buiten de
basislijn Verilog. Het kan nodig zijn om uitgebreide typen uit te schakelen bij het compileren van code
dat botst met de weinige nieuwe trefwoorden die zijn gebruikt om het typesysteem te implementeren.

-gio-bereik-fout|-gno-io-bereik-fout
De standaarden vereisen dat een gevectoriseerde poort overeenkomende bereiken voor zijn poort heeft
aangifte evenals eventuele netto-/registeraangifte. Het was gebruikelijk in de
past om alleen het bereik voor de net/register-aangifte en enkele tools op te geven
dit nog steeds toestaan. Standaard wordt elke mismatch gerapporteerd als een fout. Gebruik makend van
-gno-io-bereik-fout zal een waarschuwing produceren in plaats van een fatale fout voor de zaak
van een vectored net/register en een scalaire poortdeclaratie.

-gstrict-ca-eval|-gno-strikt-ca-eval
De standaard vereist dat eventuele invoer voor een doorlopende toewijzingsuitdrukking
waarde verandert, wordt de hele uitdrukking opnieuw geëvalueerd. Standaard worden delen van de
uitdrukkingen die niet afhankelijk zijn van de gewijzigde invoerwaarde(n), worden niet opnieuw geëvalueerd.
Als een expressie een aanroep naar een functie bevat die niet alleen afhankelijk is van de functie
ingevoerde waarden heeft of bijwerkingen heeft, zal het resulterende gedrag hiervan afwijken
dat vereist door de norm. Gebruik makend van -gstrict-ca-eval zal standaard afdwingen
compliant gedrag (met enig prestatieverlies).

-Iinbegrepen
Voeg map toe inbegrepen naar de lijst met mappen waarin naar Verilog is gezocht, include
bestanden. De -I switch kan vele malen worden gebruikt om meerdere mappen op te geven
zoeken, worden de mappen doorzocht in de volgorde waarin ze op de opdrachtregel verschijnen.

-Mpad Schrijf in het door pad opgegeven bestand een lijst met bestanden die bijdragen aan het
samenstelling van het ontwerp. Dit geldt ook voor bestanden die zijn opgenomen door include
richtlijnen en bestanden die automatisch worden geladen door bibliotheekondersteuning. Het resultaat
is één bestandsnaam per regel, zonder voorloop- of volgspatie.

-mmodule
Voeg deze module toe aan de lijst met VPI-modules die door de simulatie moeten worden geladen. Veel
modules kunnen worden opgegeven en ze worden allemaal geladen in de opgegeven volgorde. De
systeemmodule is impliciet en altijd inbegrepen. Als een systeemfunctietabelbestand
( .sft) bestaat voor de module, wordt deze automatisch geladen.

-Npad Dit wordt gebruikt voor het debuggen van de eigenlijke compiler. Dump het definitieve netlijstformulier van de
ontwerp naar het opgegeven bestand. Anders heeft het geen invloed op de werking van de
compiler. De dump gebeurt nadat het ontwerp is uitgewerkt en geoptimaliseerd.

-o bestandsnaam
Plaats uitvoer in het bestand bestandsnaam. Als er geen uitvoerbestandsnaam is opgegeven, irilog
gebruikt de standaardnaam a.out.

-pvlag=waarde
Wijs een waarde toe aan een doelspecifieke vlag. De -p schakelaar kan zo vaak worden gebruikt als
nodig om alle gewenste vlaggen op te geven. De vlaggen die worden gebruikt, zijn afhankelijk van de
doel dat is geselecteerd, en worden beschreven in doelspecifieke documentatie. vlaggen
die niet worden gebruikt, worden genegeerd.

-S Synthetiseren. Normaal gesproken, als het doelwit gedragsbeschrijvingen kan accepteren, zal het
compiler laat processen in gedragsvorm achter. De -S schakelaar veroorzaakt de
compiler om synthese uit te voeren, zelfs als dit niet nodig is voor het doel. Als de
doeltype is een netlist-indeling, de -S schakelen is niet nodig en heeft geen effect.

-s topmodule
Geef de module op het hoogste niveau op die u wilt uitwerken. Icarus Verilog zal standaard kiezen
modules die niet in andere modules zijn geïnstantieerd, maar soms ook niet
voldoende is, of er worden te veel modules geïnstantieerd. Als de gebruiker een of meer opgeeft
rootmodules met -s vlaggen, dan worden ze in plaats daarvan gebruikt als rootmodules.

-Tmin|typ|max
Gebruik deze schakelaar om min., typ. of max. tijden te selecteren uit min:typ:max-expressies.
Normaal gesproken gebruikt de compiler gewoon de typwaarde van deze uitdrukkingen
(drukt een waarschuwing af voor de eerste tien die het vindt) maar deze schakelaar zal de
compiler expliciet welke waarde moet worden gebruikt. Dit zal de waarschuwing onderdrukken dat de
compiler maakt een keuze.

-tdoel
Gebruik deze schakelaar om het doeluitvoerformaat op te geven. Zie de DOELSTELLINGEN sectie hieronder
voor een lijst met geldige uitvoerformaten.

-v Schakel uitgebreide berichten in. Hiermee worden de opdrachtregels afgedrukt die worden uitgevoerd naar
voer de eigenlijke compilatie uit, samen met versie-informatie van de verschillende
componenten, evenals de versie van het product als geheel. Je zal merken
dat de opdrachtregels een verwijzing bevatten naar een tijdelijk sleutelbestand dat wordt doorgegeven
informatie aan de eigenlijke compiler. Om te voorkomen dat dat bestand wordt verwijderd op de
einde van het proces, geeft u een eigen bestandsnaam op in de omgevingsvariabele
IVERILOG_ICONFIG.

-V Druk de versie van de compiler af en sluit af.

-Wklasse Schakel verschillende soorten waarschuwingen in. Zie de WAARSCHUWING SOORTEN sectie hieronder voor
beschrijvingen van de verschillende waarschuwingsgroepen. Indien meerdere -W schakelaars worden gebruikt,
de waarschuwingsset is de vereniging van alle gevraagde klassen.

-ylibdir
Voeg de map toe aan het zoekpad van de bibliotheekmodule. Wanneer de compiler een
undefined module zoekt het in deze mappen naar bestanden met de juiste naam.

-Yachtervoegsel
Achtervoegsel toevoegen aan de lijst met geaccepteerde achtervoegsels voor bestandsnamen die worden gebruikt bij het zoeken naar een
bibliotheek voor cellen. De lijst is standaard ingesteld op het enkele item .v.

MODULE BIBLIOTHEKEN


De Icarus Verilog-compiler ondersteunt modulebibliotheken als mappen die Verilog bevatten
bronbestanden. Tijdens de uitwerking merkt de compiler de instantiëring van undefined op
module typen. Als de gebruiker bibliotheekzoekmappen specificeert, zal de compiler zoeken
de map voor bestanden met de naam van het ontbrekende moduletype. Als het zo'n bestand vindt,
het laadt het als een Verilog-bronbestand, ze proberen de module opnieuw uit te werken.

Bibliotheekmodulebestanden mogen slechts één module bevatten, maar dit is geen vereiste.
Bibliotheekmodules kunnen verwijzen naar andere modules in de bibliotheek of in het hoofdontwerp.

DOELSTELLINGEN


De Icarus Verilog-compiler ondersteunt een verscheidenheid aan doelen, voor verschillende doeleinden, en de
-t schakelaar wordt gebruikt om het gewenste doel te selecteren.

nul Het null-doel zorgt ervoor dat er geen code wordt gegenereerd. Het is handig voor het controleren van de
syntaxis van de Verilog-bron.

vp Dit is de standaardinstelling. Het vvp-doel genereert code voor de vvp-runtime. Het resultaat
is een compleet programma dat het ontwerp simuleert, maar moet worden uitgevoerd door het vp
opdracht.

FPGA Dit is een synthesedoel dat een verscheidenheid aan FPGA-apparaten ondersteunt, meestal door EDIF
formaat uitvoer. De Icarus Verilog fpga-codegenerator kan complete
ontwerpen of EDIF-macro's die op hun beurt door anderen in grotere ontwerpen kunnen worden geïmporteerd
hulpmiddelen. De FPGA doel impliceert de synthese -S vlag.

vhdl Dit doel produceert een VHDL-vertaling van de Verilog-netlijst. De uitvoer is een
enkel bestand met VHDL-entiteiten die overeenkomen met de modules in de Verilog
broncode. Merk op dat slechts een subset van de Verilog-taal wordt ondersteund. Zien
de wiki voor meer informatie.

WAARSCHUWING SOORTEN


Dit zijn de soorten waarschuwingen die kunnen worden geselecteerd door de -W schakelaar. Alle waarschuwingen
soorten (anders dan allen) kan ook worden voorafgegaan door Nee- om die waarschuwing uit te schakelen. Dit is
het handigst na a -Muur argument om geïsoleerde waarschuwingstypen te onderdrukken.

allen Dit maakt de implicit, portbind, select-range, timescale en
waarschuwingscategorieën voor de hele array.

stilzwijgend
Dit maakt waarschuwingen mogelijk voor het maken van impliciete declaraties. Als bijvoorbeeld een
scalaire draad X wordt gebruikt maar niet aangegeven in de Verilog-bron, dit zal een afdrukken
waarschuwing bij het eerste gebruik.

portbinden
Dit maakt waarschuwingen mogelijk voor poorten van module-instanties die niet zijn aangesloten
maar zou waarschijnlijk moeten zijn. Bungelende invoerpoorten genereren bijvoorbeeld een
waarschuwing.

select-bereik
Dit maakt waarschuwingen mogelijk voor constant buiten bereik selecteren. Dit omvat gedeeltelijke of
volledig out-of-bound selects evenals een select met een 'bx of 'bz in de
index.

tijdschaal
Dit maakt waarschuwingen mogelijk voor inconsistent gebruik van de tijdschaalrichtlijn. Het detecteert
als sommige modules geen tijdschaal hebben, of als modules tijdschaal erven van een andere
bestand. Beide betekenen waarschijnlijk dat tijdschema's inconsistent zijn, en simulatietiming
kan verwarrend zijn en afhankelijk van de compilatievolgorde.

inloop Dit maakt waarschuwingen mogelijk voor altijd-instructies die tijdens de looptijd oneindige lussen kunnen hebben
(heeft paden met geen of geen vertraging). Deze klasse van waarschuwingen is niet opgenomen in -Muur
en heeft dus geen a Nee- variant. Een fatale foutmelding zal altijd zijn
afgedrukt wanneer de compiler kan bepalen dat er zeker een oneindige zal zijn
lus (alle paden hebben geen of geen vertraging).

Gebruik dit als u vermoedt dat een always-instructie een runtime oneindige lus produceert
flag om de always-statements te vinden waarvan de logica moet worden geverifieerd. Het is
verwacht dat veel van de waarschuwingen valse positieven zullen zijn, aangezien de code behandelt
de waarde van alle variabelen en signalen als onbepaald.

gevoeligheid-gehele-vector
Dit maakt waarschuwingen mogelijk voor wanneer een onderdeel selecteert binnen een "altijd @*"-instructie
resulteert in het toevoegen van de gehele vector aan de impliciete gevoeligheidslijst.
Hoewel dit gedrag wordt voorgeschreven door de IEEE-standaard, is het niet wat zou kunnen
worden verwacht en kan gevolgen hebben voor de prestaties als de vector groot is.

gevoeligheid-gehele-array
Dit maakt waarschuwingen mogelijk voor wanneer een woord wordt geselecteerd binnen een "altijd @*"-instructie
resulteert erin dat de hele array wordt toegevoegd aan de impliciete gevoeligheidslijst. Hoewel
dit gedrag wordt voorgeschreven door de IEEE-standaard, het is niet wat zou kunnen zijn
verwacht en kan gevolgen hebben voor de prestaties als de array groot is.

SYSTEM FUNCTIE TAFEL FILES


Als de naam van het bronbestand als een .sft achtervoegsel, dan wordt aangenomen dat het een systeemfunctietabel is
bestand. Een systeemfunctietabelbestand wordt gebruikt om aan de compiler de retourtypen te beschrijven
voor systeemfuncties. Dit is nodig omdat de compiler deze informatie nodig heeft
uitgebreide uitdrukkingen die deze systeemfuncties bevatten, maar die het formaat sizetf niet kunnen uitvoeren
functioneert omdat het geen looptijd heeft.

Het formaat van de tabel is ASCII, één functie per regel. Lege regels worden genegeerd, en
regels die beginnen met de '#' karakter zijn commentaarregels. Elke regel zonder commentaar begint
met de functienaam, dan het vpi-type (dwz vpiSysFuncReal). De volgende soorten zijn
ondersteund:

vpiSysFuncReal
De functie retourneert een real/realtime waarde.

vpiSysFuncInt
De functie retourneert een geheel getal.

vpiSysFuncSized
De functie retourneert een vector met de opgegeven breedte en is ondertekend of niet ondertekend
volgens de vlag.

COMMAND FILES


Met het opdrachtbestand kan de gebruiker bronbestandsnamen en bepaalde opdrachtregels plaatsen
verandert in een tekstbestand in plaats van op een lange opdrachtregel. Opdrachtbestanden kunnen C
of C++-achtige opmerkingen, evenals # opmerkingen, als de # de regel begint.

filet naam
Een eenvoudige bestandsnaam of bestandspad wordt beschouwd als de naam van een Verilog-bronbestand.
Het pad begint met het eerste teken dat geen witruimte is. Variabelen zijn
vervangen in bestandsnamen.

-c cmd-bestand -f cmd-bestand
A -c or -f token prefixeert een opdrachtbestand, precies zoals bij de opdracht
lijn. Het cmd-bestand kan op dezelfde regel staan ​​of op de volgende regel zonder commentaar.

-y libdir
A -y token prefixeert een bibliotheekmap in het opdrachtbestand, precies zoals het doet
op de opdrachtregel. De parameter voor de -y vlag kan op dezelfde lijn staan ​​of de
volgende regel zonder commentaar.

Variabelen in de libdir zijn vervangen.

+incdir+inbegrepen
De +incdir+ token in opdrachtbestanden geeft mappen om te zoeken naar include-bestanden
op ongeveer dezelfde manier dat -I vlaggen werken op de opdrachtregel. Het verschil is
dat veelvoud +inbegrependir mappen zijn geldige parameters voor een single +incdir+
token, hoewel u er ook meerdere kunt hebben +incdir+ lijnen.

Variabelen in de inbegrepen zijn vervangen.

+libext+ext
De +libext token in opdrachtbestanden vijf bestandsextensies om te proberen bij het zoeken naar een
bibliotheek bestand. Dit is handig in combinatie met -y vlaggen om achtervoegsels weer te geven om te proberen
in elke map voordat u doorgaat naar de volgende bibliotheekmap.

+libdir+dir
Dit is een andere manier om bibliotheekmappen op te geven. Zie de vlag -y.

+libdir-nocase+dir
Dit is net als de +libdir verklaring, maar bestandsnamen in de aangegeven mappen
hier zijn niet hoofdlettergevoelig. De ontbrekende modulenaam in een zoekopdracht hoeft niet overeen te komen met de
bestandsnaam hoofdlettergebruik, zolang de letters correct zijn. Bijvoorbeeld 'foo'-overeenkomsten
"Foo.v" maar niet "bar.v".

+definieer+NAAM=waarde
De +definieer+ token is hetzelfde als de -D optie op de opdrachtregel. De waarde
een deel van het token is optioneel.

+tijdschaal+waarde
De +tijdschaal+ token wordt gebruikt om de standaardtijdschaal voor de simulatie in te stellen.
Dit zijn de tijdseenheden en precisie vóór een `tijdschaalrichtlijn of na een
`richtlijn resetten. De standaardwaarde is 1s/1s.

+toupper-bestandsnaam
Dit token zorgt ervoor dat bestandsnamen hierna in het opdrachtbestand waarnaar moet worden vertaald
hoofdletters. Dit helpt bij situaties waarin een directory door een DOS is gegaan
machine, en tijdens het proces worden de bestandsnamen vervormd.

+onderste-bestandsnaam
Dit is vergelijkbaar met de +toupper-bestandsnaam hierboven beschreven hacken.

+geheel getal-breedte+waarde
Hierdoor kan de programmeur de breedte selecteren voor gehele variabelen in de
Verilog-bron. De standaardwaarde is 32, de waarde kan elke gewenste gehele waarde zijn.

VARIABELEN IN COMMAND FILES


In bepaalde gevallen ondersteunt iverilog variabelen in opdrachtbestanden. Dit zijn snaren van de
formulier "$(vernaam)" of "${vernaam}", waar vernaam is de naam van de omgevingsvariabele
lezen. De hele string wordt vervangen door de inhoud van die variabele. Variabelen zijn
alleen vervangen in contexten die ze expliciet ondersteunen, inclusief bestand en map
snaren.

Variabele waarden komen uit de omgeving van het besturingssysteem en niet uit de preprocessor
elders in het bestand of de opdrachtregel definieert.

VOORGEDEFINIEERD MACRO'S


De volgende macro's zijn vooraf gedefinieerd door de compiler:

__ICARUS__ = 1
Dit wordt altijd gedefinieerd bij het compileren met Icarus Verilog.

__VAMS_ENABLE__ = 1
Dit wordt gedefinieerd als Verilog-AMS is ingeschakeld.

Voorbeelden


Deze voorbeelden gaan ervan uit dat u een Verilog-bronbestand met de naam hello.v in de huidige versie hebt
directory

Om hello.v te compileren naar een uitvoerbaar bestand met de naam a.out:

iverilog hallo.v

Om hello.v te compileren naar een uitvoerbaar bestand met de naam hello:

iverilog -o hallo hallo.v

Expliciet compileren en uitvoeren met behulp van de vvp-runtime:

iverilog -ohello.vvp -tvvp hallo.v

Gebruik iverilog online met behulp van onworks.net-services


Gratis servers en werkstations

Windows- en Linux-apps downloaden

Linux-commando's

Ad