使用 yosys 简化组合逻辑

Simplify combinational logic using yosys

我想知道是否可以使用 Yosys 来简化逻辑方程。

例如:

module top
(
    output [31:0] cipher,
    input  [31:0] plain,
    input  [63:0] key
);

    wire tmp = key[31:0];
    wire tmp2 = key[63:32] & 0;

    assign cipher = (tmp & plain) | tmp2;

endmodule

当我使用命令 "show" 时,它绘制了电路图:

我尝试使用 "opt" 和 "freduce" 命令,但它并没有减少等式。

您可能想使用 opt -fine 进行更细粒度的优化,而不是一次优化整个单词。这给出了预期的单个 1 位 $and 门。

或者 techmap; abc 将生成优化的门级电路。