FC2カウンター FPGAの部屋 2006年04月15日
fc2ブログ

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

FPGAの部屋

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

DDR SDRAMのDQS信号でデータをサンプルする方法2のまえふり

DDR SDRAMのDQS信号でデータをサンプルする方法2のまえふりとなってしまって申し訳ない。
SRL16EプリミティブでFIFOを作って実際にDDR SDRAMのデータを受けるようにプロジェクト作っていたのだが、どうしてXSTでエラーになってしまう。Synplifyだと通るのだがなぜだかまだ不明だ。
うまく行ったら、ブログに書こうと思っている。
Xilinxのアプリケーションノートで見たのだが、DDR SDRAMのデータを受けるFIFOのWrite enableはかなり複雑になっているようだ。自分で作るためにはやはりLUTの遅延を考えた配置にしなければいけないようだ。やはりかなりXilinxのFPGAデバイスに精通していなければ無利だと思われる。やはり、とりあえず100MHz以下で動的位相シフトによってDDR SDRAMのデータを受けるのが良さそうだ。それでもどこがデータかを判定するのが問題だが、一回DDR SDRAMに55やAAなどのパターンを書いて、パターンを受ける位置を保存して持っていると良いかもしれないな。。。

2006.04.16
原因がわかりました。
最初にライブラリをuseするところでunisimを論理合成するときに無視するように-- pragma translate offしますが、それが反対でentityを無視するようになっていたようです。
つまり

-- pragma translate on
library UNISIM;
use UNISIM.VComponents.all;
-- pragma translate off


になっていました。正しくは

-- pragma translate off
library UNISIM;
use UNISIM.VComponents.all;
-- pragma translate on


です。こんなことでだいぶ悩んでしまいました。
でもSynplifyは大丈夫なんですね。entityキーワードがあると自動的に論理合成ONにでもなるんでしょうか?
これで論理合成できて、なかなか面白い結果も出ていますが、今日は元ダイエーがあったビルの巨大100円ショップとかに行っていてブログを書けてないので、そのうち書きます。
  1. 2006年04月15日 22:17 |
  2. DDR SDRAMコントローラ
  3. | トラックバック:0
  4. | コメント:0