AR# 36505

MIG 7 Series および Virtex-6 DDR2/DDR3 ソリューション センター デザイン アシスタント - バンク マシン

説明

バンク マシンはメモリ コントローラー内にある主なロジック ブロックです。 

リクエスト (1 つの書き込み/読み出し) が受信されると、それはバンク マシンに割り当てられます。 

バンク マシンの役割は、リクエストの完了に必要なコマンドをすべて出力することです。

  • DRAM タイミング要件に従い行および列コマンドを生成します。
  • 列コマンドはスループットを最適化するために順序が変更される場合があります。

リクエストが完了すると、バンク マシンは解放され、別のリクエストに割り当てられます。

バンク マシンは任意時に任意の DRAM バンクに応答します (リクエストが割り当てられている間)。 

バンク マシンの割り当てはダイナミックに行われます。 

各物理的な DRAM バンクに対しバンク マシンを 1 つ割り当てる必要はありません。

注記: このアンサーはザイリンクス MIG ソリューション センター (Xilinx Answer 34243) の一部です。 

ザイリンクス MIG ソリューション センターは、MIG に関する質問を解決するのに役立つ情報を掲載しています。MIG を含むデザインを新しく作成する場合、または問題をトラブルシュートする場合は、このザイリンクス MIG ソリューション センターから情報を入手してください。

ソリューション

バンク マシンの使用方法

MIG 出力にはデフォルトで 4 つのバンク マシンが使用されます。エリアとパフォーマンスのドレードオフを考慮し、デザインでは 2 個から 8 個のバンク マシンが使用できます。

バンク マシンの数を増やせば、メモリ コントローラーの全体的な効率が高まります。

目的のアドレス/トラフィック パターンを使用したビヘイビアー シミュレーションを実行して、効率性を判断してください。

バンク マシンの数は memc_ui_top.v/.vhd モジュールにある RTL パラメーターで設定できます。

  • BM_CNT_WIDTH* はバンク マシン カウンターに必要な幅です。バンク マシンが 4 つ使用されている場合、BM_CNT_WIDTH を 2 に設定する必要があります。バンク マシンが 8 つ使用されている場合、BM_CNT_WIDTH を 3 に設定する必要があります。
  • nBANK_MACHS** はバンク マシンの数です。デフォルトでは 4 に設定されていますが、2 から 8 の値に変更することができます。バンク マシンの数を変更する場合、ターゲットのトラフィック パターンをシミュレーションして、パフォーマンスでの変化を確認します。また、タイミングが満たされていることを確認します。

* BM_CNT_WIDTH は Virtex-6 FPGA デザインのみに含まれています。

** この数を増やすと、FPGA ロジックのタイミングがさらに難しくなり、デザインおよびメモリ コンフィギュレーションによっては、タイミング エラーが発生する可能性があります。

7 シリーズの Vivado デザインの場合は、OOC フローを使用できません。OOC 以外のフローを使用して、パラメーターを手変更してください。

EDK を使用している場合は、パラメーターが変更されるたびに、カスタム pcore を作成する必要があります。


従来のフローでバンク マシンのパラメーターを変更するには、次の手順に従ってください。


  1. デザインの XPS プロジェクトを開きます。
  2. XPS GUI の [System Assembly View] タブで axi_7series_ddrx (DDR3_SDRAM) IP を右クリックし、[Make This IP Local] を選択します。
  3. XPS プロジェクトのローカル pcore ディレクトリに移動します。
  4. ../sources_1/edk/MicroBlaze_ProcessorSubSystem/pcores/axi_7series_ddrx_v1_08_a/hdl/verilog/<core_name>_mig.v モジュールで BM_CNT_WIDTH および nBANK_MACHS パラメーターを検索します。
  5. ビットストリームを再生成します。


Vivado を使用する 7 シリーズのデバイスに対して、バンク マシンの数を指定する機能が 2016.4 リリースの MIG GUI に追加されました。

2016.4 リリースより前の Vivado の場合、デザインの残りの部分に変更が伝搬されるようにするためには、OOC 以外のフローを使用して mig_7series_0_mig.v ファイルを変更する必要があります。

これを行うには、IP を生成しますが、出力ファイルを生成するようプロンプトが表示されたら、[Global] を選択します。

次に、Vivado 外で mig_7series_0_mig.v ファイル (デフォルトのファイル名) を編集し、nBANK_MACHS パラメーターを任意の値に変更します。

変更を保存して合成を実行し、新しい値がデザイン全体に伝搬されるようにします。

その他の情報

  • 『Virtex-6 FPGA メモリ インターフェイス ソリューション ユーザー ガイド』 (UG406) の「Core Architecture (コア アーキテクチャ)」→「Memory Controller (メモリ コントローラー)」→「Bank Machines (バンク マシン)」を参照してください。
  • 『7 シリーズ FPGA メモリ インターフェイス ソリューション ユーザー ガイド』 (UG586) の「Core Architecture (コア アーキテクチャ)」→「Memory Controller (メモリ コントローラー)」→「Bank Machines (バンク マシン)」を参照してください。
  • (Xilinx Answer 34942) 再順序付けコントローラー ロジック
  • (Xilinx Answer 35410) デザインに格納できるコマンド数
  • (Xilinx Answer 34392) 再順序付けコントローラーの効率
  • (Xilinx Answer 36883) 複数のバンクを同時に開くことは可能か、開いておくことのできるバンク数はいくつか

改訂履歴
2014/05/01 - EDK およびタイミング情報をアップデート

2012/09/19 - マイナー アップデート
2010/08/24 - アンサー 36883 へのリンクを追加

アンサー レコード リファレンス

マスター アンサー レコード

関連アンサー レコード

AR# 36505
日付 01/17/2018
ステータス アクティブ
種類 ソリューション センター
デバイス 詳細 概略
IP