FPGA の基礎となるリソースの概要

FPGA底层资源主要是Slices、IOBs、Memory、Multipliers、Global clock buffers等等,下面对各类资源进行详细的解读。

1. スライス
7 シリーズ FPGA のスライスは 4 つの部分で構成されます。
(1)
ロジック ファンクション ジェネレーター (ルックアップ テーブル LUT と呼ばれることが多い) には、1 つのスライスに 4 つの 6 入力ルックアップ テーブルが含まれます。
※4
(2)
しばしばフリップフロップと呼ばれるストレージ ユニットには、1 つのスライスに 8 つのフリップフロップが含まれます。4 つのフリップフロップの各グループは、D フリップフロップまたはラッチとして構成できます。
ここに画像の説明を挿入
(3)
マルチプレクサ、つまり 1 ビット幅のデータ セレクタ マルチプレクサは非常に多く、十分に使用できます。
ここに画像の説明を挿入
(4)
キャリー ロジック (キャリー チェーン)。これは OR ゲートではなく、XOR ゲートです。これは、FPGA に付属するキャリー チェーン (キャリー チェーン) ロジックです。一般的に、カウンタなどキャリーロジックを持つ可能性のあるデザインを実装する場合、リソースのこの部分が呼び出される可能性があるため、多数の
ここに画像の説明を挿入
スライスとグローバルクロックの組み合わせにより、複雑なデジタル機能を実現できます。
sliceL の構造図:
ここに画像の説明を挿入

2. IOB プログラマブル IO の機能は
、信号の取得と出力を完了することです. ピンは、さまざまな電気的特性、プルアップとプルダウンまたはトライステート、差動またはシングルエンドをサポートするように構成できます. IOB と、idelay、odelay、ilogic、ologic、およびプログラマブル IO などの近くのリソースが一緒になって、FPGA の IO_Bank を形成します。
ここに画像の説明を挿入
ここに画像の説明を挿入

3. メモリ
FPGA のオンチップ メモリは、一般に分散 RAM とブロック RAM の 2 種類に分けられます。DRAM は LUT で実装され、Block RAM は DRAM よりも容量の大きい専用のメモリ リソースです。
UltraScale+ シリーズでは、ザイリンクスは Ultra RAM と呼ばれる新しい専用メモリ リソースを導入しました. 単一の URAM の容量はブロック RAM の 6 倍であり、より大きなデータ処理要件をサポートできます. 次の表を使用して、3 つの Mem リソースを比較します。For more details content, you can read the Xilinx Guide
ここに画像の説明を挿入
to store the same data. BRAM を使用すると、DRAM よりも少ないリソースを消費する可能性がありますが、BRAM はタイミングに大きな影響を与える可能性があります. 現時点でタイミングがより重要な要素である場合は、犠牲 DRAM を使用するためにいくつかのリソースをドロップします。
参照: 「UltraScale アーキテクチャ メモリ リソース」
「UltraScale アーキテクチャ コンフィギュラブル ロジック ブロック」

4. 乗数
乗数は、名前が示すように、乗算に使用されます。
ここに画像の説明を挿入
ここに画像の説明を挿入

5.
FPGA クロック リソースの導入は、主に 3 つの部分に分かれています。最初の部分は領域構造、2 番目の部分はコンポーネント関数、3 番目の部分は実装です。
まず第一に, FPGA のクロック リソースはすべてのシーケンシャル ロジックを駆動する責任があります. メーカーはクロック リソースを十分かつ信頼できるものにするために最善を尽くします. この目標を達成するために, ザイリンクスは構造化されたクロック リソース レイアウト方法を採用しています.

まず、ボード全体を左右にまったく同じ幅で2分割し、真ん中に大動脈を置きます。つまり、下図のクロッキング センター位置にあるクロッキング バックボーンと、すべての BUFG (グローバル クロック バッファー) も含まれます。
名前が示すように、BUFG はグローバル クロック バッファーです。
  BUFG は
  次のことができます。 1. 複数のクロック ドメインにまたがるクロックを制御するための
  クロック イネーブルとして 2. 2 つのクロックのいずれかを選択するか、失敗したクロックを切り替えるグリッチのないマルチプレクサ
  として別のクロックに対する遅延
ここに画像の説明を挿入
1 本の動脈は明らかに人体全体に血液を供給することができず、限られた数 (7 シリーズには 32 の配線リソースがあります) の BUFG はすべてのロジック リソースを直接駆動することはできません。BUFG は駆動範囲が最も広いですが、すべてのリソースに BUFG を使用して最良の結果を得ることはできません。
したがって、水平の血管、つまり HROW (Horizo​​ntal Clock Row) も必要です。これは等距離で水平に分布しており、シミュレートされた都市で道路を建設するときのチェス盤のレイアウトに非常に似ています。ただし、HROW はクロック バックボーンとは異なり、隣接する上下のタイミング ロジック リソースの駆動を主に担当し、具体的な実装は BUFG の去勢バージョンに相当する BUFH を介して行われます。各クロック ドメインには 12 個の BUFH 配線リソースがあります。つまり、クロック ドメインは最大 12 個の BUFH 配線リソースを使用して 12 個の BUFG クロックを導入できます。

ここでは、配線時にすべてのグローバル クロック信号ラインがクロック バックボーンを通過する必要があり、グローバル クロック信号ラインがクロック バックボーンから出て特定のクロック領域に入るときに HROW を通過する必要があることも強調されています。次に、配線時にすべてのグローバル クロック ラインがクロック バックボーンと HROW を通過する必要があり、BUFG と BUFH が HROW の配線リソースを共有すると結論付けることができます。あるクロック ドメインへのパスは、Clock Backbone から引き出された BUFG 信号線であり、BUFH に接続されます.BUFG 配線リソースの合計 (1/32) と (1/12) が使用されます. もちろん、信号線は再利用可能です。

クロック領域とは何ですか? クロック領域はボードの分割であり、その上下の境界は 2 つの HROW の中間にあります。つまり、各クロック領域の中間に HROW があります。そして、その左右の境界が2つのCMT Backboneの真ん中で、同様に、各クロック領域の真ん中を縦に通るCMT Backboneがあります。ボードのサイズに応じて、クロック ドメインの数は 1 から 24 まで変化します。クロック ドメインには、すべての同期コンポーネント (CLB、I/O、シリアル トランシーバー、DSP、ブロック RAM、CMT) が含まれます。各クロック ドメインには、50 個の CLB と 1 つの I/O バンク (50 個の I/O) が含まれます。

横の血管だけでなく、BUFMRやBUFRに相当する細い血管や毛細血管も必要です。BUFMR は、このクロック ドメインと 2 つの隣接するクロック ドメインのすべてのタイミング リソースを上下に駆動できます。隣接するクロック ドメインを駆動する場合、配線は CMT バックボーンを経由する必要があります。また、BUFR は、このクロック ドメインのタイミング リソースのみを駆動できます。
  また、BUFIO は、このクロック ドメイン/この I/O ドメインの I/O コンポーネントのみを駆動できます。

参考:https://blog.csdn.net/weixin_43778388/article/details/122521139
https://zhuanlan.zhihu.com/p/336370365?utm_medium=social&utm_oi=47239162494976
http://t.zoukankan.com/aliothx-p-13398060.html
https://blog.csdn.net/dongdongnihao_/article/details/111354406
https://blog.csdn.net/wenjia7803/article/details/115339122

おすすめ

転載: blog.csdn.net/weixin_45104510/article/details/127107509