5

我想编写自己的 Yosys 合成脚本。什么是一个好的模板开始?手册和网页包含各种示例,但没有“权威”的 hello world 示例。

4

2 回答 2

6

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
于 2015-07-15T15:16:28.340 回答
2

不要忘记将 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 门。)

于 2017-08-16T16:33:48.830 回答