FPGAの部屋FPGAの部屋の有用と思われるコンテンツのまとめサイトを作りました。ISEの初心者の方には、FPGAリテラシーおよびチュートリアルのページをお勧めいたします。Spartan3Eのインプリメント結果でMAPログの比較を行った。Table)、それにIOBを比べてみようと思う。分散RAMから見ていこう。SDRAMコントローラのaddr_fifo.vのFIFOに使用している分散RAMを見ていこう。Spartan3Eの分散RAMを下に示す。これは、このISEのVerilogファイルプロジェクトにあるaddr_fifo.vの中の分散RAMだ。Portの分散RAMである。pointerをつけて、16深度のFIFOとして使用している。16深度なので4本の読み出しアドレスと4本の書き込みアドレスを持っている。下にVerilogファイルでの分散RAMのインスタンシエーションコードを示す。(.DPO(out_sig[i]),.SPO(),.A0(wp[0]),.A1(wp[1]),.A2(wp[2]),.A3(wp[3]),.D(din[i]),.DPRA0(rp[0]),.DPRA1(rp[1]),.DPRA2(rp[2]),.DPRA3(rp[3]),.WCLK(clk),.WE(we));endendgenerate上図のスライス内部構造を見ると上の4本が書き込みアドレス(wp)で、下のまとまっている4本が読み出しアドレス(rp)だ。真ん中のGLOBAL_LOGIC0は入力データだ。アドレスは0固定のため、いつも0が入っている。右側に出ているのは出力だ。分散RAMを実装できるのはSLICEMのようだ。スライスにはSLICEMとロジックとROMにしか使用できないSLICELがあるようだ。スライスには2つの分散RAMエレメントがあるが、アドレスが使用されているので2つとも使用してしまうようだ。次はVirtex4の分散RAMを見てみよう。使用していないD-FFの前のマルチプレクサが違っているみたいだが、分散RAM部分は同じようだ。1SLICE=2LUTsも変化がない。次にVirtex5だ。SLICEの中の論理が増えているようだ。1SLICEの中にLUTとFFのペアが4組ある。上の図は分散RAMを実装しているのでSLICEMだ。LUTにアドレスが6本あるので、4本使用していて、2本はGNDに接続されている。Virtex5で分散RAMを実装する際には64深度にしたほうが使い切れて良いだろう。コメント:0プロフィールAuthor:marseeFPGAの部屋へようこそ!FPGAの部屋の有用と思われるコンテンツのまとめサイトを作りました。WEBブログデザイナ。