当模块为 BLIF 时,如何让多位端口在 Yosys 中工作?
How do I get multi-bit ports to work in Yosys when the module is BLIF?
我不知道如何在 Yosys 中单独合成模块。考虑这个简单的双模块示例:
bottom.v
module bottom(x, out);
input [0:7] x;
output [0:7] out;
assign out = x+1;
endmodule
top.v
module top(x, out);
input [0:7] x;
output [0:7] out;
bottom b(.x(x), .out(out));
endmodule
现在,将它们综合在一起就可以正常工作了:
$ yosys -q -o top.blif -S top.v bottom.v
$
但是,如果我首先从 bottom.v 合成 bottom.blif,我会收到一条错误消息,指出那里模块 bottom:
中没有端口 out
$ yosys -q -o bottom.blif -S bottom.v
$ yosys -q -o top.blif -S top.v bottom.blif
ERROR: Module `bottom' referenced in module `top' in cell `b' does not have a port named 'out'.
$
为什么会这样?谷歌搜索问题,我在我不完全理解的上下文中找到了对 hierarchy 命令的引用。我在 synth 之前尝试过 运行 那个命令,但它不影响结果。
BLIF 文件格式不支持 multi-bit 端口。这与 Yosys 无关,它只是文件格式的限制。因此,当将具有 multi-bit 个端口的设计写入 BLIF 文件时,所有端口都会自动拆分为单个位端口。所以BLIF文件中没有8位宽的端口out
,有8个single-bit个端口out[7]
、out[6]
、out[5]
、out[4]
、out[3]
、out[2]
、out[1]
和 out[0]
。
因此,当您尝试像您所描述的那样混合 Verilog 和 BLIF 文件时,bottom
模块不再与 top.b
单元的接口匹配。
编辑:我现在在 git 提交 7e0b776 中添加了 read_blif -wideports
。这允许您在将 BLIF 文件读回 Yosys 时再次合并各个 single-bit 端口。这样您就可以使用 BLIF 作为 Yosys 和 ABC 之间的交换格式,而不会破坏具有 multi-bit 端口的模块接口。
我不知道如何在 Yosys 中单独合成模块。考虑这个简单的双模块示例:
bottom.v
module bottom(x, out);
input [0:7] x;
output [0:7] out;
assign out = x+1;
endmodule
top.v
module top(x, out);
input [0:7] x;
output [0:7] out;
bottom b(.x(x), .out(out));
endmodule
现在,将它们综合在一起就可以正常工作了:
$ yosys -q -o top.blif -S top.v bottom.v
$
但是,如果我首先从 bottom.v 合成 bottom.blif,我会收到一条错误消息,指出那里模块 bottom:
中没有端口 out$ yosys -q -o bottom.blif -S bottom.v
$ yosys -q -o top.blif -S top.v bottom.blif
ERROR: Module `bottom' referenced in module `top' in cell `b' does not have a port named 'out'.
$
为什么会这样?谷歌搜索问题,我在我不完全理解的上下文中找到了对 hierarchy 命令的引用。我在 synth 之前尝试过 运行 那个命令,但它不影响结果。
BLIF 文件格式不支持 multi-bit 端口。这与 Yosys 无关,它只是文件格式的限制。因此,当将具有 multi-bit 个端口的设计写入 BLIF 文件时,所有端口都会自动拆分为单个位端口。所以BLIF文件中没有8位宽的端口out
,有8个single-bit个端口out[7]
、out[6]
、out[5]
、out[4]
、out[3]
、out[2]
、out[1]
和 out[0]
。
因此,当您尝试像您所描述的那样混合 Verilog 和 BLIF 文件时,bottom
模块不再与 top.b
单元的接口匹配。
编辑:我现在在 git 提交 7e0b776 中添加了 read_blif -wideports
。这允许您在将 BLIF 文件读回 Yosys 时再次合并各个 single-bit 端口。这样您就可以使用 BLIF 作为 Yosys 和 ABC 之间的交换格式,而不会破坏具有 multi-bit 端口的模块接口。