ddrメモリを接続して大容量メモリにアクセス! - 組み込み...

1
114 DDR メモリを接続して大容量メモリにアクセス! Vivadoで始めるソフトIPプロセッサMicroBlaze&MicroBlazeMCS DDR メモリを接続して大容量メモリにアクセス! 横溝 憲治 Kenji Yokomizo FPGA マガジン No.10 〜 12 の 3 号では,FPGA にソフト CPU コア MicroBlazeMCS および MicroBlaze を組み込みましたが,メモ リは FPGA 内蔵のブロック RAM だけで構成しました.しかしこれでは,数十 K バイト程度の RAM 容量しか実現できません.今回は 外付けに DDR3 SDRAM メモリを接続し,MicroBlaze から大容量メモリを扱えるようなシステムを構築してみます. されています.ここではMicroBlazeからMIG経由で外 部メモリへのアクセスを試してみます. DRAM 系メモリを接続するのに必須の MIG MIG は,Xilinx 社が提供する外部メモリ・インター フェースIPです.表1 に7シリーズのMIGが対応す るメモリ種別を示します.ユーザ設計回路や MicroBlazeとAXI経由でアドレスやデータを受け渡 し,外部メモリへ書き込みと読み出しを行います 図1). SDRAM 系メモリで必要な,メモリの初期化やリフ レッシュ処理なども MIG が生成してくれます. 入門ボード Arty で MIG を試してみる 今回のターゲット・ボードは,入門 FPGA 評価ボー ドArty(Digilent社)を使ってみます(写真1).Arty はFPGAと し てAritx-7(XC7A35TICSG324-1L)を 搭 載し,外部メモリは256Mバイト(128Mワード×16 ビット幅=256Mバイト)のDDR3 SDRAMが実装さ れています. また設計ツールは,Vivado2016.3 を使用しました. 最終的に画像表示システムを実現する 今回作成するシステム概要図を図2 に示します.初 めにMicroBlazeとMIGの組み合わせで外部メモリへ のアクセスを確認します.その後に大容量メモリを活 か す 事 例 と し て, 画 像 表 示 回 路(DMA,VTC, VideoOUT)を追加してメモリ上のデータを画像表示 してみます. MicroBlaze に DDR 系メモリを接続する 1 大容量メモリが必要なら DRAM 系メモリを外付け これまでは,FPGA内蔵のブロックRAMだけでプ ログラムを動かす,小規模な MicoBlaze システムを構 築してきました.今回は,より大容量のメモリを扱え るシステムを構築してみます.大容量メモリが必要と な れ ば, や は り DRAM 系 の メ モ リ を 外 付 け し, FPGA内にDRAM制御回路を実装してアクセスする 必要があります. Xilinx 社の FPGA には外部メモリとのインターフェー スIPとして,MIG(Memory Interface Generator)が用意 7 シリーズ FPGA で MicroBlaze を 使おう! 表 1 7 シリーズ MIG が対応するメモリと使用リソース 対応メモリ 使用リソース LUT DFF BUFG PLLE2 MMCM ブロックRAM DDR3 SDRAM 14016 9019 4 ※1 1 2 ※1 2 DDR2 SDRAM 9267 6038 2 1 1 0 QDR II+ SRAM 3209 2568 2 1 1 0 RLDRAM II 6261 4519 2 1 1 7 RLDRAM 3 9039 7950 2 1 1 12 LPDDR2 SDRAM 3952 3285 2 1 1 0 ※1:動作周波数により使用個数が変動 FPGA メモリ・ インター フェース 信号 AXI インター コネクト 外部 メモリ MIG AXI AXI AXI ユーザ 設計回路 Micro Blaze DRAM系メモリ DRAM系メモリ 内部バスはAXI 内部バスはAXI リフレッシュなどもする DRAMコントローラ リフレッシュなどもする DRAMコントローラ 図 1 MIG を使ったシステム構成図

Upload: others

Post on 18-Mar-2021

1 views

Category:

Documents


0 download

TRANSCRIPT

114 DDRメモリを接続して大容量メモリにアクセス!

Vivadoで始めるソフトIPプロセッサMicroBlaze&MicroBlazeMCS

DDRメモリを接続して大容量メモリにアクセス!横溝 憲治 Kenji Yokomizo

 FPGAマガジンNo.10〜12の3号では,FPGAにソフトCPUコアMicroBlazeMCSおよびMicroBlazeを組み込みましたが,メモリはFPGA内蔵のブロックRAMだけで構成しました.しかしこれでは,数十Kバイト程度のRAM容量しか実現できません.今回は外付けにDDR3 SDRAMメモリを接続し,MicroBlazeから大容量メモリを扱えるようなシステムを構築してみます.

されています.ここではMicroBlazeからMIG経由で外部メモリへのアクセスを試してみます.● DRAM系メモリを接続するのに必須のMIG MIGは,Xilinx社が提供する外部メモリ・インターフェースIPです.表1に7シリーズのMIGが対応する メ モ リ 種 別 を 示 し ま す. ユ ー ザ 設 計 回 路 やMicroBlazeとAXI経由でアドレスやデータを受け渡し,外部メモリへ書き込みと読み出しを行います

(図1). SDRAM系メモリで必要な,メモリの初期化やリフレッシュ処理などもMIGが生成してくれます.● 入門ボードArtyでMIGを試してみる 今回のターゲット・ボードは,入門FPGA評価ボードArty(Digilent社)を使ってみます(写真1).ArtyはFPGAとしてAritx-7(XC7A35TICSG324-1L)を搭載し,外部メモリは256Mバイト(128Mワード×16ビット幅=256Mバイト)のDDR3 SDRAMが実装されています. また設計ツールは,Vivado2016.3を使用しました.● 最終的に画像表示システムを実現する 今回作成するシステム概要図を図2に示します.初めにMicroBlazeとMIGの組み合わせで外部メモリへのアクセスを確認します.その後に大容量メモリを活か す 事 例 と し て, 画 像 表 示 回 路(DMA,VTC,VideoOUT)を追加してメモリ上のデータを画像表示してみます.

MicroBlazeにDDR系メモリを接続する1

● 大容量メモリが必要ならDRAM系メモリを外付け これまでは,FPGA内蔵のブロックRAMだけでプログラムを動かす,小規模なMicoBlazeシステムを構築してきました.今回は,より大容量のメモリを扱えるシステムを構築してみます.大容量メモリが必要とな れ ば, や は りDRAM系 の メ モ リ を 外 付 け し,FPGA内にDRAM制御回路を実装してアクセスする必要があります. Xilinx社のFPGAには外部メモリとのインターフェースIPとして,MIG(Memory Interface Generator)が用意

7シリーズFPGAでMicroBlazeを使おう!

表1 7シリーズMIGが対応するメモリと使用リソース

対応メモリ使用リソース

LUT DFF BUFG PLLE2 MMCM ブロックRAMDDR3 SDRAM 14016 9019  4※1 1  2※1 2DDR2 SDRAM 9267 6038 2 1 1 0QDR II+ SRAM 3209 2568 2 1 1 0RLDRAM II 6261 4519 2 1 1 7RLDRAM 3 9039 7950 2 1 1 12LPDDR2 SDRAM 3952 3285 2 1 1 0

※1:動作周波数により使用個数が変動

FPGA

メモリ・インターフェース信号

AXIインターコネクト

外部メモリ

MIGIOB

AXI

AXI AXI

ユーザ設計回路

MicroBlaze

DRAM系メモリDRAM系メモリ

内部バスはAXI内部バスはAXIリフレッシュなどもするDRAMコントローラリフレッシュなどもするDRAMコントローラ

図1 MIGを使ったシステム構成図