37
SmartFusion2 SoC FPGA MDDR コントローラ コントローラ コントローラ コントローラ 経由で 経由で 経由で 経由で DDR3 メモリとインターフェイス メモリとインターフェイス メモリとインターフェイス メモリとインターフェイス Libero SoC System Builder フローのチュートリアル

SmartFusion2 SoC FPGA の MDDR コントローラ 経 …...ステップ 1: Libero SoC プロジェクトの作成 8 Interfacing SmartFusion2 SoC FPGA with DDR3 Memory through MDDR

  • Upload
    others

  • View
    5

  • Download
    0

Embed Size (px)

Citation preview

Page 1: SmartFusion2 SoC FPGA の MDDR コントローラ 経 …...ステップ 1: Libero SoC プロジェクトの作成 8 Interfacing SmartFusion2 SoC FPGA with DDR3 Memory through MDDR

SmartFusion2 SoC FPGA のののの MDDR コントローラコントローラコントローラコントローラ 経由で経由で経由で経由で

DDR3 メモリとインターフェイスメモリとインターフェイスメモリとインターフェイスメモリとインターフェイス

Libero SoC の System Builder フローのチュートリアル

Page 2: SmartFusion2 SoC FPGA の MDDR コントローラ 経 …...ステップ 1: Libero SoC プロジェクトの作成 8 Interfacing SmartFusion2 SoC FPGA with DDR3 Memory through MDDR

Interfacing SmartFusion2 SoC FPGA with DDR3 Memory through MDDR Controller

Interfacing SmartFusion2 SoC FPGA with DDR3 Memory through MDDR Controller 2

目次目次目次目次

使用する略語使用する略語使用する略語使用する略語 ................................................................................................... 3

SmartFusion2 SoC FPGA のののの MDDR コントローラ経由でコントローラ経由でコントローラ経由でコントローラ経由で DDR3 メモリとイメモリとイメモリとイメモリとイ

ンターフェイスンターフェイスンターフェイスンターフェイス ................................................................................................ 5

はじめに ..................................................................................................................................... 5

チュートリアルの要件 ............................................................................................................... 5

デザインの概要 .......................................................................................................................... 6

デザイン・ステップ ................................................................................................................... 7

ステップ 1: Libero SoC プロジェクトの作成 ............................................................................ 7

ステップ 2: テストベンチの生成 ............................................................................................. 16

ステップ 3: BFM スクリプトを修正する ................................................................................. 27

ステップ 4: デザインをシミュレートする ............................................................................... 29

ステップ 5: シミュレーション結果の検証 ............................................................................... 32

終わりに ................................................................................................................................... 34

変更リスト変更リスト変更リスト変更リスト ..................................................................................................... 35

製品サポート製品サポート製品サポート製品サポート ................................................................................................. 36

カスタマー・サービス ............................................................................................................. 36

カスタマー・テクニカル・サポート・センター ..................................................................... 36

テクニカル・サポート ............................................................................................................... 36

ウェブサイト ............................................................................................................................ 36

カスタマー・テクニカル・サポート・センターへのコンタクト................................................ 36

ITAR テクニカル・サポート ...................................................................................................... 37

Page 3: SmartFusion2 SoC FPGA の MDDR コントローラ 経 …...ステップ 1: Libero SoC プロジェクトの作成 8 Interfacing SmartFusion2 SoC FPGA with DDR3 Memory through MDDR

Interfacing SmartFusion2 SoC FPGA with DDR3 Memory through MDDR Controller 3

使用する略語使用する略語使用する略語使用する略語

• cSoC – カスタマイザブル・システム・オン・チップ

• MSS – マイクロコントローラ・サブシステム

• DDR3 SDRAM – ダブル・データ・レート・シンクロナス・ダイナミック・ランダム・アクセス・メモリ

• CCC – クロック・コンディショニング回路

• MSS CCC – MSS コンポーネント内の CCC ブロック

• ファブリック CCC - FPGA ファブリック内にインスタンシエートされた CCC ブロック

• DDR – デュアル・データ・レート・メモリ・コントローラ

• MDDR – MSS コンポーネント内の DDR コントローラ

• BFM – バス・ファンクショナル・モデル

• FIC – MSS のファブリック・インターフェイス・コントローラ

Page 4: SmartFusion2 SoC FPGA の MDDR コントローラ 経 …...ステップ 1: Libero SoC プロジェクトの作成 8 Interfacing SmartFusion2 SoC FPGA with DDR3 Memory through MDDR
Page 5: SmartFusion2 SoC FPGA の MDDR コントローラ 経 …...ステップ 1: Libero SoC プロジェクトの作成 8 Interfacing SmartFusion2 SoC FPGA with DDR3 Memory through MDDR

Interfacing SmartFusion2 SoC FPGA with DDR3 Memory through MDDR Controller 5

SmartFusion2 SoC FPGA のののの MDDR コントローラコントローラコントローラコントローラ

経由経由経由経由でででで DDR3 メモリとメモリとメモリとメモリとインターフェイスインターフェイスインターフェイスインターフェイス

はじめに このチュートリアルでは、System Builder を使ってハードウェア・デザインを作成し、SmartFusion

®2 シス

テム・オン・チップ (SoC) フィールド・プログラマブル・ゲート・アレイ (FPGA) デバイス内にビルトイン

されたハード ASIC MDDR コントローラを介して外部 DDR3 メモリにアクセスする方法をデモします。さ

らにバス・ファンクショナル・モデル (BFM) シミュレーションをおこなってデザインの機能検証をおこな

う方法も示します。SmartFusion2 SoC FPGA は最多で 2 つの DDR コントローラを内蔵しています。これ

らはマイクロコントローラ・サブシステム DDR (MDDR) コントローラとファブリック DDR (FDDR) コン

トローラです。MDDR コントローラは SmartFusion2 SoC FPGA 内にあるハード ASIC ブロックです。

FDDR コントローラもハード ASIC ブロックであり、これを使って SmartFusion2 SoC FPGA ファブリック

への異なる DDR メモリ・スタンダードのインターフェイスを簡単に実現することができます。

Note: FDDR は MSS には属しません。

このデザインでは ARM®

Cortex™

-M3 プロセッサがマスタとなり MDDR コントローラ経由で外部 DDR3

SDRAM メモリとデータのやり取りする使い方にフォーカスします。MDDR コントローラは 64-bit AXI バス

を介して Cortex-M3 プロセッサとインターフェイスされます。

このチュートリアルを終えると、以下について習得することになります:

1. SmartFusion2 SoC FPGA を利用するための Libero® System-on-Chip (SoC) v11.1 のプロジェクト作成

方法

2. System Builder を使用して様々なハードウェア・ブロックとクロックキング・システムを構成・生成す

る方法

3. SmartDesign testbench Generator を使ってテストベンチを新たに生成する方法

4. MentorGraphics ModelSim® シミュレータの AMBA

® BFM シミュレーションを使って機能レベルのデザ

イン検証をおこなう方法

5. ModelSim の GUI を使って様々なデザインの信号を観察する方法

チュートリアルの要件

ソフトウェア要件ソフトウェア要件ソフトウェア要件ソフトウェア要件

このチュートリアルを実行するには以下のバージョンのソフトウェアと MSS コアがインストールされてい

る必要があります:

• Libero SoC v11.1.

• MSS v1.1.100

Page 6: SmartFusion2 SoC FPGA の MDDR コントローラ 経 …...ステップ 1: Libero SoC プロジェクトの作成 8 Interfacing SmartFusion2 SoC FPGA with DDR3 Memory through MDDR

デザインの概要

6 Interfacing SmartFusion2 SoC FPGA with DDR3 Memory through MDDR Controller

デザインの概要 このデザインでは SmartFusion2 SoC FPGA を使って外部スレーブ DDR3 メモリへのリード/ライト・アク

セスをデモします。SmartFusion2 SoC FPGA 内部では、Cortex-M3 プロセッサがマスタとして動作し、外

部スレーブ・メモリへのリード/ライト・トランザクションを実行します。Cortex-M3 プロセッサと外部

DDR3 メモリ間のこれらリード/ライト・トランザクションは、DDR ブリッジと MDDR メモリ・コントロ

ーラ (これらは MSS の一部です) とを通じて実行されます。

DDR ブリッジ・ブロックの基本的役割は、様々なマスタから MSS ブロック内の DDR コントローラへのリ

ード/ライト・リクエストを管理することです。DDR ブリッジは Cortex-M3 プロセッサのような AMBA ハ

イ・パフォーマンス・バス (AHB) ベースのマスタから、AXI ベースの MDDR コントローラへの接続もおこな

います。

MDDR コントローラは 64-bit AMBA AXI インターフェイスを介して DDR ブリッジと、そして

SmartFusion2 SoC FPGA の DDR I/O を経由して外部 DDR3 メモリとインターフェイスされます。MDDR

コントローラは AXI トランザクションから DDR3 メモリのリード/ライト・トランザクションへの変換を適

切なタイミング生成とともにおこないます。コントローラは DDR3 メモリに必要なライト/リード/リフレッ

シュ/プリチャージ動作のための適切なコマンド生成もおこないます。

MDDR には 2 つの 64-bit AXI インターフェイスがあり、ひとつは DDR インターフェイス専用で、もうひと

つは FPGA ファブリック専用です。MDDR を使って外部 DDR スレーブ・メモリとインターフェイスしたり、

あるいは DDR_FIC インターフェイスを経由して FPGA ファブリックとのインターフェイスに使うこともで

きます。DDR_FIC インターフェイスは FPGA ファブリックに対して、ひとつの 64-bit AXI インターフェイ

ス、ひとつの 32-bit AHB インターフェイス、あるいはふたつの 32-bit AHB インターフェイスのいずれかに

構成できます。

MDDR コントローラは外部 DDR メモリ仕様に適合するように構成しなければなりません。このチュートリ

アルでは DDR3 の仕様になります。MDDR のコンフィグレーションはファイルで定義でき、そのファイル

は System Builder を使ってインポートできます。コンフィグレーションは CoreSF2Config ソフト IP コアを

通しておこなわれ、この IP がコンフィグレーション・データの初期化プロセスのマスタになります。リセッ

ト時にこのソフト IP コア CoreSF2Config が FIC_2 アドバンスト・ペリフェラル・バス (APB) インターフェ

イス経由でデータをエンべデッド不揮発メモリ (eNVM) から DDR のコンフィグレーション・レジスタにコ

ピーします。システム全体の “リセット” メカニズムはソフト IP コア CoreSF2Reset で管理されます。

CoreSF2Config はレジスタ・コンフィグレーション・フェイズが完了するとそれを CoreSF2Reset に知ら

せます。MSS は APB インターフェイス (FIC_2) を通じ CoreSF2Config IP とインターフェイスされ、ユー

ザ指定のコンフィグレーション・ファイルに基づいて MDDR コントローラのレジスタを初期化します。詳細

は Libero SoC ソフトウェアの IP catalog 内の CoreSF2Config および CoreSF2Reset のハンドブックを参照

してください。

このチュートリアルの目的は MDDR と外部 DDR スレーブ・メモリとの MSS 経由のインターフェイスをデ

モすることです。ファブリック経由のインターフェイスは別のチュートリアルでデモされます。このデザイ

ンでは、System Builder を使ってシステム・クロックと MDDR ブロックを構成し、ファブリックを通過する

ことなく MDDR は MSS から DDR I/O を経由して外部 DDR3 メモリにアクセスします。

SmartFusion2 SoC FPGA デバイスにおいては、ファブリック内に 6 つのクロック・コンディショニング回

路 (ファブリック CCC) があり、MSS 内にはひとつの CCC (MSS_CCC) があります。各 CCC には関連す

る PLL がひとつあります。これら CCC ブロックと PLL によって、クロック周波数の逓倍、分周、位相シ

フト、clock-to-output や clock-to-input の遅延キャンセルなどのようなクロック調整機能が提供されます。

ファブリック内のファブリック CCC ブロックは、ファブリック内のグローバル・ルーティング・バッファ

を直接ドライブし、これで FPGA ファブリック全体にわたって非常に低スキューの配線ネットワークが提

供されます。このデザインでは System Builder を使って MSS CCC とファブリック CCC の両方を構成して、

MSS とファブリックそれぞれの多様なエレメント向けのクロックを生成します。

Figure 1 に、このデザインで使用される異なるブロックの、全体ブロック図を示します。

Page 7: SmartFusion2 SoC FPGA の MDDR コントローラ 経 …...ステップ 1: Libero SoC プロジェクトの作成 8 Interfacing SmartFusion2 SoC FPGA with DDR3 Memory through MDDR

デザイン・ステップ

Interfacing SmartFusion2 SoC FPGA with DDR3 Memory through MDDR Controller 7

Figure 1. トップ・レベルのブロック図

デザイン・ステップ

ステップ 1: Libero SoC プロジェクトの作成 1. Libero SoC v11.1 を立ち上げます

2. Project メニューから New Project を選択する。Figure 2 に従って情報を入力する。

• Name: DDR3_SmartFusion2_Tutorial

• Location: 適当なフォルダ位置を入力 (例, C:/Microsemi_prj)

• Preferred HDL Type: Verilog のままにしておく

• Family: SmartFusion2

• Die: M2S050T_ES

• Package: 896 FBGA

• Speed: -1

• Die Voltage: 1.2

• Operating Conditions: COM (デフォルト設定のまま)

• System Controller Suspend Mode (デフォルト設定のまま)

• PLL Supply Voltage (V): 2.5 (デフォルト設定のまま)

Page 8: SmartFusion2 SoC FPGA の MDDR コントローラ 経 …...ステップ 1: Libero SoC プロジェクトの作成 8 Interfacing SmartFusion2 SoC FPGA with DDR3 Memory through MDDR

ステップ 1: Libero SoC プロジェクトの作成

8 Interfacing SmartFusion2 SoC FPGA with DDR3 Memory through MDDR Controller

3. New Project ウインドウ中の Design Templates and Creators の項目で Use System Builder を選択

しておく。

4. New Project ウインドウの OK をクリックする。

Figure 2. “New Project”ダイアログ・ボックス

5. Figure 2 に示すように Use System Builder を選択しておくことにより, “Enter a name for your

system” ダイアログ・ボックスが Figure 3 に示すように表示されます。

Figure 3. System Builder のダイアログ・ボックス

6. MDDR_system とシステムの名称を入力し OK をクリックします。System Builder ダイアログ・ボッ

クスが Figure 4 のように表示されます。

Page 9: SmartFusion2 SoC FPGA の MDDR コントローラ 経 …...ステップ 1: Libero SoC プロジェクトの作成 8 Interfacing SmartFusion2 SoC FPGA with DDR3 Memory through MDDR

ステップ 1: Libero SoC プロジェクトの作成

Interfacing SmartFusion2 SoC FPGA with DDR3 Memory through MDDR Controller 9

Figure 4. SmartFusion2 SoC FPGA の System Builder コンフィグレータ

7. System Builder にて以下の設定を入力してください– Device Features ページにて:

• Will you be accessing external memory for the Cortex-M3: Yes

• Will you be accessing DDR memory through the fabric: No

• Will you be adding data storage clients to on-chip Flash Memory: No

• How many high-speed serial interfaces will you use? : チェックを外すチェックを外すチェックを外すチェックを外す

• Which Microcontroller Options will you be using? : チェックを外すチェックを外すチェックを外すチェックを外す

8. System Builder の NEXT をクリックしてください – Memory ページが Figure 5 に示すように表示され

ます。このチュートリアルの目的に従って DDR3 の外部メモリ・モデルを利用します。下記に示す通

りに選択・入力します。

• Double data rate memory を選択 (デフォルトで選択されています): DDR3

• Width: 32

• ECC: チェックを外します。

• DDR memory settling time (us): 200

外部メモリ・モデルを利用する場合、アクセスする前にメモリのイニシャライズのための待ち時間

(setting time)が必要となります。DDR3 メモリ・モデルを利用するので、少なくとも 200us のウェイト

が必要です。

Page 10: SmartFusion2 SoC FPGA の MDDR コントローラ 経 …...ステップ 1: Libero SoC プロジェクトの作成 8 Interfacing SmartFusion2 SoC FPGA with DDR3 Memory through MDDR

ステップ 1: Libero SoC プロジェクトの作成

10 Interfacing SmartFusion2 SoC FPGA with DDR3 Memory through MDDR Controller

DDR コントローラは外部の DDR3 メモリの仕様に合わせて構成する必要があります。このコンフィグレー

ションは、データ初期化プロセスのマスタである CoreSF2Config ソフト IP コアを通しておこないます。リ

セット時、ソフトコアの CoreSF2Config は、eNVM から DDR コントローラのコンフィグレーション・レジ

スタへ FIC_2 APB を介してデータをコピーします。

System Builder では DDR コントローラのレジスタ・コンフィグレーション・ファイルを取り込むことが可

能です。このデザインのためのコンフィグレーション・ファイル

DDR3_PHY_16_NO_ECC_BL8_INTER.txt がチュートリアルの圧縮ファイル内に提供されています。

• Figure 5 に示すように Import Register Configuration をクリックしてください。

• Import File ウインドウが表示されます。 提供されているコンフィグレーション・ファイル

DDR3_PHY_16_NO_ECC_BL8_INTER.txt を指定して取り込んでください。

Figure 5. System Builder コンフィグレータ – “Memory”ページ

9. NEXT をクリックしてください。 System Builder- Select Peripherals ページが Figure 6 に示すように

表示されます。

このチュートリアルでは、MSS ペリフェラルは利用しませんので Figure 6 に示すように MSS ペリフ

ェラルをクリアしてください。

MSS DDR を利用するので(System Builder の最初のページで設定済み)、Figure 6 と同様に

MSS_DDR_RAM が“MSS DDR FIC Subsystem”の下に表示されています。

Page 11: SmartFusion2 SoC FPGA の MDDR コントローラ 経 …...ステップ 1: Libero SoC プロジェクトの作成 8 Interfacing SmartFusion2 SoC FPGA with DDR3 Memory through MDDR

ステップ 1: Libero SoC プロジェクトの作成

Interfacing SmartFusion2 SoC FPGA with DDR3 Memory through MDDR Controller 11

Figure 6. System Builder コンフィグレータ – “Peripherals”ページ

10. NEXT をクリックすると System Builder- Clock Settings ページが表示されます(Figure 7 参照). 以下の

設定をおこなってください。

• System Clock: Set it to 100 MHz (デフォルト) そして Dedicated Input Pad をドロップダウン・リス

トより選択してください。

• M3_CLK: 100 MHz

• MDDR Clocks: 3 をドロップダウン・リストより選択することにより、MDDR_CLK 300 MHz に設定

してください。

Note: 青文字で示されているクロックの名称をクリックすることによりクロックのドライブ先のブロッ

クを見ることが可能です。例えば、MDDR_CLK をクリックすると Figure 7 のようになり、右側

の表示部分にクロックとそのドライブ先が表示されます。

Page 12: SmartFusion2 SoC FPGA の MDDR コントローラ 経 …...ステップ 1: Libero SoC プロジェクトの作成 8 Interfacing SmartFusion2 SoC FPGA with DDR3 Memory through MDDR

ステップ 1: Libero SoC プロジェクトの作成

12 Interfacing SmartFusion2 SoC FPGA with DDR3 Memory through MDDR Controller

Figure 7. System Builder コンフィグレータ – “Clock Settings”ページ

11. NEXT をクリックしてください。System Builder - Microcontroller Options ページが表示されます。

• デフォルト設定のままにしておきます。

12. NEXT をクリックしてください。System Builder - SECDED Options ページが表示されます。

• デフォルト設定のままにしておきます。

13. NEXT をクリックしてください。System Builder - Interrupts Options ページが表示されます。

• デフォルト設定のままにしておきます。

14. NEXT をクリックしてください。System Builder - Memory Map Options ページが表示されます。

• デフォルト設定のままにしておきます。

15. Finish をクリックしてください。

System Builder は、設定に基づきシステムを生成します。System Builder ブロックが生成されて、

Libero SoC プロジェクトに追加されます(Figure 8 参照)。

2 種類のソフトコア CoreSF2Reset と CoreSF2Config のインスタンス生成と接続が System Builder に

より自動的になされます。これらのブロックがどのように接続されているかは SmartDesign のキャン

バスで見ることが可能です。そして、この手法については、このチュートリアルの 14 ページ

「SmartDesign による System Builder コンポーネントの操作」で説明しています。

Page 13: SmartFusion2 SoC FPGA の MDDR コントローラ 経 …...ステップ 1: Libero SoC プロジェクトの作成 8 Interfacing SmartFusion2 SoC FPGA with DDR3 Memory through MDDR

ステップ 1: Libero SoC プロジェクトの作成

Interfacing SmartFusion2 SoC FPGA with DDR3 Memory through MDDR Controller 13

Figure 8. SmartFusion2 SoC FPGA の System Builder が生成したシステム

16. CORESF2RESET_0_Pins のグループを展開し、以下に従い接続します。 :

• EXT_RESET_IN_N を右クリックして Promote to Top Level を選択し TOP 階層へ接続してくださ

い。

これは外部からのアクティブ LOW のリセット入力です。TOP 階層へ接続の必要はありませんが、

このチュートリアルではシミュレーションのために TOP 階層へ接続し、DEVRST_N ピンへ接続し

ます。

• USER_FAB_RESET_IN_N を右クリックして Tie High を選択して High に固定します。

これはアクティブ LOW のリセット入力で、ファブリック内のユーザー・ロジックから入力されるも

のです。このチュートリアルではこの信号は使わないため High に固定しておきます。

• 出力ポート USER_FAB_RESET_N を右クリックして Mark Unused を選択し未使用のマークを付け

ます。

これはアクティブ LOW の信号で通常ファブリック内のユーザー・ロジックをリセットするために利

用します。このチュートリアルではファブリック内のロジックをリセットしないので未使用に設定し

ます。

17. SmartDesign > Generate Component をクリックするか Generate Component アイコンをクリッ

クすることにより、最終システムを生成します。また、キャンバスの上で右クリックし Generate

Component を選択しても同様の操作が可能です(Figure 9 参照)。

Page 14: SmartFusion2 SoC FPGA の MDDR コントローラ 経 …...ステップ 1: Libero SoC プロジェクトの作成 8 Interfacing SmartFusion2 SoC FPGA with DDR3 Memory through MDDR

ステップ 1: Libero SoC プロジェクトの作成

14 Interfacing SmartFusion2 SoC FPGA with DDR3 Memory through MDDR Controller

Figure 9. SmartFusion2 SoC FPGA 生成された最終システム

システム生成の成功後 Log ウインドウに “Info: 'MDDR_system_top' was generated. Open datasheet for

details”と表示されます。

SmartDesign によるによるによるによる System Builder コンポーネントの操作コンポーネントの操作コンポーネントの操作コンポーネントの操作

System Builder は生成時に MDDR システム全体に含まれているすべての必要なブロック (MSS、クロック、

CoreSF2Config、CoreSF2Reset) の設定、接続、生成を行います。

最終的に System Builder が生成したシステムを Figure 9 に示します。デザイン全体を構成している個々の

ブロックを開くことが可能です。System Builder で生成したブロックを SmartDesign を使用して開くこと

で、それができます。これにより、デザイン全体の内部をチェックすることが可能です。MDDR_system を

SmartDesign で開くには次の手順に従ってください:

1. Design Hierarchyウインドウで MDDR_system_top を展開してください。

2. MDDR_system を右クリックし Open as SmartDesign を選択してください (Figure 10 参照)。。。。

Page 15: SmartFusion2 SoC FPGA の MDDR コントローラ 経 …...ステップ 1: Libero SoC プロジェクトの作成 8 Interfacing SmartFusion2 SoC FPGA with DDR3 Memory through MDDR

ステップ 1: Libero SoC プロジェクトの作成

Interfacing SmartFusion2 SoC FPGA with DDR3 Memory through MDDR Controller 15

Figure 10. “Open as SmartDesign”のオプション

システムは SmartDesign のコンポーネントへ変換されます。そして Figure 11 のメッセージが表示されます。

Figure 11. System Builder から SmartDesign への変更が成功したメッセージ

3. OK をクリックしてください。 システム全体が SmartDesign のキャンバスへ表示されます(Figure 12 参

照)。

Page 16: SmartFusion2 SoC FPGA の MDDR コントローラ 経 …...ステップ 1: Libero SoC プロジェクトの作成 8 Interfacing SmartFusion2 SoC FPGA with DDR3 Memory through MDDR

ステップ 2: テストベンチの生成

16 Interfacing SmartFusion2 SoC FPGA with DDR3 Memory through MDDR Controller

Figure 12. SmartDesign で開かれた System Builder が生成したシステム

System Builder は、その各ページで選択した設定に従って、自動的に各ブロックをインスタンシエートし接

続していることに注目してください。

• SYSRESET_POR: CoreSF2Reset ブロックのためのパワーオン・リセット信号を生成します。

• CORESF2RESET_0 (ソフト・コア): システムに必要なすべてのリセット機構を管理します。

• FABOSC_0: CoreSF2Reset ブロックのためのクロック・ソースを生成します。

• CCC_0: MSS_CCC のリファレンスのためのクロック MCC_CLK_BASE を生成するのに利用します。

MSS_CCC は MSS の一部でリファレンス・クロックをファブリック CCC (CCC_0) から得ます。

• CORESF2CONFIG_0 (ソフト・コア): 指定したコンフィグレーション・ファイルに基づいて DDR コント

ローラ設定を管理する機能を有します。

ステップ 2: テストベンチの生成 このステップでは SmartDesign Testbench Generator を用いてテストベンチを作成します。

1. Libero SoC の IP Catalog 表示画面で Simulation Mode チェック・ボックスをチェックすることにより

SmartDesign のシミュレーション・コアが利用可能になります (Figure 13 参照) 。デバイス・アンダ

ー・テスト (DUT)をドライブするための 3 種類のコアが IP Catalog 表示画面に表示されます。:

Page 17: SmartFusion2 SoC FPGA の MDDR コントローラ 経 …...ステップ 1: Libero SoC プロジェクトの作成 8 Interfacing SmartFusion2 SoC FPGA with DDR3 Memory through MDDR

ステップ 2: テストベンチの生成

Interfacing SmartFusion2 SoC FPGA with DDR3 Memory through MDDR Controller 17

Clock & Management 内の

� Clock_Generator

� Pulse_Generator

� Reset_Generator

Note: もし、これらの表示がイタリック体であった場合、ダブル・クリックしてローカルの vault へダ

ウンロードします。

Figure 13. Libero IP Catalog 内のシミュレーション・コア

2. Libero の Design Flow ウインドウで Create SmartDesign Testbench をダブル・クリックしてくださ

い (参照 Figure 14) 。

Figure 14. SmartDesign テストベンチを開く

3. Create New SmartDesign Testbench ダイアログ・ボックスが表示されます (Figure 15 参照)。

4. Create New SmartDesign Testbench ダイアログ・ボックスで MDDR_system_testbench と入力し

OK をクリックしてください。

Figure 15. “Create New SmartDesign Testbench”のダイアログ・ボックス

Page 18: SmartFusion2 SoC FPGA の MDDR コントローラ 経 …...ステップ 1: Libero SoC プロジェクトの作成 8 Interfacing SmartFusion2 SoC FPGA with DDR3 Memory through MDDR

ステップ 2: テストベンチの生成

18 Interfacing SmartFusion2 SoC FPGA with DDR3 Memory through MDDR Controller

5. SmartDesign キャンバスが開かれて、 MDDR_system_top_0 コンポーネントがインスタンシエートさ

れています (参照 Figure 16)。

Figure 16. SmartDesign テストベンチ・キャンバス

6. IP Catalog から Clock_Generator と Reset_Generator をををを MDDR_system_testbench の SmartDesign

キャンバスへドラッグします。

7. SmartDesign キャンバス内の RESET_GEN_0 をダブル・クリックして Reset_Generator を開きます。

設定が以下の通りになっているかを確認してください (Figure 17 参照)。設定が良ければ OK をクリッ

クしてください:

• Level: ACTIVE LOW (デフォルト)

• Programmable Delay (ns): 1000

リセット・ジェネレーターはシミュレーション中のリセットパルスを供給します。

Figure 17. RESET_GEN のコンフィグレーション

8. Clock_Generator を SmartDesign キャンバス内の CLK_GEN_0 をダブル・クリックして開きます 。

設定が以下の通りになっているか確認してください(Figure 18 参照)。設定が良ければ OK をクリック

してください。:

• Clock Period (ps): 10000

• Duty Cycle (%): 50

システム・クロックを 100MHz で設定したので (Figure 7 参照)、クロック・ジェネレータの周期設定が

10000ps となり 100MHz のクロックを生成しています。

Page 19: SmartFusion2 SoC FPGA の MDDR コントローラ 経 …...ステップ 1: Libero SoC プロジェクトの作成 8 Interfacing SmartFusion2 SoC FPGA with DDR3 Memory through MDDR

ステップ 2: テストベンチの生成

Interfacing SmartFusion2 SoC FPGA with DDR3 Memory through MDDR Controller 19

Figure 18. CLK_GEN のコンフィグレーション

9. DDR3 のモデルを Libero SoC プロジェクトにインポートし、次にこれら DDR3 モデルを以前のステッ

プで生成したテストベンチ内にインスタンシエートします。DDR3 モデルはスティミュラス・ファイル

として下記の手順でインポートする必要があります。:

• File > Import Files>HDL Stimulus Files. を選択して Import Files ダイアログ・ボックスを開きます。

• ファイル・タイプは HDL Stimulus Files (*.vhd *.v)を選択します(Figure 19 参照)。

• 提供されている ddr3.v と ddr3_parameters.v ファイルを選択し開く開く開く開くをクリックします(Figure 19 参

照)。

Figure 19. DDR3 モデルをスティミュラス・ファイルとしてインポート

Files タブの Stimulus フォルダの下をチェックし、ファイルがスティミュラス・ファイルとして正しく

インポートされていることを確認してください (Figure 20 参照)。

Page 20: SmartFusion2 SoC FPGA の MDDR コントローラ 経 …...ステップ 1: Libero SoC プロジェクトの作成 8 Interfacing SmartFusion2 SoC FPGA with DDR3 Memory through MDDR

ステップ 2: テストベンチの生成

20 Interfacing SmartFusion2 SoC FPGA with DDR3 Memory through MDDR Controller

Figure 20. “Stimulus”フォルダにインポートされた DDR3

ファイルがスティミュラスとしてインポートされている場合、Stimulus Hierarchyウインドウにも表

示されます(Figure 21 参照)

Figure 21. “Stimulus Hierarchy”ウインドウ

10. Stimulus Hierarchy ウインドウから ddr3 ファイルを MDDR_system_testbench キャンバスへドラッ

グします。基本的にここでやっていることは、DDR3 モデルをテストベンチにインスタンシエートして

外部 DDR3 メモリをエミュレートすることです。マスタとしての Cortex-M3 プロセッサを使って、

MSS 内部の MDDR コントローラを経由して DDR3 のリード/ライトをシミュレーションします。

DDR3 をインスタンスするとキャンバスの画面は Figure 22 のようになります。

Page 21: SmartFusion2 SoC FPGA の MDDR コントローラ 経 …...ステップ 1: Libero SoC プロジェクトの作成 8 Interfacing SmartFusion2 SoC FPGA with DDR3 Memory through MDDR

ステップ 2: テストベンチの生成

Interfacing SmartFusion2 SoC FPGA with DDR3 Memory through MDDR Controller 21

Figure 22. DDR3 モデルをインスタンシエートしたシステム・テストベンチ・キャンバス

次のステップでテストベンチ・キャンバス上のすべてのブロックを接続します。接続の方法は 3 種の異な

る方法があります。

1つ目の方法は Connection Mode を利用する方法です。Connection Mode を利用するには、SmartDesign

ツール・バーの Connection Mode をクリックします (Figure 23 参照)。

カーソルは普通の矢印の形から Connection Mode アイコンの形へ変化します。このモードで接続するには

接続したいピンをクリックし、もう一方の接続したいピンへドラッグ&ドロップします。

Figure 23. “Connection Mode”オプションをイネーブル

2 つ目の方法は、接続したいピンを複数選択し、右クリックし Connect を選択する方法です。接続するた

めに複数のピンを選択するには、CTRL キーを押しながら複数のピンを選択します。そして、入力ソース・

ピンを右クリックし Connect を選択するとすべてのピンが相互に接続されます。同じ方法で入力ソース・

ピンを右クリックし Disconnect を選択すると接続されている信号が切り離されます。

3 つ目の方法は、QuickConnect を使う方法です。この方法を使うため SmartDesign ツール・バーの

QuickConnect をクリックしてください (Figure 24 参照)。

Page 22: SmartFusion2 SoC FPGA の MDDR コントローラ 経 …...ステップ 1: Libero SoC プロジェクトの作成 8 Interfacing SmartFusion2 SoC FPGA with DDR3 Memory through MDDR

ステップ 2: テストベンチの生成

22 Interfacing SmartFusion2 SoC FPGA with DDR3 Memory through MDDR Controller

Figure 24. “QuickConnect”モード・オプションをイネーブル

QuickConnect モードを選択すると QuickConnect ダイアログ・ボックスが現れます (Figure 25 参照)。例え

ば、 RESET_GEN_0 インスタンス上の RESET と、 MDDR_system_top_0 上の DEVRST_N と

EXT_RESET_IN_N とを接続するには、これらのピンを選択して右クリックし Connect を選択します

(Figure 25 参照)。

Page 23: SmartFusion2 SoC FPGA の MDDR コントローラ 経 …...ステップ 1: Libero SoC プロジェクトの作成 8 Interfacing SmartFusion2 SoC FPGA with DDR3 Memory through MDDR

ステップ 2: テストベンチの生成

Interfacing SmartFusion2 SoC FPGA with DDR3 Memory through MDDR Controller 23

Figure 25. “QuickConnect”ダイアログ・ボックスを使ってピンを接続

11. 前述のいずれかの接続方法を使って、以下の SmartDesign キャンバス内の RESET_GEN_0 及び

CLK_GN_0 と MDDR_system_top_0 との接続を行ってください:

• RESET_GEN_0: RESET から MDDR_system_top_0: DEVRST_N へ接続

• RESET_GEN_0: RESET から MDDR_system_top_0: EX_RESET_IN_N へ接続

• From CLK_GEN_0:CLK から MDDR_system_top_0:CLK0_PAD へ接続

12. MDDR_system_top_0 の MDDR_PADS を展開してください。前述のいずれかの方法を使って、以下

の SmartDesign キャンバス内の MDDR_system_top_0 と ddr3_0 との接続を行ってください:

• MDDR_system_top_0 ブロックの MDDR_DQS_TMATCH_0_IN と MDDR_DQS_TMATCH_0_OUT

を接続してください。

• MDDR_system_top_0 ブロックの MDDR_DQS_TMATCH_1_IN と MDDR_DQS_TMATCH_1_OUT

を接続してください。

• 残りのピンを Table 1. · に従って接続してください。

Page 24: SmartFusion2 SoC FPGA の MDDR コントローラ 経 …...ステップ 1: Libero SoC プロジェクトの作成 8 Interfacing SmartFusion2 SoC FPGA with DDR3 Memory through MDDR

ステップ 2: テストベンチの生成

24 Interfacing SmartFusion2 SoC FPGA with DDR3 Memory through MDDR Controller

Table 1. · DDR3 ピンの接続

Style Short-cut

MDDR_CAS_N cas_n

MDDR_CKE cke

MDDR_CLK ck

MDDR_CLK_N ck_n

MDDR_CS_N cs_n

MDDR_ODT odt

MDDR_RAS_N ras_n

MDDR_RESET_N rst_n

MDDR_WE_N we_n

MDDR_BA[2:0] ba[2:0]

MDDR_system_top_0 と ddr3_0 との間でバス幅のマッチしないものがあります。これらのバスを接続する

ためには MDDR_system_top_0 と ddr3_0 で等価なバス幅にするためにスライスという操作をおこなう必要

があります。

例えば、MDDR_ADDR [15:0]は 16bit バスで、一方 ddr3_0 の addr[13:0]は 14bit バスです。これらを接続す

るために、MDDR_ADDR[15:0]を 2 つのバスへスライスする必要があります。一つのバスは MDDR_ADDR

[13:0]でもう一方のバスは MDDR_ADDR [15:14]です。スライスを実行した後で MDDR_ADDR [13:0] と

addr[13:0]を接続し、MDDR_ADDR[15:14]を Unused に設定します。

バスのスライスは以下の手順に従いますバスのスライスは以下の手順に従いますバスのスライスは以下の手順に従いますバスのスライスは以下の手順に従います:

• 対象のバスを選択の上で右クリックし Edit Slice を選択します (Figure 27 参照) のようにダイアログ・ボ

ックスが表示されます。

Figure 26. バス・スライスの作成

• スライスを追加するために アイコンをクリックしてください (Figure 27 の赤丸箇所) 。ここでは、2 つ

のスライスが必要なので アイコンは 2 回クリックします。追加されたスライスを Figure 27 に示すよ

うに設定します。

Page 25: SmartFusion2 SoC FPGA の MDDR コントローラ 経 …...ステップ 1: Libero SoC プロジェクトの作成 8 Interfacing SmartFusion2 SoC FPGA with DDR3 Memory through MDDR

ステップ 2: テストベンチの生成

Interfacing SmartFusion2 SoC FPGA with DDR3 Memory through MDDR Controller 25

Figure 27. “Edit Slices”ダイアログ・ボックス

• OK をクリックしてください。作成した MDDR_ADDR バスの 2 つのスライスが表示されます (Figure 28

参照)。

Figure 28. MDDR_ADDR の作成されたスライス

13. スライスの手順を繰り返しスライスを作成してください。次に Table 2. · に従って接続と設定をおこな

ってください。:

• 未使用に設定するには、ピンを選択し右クリックし Mark Unused を選択します。

• Low に接続するには, ピンを選択し右クリックし Tie Low を選択します。

Page 26: SmartFusion2 SoC FPGA の MDDR コントローラ 経 …...ステップ 1: Libero SoC プロジェクトの作成 8 Interfacing SmartFusion2 SoC FPGA with DDR3 Memory through MDDR

ステップ 2: テストベンチの生成

26 Interfacing SmartFusion2 SoC FPGA with DDR3 Memory through MDDR Controller

Table 2. · DDR3 バス・ピンの接続

バスバスバスバス 接続接続接続接続

MDDR_DM_RDQS[1:0] dm_tdqs[1:0]

MDDR_DM_RDQS[3:2] Tie Low

MDDR_DQ[15:0] dq[15:0]

MDDR_DQ[31:16] Tie Low

MDDR_DQS[1:0] dqs[1:0]

MDDR_DQS[3:2] Tie Low

MDDR_DQS_N[1:0] dqs_n[1:0]

MDDR_DQS_N[3:2] Tie Low

MDDR_ADDR[13:0] Addr[13:0]

MDDR_ADDR[15:14] Mark Unused

14. ddr3_0 のピン tdqs_n[1:0] を右クリックし Promote to Top Level を選択します。

すべての接続が完了するとキャンバスは Figure 29 のように表示されます。

Figure 29. 完全に接続された MDDR システム

15. SmartDesign > Generate Component をクリックするか SmartDesign ツールバー上の Generate

Component アイコン をクリックして最終的なシステム・テストベンチを生成してください. なお、

この操作は、キャンバス上で右クリックし Generate Component を選択してもおこなえます。生成に

成功すると Log ウインドウに “Info: 'MDDR_system_testbench' was successfully generated” と表示さ

れます。

16. テストベンチ生成後、このテストベンチをアクティブに設定する必要があります。この手順により指定

したテストベンチがシミュレーションに利用されます。テストベンチをアクティブに設定するには以下

の手順によります:

1. Stimulus Hierarchyタブをクリックします。

2. MDDR_system_testbench を右クリックし Set as active stimulus を選択します (Figure 30

参照)。

Page 27: SmartFusion2 SoC FPGA の MDDR コントローラ 経 …...ステップ 1: Libero SoC プロジェクトの作成 8 Interfacing SmartFusion2 SoC FPGA with DDR3 Memory through MDDR

ステップ 3: BFM スクリプトを修正する

Interfacing SmartFusion2 SoC FPGA with DDR3 Memory through MDDR Controller 27

Figure 30. テストベンチをアクティブに設定

ステップ 3: BFM スクリプトを修正する このステップでは、SmartDesign により生成された BMF スクリプト (user.bfm)を修正します。BFM スクリ

プト・ファイルは Cortex-M3 プロセッサが MDDR を介して DDR3 モデルに対してライト/リードするシミ

ュレーションをおこなうためのものです。

1. user.bfm ファイルを開いてください。 user.bfm ファイルを開くために Files tab をクリックし

Simulation フォルダを展開してください。user.bfm ファイルをダブル・クリックすると開けます

( Figure 31 参照)。

Figure 31. SmartDesign が生成した user.bfm ファイル

2. user.bfm を修正して下記のライト / リードの bfm コマンドを追加してください。そして Save をクリッ

クしてください。

Page 28: SmartFusion2 SoC FPGA の MDDR コントローラ 経 …...ステップ 1: Libero SoC プロジェクトの作成 8 Interfacing SmartFusion2 SoC FPGA with DDR3 Memory through MDDR

ステップ 3: BFM スクリプトを修正する

28 Interfacing SmartFusion2 SoC FPGA with DDR3 Memory through MDDR Controller

# add your BFM commands below:

# DDR memory map

a. memmap M_MDDR0_SPACE_0 0xA0000000;

print "TEST STARTS";

b.#write different values to different location

write w M_MDDR0_SPACE_0 0x0000 0xA1B2C3D4;

write w M_MDDR0_SPACE_0 0x0004 0x10100101;

write w M_MDDR0_SPACE_0 0x0008 0xD7D7E1E1;

write w M_MDDR0_SPACE_0 0x000C 0xA5DEF6E7;

write w M_MDDR0_SPACE_0 0x0010 0xABCDEF01;

write w M_MDDR0_SPACE_0 0x0014 0xCCBBAADD;

c. #read check what you wrote in step#b above

readcheck w M_MDDR0_SPACE_0 0x0000 0xA1B2C3D4;

readcheck w M_MDDR0_SPACE_0 0x0004 0x10100101;

readcheck w M_MDDR0_SPACE_0 0x0008 0xD7D7E1E1;

readcheck w M_MDDR0_SPACE_0 0x000C 0xA5DEF6E7;

readcheck w M_MDDR0_SPACE_0 0x0010 0xABCDEF01;

readcheck w M_MDDR0_SPACE_0 0x0014 0xCCBBAADD;

print "TEST ENDS";

bfm に追加した各ステップにつき説明します

• ステップステップステップステップ a): このステップで MDDR の配置されているベース・アドレスを指定します。このケースでは、

0xA0000000 です。

• ステップステップステップステップ b): このステップでは異なる値を異なる場所へ書き込みます。

write w M_MDDR0_SPACE_0 0x0000 0xA1B2C3D4;

• ステップステップステップステップ c): このステップで書き込んだデータのチェックを行います。最終的に コマンド追加後の

user.bfm は Figure 32 のようになります。

Word 単位の書き込み

ベース・アドレス指定 ベース・アドレスからのオフセット

書き込むデータ

Page 29: SmartFusion2 SoC FPGA の MDDR コントローラ 経 …...ステップ 1: Libero SoC プロジェクトの作成 8 Interfacing SmartFusion2 SoC FPGA with DDR3 Memory through MDDR

ステップ 4: デザインをシミュレートする

Interfacing SmartFusion2 SoC FPGA with DDR3 Memory through MDDR Controller 29

Figure 32. コマンド追加後の user.bfm

ステップ 4: デザインをシミュレートする 1. このステップでは、デザインのシミュレーションをおこなうために SmartDesign のテストベンチと

BFM スクリプト・ファイルを使用します。Libero SoC のプロジェクト・セッティングを開いてくださ

い (Project > Project Settings)。

2. Project Settings ウインドウの Simulation Options の下にある Do File を選択してください。

Simulation runtime を 270us に変更してください (Figure 33 参照)。

Figure 33. Project Setting – Do ファイルのシミュレーション・ランタイムの設定

Page 30: SmartFusion2 SoC FPGA の MDDR コントローラ 経 …...ステップ 1: Libero SoC プロジェクトの作成 8 Interfacing SmartFusion2 SoC FPGA with DDR3 Memory through MDDR

ステップ 4: デザインをシミュレートする

30 Interfacing SmartFusion2 SoC FPGA with DDR3 Memory through MDDR Controller

3. Simulation Options の下にある Waveforms を選択してください:

• Include DO file チェック・ボックスをチェックしてください (Figure 34 参照)。配布されているソー

ス・ファイルを解凍した場所を参照して MDDR_wave.do を選択してください。このファイルにはす

でに結果の確認をするために必要な信号が選択されています。

• Log all signals in the design チェック・ボックスをチェックしてください。

• Close をクリックして Project settings ダイアログ・ボックスを閉じてください。

• 変更を保存するプロンプトが表示されたら Save を選択します

Figure 34. Project Setting – MDDR_wave.do ファイル位置を指定

VHDL のための注意:

もし、VHDL を設計に使用している場合、DDR3 メモリ・モデルは Verilog を用いているため、シミュレー

ションには Modelsim AE の代わりに ModelSim の完全版 (例えば ModelSim SE) を必要とします。

ModelSim AE は言語混載シミュレーションをサポートしていません。VHDL デザインでシミュレーション

するには次のステップを実行してください:

1. プリ・コンパイルされた VHDL シミュレーション・ライブラリ・フォルダ smartfusion2 を Libero

SoC インストール・エリア (<Libero install> \Designer\lib\modelsim\precompiled\vhdl\) から、ディスク

上の異なるフォルダへコピーしてください (例えば、E:\Microsemi_prj\)。

2. 新しい場所の smartfusion2 フォルダの読み取り専用属性を削除します。

Note: ステップ 1 と 2 を必要とする理由は、ModelSim の完全版はプリ・コンパイルされたライブラリ

のリフレッシュを必要とするからです。これらのステップにより、ModelSim の完全版によるプ

リ・コンパイルされたライブラリのリフレッシュが可能になり、さらに Libero SoC と同時にイ

ンストールされるオリジナルのプリ・コンパイル・ライブラリが変更されないようにもします。

3. Project Settings ウインドウで下記の操作をして、自動的にデザインを最適化するオプションを無効化

してシミュレーションをおこない (-novopt を指定)、そして新しいプリ・コンパイルされたライブラリ

のロケーションを指定します (例えば、E:\Microsemi_prj\smartfusion2):

(a) Project Settings を Project メニューから選択します。

(b) Additional options のフィールドに–novopt を記述します (Figure 35)。–novopt オプションは実行

時の自動的なデザイン最適化を無効化します。

Page 31: SmartFusion2 SoC FPGA の MDDR コントローラ 経 …...ステップ 1: Libero SoC プロジェクトの作成 8 Interfacing SmartFusion2 SoC FPGA with DDR3 Memory through MDDR

ステップ 4: デザインをシミュレートする

Interfacing SmartFusion2 SoC FPGA with DDR3 Memory through MDDR Controller 31

Figure 35. Project Settings – “–novopt” シミュレーション・オプションを指定

(c) Simulation Libraries の下の SmartFusion2 を選択してください。

I. Use default library path オプションのチェック・ボックスをクリアしてください。

II. Library path に先ほどコピーしたプリ・コンパイルされたライブラリのロケーションを入力

します (例えば, E:/Microsemi_prj/smartfusion2), Figure 36 参照.

Figure 36. Project Settings – プリ・コンパイルされたライブラリのパスを指定

(d) Save をクリックしてプロジェクト設定を保存してください。そして、Close をクリックして

Project Settings ウインドウを閉じてください。

Page 32: SmartFusion2 SoC FPGA の MDDR コントローラ 経 …...ステップ 1: Libero SoC プロジェクトの作成 8 Interfacing SmartFusion2 SoC FPGA with DDR3 Memory through MDDR

ステップ 5: シミュレーション結果の検証

32 Interfacing SmartFusion2 SoC FPGA with DDR3 Memory through MDDR Controller

4. Modelsim は、Design Flow ウインドウ内の Verify Pre-Synthesized Design を展開してください

(Figure 37 参照)。 Simulate をダブル・クリックして ModelSim を GUI モードで起動してください。

Figure 37. プリ・シンセシス・シミュレーションを開始プリ・シンセシス・シミュレーションを開始プリ・シンセシス・シミュレーションを開始プリ・シンセシス・シミュレーションを開始

ステップ 5: シミュレーション結果の検証 1. Modelsim は、Project Settings ウインドウで指定した 270us の間、実行されます。コンフィグレーショ

ン・レジスタにコンフィグレーション・オプションの特定セットを書き込むことで MDDR の初期化プ

ロセスが実施されます。いったん設定値がレジスタへ書き込まれると DDR3 メモリへの書き込みが可

能となります。その結果は readcheck コマンドによりチェックされます。外部の DDR3 メモリは使用

前に初期化されなければなりません。これには System Builder の Memory ページで指定した 200us 要

します (Figure 5 参照)。これで外部 DDR のリード / ライトが可能になります。

2. ModelSim の transcript ウインドウに、BFM コマンドが表示され、BFM シミュレーションがエラーなく

完了したことが表示されます (Figure 38 参照)。ウインドウをスクロールして異なるコマンドの実行結

果を見てください。以前に user.bfm ファイルに入力した BFM スクリプトの中で、readcheck コマン

ドでデータをリードし、そのリード・データが readcheck コマンドで与えた値と一致しているかベリフ

ァイしています。もし、一致しなければシミュレーションでエラーが表示されます。

Page 33: SmartFusion2 SoC FPGA の MDDR コントローラ 経 …...ステップ 1: Libero SoC プロジェクトの作成 8 Interfacing SmartFusion2 SoC FPGA with DDR3 Memory through MDDR

ステップ 5: シミュレーション結果の検証

Interfacing SmartFusion2 SoC FPGA with DDR3 Memory through MDDR Controller 33

Figure 38. ModelSim BFM シミュレーションの Transcript 結果

シミュレーションが完全に完了すると Wave ウインドウをアンドックしてください。Wave ウインドウは

Dock/Undock アイコンをクリックすることでアンドック可能です(Figure 39 参照)。

Figure 39. ModelSim の Wave ウインドウのドックとアンドック

3. Wave ウインドウのアンドックが完了したら, Zoom Full アイコンをクリックしてください (Figure 40

参照)。すべての波形がウインドウ内に表示されます。

Figure 40. “Zoom Full”オプション

4. カーソルを Wave ウインドウの 263.15 ps 近辺に合わせて Zoom In on the Active Cursor アイコンを

クリックします (Figure 41 参照)。これによりカーソル近辺にズーム・インします。 これにより表示さ

れる時間は、外部の DDR3 へのライトとリードバックをおこなっている時間の近辺となります (Figure

42 、 Figure 43 参照)。

Figure 41. アクティブ・カーソル・ボタン上でズーム・イン

5. Figure 42 と Figure 43 に外部の DDR3 へのライトとリードバックを行っている波形を示してあります。

Page 34: SmartFusion2 SoC FPGA の MDDR コントローラ 経 …...ステップ 1: Libero SoC プロジェクトの作成 8 Interfacing SmartFusion2 SoC FPGA with DDR3 Memory through MDDR

終わりに

34 Interfacing SmartFusion2 SoC FPGA with DDR3 Memory through MDDR Controller

Figure 42. ライト/リード・データ

Figure 43. ライト/リード・データの拡大表示

これでこのチュートリアルは終了です。

6. File > Quit を選択して ModelSim シミュレータを終了させてください。

終わりに このチュートリアルでは、Libero SoC の新しいプロジェクトを作成しました。System Builder を使って、

マスタである Cortex-M3 が MDDR コントローラを介して外部の DDR3 SDRAM メモリへアクセスする

MDDR システムを構成しました。 テストベンチの作成には SmartDesign Tesstbench Generator を使いま

した。最終的なブロック間接続は、SmartDesign ツールを使いおこないました。

最後に AMBA BFM シミュレーションを使って、デザインの検証を ModelSim 上でおこないました。

Page 35: SmartFusion2 SoC FPGA の MDDR コントローラ 経 …...ステップ 1: Libero SoC プロジェクトの作成 8 Interfacing SmartFusion2 SoC FPGA with DDR3 Memory through MDDR

Interfacing SmartFusion2 SoC FPGA with DDR3 Memory through MDDR Controller 35

変更リスト変更リスト変更リスト変更リスト

リビジョンリビジョンリビジョンリビジョン 変更変更変更変更 頁頁頁頁

リビジョン 5A

(2013 年 7 月)

和文化にともない 11.1 ソフトウェア・リリース向けに改訂 NA

Revision 5

(April 2013)

Updated the document for 11.0 production SW release (SAR 46975). NA

Revision 4

(February 2013)

Updated the document for Libero 11.0 Beta SP1 software release (SAR 44417). NA

Revision 3

(November 2012)

Updated the document for Libero 11.0 Beta SPA software release (SAR 42888). NA

Revision 2

(October 2012)

Updated the document for Libero 11.0 Beta launch (SAR 41898). NA

Revision 1

(May 2012)

Updated the document for LCP2 software release (SAR 38956). NA

Note: リビジョン番号は型番のハイフンの後ろにあります。型番はこのドキュメントの最終頁の下に示されています。スラッ

シュの後ろに続く数字は発行した月と年を表します。

Page 36: SmartFusion2 SoC FPGA の MDDR コントローラ 経 …...ステップ 1: Libero SoC プロジェクトの作成 8 Interfacing SmartFusion2 SoC FPGA with DDR3 Memory through MDDR

製品サポート製品サポート製品サポート製品サポート

Microsemi SoC 製品グループでは、製品サポートをさまざまな形で提供し、それにはカスタマー・サービス、

カスタマー・テクニカル・サポート・センター、ウェブサイト、電子メール、ワールドワイド・セールス・オ

フィスなどが含まれます。ここでは Microsemi SoC 製品グループにコンタクトしてこれらのサポート・サー

ビスを利用するための情報を記載します。

カスタマー・サービス 製品価格、製品のアップグレード、アップデート情報、注文状況、認証などの非テクニカルな製品サポート

に関してはカスタマー・サービスにコンタクトしてください(英語のみ)。

北米からの電話番号 800.262.1060

それ以外からは 650.318.4460

Fax はどこからでも 408.643.6913

なお日本のお客様については、弊社の正規販売代理店にお問い合わせくださいますようお願いいたします。

カスタマー・テクニカル・サポート・センター Microsemi SoC 製品グループでは、お客様のハードウェア、ソフトウェア、デザインに関するご質問に回答

できる高度に熟練したエンジニアをカスタマー・テクニカル・サポート・センターに揃えています。カスタ

マー・テクニカル・サポート・センターでは多大な時間をかけて、アプリケーション・ノートを作成したり、

よくあるデザイン・サイクル内での質問に回答したり、既知の問題や様々な FAQ を文書化しています。し

ったがって、弊社にコンタクトする前に、まずは弊社のオンライン・リソースをチェックしてみてください。

すでにご質問への回答が用意されている可能性が高いはずです。

テクニカル・サポート 詳細は Microsemi SoC 製品グループのカスタマー・サポート・ウェブサイトをチェックして下さい。

(http://www.microsemi.com/soc/support/search/default.aspx). ダイヤグラム、イラストを含んだ検索可能な

ウェブ・リソース上に多くの回答、およびウェブ上の他のリソースへのリンクが用意されています。

ウェブサイト Microsemi SoC 製品グループのホーム・ページから様々なテクニカルおよび非テクニカルな情報をブラウズ

できます。 http://www.microsemi.com/soc/.

カスタマー・テクニカル・サポート・センターへのコンタクト テクニカル・サポート・センターでは高度に熟練したエンジニアが揃っています。テクニカス・サポート・

センターへは Email または Microsemi SoC 製品グループのウェブサイトからコンタクトできます。

Email

テクニカルな質問は以下のメール・アドレスに質問でき、回答は Email、FAX または電話で得られます。デ

ザインの問題については、デザイン・ファイルを Email すればサポートを受けることもできます。弊社では

終日 Email アカウントをモニターしています。リクエストを送る際は、そのリクエストを効率的に処理でき

るようにフル・ネーム、会社名、コンタクト情報を必ず添えてください。

テクニカル・サポートの Email アドレスは次になります: [email protected] (英語のみ)

Page 37: SmartFusion2 SoC FPGA の MDDR コントローラ 経 …...ステップ 1: Libero SoC プロジェクトの作成 8 Interfacing SmartFusion2 SoC FPGA with DDR3 Memory through MDDR

ITAR テクニカル・サポート

Interfacing SmartFusion2 SoC FPGA with DDR3 Memory through MDDR Controller 37

My Cases

Microsemi SoC 製品グループのお客様は、My Cases からテクニカル・ケースをオンラインでサブミットし

トラックすることができます。 (英語のみ)

米国以外から米国以外から米国以外から米国以外から

US タイム・ゾーン以外のお客様のサポートは Email でテクニカル・サポート ([email protected]) に

コンタクトいただくか 、あるいは弊社の正規販売代理店にお問い合わせいただくこともできます。

ITAR テクニカル・サポート RH および RT FPGA に関するテクニカル・サポートは ITAR (International Traffic in Arms Regulations: 国際

武器取引規制 ) で規制されており、お問い合わせ先は次のメール ・アドレスになります。

[email protected].

あるいは My Cases の ITAR ドロップ・ダウン・リストから Yes を選択してください。ITAR 規制対象の

Microsemi FPGA の完全なリストは、ITAR ウェブ・ページでご確認ください。

50200372-5A/07.13