an 507: cyclone iii デバイスにおけるpllリコン …...an 507: cyclone iii...

18
Altera Corporation 2008 年 1 月 AN 507 2008 1 v1.0 貢∇艷購ラテ∭惚6ワ 紅豪貢腔伍塔廂行ùゖ控﨟 鵠凅遍行購譜艙惚釘纏 絞穀貢荳袿テ∭購複6詹膏 肉詹晃紘 広午ルセ貢墫 行購伍蠱范貢ラテ∭腔塔廂惚 ブ㌙晃紘 広午 AN 507: Cyclone III デバイスにおける PLL リコンフィギュレーションの実装 はじめに 斎昏察砂咋再魂刷作察菜珙PLL珩購伍広晃考拘貢薙鳳混懇策座抗国砿錂荒鵠袞椀韮殤 竭硫珙VCO珩貢鼠ù座再菜惚藻詹 肱伍鳳┍舂遍癩膏鼠ù査斎宰惚帑ネ Cyclone ® III PLL 腔購伍混懇策座ル巵惚鷺唆策斎墾艮肴削察査崎策 肱伍 PLL 頓陪魂 咋再魂貢鼠ù惚罰ª行査斎宰 膏控腔攻合 午合紅債堺察沙刷材策菜抗国砿 作察菜刷斎墾作座刷唆策材察歳策宰惚哇蠍 肱伍PLL 昴僥晰惚罰ª行哇泌 膏豪腔攻合 黒穀貢 PLL 唆策材察歳策宰惚藻詹 肱伍FPGA 菟喪惚鷺唆策斎墾 艮肴削察査崎策 膏荒晃伍頓陪魂咋再魂鳳┍舂伍PLL 昴僥晰伍抗国砿鼠ù査斎 宰惚鷺坤作座婚冴腔蠍范 膏控腔攻合 PLL 惚鷺坤作座婚冴腔鷺唆策斎墾艮肴削察査崎策 鵠雍㋞購伍6舂貢鳳┍舂腔罰捜 鵠坤菜鷺佐察査崎策行衄詹腔 PLL 鷺唆策斎墾艮肴削察査崎策購伍PLL 頓陪鳳┍ 舂惚瑳婚察菜 伍魂咋再魂貢頓陪鼠ù惚妻差婚策貢航貢湾鮗腔豪㌽與腔攻鵠紅濠伍 菜咋宰座婚菜猤劵腔豪衄詹腔 午憎恒郊伍巷鵠塞瑳宰刷犀座察策﨟癩査瑳塞冴購伍 1n鵬妻采婚瑳貢P浅行泱 肱伍50 MHz 合紅購 100 MHz 腔犀座察策惚﨟癩抗国砿 ョ袋 鵠氣P控巷酷合 貢憎腔購伍PLL 唆策材察歳策宰惚鷺坤作座婚冴腔鷺唆 策斎墾艮肴削察査崎策腔攻鵠紅濠伍2 考貢頓陪鳳┍舂惚舂罪婚魂咋╀宣塔行謎酷絋 恒鵠 膏控腔攻合 午合紅伍鷺唆策斎墾艮肴削察査崎策惚藻詹 肱頓陪魂咋再魂貢 鼠ù惚査斎宰 肱伍clock-to-outt co 珩ぅ椄惚鷺坤作座婚冴腔㌽與 膏豪腔攻合 貢眛┃行国酷伍范 PLL ル巵腔唆策斎墾艮肴削察査崎策刷斎困婚作惚悼﨟 鵠氣P控荒晃荒酷合 f 貢坤菜鷺佐察査崎策刷済察宰腔購伍Cyclone III 妻采婚瑳行抗杭鵠 PLL 鷺唆策斎墾 艮肴削察査崎策貢帑2斎咋察行考広肱㌲蕚 貢坤菜鷺佐察査崎策刷済察宰 惚伍宣真貢 Cyclone III 行欄 鵠∇艷膏相 肱藻詹 肱晃紘 広午 碁Dzdmpof JJJ 妻采婚瑳刷災策彩細再魂 Wpmvnf 2語 碁Dmpdl Ofuxpslt boe QMMt jo Dzdmpof JJJ Efwjdft語貢d Qibtf.Mpdlfe Mppq )BMUQMM* Nfhbgvodujpo Vtfs Hvjef Qibtf.Mpdlfe Mppqt Sfdpogjhvsbujpo )BMUQMM`SFDPOGJH* Nfhbgvodujpo Vtfs Hvjef 貢坤菜鷺佐察査崎策刷済察宰腔購伍PLL 鷺唆策斎墾艮肴削察査崎策雍㋞貢藻詹苜 ┃行考広肱㌲蕚 貢坤菜鷺佐察査崎策刷済察宰腔購伍宣真行考広肱㌲蕚 Cyclone III 妻采婚瑳行抗杭鵠 PLL 鷺唆策斎墾艮肴削察査崎策貢鉐P 鳳┍舂菜鷺瑳佐察碕刷坤菜鷺佐察査崎策行抗杭鵠鷺坤作座婚冴 PLL 鷺唆策斎墾 艮肴削察査崎策雍㋞貢帑2貢嶮菟斎咋察 挫婚才財再魂鼠ù査斎宰雍㋞貢帑2貢嶮菟斎咋察 鷺唆策斎墾艮肴削察査崎策貢紅濠貢 PLL 犀碕坂察座惚ぬ碾 鵠膏攻行6琿 荒杭 黒郊荒穀荒広妻差婚策遲チ征慌

Upload: others

Post on 01-Apr-2020

67 views

Category:

Documents


0 download

TRANSCRIPT

Altera Corporation2008 年 1月

2008年 1月 v1.0

この資料は英語版を翻訳したもので、内容に相違がには、最新の英語版で内容をご確認ください。

生じる場合には原文を優先します。こちらの日本語版は参考用としてご利用ください。設計の際

AN 507: Cyclone III デバイスにおけるPLLリコンフィギュレーションの実装

AN 507

はじめにフェーズロック・ループ(PLL)は、いくつかの分周カウンタおよび異なる電圧制御

発振器(VCO)の位相タップを使用して、周波数合成と位相シフトを実行します。

Cyclone® III の PLL では、カウンタ設定をリコンフィギュレーションして、PLL 出力ク

ロックの位相を動的にシフトすることができます。またチャージ・ポンプおよび

ループ・フィルタ・コンポーネントを変更して、PLL 帯域幅を動的に変化させるこ

ともできます。これらの PLL コンポーネントを使用して、FPGA 全体をリコンフィ

ギュレーションすることなく、出力クロック周波数、PLL 帯域幅、および位相シフ

トをリアルタイムで更新することができます。

PLL をリアルタイムでリコンフィギュレーションする機能は、複数の周波数で動作す

るアプリケーションに有用です。PLL リコンフィギュレーションは、PLL 出力周波

数をスイープし、クロックの出力位相をデザインのどの階段でも調整できるため、

プロトタイプ環境でも有用です。例えば、あるテスト・パターン生成システムは、

被試験デバイスの要件に応じて、50 MHz または 100 MHz でパターンを生成および

送信する必要があります。この例では、PLL コンポーネントをリアルタイムでリコ

ンフィギュレーションできるため、2 つの出力周波数を数マイクロ秒以内に切り換

えることができます。また、リコンフィギュレーションを使用して出力クロックの

位相をシフトして、clock-to-out(tco)遅延をリアルタイムで調整することもできま

す。この手法により、新しい PLL 設定でコンフィギュレーション・ファイルを再生

成する必要がなくなります。

f このアプリケーション・ノートでは、Cyclone III デバイスにおける PLL リコンフィ

ギュレーションの実装フローについて説明します。このアプリケーション・ノート

を、以下の Cyclone III に関する資料と併せて使用してください。

■ 「Cyclone III デバイス・ハンドブック Volume 1」の「Clock Networks and PLLs in Cyclone III Devices」の章

■ Phase-Locked Loop (ALTPLL) Megafunction User Guide

■ Phase-Locked Loops Reconfiguration (ALTPLL_RECONFIG) Megafunction User Guide

このアプリケーション・ノートでは、PLL リコンフィギュレーション機能の使用方

法について説明します。このアプリケーション・ノートでは、以下について説明し

ます。

■ Cyclone III デバイスにおける PLL リコンフィギュレーションの概要

■ 周波数プリスケーラ・アプリケーションにおけるリアルタイム PLL リコンフィ

ギュレーション機能の実装の完全フロー

■ ダイナミック位相シフト機能の実装の完全フロー

■ リコンフィギュレーションのための PLL パラメータを選択するときに考慮しなけ

ればならないデザイン検討事項

AN 507: Cyclone III デバイスにおける PLLリコンフィギュレーションの実装 概要

概要次の PLL コンポーネントはリアルタイムでリコンフィギュレーション可能です。

■ プリスケール・カウンタ(N)

■ フィードバック・カウンタ(M)

■ ポストスケール・カウンタ(C0-C4)

■ ポスト分周器(K)

■ チャージ・ポンプ電流(ICP)とループ・フィルタ・コンポーネント(R、C)

図 1 に、新しい設定をシリアル・シフト・レジスタ・チェインまたはスキャン・

チェインにシフトすることによって、PLL カウンタ設定をダイナミックに調整する

方法を示します。シリアル・データが scandataport を通じてスキャン・チェイン

に入力され、シフト・レジスタが scanclk でクロックされます。シリアル・データ

は、scanclkena 信号がアサートされている間には、スキャン・チェインを通じて

シフトされます。データの最終ビットがクロックされた後、リコンフィギュレー

ション・ステート・マシン信号の configupdate 信号を最低 1 scanclkサイクル

アサートすると、PLL コンフィギュレーション・ビットがスキャン・レジスタの

データで同期的に更新されます。また、16 進ファイル(.hex)フォーマットあるい

はメモリ初期化ファイル (.mif) フォーマットのメモリ初期化ファイルを用いて、ス

キャン・チェインを初期化または変更することもできます。 .mif の設定について詳

しくは、、8 ページの「PLL リコンフィギュレーションのスキャン・レジスタ・ビッ

トマップ」を参照してください。

f ハードウェアおよびソフトウェアの実装について詳しくは、「Cyclone III デバイス・ハンドブック Volume 1」の「Clock Networks and PLLs in Cyclone III Devices」の章および「Phase-Locked Loop (ALTPLL) Megafunction User Guide」をそれぞれ参

照してください。

図 1. PLLリコンフィギュレーション・スキャン・チェイン

図 1の注 : (1) この図では、K カウンタの対応スキャン・レジスタは、チャージ・ポンプとループ・フィルタのスキャン・レジスタ間にあり

ます。K カウンタは物理的に VCO の後に配置されます。

/C4 /C3 /C2 /C1 /C0 /M /N

scanclk

scandone

scandata

LF/K/CP (1)

configupdate

inclk

PFD VCO

scanclkena

scandataout

M カウンタから N カウンタから

2 Altera Corporation 2008 年 1 月

AN 507: Cyclone III デバイスにおける PLLリコンフィギュレーションの実装Quartus II ソフトウェアによる PLLリコンフィギュレーションの実装

Quartus II ソフトウェアによる PLLリコンフィギュレーションの実装

Quartus® ALTPLL MegaWizard® Plug-in Manager を使用して、デザイン内の ALTPLLメガファンクション・インスタンスにおけるリコンフィギュレーション回路をイ

ネーブルすることができます。ALTPLL_RECONFIG メガファンクションは、

Cyclone III PLL のリコンフィギュレーション・プロセスを簡素化します。

f 詳細については、「Phase-Locked Loops Reconfiguration (ALTPLL_RECONFIG) Megafunction User Guide 」および「Phase-Locked Loop (ALTPLL) Megafunction User Guide」をそれぞれ参照してください。

次の 2 つの方法では、ALTPLL_RECONFIG メガファンクションを用いて PLL リコ

ンフィギュレーションを実現する手順について説明します。これらの方法のいずれ

かもリコンフィギュレーションに適用します。

■ 方法1は、他のPLLを影響せずに特定のPLLカウンタをリコンフィギュレーション

するのに使用されます。この方法は 1 回に 1 つまたは一部の PLL 設定を変更す

る必要がある時に使用されます。

■ 方法 2 はメモリ初期化ファイルを用いて全ての PLL カウンタ設定をリコンフィ

ギュレーションするのに使用されます。スキャン・チェインは .mif または .hex フォーマットのメモリ初期化ファイルによってアップデートされ、そして PLL カ

ウンタはスキャン・チェインの内容によってアップデートされます。

PLL リコンフィギュレーション: 方法 1特定な PLL カウンタをリコンフィギュレーションするには、ALTPLL_RECONFIGメガファンクションに特定な counter_type、counter_paramおよび data_inをシフト・インします。図 2 に、ALTPLL メガファンクションと ALTPLL_RECONFIG メガファンクション間の接続を示します。

方法 1 による PLL リコンフィギュレーションのステップは次の通りです。

1. 4 ビット counter_type ポートで、カウンタ・タイプ (C0-C4、 M、 N、CP/LF、 VCO) を特定します。

図 2. Quartus IIソフトウェアでの ALTPLL_RECONFIG および ALTPLL メガファンクション

Altera Corporation 32008 年 1月

AN 507: Cyclone III デバイスにおける PLLリコンフィギュレーションの実装 Quartus II ソフトウェアによる PLLリコンフィギュレーションの実装

2. 3 ビット counter_param ポートで、ステップ 1 で選択したカウンタ・タイプに

更新すべきパラメータを選択します。

f 有効な counter_typeおよび counter_param設定については、

「Phase-Locked Loops Reconfiguration (ALTPLL_RECONFIG) Megafunction User Guide 」を参照してください。

3. 9 ビットの新しい data_inポートで、ステップ 2 の counter_paramの値を特

定します。

4. ステップ 1 ~ 3 からの入力がスキャン・チェインに書き込まれるように、

write_param を 1 scanclkサイクル アサートします。

5. busy 信号は、write_paramがアサートされた直後の立ち上がりエッジにおい

てアサートされます。パラメータの書込み中に、busy 信号はアサート状態を維

持します。busy信号がアサートされる時間はスキャン・チェインにシフトされ

たデータによって異なります。

6. busy 信号がディアサートされる時、ステップ 1 ~ 5 の手順で異なる

counter_type をスキャン・チェインに書き込むことができます。

7. すべてのデータがスキャン・チェインにシフトされたら、busy信号がディア

サートされた後、reconfig信号をアサートし、スキャン・チェインの内容に

よって PLL をリコンフィギュレーションします。

図 3 に示すタイミング図は、ALTPLL_RECONFIG メガファンクションによって PLLリコンフィギュレーションを実現するための counter_type、counter_param、 datain、reconfigおよび busy 信号間の関係を示します。

図 3. 方法 1による PLLリコンフィギュレーションのタイミング図

scanclk

reconfig

入力データがスキャン・チェインにシフトされる時、busyはHigh状態に維持します

リコンフィギュレーション時に、busyはHigh状態に維持します

counter_type[3:0]

counter_param[2:0]

data_in[9:0]

write_param

busy

configupdate

scandone

configupdate は最後のdataout ビットがシフトされた後アサートされます

scandone は configupdate がアサートされた後、1クロック・サイクルアサートされます

4 Altera Corporation 2008 年 1 月

AN 507: Cyclone III デバイスにおける PLLリコンフィギュレーションの実装Quartus II ソフトウェアによる PLLリコンフィギュレーションの実装

PLLリコンフィギュレーション:方法 2ALTPLL_RECONFIG メガファンクションを .mif または .hex フォーマットのメモリ

初期化ファイルによって初期化します。メモリ初期化ファイルは PLL リコンフィ

ギュレーション・スキャン・チェインのビットマップです。reconfig信号をパル

スして ALTPLL メガファンクションをメモリ初期化ファイルの内容によって更新し

ます。

counter_type、counter_param および datainポートが使用されていないこと

を除き、このデザイン・セットアップは方法 1 に似ています。制御信号が適切にア

サートされる限り、方法 1 と方法 2 を同一デザインに使用することも可能です。

.mifまたは .hexファイルが有効な設定を持つことを確保するために、リコンフィギュ

レーション後に PLL に新しい入出力設定で個別の ALTPLL メガファンクション・イ

ンスタンスを生成し、ALTPLL MegaWizard で Generate a Configuration File を選

択します。生成された .mif または .hex ファイルをデザインのリコンフィギュレー

ションに使用します。

Cyclone III デバイスの場合に、複数の .mif または .hex ファイルによる複数のリコン

フィギュレーションが可能です。MegaWizard を使用して、デザインを再コンパイ

ルすることなく複数の .mif または .hex ファイルを生成できます。詳細は、10 ペー

ジの「アプリケーション例 1」を参照してください。

方法 2 による PLL リコンフィギュレーションのステップは次の通りです:

1. 新しいコンフィギュレーション設定の .mif または .hex ファイルを生成します。

2. ALTPLL_RECONFIG メガファンクションを .mif または .hex ファイルに関連付

けます。

3. reconfig 信号をアサートして、スキャン・チェインおよび PLL カウンタを

.mif または .hex ファイルの内容によって更新します。

図 4 に、ALTPLL_RECONFIG メガファンクションにおける .mif または .hex ファイ

ルによるリコンフィギュレーションのタイミング図を示します。

図 4. ALTPLL_RECONFIGメガファンクションにおける .mifまたは .hexファイルによるリコンフィギュレーションのタイミング図

configupdate は最後の dataoutビットがシフトされた後にアサートされます

scandone は configupdate がディアサートされた後にアサートされます

リコンフィギュレーションの実行中に、busyはHigh状態に維持します

scandone

configupdate

reconfig

busy

scanclk

Altera Corporation 52008 年 1月

AN 507: Cyclone III デバイスにおける PLLリコンフィギュレーションの実装 Quartus IIによる PLLダイナミック位相シフトの実装

リコンフィギュレーション信号■ write_param 信号は scanclk の立ち上がりエッジでサンプリングされます。ほ

かのクロック・サイクルでパラメータが偶然に再書き込まないように、

write_param 信号は 1 scanclk サイクルのみアサートされる必要があります。

■ reconfig 信号は scanclk の立ち上がりエッジでサンプリングされます。リコン

フィギュレーション後にほかの PLL カウンタがリロードされないように、

reconfig 信号は 1 scanclkサイクルのみアサートされる必要があります。

■ read_param 信号がアサートされると、スキャン・チェインの内容を

scandataout ポートを通して読み出してシフト・アウトされる必要があること

を示します。読み出されたビット位置およびビット数は counter_type とcounter_param の組み合わせによって異なります。read_param 信号は

scanclk の立ち上がりエッジでサンプリングされます。ほかのクロック・サイク

ルでパラメータがよけいに読み出さないように、read_param信号は 1 scanclk サイクルのみアサートされる必要があります。スキャン・チェイン内容

のコピーが読み出されます。read_paramの動作後、スキャン・チェインの内容

が保持されます。

■ busy 信号は read_param、write_param、または reconfig 動作がアサートさ

れた直後でアサートされ、動作完了までは High にしておきます。busy 信号が

アサートされる間に、すべてのスキャン・チェイン入力が無視され、スキャン・

チェインの内容は busy 信号がディアサートされるまでに変更できません。

f ALTPLL_RECONFIG メガファンクション・ポートの機能に関する説明

は、「Phase-Locked Loops Reconfiguration (ALTPLL_RECONFIG) Megafunction User Guide」に参照してください。

リコンフィギュレーション後に、スキャン・チェイン内容は変更されません。ほか

のパラメータが前の値に維持するため、複数のリコンフィギュレーションをしなが

ら、コンフィギュレーションのたびに 1 つのパラメータを選択的に変更することが

できます。

Quartus IIによる PLLダイナミック位相シフトの実装ダイナミック位相シフト機能により、スキャン・チェインをロードせずに個々の

PLL出力の出力位相をほかのPLL出力や基準クロックに対してダイナミックに調整で

きます。位相は 1 度に電圧制御発振器 (VCO)周期の 1/8 ずつシフトされます。出

力クロックは、このダイナミック位相シフトの動作中にアクティブです。

ALTPLL MegaWizard Plug-In Manager を使用して、ALTPLL メガファンクションのイ

ンスタンスでダイナミック位相シフト回路をイネーブルします(図 5 を参照)。

6 Altera Corporation 2008 年 1 月

AN 507: Cyclone III デバイスにおける PLLリコンフィギュレーションの実装Quartus IIによる PLLダイナミック位相シフトの実装

ダイナミック位相シフトに必要な各信号間のタイミング関係については、図 6 のタ

イミング図を参照してください。

次はダイナミック位相シフトの信号:

■ phasestep は scanclk の立ち下りエッジ(a、c)でサンプリングされ、最低 2 scanclk サイクル アサートする必要があります。

■ phaseupdown および phasecounterselectは、phasestep がサンプリングさ

れた直後 scanclkの二番目の立ち上がりエッジ(b、d)でサンプリングされま

す。

■ phasedone は scanclkの二番目の立ち上がりエッジ(b、d)に同期してディア

サートされます。phasedoneは PLL ダイナミック位相シフトが終了した後でア

サートされます。phasedoneの low 時間は、VCO 周波数および scanclk 周波

数によって、1 scanclk サイクルより多いまたは 1 scanclkサイクルより少な

いことになります。

■ phasestep パルスごとに、一回の位相シフトが実行されます。phasestepパル

ス同士には、1 scanclk サイクル以上の間隔が必要です。

■ ダイナミック位相シフト後に PLL をリセットすると、すべての PLL カウンタが元

の位相設定に戻ります。

図 5. ダイナミック位相シフトがイネーブルした ALTPLL

図 6. ダイナミック位相シフトのタイミング図

scanclk

phasestep

phaseupdown

phasecounterselect

phasedone

phasedoneはscanclkに同期してディアサートされますa b c d

Altera Corporation 72008 年 1月

AN 507: Cyclone III デバイスにおける PLLリコンフィギュレーションの実装 Quartus IIによる PLLダイナミック位相シフトの実装

PLLリコンフィギュレーションのスキャン・レジスタ・ビットマップ上級 PLL ユーザーは、「Cyclone III デバイス・ハンドブック Volume 1」の「Clock Networks and PLLs in Cyclone III Devices」の章を参照して、カウンタおよび位相

シフト設定を手動で選択することができです。さまざまなカウンタ、ループ・フィ

ルタおよびチャージ・ポンプの設定に対して、個別のコンフィギュレーション・

ビット設定を決定した後、ページ 9 の表 1 に示すビットマップのどおりビットを配

置します。ページ 9 の表 1 に、PLL スキャン・チェイン・レジスタのビットマップ

を示します。スキャン・チェインにシフトされる最後のビットは Bit0 です。

Bit143は、最初にスキャン・チェインにシフトされるビットです。各カウンタの

デューティ・サイクルは、 high_countおよび low_countビットで設定できます。

必要なデューティ・サイクルを生成するには、カウンタ・ビットを以下のどおりに

セットすべきです。

デューティ・サイクルが 50%、C カウンタが奇数の場合:

high_count = (CounterValue + 1)/2low_count = CounterValue - high_count奇数 / 偶数分周のビット = 1

デューティ・サイクルが 50%、C カウンタが偶数の場合:

high_count = CounterValue/2low_count = CounterValue/2奇数 / 偶数分周のビット = 0

デューティ・サイクルが 50%、C カウンタが 5 の場合:

high_count = 3low_count = 2奇数 / 偶数分周のビット = 1

Nominal countを使用して Mカウンタまたは N カウンタをリコンフィギュレーション

する場合、カウンタ・ビットは自動的に次のどおりに設定されます。

Nominal count が偶数の場合:

high_count = NominalCount/2low_count = NominalCount/2

Nominal count が奇数の場合:

high_count = (Nominalcount + 1)/2low_count = Nominalcount - high_count奇数 / 偶数分周のビット = 1

Nominal count が 1 とする場合:

bypass bit = 1

8 Altera Corporation 2008 年 1 月

AN

507: Cyclone

III デバイスにおける

PLLリコンフィギュレーションの実

装9Altera Corporation

2008年

1月

w_2 C4_low_1 C4_low_0

igh_2 C4_high_1 C4_high_0

w_2 C3_low_1 C3_low_0

igh_2 C3_high_1 C3_high_0

w_2 C2_low_1 C2_low_0

igh_2 C2_high_1 C2_high_0

w_2 C1_low_1 C1_low_0

igh_2 C1_high_1 C1_high_0

w_2 C0_low_1 C0_low_0

igh_2 C0_high_1 C0_high_0

_2 M_low_1 M_low_0

h_2 M_high_1 M_high_0

_2 N_low_1 N_low_0

h_2 N_high_1 N_high_0

— —

— —

— —

— —

— —

— —

表 1. PLLリコンフィギュレーション・スキャン・チェインのビットマップ

ビット PLL スキャン・チェインのビットマップBit135-Bit143 C4_mode_odd/even C4_low_7 C4_low_6 C4_low_5 C4_low_4 C4_low_3 C4_lo

Bit126-Bit134 C4_mode_bypass C4_high_7 C4_high_6 C4_high_5 C4_high_4 C4_high_3 C4_h

Bit117-Bit125 C3_mode_odd/even C3_low_7 C3_low_6 C3_low_5 C3_low_4 C3_low_3 C3_lo

Bit108-Bit116 C3_mode_bypass C3_high_7 C3_high_6 C3_high_5 C3_high_4 C3_high_3 C3_h

Bit99-Bit107 C2_mode_odd/even C2_low_7 C2_low_6 C2_low_5 C2_low_4 C2_low_3 C2_lo

Bit90-Bit98 C2_mode_bypass C2_high_7 C2_high_6 C2_high_5 C2_high_4 C2_high_3 C2_h

Bit81-Bit89 C1_mode_odd/even C1_low_7 C1_low_6 C1_low_5 C1_low_4 C1_low_3 C1_lo

Bit72-Bit80 C1_mode_bypass C1_high_7 C1_high_6 C1_high_5 C1_high_4 C1_high_3 C1_h

Bit63-Bit71 C0_mode_odd/even C0_low_7 C0_low_6 C0_low_5 C0_low_4 C0_low_3 C0_lo

Bit54-Bit62 C0_mode_bypass C0_high_7 C0_high_6 C0_high_5 C0_high_4 C0_high_3 C0_h

Bit45-Bit53 M_mode_odd/even M_low_7 M_low_6 M_low_5 M_low_4 M_low_3 M_low

Bit36-Bit44 M_mode_bypass M_high_7 M_high_6 M_high_5 M_high_4 M_high_3 M_hig

Bit27-Bit35 N_mode_odd/even N_low_7 N_low_6 N_low_5 N_low_4 N_low_3 N_low

Bit18-Bit26 N_mode_bypass N_high_7 N_high_6 N_high_5 N_high_4 N_high_3 N_hig

Bit15-Bit17 CP_2 CP_1 CP_0 — — — —

Bit10-Bit14 Reserved_0 Reserved_1 Reserved_2 Reserved_3 Reserved_4 — —

Bit9 VCO_postscale_0 — — — — — —

Bit4-Bit8 LF_R_0 LF_R_1 LF_R_2 LF_R_3 LF_R_4 — —

Bit2-Bit3 LF_C_0 LF_C_1 — — — — —

Bit0-Bit1 Reserved_5 Reserved_6 — — — — —

AN 507: Cyclone III デバイスにおける PLLリコンフィギュレーションの実装 アプリケーション例1

アプリケーション例 1次の項では、複数の .mif ファイルによる PLL のリコンフィギュレーションおよび

PLLダイナミック位相シフトの使用を含む2つのアプリケーションについて説明しま

す。ここで提供されるデザイン例では、実装の詳細が示されます。このアプリケー

ション・ノート用のデザイン例はアルテラ・ウェブサイトの資料ページからダウン

ロードできます。

ディスプレイ・アプリケーションにおける PLL リコンフィギュレーションディスプレイ・アプリケーションにおいては、Cyclone III PLL は複数のリフレッ

シュ・レートをサポートするために、複数の周波数にロックする必要があります。

複数のリフレッシュ・レートは Cyclone III PLL のリコンフィギュレーション機能に

よって実現できます。アプリケーションが新しいリフレッシュ・レートを生成する

たびに、PLL は新しい入力クロックおよび出力クロック関係にリコンフィギュレー

ションされます。

デザイン例 1このデザイン例では、複数の .mif ファイルを使用してリコンフィギュレーションを

します。5 ページの「PLL リコンフィギュレーション:方法 2」で述べられたステッ

プを実行して PLL リコンフィギュレーションを実現します。

このデザインでは、ALTPLL メガファンクション、ALTPLL_RECONFIG メガファン

クション、3 つの異なる入力周波数に対応する 3 つの .mif ファイルを持つ 3 つの

ROM、およびステート・マシンへの信号が変えるたびに適切な .mif ファイルを選択

して適切な制御信号を生成してダイナミック・リコンフィギュレーションを実現す

るステート・マシンが使用されています。ステート・マシン内のロジックは、自動

的に必要な信号を生成して固定の周波数を得ます。

ブロック図図 7 に、Quartus II ソフトウェアにおけるデザイン例を示します。この ALTPLL メガ

ファンクションはダイナミック・リコンフィギュレーションがイネーブルされた

ままで、外部 ROM(ページ化 .mif ファイル)からの書き込みに用いられるポート

で生成されます。ポートは、図 7に示すように接続されます。

10 Altera Corporation 2008 年 1 月

AN

507: Cyclone

III デバイスにおける

PLLリコンフィギュレーションの実装

アプリケーション例1

Altera Corporation11

2008年

1月

図 7. ALTPLL_RECONFIGメガファンクションのページ化 .mif機能による PLLリコンフィギュレーション

AN 507: Cyclone III デバイスにおける PLLリコンフィギュレーションの実装 アプリケーション例1

プロシージャ次のステップでは、10 ページの「デザイン例 1」のデザイン・フローについて説明

します。

1. ダイナミック・リコンフィギュレーションがイネーブルされたままで ALTPLL メ

ガファンクションをインスタンス化します。PLL を 3 つのデータ・レートのいず

れかでコンフィギュレーションします(この場合では、100 MHz の入力周波数、

100 MHz の出力周波数)。デザインに必要とされる PLL カウンタ出力を選択しま

す。このデザインでは、C0 カウンタ出力が使用されます。MegaWizard を終了

しないでください。

2. MegaWizard の 5 ページでの Generate a Configuration File ボタンを使用して

この PLL コンフィギュレーションの .mif ファイルを生成します。

3. MegaWizard で、PLL カウンタ出力を 200 MHz に変更して .mif ファイルをもう

1 回生成します。ステップ 2 で生成されたファイルを上書しないように、異なる

ファイル名で命名します。

4. MegaWizard で、PLL カウンタ出力を 300 MHz に変更して .mif ファイルをもう

1 回生成します。ステップ 3 で生成されたファイルを上書しないように、異なる

ファイル名で命名します。これで、ディスプレイ・アプリケーション用の 3 つの

異なる入力データ・レートを持つ .mif ファイルが生成されました。

5. MegaWizard で PLL 設定を保存します。これで、PLL は 100 MHz の入力周波数

および 300 MHz の出力周波数にコンフィギュレーションされました。

6. ALTPLL_RECONFIG メガファンクションをインスタンス化します。add ports to write to the scan chain from external ROM during run-time を選択して複数

の .mif ファイルをサポートする機能をイネーブルします。図 7 に示すように、す

べてのポートを ALTPLL メガファンクションに接続します。

7. 1 ビット幅のデータ・バスおよび 8 ビット幅のアドレス・バスで 3 つの ROM を

インスタンス化します。すべての ROM にリード・イネーブル(rden)ポートを

作成します。ステップ 1 ~ 4 で作成した .mif ファイルで 3 つの ROM を初期化し

ます。

f ROM インスタンス化について詳しくは、「ROM Megafunction User Guide」を参照してください。

8. 3 入力の lpm_mux をインスタンス化して、図 7 に示すようにポートを接続しま

す。

9. mifselect ポートへの入力の変更時に適切な ROM を選択するシンプルなス

テート・マシンを作成します。図 7 に示すようにポートを接続します。リコン

フィギュレーションを実現するために、ステート・マシンはマルチプレクサへの

select信号によってROMを選択して、ALTPLL_RECONFIGメガファンクション

に適切な制御信号を生成します。リコンフィギュレーションは、busy信号が

ディアサートされる時のみ実行できます。busy 信号が high の状態では、

mifselect の変化が無視されます。

表 2 に、入力信号および入力信号がステート・マシン出力に対する影響の詳細を

記載します。

12 Altera Corporation 2008 年 1 月

AN 507: Cyclone III デバイスにおける PLLリコンフィギュレーションの実装アプリケーション例1

10.異なる入力を mifselectに適用して、デザインをコンパイルしてシミュレー

ションします。mifselectが変えるたびに、外部 ROM からの異なる .mif ファ

イルはスキャン・チェインにロードされ、PLL はスキャン・チェインの内容でリ

コンフィギュレーションされます。図 8 にシミュレーションの波形を示します。

表 2. デザイン例 1:ステート・マシンの入力信号および出力信号

Mifselect 入力周波数̶出力周波数 影響を受けるカウンタ

00 100 MHz ̶ 100 MHz C001 100 MHz ̶ 200 MHz C010 100 MHz ̶ 300 MHz C011 変更なし なし

図 8. デザイン例 1:シミュレーション波形

Altera Corporation 132008 年 1月

AN 507: Cyclone III デバイスにおける PLLリコンフィギュレーションの実装 アプリケーション例 2

アプリケーション例 2

ALTPLLメガファンクションによるダイナミック位相シフトALTMEMPHY メガファンクションにより、Cyclone III デバイスに物理層インタ

フェース(PHY)を迅速に作成できます。PHY は外部メモリとユーザー・ロジック

間でデータを安全に転送します。Cyclone III ALTMEMPHY メガファンクションは、

初期キャリブレーション・シーケンスをサポートして、FPGA および外部メモリ・

デバイスにおけるプロセス変動による影響を除去します。キャリブレーション・プ

ロセスにより、セットアップおよびホールド・マージンが最大になるように、再同

期化クロックの位相がデータ有効ウィンドウの中央に集められます。

f 詳細は、「External Memory PHY Interface Megafunction User Guide (ALTMEMPHY)」を参照してください。

ALTMEMPHY メガファンクションでのオート・キャリブレーション・コントローラ

は、クロックのダイナミック位相シフトを用いて、有効なデータ・キャプチャ・

ウィンドを決めます。オート・キャリブレーション・コントローラには、入力用の

データ・ストリームおよびクロックがあります。このクロックはリコンフィギュ

レーション可能な PLL に供給され、VCO 期間の 1/8 単位で位相シフトされます。こ

のコントローラは、位相シフトされたクロックを使用してデータをサンプリングし

ます(所期のデータと比較される)。コントローラは、有効なデータ・キャプチャ・

ウィンドウが決められるまでにクロックの位相をシフトします。

デザイン例 2ここで述べられるアプリケーションは、ダイナミック位相シフトを用いてクロック・

エッジをシフトします。このデザインは、dyn_phaseと counter入力信号を有す

るシンプルなステート・マシンおよび ALTPLL メガファンクションで構成されてい

ます。counter信号は PLL への phasecounterselect入力となります。

dyn_phaseに応じて、カウンタ出力位相を前または後にシフトできます。ステー

ト・マシン内のロジックは位相シフトを実現するのに必要な信号を自動的に生成し

ます。

f phasecounterselect設定については、「Cyclone III デバイス・ハンドブック Volume 1」の「Clock Networks and PLLs in Cyclone III Devices」の章を参照して

ください。

ブロック図図 9 に、Quartus II ソフトウェアにおけるデザイン例を示します。この ALTPLL メガ

ファンクションはダイナミック位相シフト・リコンフィギュレーションがイネーブ

ルされたままで生成されます。ダイナミック位相シフト・コントロール・ポートは

図 9 に示されるようにステート・マシンに接続されます。この例では、PLL のすべ

てのカウンタをターゲットとします。

14 Altera Corporation 2008 年 1 月

AN 507: Cyclone III デバイスにおける PLLリコンフィギュレーションの実装アプリケーション例 2

プロシージャ次のステップでは、14 ページの「デザイン例 2」のデザイン・フローについて説明

します。

1. ダイナミック位相シフトがイネーブルされたままで ALTPLL メガファンクション

をインスタンス化します。メガファンクションで PLL を目的の入力周波数および

出力周波数にコンフィギュレーションします。

2. 図 9 に示すように、入力と出力が付いたステート・マシンを作成します。入力信

号およびそのステート・マシン出力に対する影響について詳しくは、表 3 を参照

してください。dyn_phaseが 10 になると、ステート・マシンは適切な出力信号

を生成して位相を前進してシフトします。dyn_phaseが 11 になると、ステー

ト・マシンは適切な出力信号を生成して位相を後退してシフトします。これらの

出力信号の設定方法について詳しくは、ページ 7 の図 6のタイミング図を参照し

てください。

表 3 に、入力信号および入力信号がステート・マシン出力に対する影響の詳細を

記載します。

図 9. Cyclone III ダイナミック位相シフト

表 3. デザイン例 2ステート・マシンの入力ポートおよび出力への影響

カウンタ dyn_phase 位相 影響を受けるカウンタ

0 10 1 ステップ前進 すべての PLL カウンタ0 11 1 ステップ後退 すべての PLL カウンタ0 00 変更なし なし0 01 変更なし なし

Altera Corporation 152008 年 1月

AN 507: Cyclone III デバイスにおける PLLリコンフィギュレーションの実装 デザインの検討事項

3. 入力をカウンタおよび dyn_phaseに適用し、デザインをコンパイルしてシミュ

レートします。dyn_phaseの変更は、phasedoneがアサートされる時にのみ実

行するべきです。phasedoneが low 状態では、dyn_phaseへの変更が無視さ

れます。図 10 にシミュレーションの波形を示します。

4. PLL カウンタ C0 はこのデザイン例で示されたが、ステート・マシンへのカウン

タ入力はそべての PLL 出力カウンタをターゲットとします。ステート・マシンへ

のカウンタ入力を変えて特定の PLL 出力を影響することができます。

f phasecounterselect 設定については、「Cyclone III デバイス・ハンドブック Volume 1」の「Clock Networks and PLLs in Cyclone III Devices」の章を参照してください。

デザインの検討事項ダイナミック位相シフトは Nios® II アプリケーションにも有用です。Nios II プロ

セッサの使用時に、 ほとんどのアプリケーションはオフチップ・メモリ・インタ

フェースを必要とします。メモリ・デバイスにおける不適切なクロッキングは、

コードの実行不能やメモリにおけるバック・ツー・バック・トランザクションの実

行不能などの問題を誘発する可能性があります。ダイナミック位相シフトにより、

PLL を調整してメモリ・デバイスをアクセスする有効な信号ウィンドウを決めること

ができます。ALTPLL メガファンクションから PLL パラメータを読み出すのに必要

な周辺装置を収容するためのハードウェアは、SOPC Builder によって作成できま

す。PLL のオフチップ・メモリ・クロック出力のシフト、SDRAM メモリのテスト、

および SDRAM 有効信号ウィンドウの境界と中心の計算を実行するデザインのソフ

トウェア部分は、C 言語で記述された Nios IDE プロジェクトとして作成できます。

PLL をリコンフィギュレーションするときは、以下の内容について考慮する必要があ

ります。

■ プリスケールおよびフィードバック・カウンタの設定(M、N)、チャージポンプ

またはループ・フィルタの設定を変更すると、PLL VCO 周波数が影響を受ける

ため、PLL を基準クロックに再ロックしなければならない場合があります。

図 10. デザイン例 2:ダイナミック位相シフト・シミュレーション出力

16 Altera Corporation 2008 年 1 月

AN 507: Cyclone III デバイスにおける PLLリコンフィギュレーションの実装デザイン例

■ M カウンタの位相シフト設定を変更すると、基準クロックに対する出力クロック

の位相関係が変化するため、PLL も再ロックする必要があります。プリスケール

およびフィードバック・カウンタの設定(M、N)を変更した場合の正確な影響

は、設定の変更内容によって異なりますが、どの変更を行った場合でも通常は再

クロックが必要です。

■ スキャン・チェインの初期内容を指定する .mif ファイルを使用しない場合は、デ

バイスがユーザー・モードに入る時にスキャン・チェインは空白となります。

PLL はプログラマ・オブジェクト・ファイル(.pof)にプログラミングされた設

定に基づいて初期状態にコンフィギュレーションされます。

■ ループ・エレメント(M、N、M カウンタ位相、Icp、R、C)を変更する場合に、

アルテラは、ALTCLKCTRL メガファンクションにある clkena 信号を使用し

て、ロジック・アレイへの PLL 出力をディセーブルすることを推奨しています。

これにより、システム・ロジックに影響を与える過度の高周波数状態がなくなり

ます。

■ ポスト・スケール・カウンタ (C) や位相を変更しても、PLL ロックや VCO 周波数

は影響を受けません。位相シフトの分解能は、常に最小の増分ステップ(VCO 周期の 1/8 に等しい)を持つ VCO 周波数の関数としています。

■ 出力クロック間の位相関係が重要な場合、アルテラは areset信号を使用して

PLL を再同期化することを推奨しています。これにより、すべての内部 PLL カウ

ンタがリセットされ、ロック・プロセスが再開されます。

■ Cyclone III PLL スキャン・チェインでは自走式の scanclk がサポートされてい

るため、クロックの開始と停止を厳密に制御する必要はありません。

■ M カウンタまたは N カウンタの値の変化はすべての出力クロック周波数に影響を

与えます。また、出力カウンタは個別でリコンフィギュレーションできます。

■ scandone 信号は scanclk のポジティブ・エッジと同期し、リコンフィギュレー

ションが完了した後 ALTPLL により最低 1 クロック・サイクル アサートされま

す。

デザイン例デザイン例はアルテラ・ウェブサイトの資料ページからダウンロードできます。デ

ザイン例のダウンロードおよび使用については、以下の指示を参照してください。

デザイン例 1:ディスプレイ・アプリケーションにおける PLL リコンフィギュレーション

Design Example 1 (an507_display_de1.zip) を解凍して Quartus II ソフトウェアで

コンパイルします。この例では、3 つの .mif ファイルはすでにセットアップされて

います。この例と共に提供されるベクタ波形ファイル(.vwf)を使用してタイミン

グ・シミュレーションを実行します。mifselect が変更された後、PLL はリコン

フィギュレーション後にロックを失うことがあります。ロックが回復した後、PLL出力周波数はリコンフィギュレーションのために選択された .mif ファイルによって

変化します 。

Altera Corporation 172008 年 1月

AN 507: Cyclone III デバイスにおける PLLリコンフィギュレーションの実装結論

101 Innovation DriveSan Jose, CA 95134www.altera.comTechnical Supportwww.altera.com/support

Copyright © 2009 Altera Corporation. All rights reserved. Altera, The Programmable Solutions Company, the stylized Altera logo, specific device designations, and all other words and logos that are identified as trademarks and/or service marks are, unless noted otherwise, the trademarks and service marks of Altera Corporation in the U.S. and other countries. All other product or service names are the property of their respective holders. Altera products are protected under numerous U.S. and foreign patents and pending applications, maskwork rights, and copyrights. Altera warrants performance of its semiconductor products to current specifications in accordance with Altera's standard warranty, but reserves the right to make changes to any products and services at any time without notice. Altera assumes no responsibility or liability arising out of the application or use of any information, product, or service described herein except as expressly agreed to in writing by Altera Corporation. Altera customers are advised to obtain the latest version of device specifications before relying on any published information and before placing orders for products or services.

デザイン例 2:ALTPLLメガファンクションによるダイナミック位相シフトDesign Example 2 (an507_altpll_dynphase_de2.zip) を解凍して Quartus II ソフト

ウェアでコンパイルします。この例と共に提供される .vwf ファイルを使用してタイ

ミング・シミュレーションを実行します。この例は位相を 2 回上昇させるように設

定されます。PLL カウンタ出力の変化を観察することができます。エッジは、最初

の位相シフト後に 1/8 の VCO 周期、二回目の位相シフト後に 1/4 の VCO 周期を進

めるようにシフトされます。

結論PLL リコンフィギュレーションは、PLL クロック出力周波数を変化でき、そして任意

のステージでも位相をシフトできる強力な機能です。ロック状態の喪失やグリッチ、

出力位相関係などの重要な検討事項は、PLL カウンタの設定および位相シフトの設

定に影響を与えます。こうした柔軟性により、Cyclone III は優れたクロック管理シ

ステムとなります。

参考資料このアプリケーション・ノートでは、以下のドキュメントを参照しています。

■ 「Cyclone III デバイス・ハンドブック Volume 1」の「Clock Networks and PLLs in Cyclone III Devices」

■ Phase-Locked Loop (ALTPLL) Megafunction User Guide

■ Phase-Locked Loops Reconfiguration (ALTPLL_RECONFIG) Megafunction User Guide

■ ROM Megafunction User Guide

■ External Memory PHY Interface Megafunction User Guide (ALTMEMPHY)

改訂履歴表 4 に、このアプリケーション・ノートの改訂履歴を示します。

表 4. 改訂履歴

日付およびリビジョン 変更内容 概要

2008 年 1 月 ver 1.0 ■ 初版 ̶