Verilogで遅延を合成できないのはなぜですか。


8

RTLコードで宣言された遅延は決して合成できないことを常に読んでいます。これらはシミュレーションのみを目的としており、最新の合成ツールはコード内の遅延宣言を無視します。

例:合成ツールによってx = #10 y;考慮さx = y;れます。

ハードウェア記述言語(VHDL、Verilog、Sytem-Verilogなど)の遅延宣言を合成できない理由は何ですか。


1
これは、SOとElectronicsSEのオーバーラップの間にあるクロスポストの質問です。
pre_randomize 2014

回答:


14

合成とは、(Verilogで)記述した内容を実際のハードウェアに変換することです

Verilogで、50nsの遅延があると言います。では、ハードウェアの観点から、これを実際のハードウェアにどのように変換しますか?

FPGAを使用している場合、使用可能なFPGAリソース(LUT、レジスタ、Ramエレメントなど)を使用して50nsの遅延を実際にどのように構築しますか?追加のルーティング遅延を追加することによって?1秒の遅延を指定するとします。チップのルーティング機能をすべて使用しないと不可能です(おそらく十分ではありません)。デザインを合わせることができません。ASICについても同様です。シリコン表面の80%を使用して、1行に遅延を追加します。

動作するはずの方法は、同期設計を使用し、カウンターまたは他の手法を使用して遅延を自分で実装することです。しかし、遅延はその要素のクロックの倍数でなければなりません。

通常、「10 ns後」などの項目は伝播遅延です。行う場合の理想の Verilogのシミュレータ上でシミュレーションを入力が変化したときに、出力が正確に起こります。これは現実的ではなく、実際のハードウェアの動作を説明するものではありません。これを考慮して、出力が変更される時間を指定できます。遅延宣言を使用します。


2
「チップ全体を占有するから」というのは、実際に合成できない理由ではなく、定義された境界内に何かを適合または配置できない理由です。
W5VO 2014

@ W5VOあなたは正しいです。それは、別の方法を見つけることを正当化するような不条理を示すことを意図していた。修正。
Blup1980 2014

5

SOから私の答えを移植します。絶対遅延を合成することが実際的でない理由に焦点を当てています

クロックツリーを合成する場合、合成ツールは遅延を追加することでこれらのバランスを調整し、すべてのノードが同時にクロックを受信するようにします。そのため、合成ツールには遅延を追加する機能があるようです。

ただし、ASICの製造時には速度にばらつきがあり、高レベルでは、低速、標準、高速と見なすことができます。実際には、これらのコーナーには何百ものバリエーションがあり、シリコン内の特定のタイプのデバイスは高速で実行され、その他のデバイスは低速で実行されます。

シリコンのこれらのコーナーにも温度定格があり、最悪のケースでは+ 140C Fastシリコンと-40C Slowシリコンになる可能性があります。この場合のバッファを介した遅延の変動は、1nsから30nsになる可能性があります。

#10合成可能であった場合、これをVerilogに戻すと、実際には155 + -145、つまり10nsから300ns #20になります。同じインターフェースまたは制御構造の一部となるように設計した場合、20nsから600nsの範囲になります。 。したがって、すべてが設計に対して有効ではありません。あなたは正確なもの#10を取得していません、そして#20それは指定されました。

クロックツリーは、最大遅延と最小遅延を制限するように設計されており、クロックツリー上のすべてのノードが互いに相対的にスケーリングされます。組み合わせ回路でこれを物理的に保証することは物理的に不可能であるため、10nsでなければならないような厳しい規則は決して与えられません。


3

時間の絶対単位は、外部クロックからのものだけです。任意の遅延はどこから発生しますか-同等のディスクリートデジタルロジックと同等のものは、クロックからそれを生成しますか?

合成可能な遅延が必要な場合は、外部クロック入力と、特定のクロックサイクル数をカウントする適切なステートマシン/カウンターを使用する必要があります。


この考えはちょうど私の心を越えました。なぜ遅延を生成するためにクロックに依存する必要があるのですか?遅延をVddを使用して単純なRC回路に合成できないのはなぜですか?
アナンド2014

1
合成では、主にルックアップテーブルとルーティング要素に値を入力します。フィールドプログラマブルなRC回路、特に温度の影響をあまり受けない回路を作成するのはかなり難しいと思います。正確な伝搬時間を期待するよりも、同じクロックエッジですべてを同期する方がはるかに簡単です。
maxy '16 / 07/16
弊社のサイトを使用することにより、あなたは弊社のクッキーポリシーおよびプライバシーポリシーを読み、理解したものとみなされます。
Licensed under cc by-sa 3.0 with attribution required.