FPGAの部屋FPGAの部屋の有用と思われるコンテンツのまとめサイトを作りました。ISEの初心者の方には、FPGAリテラシーおよびチュートリアルのページをお勧めいたします。SDRAMコントローラのインプリメントテスト(動作周波数の確保)で1つクリティカルパスをつぶしたが、まだ動作周波数を満足しない。IOBのDDRレジスタを使う際に180度位相が異なったクロックでサンプルするので、周期の1/2になるところが痛い。そのような場合は下の図のように、FF(フリップフロップ)が一番下で4つのファンアウトを持っていると、どうしてもルーティングが厳しくなる。IOBの位置が離れているときには、なおさらだ。実際に最初にインプリメントしたときには、そうなっていた。ソースファイルはこれ。入力されているので、クリティカルパスは2.5ns以下でなければならない。Analyzerのレポート。-0.820nsになっている。ファンアウトが4なので、だいぶネットが伸びている。これでは、だめなので、なるべく下のようにツリー状にネットを分散していけば、リソースは食うがネットは短くなるはず。本当はそれを見越して、宣言部でIOBの分だけFFを宣言してあるのだが、XST(論理合成)で消されてしまう。ディレクティブを使用して、XSTに消さないようにお願いする。dqs_reset_d3d;これでインプリメントすると、負荷が分散されて制約が満足するようになった。Analyzerのレポート。Editorで見てもファンアウトが1になって、距離も短くなっている。少なくとも、主力用FFと出力のトライステートバッファのイネーブル信号用FFはIOBに入れないとtsuとtcoは満足できないと思う。それらのFFはすべてIOBに入っていない。IOBの物理的な構造を考慮してVerilogファイルを書かないとだめそうだ。チェックをはずすと、最適化が抑止できたと思います。合成ツールがXST以外の場合は、合成ツールの設定とmapのオプションで同様のことをする必要があります。]なつたんさん、こんばんは。教えていただいてありがとうございます。私はこのオプションはONでよいのです。FFをまとめてもらって、一回インプリメントした後で、クリティカルパスになっているFFだけを複製し、リソースの最小化を目指しています。URLhttps://marsee101.blog.fc2.com/tb.php/728-7d3ed95aこの記事にトラックバックする(FC2ブログユーザー)プロフィールAuthor:marseeFPGAの部屋へようこそ!FPGAの部屋の有用と思われるコンテンツのまとめサイトを作りました。WEBブログデザイナ。