FC2カウンター FPGAの部屋 2005年11月12日
FC2ブログ

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

FPGAの部屋

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

高速回路のHDLインプリメンテーション方法の考察

DDR SDRAMコントローラを設計する上で、参考にしたアプリケーション・ノートがある。それがXilinxのxapp253だ。もうXilinxのサイトには載っていないが、グーグルのキャッシュがここにある。デザインファイルはここに残っている。
シミュレーションしてこれを調べた所、とてもよい出来だと思った。バンクをアクティブにした後、タイムアウトまでプリチャージしない様になっている。タイムアウト前に同じバンクへのアクセスが来たら、バンクがアクティブになっているので、レイテンシが短くなる。これを使ってもいいかなと思ったが、シミュレーションをしてみると、バグがあるようだ。2つくらい修正したが、どうもまだだめなので、自分で作りることにした。
構造を参考にしながら、オリジナルに作ったのだが、アプリ・ノートの回路に疑問があるところがあった。DQ,DQS,DMの信号が1本ずつモジュールとして書かれていたのだ。1本を8本とか4本にまとめていて、何でこんな面倒なことするのかな?と思っていた。まとめてインスタンスすれば良いのにと思っていた。実際自分ではfor generateでまとめてインスタンスした。
でも、今回のセミナを受けていた気がついた。1本ずつまとめ、8本単位にまとめれば、それごとにフロアプランでエリア制約をかけることが出来る。(エリア制約についてはこれを参照) データバスを64本(私のは32本じゃなくてDIMM用に64本に拡張してある)まとめると、フロアプランナーでは四角形しかエリア制約できないので、ロジックがばらけてしまう。これはタイミングにとっては不利になると思う。
さらに、私は書き込みと読み出しのモジュールを分けてしまった。これじゃ、タイリング状にフロアプランするしかないし、(IOBは読み書き両方)おまけにフロアプランナーじゃ出来ないので、PACEでやるしかない。それで、IOBの形でアプリ・ノートでは書いてあったのか。IOBの配置もチップの横に縦一列に並んでいて、データパス的に有利だ。
やはり、IOBに最適化できるように修正しよう。
  1. 2005年11月12日 08:36 |
  2. その他のFPGAの話題
  3. | トラックバック:0
  4. | コメント:2