如何将 LUT 解包到 verilog 中的逻辑单元

How to unpack LUTs into logic cells in verilog

我有一个包含 LUTS 的结构 verilog。

我希望将这个 verilog 解包,这样我将拥有相同的功能,但取而代之的是 LUTS - 我将拥有逻辑单元(如 Or/And/Xor 等...)。

我该怎么做?

Yosys 有内置的东西吗? 互联网上是否有其他人已经实施了这种事情? 因为我搜索过这个,但我找不到。

您可以执行以下操作

read_verilog struct.v lut.v
hierarchy -top top
flatten
synth -noabc

在 Yosys 中,其中 lut.v 包含 LUT 基元的 Verilog 模型。这会将 LUT 转换为非优化逻辑。您还可以使用 abc(删除 -noabc,或在脚本末尾添加 abc)来优化逻辑。