InglêsFrancêsEspanhol

Ad


favicon do OnWorks

iverilog - Online na nuvem

Execute o iverilog no provedor de hospedagem gratuita OnWorks no Ubuntu Online, Fedora Online, emulador online do Windows ou emulador online do MAC OS

Este é o comando iverilog que pode ser executado no provedor de hospedagem gratuita OnWorks usando uma de nossas várias estações de trabalho online gratuitas, como Ubuntu Online, Fedora Online, emulador online do Windows ou emulador online do MAC OS

PROGRAMA:

NOME


iverilog - compilador Icarus Verilog

SINOPSE


Iverilog [-ESVv] [-Bpath] [-ccmdfile | -fcmdfile] [-Dmacro [= defn]] [-pflag = value] [-dname]
[-g1995 | -g2001 | -g2005 | -g ] [-Iincludedir] [-módulo] [-Mfile] [-Nfile]
[-ooutputfilename] [-stopmodule] [-ttype] [-Tmin / typ / max] [-Wclass] [-ypath] sourcefile

DESCRIÇÃO


Iverilog é um compilador que traduz o código-fonte Verilog em programas executáveis ​​para
simulação ou outros formatos de netlist para processamento posterior. O atualmente suportado
alvos são vvp para simulação, e FPGA para síntese. Outros tipos de alvo são adicionados como
geradores de código são implementados.

OPÇÕES


Iverilog aceita as seguintes opções:

-Bbase A Iverilog programa usa programas externos e arquivos de configuração para pré-processar
e compilar a fonte Verilog. Normalmente, o caminho usado para localizar essas ferramentas é
construído no Iverilog programa. No entanto, o -B switch permite que o usuário selecione
um conjunto diferente de programas. O caminho fornecido é usado para localizar ivlpp, ivl, código
geradores e os módulos VPI.

-clima -flima
Esses sinalizadores especificam um arquivo de entrada que contém uma lista de arquivos de origem Verilog.
Isso é semelhante ao comando lima de outros simuladores Verilog, no sentido de que é um
arquivo que contém os nomes dos arquivos em vez de tomá-los na linha de comando. Ver
Command Arquivos abaixo.

-Dmacro Define macro macro com a string `1 'como sua definição. Este formulário é normalmente
usado apenas para acionar condicionais ifdef na fonte Verilog.

-Dmacro = defn
Define macro macro as definir.

-dnome Ative uma classe de mensagens de depuração do compilador. O -d interruptor pode ser usado como
com a freqüência necessária para ativar todas as mensagens desejadas. Os nomes suportados são
scopes, eval_tree, elaborate e synth2; quaisquer outros nomes são ignorados.

-E Pré-processe o código-fonte Verilog, mas não o compile. O arquivo de saída é o
Entrada Verilog, mas com inclusões de arquivo e referências de macro expandidas e removidas.
Isso é útil, por exemplo, para pré-processar fonte Verilog para uso por outros
compiladores.

-g1995|-g2001|-g2001-noconfig|-g2005
Selecione o idioma Verilog geração para apoiar no compilador. Isso seleciona
entre IEEE1364-1995, IEEE1364-2001ou IEEE1364-2005. Normalmente, Icarus Verilog
o padrão é a última geração conhecida do idioma. Este sinalizador é mais útil
para restringir a linguagem a um conjunto apoiado por ferramentas de gerações específicas, para
compatibilidade com outras ferramentas.

-gverilog-ams|-gno-verilog-ams
Habilite ou desabilite o suporte (padrão) para Verilog-AMS. Muito pouco Verilog-AMS
funcionalidade específica é atualmente suportada.

-gespecificar|-gno-especificar
Habilitar ou desabilitar (padrão) especifica o suporte de bloco. Quando habilitado, especifica o bloco
o código é elaborado. Quando desativado, os blocos específicos são analisados, mas ignorados. Especificamos
blocos geralmente não são necessários para simulação RTL e, de fato, podem prejudicar
desempenho da simulação. No entanto, a desativação de blocos específicos reduz a precisão
de simulações em tempo integral.

-gstd-incluir|-gno-std-incluir
Habilite (padrão) ou desabilite a busca de uma instalação padrão include
depois de todos os outros diretórios de inclusão explícitos. Este padrão inclui
diretório é um lugar conveniente para instalar arquivos de cabeçalho padrão que um Verilog
o programa pode incluir.

-grelativo-incluir|-gno-relativo-incluir
Habilite ou desabilite (padrão) adicionando o diretório de arquivos locais ao início de
o caminho de pesquisa de arquivo de inclusão. Isso permite que os arquivos sejam incluídos em relação ao
arquivo atual não os arquivos mais comuns são encontrados apenas no diretório de trabalho ou
no caminho de pesquisa de arquivo de inclusão especificado.

-gxtypes|-gno-xtypes
Ative (padrão) ou desative o suporte para tipos estendidos. Habilitando tipos estendidos
permite novos tipos que são suportados pela Icarus Verilog como extensões além do
Verilog da linha de base. Pode ser necessário desativar os tipos estendidos ao compilar o código
que entra em conflito com as poucas novas palavras-chave usadas para implementar o sistema de tipos.

-gio-range-erro|-gno-io-erro de intervalo
Os padrões exigem que uma porta vetorial tenha intervalos correspondentes para sua porta
declaração, bem como qualquer declaração de rede / registro. Era uma prática comum no
passado para especificar apenas o intervalo para a declaração de rede / registro e algumas ferramentas
ainda permitir isso. Por padrão, qualquer incompatibilidade é relatada como um erro. Usando
-gno-io-erro de intervalo irá produzir um aviso em vez de um erro fatal para o caso
de uma rede / registrador vetorizado e uma declaração de porta escalar.

-gstrict-ca-eval|-gno-strict-ca-eval
O padrão exige que, se houver entrada para uma expressão de atribuição contínua
muda o valor, toda a expressão é reavaliada. Por padrão, partes do
expressões que não dependem dos valores de entrada alterados não são reavaliadas.
Se uma expressão contém uma chamada para uma função que não depende apenas de seu
valores de entrada ou que tenha efeitos colaterais, o comportamento resultante será diferente de
o exigido pela norma. Usando -gstrict-ca-eval forçará padrão
comportamento compatível (com alguma perda de desempenho).

-Iincluído
Anexar diretório incluído a lista de diretórios pesquisados ​​por Verilog incluem
arquivos. o -I switch pode ser usado muitas vezes para especificar vários diretórios para
pesquisa, os diretórios são pesquisados ​​na ordem em que aparecem na linha de comando.

-Mcaminho Grave no arquivo especificado por caminho uma lista de arquivos que contribuem para o
compilação do design. Isso inclui arquivos que são incluídos por include
diretivas e arquivos que são carregados automaticamente pelo suporte da biblioteca. A saída
é um nome de arquivo por linha, sem espaço à esquerda ou à direita.

-mmódulo
Adicione este módulo à lista de módulos VPI a serem carregados pela simulação. Muitos
os módulos podem ser especificados e todos serão carregados, na ordem especificada. O
o módulo do sistema está implícito e sempre incluído. Se um arquivo de tabela de função do sistema
( .sft) existe para o módulo que será carregado automaticamente.

-Ncaminho Isso é usado para depurar o compilador apropriado. Despeje a forma final da netlist do
design para o arquivo especificado. Caso contrário, não afeta a operação do
compilador. O despejo ocorre após a elaboração e otimização do projeto.

-o nome do arquivo
Coloque a saída no arquivo nome do arquivo. Se nenhum nome de arquivo de saída for especificado, Iverilog
usa o nome padrão a.out.

-pflag = value
Atribua um valor a um sinalizador específico de destino. O -p interruptor pode ser usado tão frequentemente quanto
necessário especificar todos os sinalizadores desejados. Os sinalizadores que são usados ​​dependem do
destino selecionado e descrito na documentação específica do destino. Bandeiras
que não são usados ​​são ignorados.

-S Sintetizar. Normalmente, se o alvo pode aceitar descrições comportamentais, o
o compilador deixará os processos em forma comportamental. O -S mudança faz com que o
compilador para realizar a síntese, mesmo que não seja necessário para o destino. Se o
tipo de destino é um formato de netlist, o -S switch é desnecessário e não tem efeito.

-s módulo superior
Especifique o módulo de nível superior a ser elaborado. Icarus Verilog irá por padrão escolher
módulos que não são instanciados em nenhum outro módulo, mas às vezes isso não é
suficiente ou instancia muitos módulos. Se o usuário especificar um ou mais
módulos raiz com -s sinalizadores, então eles serão usados ​​como módulos raiz.

-Tmin | typ | max
Use esta opção para selecionar os tempos min, typ ou max das expressões min: typ: max.
Normalmente, o compilador simplesmente usará o valor de tipo dessas expressões
(imprimindo um aviso para os primeiros dez que encontrar), mas esta opção dirá ao
compilador explicitamente qual valor usar. Isso irá suprimir o aviso de que o
o compilador está fazendo uma escolha.

-talvo
Use esta opção para especificar o formato de saída de destino. Veja o ALVOS seção abaixo
para obter uma lista de formatos de saída válidos.

-v Ative mensagens detalhadas. Isso irá imprimir as linhas de comando que são executadas para
realizar a compilação real, junto com as informações de versão dos vários
componentes, bem como a versão do produto como um todo. Vais aperceber-te
que as linhas de comando incluam uma referência a um arquivo temporário chave que passa
informações para o compilador adequado. Para evitar que o arquivo seja excluído no
final do processo, forneça um nome de arquivo de sua preferência na variável de ambiente
IVERILOG_ICONFIG.

-V Imprima a versão do compilador e saia.

-Wclasse Ative diferentes classes de avisos. Veja o ATENÇÃO TIPOS seção abaixo para
descrições dos diferentes grupos de aviso. Se múltiplo -W interruptores são usados,
o conjunto de avisos é a união de todas as classes solicitadas.

-ylibdir
Anexe o diretório ao caminho de pesquisa do módulo de biblioteca. Quando o compilador encontra um
módulo indefinido, ele procura nesses diretórios os arquivos com o nome correto.

-Ysufixo
Adicionar sufixo à lista de sufixos de nome de arquivo aceitos usados ​​ao pesquisar um
biblioteca para células. O padrão da lista é a única entrada .v.

MÓDULO BIBLIOTECAS


O compilador Icarus Verilog suporta bibliotecas de módulos como diretórios que contêm Verilog
Arquivos Fonte. Durante a elaboração, o compilador percebe a instanciação de undefined
tipos de módulo. Se o usuário especificar diretórios de pesquisa de biblioteca, o compilador irá pesquisar
o diretório para arquivos com o nome do tipo de módulo ausente. Se encontrar esse arquivo,
carrega-o como um arquivo fonte Verilog, eles tentam novamente elaborar o módulo.

Os arquivos do módulo de biblioteca devem conter apenas um único módulo, mas isso não é um requisito.
Módulos de biblioteca podem fazer referência a outros módulos na biblioteca ou no design principal.

ALVOS


O compilador Icarus Verilog suporta uma variedade de alvos, para diferentes propósitos, e o
-t switch é usado para selecionar o alvo desejado.

nulo O destino nulo faz com que nenhum código seja gerado. É útil para verificar o
sintaxe da fonte Verilog.

vvp Este é o padrão. O destino vvp gera código para o tempo de execução vvp. A saída
é um programa completo que simula o design, mas deve ser executado pelo vvp
comando.

FPGA Este é um alvo de síntese que suporta uma variedade de dispositivos fpga, principalmente por EDIF
saída de formato. O gerador de código fpga Icarus Verilog pode gerar
designs ou macros EDIF que podem, por sua vez, ser importados para designs maiores por outros
Ferramentas. o FPGA alvo implica a síntese -S bandeira.

vhdl Este destino produz uma tradução VHDL da netlist Verilog. A saída é um
arquivo único contendo entidades VHDL correspondentes aos módulos no Verilog
Código fonte. Observe que apenas um subconjunto da linguagem Verilog é compatível. Ver
o wiki para mais informações.

ATENÇÃO TIPOS


Estes são os tipos de avisos que podem ser selecionados pelo -W chave. Todo o aviso
tipos (diferentes de todos os) também pode ser prefixado com no- para desligar esse aviso. Isto é
mais útil depois de um -Parede argumento para suprimir tipos de aviso isolados.

todos os Isso ativa o implícito, portbind, select-range, timescale e
categorias de aviso de sensibilidade-gama inteira.

implicitamente
Isso ativa avisos para a criação de declarações implícitas. Por exemplo, se um
fio escalar X é usado, mas não declarado na fonte Verilog, isso irá imprimir um
aviso em seu primeiro uso.

ligação de porta
Isso ativa avisos para portas de instanciações de módulo que não estão conectadas
mas provavelmente deveria ser. Portas de entrada pendentes, por exemplo, irão gerar um
Atenção.

intervalo de seleção
Isso ativa avisos para seleções constantes fora do limite. Isso inclui parcial ou
seleções totalmente fora do limite, bem como uma seleção contendo um 'bx ou' bz no
índice.

calendário
Isso ativa avisos de uso inconsistente da diretiva de escala de tempo. Detecta
se alguns módulos não têm escala de tempo, ou se os módulos herdam a escala de tempo de outro
Arquivo. Ambos provavelmente significam que as escalas de tempo são inconsistentes e o tempo de simulação
pode ser confuso e dependente da ordem de compilação.

influxo Isso ativa avisos para instruções always que podem ter loops infinitos em tempo de execução
(tem caminhos com nenhum ou zero atraso). Esta classe de avisos não está incluída em -Parede
e, portanto, não tem um no- variante. Uma mensagem de erro fatal sempre será
impresso quando o compilador pode determinar que definitivamente haverá um infinito
loop (todos os caminhos têm nenhum ou zero atraso).

Quando você suspeitar que uma instrução always está produzindo um loop infinito em tempo de execução, use este
sinalize para encontrar as instruções always que precisam ter sua lógica verificada. Isto é
esperado que muitos dos avisos sejam falsos positivos, uma vez que o código trata
o valor de todas as variáveis ​​e sinais como indeterminado.

sensibilidade-vetor inteiro
Isso ativa avisos para quando uma parte for selecionada dentro de uma instrução "always @ *"
resulta na adição de todo o vetor à lista de sensibilidade implícita.
Embora esse comportamento seja prescrito pelo padrão IEEE, não é o que pode
ser esperado e pode ter implicações de desempenho se o vetor for grande.

sensibilidade-gama inteira
Isso ativa avisos para quando uma palavra for selecionada dentro de uma instrução "sempre @ *"
resulta na adição de todo o array à lista de sensibilidade implícita. Embora
este comportamento é prescrito pelo padrão IEEE, não é o que poderia ser
esperado e pode ter implicações de desempenho se a matriz for grande.

SISTEMA FUNÇÃO TABELA ARQUIVOS


Se o nome do arquivo de origem como um .sft sufixo, então é considerado uma tabela de funções do sistema
Arquivo. Um arquivo de tabela de função do sistema é usado para descrever para o compilador os tipos de retorno
para funções do sistema. Isso é necessário porque o compilador precisa dessas informações para
elaboram expressões que contêm essas funções do sistema, mas não podem executar o sizetf
funções, uma vez que não tem tempo de execução.

O formato da tabela é ASCII, uma função por linha. Linhas vazias são ignoradas e
linhas que começam com '#caractere são linhas de comentário. Cada linha sem comentário começa
com o nome da função e, em seguida, o tipo vpi (ou seja, vpiSysFuncReal). Os seguintes tipos são
suportado:

vpiSysFuncReal
A função retorna um valor real / em tempo real.

vpiSysFuncInt
A função retorna um inteiro.

vpiSysFuncSized
A função retorna um vetor com a largura fornecida e é assinado ou não
de acordo com a bandeira.

COMANDO ARQUIVOS


O arquivo de comando permite ao usuário colocar os nomes dos arquivos de origem e certas linhas de comando
muda para um arquivo de texto em vez de uma longa linha de comando. Arquivos de comando podem incluir C
ou comentários do estilo C ++, bem como # comentários, se # iniciar a linha.

lima nome
Um nome de arquivo simples ou caminho de arquivo é considerado o nome de um arquivo de origem Verilog.
O caminho começa com o primeiro caractere sem espaço em branco. Variáveis ​​são
substituído em nomes de arquivo.

-c arquivo cmd -f arquivo cmd
A -c or -f token prefixa um arquivo de comando, exatamente como faz no comando
linha. O cmdfile pode estar na mesma linha ou na próxima linha sem comentários.

-y libdir
A -y token prefixa um diretório de biblioteca no arquivo de comando, exatamente como faz
na linha de comando. O parâmetro para o -y bandeira pode estar na mesma linha ou o
próxima linha sem comentários.

Variáveis ​​no libdir são substituídos.

+ incdir +incluído
A + incdir + token em arquivos de comando fornece diretórios para pesquisar por arquivos de inclusão
da mesma forma que -I sinalizadores funcionam na linha de comando. A diferença é
aquele múltiplo + includedir diretórios são parâmetros válidos para um único + incdir +
token, embora você também possa ter vários + incdir + Linhas.

Variáveis ​​no incluído são substituídos.

+ libext +ext
A + libext token em arquivos de comando cinco extensões de arquivo para tentar ao procurar um
arquivo de biblioteca. Isso é útil em conjunto com -y sinalizadores para listar sufixos para tentar
em cada diretório antes de passar para o próximo diretório de biblioteca.

+ libdir +dir
Esta é outra maneira de especificar diretórios de biblioteca. Veja o sinalizador -y.

+ libdir-nocase +dir
Isso é como o + libdir declaração, mas os nomes dos arquivos dentro dos diretórios declarados
aqui não diferenciam maiúsculas de minúsculas. O nome do módulo ausente em uma pesquisa não precisa corresponder ao
caso do nome do arquivo, desde que as letras estejam corretas. Por exemplo, "foo" corresponde
"Foo.v" mas não "bar.v".

+ definir +NOME=valor
A + definir + token é o mesmo que o -D opção na linha de comando. O valor que
parte do token é opcional.

+ escala de tempo +valor
A + escala de tempo + token é usado para definir a escala de tempo padrão para a simulação.
Estas são as unidades de tempo e precisão antes de qualquer `diretiva de escala de tempo ou após um
`diretiva resetall. O padrão é 1s / 1s.

+ toupper-filename
Este token faz com que os nomes dos arquivos após este no arquivo de comando sejam traduzidos para
maiúsculas. Isso ajuda em situações em que um diretório passou por um DOS
máquina e, no processo, os nomes dos arquivos são eliminados.

+ tolower-filename
Isso é semelhante ao + toupper-filename hack descrito acima.

+ largura inteira +valor
Isso permite que o programador selecione a largura para variáveis ​​inteiras no
Fonte Verilog. O padrão é 32, o valor pode ser qualquer valor inteiro desejado.

VARIÁVEIS IN COMANDO ARQUIVOS


Em certos casos, iverilog oferece suporte a variáveis ​​em arquivos de comando. Estas são sequências de
formulário "$ (nome da var) "ou" $ {nome da var}", Onde nome da var é o nome da variável de ambiente
ler. A string inteira é substituída pelo conteúdo dessa variável. Variáveis ​​são
substituído apenas em contextos que os suportam explicitamente, incluindo arquivo e diretório
cordas.

Os valores das variáveis ​​vêm do ambiente do sistema operacional, e não do pré-processador
define em outro lugar no arquivo ou na linha de comando.

PREDEFINIDO MACROS


As seguintes macros são predefinidas pelo compilador:

__ICARO__ = 1
Isso é sempre definido ao compilar com Icarus Verilog.

__VAMS_ENABLE__ = 1
Isso é definido se o Verilog-AMS estiver ativado.

EXEMPLOS


Estes exemplos presumem que você tem um arquivo fonte Verilog chamado hello.v no atual
anuário

Para compilar hello.v em um arquivo executável chamado a.out:

iverilog olá.v

Para compilar hello.v em um arquivo executável chamado hello:

iverilog -o olá olá.v

Para compilar e executar explicitamente usando o tempo de execução vvp:

iverilog -ohello.vvp -tvvp olá.v

Use iverilog online usando serviços onworks.net


Servidores e estações de trabalho gratuitos

Baixar aplicativos Windows e Linux

Comandos Linux

Ad