Arria 10 デバイスのエンベデッド・メモリ 2 - Intel...SX 570 1,800 36,000 8,153 5,096...

22
Arria 10 デバイスのエンベデッド・メモリ 2 2014.08.18 A10-MEMORY 署名 フィードバック デバイス内のエンベデッド・メモリ・ブロックには柔軟性があり、デザイン要件に合った最適な 小規模メモリ・アレイおよび大規模メモリ・アレイを提供できるようデザインされています。  関連情報 Arria 10 Device Handbook: Known Issues >Arria 10 Device Handbook の章にて予定される更新をリストします。 エンベデッド・メモリのタイプ Arria 10 デバイスには以下の 2 タイプのメモリ・ブロックが含まれています。 20 Kb M20K ブロック専用メモリ・リソースのブロック。M20K ブロックはより大きなメモ リアレイに最適であると同時に、独立した多数のポートを提供 : > Arria 10 デバイスでは、 Resource Property Editor TimeQuest Timing Analyzer は、割り当 て可能な位置が >M20K_ X<number>_Y<number>_N<number>であっても、 M20K ブロックの位 置を >EC_X<number>_Y<number>_N<number>とレポートします。Embedded CellEC)は M20K ブロックのサブ・ロケーションです。 640 ビットのメモリ・ロジック・アレイ・ブロック(MLAB兼用ロジック・アレイ・ブロ ック(LAB)からコンフィギュレーションされるエンハンスト・メモリ・ブロック。MLAB は幅が広く深さがないメモリ・アレイのために理想的。MLAB はデジタル信号処理(DSP)ア プリケーション、幅が広く深さがない FIFO バッファ、およびフィルタのディレイ・ラインに 使用するシフト・レジスタの実装向けに最適化されている。各 MLAB 10 個のアダプティ ブ・ロジック・モジュール(ALM)から構成される。 Arria 10 デバイスではこれらの ALM を、各 MLAB につき 1 つの 32 x 20 シンプル・デュアル・ポート SRAM ブロックを提供する 10 個の 32 x 2 ブロックとしてコンフィギュレーションすることが可能 関連情報 エンベデッド・セル(ECエンベデッド・セルに関する情報  Arria 10 デバイスのエンベデッド・メモリ容量 © 2014 Altera Corporation. All rights reserved. ALTERA, ARRIA, CYCLONE, ENPIRION, MAX, MEGACORE, NIOS, QUARTUS and STRATIX words and logos are trademarks of Altera Corporation and registered in the U.S. Patent and Trademark Office and in other countries. All other words and logos identified as trademarks or service marks are the property of their respective holders as described at www.altera.com/common/legal.html. Altera warrants performance of its semiconductor products to current specifications in accordance with Altera's standard warranty, but reserves the right to make changes to any products and services at any time without notice. Altera assumes no responsibility or liability arising out of the application or use of any information, product, or service described herein except as expressly agreed to in writing by Altera. Altera customers are advised to obtain the latest version of device specifications before relying on any published information and before placing orders for products or services. ISO 9001:2008 www.altera.com 101 Innovation Drive, San Jose, CA 95134

Transcript of Arria 10 デバイスのエンベデッド・メモリ 2 - Intel...SX 570 1,800 36,000 8,153 5,096...

Arria 10デバイスのエンベデッド・メモリ 22014.08.18

A10-MEMORY 署名 フィードバック

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

エンベデッド・メモリのタイプArria 10デバイスには以下の 2タイプのメモリ・ブロックが含まれています。• 20 Kb M20Kブロック—専用メモリ・リソースのブロック。M20Kブロックはより大きなメモリアレイに最適であると同時に、独立した多数のポートを提供注: > Arria 10デバイスでは、Resource Property Editorと TimeQuest Timing Analyzerは、割り当て可能な位置が >M20K_ X<number>_Y<number>_N<number>であっても、M20Kブロックの位置を >EC_X<number>_Y<number>_N<number>とレポートします。Embedded Cell(EC)はM20Kブロックのサブ・ロケーションです。

 • 640ビットのメモリ・ロジック・アレイ・ブロック(MLAB)—兼用ロジック・アレイ・ブロック(LAB)からコンフィギュレーションされるエンハンスト・メモリ・ブロック。MLABは幅が広く深さがないメモリ・アレイのために理想的。MLABはデジタル信号処理(DSP)アプリケーション、幅が広く深さがない FIFOバッファ、およびフィルタのディレイ・ラインに使用するシフト・レジスタの実装向けに最適化されている。各MLABは 10個のアダプティブ・ロジック・モジュール(ALM)から構成される。 Arria 10デバイスではこれらの ALMを、各MLABにつき 1つの 32 x 20シンプル・デュアル・ポート SRAMブロックを提供する10個の 32 x 2ブロックとしてコンフィギュレーションすることが可能

関連情報エンベデッド・セル(EC)エンベデッド・セルに関する情報 

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

© 2014 Altera Corporation. All rights reserved. ALTERA, ARRIA, CYCLONE, ENPIRION, MAX, MEGACORE, NIOS, QUARTUS and STRATIX words and logos aretrademarks of Altera Corporation and registered in the U.S. Patent and Trademark Office and in other countries. All other words and logos identified astrademarks or service marks are the property of their respective holders as described at www.altera.com/common/legal.html. Altera warrants performanceof its semiconductor products to current specifications in accordance with Altera's standard warranty, but reserves the right to make changes to anyproducts and services at any time without notice. Altera assumes no responsibility or liability arising out of the application or use of any information,product, or service described herein except as expressly agreed to in writing by Altera. Altera customers are advised to obtain the latest version of devicespecifications before relying on any published information and before placing orders for products or services.

ISO9001:2008 ���

www.altera.com101 Innovation Drive, San Jose, CA 95134

表 2-1: Arria 10デバイスのエンベデッド・メモリ容量と分配

タイプ製品ライン

M20K MLAB

トータル RAMビット数(Kb)

ブロック数 RAMビット数(Kb)

ブロック数 RAMビット数(Kb)

Arria 10 GX

GX 160 440 8,800 1,680 1,050 9,850GX 220 588 11,760 2,932 1,833 13,593GX 270 750 15,000 3,922 2,451 17,451GX 320 891 17,820 4,582 2,864 20,684GX 480 1,438 28,760 7,046 4,404 33,164GX 570 1,800 36,000 8,153 5,096 41,096GX 660 2,133 42620 9,260 5,788 48,448GX 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 GTGT 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,850SX 220 588 11,760 2,932 1,833 13,593SX 270 750 15,000 3,922 2,451 17,451SX 320 891 17,820 4,582 2,864 20,684SX 480 1,438 28,760 7,046 4,404 33,164SX 570 1,800 36,000 8,153 5,096 41,096SX 660 2,133 42620 9,260 5,788 48,448

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

メモリ・ブロックの選択Quartus IIソフトウェアは、デザインの速度とサイズの制約を考慮して、ユーザー定義のメモリを自動的にメモリ・ブロック内に分割します。たとえば、Quartus IIソフトウェアは、デザインの性能を向上させるためにメモリを複数の使用可能なメモリ・ブロックに分割します。 メモリを手動で特定のブロック・サイズに割り当てるには、MegaWizard™ Plug-In ManagerでRAMメガファンクションを使用します。 

2-2 Arria 10デバイスのエンベデッド・メモリ・デザイン・ガイドラインA10-MEMORY

2014.08.18

Altera Corporation Arria 10デバイスのエンベデッド・メモリ

フィードバック

MLABでは、Quartus IIソフトウェアのエミュレーションを介してシングル・ポート SRAMを実装することができます。エミュレーションによって、追加で使用するロジック・リソースが最小限に抑えられます。MLABは兼用アーキテクチャであるため、ブロック内ではデータ入力レジスタ、出力レジスタ、および書き込みアドレス・レジスタのみが使用可能です。なお、MLABは ALMから読み取りアドレス・レジスタを取得します。

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

ガイドライン:Read-During-Write動作をカスタマイズする  デザイン要件に合うよう、メモリ・ブロックの Read-During-Write動作をカスタマイズします。

図 2-1: Read-During-Writeデータ・フロー 

次の図は、使用可能な 2つのタイプ(同一ポートと混合ポート)の Read-During-Write動作における違いを表しています。 

Port Adata in

Port Bdata in

Port Adata out

Port Bdata out

Mixed-portdata flowSame-portdata flow

FPGA Device

同一ポートの Read-During-Writeモード同一ポートの Read-During-Writeモードは、シングル・ポート RAMまたはトゥルー・デュアル・ポート RAMの同一ポートに適用します。

表 2-2: 同一ポート Read-During-Writeモードでのエンベデッド・メモリ・ブロックの出力モード 

次の表は、同一ポート Read-During-Writeモードのエンベデッド・メモリ・ブロックを選択する場合に使用可能な出力モードをリストしています。

出力モード メモリ・タイプ 説明

"new data"

(フロースルー)M20K 新しいデータが書き込まれるのと同じクロッ

ク・サイクルの立ち上がりエッジで、新しいデータが使用可能です。

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

A10-MEMORY2014.08.18 ガイドライン:外部の競合解決を実装する   2-3

Arria 10デバイスのエンベデッド・メモリ Altera Corporation

フィードバック

図 2-2: 同一ポートの 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

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

表 2-3: 混合ポート Read-During-Writeモードでの RAMの出力モード 

出力モード メモリ・タイプ 説明

"new data" MLAB 異なるポートへの Read-During-Write動作はMLABのレジスタ済み出力を生じさせ、データがMLABメモリに書き込まれた後、次の立ち上がりエッジで“new data”を反映します。このモードは、出力が登録済みの場合にのみ使用可能です。   

"old data" M20K、MLAB 異なるポートへの Read-During-Write動作により、RAM出力は特定のアドレスにある“old data”の値を反映します。MLABでは、このモードは出力が登録済みの場合にのみ使用可能です。

2-4 混合ポートの Read-During-Writeモード  A10-MEMORY

2014.08.18

Altera Corporation Arria 10デバイスのエンベデッド・メモリ

フィードバック

出力モード メモリ・タイプ 説明

"don't care" M20K、MLAB RAMは“don’t care”または“unknown”の値を出力します。 • M20Kメモリでは、Quartus IIソフトウェアは書き込み動作と読み取り動作間のタイミングを分析しません。 

• MLABでは、Quartus IIソフトウェアはデフォルトで書き込み動作と読み取り動作間のタイミングを分析します。この動作をディセーブルするには、Do not analyzethe timing between write and read operation.Metastability issues are prevented by never writing andreading at the same address at the same timeオプションをオンにします。

"constraineddon't care"

MLAB RAMは“don’t care”または“unknown”の値を出力します。Quartus IIソフトウェアはMLABで書き込み動作と読み取り動作間のタイミングを分析します。 

図 2-3: 混合ポートの 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

A10-MEMORY2014.08.18 混合ポートの Read-During-Writeモード   2-5

Arria 10デバイスのエンベデッド・メモリ Altera Corporation

フィードバック

図 2-4: 混合ポートの 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

A0 (old data) AAAA BBBB DDDD EEEEA1 (old data)

図 2-5: 混合ポートの 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 1101 10

AAAA BBBB CCCC DDDD EEEE FFFF

デュアル・ポート RAMモードでは、入力レジスタが同じクロックを有する場合に混合ポートのRead-During-Write動作がサポートされます。 関連情報内部メモリ(RAMおよび ROM)のユーザー・ガイド Read-During-Write動作を制御する RAMメガファンクションについての詳細を提供します。 

2-6 混合ポートの Read-During-Writeモード  A10-MEMORY

2014.08.18

Altera Corporation Arria 10デバイスのエンベデッド・メモリ

フィードバック

ガイドライン:パワーアップ状態およびメモリの初期化 初期パワーアップ値を評価するロジックをデザインしている場合、次の表にリストしているように、異なるタイプのメモリ・ブロックのパワーアップ状態を考慮します。

表 2-4: エンベデッド・メモリ・ブロックの初期パワーアップ値 

メモリ・タイプ 出力レジスタ パワーアップ値

MLABUsed ゼロ(クリア)

Bypassed メモリの内容を読み取る

M20KUsed ゼロ(クリア)

Bypassed ゼロ(クリア)

デフォルトでは、.mifを指定しない限り Quartus IIソフトウェアは Arria 10デバイスの RAMセルを 0に初期化します。  すべてのメモリ・ブロックは.mifによる初期化をサポートします。デザインでメモリをインスタンス化する際、Quartus IIソフトウェアで.mifファイルを生成し、RAMメガファンクションでそれらの使用を指定することができます。メモリが事前に初期化される(たとえば.mifを使用して)場合でも、出力がクリアされた状態でパワーアップします。 関連情報• 内部メモリ(RAMおよび ROM)のユーザー・ガイド

>.mifファイルについての詳細を提供します。• Quartus IIハンドブック

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

ガイドライン:クロッキングをコントロールして消費電力を削減する デザイン内の各メモリ・ブロックの AC消費電力を削減します。 • Arria 10メモリ・ブロックのクロック・イネーブルを使用して、各メモリ・ブロックのクロッキングを制御します。 

• 読み取りイネーブル信号を使用して、必要なときにのみ読み取り動作が実行されるようにします。Read-During-Writeが不要なデザインの場合、書き込み動作中またはメモリ動作が実行されていない期間に読み取りイネーブル信号をディアサートすることによって消費電力を削減することができます。 

• Quartus IIソフトウェアを使用して未使用のメモリ・ブロックを自動的に低消費電力モードにし、スタティック消費電力を削減します。

A10-MEMORY2014.08.18 ガイドライン:パワーアップ状態およびメモリの初期化  2-7

Arria 10デバイスのエンベデッド・メモリ Altera Corporation

フィードバック

エンベデッド・メモリ機能表 2-5: Arria 10デバイスのメモリ機能

次の表は、エンベデッド・メモリ・ブロックでサポートされる機能を示しています。機能 M20K MLAB

最大動作周波数 730 MHz 700 MHz

トータル RAMビット数(パリティ・ビットを含む)

20,480 640

パリティ・ビット サポートあり サポートありバイト・イネーブル サポートあり サポートありパック・モード サポートあり —

アドレス・クロック・イネーブル サポートあり サポートありシンプル・デュアル・ポートの異なるデータ幅

サポートあり —

トゥルー・デュアル・ポートの異なるデータ幅

サポートあり —

FIFOバッファの異なるデータ幅 サポートあり —

メモリ初期化ファイル(.mif) サポートあり サポートあり混合クロック・モード サポートあり サポートあり完全同期メモリ サポートあり サポートあり非同期メモリ — フロースルー読み取りメモリ動

作向け。 パワーアップ・ステート 出力ポートはクリア

されます。• 登録済みの出力ポート—クリア

• 未登録の出力ポート—メモリ内容の読み取り

非同期クリア 出力レジスタと出力ラッチ

出力レジスタと出力ラッチ

書き込み/読み取り動作のトリガ 立ち上がりクロック・エッジ

立ち上がりクロック・エッジ

同一ポートの Read-During-Write 出力ポートは"newdata"または"don'tcare"に設定されます。 

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

2-8 エンベデッド・メモリ機能A10-MEMORY

2014.08.18

Altera Corporation Arria 10デバイスのエンベデッド・メモリ

フィードバック

機能 M20K MLAB

混合ポートの Read-During-Write 出力ポートは"olddata"または"don'tcare"に設定されます。

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

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

Quartus IIソフトウェアを使用してソフト IPをサポートします。

関連情報内部メモリ(RAMおよび ROM)のユーザー・ガイドエンベデッド・メモリ機能についての詳細を提供します。

エンベデッド・メモリ・コンフィギュレーション

表 2-6: Arria 10デバイス向けにサポートされるエンベデット・メモリ・ブロックのコンフィギュレーション

次の表は、エンベデット・メモリ・ブロック向けにサポートされる最大のコンフィギュレーションをリストしています。この情報はシングル・ポート RAMおよび ROMモードのみに適用されます。

メモリ・ブロック 深度(ビット) プログラム可能な幅

MLAB32 x16、x18、または x20

64(1) x8、x9、x10

M20K

512 x40、x321K x20、x162K x10、×84K x5、x48K x2

16K x1

幅の異なるポートのコンフィギュレーション幅の異なるポートのコンフィギュレーションは、シンプル・デュアル・ポート RAMおよびトゥルー・デュアル・ポート RAMのメモリ・モードでサポートされます。 

(1) ソフトウェア・エミュレーションによって使用可能になり、追加のMLABブロックを消費します。

A10-MEMORY2014.08.18 エンベデッド・メモリ・コンフィギュレーション 2-9

Arria 10デバイスのエンベデッド・メモリ Altera Corporation

フィードバック

注: MLABは幅の異なるポートのコンフィギュレーションをサポートしません。 関連情報内部メモリ(RAMおよび ROM)のユーザー・ガイドデュアル・ポート混合幅のサポートについての詳細を提供します。 

M20Kブロックの幅の異なるコンフィギュレーション 次の表は、シンプル・デュアル・ポート RAMモードでのM20Kブロックの幅の異なるコンフィギュレーションをリストしています。

表 2-7: M20Kブロックの幅の異なるコンフィギュレーション(シンプル・デュアル・ポート RAMモード)

読み取りポート

書き込みポート

16K x 1 8K x 2 4K x 4 4K x 5 2K x 8 2K x 10 1K x 16 1K x 20 512 x 32 512 x 40

16K x 1

あり あり あり — あり — あり — あり —

8K x 2

あり あり あり — あり — あり — あり —

4K x 4

あり あり あり — あり — あり — あり —

4K x 5

— — — あり — あり — あり — あり

2K x 8

あり あり あり — あり — あり — あり —

2K x 10

— — — あり — あり — あり — あり

1K x 16

あり あり あり — あり — あり — あり —

1K x 20

— — — あり — あり — あり — あり

512 x 32

あり あり あり — あり — あり — あり —

512 x 40

— — — あり — あり — あり — あり

次の表は、トゥルー・デュアル・ポート・モードでのM20Kブロックの幅の異なるコンフィギュレーションをリストしています。

2-10 M20Kブロックの幅の異なるコンフィギュレーション A10-MEMORY

2014.08.18

Altera Corporation Arria 10デバイスのエンベデッド・メモリ

フィードバック

表 2-8: M20Kブロックの幅の異なるコンフィギュレーション(トゥルー・デュアル・ポート・モード)

ポート Aポート B

16K x 1 8K x 2 4K x 4 4K x 5 2K x 8 2K x 10 1K x 16 1K x 20

16K x 1

あり あり あり — あり — あり —

8K x 2 あり あり あり — あり — あり —4K x 4 あり あり あり — あり — あり —4K x 5 — — — あり — あり — あり2K x 8 あり あり あり — あり — あり —2K x 10

— — — あり — あり — あり

1K x 16

あり あり あり — あり — あり —

1K x 20

— — — あり — あり — あり

エンベデッド・メモリ・モード注意:

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

表 2-9: エンベデッド・メモリ・ブロックでサポートされるメモリ・モード 

次の表では、Arria 10のエンベデッド・メモリ・ブロックでサポートされるメモリ・モードをリストし、説明しています。

メモリ・モードM20Kサポート

MLABサポート 説明

シングル・ポート RAM

あり あり 読み取りまたは書き込み動作は、1度にどちらか 1回だけ実行することができます。書き込み動作中は、読み取りイネーブル・ポートを使用して RAMの出力ポートの動作を制御します。 • 直近のアクティブ読み取りイネーブル中に保持していた以前の値を継続して保持する—読み取りイネーブル・ポートを作成し、読み取りイネーブル・ポートがディアサートされた状態で書き込み動作を実行します。

• 同じアドレス位置で Read-During-Writeが実行される際、新しく書き込まれているデータ、アドレスにある古いデータ、または"Don't Care"の値を表示する—読み取りイネーブル信号を作成しないか、あるいは書き込み動作中に読み取りイネーブルを有効にします。 

A10-MEMORY2014.08.18 エンベデッド・メモリ・モード 2-11

Arria 10デバイスのエンベデッド・メモリ Altera Corporation

フィードバック

メモリ・モードM20Kサポート

MLABサポート 説明

シンプル・デュアル・ポートRAM

あり あり 書き込み動作がポート Aで実行され、読み取り動作がポート Bで実行される別のロケーションに、読み取りおよび書き込み動作を 1度ずつ、同時に実行することができます。 

トゥルー・デュアル・ポートRAM

あり — 2つの異なるクロック周波数で、2つのポート動作の任意の組み合わせ(2つの読み取り、2つの書き込み、または1つの読み取りと 1つの書き込み)を実行することができます。 

シフト・レジスタ

あり あり メモリ・ブロックをシフト・レジスタ・ブロックとして使用して、ロジック・セルと配線リソースを節約することができます。これは、有限インパルス応答(FIR)フィルタ、擬似ランダム数発生器、マルチチャネル・フィルタリング、自己相関関数および相互相関関数など、ローカル・データ・ストレージを必要とする DSPアプリケーションで有用です。従来、ローカル・データ・ストレージは標準的なフリップ・フロップで実装されていたため、大きなシフト・レジスタのために多数のロジック・セルを消費していました。入力データ幅(w)、タップの長さ(m)、およびタップの数(n)によってシフト・レジスタの容量(w × m × n)を決定します。より大きなシフト・レジスタを実装するためにメモリ・ブロックをカスケード接続することができます。

ROM あり あり ROMとしてメモリ・ブロックを使用することができます。 • .mifまたは.hexを使用してメモリ・ブロックの ROMの内容を初期化します。

• ROMのアドレス・ラインはM20Kブロックでレジスタされますが、MLABではレジスタされない場合があります。 

• 出力はレジスタすることも、しないことも可能です。  

• 出力レジスタは非同期クリア可能です。 • ROMの読み取り動作は、シングル・ポート RAMコンフィギュレーションにおける読み取り動作と同じです。

2-12 エンベデッド・メモリ・モードA10-MEMORY

2014.08.18

Altera Corporation Arria 10デバイスのエンベデッド・メモリ

フィードバック

メモリ・モードM20Kサポート

MLABサポート 説明

FIFO あり あり FIFOバッファとしてメモリ・ブロックを使用することができます。SCFIFOおよび DCFIFOメガファンクションを使用して、デザイン内にシングル・クロック非同期 FIFOバッファおよびデュアル・クロック非同期 FIFOバッファを実装します。小規模で浅い FIFOバッファを多数有するデザインでは、MLABは FIFOモードに最適です。ただし、MLABは混合幅の FIFOモードをサポートしません。

関連情報• 内部メモリ(RAMおよび ROM)のユーザー・ガイドメモリ・モードについての詳細を提供します。 

• RAMベース・シフト・レジスタ(ALTSHIFT_TAPS)メガファンクションのユーザー・ガイドシフト・レジスタ・モードの実装についての詳細を提供します。

• SCFIFOおよび DCFIFOメガファンクションのユーザー・ガイド  FIFOバッファの実装についての詳細を提供します。 

エンベデッド・メモリのクロッキング・モードこの項では、Arria 10メモリ・ブロックのクロッキング・モードについて説明します。注意: メモリ内容の破損を防ぐには、読み取りまたは書き込み動作中、セットアップに違反した

り、メモリ・ブロック入力レジスタのホールド・タイムに違反しないでください。 

各メモリ・モードのクロッキング・モード表 2-10: 各メモリ・モードでサポートされるメモリ・ブロックのクロッキング・モード

クロッキング・モード

メモリ・モード

シングル・ポート

シンプル・デュアル・ポー

トゥルー・デュアル・ポー

ROM FIFO

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

あり あり あり あり あり

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

— あり — — あり

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

あり あり あり あり —

独立クロック・モード — — あり あり —

A10-MEMORY2014.08.18 エンベデッド・メモリのクロッキング・モード 2-13

Arria 10デバイスのエンベデッド・メモリ Altera Corporation

フィードバック

注: MLABブロックの書き込みアドレス、バイト・イネーブル、およびデータ入力レジスタではクロック・イネーブル信号はサポートされません。

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

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

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

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

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

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

クロッキング・モードにおける独立クロック・イネーブル 独立クロック・イネーブルは、次のクロッキング・モードでサポートされます。• 読み取り/書き込みクロック・モード—読み取りおよび書き込みクロックの両方でサポートされます。 

• 独立クロック・モード—両ポートのレジスタでサポートされます。 

2-14 シングル・クロック・モードA10-MEMORY

2014.08.18

Altera Corporation Arria 10デバイスのエンベデッド・メモリ

フィードバック

消費電力を節約するには、クロック・イネーブルを使用して特定のレジスタのシャット・ダウンを制御することができます。関連情報2-7ページの ガイドライン:クロッキングをコントロールして消費電力を削減する 

メモリ・ブロックのパリティ・ビット表 2-11: エンベデッド・メモリ・ブロックにおけるパリティ・ビットのサポート

次の表は、メモリ・ブロックのパリティ・ビットのサポートについて説明しています。M20K MLAB

• パリティ・ビットは、データ幅 5、10、20、40(ビット 4、9、14、19、24、29、34、および 39)の各 4データ・ビットに関連付けられた 5番目のビットです。

• 非パリティ・データ幅では、読み取りまたは書き込み動作中、パリティ・ビットはスキップされます。

• パリティ機能はパリティ・ビット上で実行されません。

• パリティ・ビットは、各バイトに関連付けられている 9番目のビットです。

• 9番目のビットはパリティ・ビットを格納したり、追加のビットとして機能させることができます。

• パリティ機能はパリティ・ビット上で実行されません。

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

• 書き込みイネーブル(wren)信号は、バイト・イネーブル( byteena)信号と共に RAMブロック上の書き込み動作を制御します。デフォルトでは、byteena信号は High(イネーブル)となっており、書き込み動作は wren信号によってのみ制御されます。

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

• バイト・イネーブルは 1ホット形式で動作します。byteena信号の LSBはデータ・バスの LSBに対応します。

• バイト・イネーブルはアクティブ Highです。  

メモリ・ブロックにおけるバイト・イネーブル・コントロール表 2-12: x20データ幅の byteenaコントロール  

byteena[1:0] 書き込まれるデータ・ビット 

11 (デフォルト) [19:10] [9:0]

A10-MEMORY2014.08.18 メモリ・ブロックのパリティ・ビット 2-15

Arria 10デバイスのエンベデッド・メモリ Altera Corporation

フィードバック

byteena[1:0] 書き込まれるデータ・ビット 

10 [19:10] —

01 — [9:0]

表 2-13: 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]

注: M20Kブロックで ECC機能を使用する場合、バイト・イネーブル機能を使用することはできません。

データ・バイト出力 M20KブロックまたはMLABでは、書き込みサイクルの間にバイト・イネーブル・ビットがディアサートされると、対応するデータ・バイト出力が“don't care”値あるいは現在のデータとしてその位置に現れます。ユーザーは、Quartus IIソフトウェアを使用してM20KブロックまたはMLABでマスクされたバイトの出力値を制御することができます。 

2-16 データ・バイト出力 A10-MEMORY

2014.08.18

Altera Corporation Arria 10デバイスのエンベデッド・メモリ

フィードバック

RAMブロックの動作  図 2-6: バイト・イネーブル機能の波形

この図は、wren信号と byteena信号が RAMブロックの動作を制御する方法を図示しています。 

inclock

wren

address

data

byteena

contents at a0

contents at a1

contents at a2

contents at a3

contents at a4

don’t care: q (asynch)

current data: q (asynch)

an a0 a1 a2 a3 a4 a0

XXXXXXXX XXXXXXXXABCDEF12

ABCDEF12

XXXX XXXX1000 0100 0010 0001 1111

FFFFFFFF

FFFFFFFF

FFFFFFFF

FFFFFFFF

FFFFFFFF

FFFFFF12

FFFFFF12

FFFFEFFF

FFFFEFFF

FFCDFFFF

FFCDFFFF

ABFFFFFF

ABFFFFFF

ABFFFFFFdoutn

doutn

ABXXXXXX XXCDXXXX XXXXEFXX XXXXXX12 ABCDEF12

ABFFFFFFABCDEF12

メモリ・ブロックのパック・モード・サポートM20Kメモリ・ブロックはパック・モードをサポートします。パック・モード機能は、独立した 2つのシングル・ポート RAMブロックを 1つのメモリ・ブロックにパックします。Quartus IIソフトウェアは、物理 RAMブロックをトゥルー・デュアル・ポート・モードにし、アドレスのMSBを使用して 2つの論理 RAMブロックを区別することによって、必要に応じてパック・モードを自動的に実装します。なお、独立した各シングル・ポート RAMの容量は、ターゲット・ブロックの容量の半分以下でなければなりません。

メモリ・ブロックのアドレス・クロック・イネーブル・サポート エンベデッド・メモリ・ブロックはアドレス・クロック・イネーブルをサポートし、信号がイネーブルされている間、前のアドレス値を保持します(addressstall = 1)。メモリ・ブロックがデュアル・ポート・モードでコンフィギュレーションされると、各ポートは独自の独立したアドレス・クロック・イネーブルを有します。アドレス・クロック・イネーブル信号のデフォルト値は Low(ディセーブル)です。

A10-MEMORY2014.08.18 RAMブロックの動作   2-17

Arria 10デバイスのエンベデッド・メモリ Altera Corporation

フィードバック

図 2-7: アドレス・クロック・イネーブル

この図は、アドレス・クロック・イネーブルのブロック図を示しています。アドレス・クロック・イネーブルは、ポート名 addressstallで参照されます。 

address[0]

address[N]

addressstall

clock

10

address[0]register

address[N]register

address[N]

address[0]

10

図 2-8: 読み取りサイクル中のアドレス・クロック・イネーブルの波形  

この図は、読み取りサイクル時のアドレス・クロック・イネーブルの波形を示しています。  inclock

rden

rdaddress

q (synch)

a0 a1 a2 a3 a4 a5 a6

q (asynch)

an a0 a4 a5latched address(inside memory)

dout0 dout1 dout4

dout4 dout5

addressstall

a1

doutn-1 doutn

doutn dout0 dout1

2-18 メモリ・ブロックのアドレス・クロック・イネーブル・サポート A10-MEMORY

2014.08.18

Altera Corporation Arria 10デバイスのエンベデッド・メモリ

フィードバック

図 2-9: 書き込みサイクル中のアドレス・クロック・イネーブルの波形

この図は、書き込みサイクル時のアドレス・クロック・イネーブルの波形を示しています。

inclock

wren

wraddress a0 a1 a2 a3 a4 a5 a6

an a0 a4 a5latched address(inside memory)

addressstalla1

data 00 01 02 03 04 05 06

contents at a0

contents at a1

contents at a2

contents at a3

contents at a4

contents at a5

XX

04XX

00

0301XX 02

XX

XX

XX 05

メモリ・ブロックの非同期クリアM20Kメモリ・ブロックは、出力ラッチおよび出力レジスタの非同期クリアをサポートします。RAMが出力レジスタを使用していない場合でも、出力ラッチの非同期クリアを使用して RAM出力をクリアします。 このクリアは非同期信号であり、任意の時点で生成されます。クリア・パルスは、内部ロジックによって出力クロックの次の立ち上がりエッジまで拡張されます。クリアがアサートされると、出力がクリアされ、次の読み取りサイクルまでクリアされたままです。

A10-MEMORY2014.08.18 メモリ・ブロックの非同期クリア 2-19

Arria 10デバイスのエンベデッド・メモリ Altera Corporation

フィードバック

図 2-10: Arria 10デバイスにおける出力ラッチのクリア(非 ECCモード) 

clk

aclr

clr at latch

out D 2

rden

D 0 D 1

図 2-11: Arria 10デバイスにおける出力ラッチのクリア(ECCモード) 

clk

aclr

clr at latch

out D 2

rden

D 0 D 1D 0

cken

メモリ・ブロックの誤り訂正コード・サポート ECCは、メモリの出力時にデータのエラーを検出し、訂正することを可能にします。ECCは 32ビット・ワードでシングル・エラー訂正、ダブル隣接エラー訂正、およびトリプル隣接エラー検出を実行することができます。ただし、ECCは 4つ以上のエラーを検出することはできません。x32ビット幅シンプル・デュアル・ポート・モードのとき、M20Kブロックは ECCのビルトイン・サポートを有します。 

2-20 メモリ・ブロックの誤り訂正コード・サポート A10-MEMORY

2014.08.18

Altera Corporation Arria 10デバイスのエンベデッド・メモリ

フィードバック

• ECCが有効のとき、M20Kは非 ECCシンプル・デュアル・ポート・モードよりも低速で実行します。ただし、レイテンシの 1サイクルを犠牲にして非パイプライン ECCモードより高いパフォーマンスを達成するために、出力デコーダ前にオプションの ECCパイプライン・レジスタをイネーブルすることができます。  

• M20Kの ECCステータスは、2つの ECCステータス・フラグ信号、すなわち e(エラー)と ue

(訂正不可能なエラー)と通信されます。ステータス・フラグはメモリ・ブロックからの通常の出力の一部です。ECCが有効のとき、ECCステータス・フラグは 2つのパリティ・ビットを置き換えるため、これらのパリティ・ビットにアクセスすることはできません。

誤り訂正コードの真理値表 表 2-14: ECCステータス・フラグの真理値表 

e(エラー)

eccstatus[1]

ue(訂正不可能なエラー) 

eccstatus[0]

ステータス

0 0 エラーなし0 1 無効1 0 訂正可能なエラーが発生し、エラーは出

力で訂正されました。ただし、メモリ・アレイは更新されていません。 

1 1 訂正不可能なエラーが発生し、出力に訂正不可能なデータが表示されます。 

ECCを有効にする場合、• バイト・イネーブル機能を使用することはできません。• Read-During-Writeの古いデータ・モードはサポートされません。 

図 2-12: M20Kメモリの ECCのブロック図

Input Register

32Memory

ArrayECC

Decoder

Status FlagGeneration

OutputRegister

40 40

40

40

ECC Encoder 8

32

OptionalPipelineRegister

40

8

2

改訂履歴

A10-MEMORY2014.08.18 誤り訂正コードの真理値表  2-21

Arria 10デバイスのエンベデッド・メモリ Altera Corporation

フィードバック

日付 バージョン 変更内容

2014年 8月 2014.08.18 • ECCモードの出力ラッチのクリアに新しいタイミング図を追加。 

• Arria 10デバイスでは、Resource Property Editorと TimeQuestタイミング・アナライザがM20Kブロックの位置を EC_X<number>

_Y<number>_N<number>としてレポートすることを明確化するために注を追加。

• Arria 10 GX 660および Arria 10 SX 660のM20Kブロック内のRAMビット値を更新。

2013年 12月 2013.12.02 初版

2-22 改訂履歴A10-MEMORY

2014.08.18

Altera Corporation Arria 10デバイスのエンベデッド・メモリ

フィードバック