私はYosysでモジュールを別々に合成する方法を理解できません。この単純な二モジュール例考えてみましょう:モジュールがBLIFである場合、どのようにしてYosysでマルチビットポートが動作するのですか?
bottom.v
module bottom(x, out);
input [0:7] x;
output [0:7] out;
assign out = x+1;
endmodule
top.v今
module top(x, out);
input [0:7] x;
output [0:7] out;
bottom b(.x(x), .out(out));
endmodule
を、一緒にこれらを合成することは意図したとおりに動作します:
$ yosys -q -o top.blif -S top.v bottom.v
$
B UT私が最初bottom.vから bottom.blif を合成する場合、私は何のポートが下がモジュールに外には存在しないというエラーメッセージが表示されます:
$ yosys -q -o bottom.blif -S bottom.v
$ yosys -q -o top.blif -S top.v bottom.blif
ERROR: Module `bottom' referenced in module `top' in cell `b' does not have a port named 'out'.
$
これはなぜ起こるのでしょうか?問題を見つけて、の階層コマンドへの参照が完全に理解できない文脈で見つかった。私はシンセの前にそのコマンドを実行しようとしましたが、結果には影響しません。