InglésFrancésEspañol

Ad


icono de página de OnWorks

iverilog - Online en la nube

Ejecute iverilog en el proveedor de alojamiento gratuito de OnWorks sobre Ubuntu Online, Fedora Online, emulador en línea de Windows o emulador en línea de MAC OS

Este es el comando iverilog que se puede ejecutar en el proveedor de alojamiento gratuito de OnWorks utilizando una de nuestras múltiples estaciones de trabajo en línea gratuitas, como Ubuntu Online, Fedora Online, emulador en línea de Windows o emulador en línea de MAC OS.

PROGRAMA:

NOMBRE


iverilog - compilador Icarus Verilog

SINOPSIS


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

DESCRIPCIÓN


iverilogo es un compilador que traduce el código fuente de Verilog en programas ejecutables para
simulación u otros formatos de netlist para su posterior procesamiento. El actualmente soportado
los objetivos son vvp para simulación, y FPGA para síntesis. Otros tipos de objetivos se agregan como
Se implementan generadores de código.

CAMPUS


iverilogo acepta las siguientes opciones:

-Bbases El iverilogo El programa utiliza programas externos y archivos de configuración para preprocesar
y compile la fuente de Verilog. Normalmente, la ruta utilizada para ubicar estas herramientas es
integrado en el iverilogo programa. sin embargo, el -B interruptor permite al usuario seleccionar
un conjunto diferente de programas. La ruta dada se utiliza para localizar ivlp, ivl, codigo
generadores y los módulos VPI.

-cpresentar -fpresentar
Estos indicadores especifican un archivo de entrada que contiene una lista de archivos fuente de Verilog.
Esto es similar a la comando presentar de otros simuladores Verilog, ya que es un
archivo que contiene los nombres de archivo en lugar de tomarlos en la línea de comando. Ver
Comando archivos abajo.

-Dmacro Define macro macro con la cadena '1' como su definición. Esta forma es normalmente
solo se usa para activar condicionales ifdef en la fuente Verilog.

-Dmacro = defn
Define macro macro as definir.

-dnombre Activar una clase de mensajes de depuración del compilador. El -d El interruptor se puede utilizar como
a menudo según sea necesario para activar todos los mensajes deseados. Los nombres admitidos son
scopes, eval_tree, elaborate y synth2; cualquier otro nombre se ignora.

-E Procese previamente la fuente de Verilog, pero no la compile. El archivo de salida es el
Entrada de Verilog, pero con inclusiones de archivos y referencias de macros expandidas y eliminadas.
Esto es útil, por ejemplo, para preprocesar la fuente Verilog para su uso por otros
compiladores.

-g1995|-g2001|-g2001-noconfig|-g2005
Seleccione el idioma de Verilog generación de AHSS para apoyar en el compilador. Esto selecciona
entre IEEE1364-1995, IEEE1364-2001o IEEE1364-2005. Normalmente, Icarus Verilog
por defecto es la última generación conocida del lenguaje. Esta bandera es muy útil
restringir el lenguaje a un conjunto apoyado por herramientas de generaciones específicas, para
compatibilidad con otras herramientas.

-gverilog-ams|-gno-verilog-ams
Habilite o deshabilite (predeterminado) la compatibilidad con Verilog-AMS. Muy poco Verilog-AMS
Actualmente se admite una funcionalidad específica.

-gespecificar|-gno-especificar
Habilitar o deshabilitar (predeterminado) especificar el soporte de bloque. Cuando está habilitado, especificar bloque
se elabora el código. Cuando está deshabilitado, los bloques específicos se analizan pero se ignoran. Especificar
Los bloques comúnmente no son necesarios para la simulación RTL y, de hecho, pueden dañar
ejecución de la simulación. Sin embargo, deshabilitar especificar bloques reduce la precisión
de simulaciones de tiempo completo.

-gstd-incluir|-gno-std-incluye
Habilitar (predeterminado) o deshabilitar la búsqueda de una instalación estándar incluyen
directorio después de todos los demás directorios de inclusión explícitos. Este estándar incluye
directorio es un lugar conveniente para instalar archivos de encabezado estándar que un Verilog
el programa puede incluir.

-grelativo-incluir|-gno-relativo-include
Habilite o deshabilite (predeterminado) agregar el directorio de archivos locales al comienzo de
la ruta de búsqueda del archivo de inclusión. Esto permite que los archivos se incluyan en relación con el
archivo actual, no los archivos más comunes solo se encuentran en el directorio de trabajo o
en la ruta de búsqueda de archivos de inclusión especificada.

-gxtipos|-gno-xtipos
Habilite (predeterminado) o deshabilite la compatibilidad con tipos extendidos. Habilitación de tipos extendidos
permite nuevos tipos que son compatibles con Icarus Verilog como extensiones más allá de la
Verilog de referencia. Puede ser necesario deshabilitar los tipos extendidos si se compila el código
que choca con las pocas palabras clave nuevas utilizadas para implementar el sistema de tipos.

-Error-rango-bio|-gno-io-rango-error
Los estándares requieren que un puerto vectorizado tenga rangos coincidentes para su puerto
declaración, así como cualquier declaración de red / registro. Era una práctica común en el
pasado para especificar solo el rango para la declaración de red / registro y algunas herramientas
todavía permite esto. De forma predeterminada, cualquier discrepancia se informa como un error. Utilizando
-gno-io-rango-error producirá una advertencia en lugar de un error fatal para el caso
de una red / registro vectorial y una declaración de puerto escalar.

-gstrict-ca-eval|-gno-estricto-ca-eval
El estándar requiere que si alguna entrada a una expresión de asignación continua
cambia de valor, la expresión completa se vuelve a evaluar. De forma predeterminada, partes del
Las expresiones que no dependen de los valores de entrada modificados no se vuelven a evaluar.
Si una expresión contiene una llamada a una función que no depende únicamente de su
valores de entrada o que tiene efectos secundarios, el comportamiento resultante será diferente de
el requerido por la norma. Utilizando -gstrict-ca-eval forzará estándar
comportamiento conforme (con cierta pérdida de rendimiento).

-Iincluidoir
Agregar directorio incluidoir a la lista de directorios buscados para Verilog incluyen
archivos. los -I El conmutador se puede utilizar muchas veces para especificar varios directorios
búsqueda, los directorios se buscan en el orden en que aparecen en la línea de comando.

-Mcamino Escriba en el archivo especificado por ruta una lista de archivos que contribuyen al
recopilación del diseño. Esto incluye archivos incluidos por incluir
directivas y archivos que se cargan automáticamente mediante el soporte de la biblioteca. La salida
es un nombre de archivo por línea, sin espacios iniciales ni finales.

-mmódulo
Agregue este módulo a la lista de módulos VPI que se cargarán mediante la simulación. Muchos
Se pueden especificar módulos y todos se cargarán, en el orden especificado. El
El módulo del sistema está implícito y siempre se incluye. Si un archivo de tabla de funciones del sistema
( .sft) existe para el módulo y se cargará automáticamente.

-Ncamino Esto se usa para depurar el compilador propiamente dicho. Volcar la forma final de netlist del
diseño al archivo especificado. De lo contrario, no afecta el funcionamiento del
compilador. El volcado ocurre después de que el diseño está elaborado y optimizado.

-o nombre de archivo
Coloque la salida en el archivo nombre de archivo. Si no se especifica ningún nombre de archivo de salida, iverilogo
usa el nombre predeterminado fuera.

-pbandera = valor
Asignar un valor a una bandera específica de destino. El -p El interruptor se puede usar tan a menudo como
necesario especificar todas las banderas deseadas. Las banderas que se utilizan dependen de la
destino que está seleccionado y se describen en la documentación específica del destino. Banderas
que no se utilizan se ignoran.

-S Sintetizar. Normalmente, si el objetivo puede aceptar descripciones de comportamiento,
El compilador dejará los procesos en forma de comportamiento. El -S interruptor causa el
compilador para realizar la síntesis incluso si no es necesario para el destino. Si el
el tipo de destino es un formato de lista de redes, el -S El interruptor es innecesario y no tiene ningún efecto.

-s módulo superior
Especifique el módulo de nivel superior para elaborar. Icarus Verilog elegirá por defecto
módulos que no están instanciados en ningún otro módulo, pero a veces eso no es
suficiente, o crea instancias de demasiados módulos. Si el usuario especifica uno o más
módulos raíz con -s banderas, entonces se usarán como módulos raíz en su lugar.

-Tmin | tip | max
Utilice este interruptor para seleccionar tiempos mínimos, típicos o máximos de las expresiones mín .: típ .: máx.
Normalmente, el compilador simplemente usará el valor de tipo de estas expresiones
(imprimiendo una advertencia para los primeros diez que encuentre) pero este interruptor le dirá al
compilador explícitamente qué valor usar. Esto suprimirá la advertencia de que
compilador está haciendo una elección.

-tdirigidos
Utilice este conmutador para especificar el formato de salida de destino. Ver el OBJETIVOS sección a continuación
para obtener una lista de formatos de salida válidos.

-v Active los mensajes detallados. Esto imprimirá las líneas de comando que se ejecutan para
realizar la compilación real, junto con la información de la versión de los distintos
componentes, así como la versión del producto en su conjunto. Te darás cuenta
que las líneas de comando incluyen una referencia a un archivo temporal clave que pasa
información al compilador propiamente dicho. Para evitar que ese archivo se elimine en el
final del proceso, proporcione un nombre de archivo propio en la variable de entorno
IVERILOG_ICONFIG.

-V Imprima la versión del compilador y salga.

-Wclase Active diferentes clases de advertencias. Ver el ADVERTENCIA TIPOS sección a continuación para
descripciones de los diferentes grupos de advertencia. Si es múltiple -W se utilizan interruptores,
el conjunto de advertencias es la unión de todas las clases solicitadas.

-ylibdir
Agregue el directorio a la ruta de búsqueda del módulo de biblioteca. Cuando el compilador encuentra un
módulo indefinido, busca en estos directorios archivos con el nombre correcto.

-Ysufijo
Agregue un sufijo a la lista de sufijos de nombre de archivo aceptados que se utilizan al buscar un
biblioteca para celdas. La lista tiene como valor predeterminado la entrada única .v.

MÓDULO BIBLIOTECAS


El compilador Icarus Verilog admite bibliotecas de módulos como directorios que contienen Verilog
archivos fuente. Durante la elaboración, el compilador nota la instanciación de undefined
tipos de módulos. Si el usuario especifica los directorios de búsqueda de la biblioteca, el compilador buscará
el directorio de archivos con el nombre del tipo de módulo que falta. Si encuentra un archivo de este tipo,
lo carga como un archivo fuente de Verilog, intentan nuevamente elaborar el módulo.

Los archivos del módulo de la biblioteca deben contener solo un módulo, pero esto no es un requisito.
Los módulos de la biblioteca pueden hacer referencia a otros módulos en la biblioteca o en el diseño principal.

OBJETIVOS


El compilador Icarus Verilog admite una variedad de objetivos, para diferentes propósitos, y el
-t El interruptor se utiliza para seleccionar el objetivo deseado.

nulo El objetivo nulo hace que no se genere ningún código. Es útil para comprobar el
sintaxis de la fuente Verilog.

vvp Este es el predeterminado. El destino vvp genera código para el tiempo de ejecución de vvp. La salida
es un programa completo que simula el diseño pero debe ser ejecutado por el vvp
mando.

FPGA Este es un objetivo de síntesis que admite una variedad de dispositivos fpga, principalmente por EDIF
formato de salida. El generador de código Icarus Verilog fpga puede generar
diseños o macros EDIF que a su vez pueden ser importados a diseños más grandes por otros
instrumentos. los FPGA objetivo implica la síntesis -S bandera.

vhdl Este objetivo produce una traducción VHDL de la lista de redes Verilog. La salida es un
archivo único que contiene entidades VHDL correspondientes a los módulos en Verilog
código fuente. Tenga en cuenta que solo se admite un subconjunto del idioma Verilog. Ver
la wiki para obtener más información.

ADVERTENCIA TIPOS


Estos son los tipos de advertencias que puede seleccionar el -W cambiar. Toda la advertencia
tipos (distintos de todos) también puede tener el prefijo nO- para apagar esa advertencia. Esto es
más útil después de un -Pared argumento para suprimir tipos de advertencia aislados.

todos Esto habilita el implícito, portbind, select-range, timecale y
categorías de advertencia de sensibilidad-arreglo-completo.

implícitamente
Esto habilita advertencias para la creación de declaraciones implícitas. Por ejemplo, si un
El cable escalar X se usa pero no se declara en la fuente de Verilog, esto imprimirá un
advertencia en su primer uso.

enlace de puerto
Esto habilita advertencias para puertos de instanciaciones de módulos que no están conectados
pero probablemente debería serlo. Los puertos de entrada colgantes, por ejemplo, generarán un
advertencia.

rango de selección
Esto habilita advertencias para selecciones constantes fuera de límites. Esto incluye parciales o
selecciones totalmente fuera de límites, así como una selección que contenga un 'bx o' bz en el
índice.

escala de tiempo
Esto habilita advertencias por uso inconsistente de la directiva de escala de tiempo. Detecta
si algunos módulos no tienen escala de tiempo, o si los módulos heredan la escala de tiempo de otro
Archivo. Ambos probablemente significan que las escalas de tiempo son inconsistentes y que el tiempo de simulación
puede ser confuso y depender del orden de compilación.

infloo Esto habilita advertencias para declaraciones always que pueden tener bucles infinitos en tiempo de ejecución.
(tiene trayectorias sin demora o sin demora). Esta clase de advertencias no se incluye en -Pared
y por lo tanto no tiene un nO- variante. Un mensaje de error fatal siempre será
impreso cuando el compilador puede determinar que definitivamente habrá un infinito
bucle (todos los caminos tienen ningún retraso o ningún retraso).

Cuando sospeche que una declaración always está produciendo un bucle infinito en tiempo de ejecución, use esto
bandera para encontrar las declaraciones always que necesitan tener su lógica verificada. Está
Se esperaba que muchas de las advertencias fueran falsos positivos, ya que el código trata
el valor de todas las variables y señales como indeterminado.

sensibilidad-todo-vector
Esto habilita advertencias para cuando una pieza se selecciona dentro de una declaración "always @ *"
da como resultado que todo el vector se agregue a la lista de sensibilidad implícita.
Aunque este comportamiento está prescrito por el estándar IEEE, no es lo que podría
cabe esperar y puede tener implicaciones en el rendimiento si el vector es grande.

sensibilidad-matriz-completa
Esto habilita advertencias para cuando una palabra se selecciona dentro de una declaración "always @ *"
da como resultado que toda la matriz se agregue a la lista de sensibilidad implícita. A pesar de que
este comportamiento está prescrito por el estándar IEEE, no es lo que podría ser
esperado y puede tener implicaciones de rendimiento si la matriz es grande.

SISTEMA FUNCIÓN MESA DE NOCHE ARCHIVOS


Si el nombre del archivo de origen como .sft sufijo, entonces se toma como una tabla de funciones del sistema
Archivo. Se utiliza un archivo de tabla de funciones del sistema para describir al compilador los tipos de retorno
para funciones del sistema. Esto es necesario porque el compilador necesita esta información para
expresiones elaboradas que contienen estas funciones del sistema, pero no pueden ejecutar el sizetf
funciona ya que no tiene tiempo de ejecución.

El formato de la tabla es ASCII, una función por línea. Las líneas vacías se ignoran y
líneas que comienzan con '#'carácter son líneas de comentario. Cada línea sin comentarios comienza
con el nombre de la función, luego el tipo de vpi (es decir, vpiSysFuncReal). Los siguientes tipos son
apoyado:

vpiSysFuncReal
La función devuelve un valor real / en tiempo real.

vpiSysFuncInt
La función devuelve un número entero.

vpiSysFuncSized
La función devuelve un vector con el ancho dado, y está firmado o sin firmar
según la bandera.

COMANDO ARCHIVOS


El archivo de comando permite al usuario colocar nombres de archivo de origen y cierta línea de comando
cambia a un archivo de texto en lugar de a una línea de comando larga. Los archivos de comando pueden incluir C
o comentarios de estilo C ++, así como # comentarios, si # comienza la línea.

presentar nombre
Se considera que un nombre de archivo simple o una ruta de archivo es el nombre de un archivo fuente de Verilog.
La ruta comienza con el primer carácter que no es un espacio en blanco. Las variables son
sustituido en los nombres de los archivos.

-c archivo cmd -f archivo cmd
A -c or -f token antepone un archivo de comando, exactamente como lo hace en el comando
línea. El cmdfile puede estar en la misma línea o en la siguiente línea sin comentarios.

-y libdir
A -y token antepone un directorio de biblioteca en el archivo de comando, exactamente como lo hace
en la línea de comando. El parámetro para el -y La bandera puede estar en la misma línea o en la
siguiente línea sin comentarios.

Variables en el libdir son sustituidos.

+ incdir +incluidoir
El + incdir + token en archivos de comando proporciona directorios para buscar archivos de inclusión
de la misma manera que -I las banderas funcionan en la línea de comando. La diferencia es
ese múltiple + incluidoir Los directorios son parámetros válidos para un solo + incdir +
token, aunque también puede tener múltiples + incdir + líneas.

Variables en el incluidoir son sustituidos.

+ libext +ext
El + libext token en archivos de comando cinco extensiones de archivo para probar cuando se busca un
archivo de biblioteca. Esto es útil junto con -y banderas para enumerar los sufijos para probar
en cada directorio antes de pasar al siguiente directorio de biblioteca.

+ libdir +dir
Esta es otra forma de especificar directorios de bibliotecas. Vea la bandera -y.

+ libdir-nocase +dir
Esto es como el + libdir declaración, pero los nombres de archivo dentro de los directorios declarados
aquí no se distingue entre mayúsculas y minúsculas. El nombre del módulo que falta en una búsqueda no tiene por qué coincidir con el
caso de nombre de archivo, siempre que las letras sean correctas. Por ejemplo, "foo" coincide
"Foo.v" pero no "bar.v".

+ definir +NOMBRE=propuesta de
El + definir + token es el mismo que el -D opción en la línea de comando. El valor
parte del token es opcional.

+ escala de tiempo +propuesta de
El + escala de tiempo + token se utiliza para establecer la escala de tiempo predeterminada para la simulación.
Estas son las unidades de tiempo y la precisión antes de cualquier directiva de escala de tiempo o después de una
`directiva de resetall. El valor predeterminado es 1 s / 1 s.

+ toupper-filename
Este token hace que los nombres de archivo posteriores a este en el archivo de comando se traduzcan a
mayúsculas. Esto ayuda con situaciones en las que un directorio ha pasado a través de un DOS.
máquina y, en el proceso, los nombres de los archivos se modifican.

+ tolower-filename
Esto es similar a la + toupper-filename truco descrito anteriormente.

+ ancho-entero +propuesta de
Esto permite al programador seleccionar el ancho de las variables enteras en el
Fuente Verilog. El valor predeterminado es 32, el valor puede ser cualquier valor entero deseado.

VARIABLES IN COMANDO ARCHIVOS


En ciertos casos, iverilog admite variables en archivos de comando. Estas son cadenas del
formulario "$ (nombrevar) "o" $ {nombrevar}", dónde nombrevar es el nombre de la variable de entorno
leer. Toda la cadena se reemplaza con el contenido de esa variable. Las variables son
solo se sustituyen en contextos que los admiten explícitamente, incluidos archivos y directorios
instrumentos de cuerda.

Los valores de las variables provienen del entorno del sistema operativo y no del preprocesador
define en otra parte del archivo o en la línea de comando.

PREDEFINIDO MACROS


Las siguientes macros están predefinidas por el compilador:

__ÍCARO__ = 1
Esto siempre se define al compilar con Icarus Verilog.

__VAMS_ENABLE__ = 1
Esto se define si Verilog-AMS está habilitado.

EJEMPLOS


Estos ejemplos asumen que tiene un archivo fuente de Verilog llamado hello.v en el actual
directorio

Para compilar hello.v en un archivo ejecutable llamado a.out:

iverilog hola.v

Para compilar hello.v en un archivo ejecutable llamado hello:

iverilog -o hola hola.v

Para compilar y ejecutar explícitamente usando el tiempo de ejecución de vvp:

iverilog -ohello.vvp -tvvp hola.v

Utilice iverilog en línea utilizando los servicios de onworks.net


Servidores y estaciones de trabajo gratuitos

Descargar aplicaciones de Windows y Linux

Comandos de Linux

Ad