Yosys 中可与通行证一起使用的有用属性有哪些?

What are the useful attributes that can be used with passes in Yosys?

在 Yosys 中可与通行证一起使用的最有用的属性是什么?

此外,我想知道您能否给我一个使用 'setattr'.

为特定模块(即 "counter")设置 'keep_hierarchy' 的示例

README File 包含最突出属性的列表。 (节 "Verilog Attributes and non-standard features"。)

关于 keep_hierarchysetattr:考虑以下示例代码。

module test(input A, B, output X, Y);
  test_and and_inst (.A(A), .B(B), .O(X));
  test_xor xor_inst (.A(A), .B(B), .O(Y));
endmodule

module test_and(input A, B, output O);
  assign O = A & B;
endmodule

module test_xor(input A, B, output O);
  assign O = A ^ B;
endmodule

显然,下面的内容只会显示带有 $and$xor 门的示意图:

yosys -p 'prep; flatten; opt -purge; show test' test.v

现在我们可以通过在单元格上设置 keep_hierarchy 属性来防止展平 and_inst

yosys -p 'prep; setattr -set keep_hierarchy 1 test/and_inst; flatten; opt -purge; show test' test.v

或者,我们可以通过简单地在模块本身上设置属性来防止 test_and 的所有实例被展平:

yosys -p 'prep; setattr -mod -set keep_hierarchy 1 test_and; flatten; opt -purge; show test' test.v