• 検索結果がありません。

インテル® Arria® 10 コア・ファブリックおよび汎用 I/O ハンドブック

N/A
N/A
Protected

Academic year: 2021

シェア "インテル® Arria® 10 コア・ファブリックおよび汎用 I/O ハンドブック"

Copied!
315
0
0

読み込み中.... (全文を見る)

全文

(1)
(2)

目次

1 Arria® 10 デバイスにおけるロジック・アレイ・ブロックおよびアダプティブ・ロジック・モジュール... 7 1.1 LAB... 7 1.1.1 MLAB... 8 1.1.2 ローカル・インターコネクトおよびダイレクト・リンク・インターコネクト ...9 1.1.3 共有演算チェーン・インターコネクトおよびキャリー・チェーン・インターコネクト ... 10 1.1.4 LAB コントロール信号...11 1.1.5 ALM リソース ... 12 1.1.6 ALM 出力 ...13 1.2 ALM 動作モード ... 14 1.2.1 ノーマルモード ... 14 1.2.2 拡張 LUT モード...17 1.2.3 演算モード...18 1.2.4 共有演算モード ... 20 1.3 LAB 消費電力管理手法 ...21 1.4 改訂履歴...21 2 Arria® 10 デバイスにおけるエンベデッド・メモリー・ブロック...22 2.1 エンベデッド・メモリーの種類...22 2.1.1 Arria® 10 デバイスのエンベデッド・メモリー容量...23 2.2 Arria® 10 デバイスにおけるエンベデッド・メモリー・デザイン・ガイドライン... 23 2.2.1 メモリーブロックの選択の検討事項... 23 2.2.2 ガイドライン : 外部の競合解決を実装する...24 2.2.3 ガイドライン : Read-During-Write 動作をカスタマイズする...24 2.2.4 ガイドライン : パワーアップ状態およびメモリーの初期化... 27 2.2.5 ガイドライン : クロッキングをコントロールして消費電力を削減する...28 2.3 エンベデッド・メモリーの機能...28 2.4 エンベデッド・メモリー・モード... 29 2.4.1 シングルポート・モードでのエンベデッド・メモリー・コンフィグレーション...30 2.4.2 デュアルポート・モードでのエンベデッド・メモリー・コンフィグレーション... 31 2.5 エンベデッド・メモリーのクロッキング・モード... 32 2.5.1 各メモリーモードでのクロッキング・モード... 32 2.5.2 クロッキング・モードでの非同期クリアー...33 2.5.3 同時の読み取り / 書き込みでの出力読み取りデータ...33 2.5.4 クロッキング・モードでの独立クロックイネーブル...33 2.6 メモリーブロックでのパリティービット... 33 2.7 エンベデッド・メモリー・ブロックでのバイトイネーブル... 34 2.7.1 メモリーブロックでのバイト・イネーブル・コントロール...34 2.7.2 データバイト出力... 34 2.7.3 RAM ブロックの動作...35 2.8 メモリーブロックのパックモード・サポート...35 2.9 メモリーブロックのアドレス・クロック・イネーブルのサポート... 35 2.10 メモリーブロックの非同期クリアー... 37 2.11 メモリーブロックの誤り訂正コードのサポート... 38

(3)

2.12 改訂履歴... 39 3 Arria® 10 デバイスにおける可変精度 DSP ブロック... 40 3.1 Arria® 10 デバイスでサポートされる動作モード... 40 3.1.1 特性... 41 3.2 リソース...42 3.3 デザインの検討事項... 44 3.3.1 動作モード...45 3.3.2 固定小数点演算での内部係数とプリアダー...45 3.3.3 固定小数点演算でのアキュムレーター... 46 3.3.4 チェーンアウト加算器... 46 3.4 ブロック・アーキテクチャー... 46 3.4.1 入力レジスターバンク... 48 3.4.2 パイプライン・レジスター... 50 3.4.3 固定小数点演算でのプリアダー...51 3.4.4 固定小数点演算での内部係数...51 3.4.5 マルチプライヤー数... 51 3.4.6 加算器...51 3.4.7 固定小数点演算のアキュムレーターとチェーンアウト加算器... 52 3.4.8 固定小数点演算のシストリック・レジスター...52 3.4.9 固定小数点演算のダブル累算レジスター...53 3.4.10 出力レジスターバンク... 53 3.5 動作モードの説明...53 3.5.1 固定小数点演算の動作モード... 54 3.5.2 浮動小数点演算の動作モード... 60 3.6 改訂履歴...67 4 Arria 10 デバイスにおけるクロック・ネットワークおよび PLL... 69 4.1 クロック・ネットワーク... 69 4.1.1 Arria 10 デバイスのクロックリソース... 70 4.1.2 階層クロック・ネットワーク...72 4.1.3 クロック・ネットワークのタイプ... 74 4.1.4 クロック・ネットワーク・ソース... 77 4.1.5 クロック・コントロール・ブロック... 78 4.1.6 クロック・パワーダウン... 81 4.1.7 クロックイネーブル信号...81 4.2 Arria 10 の PLL...82 4.2.1 PLL 使用率... 84 4.2.2 PLL のアーキテクチャー... 84 4.2.3 PLL コントロール信号... 85 4.2.4 クロック・フィードバック・モード... 85 4.2.5 クロックの逓倍と分周... 86 4.2.6 プログラマブル位相シフト... 87 4.2.7 プログラマブル・デューティー・サイクル... 87 4.2.8 PLL のカスケード接続... 88 4.2.9 入力リファレンス・クロックソース... 88

(4)

4.3 改訂履歴...94

5 Arria 10 デバイスにおける I/O と高速 I/O... 97

5.1 Arria 10 デバイスにおける I/O と差動 I/O バッファー... 98

5.2 Arria 10 デバイスにおける I/O 規格と電圧レベル... 99

5.2.1 Arria 10 デバイスにおける FPGA I/O の I/O 規格のサポート... 99

5.2.2 Arria 10 デバイスにおける HPS I/O の I/O 規格のサポート... 100

5.2.3 Arria 10 デバイスにおける I/O 規格の電圧レベル...101

5.2.4 Arria 10 デバイスにおける MultiVolt I/O インターフェイス...102

5.3 Arria 10 デバイスにおけるインテル FPGA I/O IP コア...102

5.4 Arria 10 デバイスにおける I/O リソース... 102

5.4.1 Arria 10 デバイスにおける GPIO バンク、SERDES、および DPA の位置... 103

5.4.2 Arria 10 デバイスにおける GPIO バッファーと LVDS チャネル...108 5.4.3 Arria 10 デバイスにおける I/O バンクのグループ... 111 5.4.4 Arria 10 デバイスにおける I/O バーティカル・マイグレーション...117 5.5 Arria 10 デバイスにおける I/O のアーキテクチャーと一般機能...118 5.5.1 Arria 10 デバイスの I/O エレメント構造...118 5.5.2 Arria 10 デバイスの I/O ピンの機能...120 5.5.3 Arria 10 デバイスのプログラマブル IOE 機能... 121 5.5.4 Arria 10 デバイスにおけるオンチップ I/O 終端... 126 5.5.5 Arria 10 デバイスの外部 I/O 終端... 135

5.6 Arria 10 デバイスにおける高速ソース・シンクロナス SERDES および DPA... 144

5.6.1 SERDES 回路 ...145

5.6.2 Arria 10 デバイスでサポートされる SERDES I/O 規格... 146

5.6.3 Arria 10 デバイスの差動トランスミッター...147

5.6.4 Arria 10 デバイスの差動レシーバー...148

5.6.5 Arria 10 デバイスの PLL とクロッキング... 156

5.6.6 Arria 10 デバイスのタイミングと最適化... 168

5.7 Arria 10 デバイスにおける I/O および高速 I/O の使用... 174

5.7.1 Arria 10 デバイスにおける I/O および高速 I/O の一般的なガイドライン... 174

5.7.2 電圧リファレンス形式および非電圧リファレンス形式の I/O 規格の混在...175 5.7.3 ガイドライン : パワーシーケンス中に I/O ピンをドライブしない... 176 5.7.4 ガイドライン : HPS 共有 I/O バンクでの I/O ピンの使用... 177 5.7.5 ガイドライン : 最大 DC 電流制限...177 5.7.6 ガイドライン : アルテラ LVDS SERDES IP コアのインスタンス化... 177 5.7.7 ガイドライン : ソフト CDR モードの LVDS SERDES ピンペア...178 5.7.8 ガイドライン : Arria 10 GPIO 性能でのジッターへの高影響の最小化... 178 5.7.9 ガイドライン : 外部メモリー・インターフェイスのための I/O バンク 2A の使用... 179 5.8 改訂履歴... 180 6 Arria 10 デバイスにおける外部メモリー・インターフェイス... 184 6.1 Arria 10 外部メモリー・インターフェイス・ソリューションの主な特徴...184 6.2 Arria 10 デバイスでサポートされるメモリー規格...185 6.3 Arria 10 デバイスでの外部メモリー・インターフェイス幅...186 6.4 Arria 10 デバイスでの外部メモリー・インターフェイス I/O ピン... 187 6.4.1 ガイドライン : 外部メモリー・インターフェイスのための I/O バンク 2A の使用... 187 6.5 Arria 10 デバイスパッケージのメモリー・インターフェイスのサポート...188

(5)

6.5.2 ECC シングルおよびデュアルランク付き DDR3 x72 の Arria 10 パッケージサポート... 191 6.5.3 ECC 付き DDR4 x40 の Arria 10 パッケージサポート... 193 6.5.4 ECC シングルランク付き DDR4 x72 の Arria 10 パッケージサポート... 195 6.5.5 ECC デュアルランク付き DDR4 x72 の Arria 10 パッケージサポート... 197 6.5.6 Arria 10 における HPS 外部メモリー・インターフェイスの接続... 198 6.6 Arria 10 デバイスでの外部メモリー・インターフェイス... 202 6.6.1 ピンポン PHY IP...203 6.7 Arria 10 デバイスでの外部メモリー・インターフェイスのアーキテクチャー...204 6.7.1 I/O バンク... 204 6.7.2 I/O AUX... 214 6.8 改訂履歴... 216 7 Arria 10 デバイスにおけるコンフィグレーション、デザイン・セキュリティー、およびリモート・システム・アッ プグレード... 218 7.1 エンハンスト・コンフィグレーションおよびプロトコルを介したコンフィグレーション... 218 7.2 コンフィグレーション手法...219 7.2.1 アクティブシリアル (AS) コンフィグレーション... 220 7.2.2 パッシブシリアル (PS) コンフィグレーション...229 7.2.3 ファースト・パッシブ・パラレル (FPP) コンフィグレーション...233 7.2.4 JTAG コンフィグレーション...237 7.3 コンフィグレーションの詳細... 240 7.3.1 MSEL ピンの設定...240 7.3.2 CLKUSR... 241 7.3.3 コンフィグレーション・シーケンス... 242 7.3.4 コンフィグレーション・タイミング波形... 245 7.3.5 コンフィグレーション時間の見積り... 248 7.3.6 デバイス・コンフィグレーション・ピン... 249 7.3.7 コンフィグレーション・データの圧縮... 252 7.4 アクティブシリアル手法を使用したリモート・システム・アップグレード... 253 7.4.1 コンフィグレーション・イメージ... 254 7.4.2 リモート・アップデート・モードでのコンフィグレーション・シーケンス... 256 7.4.3 リモート・システム・アップグレード回路...257 7.4.4 リモート・システム・アップグレード回路のイネーブル化... 257 7.4.5 リモート・システム・アップグレード・レジスター... 258 7.4.6 リモート・システム・アップグレード・ステート・マシン... 259 7.4.7 ユーザー・ウォッチドッグ・タイマー... 259 7.5 デザイン・セキュリティー...260 7.5.1 セキュリティー・キーの種類...261 7.5.2 セキュリティー・モード... 262 7.5.3 Arria 10 Qcrypt セキュリティー・ツール...263 7.5.4 デザイン・セキュリティーの実装...264 7.6 改訂履歴... 265 8 Arria 10 デバイスにおける SEU の緩和... 268 8.1 SEU 緩和の概要... 268 8.1.1 SEU 緩和アプリケーション...268

(6)

8.2 Arria 10 における緩和手法... 269 8.2.1 メモリーブロックの誤り訂正コードのサポート... 270 8.2.2 CRAM でのエラー検出訂正... 270 8.3 仕様...279 8.3.1 エラー検出周波数...279 8.3.2 エラー検出時間... 279 8.3.3 EMR アップデート間隔...280 8.3.4 エラー訂正時間... 281 8.4 改訂履歴... 281 9 Arria 10 デバイスにおける JTAG バウンダリー・スキャン・テスト... 283 9.1 BST 動作コントロール...283 9.1.1 IDCODE ... 283 9.1.2 サポートされる JTAG 命令... 284 9.1.3 JTAG セキュアモード ...286 9.1.4 JTAG プライベート命令...286 9.2 JTAG 動作での I/O 電圧...286 9.3 BST の実行...287 9.4 IEEE Std. 1149.1 BST 回路を有効または無効にする ...288 9.5 IEEE Std. 1149.1 バウンダリー・スキャン・テストのガイドライン... 289 9.6 IEEE Std. 1149.1 バウンダリー・スキャン・レジスター... 289 9.6.1 Arria 10 デバイス I/O ピンのバウンダリー・スキャン・セル... 290 9.6.2 IEEE Std. 1149.6 バウンダリー・スキャン・レジスター... 292 9.7 改訂履歴... 293 10 Arria 10 デバイスにおけるパワー・マネジメント... 295 10.1 消費電力... 295 10.1.1 ダイナミック電力の方程式... 295 10.2 消費電力削減手法... 296 10.2.1 SmartVID...296 10.2.2 プログラマブル・パワー・テクノロジー...296 10.2.3 低スタティック電力のデバイスグレード... 298 10.2.4 SmartVID 機能の実装... 298 10.3 電源検出ライン...299 10.4 電圧センサー... 300 10.4.1 外部アナログ信号での入力信号の範囲...301 10.4.2 Arria 10 デバイスでの電圧センサーの使用... 301 10.5 温度センサーダイオード...305 10.5.1 内部温度センサーダイオード... 305 10.5.2 外部温度センサーダイオード... 307 10.6 パワーオン・リセット回路... 308 10.6.1 POR 回路でモニタリングされる電源とモニタリングされない電源...310 10.7 パワーアップ・シーケンスおよびパワーダウン・シーケンス... 310 10.8 電源デザイン...313 10.9 改訂履歴... 314

(7)

1 Arria

®

10 デバイスにおけるロジック・アレイ・ブロックおよびアダプテ

ィブ・ロジック・モジュール

LAB ( ロジック・アレイ・ブロック ) は、ALM ( アダプティブ・ロジック・モジュール ) として知られる基 礎的なビルディング・ブロックで構成されています。LAB をコンフィグレーションすることで、ロジック・フ ァンクション、演算ファンクション、およびレジスター・ファンクションが実装可能となります。

また、Arria 10 デバイスで使用可能な LAB の 4 分の 1 を MLAB ( メモリー LAB ) として使用でき ます。なお、特定のデバイスには、より高い MLAB 比率を有するものもあります。

Quartus® Prime ソフトウェアおよびサポートされるサードパーティーの合成ツールは、Library of

Parameterized Module (LPM) などパラメーター化された機能と併せて使用すると、カウンター、加 算器、減算器、および演算ファンクションなどの一般的な機能に適切なモードを自動的に選択します。 この章は、以下の項で構成されています。 • LAB • ALM 動作モード 関連情報 Arria 10 デバイス・ハンドブック : 既知の問題 Arria 10 デバイス・ハンドブックで更新を予定している箇所をリストします。

1.1 LAB

LAB はロジックリソースのグループで構成されるコンフィグレーション可能なロジックブロックです。各 LAB には ALM にコントロール信号を駆動するための専用ロジックが含まれます。

(8)

図 -1: Arria® 10 デバイスにおける LAB 構造およびインターコネクトの概要 この図は、LAB インターコネクトを有する Arria 10 の LAB および MLAB 構造の概要を示しています。

隣接ブロック からのダイレ クトリンク・ インターコネクト 隣接ブロック へのダイレクト リンク・イン ターコネクト 異なる速度と長さの ロウ・インターコネクト 異なる速度と長さの カラム・インターコネクト ローカル・インターコネクトは カラムとLABにより片側から、 ロウにより上から駆動されます。 ローカル・ インターコネクト LAB 隣接ブロックからの ダイレクトリンク・ インターコネクト 隣接ブロックへの ダイレクトリンク・ インターコネクト ALMs MLAB C4 C27 R32 R3/R6

1.1.1 MLAB

各 MLAB は最大 640 ビットのシンプル・デュアルポート SRAM をサポートします。 MLAB の各 ALM は 32 ( 深さ ) x 2 ( 幅 )のメモリーブロックとしてコンフィグレーションでき、 32 ( 深さ ) x 20 ( 幅 )のシンプル・デュアルポート SRAM ブロックのコンフィグレーションとなりま す。

MLAB は、 Quartus Prime ソフトウェアを使用するソフト実装で次の 64 ディープ・モードをサポート します。

64 ( 深さ ) × 8 ( 幅 )64 ( 深さ ) × 9 ( 幅 )64 ( 深さ ) × 10 ( 幅 )

(9)

図 -2: Arria® 10 デバイスにおける LAB と MLAB 構造

MLAB

LAB

LUT-Based-32 x 2

Simple Dual-Port SRAM

LUT-Based-32 x 2

Simple Dual-Port SRAM

LUT-Based-32 x 2

Simple Dual-Port SRAM

LUT-Based-32 x 2

Simple Dual-Port SRAM

LUT-Based-32 x 2

Simple Dual-Port SRAM

LUT-Based-32 x 2

Simple Dual-Port SRAM

LUT-Based-32 x 2

Simple Dual-Port SRAM

LUT-Based-32 x 2

Simple Dual-Port SRAM

LUT-Based-32 x 2

Simple Dual-Port SRAM

LUT-Based-32 x 2

Simple Dual-Port SRAM

ALM

ALM

ALM

ALM

ALM

ALM

ALM

ALM

ALM

ALM

LAB Control Block

LAB Control Block

MLAB ALM をレギュラー LAB ALM として使用 するか、デュアル ポート SRAM として コンフィグレーション できます。 MLAB ALMをレギュラー LAB ALM として使用 するか、 デュアル ポート SRAM として コンフィグレーション できます。

1.1.2 ローカル・インターコネクトおよびダイレクト・リンク・インターコネクト

各 LAB は 40 個の ALM 出力をドライブアウトすることができます。2 つのグループの 20 個の ALM 出力は、ダイレクト・リンク・インターコネクトを介して隣接する LAB を直接駆動することができます。 このダイレクトリンクによる接続機能は、ロウおよびカラム・インターコネクトの使用を最小限に抑え、さ らに高い性能と柔軟性を提供します。 ローカル・インターコネクトは、カラムおよびロウ・インターコネクト、ならびに同じ LAB の ALM 出力を 使用し、同じ LAB で ALM を駆動します。 また、左側または右側の隣接する LAB、MLAB、M20K ブロック、あるいは DSP ( デジタル信号処理 ) ブロックでも、ダイレクトリンク接続を使用して LAB のローカル・インターコネクトの駆動が可能です。

(10)

図 -3: Arria® 10 デバイスでの LAB ローカル・インターコネクトおよびダイレクト・リンク・インターコネク

ALMs

右側への ダイレクト・リンク・ 左の LAB、MLAB/M20Kメモリー ブロック、DSP ブロック、または IOE 出力 からのダイレクト・リンク・インターコネクト ローカル・ インターコネクト

LAB

ALMs

左側への ダイレクト・リンク・

MLAB

右の LAB、MLAB/M20Kメモリー ブロック、DSP ブロック、または IOE 出力 からのダイレクト・リンク・インターコネクト インターコネクト インターコネクト

1.1.3 共有演算チェーン・インターコネクトおよびキャリー・チェーン・インターコネクト

ALM 間には、キャリーチェーンと共有演算チェーンの 2 つの専用パスがあります。Arria 10 デバイス は、LAB 内に拡張されたインターコネクト構造を有し、効率的な演算機能のために共有演算チェーンと キャリーチェーンを配線します。これらの ALM 間の接続は、ローカル・インターコネクトをバイパスしま す。 Quartus Prime コンパイラーはこれらのリソースを自動的に利用して使用率と性能を向上させま す。

(11)

図 -4: 共有演算チェーン・インターコネクトとキャリー・チェーン・インターコネクト 隣接 ALM への キャリーチェーンおよび 共有演算チェーン配線 LAB の ALM 間のローカル・ インターコネクト配線 ローカル・ インターコネクト

ALM 1

ALM 2

ALM 3

ALM 4

ALM 5

ALM 6

ALM 7

ALM 8

ALM 9

ALM 10

1.1.4 LAB コントロール信号

各 LAB には、ALM にコントロール信号を駆動するための専用ロジックが内臓されており、2 つの固有 のクロックソースと 3 つのクロックイネーブル信号があります。 LAB コントロール・ブロックは、2 つのクロックソースと 3 つのクロックイネーブル信号を使用して、最 大 3 つのクロックを生成します。各クロックとクロックイネーブル信号はリンクされています。 クロックイネーブル信号がディアサートされると、対応する LAB ワイドのクロック信号はオフになりま す。

LAB ロウクロック [5..0] と LAB ローカル・インターコネクトは、LAB ワイドのコントロール信号を生 成します。MultiTrack インターコネクトの固有の低スキューは、データの他にクロックとコントロール信 号の分配もできます。MultiTrack インターコネクトは、デザインブロック間およびデザインブロック内の 接続に使用される長さと速度が異なる最適性能の連続配線ラインで構成されています。

クリアーおよびプリセット・ロジック・コントロール

レジスターのクリアー信号のロジックは、LAB ワイド信号で制御されます。ALM は非同期のクリアー機 能を直接サポートします。レジスタープリセットは NOT-gate push-back ロジックとして Quartus

(12)

Arria 10 デバイスは、デバイス内のすべてのレジスターをリセットするデバイスワイドのリセットピン

(

DEV_CLRn

) を提供します。

DEV_CLRn

ピンはコンパイル前に Quartus Prime ソフトウェアでイネ

ーブルできます。このデバイスワイドのリセット信号は、他のすべてのコントロール信号よりも優先され ます。 図 -5: Arria® 10 デバイスの LAB ワイド・コントロール信号 次の図は、LAB 内のクロックソースとクロックイネーブル信号を示しています。 専用ロウ LAB クロック Local Interconnect Local Interconnect Local Interconnect Local Interconnect Local Interconnect Local Interconnect labclk2 syncload labclkena0 またはasyncload またはlabpreset

labclk0 labclk1 labclr1

labclkena1 labclkena2 labclr0 synclr

6 6 6 LABごとに 2つの固有の クロック信号があります。

1.1.5 ALM リソース

各 ALM には、2 つの組み合わせアダプティブ LUT (ALUT) と 4 つのレジスター間で分割できる多様 な LUT ベースのリソースが含まれています。 ALUT の 2 つの組み合わせで最大 8 入力を使用し、1 つの ALM で 2 つのファンクションの多様な組 み合わせが実装できます。この適合性により、ALM は 4 入力 LUT アーキテクチャーとの完全な下位互 換性を可能にします。1 つの ALM で、最大 6 入力を有する任意のファンクションや特定の 7 入力ファ ンクションの実装も可能です。 1 つの ALM には 4 つのプログラマブル・レジスターが含まれます。各レジスターはそれぞれ次のポー トを有します。 • データクロック • 同期および非同期クリアー • 同期ロード

(13)

組み合わせファンクションでは、レジスターがバイパスされ、LUT ( ルックアップ・テーブル ) の出力が ALM の出力を直接駆動します。

注意: Quartus Prime ソフトウェアは、最適化されたパフォーマンスを提供するために ALM を自動的にコン フィグレーションします。 図 -6: Arria® 10 デバイスの ALM の上位レベルのブロック図 datac datad datae1 dataf1 adder1 datae0 dataf0 dataa datab carry_in carry_out Combinational/ Memory ALUT0 6-Input LUT 6-Input LUT shared_arith_out shared_arith_in Combinational/ Memory ALUT1 adder0 labclk reg1 一般配線へ reg0 reg3 reg2

1.1.6 ALM 出力

各 ALM での一般配線出力は、ローカル、ロウ、およびカラム配線リソースを駆動します。2 つの ALM 出力はカラム、ロウ、あるいはダイレクトリンク配線接続を駆動できます。 LUT、加算器、またはレジスター出力は、ALM 出力を駆動することができます。レジスターがある出力を 駆動している状態で、LUT または加算器は別の出力を駆動できます。 レジスターパッキングは、まったく別のレジスターと組み合わせロジックを 1 つの ALM 内にパッキング することで、デバイスの稼働率を向上させます。フィッティングを向上させるための別のメカニズムは、レ ジスター出力を同じ ALM の LUT 内にフィードバックできるようにすることであり、それにより、レジス ターは自身のファンアウト LUT とパッキングされます。ALM は、LUT または加算器の出力のラッチさ れたバージョンとラッチされていないバージョンをドライブアウトすることもできます。

(14)

図 -7: Arria® 10 デバイスの ALM 接続の詳細 + carry_in dataf0 datae0 dataa datab datad datae1 dataf1 shared_arith_out carry_out shared_arith_in 4-Input LUT 4-Input LUT 3-Input LUT 3-Input LUT 3-Input LUT 3-Input LUT + datac GND VCC aclr[1:0] sclr syncload clk[2:0] DCLRQ DCLRQ Row, Column

Direct Link Routing

DCLRQ

DCLRQ 3

3

Row, Column Direct Link Routing

Row, Column Direct Link Routing

Row, Column Direct Link Routing

1.2 ALM 動作モード

Arria 10 の ALM は、次のいずれかのモードで動作します。 • ノーマルモード • 拡張 LUT モード • 演算モード • 共有演算モード

1.2.1 ノーマルモード

ノーマルモードでは、2 つのファンクションまたは最大 6 入力の 1 つのファンクションを 1 つの Arria 10 ALM に実装することができます。 LAB ローカル・インターコネクトからの最大 8 データ入力は、組み合わせロジックの入力になります。 ALM は、完全に独立したファンクションの特定の組み合わせおよび共通の入力を持つファンクションの さまざまな組み合わせをサポートできます。

(15)

図 -8: ノーマルモードの ALM また、ここで示すものよりも入力数が少ないファンクションの組み合わせもサポートされています。例えば、次の入力数でのファンクシ ョンの組み合わせ (4 と 3、3 と 3、3 と 2、および 5 と 2) がサポートされます。 6-Input LUT dataf0 datae0 dataf0 datae0 dataa datab dataa datab datab datac datac dataf0 datae0 dataa datac 6-Input LUT datad datad datae1 combout0 combout1 combout0 combout1 combout0 combout1 dataf1 datae1 dataf1 datad datae1 dataf1 4-Input LUT 4-Input LUT 4-Input LUT 6-Input LUT dataf0 datae0 dataa datab datac datad combout0 5-Input LUT 5-Input LUT dataf0 datae0 dataa datab datac datad combout0 combout1 datae1 dataf1 5-Input LUT dataf0 datae0 dataa datab datac datad combout0 combout1 datae1 dataf1 5-Input LUT 3-Input LUT 1 つの ALM に 2 つの 5 入力ファンクションをパッキングする際、ファンクションは少なくとも 2 つの 共通入力を有していなければなりません。共通入力は

dataa

datab

です。4 入力ファンクションと 5 入力ファンクションの組み合わせでは、1 つの共通入力 (

dataa

または

datab

のいずれか ) が必 要です。 1 つの ALM に 2 つの 6 入力ファンクションを実装する場合、4 入力を共有する必要があり、組み合わ せファンクションは同じでなければなりません。使用頻度の低いデバイスでは、 Quartus Prime ソフト ウェアを使用して 1 つの ALM に配置できるファンクションを別の ALM に実装することにより、最高の パフォーマンスの実現が可能です。デバイスの使用率が高くなり始めると、 Quartus Prime ソフトウェ アは自動的に Arria 10 の ALM を最大限に活用します。 Quartus Prime のコンパイラーは、共通入 力を使用するファンクションまたは完全に独立したファンクションを自動的に検索して、デバイスのリソ ースの効率的な使用のために 1 つの ALM に配置します。加えて、ロケーション・アサインメントの設定 により、手動でリソース使用量をコントロールすることも可能です。

(16)

図 -9: ノーマルモードでの入力ファンクション

6-Input

LUT

datae0

dataf1

dataa

datab

datac

datad

datae1

dataf0

labclk

reg1

一般配線へ

reg0

reg3

reg2

これらの入力はレジスターパッキング で使用できます。 次の入力で、任意の 6 入力ファンクションを実装することができます。 •

dataa

datab

datac

datad

datae0

dataf1

、または

datae1

dataf0

datae0

dataf1

入力を使用する場合、次の出力が得られます。 •

register0

またはバイパスされた

register0

に駆動される出力 •

register1

またはバイパスされた

register1

に駆動される出力

register2

または

register3

へのパッキングされたレジスター入力として、使用可能な

datae1

入力または

dataf0

入力のいずれかを使用することができます。

datae1

および

dataf0

入力を使用する場合、次の出力が得られます。 •

register2

またはバイパスされた

register2

に駆動される出力 •

register3

またはバイパスされた

register3

に駆動される出力

register0

または

register1

へのパッキングされたレジスター入力として、使用可能な 入力または 入力のいずれかを使用することができます。

(17)

1.2.2 拡張 LUT モード

図 -10: Arria® 10 デバイスの拡張 LUT モードでサポートされる 7 入力ファンクションのテンプレート

Extended

LUT

datae0

datae1

dataf0

dataa

datab

datac

datad

dataf1

この入力はレジスター パッキングで使用できます。

labclk

reg1

一般配線へ

reg0

reg3

reg2

次の入力を使用して、7 入力ファンクションを単一の ALM に実装することができます。 •

dataa

datab

datac

datad

datae0

datae1

Dataf0

または

dataf1

dataf0

入力を使用する場合、次の出力が得られます。 •

register0

またはバイパスされた

register0

に駆動される出力 •

register1

またはバイパスされた

register1

に駆動される出力

register2

または

register3

へのパッキングされたレジスター入力として、

dataf1

入力を使用

(18)

dataf1

入力を使用する場合、次の出力が得られます。

register2

またはバイパスされた

register2

に駆動される出力

register3

またはバイパスされた

register3

に駆動される出力

register0

または

register1

へのパッキングされたレジスター入力として、

dataf0

入力を使用

することができます。

1.2.3 演算モード

演算モードの ALM は、2 つの専用全加算器と共に 2 つの 4 入力 LUT を 2 組使用します。 専用加算器は、LUT がプリ加算ロジックを実行でき、そのため、各加算器は 2 つの 4 入力ファンクショ ンの出力を加算することができます。 ALM は組み合わせロジックの出力と加算器のキャリー出力の併用をサポートします。この動作では、加 算器の出力は無視されます。 組み合わせロジックの出力と加算器を併用すると、このモードが使用できるファンクションのリソースを 最大 50% 節約します。 また、演算モードではクロックイネーブル、カウンターイネーブル、同期アップ / ダウン・コントロール、 加算 / 減算コントロール、同期クリアー、および同期ロードを提供します。 クロックイネーブル、カウンターイネーブル、同期アップ / ダウン・コントロール、および加算 / 減算コ ントロールの各信号は、LAB ローカル・インターコネクトのデータ入力により生成されます。これらのコ ントロール信号は、ALM 内の 4 つの LUT 間で共有される入力に使用できます。 同期クリアーオプションと同期ロードオプションは、LAB 内のすべてのレジスターに影響する LAB ワイ ド信号です。これらの信号は、各レジスターで個別にディスエーブルまたはイネーブルができます。 Quartus Prime ソフトウェアは、カウンターで使用されていないレジスターを自動的に他の LAB に配 置します。

(19)

図 -11: Arria® 10 デバイスの演算モードの ALM datae0 carry_in carry_out dataa databdatac datad datae1 4-Input LUT 4-Input LUT 4-Input LUT 4-Input LUT adder1 dataf0 dataf1 adder0 reg1 一般配線へ reg0 reg3 reg2 キャリーチェーン キャリーチェーンは、演算モードまたは共有演算モードで、専用加算器間の高速キャリー・ファンクション を提供します。 Arria 10 デバイスの 2 ビット・キャリー選択機能は、ALM 内のキャリーチェーンの伝播遅延を半減させ ます。チャリーチェーンは、LAB 内の最初の ALM または 5 番目の ALM のいずれかで開始することが できます。最後のキャリーアウト信号は ALM に接続され、そこでローカル、ロウ、カラムのいずれかのイ ンターコネクトに供給されます。

高ファンイン演算ファンクションが実装される場合に、デバイス内で 1 つの小さな領域での配線の密集 を防ぐため、LAB は、次の LAB に接続する前に LAB の上半分または下半分のいずれかのみを使用す るキャリーチェーンをサポートすることができます。これにより、LAB 内の ALM の残り半分は、ノーマル モードでより狭いファンイン・ファンクションを実装する際に使用できます。最初の LAB 内の上位 5 つ の ALM を使用するキャリーチェーンは、カラム内で次の LAB の ALM の上半分に取り込みます。また、 最初の LAB 内の下位 5 つの ALM を使用するキャリーチェーンは、カラム内で次の LAB の ALM の 下半分に取り込みます。なお、LAB カラムの上半分と MLAB カラムの下半分をバイパスすることもでき ます。

Quartus Prime のコンパイラーは、複数の LAB を自動的にリンクさせることで、20 個以上の ALM ( 演算モードまたは共有演算モードでは 10 個の ALM ) で構成される長いキャリーチェーンを作成し ます。フィッティング機能を強化するため、長いキャリーチェーンは垂直に並べ、TriMatrix メモリーおよ び DSP ブロックへの水平方向の接続を高速化することができます。キャリーチェーンはカラム全体に延 長できます。

(20)

1.2.4 共有演算モード

共有演算モードの ALM は、ALM 内に 3 入力加算機能を実装することができます。

このモードでは、ALM は 4 つの 4 入力 LUT で構成されます。各 LUT は、3 入力の合計または 3 入力 のキャリーのいずれかを計算します。キャリー計算の出力は、共有演算チェーンと呼ばれる専用の接続を 使用して次の加算器に供給されます。 図 -12: Arria® 10 デバイスにおける共有演算モードの ALM datae0 carry_in shared_arith_in shared_arith_out carry_out dataa databdatac datad datae1 4-Input LUT 4-Input LUT 4-Input LUT 4-Input LUT labclk reg1 一般配線へ reg0 reg3 reg2 共有演算チェーン 拡張演算モードで使用可能な共有演算チェーンは、ALM による 3 入力加算器の実装を可能にします。 これにより、大きな加算器ツリーや相関器ファンクションを実装するにあたって必要なリソースが大幅に 減少します。

共有演算チェーンは、LAB 内の最初の ALM または 6 番目の ALM のいずれかで開始することができ ます。

キャリーチェーンと同様に、代替 LAB カラム内の共有演算チェーンの上半分と下半分はバイパスが可 能です。この機能により、共有演算チェーンを LAB 内の ALM の半分でカスケード接続し、別の半分を 幅の狭いファンイン・ファンクションに使用できます。すべての LAB でカラムの上半分はバイパス可能 で、また、MLAB ではカラムの下半分がバイパス可能です。

Quartus Prime のコンパイラーは、複数の LAB を自動的にリンクさせることにより、20 個以上の ALM ( 演算モードまたは共有演算モードでは 10 個の ALM ) で構成される長い共有演算チェーンを 作成します。フィッティング機能を強化するため、長い共有演算チェーンは垂直に並べ、TriMatrix メモリ ーおよび DSP ブロックへの水平方向の接続を高速化することができます。共有演算チェーンはカラム

(21)

1.3 LAB 消費電力管理手法

LAB 内のスタティックおよびダイナミック消費電力を、次の手法で管理します。

Arria 10 LAB は高性能モードまたは低消費電力モードで動作します。 Quartus Prime ソフトウ ェアは、デザインに基づいて LAB の消費電力モードを自動的に最適化します。 • クロック、特に LAB クロックは、ダイナミック消費電力の大部分を消費します。各 LAB のクロック およびクロックイネーブル信号はリンクされており、共有のゲートクロックで制御できます。LAB ワ イドのクロックイネーブル信号を使用で、クロックツリーの全体をディスエーブルせずに LAB ワイ ドクロックのゲートができます。レジスター済みのロジックの HDL コードでは、クロックイネーブル 構造を使用します。 関連情報

Power Optimization chapter, Quartus Prime Handbook

LAB 内のスタティック消費電力およびダイナミック消費電力の実装について、より詳しい情報を提 供します。

1.4 改訂履歴

日付 バージョン 変更内容 2017 年 3 月 2017.03.15 商標を「インテル」へ変更。 2016 年 10 月 2016.10.31 項「LAB コントロール信号」にクロックソースの記述を追加。

2015 年 11 月 2015.11.02 表記を Quartus II から Quartus Prime へ変更。

(22)

2 Arria

®

10 デバイスにおけるエンベデッド・メモリー・ブロック

デバイス内のエンベデッド・メモリー・ブロックには柔軟性があり、デザイン要件に合った最適な小規模メ モリーアレイおよび大規模メモリーアレイを提供できるようデザインされています。  関連情報 Arria 10 デバイス・ハンドブック : 既知の問題 Arria 10 デバイス・ハンドブックで更新を予定している箇所をリストします。

2.1 エンベデッド・メモリーの種類

Arria 10 デバイスには、2 種類のメモリーブロックが含まれています。 • 20 Kb M20K ブロック—専用メモリーリソースのブロックです。M20K ブロックは多数の独立した ポートを提供しており、大規模なメモリーアレイに最適です。 • 640 ビット・メモリー・ロジック・アレイ・ブロック (MLAB)—兼用ロジック・アレイ・ブロック (LAB) からコンフィグレーションされるエンハンスト・メモリー・ブロックで、幅が広くて深度の浅いメモリ ーアレイに最適です。MLAB はデジタル信号処理 (DSP) アプリケーション、幅が広く深度の浅い FIFO バッファー、およびフィルターの遅延ラインに使用するシフトレジスターの実装に最適化され ています。各 MLAB は 10 個のアダプティブ・ロジック・モジュール (ALM) から構成されています。 Arria 10 デバイスでは、これらの ALM を、10 個の 32×2 ブロックとしてコンフィグレーションし、 MLAB ごとに 1 つの 32×20 シンプル・デュアルポート SRAM ブロックを提供することが可能で す。 関連情報

embedded cell (EC)

(23)

2.1.1 Arria

®

10 デバイスのエンベデッド・メモリー容量

表 1. Arria® 10 デバイスのエンベデッド・メモリー容量と分配 タイプ 製品ライン M20K MLAB トータル RAM ビット数(Kb) ブロック RAM ビット数 (Kb) ブロック RAM ビット数(Kb) Arria 10 GX GX 160 440 8,800 1,680 1,050 9,850 GX 220 587 11,740 2,703 1,690 13,430 GX 270 750 15,000 3,922 2,452 17,452 GX 320 891 17,820 4,363 2,727 20,547 GX 480 1,431 28,620 6,662 4,164 32,784 GX 570 1,800 36,000 8,153 5,096 41,096 GX 660 2,131 42,620 9,260 5,788 48,408 GX 900 2,423 48,460 15,017 9,386 57,846 GX 1150 2,713 54,260 20,774 12,984 67,244 Arria 10 GT GT 900 2,423 48,460 15,017 9,386 57,846 GT 1150 2,713 54,260 20,774 12,984 67,244 Arria 10 SX SX 160 440 8,800 1,680 1,050 9,850 SX 220 587 11,740 2,703 1,690 13,430 SX 270 750 15,000 3,922 2,452 17,452 SX 320 891 17,820 4,363 2,727 20,547 SX 480 1,431 28,620 6,662 4,164 32,784 SX 570 1,800 36,000 8,153 5,096 41,096 SX 660 2,131 42,620 9,260 5,788 48,408

2.2 Arria

®

10 デバイスにおけるエンベデッド・メモリー・デザイン・ガイドライン

デザインを確実に作成するには、いくつか考慮すべき事項があります。特に注記のない限り、これらのデ ザイン・ガイドラインはこのデバイスファミリーのすべてのバリアントに適用されます。

2.2.1 メモリーブロックの選択の検討事項

Quartus Prime ソフトウェアは、デザインの速度とサイズの制約に基づいて、ユーザー定義のメモリー を自動的にメモリーブロック内に分割します。例えば、 Quartus Prime ソフトウェアは、デザインの性 能を向上させるためにメモリーを複数の使用可能なメモリーブロックに分割します。

メモリーを手動で特定のブロックサイズに割り当てるには、Parameter Editor の RAM IP コアを使用 します。

MLAB では、 Quartus Prime ソフトウェアのエミュレーションを介してシングルポート SRAM を実 装することができます。エミュレーションの実行により、追加で使用するロジックリソースが最小限に抑

(24)

MLAB は兼用アーキテクチャーであるため、ブロック内ではデータ入力レジスター、出力レジスター、お よび書き込みアドレスレジスターのみが使用可能です。なお、MLAB は ALM から読み取りアドレスジス ターを取得します。

注意: Arria 10 デバイスでは、Resource Property Editor と TimeQuest タイミング・アナライザーが M20K ブロックの位置を

EC_X<number>_Y<number>_N<number>

として通知しますが、実際

に割り当てられる位置は

M20K_X<number>_Y<number>_N<number>

です。Embedded Cell

(EC) は、M20K ブロックのサブロケーションです。

2.2.2 ガイドライン : 外部の競合解決を実装する

トゥルー・デュアルポート RAM モードでは、同じメモリー位置に 2 つの書き込み動作の実行が可能で す。ただし、メモリーブロックは内部に競合解決回路がありません。このため、アドレスに未知のデータが 書き込まれることを防ぐには、メモリーブロックに外部の競合解決ロジックを実装する必要があります。

2.2.3 ガイドライン : Read-During-Write 動作をカスタマイズする

デザイン要件に合うように、メモリーブロックの Read-During-Write 動作をカスタマイズします。 図 -13: Read-During-Write のデータフロー 次の図は、使用可能な 2 つのタイプ ( 同一ポートと混合ポート ) の Read-During-Write 動作における違いを表しています。

Port A

data in

Port B

data in

Port A

data out

Port B

data out

混合ポート データフロー 同一ポート データフロー

FPGA Device

2.2.3.1 同一ポートの Read-During-Write モード

同一ポートの Read-During-Write モードは、シングルポート RAM またはトゥルー・デュアルポート RAM の同一ポートに適用されます。 表 2. 同一ポート Read-During-Write モードでのエンベデッド・メモリー・ブロックの出力モード 次の表は、同一ポート Read-During-Write モードでエンベデッド・メモリー・ブロックを選択する際に使用可能な出力モードをリス トしています。 出力モード メモリータイプ 説明 "new data" ( フロースルー ) M20K 新しいデータは、新しく書き込まれるデータと同じクロックサイクルの 立ち上がりエッジで使用可能です。

"don't care" M20K、MLAB RAM は Read-During-Write 動作で "don't care" の値を出力しま

(25)

図 -14: 同一ポートの Read-During-Write : New Data モード

次の図は、“new data” モードでの同一ポート Read-During-Write 動作のサンプル機能波形を示しています。

clk_a

address

rden

wren

byteena

data_a

q_a (asynch)

A123

B456

C789

DDDD

EEEE

FFFF

A123

B456

C789

DDDD

EEEE

FFFF

0A

0B

11

2.2.3.2 混合ポートの Read-During-Write モード

混合ポートの Read-During-Write モードは、2 つのポートが同じクロックを使用して、同じメモリーア ドレスで読み取りおよび書き込み動作を実行する ( 一方のポートがアドレスから読み取り、他方のポー トがアドレスに書き込む )、シンプルおよびトゥルー・デュアルポート RAM モードに適用されます。 表 3. 混合ポート Read-During-Write モードでの RAM の出力モード 出力モード メモリータイプ 説明

"new data" MLAB 異なるポートへの Read-During-Write 動作は、レジスターされた MLAB 出力を生じ

させ、データが MLAB メモリーに書き込まれた後、次の立ち上がりエッジで "new data" を反映します。

このモードは、出力がレジスターされた場合にのみ使用可能です。

"new data" M20K、MLAB 異なるポートへの Read-During-Write 動作により、RAM 出力は特定のアドレスにあ

る "new data" の値を反映します。

MLAB では、このモードは出力がレジスターされた場合にのみ使用可能です。

“don’t care” M20K、MLAB RAM は “don’t care” または “unknown” の値を出力します。

• M20K メモリーでは、 Quartus Prime ソフトウェアは書き込み動作と読み取り動 作間のタイミングを分析しません。

• MLAB では、 Quartus Prime ソフトウェアはデフォルトで書き込み動作と読み取 り動作間のタイミングを分析します。この動作をディスエーブルするには、Do not

analyze the timing between write and read operation. Metastability issues are prevented by never writing and reading at the same address at the same time オプションをオンにし

ます。 "constrained don't

(26)

図 -15: 混合ポートの Read-During-Write : New Data モード

次の図は、“new data” モードでの混合ポート Read-During-Write 動作のサンプル機能波形を示しています。

XXXX

11

clk_a&b

address_a

wren_a

byteena_a

rden_b

data_a

q_b (synch)

address_b

AAAA

BBBB

CCCC

DDDD

EEEE

FFFF

A0

A1

A0

A1

AAAA

BBBB

CCCC

DDDD

EEEE

FFFF

図 -16: 混合ポートの Read-During-Write : Old Data モード

次の図は、“old data” モードでの混合ポート Read-During-Write 動作のサンプル機能波形を示しています。

clk_a&b address_a wren_a byteena_a rden_b data_a q_b (asynch) address_b A0 A1 AAAA BBBB CCCC DDDD EEEE FFFF 11 A0 A1

(27)

図 -17: 混合ポートの Read-During-Write : Don’t Care または Constrained Don’t Care モード

次の図は、“don’t care” または “constrained don’t care” モードの混合ポート Read-During-Write 動作のサンプル機能波形 を示しています。

clk_a&b

wren_a

address_a

A0

A1

data_a

byteena_a

rden_b

address_b

q_b (asynch)

XXXX (unknown data)

A0

A1

11

01

10

11

AAAA

BBBB

CCCC

DDDD

EEEE

FFFF

デュアルポート RAM モードでは、入力レジスターが同じクロックを有する場合に混合ポートの Read-During-Write 動作がサポートされます。 関連情報

エンベデッド・メモリー (RAM : 1 ポート、RAM : 2 ポート、ROM : 1 ポート、および ROM : 2 ポー ト ) ユーザーガイド ( 英語版 ) Read-During-Write 動作を制御する RAM IP コアについての詳細を提供します。

2.2.4 ガイドライン : パワーアップ状態およびメモリーの初期化

初期パワーアップ値を評価するロジックをデザインしている場合、次の表にリストしているように、異な るタイプのメモリーブロックのパワーアップ状態を考慮します。 表 4. エンベデッド・メモリー・ブロックの初期パワーアップ値 メモリータイプ 出力レジスター パワーアップ値 MLAB Used ゼロ ( クリアー ) Bypassed メモリー内容の読み取り M20K Used ゼロ ( クリアー ) Bypassed ゼロ ( クリアー )

デフォルトでは、.mif を指定しない限り、 Quartus Prime ソフトウェアは Arria 10 デバイスの RAM セルをデフォルトで 0 ( ゼロ ) に初期化します。

(28)

関連情報

• エンベデッド・メモリー (RAM : 1 ポート、RAM : 2 ポート、ROM : 1 ポート、および ROM: 2 ポ ート ) ユーザーガイド ( 英語版 )

.mif

ファイルについての詳細を提供します。

• Quartus Prime Handbook Volume 1: Design and Synthesis

.mif ファイルについての詳細を提供します。

2.2.5 ガイドライン : クロッキングをコントロールして消費電力を削減する

デザイン内の各メモリーブロックの AC 消費電力を削減します。 • Arria 10 メモリーブロックのクロックイネーブルを使用して、各メモリーブロックのクロッキングを 制御します。 • 読み取りイネーブル信号を使用して、必要なときにのみ読み取り動作が実行されるようにします。 Read-During-Write が不要なデザインの場合、書き込み動作中またはメモリー動作が実行され ていない間に読み取りイネーブル信号をディアサートすることで、消費電力を削減できます。 • Quartus Prime ソフトウェアを使用して未使用のメモリーブロックを自動的に低消費電力モード にし、スタティック消費電力を削減します。

2.3 エンベデッド・メモリーの機能

表 5. Arria® 10 デバイスにおけるメモリー機能 次の表は、エンベデッド・メモリー・ブロックでサポートされる機能を示しています。 機能 M20K MLAB 最大動作周波数 730 MHz 700 MHz トータル RAM ビット数 ( パリティービットを含む ) 20,480 640 パリティービット 可能 — バイトイネーブル 可能 可能 パックモード 可能 — アドレス・クロック・イネーブル 可能 — シンプル・デュアルポートのデータ幅混合 可能 — トゥルー・デュアルポートのデータ幅混合 可能 — FIFO バッファーのデータ幅混合 可能 — メモリー初期化ファイル (.mif) 可能 可能 混合クロックモード 可能 可能 完全同期メモリー 可能 可能 非同期メモリー — フロースルー読み取りメモリー動作専 用 パワーアップ・ステート 出力ポートはクリアーされます • 登録済みの出力ポート—クリアー • 未登録の出力ポート—メモリー内 容の読み取り 非同期クリアー 出力レジスターと出力ラッチ 出力レジスターと出力ラッチ 書き込み / 読み取り動作のトリガー 立ち上がりクロックエッジ 立ち上がりクロックエッジ

(29)

機能 M20K MLAB

同一ポートの Read-During-Write 出力ポートは "new data" または

"don't care" に設定されます。 出力ポートは "don't care" に設定されます。

混合ポートの Read-During-Write 出力ポートは "old data" または

"don't care" に設定されます。 出力ポートは "old data"、"newdata"、"don't care"、または "constrained don't care" に設定さ れます。

ECC サポート Quartus Prime ソフトウェアを使用し

てソフト IP をサポートします。 x32 ビット幅シンプル・デュアルポー ト・モードのビルトインサポートを有し ます。 Quartus Prime ソフトウェアを使用し てソフト IP をサポートします。 関連情報

エンベデッド・メモリー (RAM : 1 ポート、RAM : 2 ポート、ROM : 1 ポート、および ROM : 2 ポー ト ) ユーザーガイド ( 英語版 ) エンベデッド・メモリー機能についての詳細を提供します。

2.4 エンベデッド・メモリー・モード

表 6. エンベデッド・メモリー・ブロックでサポートされるメモリーモード 次の表は、Arria 10 のエンベデッド・メモリー・ブロックでサポートされるメモリーモードをリストし、説明しています。 メモリーモード M20K サポート MLAB サポート 説明 シングルポート RAM 可能 可能 一度に 1 つの読み取り動作または書き込み動作を実行できます。 書き込み動作中、読み取りイネーブルポートを使用して RAM 出力ポートの動作を制 御します。 • 直近のアクティブ読み取りイネーブル中に保持していた以前の値を継続して保持す る—読み取りイネーブルポートを作成し、読み取りイネーブルポートがディアサート された状態で書き込み動作を実行します。 • 同じアドレス位置で Read-During-Write が実行される際、新しく書き込まれてい るデータ、アドレスにある古いデータ、または "Don't Care" の値を表示する—読 み取りイネーブル信号を作成しないか、あるいは書き込み動作中に読み取りイネー ブルを有効にします。 シンプル・デュアルポート RAM 可能 可能 書き込み動作がポート A、読み取り動作がポート B で実行されるような別の位置に対し、読み取り動作と書き込み動作を 1 回ずつ同時に実行できます。 トゥルー・デュアルポート RAM 可能 — 2 つの異なるクロック周波数で、2 つのポート動作の任意の組み合わせ ( 2 つの読み取り、2 つの書き込み、または 1 つの読み取りと 1 つの書き込み ) を実行できます。 シフトレジスター 可能 可能 メモリーブロックをシフトレジスター・ブロックとして使用して、ロジックセルと配線リソ ースを節約することができます。 これは、有限インパルス応答 (FIR) フィルター、擬似ランダム数発生器、マルチチャネ ル・フィルタリング、自己相関関数および相互相関関数など、ローカル・データ・ストレー ジを必要とする DSP アプリケーションに役立ちます。従来、ローカル・データ・ストレー ジは標準的なフリップフロップで実装されていたため、大きなシフトレジスターで多数 のロジックセルを消費していました。 continued...

(30)

メモリーモード M20K サポート MLAB サポート 説明

入力データ幅 (w)、タップの長さ (m)、およびタップの数 (n) によってシフトレジスタ ーの容量(w × m × n)を決定します。より大きなシフトレジスターを実装するためにメ モリーブロックをカスケード接続することができます。

ROM 可能 可能 ROM としてメモリーブロックを使用することができます。

• .mif または.hex を使用してメモリーブロックの ROM の内容を初期化します。 • ROM のアドレスラインは M20K ブロックでレジスターされますが、MLAB ではレ ジスターされない場合があります。 • 出力はレジスターすることも、しないことも可能です。 • 出力レジスターは非同期クリアーが可能です。 • ROM の読み取り動作は、シングルポート RAM コンフィグレーションでの読み取 り動作と同じです。

FIFO 可能 可能 FIFO バッファーとしてメモリーブロックを使用することができます。SCFIFO および

DCFIFO メガファンクションを使用して、デザイン内にシングルクロック非同期 FIFO バッファーとデュアルクロック非同期 FIFO バッファーを実装します。

小規模で浅い FIFO バッファーを多数有するデザインでは、MLAB は FIFO モードに 最適です。ただし、MLAB は混合幅の FIFO モードをサポートしません。

注意: メモリー内容の破損を防ぐために、読み取りまたは書き込み動作中に、すべてのメモリーブロック入力レ ジスターでセットアップまたはホールドタイムに違反しないでください。これは、シングルポート RAM、 シンプル・デュアルポート RAM、トゥルー・デュアルポート RAM、または ROM モードでメモリーブロッ クを使用する場合に適用できます。

関連情報

• エンベデッド・メモリー (RAM : 1 ポート、RAM : 2 ポート、ROM : 1 ポート、および ROM : 2 ポート ) ユーザーガイド ( 英語版 ) メモリーモードについての詳細を提供します。 • RAM ベース・シフト・レジスター (ALTSHIFT_TAPS) メガファンクションのユーザーガイド ( 英 語版 ) シフト・レジスター・モードの実装についての詳細を提供します。 • DCFIFO および DCFIFO IP コア・ユーザーガイド ( 英語版 ) FIFO バッファーの実装についての詳細を提供します。

2.4.1 シングルポート・モードでのエンベデッド・メモリー・コンフィグレーション

表 7. Arria® 10 デバイスにおけるシングルポート・エンベデッド・メモリーでのコンフィグレーション 次の表は、シングルポート RAM モードおよび ROM モードでサポートされる最大のコンフィグレーションを示しています。 メモリーブロック 深度 (ビット) プログラム可能な幅 MLAB 32 X16、x18、または x20 64(1) x8、x9、x10 M20K 512 x40、x32 1K x20、x16 2K x10、×8 continued...

(31)

メモリーブロック 深度 (ビット) プログラム可能な幅 4K x5、x4 8K x2 16K x1

2.4.2 デュアルポート・モードでのエンベデッド・メモリー・コンフィグレーション

表 8. シンプル・デュアルポート・モードでのメモリー・コンフィグレーション 次の表は、シンプル・デュアルポート RAM モードでのメモリー・コンフィグレーションをリストしています。混合幅のコンフィグレーシ ョンは、M20K ブロックでのみサポートされます。 読み取り ポート 書き込みポート 16K×1 8K×2 4K×4 4K×5 2K×8 2K×10 1K×16 1K×20 512×32 512×40 16K×1 可能 可能 可能 — 可能 — 可能 — 可能 — 8K×2 可能 可能 可能 — 可能 — 可能 — 可能 — 4K×4 可能 可能 可能 — 可能 — 可能 — 可能 — 4K×5 — — — 可能 — 可能 — 可能 — 可能 2K×8 可能 可能 可能 — 可能 — 可能 — 可能 — 2K×10 — — — 可能 — 可能 — 可能 — 可能 1K×16 可能 可能 可能 — 可能 — 可能 — 可能 — 1K×20 — — — 可能 — 可能 — 可能 — 可能 512×32 可能 可能 可能 — 可能 — 可能 — 可能 — 512×40 — — — 可能可能可能可能 表 9. トゥルー・デュアルポート・モードでのメモリー・コンフィグレーション この表は、トゥルー・デュアルポート RAM でのメモリー・コンフィグレーションをリストしています。混合幅のコンフィグレーションは、 M20K ブロックでのみサポートされています。 ポート A ポート B 16K×1 8K×2 4K×4 4K×5 2K×8 2K×10 1K×16 1K×20 16K×1 可能 可能 可能 — 可能 — 可能 — 8K×2 可能 可能 可能 — 可能 — 可能 — 4K×4 可能 可能 可能 — 可能 — 可能 — 4K×5 — — — 可能 — 可能 — 可能 2K×8 可能 可能 可能可能可能 — 2K×10 — — — 可能 — 可能 — 可能 1K×16 可能 可能 可能 — 可能 — 可能 — 1K×20 — — — 可能 — 可能 — 可能

(32)

2.5 エンベデッド・メモリーのクロッキング・モード

この項では、Arria 10 メモリーブロックでのクロッキング・モードについて説明します。 注意: メモリー内容の破損を防ぐために、読み取りまたは書き込み動作中に、すべてのメモリーブロック入力レ ジスターでセットアップまたはホールドタイムに違反しないでください。

2.5.1 各メモリーモードでのクロッキング・モード

表 10. 各メモリーモードでサポートされるメモリーブロックのクロッキング・モード クロッキング・モード メモリーモード シングルポート シンプル・デュアル ポート トゥルー・デュアルポート ROM FIFO シングル・クロック・モード 可能 可能 可能 可能 可能 読み取り / 書き込みクロック モード — 可能 — — 可能 入力 / 出力クロックモード 可能 可能 可能 可能 — 独立クロックモード — — 可能 可能 — 注意: MLAB ブロックの書き込みアドレス、バイトイネーブル、およびデータ入力レジスターではクロックイネ ーブル信号はサポートされません。

2.5.1.1 シングル・クロック・モード

シングル・クロック・モードでは、シングルクロックはクロックイネーブルと併用してメモリーブロックの すべてのレジスターを制御します。

2.5.1.2 読み取り / 書き込みクロックモード

読み取り / 書き込みクロックモードでは、各読み取りポートと書き込みポートに個別のクロックが使用 できます。読み取りクロックはデータ出力、読み取りアドレス、および読み取りイネーブルレジスターを制 御します。書き込みクロックはデータ入力、書き込みアドレス、書き込みイネーブル、およびバイト・イネー ブル・レジスターを制御します。

2.5.1.3 入力 / 出力クロックモード

入力 / 出力クロックモードでは、各入力ポートと出力ポートに個別のクロックが使用できます。入力クロ ックは、データ、アドレス、バイトイネーブル、読み取りイネーブル、および書き込みイネーブルを含むメモ リーブロックへのデータ入力に関係するすべてのレジスターを制御します。出力クロックはデータ出力レ ジスターを制御します。

2.5.1.4 独立クロックモード

独立クロックモードでは、各ポート (A および B) に個別のクロックが使用できます。クロック A はポー ト A 側のすべてのレジスターを制御します。クロック B はポート B 側のすべてのレジスターを制御しま す。 注意: 消費電力を節約するために、異なる入力および出力レジスターに独立クロックイネーブルを作成し、特 定のレジスターのシャットダウンを制御することができます。使用する独立クロックイネーブルを設定す

(33)

2.5.2 クロッキング・モードでの非同期クリアー

非同期クリアーは、すべてのクロッキング・モードで出力ラッチと出力レジスターにのみ使用できます。な お、独立クロックモードでは、非同期クリアーは両ポートに適用可能です。

2.5.3 同時の読み取り / 書き込みでの出力読み取りデータ

読み取り / 書き込みクロックモードを使用して同じアドレス位置に同時に読み取り / 書き込みを実行 する場合、出力読み取りデータは不明な値となります。出力読み取りデータが既知の値として必要な場合 は、シングル・クロック・モードまたは入力 / 出力クロックモードを使用して、IP コア Parameter Editor で適切な Read-During-Write 動作を選択します。

2.5.4 クロッキング・モードでの独立クロックイネーブル

独立クロックイネーブルは、次のクロッキング・モードでサポートされます。 • 読み取り / 書き込みクロックモード—読み取りおよび書き込みクロックの両方でサポートされま す。 • 独立クロックモード—両ポートのレジスターでサポートされます。 消費電力を節約するには、クロックイネーブルを使用して特定のレジスターのシャットダウンを制御して ください。 関連情報 28 ページの ガイドライン : クロッキングをコントロールして消費電力を削減する

2.6 メモリーブロックでのパリティービット

M20K ブロックでのパリティービットのサポートについて、次の表で説明します。 • パリティービットは、データ幅 5、10、20、40 ( ビット 4、9、14、19、24、29、34、および 39 ) の各 4 データ・ビットに関連付けられた 5 番目のビットです。 • 非パリティーデータ幅では、読み取りまたは書き込み動作中、パリティービットはスキップされます。 • パリティー機能はパリティービット上で実行されません。

(34)

2.7 エンベデッド・メモリー・ブロックでのバイトイネーブル

エンベデッド・メモリー・ブロックはバイト・イネーブル・コントロールをサポートします。

• バイト・イネーブル・コントロールは、データの特定のバイトのみが書き込まれるよう入力データをマ スクします。書き込まれないバイトは以前に書き込まれた値を保持します。

• 書き込みイネーブル (

wren

) 信号は、バイトイネーブル (

byteena

) 信号と共に RAM ブロック

上の書き込み動作を制御します。デフォルトでは、

byteena

信号は High ( イネーブル ) となっ ており、書き込み動作は

wren

信号によってのみ制御されます。 • バイト・イネーブル・レジスターは

clear

ポートを有しません。 • パリティービットを使用している場合、M20K ブロックでは、バイトイネーブル機能は 8 データ・ビ ットと 2 パリティー・ビットを制御します。MLAB では、バイトイネーブル機能は最も広いモードで 10 ビットすべてを制御します。 • バイトイネーブルは 1 ホット形式で動作します。

byteena

信号の LSB はデータバスの LSB に 対応します。 • バイトイネーブルはアクティブ High です。

2.7.1 メモリーブロックでのバイト・イネーブル・コントロール

表 11. X20 データ幅の

byteena

コントロール byteena[1:0] 書き込まれるデータビット 11 ( デフォルト ) [19:10] [9:0] 10 [19:10] — 01 — [9:0] 表 12. x40 データ幅の

byteena

コントロール byteena[3:0] 書き込まれるデータビット 1111 ( デフォルト ) [39:30] [29:20] [19:10] [9:0] 1000 [39:30] — — — 0100 — [29:20] — — 0010 — — [19:10] — 0001 — — — [9:0]

2.7.2 データバイト出力

M20K ブロックまたは MLAB では、バイトイネーブル・ビットを 0 にセットすると、エンベデッド・メモリ ー IP は対応するデータバイト出力を “don't care” 値にセットします。オプションの Get X's for

write masked bytes instead of old data when byte enable が常に選択されている必

参照

関連したドキュメント

They proved that if Y is a (real or complex) rearrangement-invariant nonatomic function space on [0, 1] isometric to L p [0, 1] for some 1 ≤ p &lt; ∞ then the isometric isomorphism

If the interval [0, 1] can be mapped continuously onto the square [0, 1] 2 , then after partitioning [0, 1] into 2 n+m congruent subintervals and [0, 1] 2 into 2 n+m congruent

Every 0–1 distribution on a standard Borel space (that is, a nonsingular borelogical space) is concentrated at a single point. Therefore, existence of a 0–1 distri- bution that does

3-dimensional loally symmetri ontat metri manifold is of onstant urvature +1. or

○事 業 名 海と日本プロジェクト Sea級グルメスタジアム in 石川 ○実施日程・場所 令和元年 7月26日(金) 能登高校(石川県能登町) ○主 催

現行の HDTV デジタル放送では 4:2:0 が採用されていること、また、 Main 10 プロファイルおよ び Main プロファイルは Y′C′ B C′ R 4:2:0 のみをサポートしていることから、 Y′C′ B

(0 10 - 0 25) Mazolin™ applications should begin prior to disease development and continue throughout the season on a 7- to 14-day schedule, following the resistance

(0 .10 - 0 .25) TETRABAN applications should begin prior to disease development and continue throughout the season on 7- to 21-day intervals following the resistance