Что такое хороший "шаблонный" скрипт синтеза Yosys?

Я хочу написать свой собственный скрипт синтеза Yosys. Что такое хороший шаблон для начала? Руководство и веб-страница содержат различные примеры, но не "авторитетный" пример Hello World.

2 ответа

Решение

synth Команда запускает рекомендуемый сценарий для задач синтеза общего назначения. Увидеть help synth для полного списка команд, вызываемых этой мета-командой.

Ваш сценарий должен либо позаимствовать у synth или просто позвоните synth чтобы сделать вещи общего назначения. Многие сценарии называют synth -run coarse для крупнозернистой части синтеза, а затем продолжить с пользовательской последовательностью команд для синтеза мелкозернистых. Смотри например synth_xilinx,

Для синтеза ASIC в библиотеку в свободном формате используйте следующий сценарий в качестве отправной точки:

# read design 
read_verilog mydesign.v

# generic synthesis
synth -top mytop

# mapping to mycells.lib
dfflibmap -liberty mycells.lib
abc -liberty mycells.lib
clean

# write synthesized design
write_verilog synth.v

Менее агрессивный набор оптимизаций часто требуется для сценариев, которые выполняют формальную проверку. В этом случае следующая последовательность команд обычно является хорошей отправной точкой для части "синтеза" формального потока проверки:

hierarchy [-check -top <top-module>]
proc; opt; memory [-nomap]; opt -fast; check -assert

Не забудьте поместить файлы mycells.lib и mycells.v в каталог, где вы вызываете yosys. Хороший пример - на сайте yosys GitHub в каталоге examples / cmos, где они разместили примеры файлов cmos_cell.lib и cmos_cell.v.

read_verilog counter.v
read_verilog -lib cmos_cells.v

proc;; memory;; techmap;;

dfflibmap -liberty cmos_cells.lib
abc -liberty cmos_cells.lib;;

write_verilog synth.v

(Кроме того, если вы хотите получить более понятный вывод для синтеза, вы можете изменить файлы.lib и.v, чтобы изменить вентили NAND и NOR на вентили AND и OR.)

Другие вопросы по тегам