如何解决Yosys Synthesys - 这是最佳选择吗?
我正在使用 yosys 来合成简单的电路并展示结果如何随单元库而变化。 但是,看起来结果没有得到很好的优化。 我正在使用从以下位置下载的库 vsclib013.lib:http://www.vlsitechnology.org/synopsys/vsclib013.lib
例如我合成了一个由 4 个全加器组成的加法器。由于我不使用 Carry_in 和 Carry_out,我确实希望为 LSB 加法器合成一个半加器(具有两个输入的异或)。 合成结果如下。
Number of cells 12
cgi2v0x05 4
iv1v0x05 4
xor3v1x05 4
它使用 4 个单元,这些单元与三个输入进行 XOR。
从电路图中也可以清楚地看出这一点:graph obtained using the yosys command 'show'
该电路仅由四个相同的全加器组成,并且没有针对 Carry_in 等于 0 和 Carry_out 未连接进行优化。
我用来合成的脚本是:
ghdl TOP_ENTITY
hierarchy -check -top TOP_ENTITY
proc; opt; memory; opt; fsm; opt
techmap; opt
read_liberty -lib vsclib013.lib
dfflibmap -liberty vsclib013.lib
abc -liberty vsclib013.lib -D 1000 -constr constraint_file_vsclib013.txt
splitnets -ports; opt
clean
write_verilog TOP_ENTITY.v
flatten
show -stretch -format pdf -lib TOP_ENTITY.v
感谢您提出任何改进综合系统的建议。
解决方法
感谢您的回答。
经过一些尝试和错误后,我通过简单地使用 flatten 获得了良好的结果。 我还在 opt 命令中添加了 -full 以实现(希望)好的测量。 现在,我的工作脚本是这样的:
ghdl TOP_ENTITY
hierarchy -check -top TOP_ENTITY
flatten
proc; opt -full; memory; opt -full; fsm; opt -full
techmap; opt -full
read_liberty -lib vsclib013.lib
dfflibmap -liberty vsclib013.lib
abc -liberty vsclib013.lib -D 1000 -constr constraint_file_vsclib013.txt
splitnets -ports; opt -full
clean -purge
write_verilog TOP_ENTITY.v
flatten
show -stretch -format pdf -lib TOP_ENTITY.v
我还在 clean 命令中添加了 -purge 选项以获得更好的印刷原理图。
版权声明:本文内容由互联网用户自发贡献,该文观点与技术仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌侵权/违法违规的内容, 请发送邮件至 dio@foxmail.com 举报,一经查实,本站将立刻删除。