3

たとえば、特定のパイプラインを最大限に活用するために、リタイミングや c-slow を最大限に活用するにはどうすればよいでしょうか。

リタイミングを使用すると、入力にシフト レジスタを配置することでより良い結果が得られるモジュール (フォワード レジスタ バランシング) と、出力にシ​​フト レジスタを配置することでより良い結果が得られるモジュール (バックワード レジスタ バランシング) があります。

今のところ、次の方法を使用します。

  • コード hdl (Verilog)
  • 特定のモジュールのタイミング制約を作成する
  • 合成、マップ、配置、配線 (ISE 13.1 を使用)
  • 改善するモジュールの配置配線後のタイミングと、ロジック レベルの最大数を調べます。
  • この数のロジック レベルを使用して、挿入するフリップフロップの数を推測してください。
  • フリップフロップを挿入し、レジスタのバランスを有効にし、最善を尽くします

現状では、この方法はヒット&ミスです。かなり良い結果が得られることもあれば、がらくたになることもあります。では、そのようなリタイミングの成功率を向上させるにはどうすればよいでしょうか?

これを支援できるツールはありますか?また、リンク、論文、書籍の推奨事項も大歓迎です。

4

2 に答える 2

4

あなたは正しい考えを持っているようですね。ツールベースのリタイミングは、ちょっと行き当たりばったりです。場合によっては、良いと思われるものよりも 2 つまたは 3 つの FF を追加すると役立つことがあります。

反対に、パフォーマンスを限界まで押し上げる必要がある場合は、手動でパイプラインのバランスを取る必要があります。これは、読みやすい HDL コードをひどく明示的なロジックとレジスタに分割しなければならないという、かなりの苦痛になる可能性があります。壊れた!

最後に「中途半端な家」です。ロジック レベルが最も多いロジック パスを見て、コードについて少し考えてみると、それが 1 つの非常に小さなコード (おそらく 1 行) にすぎないことがよくわかります。これは、モジュールの残りの部分の可読性をあまり「損なう」ことなく引き出すことができます。また、そのコードを独自のエンティティに取り込み、追加のフリップフロップをそのエンティティに配置すると、自動リバランサーがより適切に機能することがあります。

幸運を!

于 2011-04-28T07:53:32.957 に答える
0

ツールではありませんが、ハイ パフォーマンス FPGA 設計の技術に関する私のブログ エントリに感謝するかもしれません。 http://www.fpgacpu.org/log/aug02.html#art

ハッピーハッキング!

于 2011-06-27T21:36:54.180 に答える