FC2カウンター FPGAの部屋 2010年10月05日
FC2ブログ

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

FPGAの部屋

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

DE0のSDR SDRAMコントローラ2

DE0にCMOSカメラを搭載するためのSDR SDRAMコントローラを作っていこうと思っている。
SDR SDRAMコントローラは、Xilinx用に作ったDDR SDRAMコントローラを改造する。実はXilinxのVirtex-2ProではVHDLだが、すでに動作してるコントローラだ(動作確認はしたのですが、使ってはいません)。それをVerilog HDL にすでに変更してあるので、XilinxからAlteraへの変更を行えば良い。
問題はアドレスや書き込み、読み出しデータのFIFOが分散RAMを使用したFIFOを使用しているところだ。Altera ではMLABを使おうと思っていたが、CycloneシリーズではMLABはないみたい。
そこで、勿体無いがM9Kブロックを使用する。これはMegaWizard Plug-In Manager でFIFOを生成することにした。すでに、”MegaWizard Plug-In Manager で作った同期FIFOの動作を確かめる1 ”と”MegaWizard Plug-In Manager で作った同期FIFOの動作を確かめる2(シミュレーション) ”でSFIFOの動作は確かめてある。
書き込み、読み出しデータのFIFOは、そのままSFIFOをMegaWizard Plug-In Manager で生成して使うこととするが、アドレスFIFOは次の出力ポートがあるので、SFIFOを内部にインスタンスして、ロジックを加えることにする。

DE0のSDRAMは、Integrated Circuit Solution Inc. のIS42S16400ということだった。このSDRAMは64Mbitの16ビット幅のデータバスを持つSDRAMだ。シミュレーションをするためのVerilog HDLモデルを探したのだが、なかったので、Micron社の256MbitのMT48LC16M16のモデルで代用することにした。
2つのSDRAMの違いは、アドレスビット幅がIS42S16400が12ビットで、MT48LC16M16が13ビット幅、カラムアドレス幅がIS42S16400が8ビットで、MT48LC16M16が9ビット幅であることだ。
動作周波数は一応、133MHzを目指すことにしようと思う。CL=3となる。


# いろいろ迷ったんですが、SOPC Builder使わないとAltera じゃないかな? FPGA-BBSで出ていたSG-DMA使おうか?とか。結局、お蔵入りしているSDR SDRAMコントローラも動かしてみたいし、Alteraの実装の様子も見てみたいので、今回はXilinxからの変更で行くことにしました。FPGA技術6号がでたらSOPC BuilderのMMマスタでつくり直してみようと思っています。
  1. 2010年10月05日 05:58 |
  2. SDR SDRAMコントローラ
  3. | トラックバック:0
  4. | コメント:0