我正在使用Yosys来合成我的RTL设计,其中包含一些文字常量,例如绑定输出端口,如下面的代码所示:
module my_module (
input a,
input b,
output c,
output d);
assign c = a & b;
assign d = 1'b1;
endmodule
在这种情况下,输出d
显然总是合乎逻辑的。我正在使用的流程包括abc -liberty my_stdcells.lib
调用,将组合逻辑映射到库提供的标准单元格,然后是clean
和write_verilog
调用。
我正在使用的单元库也提供TIELO
和TIEHI
单元格,但合成的Verilog网表并不包含这些单元格的任何实例,而是仍然显示文字常量,如示例中所示上方。
我可能会编写一个脚本来处理合成的网表,用库中的TIE*
单元实例替换这些文字,但我想知道是否可以让Yosys以某种方式为我做这件事,导致
TIEHI tiehi_d_inst(.Y(d));
代码中的assign d = 1'b1
行。
答案 0 :(得分:2)
您要查找的命令是hilomap
。例如,要使用TIEHI
输出映射到TIELO
和Y
单元格,请使用以下内容:
hilomap -hicell TIEHI Y -locell TIELO Y
这将为设计中的每个常量位创建一个单独的TIEHI
/ TIELO
单元格。使用-singleton
选项仅创建扇出更高的单个TIEHI
/ TIELO
单元格。