私は通常、合成のために Verilog で inout または高インピーダンス状態を使用しません (内部ロジックが最終的には標準の CMOS 2 状態ロジックとして実装する必要があるという仮定の下で)。
ただし、次のような合成用の多くの Verilog を見つけています。
module top(
inout signal1,
inout signal2
);
submodule sub1 (
//outputs from sub1
signal1,
signal2
);
submodule sub2 (
//outputs from sub2
signal1,
signal2
);
endmodule
ここで、signal1 および signal2 は 1'b0 または 1'bz のいずれかにのみ駆動され、制約ファイルでオープン ドレイン ポートとして宣言されます。
ほとんどの合成ツールはこれを合成できますか? 私はラティス CPLD をターゲットにしていますが、問題なく動作しているように見えますが、他のツールでこのようなものを合成できるかどうか興味がありますか?
通常、信号をプルアップするようツールに明示的に指示する必要がありますか? または、これは一般的に必要ありません(私が見ているコードにプルアップについての言及が見つかりません)