ソリューション
メモリ仕様のパワーアップ シーケンスとザイリンクス MIG QDRII+ コントローラーの違いを次に説明します。
QDRII+ メモリのパワーアップ シーケンス (Cypress および Samsung のメモリ仕様) :
1. 電源を投入し DOFF# を Low ステートに保持します。
2. 電力およびクロック (K、K) が安定した直後に DOFF# を High にします。
3. 安定した DOFF# (high)、電力およびクロック (K、K) を、20 マイクロ秒間 (Cypress の場合)/2048 クロック サイクル間 (Samsung の場合) 供給して、PLL をロックします。
MIG Virtex-6 QDRII+ のパワーアップ シーケンス :
1. 電源を投入し DOFF# を Low ステートに保持します。
2. 電力およびクロック (K、K) が安定した後、200 マイクロ秒待機し、その後 DOFF# を High にします。
3. 安定した DOFF# (high)、電力およびクロック (K、K) を、2048 クロック サイクル間 (Samsung および Cypressの場合) 供給して、PLL をロックします。
この違いにより、次の 2 つの問題が発生します。
- MIG PLL ロック後の 200 マイクロ秒間の待機は不要となり、省くことができます。
- MIG Virtex-6 FPGA QDRII+ IP では、PLL を安定させるため 2048 クロック必要ですが、これは Samsung に対してのみ有効となります。
つまり、Cypress パーツをアップデートするには、クロック周期に関係なく 20 マイクロ秒待機する必要があります。
この問題を回避するには、次の手順に従います。
- QDR メモリの実行周波数により、 CLK_STABLE パラメーターを 20 マイクロ秒に増やします。
サンプルのトップ モジュールで CLK_STABLE を検索してください。またはデザインのトップ モジュールを使用して CLK_STABLE = (20*1000*1000/(CLK_PERIOD)) に変更します。
- 次のローカル パラメーターを 0 に変更して 200us の遅延をスキップします。
phy_read_sync.v/vhd ファイルから INIT_DONE を探して値を次のように変更します。
変更前の値 :
localparam INIT_DONE = (SIM_INIT_OPTION != "NONE") ? 10 : (200*1000*1000/CLK_PERIOD);
変更後の値 :
localparam INIT_DONE = 0;
注記 : INIT_DONE の 2 番目の回避策はオプションです。
機能上の問題を引き起こすことはありません。
初期化時間を延長します。