MPMC の設定

私の購入した SO-DIMM はBufallo の D2/N667-2G なのだが、実は M470T5663QZ3 というSamsung の DIMM だ。チップは K4T1G084QQ-HCE6。でよくよくみると MPMC の設定に K4T1G084QA-E6 を発見した。SO-DIMM ではなく discrete で設定可能のようだ。つまり SO-DIMM のような基板の製品(例えば Samusung の M470T5663QZ3)が選択肢になくても discrete で選択可能ということか?
チップの末尾が微妙に違う。samsung の ddr2_product_guide_aug_09.pdf を読むと HC はパッケージタイプと Temp & Power で、QA の A は Revision 。最新のリビジョンが QQ のようだ。528833ds_k4t1gxx4qq_18v_rev12.pdf という pdf は探せたが QA の資料が探せなかったのがその理由。まぁとにかく MPMC で discrete を使えばよい。discrete というと離散のような気がするが(ちがうって)、バラの部品のこと。
K4T1G084QA-E6

あとは EDK の port 設定でこつこつと Make External を選択していけば見事 mhs に情報が書かれる。Make External は時間がかかるので(なぜよ)、mhs をごっそり書き換えてもいいかもしれない。
MPMC_DDR2_port
つぎは ucf の設定、、、の前にちょっと脱線。SO-DIMM の回路図を 449854ds_ddr2_1gb_q-die_based_sodimm_rev11.pdf でみる。512M のモジュールは S0 が各チップの CS に接続されている。S1 の記述は無い。2G のモジュールでは S0, S1 がそれぞれ別のチップ群に繋がっている。S0 に繋がっているのは D0-D7 の8つのチップ。S1 には残りの8つ。つまり S0, S1 がセレクタになっているわけだ。で MPMC の port を見ると DDR2_CS_n は C_MEM_CS_N_WIDTH-1:0 となっている。これをつないであげればよいわけだ。
M470T5663QZ3
さてさて、BankAddrとAddrがある。M470T5663QZ3 の回路をみると(正確には K4T1G084QA-E6 を見たほうがいいのか)3bit のバンクと14ビットのアドレスがあるらしい。で評価ボードの回路図を見る。BA は 3bit、アドレスは 16bit まで。なるほどちゃんと FPGA につながっている(当たり前)。
手元に ucf は BA<2> と ADDR<13> が繋がってなかったのでつなぐ。
ODT を有効にしたほうがよさそうなきもするが
http://japan.xilinx.com/xcell/xl56/jp56xcell_05.pdf
手元に計測器がないのでどれが正しいかわからない。ODT はデフォルトのまま disable とする。
さぁこれで合成をかけてみよう。アクセスできるだろうか?