Diseño de código FPGA en diagramas de bloques

Coqueteé brevemente con el desarrollo de FPGA en Verilog, y ciertamente es algo más lento que escribir el mismo programa en una MCU (definición de pines y su comportamiento, no hay módulos disponibles, etc.). Por lo tanto, he estado buscando un software que pueda ayudarme a diseñar utilizando diagramas de bloques o algo más visual. He oído hablar de Mathworks Simulink y de la línea de herramientas FPGA/ASIC de Synopsys, Cadence, Mentor Graphics, etc., pero como nunca tuve la oportunidad de tenerlas en mis manos, realmente no sé cuán inteligentes o visuales que son. ¿Alguna vez has oído hablar de un software de este tipo con un conjunto de funciones de este tipo? y ¿los diagramas de bloques tendrían alguna ventaja sobre el diseño textual en Verilog?

Nadie parece pedir una herramienta de diagrama de bloques al escribir software. ¿Por qué es así para usar HDL?
@MartinThompson, la gente pide y produce herramientas gráficas de software todo el tiempo. LabVIEW y Simulink son algunos ejemplos comerciales, está el Umbrello de código abierto y Eclipse Modeling Framework, y la categoría general de herramientas CASE y Model-Driven Architecture. Las herramientas gráficas pueden ser útiles; el problema surge cuando la gente los ve como una forma de evitar la intimidante sintaxis de los lenguajes textuales, cuando en realidad es la semántica de los problemas lo que dificulta el desarrollo.
@Thernan: sí, lo sé muy bien. Solo tengo conocimiento de muy pocas preguntas sobre SO (y otros foros) del tipo "Estoy empezando en C/Python/Java: ¿cuál es una buena herramienta de diagramación de bloques para esos lenguajes?" en comparación con la pregunta similar con HDL en eso. Tal vez no estoy buscando lo suficiente :)

Respuestas (3)

Altera tiene una versión gratuita de sus productos/software/ IDE ( Quartus II Web Edition )

Quiero decir que todavía tiene que escribir código, pero una vez que está escrito, puede usar los símbolos para abstraer y obtener una versión de bloque de la entidad, y una interfaz gráfica entre bloques (a través de buses, etc.)

Además, ¿funcionaría mejor un programa como LogiSim ? ¡Al menos si tuviera algún tipo de extensión VHDL/Verilog!

Puedes usar Xilinux o Altera. Ambos tienen herramientas de entrada de esquemas que le permiten dibujar bloques lógicos y conectarlos con cables. Pero normalmente es más fácil hacerlo con Verilog.

Este es mi consejo para programar FPGA gráficamente: No .

Hay dos formas de usar la entrada de diseño gráfico: 1. hacer toda la lógica gráficamente. Y 2. hacer una mezcla de entrada de diseño basada en gráficos y texto.

No es práctico hacer todo gráficamente. Hay diseños lógicos que son simplemente demasiado complejos para hacerlos gráficamente, pero que son muy fáciles de usar con VHDL o Verilog. Las máquinas de estado complejas son un buen ejemplo, pero en realidad la mayoría de las cosas son más fáciles de hacer en VHDL o Verilog una vez que conoce el idioma.

Si bien es posible hacer una entrada mixta de texto/gráfico, realmente no ofrece muchas ventajas. Una vez que conoce VHDL/Verilog lo suficientemente bien como para hacer las partes del diseño basadas en texto, las partes gráficas no ofrecen ninguna ventaja de velocidad o comprensión.

Hay otras desventajas de hacer una mezcla también. Para empezar, su diseño no es fácil de trasladar a otras arquitecturas FPGA. Tienes que dominar dos herramientas diferentes (editor de texto y entrada de diseño gráfico). Las personas que miren tu diseño tendrán que entender ambos. Es más difícil usar herramientas de desarrollo normales basadas en texto como sistemas de control de versiones, diff, make, etc.

Al final, usar una entrada gráfica es solo un problema adicional que no evita que tengas que dominar VHDL y/o Verilog.