Совместимые элементы Yosys и Synplify

Я хотел бы написать Verilog, который можно было бы синтезировать либо с помощью yosys (предпочтительно), либо с помощью цепочки инструментов Lattice Radiant с использованием Synplify (например, для зашифрованного IP-адреса из Lattice).
Большинство жестких ячеек, таких как PLL, имеют разные имена между два инструмента.
Существует ли библиотека Verilog, которая позволяет, например, выбрать любой инструмент синтеза с одним определением?


person Venkat    schedule 25.10.2019    source источник


Ответы (1)


К сожалению, нет, поток iCE40 с открытым исходным кодом был разработан до того, как появился Radiant; поэтому использовалась оригинальная примитивная библиотека iCEcube (которая до сих пор является единственным вариантом для устройств до UltraPlus). Для справки это задокументировано на http://www.latticesemi.com/~/media/LatticeSemi/Documents/TechnicalBriefs/SBTICETechnologyLibrary201608.pdf - я думаю, это Lattice виноват в том, что не смог обеспечить обратную совместимость со своей собственной библиотекой ...

person gatecat    schedule 25.10.2019
comment
Спасибо за информацию, Дэвид, я согласен, кажется странным, что решетка не сделала их новую библиотеку обратно совместимой! Однако, учитывая этот факт, имеет ли смысл создать небольшую библиотеку-оболочку, которая позволит пользователям легко переключаться между двумя инструментами без изменения кода? - person Venkat; 25.10.2019
comment
Да, к сожалению, это сложнее, чем кажется, потому что исходная библиотека правильно использует правильные числовые параметры Verilog (например, константы типа 16'h5a5a), тогда как Radiant использует литералы в стиле C внутри строковых параметров Verilog (поэтому вам нужно проанализировать что-то вроде 0x5a5a) - person gatecat; 25.10.2019