Al aprender a programar FPGA o ASIC utilizando lenguajes de descripción de hardware, como Verilog o VHDL, poder simular código es una parte importante del proceso de aprendizaje.
De hecho, poder ejecutar simulaciones es crucial para comprender cómo se comporta nuestro código. Para los principiantes, ejecutar simulaciones también puede ser útil para demostrar cómo funcionan los nuevos conceptos o sintaxis en el HDL que están aprendiendo.
Sin embargo, hay varios simuladores diferentes en el mercado, cada uno con sus propias fortalezas y debilidades. Como resultado de esto, puede ser difícil saber cuál es la mejor herramienta para usar.
Esta elección se complica aún más por el hecho de que no existe una solución única disponible para todos, a menos que esté dispuesto a pagar por un producto comercial como QuestaSim .
En este artículo, analizamos cuatro de los simuladores HDL más populares del mercado. Esto incluye un resumen de las fortalezas y debilidades de cada herramienta para que sea más sencillo para un principiante seleccionar la mejor herramienta de simulación HDL.
Icarus Verilog es un compilador totalmente de código abierto que incluye un sintetizador y un simulador Verilog. Es uno de los simuladores Verilog de código abierto más populares. Incluso es uno de los simuladores que se pueden usar en el popular sitio web de juegos EDA .
Icarus Verilog se puede utilizar en sistemas operativos basados en Windows, macOS o Linux. Ofrece soporte completo para el estándar Verilog-2005 así como soporte limitado para SystemVerilog.
Hay varias razones por las que Icarus Verilog es una buena opción para principiantes. Como es una herramienta de código abierto, Icarus Verilog se puede utilizar de forma gratuita. Sin embargo, todavía existe una comunidad de desarrolladores que mantienen Icarus Verilog y lo actualizan con nuevas funciones.
Otra cosa que hace de Icarus una herramienta atractiva para principiantes es su facilidad de uso. Para ejecutar una simulación básica, solo se requieren unos pocos comandos simples.
Sin embargo, también hay algunas desventajas para Icarus Verilog.
Uno de los mayores inconvenientes es que Icarus Verilog no muestra formas de onda de forma predeterminada. Esta suele ser una función útil, ya que nos facilita la depuración de nuestros diseños basados en HDL.
Sin embargo, es posible exportar formas de onda al software GTKWave de código abierto para ver las formas de onda.
Además de esto, Icarus Verilog solo ofrece soporte completo para Verilog. Eso significa que no es posible ejecutar simulaciones que usen VHDL o SystemVerilog con esta herramienta.
TL;DR
Ventajas | Desventajas |
---|---|
Código abierto (gratis) | Soporte limitado de SystemVerilog |
Mantenido y actualizado activamente | Sin soporte para VHDL |
Soporte completo para Verilog-2005 | |
Fácil de usar | |
GHDL es un compilador y simulador VHDL de código abierto que tiene casi 20 años. Una comunidad de desarrolladores en Github mantiene la base de código de GHDL y publica regularmente nuevas actualizaciones.
Podemos usar GHDL en sistemas operativos basados en Windows, macOS o Linux. GHDL actualmente ofrece soporte completo para los estándares VHDL-87, 93 y 2002. Además de esto, también se admiten muchas de las características más valiosas de VHDL-2008.
GHDL es el simulador VHDL de código abierto más popular. Como resultado de esta popularidad, también es uno de los simuladores que se presentan en el patio de recreo de EDA.
Una de las razones de esta popularidad es que ofrece soporte para muchas características del estándar VHDL-2008. Esto es directamente comparable con muchos simuladores disponibles en el mercado, la mayoría de los cuales aún ofrecen soporte limitado para VHDL-2008.
Otra característica que hace que GHDL sea atractivo para los principiantes es la facilidad de uso. Es posible simular diseños basados en VHDL usando solo dos comandos.
Para usuarios más avanzados, GHDL también ofrece soporte sencillo para bibliotecas de simulación como OSVVM y UVVM .
Sin embargo, existen algunos inconvenientes al usar GHDL.
Al igual que con Icarus Verilog, no hay forma de mostrar formas de onda de nuestras simulaciones en GHDL. Esto significa que tenemos que exportar formas de onda al software gratuito GTKWave si queremos verlas.
Además de esto, solo podemos usar GHDL para simular diseños basados en VHDL. Esto significa que necesitaríamos encontrar otra herramienta si quisiéramos soporte multilingüe.
TL;DR
Ventajas | Desventajas |
---|---|
Código abierto (gratis) | Sin soporte para Verilog o SystemVerilog |
Mantenido y actualizado activamente | Solo soporte limitado para VHDL-2008 |
Fácil de usar | |
Soporte completo para VHDL-93 y 2002 | |
Vivado es una herramienta de software de Xilinx que se puede utilizar para diseñar, simular y construir FPGA. A diferencia de las otras herramientas que hemos discutido hasta ahora, Vivado se desarrolla y mantiene comercialmente. Como resultado, Vivado se actualiza periódicamente con nuevas funciones y correcciones de errores.
Hay varias opciones de licencia diferentes para Vivado, según las familias de FPGA a las que se dirige. Sin embargo, existe una versión gratuita para principiantes que se puede utilizar para diseños y simulaciones básicas.
Podemos usar Vivado en sistemas operativos basados en Windows y Linux, pero actualmente no hay soporte para macOS.
Podemos usar Vivado para simular diseños usando cualquiera de SystemVerilog, VHDL o Verilog. Esta es una clara ventaja sobre GHDL o Icarus, que solo ofrecen soporte para un idioma.
Aunque hay una curva de aprendizaje cuando se trata de usar Vivado para construir FPGA, es relativamente simple de usar para simulaciones simples. También ofrece una interfaz gráfica de usuario, a diferencia de las herramientas de código abierto que hemos discutido hasta ahora.
Otro beneficio de usar Vivado para simulaciones es que admite de forma nativa la visualización de formas de onda. Esto es especialmente útil para los principiantes, ya que facilita la visualización rápida de lo que sucede en una simulación.
Sin embargo, también existen algunas desventajas en el uso de Vivado como simulador de HDL.
Uno de los inconvenientes de Vivado es que generalmente requiere una instalación grande, lo que requiere más de 10 GB para instalar. La razón de esto es que es un conjunto de herramientas diseñado para simular FPGA y construir flujos de bits que se pueden usar para programar el dispositivo físico.
Otro inconveniente de Vivado es que no cuenta con soporte completo para VHDL-2008. Sin embargo, este soporte se mejora con cada nueva versión del software.
También puede ser difícil para los usuarios más avanzados usar bibliotecas de simulación de terceros como UVM y OSVVM con Vivado.
TL;DR
Ventajas | Desventajas |
---|---|
La versión básica es de uso gratuito. | No compatible con macOS |
Admite VHDL, Verilog y SystemVerilog | Solo soporte limitado para VHDL-2008 |
Formas de onda fáciles de ver en la GUI | Bibliotecas de verificación difíciles de usar como OSVVM o UVM |
| Por lo general, requiere una instalación grande. |
Modelsim es una herramienta de simulación producida comercialmente por Siemens. Es una versión simplificada del simulador Questa , que es uno de los simuladores HDL de uso industrial más populares.
Aunque Modelsim es una herramienta paga, es posible obtener versiones gratuitas como parte de las cadenas de herramientasIntel o Microchip FPGA.
Modelsim se puede usar en sistemas operativos basados en Linux o Windows, pero no en macOS.
A diferencia de las herramientas de código abierto, podemos usar Modelsim para simular diseños que usan una combinación de SystemVerilog, VHDL o Verilog.
Además de esto, Modelsim presenta una GUI, que hace posible ver formas de onda sin tener que usar una herramienta de software adicional. Como ya hemos comentado, esto es especialmente útil para los principiantes, ya que facilita la visualización de lo que sucede en una simulación.
Sin embargo, hay algunas desventajas al usar Modelsim para simulaciones HDL.
En comparación con las otras herramientas que hemos discutido, Modelsim es la más difícil de usar. Para ejecutar simulaciones de manera efectiva, es necesario escribir scripts usando tcl . Aunque no es necesario dominar tcl para escribir estos scripts, al menos se requiere una comprensión básica.
Una de las razones por las que Questa y Modelsim son herramientas comercialmente populares es que ofrecen tiempos de simulación rápidos. Sin embargo, el rendimiento de la versión gratuita está deliberadamente restringido, lo que significa que puede ser lento para ejecutar simulaciones.
Aunque Modelsim ofrece soporte para SystemVerilog, varias de las funciones clave del lenguaje no son compatibles. Esto incluye la mayoría de las funciones relacionadas con la verificación, como las clases y la cobertura funcional.
TL;DR
Ventajas | Desventajas |
---|---|
Es posible obtener una versión gratuita | Las versiones gratuitas tienden a ser lentas |
Soporte completo para VHDL y Verilog | Las funciones de verificación de SystemVerilog no son compatibles. |
Formas de onda fáciles de ver en la GUI | Curva de aprendizaje más pronunciada que otras herramientas |
Una buena introducción a QuestaSim | |
Para aquellos nuevos en la programación que usan HDL como VHDL y Verilog, es importante ejecutar simulaciones para comprender mejor cómo funciona el lenguaje. Espero que este artículo les ayude a elegir el simulador adecuado.