Personalmente uso un simulador de código abierto (iverilog) en combinación con las cadenas de herramientas suministradas por el fabricante (xilinx ise, altera quartus). El código verilog que escribo evita las primitivas específicas de FPGA para que pueda ser simulado con herramientas de código abierto y luego portado a cualquier FPGA que necesite para ejecutarlo. Las herramientas del fabricante son prácticamente lo mejor que puede obtener para la mayoría de las piezas que hay. Ahora, utilizo FPGA que son lo suficientemente grandes como para requerir licencias para el software, pero si se adhiere a los FPGA más pequeños y no necesita ninguno de los núcleos IP suministrados por el proveedor, entonces las versiones gratuitas de las herramientas funcionan bien (generalmente las únicas restricciones en la versión gratuita son los dispositivos compatibles, la biblioteca de IP, características especializadas como planificación de planta y reconfiguración parcial, y funciones de depuración en chip.
Existen algunas herramientas de código abierto para la síntesis / lugar y ruta, pero el soporte del dispositivo para estos es extremadamente limitado.