FC2カウンター FPGAの部屋 Spartan-6のMemory Controller Block(MCB) を試してみた
FC2ブログ

FPGAやCPLDの話題やFPGA用のツールの話題などです。 マニアックです。 日記も書きます。

FPGAの部屋

FPGAの部屋の有用と思われるコンテンツのまとめサイトを作りました。Xilinx ISEの初心者の方には、FPGAリテラシーおよびチュートリアルのページをお勧めいたします。

Spartan-6のMemory Controller Block(MCB) を試してみた

Alteraの方もやりたいが、Spartan-6のMemory Controller Block(MCB) のユーザーズガイド、Spartan-6 FPGA Memory Controller User Guideを見つけたので、やってみたくなった。
15ページからのGetting Started で、CORE Generator (CORE Gen) からMIGを使用してMCBを使うやり方が書いてあったのでやってみることにした。
Memory Controller Block(MCB) のユーザーズガイドに沿ってやってみた。
下の図はMCB_testというCORE Genのプロジェクトを作ったところ。
MCB_test_1_090711.png

ユーザーズガイドではMIG3.0だが、ISE11.2のCORE GenではMIG3.1になっている。これを開いてMCBのIPを生成して行こう。DDR2-800 のMCBを生成する。選択したSparatan-6はxc6slx16-2cs324で、ユーザーズガイドの通りとした。このxc6slx16-2cs324には、MCBが2つ入っていて、そのうちのBANK3のMCBを選択して、DDR2 SDRAMの設定をした。
MCB_test_2_090711.png

ユーザーズガイドの24ページはCustom Part を作れとあるが、最初やってみたら、DDR2 SDRAMのモデルが生成されなかったので、ここはディフォルトのマイクロンのDDR2 SDRAMを使うことにしてMCBを生成してみることにする。
MCB_test_3_090711.png

ユーザーズガイドの通りにステップを進めていき、Port Configuration for MEMC 3 はこんな感じ。
MCB_test_4_090711.png

Summary Pageは下。
MCB_test_5_090711.png

mig_31のIPが生成できました。
MCB_test_6_090711.png

プロジェクト名 (MCB_test) \mig_31の下に、example_design と user_design フォルダが生成されている。そのうちのexample_design\parを開いて、create_ise.batをダブルクリックする。
MCB_test_7_090711.png

ISEのプロジェクト (test.xise, test_ise) が生成される。
MCB_test_8_090711.png

このプロジェクトをISE11.2のProject Navigator から読みこんでインプリメントしてみた。タイミング制約を見たしてインプリメントすることができた。
MCB_test_9_090711.png

DDR2 SDRAMのDQが4ビットでDDR2-800なのだから、コントローラのRead/Writeポート幅が32ビットだとすると、動作周波数は100MHzとなるはず。
次にFPGA Editorで内部構造を見てみた。
MCB_test_10_090711.png

FPGA全体に配線が回っている。赤くハイライトしたのがMCB、右側のMCBは使用されていない。
  1. 2009年07月11日 06:23 |
  2. Virtex-6, Spartan-6
  3. | トラックバック:0
  4. | コメント:0

コメント

コメントの投稿


管理者にだけ表示を許可する

トラックバック URL
https://marsee101.blog.fc2.com/tb.php/1169-d7b1f8d2
この記事にトラックバックする(FC2ブログユーザー)