FC2カウンター FPGAの部屋 Spartan3Aのプログラマブル遅延素子3
fc2ブログ

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

FPGAの部屋

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

Spartan3Aのプログラマブル遅延素子3

”Spartan3Aのプログラマブル遅延素子1””Spartan3Aのプログラマブル遅延素子2”では、IOBバッドからSLICEに行く経路の遅延であるIBUF_DELAYを変更してその値を調べた。今度はIOBパッド内のFFへの遅延であるIFD_DELAYの値を調べてみる。

前回のVerilog-HDLの記述ではin_ff は、IOBのFFを使用することが出来なかったので、Verilog-HDLソース上にIOB制約を追加することにした。ソースを下に示す。

`timescale 1ns / 1ps

module IOB_Delay_test(
  input clk,
  input reset,
  input testin,
  output testout
  );
  
  (* IOB="TRUE" *)reg in_ff;
//  reg in_ff;
  reg in2_ff;
  
  always @(posedge clk) begin
        if (reset) begin
             in_ff <= 1'b0;
             in2_ff <= 1'b0;
        end else begin
             in_ff <= testin;
             in2_ff <= in_ff;
        end
  end
  
  assign testout = in2_ff;
endmodule


これでインプリメントしてFPGA Editorで見てみると、IOB内のFFを使っていることがわかった。
Spa3A_IDEALY_9_090311.png

上のFPGA Editorの図を見ると、最初からDLY5が入っているのがわかる。以前に”DCMを使わないクロックを使いIOB内のFFでデータを受ける”でもやったみたが、セットアップ時間をマイナスの値にしないようにするためや、Xilinxのアンサー”13309 - 10.1 タイミング - 遅延エレメントが使用されるとデータ有効ウィンドウが大きくなる (Tiopickd、Tioickpd)”にあるようにデータ有効ウインドウが大きくなるためだと思われる。
Timing Analyzerの解析結果を下に示す。
Spa3A_IDEALY_10_090311.png

Maximumのデータパス遅延が4.135ns、Minimumのクロックパス遅延が1.849ns、上の図には見えていないがMaximumのクロックパス遅延が2.215ns となっていた。

さて、”ISE10.1のFPGA EditorでIOBやSLICEのパラメータを変更”と同様の方法でFPGA Editorを使用してIFD_DELAYをいろいろな値に変更して、Tiopickdがどのように変化するかをTiming Analyzerで見て表にしみた。その表を下に示す。
Spa3A_IDEALY_11_0903112.png

IFD_DELAYは4タップあるので、Coarse Delayを入れると8タップということになる。上の表を見るとDLY5のところで不連続になっているので、ここでCoarse Delayが入ったのだろう。IBUF_DELAYに比べてタップごとの遅延が大きい。最大の遅延は同じくらいなので、タップごとのステップが大きいようだ。
実はこの値はSpartan3Aのデータシートの25ページのTable 20: Setup and Hold Times for the IOB Input Path (Continued) に載っている。ホールド時間のTioickpdの値も26ページに載っている。
そこでデータウインドウをIFD_DELAY_VALUE = 0 (DLY0) の時とIFD_DELAY_VALUE = 8 (DLY8) の時で比較してみよう。有効データの必要があるウインドウはセットアップ時間 - ホールド時間だ。

IFD_DELAY_VALUE = 0  1.51ns - 0.67ns = 0.84ns
IFD_DELAY_VALUE = 8  6.73ns - 3.81ns = 2.92ns


上の計算より、IFD_DELAY_VALUE = 8 (DLY8) の時のほうが有効データの必要があるウインドウが広がっていることがわかる。
  1. 2009年03月12日 06:23 |
  2. FPGAチップ内の配線方法
  3. | トラックバック:0
  4. | コメント:0

コメント

コメントの投稿


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

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