Yosys のパスで使用できる最も便利な属性は何ですか?
また、「setattr」を使用して特定のモジュール (つまり「カウンター」) に「keep_hierarchy」を設定する例を教えていただけないでしょうか。
Yosys のパスで使用できる最も便利な属性は何ですか?
また、「setattr」を使用して特定のモジュール (つまり「カウンター」) に「keep_hierarchy」を設定する例を教えていただけないでしょうか。
README ファイルには、最も顕著な属性のリストが含まれています。(セクション「Verilog 属性と非標準機能」。)
keep_hierarchy
およびについてsetattr
: 次のコード例を検討してください。
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
これで、セルに属性をand_inst
設定することで、flatten が平坦化されないようにすることができます。keep_hierarchy
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