FC2カウンター FPGAの部屋 DDR SDRAMコントローラ回路の途中経過
FC2ブログ

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

FPGAの部屋

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

DDR SDRAMコントローラ回路の途中経過

DDR SDRAMコントローラ回路は、以前Virtex2で作ってあった。
東京エレクトロンデバイスのDVIボードで83MHzではあるが、DDR SDRAMコントローラとして動作していたので、Virtex2では動作すると思われるのだが。。。
使っていたプリミティブがSpartan3Eではないものがあった。RAM64X1Dだ。これはVirtex2からしかないようだ。
Spartan3EにはRAM32X1Dしかないようなので変更した。
でもまだ。MAPで下のエラーを出してとまってしまう。
ERROR:MapLib:662 - Problem netlisting input design. Exiting...

ちょっとSpartan3Eに変換仕切れていないようだ。仕事でもModelSimやISEを使用して修正中なので、画面を家でも見るが飽きてきた。(混同してしまうし。。。)一応、ペンディングにしてVirtex4の勉強をすることにする。

2006/6/10
もう一度ライブラリガイドを見直してみたら、Sprtan3EにはRAM32X1Dもない様なのでRAM16X1Dに変更した。
これで大丈夫とインプリしたら、またMAPで”ERROR:LIT:421 - DCM symbol”で停止。調べてみたらSpartan3EではDCMの可変位相シフトが変更になっているそうだ。
http://www.xilinx.co.jp/xlnx/xil_ans_display.jsp?iLanguageID=2&iCountryID=2&getPagePath=23004
http://www.xilinx.co.jp/xlnx/xil_ans_display.jsp?iLanguageID=2&iCountryID=2&getPagePath=22414
上のアンサーによると、周波数は100MHzで周期は10nsなので、
MAX_STEPS = 20*(10-3) = 140ステップ。
FINE_SHIFT_RANGE_MIN = ±(140*20ps) = ±(2800ps) = ±(2.8ns)
FINE_SHIFT_RANGE_MAX = ±(140*40ps) = ±(5600ps) = ±(5.6ns)
となる。とてもMIN値の2.8nsでは可変シフト量が足りないので、だめである。±5nsは欲しい。MAX値ならば足りているが、このように100%の差があるということは遅延の誤差が100%あるということなのだろうか? 誤差が大きすぎないか?
とにかくMIN値では可変シフト量が足りない。
更に、アンサーにあるように動作周波数が低いほうがシフト量が多いとは、どのような遅延素子なのだろうか? ディレイラインではない?
ともかく、可変位相シフトでDQSの値を調べて、よく受かる位相シフト値に固定する方法は、動作周波数100MHzのSpartan3Eでは使えないようだ。

#やはり、チップやISEのバージョンを変えるといろいろトラップが仕掛けられているかも知れないという例だろう。
  1. 2006年06月10日 15:44 |
  2. Spartan3E Starter Kit
  3. | トラックバック:0
  4. | コメント:0

コメント

コメントの投稿


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

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