ghdl
   GHDL is an open-source simulator for the VHDL language.
   https://github.com/ghdl/ghdl
vtr
    Verilog-to-Routing (VTR) project is a world-wide collaborative effort to provide a open-source framework for conducting FPGA architecture and CAD
icestorm
    aims at documenting the bitstream format of Lattice FPGAs and providing simple tools
iverilog
   Icarus Verilog is a Verilog simulation and synthesis tool. It operates as a compiler, compiling source code written in Verilog (IEEE-1364) into some target format.

https://www.reddit.com/r/FPGA/comments/ … _dominate/
https://www.reddit.com/r/FPGA/comments/ … _will_not/

It is not possible to build a CAD tool for a modern FPGA without a lot of support from the vendor.

https://www.youtube.com/watch?v=MI18Wk4gxA4
https://www.reddit.com/r/FPGA/comments/ … _on_linux/

«куча тулзов: синопсис, каденс, магма и т.п. из многих форматов SV, VHDL и т.д. сгенерят оптимизированный нетлист под эту библиотеку. есть фришные и опенсорсные - yosus http://www.clifford.at/yosys/links.html  собственно в risc-v chisel его видел. а для ПЛИС, где время прохождения определяется не логикой функции, а количеством лут-ов (входов)»

«- свой синтезатор мало у кого есть, т.к. его реализация - задача чрезмерно сложная и излишне наукоемкая для технологических контор, которым нужно делать микросхемы, а не двигать теорию. Чем абстрактнее язык - тем сложнее теория, лежащая в основе синтеза. Малым производителям ПЛИС проще купить особую лицензию на синплифай (или что-то вроде) и поставлять его в составе своего софта, а большим его возможно просто не продают, т.к. тогда его будет больше некому продавать :)»
«в чем там сложность (концептуальная) непонятно
1) разбор языковых конструкций - ну то есть это сложение, это сдвиг и т.д. представление их блоками с входом/выходом (такое я сам когда-то делал)
2) замена этих конструкций библиотечными модулями на логических элементах
3) стирание иерархии между блоками
4) булева алгебра - карты Карно, оптимизация выражений - по-моему тоже нет никакой научной новизны
можно добавить какое-то перемещение регистров между логикой, чтобы выровнять количество логических уровней»

«Плейс/роут»
«P&R это трансформация/маппинг взвешенных графов (нетлист  в интерконнект) с оптимизаций по множеству критериев. »
«- плейс и роут сложны вычислительно, потому как перебор, но относительно просты алгоритмически. Никто не знает, как решать эти задачи оптимально, поэтому все существующие решения - субоптимальны и в оптимизационном поиске полагаются на случайные параметры, в надежде что результат сойдется. Неудобно, но другого нет, а что есть - всех устраивает. Важно, что в отличие от синтеза, после P&R нет никаких проблем с верификацией полученной схемы и её таймингов.»

Отредактировано Лис (2020-11-18 17:57:15)