2015-10-25 51 views
4

我使用Yosys以合成我的RTL设计,其中包括一对夫妇字面常量,比如绑输出端口,如下面的代码:用Yosys生成TIE细胞?

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调用,用于将组合逻辑映射到库提供的标准单元,然后调用cleanwrite_verilog调用。我正在使用的单元库也提供了TIELOTIEHI单元,但是合成的Verilog网表不包含这些单元的任何实例,而是仍然像上面的例子那样显示文字常量。

我大概可以写一个脚本进行后期处理合成的网表从图书馆TIE*细胞实例来替代这些文字,但我想知道如果我能得到Yosys要做到这一点,我莫名其妙,导致类似

TIEHI tiehi_d_inst(.Y(d)); 

为上述代码中的assign d = 1'b1行。

回答

2

您正在查找的命令是hilomap。例如,映射到TIEHITIELO细胞与Y输出使用类似:

hilomap -hicell TIEHI Y -locell TIELO Y 

这将创建一个单独的TIEHI/TIELO细胞为设计中的每个恒定比特。使用选项-singleton只能创建具有更高扇出的单个单元TIEHI/TIELO