0

以下のような単純なステートメントであっても、通常、一部の Verilog ソース コードでは多くの遅延が発生することがわかりました。そのような遅延を置く根本的な理由は何ですか?

cmd <= #`DEL 32`b0
4

3 に答える 3

3

あなたのコードは VHDL や、私が知っている他の言語ではありません。おそらくVerilogであることを意味しています。通常の使用では、どちらの言語でも多くの手動遅延指定を行うことはなく、遅延を含むソース コードは、必要な遅延を書き込むツールによって自動的に生成されます (通常、このような遅延はありません)。ただし、古い Verilog ソース コードでは、スケジューリング モデルが歴史的に壊れていたため、多数の「#0」遅延仕様が頻繁に見られます。

于 2013-11-15T08:48:55.000 に答える
1

ゲート レベルの検証では、合成に使用されるライブラリが特徴付けられ、ベース レベルのコンポーネントに適切な遅延が追加されていることを願っています。シミュレーションで RTL の代わりに使用されるもの。Verilog では、このような遅延を RTL に追加する必要はありません。

遅延をテストベンチ コンポーネントに追加して、オフチップの遅延とインターフェイス、または異なる合成セクション間の遅延をシミュレートすることができます。正確な遅延を計算するには、最終的なレイアウト、トラックの長さなどに関する知識が必要です。外部インターフェイスは、最大遅延と最小遅延を指定します。

于 2013-11-15T08:45:45.440 に答える
1

これは通常、設計のタイミング問題を追跡するために信号がデジタル ロジックを伝搬するのにかかる時間を気にするゲート レベルのシミュレーション用です。

各操作/ステートメントに適切な値を選択するには、通常はデータシートまたはラボ測定から、ターゲット デバイスに関するタイミング情報が必要です。

この情報を知らない、またはアクセスできない場合は、モデルでこのレベルの詳細を必要としない可能性があります。タイミングの問題を探しているときに、偽陽性と偽陰性の両方になってしまうため、実際の値以外のものを使用することはおそらく非生産的です。

于 2013-11-15T07:40:35.963 に答える