2016-09-27 5 views
1

私はVerilogプロジェクトを受け取りました。その中にキーコンポーネントが暗号化されています。SDCタイミングを記述すると、暗号化されたVerilogコードが生成されますか?

FPGAの性能は、ビルド環境とコンフィギュレーションによって異なります[注1]。これはタイミング制約が不十分であることが原因であると思われます[注2]。

TimeQuestタイミングアナライザでは、暗号化されたコア内のピン、ネット、レジスタ、ポートの名前を見ることができますが、実際のコードを見ることなく、それらの意味を正確にはわかりません。

このような状況でSDCタイミング制約を書き始めるにはどうすればよいですか?


注1:

成分はMIPI-CSI2 TXあります。テストRX側では、常にSoTエラー(SoTエラーと同期が達成されていません)と、時にはECCエラーが発生します。

しばらくの間、FPGA上で「動作」させるために、コードはWindowsマシン上に構築する必要があります。その後、コードに軽微で無関係の変更が加えられました。これは、Linuxマシン上で構築された場合には機能します。そして、最近、LinuxのビルドマシンはWindowsマシンよりも優れているようです。

また、最適化パラメータを変更すると、コードが非常に悪くなるようです。例えば。現時点では "バランス"モードのみが動作します。パフォーマンスを向上させる「パフォーマンス」モードと「アグレッシブなパフォーマンス」モードは、受信信号に多くのエラーを引き起こします。上り信号処理ブロックのメモリ内容もこのようにMIPI-CSI2 TXに影響します。

私は、SDCのタイミング制約によって完全には制約されていない不確実性があると思います。


注2:

私は完全にテスト信号に機器を持っていないので、完全にこの理論を検証することはできないんだけど、また暗号化されたコードがないので、私はゲートレベルのシミュレーションを行うことができますEDAネットリストを生成できません。

答えて

1

一般に、私は通常、前向きに関係する2つのタイプの制約があります。 1つはIOの制約で、チップ外に出る信号の場合は、データと、もちろん受信クロックと受信データを送信するために使用されているクロックとの関係を制御する必要があります。第2のタイプはクロック制約である。クロックそのものが正しく指定されていることを検証する必要があります。ツールによっては、いったん完了したら、PLL派生クロックを得るために発生するクロックを取得するプロセスが一般的です...その部分は自動でもよいし、アルテラのようなものであればderive_clocksを呼び出す必要がありますあなたはあなたのところにいる。

もちろん、他の種類の制約もありますが、ほとんどは例外を指定するためのものです。 "これをマルチサイクル、または偽のパスにする.."など。これはおそらくあなたがここで望むものではありません。クロックに制約され、それはかなりきつくなるはずです。

入出力制約の問題の場合は、RXクロックとTXクロックと関連データの関係を変更できます。

この暗号化されたIPがベンダーによって提供されている場合、通常、必要な基本的な入力クロック制約を超えて追加の制約が提供されます。

実際にクロック変動の問題だと思うのであれば、入力クロックを実際よりも少し速くすることができます。技術的にタイミングが厳しくなり、最終的なイメージにマージンが得られます。

スピードグレードのため、デバイスの部品番号を正しく指定する必要があります。あなたは遅い部分があり、速い部分にコンパイルしているかもしれません。これは混乱を招くだろう。一部のベンダーは間違った部分に間違ったイメージをロードするのを防ぎますが、いくつかはあなた自身をハングアップさせます。

最後に、I/O信号規格と終端仕様を確認してください。ここでシグナルの完全性が発揮されていると考えるならば、これらは考慮する必要があります。 HSSLを使用する必要があるときにLVDSまたはCMLを使用しているか、信号ピンにプルアップを追加する必要があるかどうかを確認してください。

+0

私は本当に "不完全なタイミング制約"を意味する間違った言語( "タイミング制約が不十分")を使用したと思います。私の場合、TXコアは暗号化されていますが、トップレベルのタイミング制約ファイルには制約がありません。私は間違っているかもしれないが、私はそれがまったく制約されているとは思わない。私はアルテラによってAN433を読んでいました。しかし、それは私に、クロックが最小/最大出力遅延を指定するために出力を供給している正確なノードを知る必要があるという印象を与えてくれます。 – user3528438

+0

これでAltera Quartusはこのように進んでいます。 GUIでプロジェクトを開き、TimeQuestを使用することができます。タスクメニューでは、動作条件を設定する必要があります。どちらの温度でも問題ありません。これを行うにはいくつかの方法がありますが、レポートデータシートタスクを実行するというアイデアが得られます。レポートには、最小クロックから出力ピンまでのレポートのリストが表示されます。内部には、出力とその関連クロックの一覧が表示されます。うまくいけば助けてくれます。 –

関連する問題