FC2カウンター FPGAの部屋 2008年02月01日
FC2ブログ

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

FPGAの部屋

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

DDR2 SDRAMコントローラのインプリメントテスト2(動作周波数の確保2)

DDR2 SDRAMコントローラのインプリメントテスト(動作周波数の確保)で1つクリティカルパスをつぶしたが、まだ動作周波数を満足しない。
IOBのDDRレジスタを使う際に180度位相が異なったクロックでサンプルするので、周期の1/2になるところが痛い。
そのような場合は下の図のように、FF(フリップフロップ)が一番下で4つのファンアウトを持っていると、どうしてもルーティングが厳しくなる。
max_fanout_1_080201.png

IOBの位置が離れているときには、なおさらだ。
実際に最初にインプリメントしたときには、そうなっていた。
ソースファイルはこれ。

    always @ (posedge clk90) begin
        if (reset==1'b1) begin
            dqs_reset_2d <= 0;
            dqs_reset_3d <= 0;
            dqs_reset_d3d <= 0;
        end else begin
            dqs_reset_2d <= dqs_reset_1d;
            dqs_reset_3d <= dqs_reset_2d;
            dqs_reset_d3d <= dqs_reset_2d;
        end
    end


    // Instantiate DQS_N DDR registers(DQSと逆極性)
    generate
    genvar p;
        for (p=DDR2_DQS_DM_WIDTH-1; p>=0; p=p-1) begin: WRDATA_DQS_N
            FDDRRSE WRDATA_DDR2_DQS (
                .Q(dqs_n_out[p]),
                .D0(gnd),    // DQSとDO,D1が逆
                .D1(vcc),
                .C0(clk90),
                .C1(clk270),
                .CE(vcc),
                .R(dqs_reset_d3d[p]),
                .S(gnd)
            );
        end
    endgenerate


dqs_reset_d3d は90度クロックでサンプルされていて、FDDRRSEの同期リセット入力 (R) に入力されているので、クリティカルパスは2.5ns以下でなければならない。
下がTiming Analyzerのレポート。スラックが -0.820nsになっている。
max_fanout_3_080201.png

下がFPGA Editorの画面。ファンアウトが4なので、だいぶネットが伸びている。
max_fanout_4_080201.png

これでは、だめなので、なるべく下のようにツリー状にネットを分散していけば、リソースは食うがネットは短くなるはず。
max_fanout_2_080201.png

本当はそれを見越して、宣言部でIOBの分だけFFを宣言してあるのだが、XST(論理合成)で消されてしまう。
宣言部はこれ。

reg [DDR2_DQS_DM_WIDTH-1 : 0] dqs_reset_d3d;


これを、消されないように max_fanout ディレクティブを使用して、XSTに消さないようにお願いする。(本当はもうちょっと多くの信号を消されないようにmax_fanoutを設定している)

(* max_fanout="1" *) reg [DDR2_DQS_DM_WIDTH-1 : 0] dqs_reset_d3d;


これでインプリメントすると、負荷が分散されて制約が満足するようになった。(動作周波数の制約が満足できた)
これがTiming Analyzerのレポート。
max_fanout_5_080201.png

制約を満足している。
FPGA Editorで見てもファンアウトが1になって、距離も短くなっている。
max_fanout_6_080201.png

まだ、動作周波数の制約しかかけていないので、IOのセットアップ時間(tsu)、クロックからの出力時間 (tco) は考慮されていない。
少なくとも、主力用FFと出力のトライステートバッファのイネーブル信号用FFはIOBに入れないとtsuとtcoは満足できないと思う。まだ、それらのFFはすべてIOBに入っていない。IOBの物理的な構造を考慮してVerilogファイルを書かないとだめそうだ。
  1. 2008年02月01日 22:32 |
  2. DDR SDRAMコントローラ
  3. | トラックバック:0
  4. | コメント:2

思いがけなく中島誠之助講演会に行く

昨日、6時ころ職場から帰ろうとしたら先輩が急いで帰ろうとしていました。そんなに急いでどうしたんですか?と聞いたら、テレビ番組の”開運!なんでも鑑定団”の中島誠之助さんの講演会があって、すぐ行かなくちゃ行けないということでした。おまけに奥さんがいけないので一枚チケットが余っているから、よかったら行くか?というありがたいお言葉がありました。一瞬迷いましたが、私は”開運!なんでも鑑定団”を開始当初から見ている大のファン!ぜひ、お願いしますということで行くことにしました。
場所はつくばの国際会議場。いってみたら生命保険会社の宣伝を兼ねた講演会でした。
はじめに生命保険会社のお偉いさんがご挨拶。その後、中島誠之助さんの講演が始まりました。
番組開始当初のエピソードや島田紳介さん、石坂さん、アシスタントの吉田さんの話とかがあって、楽しめました。鑑定品の話も大体どんなものかわかりました。
一番、なるほどと思ったのは、中島さんは同業者に嫌がらせを受けたということです。そういえば、同業者が売ったものを”これはにせものです”とかいうわけですものね。うらまえれないはずはありません。いろいろ苦労があったんですね~!
トレードマークの着物も3回目からだそうです。最初はスーツだったとのこと。。。
先輩のおかげで楽しいときを過ごせました。ありがとうございました。
  1. 2008年02月01日 05:53 |
  2. 日記
  3. | トラックバック:0
  4. | コメント:0