AR# 46966

MIG v3.91 Spartan-6 MCB - サスペンド状態のままとなる

説明

ISE 14.1 またはそれ以前のバージョンで利用可能な MIG v3.91 で、MCB がセルフ リフレッシュ モード状態のままとなり、動作が再開されません。

ソリューション

修正バージョン : ISE14.2 (v3.92)

 

これは、mcb_soft_calibration.v/vhd RTL の問題が原因で発生します。  

この問題を回避するには、次の手順に従ってください。

mcb_soft_calibration.v/.vhd 内の RTL の次のセクションを見つけます。

 

/ SELFREFRESH should only be deasserted after PLL_LOCK is asserted.
// This is to make sure MCB get a locked sys_2x_clk before exiting
// SELFREFRESH mode.

always @ ( posedge UI_CLK) begin
  if (RST)
    SELFREFRESH_MCB_REQ <= 1'b0;
  else if (PLL_LOCK_R2 && ~SELFREFRESH_REQ_R3 && STATE == START_DYN_CAL)//
    SELFREFRESH_MCB_REQ <=  1'b0;
  else if (STATE == START_DYN_CAL && SELFREFRESH_REQ_R3) 
    SELFREFRESH_MCB_REQ <= 1'b1;
end

 

このセクションを次のように変更します。

 

// SELFREFRESH should only be deasserted after PLL_LOCK is asserted.
// This is to make sure MCB get a locked sys_2x_clk before exiting
// SELFREFRESH mode.

always @ ( posedge UI_CLK) begin
  if (RST)
    SELFREFRESH_MCB_REQ <= 1'b0;
  else if (PLL_LOCK_R2 && ~SELFREFRESH_REQ_R3 )//
    SELFREFRESH_MCB_REQ <=  1'b0;
  else if (STATE == START_DYN_CAL && SELFREFRESH_REQ_R3) 
    SELFREFRESH_MCB_REQ <= 1'b1;
end

 

SELFREFRSH_MCB_REQ のディアサートで START_DYN_CAL 状態を待機するように RTL がコード化されていると、キャリブレーション ステート マシンが INCREMENT または DECREMENT 状態のままとなり、この問題が発生します。

セルフ リフレッシュ モードを使用する場合は、この RTL コード変更を統合する必要があります。

 

改訂履歴

2014/9/5 - 初版

AR# 46966
日付 04/01/2016
ステータス アクティブ
種類 一般
デバイス
ツール 詳細 概略
IP