-1
私はVerilogを初めて使っています。私はdata_in
文トライステートバッファに遅延を加える方法
アサインパッド=(有効)以下で
pad
に割り当てる前に遅延を追加したいですか? data_in:1'bz;
assign pad = (enable) ? #10 data_in : 1'bz;
のようなものが、それは動作しません。それを行う正しい方法は何ですか?
私はVerilogを初めて使っています。私はdata_in
文トライステートバッファに遅延を加える方法
アサインパッド=(有効)以下で
pad
に割り当てる前に遅延を追加したいですか? data_in:1'bz;
assign pad = (enable) ? #10 data_in : 1'bz;
のようなものが、それは動作しません。それを行う正しい方法は何ですか?
あなたはこの遅延が影響する
assign
間と
pad
assign #10 pad = (enable) ? data_in : 1'bz;
前に遅延を置くべきではDATA_INと高-Zへの切替に見られます。
立ち上がり時間、失敗時間、および停止時間を個別に制御できます。たとえば、次のように
assign #(10,10,0) pad = (enable) ? data_in : 1'bz;
そこには、ターンオン時間がないので、あなただけのdata_in
上の遅延をしたい場合、あなたはあなたが代入文についての詳細を学ぶことができ、断続的割り当て
wire #10 data_in_delayed = data_in;
assign pad = (enable) ? data_in_delayed : 1'bz;
を作成する必要があります遅延付きでIEEE Std 1800-2012 § 10.3 継続的な割り当て。メモSystemVerilogではネット型と変数型でassignステートメントを使用できますが、Verilogはネット型のみをサポートしています。
また、#
の遅延は合成によって無視されることに注意してください。 #
遅延はシミュレーションのためだけです。
ありがとうございました!あなたの素早い対応のために@greg。それはとても役に立ちました –