verilog – 用Yosys生成TIE细胞?

我正在使用
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行.

最佳答案 您要查找的命令是
hilomap.例如,要使用Y输出映射到TIEHI和TIELO单元格,请使用以下命令:

hilomap -hicell TIEHI Y -locell TIELO Y

这将为设计中的每个常量位创建一个单独的TIEHI / TIELO单元.使用选项-singleton仅创建具有更高扇出的单个TIEHI / TIELO单元.

点赞