altlvds メガファンクションおよび 外部 PLL オプションを使用した Stratix II デバイスのデザイン例 この資料は英語版を翻訳したもので、内容に相違が生じる場合には原文を優先します。こちらの日本語版は参考用としてご利用 ください。設計の際には、最新の英語版で内容をご確認ください。 Application Note 409 2006 年 3 月 ver. 1.0 はじめに altlvdsメガファンクションを使用することで、Stratix® IIデバイス、 HardCopy® II ® デバイスまたは Cyclone II デバイスを使用するときに、外部 PLL(Phase-Locked Loop) をインスタンス化することができます。この外部 PLL は、LVDS モードで 動作する fast PLL です。このオプションにより PLL 設定の制御を強化することが でき、altlvds メガファンクションを使ってシリアライザ / デシリアライザ (SERDES) 回路をインスタンス化する際には使用できない帯域幅やダイナミック・ リコンフィギュレーションなどの PLL オプションでも使用できます。 特別な PLL 機能を使用しない場合は、外部 PLL オプションを使う利点 がないため、altlvds メガファンクションと組み合わせて使用しない でください。 Quartus II プロジェクト このアプリケーション・ノートで説明するプロジェクトには、外部 fast PLL と altlvds レシーブ・メガファンクション間の接続を説明するデザインが含まれて います。デザイン機能を説明するシミュレーション・ファイルを含む ModelSim® プロジェクトは、アルテラのウェブサイトで提供されています。 デザイン・ファイルのダウンロード この例に対するデザイン・ファイルは、アルテラ・ウェブサイトの資料ページ、 または PLL およびクロッキング・デザイン例のページ (www.altera.co.jp/support/examples/functionality/pll-clocking.html) で提供さ れています。 これらのデザイン・ファイル内の例では、外部 PLL モードで LVDS レシーバを使 用しています。 例 次の例では、Quartus® II ソフトウェアの MegaWizard® Plug-In Manager を使用 して、altpll メガファンクションと altlvds メガファンクションを生成して います。 Altera Corporation AN-409-1.0/JP 1 altlvds メガファンクションおよび外部 PLL オプションを使用した Stratix II デバイスのデザイン例 この例では、次の動作を行います。 ■ ■ ■ altlvds メガファンクションと MegaWizardPlug-In Manager を使用して、 高速差動レシーバを生成します。 MegaWizard Plug-In Manager を使用して PLL を生成します。 ModelSim を使用して高速差動インタフェース・デザインをシミュレーショ ンします。 デザインの詳細 このデザインは、altpll と altlvds の 2 つのメガファンクションから構成さ れます。このデザインの機能は、シリアル / パラレル変換係数 8 で 4 チャネルの 入力を 32 ビット幅の出力バスへ変換することです。このデザインの目的は、 altlvdsメガファンクションと外部PLLの使い方、さらに動作に必要となるaltpll メガファンクションと altlvds メガファンクションの設定を紹介することです。 デザイン仕様については、表 1 を参照してください。 表 1. デザイン仕様 仕様 altlvds 入力 出力 rx_datain[4:0]、 説明 rx_out[31:0] 内蔵 PLL なし データ・レート 800 Mb/s altpll tx_inclock = 100 MHz c0 = 100 MHz、// コア・ク ロック sclkout0 = イネーブル・パルス周期はコア・ク ロックと sclkout0 の 2 つのクロッ 800 MHz = データ・レート ク周期の内の大きい方に対応するた enable0 = イネーブル・パ め、イネーブル・パルスは 10 ns 内 ルス に 1 回発生します。(1) 表 1 の注: (1) sclkout0 は、VCO クロックに対して -180 度位相シフトしています。 図 1 に、PLL の入力および出力を示します。 図 1. PLL の入力および出力 c0 ALTPLL tx_inclock sclkout0 enable0 2 Altera Corporation 2006 年 3 月 altlvds レシーバの生成 altlvds レシーバの 生成 この項では、MegaWizardPlug-In Manager を使用して altlvds レシーバを生成 するための altlvds メガファンクションと altpll メガファンクションの生成 方法を説明します。 1. Quartus II ソフトウェアを起動します。Tools メニューの MegaWizard PlugIn Manager をクリックします。Page 1 が表示されます。 2. Create a new custom megafunction variation を選択し、Next をクリックし ます。Page 2a が表示されます。 3. Page 2a の Installed Plug-Ins リストの I/O から ALTLVDS を選択します。 Which device family will you be using? リストから Stratix II を選択します。 What name do you want for the output file?フィールドに出力ファイル名を 入力します。出力ファイル・タイプを選択します。Next をクリックします。 Page 3 が表示されます ( 図 2)。 図 2. Altera Corporation 2006 年 3 月 MegaWizard Plug-in Manager—ALTLVDS、Page 3 4. Currently selected device family リストから Stratix II を選択します。 5. This module acts as an で LVDS receiver を選択します。 6. Use External PLL をオンにします。 altlvds ウィザードを使ってアクセス できない Stratix II fast PLL 機能を利用する場合に、このオプションが必要で す。このオプションをオンにすると、ワーニング・ダイアログ・ボックスが 表示されます ( 図 3)。 3 altlvds メガファンクションおよび外部 PLL オプションを使用した Stratix II デバイスのデザイン例 図 3. MegaWizardPlug-In Manager のワーニング・ダイアログ・ボックス このワーニング・ダイアログ・ボックスは、Stratix II fast PLL 機能を利用す る際に必要な条件のリストを表示します。レシーバ出力をレジスタ化しない 選択を行う場合には、次の条件が必要です。 a. 図 4. altpll と altlvds 間の接続 b. 4 The clock and enable from the PLL feed the receiver—PLL の出力ピン sclkout0 および enable0 により、altlvds メガファンクションの入 力ピン rx_inclock および rx_enable を駆動します ( 図 4)。 The outputs are registered in the logic fed by the receiver—altpll と altlvds 間の接続で、レシーバから駆動されるロジック内で出力がプ リレジスタ化される必要があります。図 5 に、レシーバ出力に追加され た同期レジスタ (rx_sync_reg) を示します。 Altera Corporation 2006 年 3 月 altlvds レシーバの生成 図 5. Sync レジスタを使った altlvds 出力の同期 c. A ‘Source Multicycle’ assignment with a value of DESERIALIZATION_FACTOR should be specified from the receiver atom(s) to the output registers— レシーバ素子 (rx_out) から出力レジ スタ (rx_sync_reg) まで DESERIALIZATION_FACTOR の値でソー ス・マルチサイクル・アサインメントを指定します。 高速トランスミッタ・クロックから低速同期レジスタへデータが転送さ れるため、マルチサイクル・アサインメントなしでは、Quartus II タイ ミング・アナライザは非常に慎重な値でタイミング解析を行います。 rx_out データは、800 MHz すなわち 1.25 ns 周期の高速クロック sclkout0で駆動されます。syncレジスタは、100 MHzすなわち10 ns周 期の低速クロック core_clock0 で駆動されます。デフォルトでは、 Quartus II タイミング・アナライザは、データが連続するアクティブ・ クロック・エッジ ( 図 6) で出力 / ラッチされるものと想定しています。 図 6. 非常に慎重なタイミング計算 Conservative Launch Edge 1.25 ns Source Clock (sclkout0) Latch Edge Destination Clock (c0) Enable Altera Corporation 2006 年 3 月 5 altlvds メガファンクションおよび外部 PLL オプションを使用した Stratix II デバイスのデザイン例 図 6 に示すように、Quartus II ソフトウェアは、altlvds 出力と sync レジスタとの間のデータ転送については、わずか 1.25 ns のみを使用し て、デザインを解析しています。これは非常に慎重な解析方法です。イ ネーブル・パルスによって、高速トランスミッタ・クロックの複数エッ ジの内の 1 つだけが指定の低速コア・クロック周期に関係することがす でに保証されているためです。これを修正するためには、マルチサイク ル・タイミング・アサインメントを Quartus II ソフトウェアに追加し て、タイミング・アナライザが使用するエッジを指定する必要がありま す ( 図 7)。 図 7. 出力エッジとラッチ・エッジの選択 Correct Launch Edge 10 ns Destination Clock (c0) Source Clock (sclkout0) Latch Edge Enable マルチサイクル値を設定するときは、次の構文を使います。 set_instance_assignment -name SOURCE_MULTICYCLE <DESERIALIZATION FACTOR> -from <register name> -to <register name> d. ‘Enable Clock Latency’ setting should be turned on in the Settings/Timing Requirements & Options/More Settings dialog (Assignments Menu)— 外部 PLL モードで altlvds を使 用するには、クロック・レイテンシ設定をオンにする必要があ ります。次の 2 種類のクロック・レイテンシ設定があります。 • • Early Clock Latency Late Clock Latency クロック・レイテンシの設定および使用方法については、Quartus II Help を参照 してください。 6 7. ワーニング・ダイアログ・ボックスで、OK をクリックします。 8. Page 3 の What is the number of channels? リストで、チャネル数を選択ま たは入力します ( 数値がリスト内にない場合、チャネル数を入力することが できます )。この例では、シリアル・データ・チャネル数に 4 を入力します。 Altera Corporation 2006 年 3 月 altpll メガファンクションの生成 ターゲット・デバイス・サイズに対するチャネル数制限については、Stratix II デ バイス・ハンドブックを参照してください。 9. What is the deserialization factor? リストからパラレル変換係数を選択しま す。In this e この例では、パラレル変換係数 (J ファクタ ) として 8 を入力し ます。リストに表示されるパラレル変換係数は、デバイス・ファミリによっ て決定されます。Next をクリックします。Page 4 が表示されます。 10. 設定をデフォルト状態のままにして、Next をクリックします。 Page 5 が表 示されます。 11. Page 5 で、Finish をクリックします。 altlvds モジュールが構築されます。 altpll メガ ファンクション の生成 Altera Corporation 2006 年 3 月 この項では、altpll メガファンクションの生成方法を説明します。 1. Quartus II ソフトウェアを起動します。Tools メニューの MegaWizard PlugIn Manager をクリックします。Page 1 が表示されます。 2. Create a new custom megafunction variation を選択し、Next をクリックし ます。Page 2a が表示されます。 3. Page 2a の Installed Plug-Ins リストの I/O から ALTPLL を選択します。 Which device family will you be using?リストからStratix IIを選択します。 What name do you want for the output file?フィールドに出力ファイル名を 入力します。出力ファイル・タイプを選択します。Next をクリックします。 Page 3 が表示されます ( 図 8)。 7 altlvds メガファンクションおよび外部 PLL オプションを使用した Stratix II デバイスのデザイン例 図 8. MegaWizard Plug-in Manager—ALTPLL、Page 3 4. Which device family will you be using? リストから Stratix II を選択します。 5. What is the frequency of the inclock0 input? リストに 100.00 を入力して MHz を選択します。 sclkout0 の周波数 800 MHz により、入力周波数 200 MHz も生成で きます。所要データ・レートが 800 Mb/s であるため、sclkout0 の 周波数は 800 MHz になります。 6. Set up PLL in LVDS mode をオンにして、Data rate リストから 800.00 Mbps を選択します。 7. Which PLL type will you be using? から fast PLL が自動的に選択されます。 LVDS mode で PLL が選択されると、fast PLL だけが選択可能にな ります。 8. 8 Next をクリックします。Page 4 が表示されます ( 図 9)。 Altera Corporation 2006 年 3 月 altpll メガファンクションの生成 図 9. Altera Corporation 2006 年 3 月 MegaWizard Plug-in Manager—ALTPLL、Page 4 9. Dynamic configuration で、Create optional inputs for dynamic reconfiguration をオフにします。Optional inputs で、全オプションをオフ にします。Lock output で Create ‘locked’ output をオンにし、Enable selfreset on loss of lockとHold ‘locked’ output lowをオフにします。Advanced PLL Parameters で、Create output file(s) using the ‘Advanced’ PLL parametersをオフにします。Nextをクリックします。Page 5が表示されます。 10. Page 5 で、設定をデフォルト状態のままにして、Next をクリックします。Page 6 が表示されます。 11. Page 6 で、設定をデフォルト状態のままにして、Next をクリックします。Page 7 が表示されます ( 図 10)。 9 altlvds メガファンクションおよび外部 PLL オプションを使用した Stratix II デバイスのデザイン例 図 10. MegaWizard Plug-in Manager—ALTPLL、Page 7 12. Use this clock をオンにします。 13. Clock Tap Settings から Enter output clock parameters を選択します。Clock multiplication factor へ 1 を、Clock division factor へ 1 を、それぞれ入力 します。 14. Create sclkout0/enable0 outputs をオンにし、 Enable sclkout phase shift edit をオンにします。 15. Clock Tap Settings で、Clock phase shift に -22.50 を入力し、deg を選択 します。Sclkout phase shift に -180 を入力し、deg を選択します。Clock duty cycle (%) に 50.00 を入力します。 出力クロック sclkout0 の位相シフトは、VCO クロックに対し て-180 度に設定されます。 コア・クロックの位相シフトは -22.5 度に設定されます。これは、 sclkoutの位相シフトをクロック倍率8で除算することにより、式 1 のように計算されます。 (1) 10 sclkout0 frequency = input clock * 8 clock phase shift = 180/8 = 22.5 degrees Altera Corporation 2006 年 3 月 altpll メガファンクションの生成 VCO クロックと PLL 出力クロックとの関係について詳しくは、 「Stratix II デバイ ス・ハンドブック Volume 2」の「Stratix II および Stratix II GX デバイスの PLL」 の章の「enhanced PLL ハードウェアの概要」の項を参照してください。 16. Next をクリックします。Page 8 が表示されます。 17. Page 8 で、設定をデフォルト状態のままにして、Next をクリックします。Page 9 が表示されます。 18. Page 9 で、設定をデフォルト状態のままにして、Next をクリックします。Page 10 が表示されます。 19. Page 10 で、設定をデフォルト状態のままにして、Next をクリックします。 Page 11 が表示されます。 20. Page 11 で、Finish をクリックします。 altpll モジュールが構築されます。 位相シフトを導入する利点は、データが altlvds ピンに現れた後に sclkout0 の立ち上がりエッジで、入力データを確実にキャプチャできるようにすることで す ( 図 11)。 図 11. 位相シフトを導入する利点 注 (1) Input Clock VCO Clock sclkout0 Clock Input Data D1 D2 D3 -180 Degree Phase Shift 図 11 の注: (1) Altera Corporation 2006 年 3 月 データとクロックは、エッジで揃えられているものと想定します。そうでない場 合は、位相シフトを調整します。 11 altlvds メガファンクションおよび外部 PLL オプションを使用した Stratix II デバイスのデザイン例 シミュレー ション デザイン・ファイル lvds_pll.zip を使用して、デザインをシミュレーションする ことができます。lvds_pII.zip ファイルには次のファイルが含まれます。 ■ ■ Quartus_stratixii_extpll.zip。このファイルには Quartus II プロジェクトが 含まれています。 Sim_stratixii_extpll_rtl.zip。このファイルには、ModelSim を使用してゲー ト・レベルのネットリストをシミュレーションするスクリプト・ファイルが 含まれています。このゲート・レベル・ネットリストは Quartus II ソフト ウェア・バージョン 5.1 を使って生成され、シミュレーション・モデルは Quartus II ソフトウェア・バージョン 5.1 を参照する必要があります。次の 3 個のスクリプト・ファイルは次のディレクトリ内にあります : ● ● ● comp_altera_lib.do。 このファイルは、Stratix II コンポーネント用に Altera ライブラリ・ファイルをコンパイルする際に使用します。 comp_gate.do。 このファイルは、ゲート・レベル・ネットリストとテ ストベンチをコンパイルする際に使用します。 sim.do。このファイルを使用して、ライブラリとデザインを ModelSim へロードして、デザインを実行します。 ModelSim を使用して RTL ネットリストをシミュレーションするときは、ユーザ のシミュレーション・ディレクトリ内にある次のファイルに含まれているスクリ プト・ファイルを使用します。 ■ Sim_stratixii_extpll_rtl.zip。このファイルには、ModelSim を使用して RTL ネットリストをシミュレーションするスクリプト・ファイルが含まれていま す。 ● comp_altera_lib.do。 このファイルは、Stratix II コンポーネント用に Altera ライブラリ・ファイルをコンパイルします。 ● comp_rtl.do. このファイルは、 rtlレベルのネットリストとテストベンチ をコンパイルします。 ● sim.do。このファイルは、ライブラリとデザインを ModelSim へロード して、デザインを実行します。 詳細は、アルテラ・ウェブサイト (www.altera.co.jp) の「altlvds メガファンクショ ン・ユーザガイド」 、 「altpll メガファンクション・ユーザガイド」および「Stratix II デバイス・ハンドブック Volume 2」の「Stratix II および Stratix II GX デバイスの PLL」の章を参照してください。 12 Altera Corporation 2006 年 3 月