CycloneIII 内部リソースの概要#
[toc]
私が使用している Altera DE0 のメインコントロールチップは EP3C16F484C6 であり、上記の図からは 15408 個の論理要素、56 個の M9K、56 個の 18×18 乗算器、4 つの PLL などのリソースが含まれていることがわかります。
ロジック要素とロジックアレイブロック#
LE#
LE は FPGA 内で最小の論理要素であり、効率的なロジックを提供するための高度な機能を提供します。LE の構造は次の図のようになっています:
- LUT:ユーザーが必要とするロジック機能を実行するために使用され、Cyclone III のルックアップテーブルは 4 入力 1 出力であり、任意の 4 入力 1 出力の組み合わせロジックを実行することができます。
- プログラマブルレジスタ:D フリップフロップ、T フリップフロップ、JK フリップフロップなどに設定することができ、各レジスタにはデータ信号、クロック信号、クロックイネーブル、リセット信号の 4 つの入力信号が含まれています。
LE には 2 つの動作モードがあります:
- 通常モード:一般的なロジック演算に適しています。
- 算術モード:加算器、カウンタ、アキュムレータ、比較器などを実装するために使用されます。
LAB#
各 LAB は次の要素で構成されています:
- 16 個の LE
- LAB 制御信号
- LE 転送チェーン
- レジスタチェーン
- ローカルインターコネクト
ローカルインターコネクトは、同じ LAB 内の LE 間で信号を伝達するために使用されます。レジスタチェーンは、1 つの LE の出力を隣接する LE に伝達するために使用されます。
LAB の構造は次の図のようになっています:
LAB インターコネクト#
LAB のローカルインターコネクトは、同じ LAB 内の列と行のインターコネクトと LE の出力ドライブによって構成されています。隣接する LAB、PLL、M9K RAM ブロック、および左から右への埋め込み乗算器も、直接リンク接続によって LAB のローカルインターコネクトをドライブすることができます。直接リンク接続は、行と列のインターコネクトの使用を最小限に抑え、より高いパフォーマンスと柔軟性を提供します。各 LE は、高速なローカルおよび直接リンクインターコネクトによって最大 48 個の LE をドライブすることができます。
直接リンク接続は次の図のようになっています:
メモリブロック#
組み込みメモリ構造は、M9K メモリブロックで構成されており、RAM、シフトレジスタ、ROM、FIFO などのさまざまなメモリ機能を提供するためにメモリブロックを構成することができます。
M9K のメモリユニットは 9k == ビット == であり、9k == バイト == ではありません。また、9k のうち 1k のスペースは検査などの機能に使用され、実際に使用可能なスペースは 8k ビットです。
メモリモード#
M9K メモリブロックは非同期メモリ入力をサポートしていません。
クロッキングモード#
Read または Write モードを使用する場合、同じアドレスに対して読み書き操作を行うと、出力される読み取りデータは不明です。出力データを確定的な信号にするには、シングルクロックモードまたは IO クロックモードを使用し、MegaWizard Plug-In Manager で適切な読み書き操作を選択する必要があります。
メモリブロックの入力レジスタのセットアップおよびホールドタイムを破る読み書き操作は、メモリ内容の破損を引き起こす可能性があります。
非同期リセットは、読み取りアドレスレジスタ、出力レジスタ、および出力ラッチにのみ使用できます。
メモリモードとクロッキングモードの関係は次の図のようになっています:
埋め込み乗算器とデジタル信号処理サポート#
乗算器の構造#
- 入力データは、入力レジスタに送信することも、直接乗算器に入力することもできます。2 つの入力信号は互いに独立しており、例えば、A 信号はレジスタを介して乗算器に入力されることもありますが、B 信号は直接乗算器に入力されることもあります。
- 乗算器のビット幅と動作モードに応じて、単一の乗算器は 1 回または 2 回の並列乗算演算を実行することができます。
- 2 つの入力信号がどちらも符号なし数の場合、出力データも符号なし数です。どちらか一方が符号付き数の場合、出力結果も符号付き数です。