FC2カウンター FPGAの部屋 Spartan3Eの入力用プログラマブル遅延素子2
FC2ブログ

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

FPGAの部屋

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

Spartan3Eの入力用プログラマブル遅延素子2

Spartan3Eの入力用プログラマブル遅延素子2でIBUF_DELAY_VALUEの値に対する遅延量を調べてみた。
まずは入力から出力につなぐだけのVHDLファイルを作ってインプリメントした。

library IEEE;
use IEEE.STD_LOGIC_1164.ALL;
use IEEE.STD_LOGIC_ARITH.ALL;
use IEEE.STD_LOGIC_UNSIGNED.ALL;

entity IBUF_Delay_Test is
Port ( input : in STD_LOGIC;
delay_output : out STD_LOGIC;
output : out std_logic);
end IBUF_Delay_Test;

architecture Behavioral of IBUF_Delay_Test is

begin
delay_output <= input;

end Behavioral;


インプリメントが終了したら、Timing Analyzerを起動して、ツールバーの右から5番目の砂時計マーク(Analyze against Users Paths by defining Endpoint)をクリックする。
後の詳しいやり方はISEで任意のパスのディレイを見る方法を見てほしい。そこでinputからdelay_outputまでの遅延を見る。
Spartan3E_IOB_Delay_7_060529.png

入力用IOBの遅延は1.300nsであった。
次にFPGA Editorを立ち上げて入力用IOB(input)の配線を見てみると遅延素子はすべてスルーされている。
Spartan3E_IOB_Delay_8_060529.png

次にUCFファイルにIBUF_DELAY_VALUEを追加してみよう。

NET "input" IBUF_DELAY_VALUE = 1;


先ほどと同様にTiming Analyzerで入力用IOBの遅延を見てみよう。
Spartan3E_IOB_Delay_9_060529.png

入力用IOBの遅延は5.689nsに増えていた。
同様にFPGA Editorを立ち上げて入力用IOB(input)の配線を見てみるIBUF_DELAYに配線されている。
Spartan3E_IOB_Delay_10_060529.png

次に2から13までIBUF_DELAY_VALUEを変えてインプリメントしてみた。下に表を示す。

IBUF_DELAY_VALUE= 0 入力IOBの遅延 1.300ns
IBUF_DELAY_VALUE= 1 入力IOBの遅延 5.689ns 差分 4.389ns
IBUF_DELAY_VALUE= 2 入力IOBの遅延 5.935ns 差分 0.249ns
IBUF_DELAY_VALUE= 3 入力IOBの遅延 6.246ns 差分 0.311ns
IBUF_DELAY_VALUE= 4 入力IOBの遅延 6.620ns 差分 0.374ns
IBUF_DELAY_VALUE= 5 入力IOBの遅延 6.844ns 差分 0.224ns
IBUF_DELAY_VALUE= 6 入力IOBの遅延 7.230ns 差分 0.386ns
IBUF_DELAY_VALUE= 7 入力IOBの遅延 7.863ns 差分 0.633ns
IBUF_DELAY_VALUE= 8 入力IOBの遅延 8.378ns 差分 0.515ns
IBUF_DELAY_VALUE= 9 入力IOBの遅延 8.689ns 差分 0.311ns
IBUF_DELAY_VALUE=10 入力IOBの遅延 9.063ns 差分 0.374ns
IBUF_DELAY_VALUE=11 入力IOBの遅延 9.287ns 差分 0.224ns
IBUF_DELAY_VALUE=12 入力IOBの遅延 9.673ns 差分 0.386ns
IBUF_DELAY_VALUE=13 入力IOBの遅延 1.300ns


Xilinxのアンサーデータベース、アンサー #22368 Spartan-3E - 入力遅延エレメントを使用する際の注意点を見ると13以上は使えないようだ。
遅延時間の差が大きいのは0と1の間で、値は4.389nsだ。次に6と7の間が0.633nsと大きい。やはりこの辺でInitial Delayが入るのだろうか?
でもFPGA Editorで見た限りでは8でInitial Delayが入るようだ。下がIBUF_DELAY_VALUE= 8の場合の入力用IOB(input)の配線が下の図だ。
Spartan3E_IOB_Delay_val8_060529.png


やはりIBUF_DELAY_VALUEもTiming Analyzerで見る限りはタップで遅延が結構変化するようだ。
  1. 2006年05月29日 19:26 |
  2. FPGAチップ内の配線方法
  3. | トラックバック:0
  4. | コメント:0

コメント

コメントの投稿


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

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