6

USBチップと通信するためのULPIインターフェースを設計しています。
しかし、タイミングの制約に関していくつかの問題が発生しました。

データはクロックの立ち上がりエッジで出力され、立ち下がりエッジでサンプリングされます。

(ポストルートを使用して)クロックの立ち上がりエッジからデータ出力まで約6nsの「達成可能なベストケースの遅延」が有効であることがわかります。

より小さな遅延が必要な場合は、コードを書き直して、たとえば、立ち上がりエッジがデータ出力に適合するまでクロックを遅らせる必要がありますか?

上記のソリューションは、FPGAデバイスとルートの両方に依存するため、おそらく適切ではないことを私は知っています...しかし、他にどのようなオプションがありますか?

4

2 に答える 2

2

データ出力レジスタはIOレジスタにパックされていますか?UCFの制約は次のとおりです。または、入力と出力([b] oth)をioレジスタにパックするINST "some_ff" IOB = TRUE; マップオプションを使用できます。-pr b

これには2つの効果があります。

  1. IOピンとFFの最初/最後のD/Qピンの間のタイミングをロックダウンします(一貫性を構築するためのビルド)
  2. クロックツーアウトのパフォーマンスを最大化します(Qを出力ピンに近づけることはできません)。

編集:上記の推奨事項は、ザイリンクスツールチェーンに適用されます。他のベンダーも同様のアーキテクチャを使用している可能性がありますが、オプションを呼び出すために必要な引数/コントロールは異なります。

于 2012-08-21T11:34:11.580 に答える
1

ザイリンクス デバイスの場合:

フリップフロップが配置されている場所を FPGA エディタで確認してください。最上位ブロック以外から推論された場合、UCF とオプションが適切に設定されていても、ツールで IOB にパックされないことがあります。

回避策として、トップ レベルにフリップフロップのレイヤーを追加すると効果的です。または、ODDR2 ブロックをインスタンス化して問題を強制し、2 つのデータ入力を同じ内部信号に接続することもできます。

于 2012-08-21T12:12:28.100 に答える