如何解决Yosys中的加减法优化
我有以下非常简单的verilog模块,根据输入op来执行a + b或a-b。
module addsub (a,b,op,r);
parameter DATA_WIDTH = 4;
input [DATA_WIDTH-1:0] a,b;
input op;
output [DATA_WIDTH-1:0] r;
assign r = op ? a-b : a+b;
endmodule
现在,当我使用yosys(下面的脚本,版本0.9)合成此代码时,我得到两个$ alu模块,均由输入a和b馈送,其中一个具有CI和BI输入。输出r是使用多路复用器生成的。
read_verilog addsub.v
synth -flatten -run begin:fine
#share -aggressive; opt
show
但是,我想让yosys认识到,CI和BI输入连接到op时只需要一个$ alu。因此,我尝试了share命令(在上面的脚本中添加了注释),并且确实将两个$ alus合并为一个,但是现在我在输入a和b see here处得到了一个奇怪的(冗余)多路复用器结构。 / p>
我的问题是我在做错什么,是否有特殊的方法可以摆脱这些多路复用器,或者我在这里完全走错了路?
David Shah建议的解决方案: 我安装的yosys版本没有opt_share命令。因此,我编译了当前版本(0.9 + 3558),现在以下综合脚本可以按预期工作:
read_verilog addsub.v
synth -flatten -run begin:fine
share -aggressive; opt
opt_share; opt
show
解决方法
您要查找的通行证是 $.mobile.changePage("otherPage.html");
$("#div_in_otherPage").html("Hello");
,但它可能比0.9版本要新,在这种情况下,您将需要git master的Yosys。
版权声明:本文内容由互联网用户自发贡献,该文观点与技术仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌侵权/违法违规的内容, 请发送邮件至 dio@foxmail.com 举报,一经查实,本站将立刻删除。