3

私は最初の商用サイズのアプリケーションに着手しています。デザインを作成しているのに、リソースを大量に使用しているように見えるため、コーディングと実装をやめることがよくあります。これは、周辺機器 (たとえば、シフト レジスタの出力タップの有効化) にある場合に特に当てはまります。一般的な実装がどれだけ大きくなるかを考えると、さらに悪化します (タップの例では 4k ビット)。最もクリーンな実装にはこれらがありますが、私の頭では、大量のオーバーヘッドが追加されます。

設計オプションをコーディングして評価する価値があるかどうかをすばやく判断するために使用できる規則はありますか? 一般に、フリップフロップの数についてはあまり気にせず、信号の幅については気にかけます。これは、オーバーヘッドを防ぐためにすべてのアプリケーションの境界を可能な限り小さくする必要がある CS のバックグラウンドから来ている可能性があります。

4

2 に答える 2

2

Point 1. 遊びながら学ぶ、だから遊ぼう!いくつか試してみてください。ツールの機能を参照してください。問題を感じ取ってください。何かを試してみないと、これを乗り越えることはできません。多くの場合、問題は自分が思っている場所にありません。

ポイント 2. これらの決定には、何らかのコンテキストを取得する必要があります。FPGA / デザインの容量と比較して、シフト レジスタにイネーブルを追加する量はどれくらいですか?

ポイント 3. 考慮すべき「リソース」には、主に 2 つのタイプがあります。セルと時間です。

Cells は、広い意味で比較的簡単です。何フロップ?識別可能なブロック (例: ALU: 乗算器、加算器など) のロジックの量は? 多くの場合、これは実行しようとしている設計によって定義されます。レジスタ、乗算器、加算器などがなければ、ALU を構築することはできません。

時間はより微妙であり、セルに対して常にトレードオフされます。何らかのパフォーマンス目標を達成しようとし、それを難し​​くする構造を認識することで、ポイント 1 から経験することができます。

注意すべき点は次のとおりです。

  • 多数のものを駆動する単一のネット。ファンアウトが大きいと、1 つのドライバーに大きな負荷がかかり、速度が低下します。次に、ツールはセルを使用してその信号をバッファリングする必要があります。古典的な時間とセルのトレードオフ。
  • レジスタ ステージ間のロジックの深い塊。ここでも、エッジに近い場合、ロジックがタイミングを満たすようにするために、ツールはより多くのセルを消費する必要があります。単純なロジックは高速で小さいです。パイプライン ステージを導入すると、どちらの側のロジックもはるかに簡単になり、デザインのサイズを縮小できる場合があります。

各ビットのファンアウトが低く、レジスタの予算を立てている場合は、大規模なバスについてそれほど心配する必要はありません。高帯域幅が必要なため、大規模なバスは多くの場合、高速設計に固有のものです。より高いクロック速度に移行するよりも、ワイドに移行する方が簡単な場合があります。一方、幅の広いバスの制御ロジックについて考えてみましょう。これは、ファンアウトが大きい可能性があるためです。

ツールやターゲット デバイスが異なれば特性も異なるため、セットアップのルールをプレイして学習する必要があります。サイズと速度 (そして最近では「パワー」) の妥協点は常にあります。その曲線に沿ってそれぞれの方向に移動するものを理解する必要があります。それには経験が伴います。

設計オプションをコーディングして評価する価値があるかどうかをすばやく判断するために使用できる規則はありますか?

私が思いつくことができる唯一のルールは、「時間はありますか?」か否か?'

あれば探索します。そうでない場合は、何かを機能させたほうがよいでしょう。

ああ、締め切りまでデザインする人生!

于 2012-06-19T08:36:59.597 に答える
1

経験を積むことで得られるものです。ここにいくつかのポインタがあります:

  • 数字の追加はかなり安い
  • マルチプレクサへの入力が多い場合、それらの間の選択(多重化)は非常に急速に大きくなります(各入力の幅も二次的な問題です)。
  • チップに予備の乗算器がある場合、乗算は無料ですが、ハード DSP ブロックが不足すると突然高価になります。
  • メモリも安いです。たとえば、4K ビットのシフト レジスタは 1 つのザイリンクス ブロック RAM に簡単に収まりますが、余裕があれば問題ありません。そうでない場合は、多数の LUT が必要になります (デバイスによって異なります。古い Spartan 3 では 17 ビットを LUT (CLB レジスタを含む) に収めることができるため、約 235 個の LUT が必要になります)。また、すべての LUT をシフト レジスタにできるわけではありません。レジスタの有効化だけを気にする場合は、気にしないでください。デバイスのパフォーマンスを向上させない限り、そのような信号を数百の LUT にルーティングしても、大きなタイミングの問題が発生する可能性はほとんどありません。
于 2012-06-19T08:34:05.120 に答える