Spartan-6 の ODDR2 シミュレーションを実行していて、CLK とデータが同時に変化する場合、ODDR2 のデータ出力が ODDR2 入力のデータと同時に同じになるときに問題が発生する可能性があります。
この問題はシミュレータのデルタ遅延が原因で発生しています。
ODDR2 のデータ入力にネットを追加すると、デルタ遅延が追加されて、この問題を解決できます。
たとえば次のようにします。
Data_IN_Del <= Data_IN
ODDR_inst0 : ODDR2
generic map(
DDR_ALIGNMENT => "C0",
SRTYPE => "ASYNC")
port map (
Q => oddr2_out(0),
C0 => CLK,
C1 => CLK_N,
CE => CE,
D0 => Data_IN_Del,
D1 => '0',
R => Reset,
S => '0'
);
このデルタ遅延が追加されると、シミュレーションは予期どおりに動作します。
この追加ネットによって追加されたデルタ遅延は、ハードウェアのタイミングやパフォーマンスには影響しません。デザインをインプリメンテーションするときはそのままにしておいても問題はありません。
AR# 50550 | |
---|---|
日付 | 09/24/2014 |
ステータス | アクティブ |
種類 | 一般 |
デバイス |