PCI Express コンパイラ・ ユーザガイド 101 Innovation Drive San Jose, CA 95134 (408) 544-7000 www.altera.co.jp この資料は英語版を翻訳したもので、内容に相違 が生じる場合には原文を優先します。こちらの日 本語版は参考用としてご利用ください。設計の際 には、最新の英語版で内容をご確認ください。 MegaCore バージョン : ドキュメント・バージョン : ドキュメント・デート : 6.1 6.1 rev. 2 2006 年 12 月 Copyright © 2006 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. UG-PCI10605-1.4.1 ii PCI Express Compiler Version 6.1 PCI Express コンパイラ・ユーザガイド Altera Corporation 目次 このユーザガイドについて 改訂履歴 ................................................................................................................................................... vii アルテラへのお問い合わせ .................................................................................................................. viii 表記規則 ..................................................................................................................................................... ix 1. このコンパイラについて リリース情報 .......................................................................................................................................... 1–1 サポートされるデバイス・ファミリ .................................................................................................. 1–1 Compiler バージョン 6.1 の新機能 ..................................................................................................... 1–2 機能 .......................................................................................................................................................... 1–2 概要 .......................................................................................................................................................... 1–3 テストベンチおよびデザイン例 : シンプル DMA およびチェインニング DMA ................... 1–5 OpenCore Plus 評価機能 ................................................................................................................. 1–6 パフォーマンス ...................................................................................................................................... 1–7 2. 使用法 デザイン・フロー ................................................................................................................................. 2–1 PCI Express の実習 ................................................................................................................................ 2–2 MegaWizard Plug-In Manager の起動 .......................................................................................... 2–3 パラメータ設定 ................................................................................................................................. 2–5 シミュレーションのセットアップ ................................................................................................. 2–9 ファイルの生成 ............................................................................................................................... 2–12 デザインの シミュレーション ................................................................................................................................ 2–15 IP 機能シミュレーション・モデル .............................................................................................. 2–15 デザインのコンパイル ........................................................................................................................ 2–16 Program a Device ................................................................................................................................ 2–17 ライセンスのセットアップ ................................................................................................................ 2–18 Altera Corporation 2006 年 12 月 PCI Express Compiler Version 6.1 iii 目次 3. 仕様 機能の説明 .............................................................................................................................................. 3–1 エンドポイントの種類 ..................................................................................................................... 3–2 トランザクション・レイヤ ............................................................................................................. 3–2 データ・リンク・レイヤ ................................................................................................................. 3–8 物理レイヤ ....................................................................................................................................... 3–11 スループットの解析 ....................................................................................................................... 3–12 コンフィギュレーション・スペース・レジスタの内容 ........................................................... 3–20 アクティブ・ステート・パワー・マネージメント(ASPM)................................................. 3–24 エラー処理 ....................................................................................................................................... 3–27 Stratix GX PCI Express の互換性 ................................................................................................. 3–34 OpenCore Plus タイム・アウト動作 ........................................................................................... 3–34 パラメータ設定 .................................................................................................................................... 3–36 System Settings ページ .................................................................................................................. 3–36 Capabilities ページのパラメータ ................................................................................................. 3–41 Buffer Setup ページ ........................................................................................................................ 3–44 Power Management ページ .......................................................................................................... 3–49 信号 ........................................................................................................................................................ 3–51 送信インタフェース動作信号 ....................................................................................................... 3–53 受信インタフェース動作信号 ....................................................................................................... 3–69 クロック ........................................................................................................................................... 3–81 ユーティリティ信号 ....................................................................................................................... 3–87 alt2gxb サポート信号 ..................................................................................................................... 3–99 物理レイヤ・インタフェース信号 ............................................................................................. 3–101 MegaCore 検証 ................................................................................................................................... 3–105 シミュレーション環境 ................................................................................................................. 3–105 互換性テストの環境 ..................................................................................................................... 3–105 4. 外部 PHY 外部 PHY のサポート ............................................................................................................................ 4–1 16 ビット SDR モード ...................................................................................................................... 4–2 ソース・シンクロナス TxClk 付き 16 ビット SDR モード ........................................................ 4–3 8 ビット DDR モード ....................................................................................................................... 4–5 ソース・シンクロナス TxClk 付き 8 ビット DDR ...................................................................... 4–6 8 ビット SDR モード ........................................................................................................................ 4–8 ソース・シンクロナス TxClk 付き 8 ビット SDR ....................................................................... 4–9 16 ビット PHY インタフェース信号 ........................................................................................... 4–11 8 ビット PHY インタフェース信号 ............................................................................................. 4–13 外部 PHY の選択 .................................................................................................................................. 4–15 外部 PHY 制約のサポート .................................................................................................................. 4–16 外部 PHY と Stratix GX デバイス・ファミリの使用 ................................................................ 4–17 iv PCI Express Compiler Version 6.1 PCI Express コンパイラ・ユーザガイド Altera Corporation 2006 年 12 月 目次 5. テストベンチおよびデザイン例 テストベンチ .......................................................................................................................................... 5–3 シンプル DMA デザイン例 .................................................................................................................. 5–6 デザイン例の BAR/ アドレス・マップ ...................................................................................... 5–10 チェイニング DMA デザイン例 ........................................................................................................ 5–14 デザイン例の BAR/ アドレス・マップ ...................................................................................... 5–19 チェイニング DMA ディスクリプタ・テーブル ....................................................................... 5–20 テスト・ドライバ・モジュール ........................................................................................................ 5–23 シンプル DMA デザイン例用の BFM テスト・ドライバ・モジュール ................................ 5–23 チェイニング DMA デザイン例用の BFM テスト・ドライバ・モジュール ........................ 5–27 ルート・ポート BFM ........................................................................................................................... 5–32 BFM メモリ・マップ ..................................................................................................................... 5–35 コンフィギュレーション・スペース・バスおよびデバイスの番号付与 ............................... 5–35 ルート・ポートおよびエンド・ポイントのコンフィギュレーション ................................... 5–35 アプリケーション・レイヤへのリード&ライト・トランザクションの発行 ....................... 5–38 BFM プロシージャおよびファンクション ....................................................................................... 5–39 BFM リードおよびライト・プロシージャ ................................................................................. 5–40 BFM パフォーマンス・カウント ................................................................................................. 5–47 BFM リード / ライト要求プロシージャ ..................................................................................... 5–48 BFM コンフィギュレーション・プロシージャ ......................................................................... 5–50 BFM 共有メモリ・アクセス・プロシージャ ............................................................................. 5–52 BFM ログおよびメッセージ・プロシージャ ............................................................................. 5–56 Verilog HDL フォーマッティング・ファンクション ............................................................... 5–62 チェイニング DMA デザイン固有のプロシージャおよびファンクション ........................... 5–68 付録 A. コンフィギュレーション信号 X1 および x4 MegaCore ファンクションのコンフィギュレーション信号 ............................................................................. A–1 X8 MegaCore ファンクションのコンフィギュレーション信号 .................................................... A–7 付録 B. トランザクション・レイヤ・パケットのヘッダ・フォーマット データ・ペイロードを含まないコンテンツ ..................................................................................... B–1 データ・ペイロードを含むコンテンツ ............................................................................................. B–2 付録 C. テスト・ポート・インタフェース信号 x1 & x4 MegaCore ファンクション用テスト・アウト・インタフェース信号 ............................................................. C–2 x8 MegaCore ファンクション用テスト・アウト・インタフェース信号 .................................. C–20 テスト・イン・インタフェース ....................................................................................................... C–23 Altera Corporation 2006 年 12 月 PCI Express Compiler Version 6.1 v PCI Express コンパイラ・ユーザガイド 目次 vi PCI Express Compiler Version 6.1 PCI Express コンパイラ・ユーザガイド Altera Corporation 2006 年 12 月 このユーザガイド について 以下の表に、このユーザガイドの章の改訂履歴を示します。 改訂履歴 章 1 日付 バージョン 2006 年 12 月 6.1 変更内容 ● ● 2006 年 4 月 2.1.0 ● ● 2005 年 10 月 2.0.0 内容を再編 性能情報を更新 ● 2005 年 6 月 1.0.0 ● 初回リリース 12 月 6.1 ● スクリーン・ショットおよびバージョン番号を更新 新しいMegaWizard® インタフェースに対応するためにテキスト を変更 インストール図を更新 新しいMegaWizardインタフェースに対応するために実習を更新 ● ● ● 2006 年 4 月 2.1.0 ● スクリーン・ショットおよびバージョン番号を更新 コンパイル中に、2–16 ページの「デザインのコンパイル」の項 にある実習に Tcl 制約ファイルを供給するためのステップを追 加 インストール情報をリリース・ノートに移動 ● ● 3 デバイス・ファミリのサポートを追加 バージョンおよび性能情報を更新 ×8 サポートを追加 Stratix II GX および Cyclone® II デバイスのサポートを追加 性能情報を更新 ● ● 2 Stratix® III 2005 年 10 月 2.0.0 ● スクリーン・ショットおよびバージョン番号を更新 2005 年 6 月 1.0.0 ● 初回リリース 2006 年 12 月 6.1 ● 新しい MegaWizard インタフェースのスクリーン・ショットと パラメータを更新 タイミング図を修正 2006 年 4 月 2.1.0 ● ● ● ● ● 3–12 ページの「スループットの解析」の項を追加 スクリーン・ショットおよびバージョン番号を更新 System Settings、Capabilities、Buffer Setup、および Power Management ページとそれらのパラメータを更新 以下の 3 つの波形図を追加 シングル・ライトのための転送 パケットを受け入れる状態にないトランザクション・レイヤ シングル DWORD に挿入されるウェイト・ステート付き転送 2005 年 10 月 2.0.0 ● スクリーン・ショットおよびバージョン番号を更新 2005 年 6 月 1.0.0 ● 初回リリース Altera Corporation 2006 年 12 月 PCI Express Compiler Version 6.1 vii PCI Express コンパイラ・ユーザガイド アルテラへのお問い合わせ 章 4 5 日付 バージョン 2006 年 12 月 6.1 変更内容 ● 新しいプロジェクト・ディレクトリ構造に対応するためにファ イル名を変更 高性能チェインド DMA 例の参考情報を追加 2006 年 4 月 2.1.0 ● 外部 PHY サポートのために、新しい章「外部 PHY」を追加 2006 年 12 月 6.1 ● 高性能チェインド DMA 設計例を追加 2006 年 4 月 2.1.0 ● ● 章の番号を 5 章に更新 項を追加 以下の 2 つの BFM 読み出し / 書き込み手順を追加 ebfm_start_perf_sample 手順 ebfm_disp_perf_sample 手順 ● ● 付録 A 付録 B 付録 C 2005 年 10 月 2.0.0 ● スクリーン・ショットおよびバージョン番号を更新 2005 年 6 月 1.0.0 ● 初回リリース 2006 年 4 月 2.1.0 ● ×8 ECRC の制約を削除 2005 年 6 月 1.0.0 ● 初回リリース 2005 年 10 月 2.1.0 ● 小さな修正 2005 年 6 月 1.0.0 ● 初回リリース 4月 2.1.0 ● ×8 に対する ECRC サポートを含めるように ECRC を更新 2005 年 10 月 1.0.0 ● ×8 に対するサポートがないことを示すように ECRC を更新 ● 初回リリース ● ユーザガイド全体での小さな書式変更 2005 年 6 月 すべて 2006 年 4 月 アルテラへの お問い合わせ 2.1.0 rev 2 ア ル テ ラ 製 品 に 関 す る 最 新 情 報 は、ア ル テ ラ の ウ ェ ブ サ イ ト、 www.altera.co.jp をご覧ください。テクニカル・サポートについては、 www.altera.co.jp/mysupport にアクセスしてください。また、アルテラ の販売代理店にもお問い合わせいただけます。 viii PCI Express Compiler Version 6.1 PCI Express コンパイラ・ユーザガイド Altera Corporation 2006 年 12 月 このユーザガイド について 表記規則 書体 本資料では以下の表記規則を使用しています。 意味 太字かつ文頭が大文字 コマンド名、ダイアログ・ボックス・タイトル、チェックボックス・オプショ ン、およびダイアログ・ボックス・オプションは、太字かつ文頭が大文字で表 記されています。例 : Save As ダイアログ・ボックス 太字 外部タイミング・パラメータ、ディレクトリ名、プロジェクト名、ディスク・ ドライブ名、ファイル名、ファイルの拡張子、およびソフトウェア・ユーティ リティ名は、太字で表記されています。 例 : fMAX, \qdesigns ディレクトリ、d: ドライブ、chiptrip.gdf ファイル 斜体かつ文頭が大文字 資料のタイトルは、斜体かつ文頭が大文字で表記されています。 例 : AN 75: High-Speed Board Design 斜体 内部タイミング・パラメータおよび変数は、斜体で表記されています。 例 : tPIA, n + 1 変数は、山括弧景 (< >) で囲み、斜体で表記されています。 例 : < ファイル名 >、< プロジェクト名 >.pof ファイル 文頭が大文字 キーボード・キーおよびメニュー名は、文頭が大文字で表記されています。 例 : Delete キー、Options メニュー 「小見出しタイトル」 資料内の小見出しおよびオンライン・ヘルプ・トピックのタイトルは、鉤括弧 で囲んでいます。例 :「表記規則」 Courier フォント 信号およびポート名は、Courier フォントで表記されています。 例 : data1、 tdi、 input。アクティブ Low 信号は、サフィックス n で表示 されています ( 例 : resetn)。 表示されているとおりに入力する必要があるものは、Courier フォントで表記 されています ( 例 : c:\qdesigns\tutorial\chiptrip.gdf)。また、 Report ファイルのような実際のファイル、ファイルの構成要素 ( 例 : AHDL キーワードの SUBDESIGN)、ロジック・ファンクション名 ( 例 : TRI) も Courier フォントで表記されています。 1.、2.、3. および a.、b.、c. など 手順など項目の順序が重要なものは、番号が付けられリスト形式で表記されて います。 ■ 箇条書きの黒点などは、項目の順序が重要ではないものに付いています。 ● • 9 チェックマークは、1 ステップしかない手順を表します。 指差しマークは、要注意箇所を表しています。 CAUTION マークは、特別な配慮および理解が必要であり、手順またはプロセ スを始める前、または続ける際に確認すべき情報を示しています。 注意マークは、手順またはプロセスを始める前、または続ける際に確認すべき 情報を示しています。 矢印は、Enter キーを押すことを示しています。 足跡マークは、詳細情報の参照先を示しています。 Altera Corporation 2006 年 12 月 PCI Express Compiler Version 6.1 ix PCI Express コンパイラ・ユーザガイド 表記規則 x PCI Express Compiler Version 6.1 PCI Express コンパイラ・ユーザガイド Altera Corporation 2006 年 12 月 1. このコンパイラ について リリース情報 表 1–1 に、アルテラの PCI Express コンパイラのリリースに関する情報 を示します。 表 1–1. PCI Express コンパイラのリリース情報 項目 サポートされ るデバイス・ ファミリ Altera Corporation 2006 年 12 月 説明 バージョン 6.1 リリース月 2006 年 12 月 製品コード IP-PCIE/1 IP-PCIE/4 IP-PCIE/8 プロダクト ID 00A9 00AA 00AB ベンダ ID 6A66 MegaCore® ファンクションは、ターゲットのアルテラ・デバイス・ファ ミリに対し、フル・サポートあるいは暫定サポートを提供しています。 ■ フル・サポートとは、MegaCore ファンクションがデバイス・ファミ リのすべての機能要件およびタイミング要求値を満たし、生産デザ インで使用できることを意味します。 ■ 暫定サポートとは、MegaCore ファンクションがすべての機能要件を 満たすが、デバイス・ファミリに対するタイミング解析の実行中で あるため、生産デザインでの使用は注意が必要な場合があることを 意味します。 PCI Express Compiler Version 6.1 1–1 Compiler バージョン 6.1 の新機能 表 1–2 に、PCI Express Compiler による各アルテラ・デバイス・ファミ リへのサポートのレベルを示します。 表 1–2. サポートされるデバイス・ファミリ デバイス・ファミリ Cyclone® II HardCopy® サポートの種類 フル・サポート II 暫定サポート Stratix® II フル・サポート Stratix II GX 暫定サポート Stratix III 暫定サポート Stratix GX フル・サポート その他のデバイス・ファミリ サポートなし Compiler バー ジョン 6.1 の 新機能 このバージョンには、以下の機能が追加されています。 機能 ■ ■ ■ ■ ■ Stratix III デバイスのサポート 新しい MegaWizard® インタフェース チェインニング DMA による高性能デザイン例 共通クロック・アプリケーションのためのレイテンシの低減 非透過ブリッジ・アプリケーションを含む ×1、×4、および ×8 エンド ポイント・アプリケーションのサポート ● Cyclone II、HardCopy II、Stratix II、Stratix II GX、Stratix III、 および Stratix GX のサポート ● ×1、×4、および ×8 アプリケーションに対するエンベデッド・ト ランシーバのサポート • Stratix II GX デバイスでの ×8 のサポート ● ×1 および ×4 MegaCore ファンクションに対する包括的な外部 PHY のサポート ■ PCI Express Base Specification 1.1 に準拠 ■ カスタマ・デザインへの統合が容易 ● アルテラでサポートしている VHDL、Verilog HDL シミュレー タ上で使用可能な機能シュミレーション・モデル ● シンプル DMA デザイン例 ● 高性能チェインニング DMA デザイン例 ■ 柔軟性が高くコンフィギュレーション可能なMegaCoreファンクション ● 最大 4 本のバーチャル・チャネル ● 2K バイトまで(128、256、512、1,024、または 2,048 バイト)の ペイロード ● 最大 16K バイト(256 バイト∼ 16K バイト)のリトライ・バッ ファ・サイズ 1–2 PCI Express Compiler Version 6.1 PCI Express コンパイラ・ユーザガイド Altera Corporation 2006 年 12 月 このコンパイラ について ■ 高信頼性機能へのアクセス ● ×1、×4、および ×8 レーンに対するオプションの ECRC (end-toend cyclic redundancy code)/AER (advanced error reporting)の サポート ■ OpenCore Plus を使用した無償の評価 概要 PCI Express コンパイラは、ユーザが PCI Express エンドポイントを設計 するのに使用するカスタマイズされた PCI Express MegaCore ファンク ション(非透過ブリッジを含む)、または 1 個のアルテラ・デバイスに複 数の PCI Express コンポーネントを組み合わせて搭載した真にユニーク なデザインを生成します。PCI Express MegaCore ファンクションは、PCI Express Base Specification Revision 1.1 または PCI Express™ Base Specification Revision 1.0a に準拠し、トランザクション、データ・リンク、 および物理層の仕様のうちすべての必須機能と大部分のオプション機能 を実装します。 PCI Express コンパイラを使用すれば、×1、×4、または ×8 動作の 3 つの 機能からエンドポイント・アプリケーションに最適な動作を選択するこ とができます。図 1-1 に、あるシステム例での PCI Express MegaCore ファンクションの使用方法を示します。Stratix GX または Stratix II GX デバイス用の MegaCore ファンクションをターゲットにする場合、 MegaCore ファンクションには、MAC、PCS、PMA レイヤをはじめと して、完全な PHY レイヤが含まれています。他のデバイス・アーキテ クチャをターゲットにする場合、PCI Express コンパイラはインテル仕 様の PIPE インタフェースを備えた MegaCore ファンクションを生成す るため、この MegaCore ファンクションは PIPE 準拠の外部 PHY デバイ スで使用できます。 外部 PHY を選択する際に、PCI Express MegaCore ファンクションは、 8 ビット DDR モードまたは 16 ビット SDR モードの TI XIO1100 PHY、8 ビット SDR モードの Philips PX1011A、Stratix II GX および Stratix GX デバイス用の シリアル PHY、およびソース同期送信クロック・モード 付きまたはなしの 8 ビット /16 ビット SDR およびソース同期送信クロッ ク・モード付きまたはなしの 8 ビット DDR を使用した多様なカスタム PHY をはじめとする、多種多様な PHY をサポートします。 Altera Corporation 2006 年 12 月 PCI Express Compiler Version 6.1 1–3 PCI Express コンパイラ・ユーザガイド 概要 図 1-1. PCI Express システムの例 Root Complex PCI Express Link PCI Express Link Switch External PHY PIPE Interface Stratix GX or Stratix II GX Device Stratix II or Cyclone II Device Endpoint Endpoint PCI Express MegaCore Function PCI Express MegaCore Function User Application Logic User Application Logic PCI Express コンパイラはアルテラ・デバイスに対して最適化されてお り、すべてのメモリ、I/O、コンフィギュレーション、およびメッセー ジ・トランザクションをサポートしています。MegaCore ファンクショ ンは、最大有効スループットを達成する高度に最適化されたアプリケー ション・インタフェースを備えています。このコンパイラはパラメータ 化が可能なので、Quartus® II ソフトウェアで MegaWizard インタフェー スを使用することによって、デザイン要件に適合するように MegaCore ファンクションをカスタマイズできます。たとえば、MegaCore ファン クションは、×1 または ×4 コンフィギュレーションでは最大 4 本のバー チャル・チャネル、または ×8 コンフィギュレーションでは最大 2 本の バーチャル・チャネルをサポートできます。また、ペイロード・サイズ、 バッファ・サイズ、およびコンフィギュレーション・スペース(ベース・ アドレス・レジスタのサポートおよび他のレジスタ)をカスタマイズす ることも可能です。さらに PCI Express コンパイラは、×1、×4、および ×8 コ ン フ ィ ギ ュ レ ー ションに対しては、ECRC (end-to-end cyclic redundancy code) と AER (advanced error reporting) もサポートしてい ます。 PCI Express MegaCore ファンクションには、MegaCore ファンクション の監視と制御が可能なデバッグ機能も含まれています。これらの追加の 入力および出力は、システム・レベルの問題をより迅速にデバッギング するのに役立ちます。 1–4 PCI Express Compiler Version 6.1 PCI Express コンパイラ・ユーザガイド Altera Corporation 2006 年 12 月 このコンパイラ について テストベンチおよびデザイン例 : シンプル DMA および チェインニング DMA PCI Express コンパイラには、ベーシック・ルート・ポート BFM (bus functional model) およびシンプル DMA とチェインニング DMA の 2 つ のエンドポイント・デザイン例に対応するエンドポイント・テストベン チが含まれています。両方のエンドポイント・デザイン例は、PCI Express MegaCore ファンクションへのアプリケーション・インタフェースを示 し、シミュレーションと合成の両方、およびハードウェアでの MegaCore ファンクションの OpenCore Plus 評価に適したクリア・テキスト・ソー ス・コード(VHDL および Verilog HDL)として供給されます。ベーシッ ク・ルート・ポート BFM には、ルート・ポートのドライバと IP 機能シ ミュレーション・モデルが組み込まれています。図 1-2 に、シンプル DMA 例に対するエンドポイント・テストベンチ・セットアップを示します。 図 1-3 に、チェインニング DMA 例に対するテストベンチを示します。 図 1-2. シンプル DMA 例のテストベンチ Root Port BFM Root Port Driver User Interface x8 Root Port Model PCI Express Link Endpoint Simple DMA Example PCI Express MegaCore Function User Interface Endpoint Application Layer Example Traffic Control/Virtual Channel Mapping Request/Completion Routing Target Control Target Memory (32 KBytes) Altera Corporation 2006 年 12 月 DMA Control Registers DMA Control DMA Memory (32 KBytes) PCI Express Compiler Version 6.1 1–5 PCI Express コンパイラ・ユーザガイド 概要 図 1-2 または図 1-3 に示すエンドポイント・アプリケーション・レイヤ 例をユーザ独自のアプリケーション・レイヤ・デザインに置き換え、BFM ドライバを変更して、アプリケーション・レイヤをテストするのに必要 なトランザクションを生成することができます。 図 1-3. チェインニング DMA 例のテストベンチ Root Port BFM Root Port Driver User Interface x8 Root Port Model PCI Express Link Endpoint Example PCI Express MegaCore Function User Interface Endpoint Application Layer Example Traffic Control/Virtual Channel Mapping Request/Completion Routing RC Slave (Optional) DMA Write DMA Read Endpoint Memory (32 KBytes) OpenCore Plus 評価機能 アルテラの無償 OpenCore Plus 評価機能により、以下の操作を実行でき ます。 ■ ■ システム内の MegaCore ファンクションの動作のシミュレーション デザインの機能を検証したり、サイズやスピードを素早く簡単に評 価可能 1–6 PCI Express Compiler Version 6.1 PCI Express コンパイラ・ユーザガイド Altera Corporation 2006 年 12 月 このコンパイラ について ■ MegaCore ファンクションを含んだ期限付きデバイス・プログラミン グ・ファイルの生成 ■ デバイスをプログラムし、デザインをハードウェアで検証 MegaCore を製品に組み込む場合にのみ、ライセンスを購入していただ く必要があります。 PCI Express コンパイラを使用した OpenCore Plus ハードウェア評価に ついて詳しくは、3–34 ページの「OpenCore Plus タイム・アウト動作」 および「AN 320: IP メガファンクション評価のための OpenCore Plus」 機能を参照してください。 パフォーマン ス この項の表には、記載したデバイス・ファミリに対して Quartus II ソフ トウェア・バージョン 6.1 を使用した場合の各種パラメータの標準的な 期待性能を示します。 表 1–3 から表 1–7 までの性能データに対しては、以下のパラメータが設 定されています。 ■ Buffer Setup ページでは、×1、×4、および ×8 コンフィギュレーション に対しては、以下の値が設定されていました。 ● 最大ペイロード・サイズは、特に記述がない限り 256 バイトに 設定されていました。 ● Desired performance for received requests(受信要求に対する 希望性能)および Desired performance for completions(完了 に対する希望性能)は、いずれも特に記述がない限り Medium に設定されていました。 Buffer Setup ページ設定の説明については、3–45 ページの表 3–20 を 参照してください。 ■ Capabilities ページでは、Tags supported(サポートされているタグ) 数は、特に記述がない限り、すべてのコンフィギュレーションに対 して 16 に設定されていました。 Capabilities ページ設定の説明については、3–42 ページの表 3–19 を 参照してください。 Altera Corporation 2006 年 12 月 PCI Express Compiler Version 6.1 1–7 PCI Express コンパイラ・ユーザガイド パフォーマンス 表 1–3 に、Cyclone II (EP2C35F484C6) デバイスをターゲットとし Quartus II ソフトウェア・バージョン 6.1 を使用した場合の各種パラメー タの標準的な期待性能を示します。 表 1–3. パフォーマンス - Cyclone II デバイス パラメータ メモリ・ブロック数 ×1/×4 内部クロック MHz バーチャル・ チャネル数 ロジック・ エレメント数 M4K ×1 125 1 9500 10 ×1 125 2 12400 15 ×1(1) 62.5 1 7800 11 ×1 62.5 2 10500 18 ×4 125 1 12100 18 ×4 125 2 15200 27 表 1–3 の注 : (1) Max payload(最大ペイロード)は 128B、Tags supported(サポートされているタグ)数は 4、そ して Desired performance for received requests(受信要求に対する希望性能)および Desired performance for completions(完了に対する希望性能)は、両方とも Low に設定されていました。 1–8 PCI Express Compiler Version 6.1 PCI Express コンパイラ・ユーザガイド Altera Corporation 2006 年 12 月 このコンパイラ について 6.1 表 1–4 に、Stratix II (EP2S130GF1508C3) デバイスをターゲットとし Quartus II ソフトウェア・バージョン 6.1 を使用した場合の各種パラメー タの標準的な期待性能を示します。 表 1–4. パフォーマンス - Stratix II デバイス パラメータ メモリ・ブロック数 ×1/×4 内部クロック MHz バーチャル・ チャネル数 組み合わせ ALUT 数 専用 レジスタ M512 M4K ×1 125 1 6600 3400 2 8 ×1 125 2 8900 4500 3 12 ×4 125 1 8700 4400 6 12 ×4 125 2 11000 5600 7 20 表 1–5 に、Stratix II GX (EP2SGX130GF1508C3) デバイスをターゲットと し Quartus II ソフトウェア・バージョン 6.1 を使用した場合の各種パラ メータの標準的な期待性能を示します。 表 1–5. パフォーマンス - Stratix II GX デバイス メモリ・ ブロック数 パラメータ ×1/×4/×8 内部クロック MHz バーチャル・ チャネル数 組み合わせ ALUT 数 専用 レジスタ M512 M4K ×1 125 1 6600 3400 2 8 ×1 125 2 8900 4500 3 12 ×4 125 1 8700 4400 6 12 ×4 125 2 11000 5600 7 20 ×8 250 1 8300 5800 10 12 ×8 250 2 10200 6900 11 20 Altera Corporation 2006 年 12 月 PCI Express Compiler Version 6.1 1–9 PCI Express コンパイラ・ユーザガイド パフォーマンス 表 1–6 に、Stratix III (EP3SL200F1152C3) デバイスをターゲットとし Quartus II ソフトウェア・バージョン 6.1 を使用した場合の各種パラメー タの標準的な期待性能を示します。 表 1–6. パフォーマンス - Stratix III デバイス メモリ・ ブロック数 パラメータ ×1/×4 内部 クロック MHz 最大 ペイロード・ バイト バーチャル・ チャネル数 組み合わせ ALUT 数 専用 レジスタ M9K ×1 125 256 1 6500 3400 5 ×1 125 256 2 8700 4500 9 ×4 125 256 1 8500 4500 7 ×4 125 256 2 10900 5600 12 表 1–7 に、Stratix GX (EP1SGX25CF672C5) デバイスをターゲットとし Quartus II ソフトウェア・バージョン 6.1 を使用した場合の各種パラメー タの標準的な期待性能を示します。. 表 1–7. パフォーマンス - Stratix GX パラメータ メモリ・ブロック数 ×1/×4 内部クロック MHz バーチャル・ チャネル数 ロジック・エレメント M512 M4K ×1 125 1 9500 2 9 ×1 125 2 12300 2 14 ×4 125 1 14500 6 16 ×4 125 2 17100 7 24 以下の表に、サポートされるリンク幅および内部クロック周波数に対す る推奨デバイス・ファミリのスピード・グレードを示します。内部クロッ ク周波数が 125 MHz または 250 MHz のときの 推奨設定値は、Quartus II Analysis & Synthesis Optimization Technique を Speed にすることです。 1–10 PCI Express Compiler Version 6.1 PCI Express コンパイラ・ユーザガイド Altera Corporation 2006 年 12 月 このコンパイラ について この設定方法について詳しくは、 「Quartus II 開発ソフトウェア・ハンド ブック」を参照してください。 表 1–8. 推奨デバイス・ファミリとスピード・グレード デバイス・ファミリ リンク幅 内部クロック周波数 推奨スピード・グレード Cyclone II ×1, ×4 125MHz -6 ×1 62.5MHz -6, -7, -8(4) ×1,×4 125MHz -3, -4, -5 (1) ×8 250MHz -3(1), -4(2),(3) ×1, ×4 125MHz -3, -4, -5 (1) ×1 62.5Mhz -3, -4, -5 ×1,×4 125MHz -2,-3,-4 ×1 62.5MHz -2,-3,-4 ×1, ×4 125MHz -5(1) ×1 62.5MHz -5,-6 Stratix II GX Stratix II Stratix III Stratix GX 注: (1) これらのスピード・グレードおよびバリエーションのタイミング・クロージャを達成するに は、Perform physical synthesis for combinational logic(組み合わせロジックに対してフィジ カル・シンセシスを実行する)、perform register duplication(レジスタの複製を実行する)、 および perform register retiming(レジスタのリ・タイミングを実行する)のオプションをイ ネーブルにして、Quartus II フィッタ設定でフィジカル・シンセシスをイネーブルにする必要 があります。これらのオプションの設定方法について詳しくは、「Quartus II 開発ソフトウェ ア・ハンドブック」を参照してください。 (2) Stratix II GX -4 で ×8 に対するタイミング・クロージャを達成するには、複数のシードを持つ Quartus Design Space Explorer を使用する必要があります。 (3) Stratix II GX -4 の ×8 バリエーションに対しては、複数の VC、ECRC サポート、および 16 を 超えるタグは推奨されません。 (4) -8スピード・グレードでは、外部 PHYの 16ビット SDRまたは 8ビット SDRモードが推奨されます。 Altera Corporation 2006 年 12 月 PCI Express Compiler Version 6.1 1–11 PCI Express コンパイラ・ユーザガイド パフォーマンス 1–12 PCI Express Compiler Version 6.1 PCI Express コンパイラ・ユーザガイド Altera Corporation 2006 年 12 月 2. 使用法 デザイン・ フロー OpenCore Plus 機能を使用した Compiler を評価するには、デザイン・ フローで以下のステップを実行します。 1. Compiler を取得してインストールします。 Compiler は、MegaCore® IP ライブラリの一部で、Quartus II ソフト ウェアに同梱して配布され、アルテラ・ウェブサイト www.altera.com からダウンロードできます。 システム要件とインストール方法については、以下のアルテラのウェブ・ サイトにある「Quartus II Installation & Licensing for Windows」または 「Quartus II Installation & Licensing for UNIX & Linux」を参照してくだ さい。 www.altera.com/literature/lit-qts.jsp 図 2-1 に Compiler をインストールした後のディレクトリ構造を示しま す。ここで、< パス > は、インストール・ディレクトリです。Windows のデフォルト・インストール・ディレクトリは、c:\altera\61 です。UNIX および Linux では、/opt/altera/61 です。 図 2-1. ディレクトリ構造 <path> Installation directory ip Contains the MegaCore IP Library common Contains shared components. pci_express_compiler Contains the PCI Express Compiler files and documentation. doc Contains documentation for the MegaCore function. lib Contains encrypted lower-level design files and other support files. Altera Corporation 2006 年 12 月 PCI Express Compiler Version 6.1 2–1 PCI Express の実習 2. PCI Express Compiler を使用し、カスタム・バリエーションを作成 します。 3. 選択したデザイン入力方法を使用してデザインの残りを実装します。 4. IP 機能シミュレーション・モデルを使用して、デザインの動作を検 証します。 IP 機能シュミレーション・モデルについて詳しくは、 「Quartus II 開発ソ フトウェア・ハンドブック Volume 3」の「サードパーティ・シミュレー ション・ツールによるアルテラ IP のシミュレーション」の章を参照して ください。 5. Quartus II ソフトウェアを使用してデザインをコンパイルします。 実行時間等に制限はありますが、OpenCore Plus プログラミ ング・ファイルを生成して、ハードウェアでデザインの動作 を検証することもできます。 6. PCI Express Compiler のライセンスを購入します。 PCI Express コンパイラ・ユーザガイド Compiler のライセンス購入後 は、以下の追加のステップに従ってください。 1. ライセンスをセットアップします。 2. ボード上のアルテラ・デバイス用プログラミング・ファイルを生成 します。 3. 完成したデザインでアルテラ・デバイスをプログラムします。 PCI Express の実習 PCI Express コンパイラには 2 つのデザイン例が付属しています。この 実習では、MegaWizard Plug-in Manager を使用して MegaWizard イン タフェースを起動し、MegaCore をパラメータ化し、提供される 2 つの デザイン例を選択して MegaCore をシミュレートするプロセスを通じて 実習を行います。PCI Express MegaCore ファンクションのカスタム・バ リエーションを生成した後、それをプロジェクト全体に組み入れること ができます。 この実習は、以下のステップで構成されています。 ■ ■ MegaWizard Plug-In Manager の起動 Parameterize ■ シミュレーションのセットアップ ■ ファイルの生成 2–2 PCI Express Compiler Version 6.1 PCI Express コンパイラ・ユーザガイド Altera Corporation 2006 年 12 月 使用法 PCI Express コンパイラ MegaWizard インタフェースは、作成した PCI Express MegaCore ファンクション・バリエーションに接続する 2 つの トップレベル・デザインを作成します。トップレベル・デザイン例は、 Quartus II ソフトウェアでアルテラ・デバイス用にコンパイルできます。 シンプル DMA トップレベル・デザイン例には、< バリエーション 名 >_example_top が付けられています。この実習では、pex をバリエー ション名、そして pex_example_top をシンプル DMA のトップレベル・ デザイン例として使用しています。 チェインニング DMA のトップレベル・デザイン例には、 pex_example_chaining_top という名前が付けられます。 MegaWizard Plug-In Manager の起動 Quartus II ソフトウェアの MegaWizard® Plug-In Manager を起動するに は、以下のステップに従います。 1. MegaWizard Plug-In Manager(Tools メ ニ ュ ー)を 選 択 し て、 MegaWizard Plug-In Manager を起動します。MegaWizard Plug-In Manager ダイアログ・ボックスが表示されます(図 2-2 を参照)。 MegaWizard Plug-In Manager の使用方法について詳しくは、 Quartus II ヘルプを参照してください。 図 2-2. MegaWizard Plug-In Manager 2. 作成する新しいカスタム・メガファンクション・バリエーションを 指定し、Next をクリックします。 Altera Corporation 2006 年 12 月 PCI Express Compiler Version 6.1 2–3 PCI Express コンパイラ・ユーザガイド PCI Express の実習 3. ディレクトリ名の左の + アイコンをクリックして、Installed Plug-Ins の下の Interfaces ディレクトリを拡張し、PCI Express Compiler v6.1 をクリックします。 4. この MegaCore ファンクション・バリエーションに使用するデバイ ス・ファミリを選択します。例 : Stratix II GX 5. デザインの出力ファイル・タイプを選択します。MegaWizard PlugIn Manager は VHDL および Verilog HDL をサポートします。この 例では、Verilog HDL を選択します。 6. MegaWizard Plug-In Manager は、ユーザが指定したプロジェクト・ パスを表示します。MegaCore ファンクションの出力ファイルのバリ エーション名 < プロジェクト・パス >\< バリエーション名 > を付加 します。この実習では、以下のように MegaCore ファンクション・ ファイルの名前に、pex を指定します。 c:\altera\pcie_project\pex.vhd 図 2-3 に、これらの設定を行った後の MegaWizard Plug-In Manager を示します。 図 2-3. MegaCore ファンクションの選択 2–4 PCI Express Compiler Version 6.1 PCI Express コンパイラ・ユーザガイド Altera Corporation 2006 年 12 月 使用法 7. Next をクリックして、PCI Express コンパイラ・ユーザガイドの Parameter Settings ページを表示します(図 2-4 を参照)。 ダイアログ・ボックスの下で Next または Back をクリックし て、MegaWizard Plug-In Manager が表示するページを変更で き ま す。Parameter Settings、Simulation Model、または Summary タブをクリックすると、それらの名前のページに直 接移動することができます。 また、特定のパラメータ・ページ上のオプションをクリックし て、個々のパラメータ設定を直接表示することができます。 パラメータ設定 MegaCore ファンクションをパラメータ設定するには、以下のステップ に従います。 このセクションでは、図に示すパラメータ設定またはユーザ 独自の設定を使用できます。デザイン例は大部分の設定に対 応するように生成されていますが、特定の設定では動作しな いテストもいくつかあります。各 MegaWizard ページに、テ ストベンチをフルに使用するのに必要なパラメータ設定が記 載されています。 1. MegaWizard インタフェース(図 2-4 を参照)の Parameter Settings タブをクリックします。 System Settings ページが最初に表示されます。このページでは、実 装する MegaCore ファンクションのインスタンスに適切なパラメー タを設定します。図 2-4 を参照してください。 Altera Corporation 2006 年 12 月 PCI Express Compiler Version 6.1 2–5 PCI Express コンパイラ・ユーザガイド PCI Express の実習 図 2-4. System Settings ページ 提供されたテストベンチおよびシンプル DMA デザイン例でのテスト をすべてイネーブルするには、以下の表 2–1 に示す BAR アサインメ ントを行います。 表 2–1. BAR アサインメント BAR BAR タイプ BAR サイズ 1:0 64 ビット・プリフェッチ可能メモリ 16M バイト - 24 ビット 2 32 ビット・プリフェッチ不能メモリ 256K バイト - 18 ビット 2–6 PCI Express Compiler Version 6.1 PCI Express コンパイラ・ユーザガイド Altera Corporation 2006 年 12 月 使用法 他の多くの BAR 設定では、シンプル DMA デザイン例のフル・ テストが可能です。テスト・モジュールが使用する設定の説明に ついては、5–23 ページの「シンプル DMA デザイン例用の BFM テスト・ドライバ・モジュール」を参照してください。 利用可能なパラメータの詳しい説明については、3–36 ページの 「パラメータ 設定」を参照してください。 2. Next をクリックして、Capabilities ページを表示します。 3. Capabilities ページを開いた状態で、適切な設定を行い、Next をク リックして、Buffer Setup ページを表示します。図 2-5 を参照してく ださい。 図 2-5. Capabilities ページ Altera Corporation 2006 年 12 月 PCI Express Compiler Version 6.1 2–7 PCI Express コンパイラ・ユーザガイド PCI Express の実習 4. Buffer Setup ページが開きます。適切な設定を行い、Next をクリッ クします。図 2-6 を参照してください。 図 2-6. Buffer Setup ページ Desired performance for received requests(受信要求に対する要求性 能)and Desired performance for received completions(受信完了に対 する要求性能)パラメータの適切な設定を決定するには、3–45 ページの 表 3–20 を参照してください。データ・クレジットに関して詳しくは、 3–16 ページの表 3–2 を参照してください。 2–8 PCI Express Compiler Version 6.1 PCI Express コンパイラ・ユーザガイド Altera Corporation 2006 年 12 月 使用法 5. Power Management ページが開きます。適切な設定を行います。図 27 を参照してください。 図 2-7. 電源管理ページ 6. 設定を適用するには、Finish をクリックします。 7. Next(または Simulation Model ページ)をクリックしてシミュレー ション・セットアップ・ページ(図 2-8 を参照)を表示します。 シミュレーションのセットアップ IP 機能シミュレーション・モデルは、Quartus II ソフトウェアで作成す るサイクル単位の正確な VHDL または Verilog HDL モデルです。この モデルにより、業界標準の VHDL および Verilog HDL シミュレータを 使用した IP の高速機能シミュレーションが可能になります。 Altera Corporation 2006 年 12 月 PCI Express Compiler Version 6.1 2–9 PCI Express コンパイラ・ユーザガイド PCI Express の実習 これらのシミュレーション・モデル出力ファイルは、シミュレー ション目的にのみ使用し、合成やその他の目的には使用しない でください。合成のためにこれらのモデルを使用すると、機能 しないデザインが作成されます。 MegaCore ファンクション用の IP 機能シミュレーション・モデルを生成 するには、以下のステップに従います。 1. Simulation Model タブ(図 2-8 を参照)をクリックします。 図 2-8. シミュレーションのセットアップ 2. チェックボックスをクリックして、Generate Simulation Model(図 28 を参照)をイネーブルにします。 3. Language リスト・プルダウンで言語を選択します。 2–10 PCI Express Compiler Version 6.1 PCI Express コンパイラ・ユーザガイド Altera Corporation 2006 年 12 月 使用法 4. Next(または Summary タブ)をクリックして、サマリ・ページ (図 2-9 を参照)を表示します。 図 2-9. Summary Altera Corporation 2006 年 12 月 PCI Express Compiler Version 6.1 2–11 PCI Express コンパイラ・ユーザガイド PCI Express の実習 ファイルの生成 ファイルを生成するには、以下のステップに従います。 1. 生成したいファイルをオンにします。Summary ページのチェック・ ボックスを使用して、指定されたファイルの生成をイネーブルまた はディセーブルにします。グレイのチェックマークは、自動的に生 成されるファイルを示し、その他のチェックマークはオプションの ファイルを示します。 どれかパラメータを変更したい場合は、このステージでBack、 または Parameters Setting、Simulation Model、Summary の い ず れ か の タ ブ を ク リ ッ ク し て、MegaWizard Plug-In Manager の他のページを表示することができます。 2. 指定されたファイルを生成し、MegaWizard Plug-In Manager を閉じ るには、Finish をクリックします。 Generation パネルにファイル生成の状況が表示されます。すべての ファイルが生成されると、Generation パネルは Generation Successful ステータス・メッセージを返します。Exit をクリックしてパネルを閉 じます。生成フェーズは完了するまでに数分かかることがあります。 プロジェクト・ディレクトリに書き込まれ、<バリエーション名>.html という名前が付けられた生成レポートには、生成されたファイルと ポートがリストされます。 図 2-10. Generation パネル 2–12 PCI Express Compiler Version 6.1 PCI Express コンパイラ・ユーザガイド Altera Corporation 2006 年 12 月 使用法 表 2–2 に、生成されたファイルとユーザのプロジェクト・ディレクトリ に格納される可能性があるその他のファイルを示します。サマリに指定 されるファイルの名前とタイプは、デザインを VHDL または Verilog HDL を使用して作成しているかどうかによって異なります。 表 2–2. 生成されるファイル 注 (1)& (2)(1 / 2) ファイル名 説明 < バリエーション名 >.ppf この XML ファイルは、Quartus II Pin Planner に対し て MegaCore ピン属性を記述します。MegaCore ピン 属性には、ピンの方向、位置、標準 I/O 規格のアサイ ンメント、ドライブ能力があります。Pin Planner アプ リケーションの外側で MegaWizard を起動する場合、 Pin Planner を使用するにはこのファイルを明示的に ロードする必要があります。 < バリエーション名 >.ppx この XML ファイルは、Pin Planner が自動的に使用す る Pin Planner サポート・ファイルです。このファイ ルは、pex.ppf ファイルと同じディレクトリになけれ ばなりません。 < バリエーション名 >.html MegaCore ファンクション・レポート・ファイル。 < バリエーション名 >.vhd または < バリエーション名 >.v このファイルは、この表の随所に記述されている < バ リエーション名 >_core モジュール(またはエンティ ティ)をインスタンス化し、ユーザ・バリエーション に選択した特定の外部または内部 PHY をサポートす るのに必要な追加ロジックが含まれています。この ファイルはデザインの内部でインスタンス化する必 要があります。Quartus II ソフトウェアおよびユーザ のシミュレーション・プロジェクトでデザインをコン パイルするときには、このファイルを含める必要があ ります。 < バリエーション名 >_core.vhd または < バリエーション名 >_core.v このファイルは PCI Express トランザクション、デー タ・リンク、および物理層をインスタンス化します。 これは、< バリエーション名 > モジュール(またはエ ンティティ)内部でインスタンス化されます。Quartus II ソフトウェアでデザインをコンパイルするときに は、このファイルを含めます。 Altera Corporation 2006 年 12 月 PCI Express Compiler Version 6.1 2–13 PCI Express コンパイラ・ユーザガイド PCI Express の実習 表 2–2. 生成されるファイル 注 (1)& (2)(2 / 2) ファイル名 < バリエーション名 >_core.vho または < バリエーション名 >_core.vo 説明 このファイルには、< バリエーション名 >_core エン ティティ(またはモジュール) の VHDL または Verilog HDL IP 機能シミュレーション・モデルが含まれてい ます。デザインをシミュレートするときには、この ファイルを含めます。 表 2–1 の注 : (1) これらのファイルはバリエーションに依存し、一部は存在しないか、または名前が変更される可能性があ ります。 (2) < バリエーション名 > は、MegaWizard Plug-In Manager によって自動的に供給されるプリフィックス・バ リエーション名です。 ここで、ユーザのカスタム MegaCore ファンクション・バリエーション をデザインに統合し、シミュレートしてコンパイルすることができます。 Quartus II ソフトウェアは、< バリエーション名 >_examples という名 前のプロジェクト・ディレクトリに、3 レベルのサブディレクトリも作 成します。図 2-11 にこのディレクトリ構造を示します。このサブディレ クトリには、シンプル DMA デザイン例およびチェインニング DMA デ ザイン例の両方をテストするための PCI Express BFM およびテストベン チが含まれています。このディレクトリには、ModelSim シミュレータ でテストベンチを実行するためのスクリプトも含まれています。テスト ベンチ用に作成されたファイルのリストと簡単な説明については、第 5 章 テストベンチおよび デザイン例を参照してください。 2–14 PCI Express Compiler Version 6.1 PCI Express コンパイラ・ユーザガイド Altera Corporation 2006 年 12 月 使用法 図 2-11. ディレクトリ例が格納されている PCI Express ディレクトリ <user_project directory> <variation_name>.v or <variation_name>.vhd <Quartus II project>.qpf <PCI Express variation_name>_examples chaining_dma directory contains the files: <PCIe variation_name>_example_chaining_top>.v or <PCIe variation_name>_example_chaining_top>.vhd, <PCIe variation_name>_example_chaining_pipen1b>.v or <PCIe variation_name>_example_chaining_pipen1b>.vhd, a <PCIe variation_name>_example_chaining_top.qpf testbench altpcietb_bfm_driver_chaining.v top_chaining_testbench.v common testbench simple_dma contains the files: <PCIe variation_name>_example_top.v or <PCIe variation_name>_example_top.vhd, <PCIe variation_name>_example_pipen1b.v or <PCIe variation_name>_example_pipen1b.vhd, and <PCIe variation_name>_example_top.qpf testbench デザインの シミュレー ション MegaWizard で生成された VHDL および Verilog HDL IP 機能シミュレー ション・モデルを使用して、デザインをシミュレートすることができます。 IP 機能シュミレーション・モデルについて詳しくは、 「Quartus II 開発ソ フトウェア・ハンドブック Volume 3」の「サードパーティ・シミュレー ション・ツールによるアルテラ IP のシミュレーション」の章を参照して ください。 IP 機能シミュレーション・モデル ModelSim シミュレータでテストベンチを実行するには、以下のステッ プに従います。 1. ModelSim シミュレータを開始する。 2. ModelSim File メニューから、Change Directory を使用して作業ディ レクトリを適切なデザイン例のディレクトリに変更します。 Altera Corporation 2006 年 12 月 PCI Express Compiler Version 6.1 2–15 PCI Express コンパイラ・ユーザガイド デザインのコンパイル シンプル DMA デザイン例の場合は、以下のディレクトリに変更しま す。 < ユーザのプロジェクト・ディレクトリ >/< バリエーション名 > _examples/simple_dma または チェインニング DMA デザイン例の場合は、以下のディレクトリに変 更します。 < バリエーション名 >_examples/chaining_dma OK をクリックします。 3. ModelSim Transcript ウィンドウで、do runtb.do コマンドを実行 します。これは必要なライブラリをセットアップし、ネットリスト・ ファイルをコンパイルし、テストベンチを実行するコマンドです。 ModelSim Transcript ウィンドウは、BFM からのメッセージを表示 し、バリエーション・ファイルのコンフィギュレーション・スペー スから読み出したさまざまな値を反映します。これらのメッセージ は、実習のパラメータ設定ステップ中に入力された値を反映します。 アルテラは、ModelSim コマンドライン・モードでテストベ ンチを実行するための DOS コマンド・ウィンドウのバッチ・ ファイル runtb.bat およびシェル・スクリプト runtb.sh を提 供しています。 テストベンチ、BFM、および付属のアプリケーション例について詳しく は、第 5 章 テストベンチおよび デザイン例を参照してください。 デザインのコ ンパイル Quartus II ソフトウェアを使用してデザイン例をコンパイルすることが できます。デザインのコンパイルに関するインストラクションについて は、Quartus II Help を参照してください。Quartus II ソフトウェアで、 2–2 ページの「PCI Express の実習」で作成したシンプル DMA デザイン 例のプロジェクトを開きます。 c:\altera\pcie_project\pex_examples\simple_dma\pex_example_top この Quartus II プロジェクト例には、このデザイン例で使用されるバリ エーションで選択されたパラメータに対して推奨される合成、フィッタ、 およびタイミング解析設定があります。 2–16 PCI Express Compiler Version 6.1 PCI Express コンパイラ・ユーザガイド Altera Corporation 2006 年 12 月 使用法 ユーザ・プロジェクトの PCI Express アサインメントを検証するには、 以下のステップに従います。 1. Quartus IIソフトウェアで、Start Compilation(Processingメニュー) を選択します。 2. コンパイル後、フォルダ名の隣にある + アイコンをクリックして、 Compilation Report パネルの Timing Analyzer または TimeQuest Timing Analyzer フォルダを展開します。Compilation Report のこの セクションからタイミング制約が正しく満足されたかどうかに注意 してください。 デ ザ イ ン が 最 初 に タ イ ミ ン グ 制 約 を 満 足 し な い 場 合 は、 Quartus II ソフトウェアの Design Space Explorer を使用し て、デザ イン がタ イミ ング 制約 に適 合す る ため の最適 な フィッタ設定を見つけるよう試みてください。Design Space Explorer を 使用するには、Launch Design Space Explorer (Tools メニュー)を選択します。 Program a Device デザインをコンパイルした後、ターゲットのアルテラ・デバイスをプロ グラムしてハードウェアでデザインを検証します。 アルテラの無償 OpenCore Plus 評価機能では、ライセンスを購入する前 に PCI Express MegaCore ファンクションを評価することができます。 OpenCore Plus 評価機能により、ユーザは IP 機能シミュレーション・モ デルを生成し、実行時間に制限のあるプログラミング・ファイルを生成 することができます。 IP 機能シュミレーション・モデルについて詳しくは、 「Quartus II 開発ソ フトウェア・ハンドブック Volume 3」の「サードパーティ・シミュレー ション・ツールによるアルテラ IP のシミュレーション」の章を参照して ください。 デザインの PCI Express MegaCore ファンクションをシミュレートし、実 行時間に制限があるハードウェアでのデザイン評価を実行することがで きます。 PCI Express MegaCore ファンクションを使用した OpenCore Plus ハー ドウェア評価について詳しくは、3–34 ページの「OpenCore Plus タイ ム・アウト動作」および「AN 320 : IP メガファンクション評価のための OpenCore Plus」機能を参照してください。 Altera Corporation 2006 年 12 月 PCI Express Compiler Version 6.1 2–17 PCI Express コンパイラ・ユーザガイド ライセンスのセットアップ ライセンスの セットアップ MegaCore を製品に組み込む場合にのみ、ライセンスを購入していただ く必要があります。 PCI Express MegaCore ファンクションのライセンスを購入してから、ア ルテラ・ウェブサイトの www.altera.co.jp/licensing でライセンス・ファ イルをリクエストして、取得したライセンス・ファイルをご使用のコン ピュータにインストールすることができます。ライセンス・ファイルを リスエストされたお客様には、アルテラから license.dat ファイルを電子 メールでお送りいたします。インターネットをご利用いただけないお客 様は、アルテラの販売代理店にお問い合わせください。 2–18 PCI Express Compiler Version 6.1 PCI Express コンパイラ・ユーザガイド Altera Corporation 2006 年 12 月 3. 仕様 機能の説明 図 3-1 は、PCI Express MegaCore ファンクションの各レイヤの役割につ いて説明しています。 図 3-1. MegaCore ファンクションの 3 つのレイヤ Towards Application Layer Towards Link PCI Express MegaCore Function tx_ d esc tx _d ata rx_ d esc rx _d ata With information sent by the application layer, the transaction layer generates a TLP, which includes a header and, optionally, a data payload. The data link layer ensures packet integrity, and adds a sequence number and link cyclic redundancy code (LCRC) check to the packet. The physical layer encodes the packet and transmits it to the receiving device on the other side of the link. The transaction layer disassembles the transaction and transfers data to the application layer in a form that it recognizes. The data link layer verifies the packet's sequence number and checks for errors. The physical layer decodes the packet and transfers it to the data link layer. Transaction Layer Data Link Layer Tx Rx Physical Layer PCI Express MegaCore ファンクションは、PCI Express Base Specification 1.1 または PCI Express Base Specification Revision 1.0a に準拠し、以下の仕 様の 3 つのレイヤすべてを実装しています。 ■ トランザクション・レイヤ — トランザクション・レイヤには、アプ リケーション・レイヤとの通信を管理するコンフィギュレーション 領域、つまり受信および送信チャネル、受信バッファ、およびフロー 制御クレジットが含まれています。 ■ データ・リンク・レイヤ — データ・リンク・レイヤは、物理レイヤ とトランザクション・レイヤの間に配置されており、パケット送信 を管理し、リンク・レベルでデータ・インテグリティを維持します。 具体的には、データ・リンク・レイヤは以下を行います。 ● データ・リンク・レイヤ・パケットの送信および受信を管理する ● すべての送信 CRC(Cyclical Redundancy Code)チェックを生 成し、受信中にすべての CRC をチェックする ● 受信した ACK/NAK データ・リンク・レイヤ・パケットに応じ てリトライ・バッファおよびリトライ・メカニズムを管理する Altera Corporation 2006 年 12 月 PCI Express Compiler Version 6.1 3–1 機能の説明 ● ■ データ・リンク・レイヤ・パケットのフロー制御メカニズムを 初期化し、フロー制御クレジットをトランザクション・レイヤ との間で受け渡しする 物理レイヤ — 物理レイヤは、リンクから受信したパケットと上位の レイヤから受信した指示に基づいて、PCI Express リンクの速度、レー ン・ナンバリング、およびレーン幅を初期化します。 エンドポイントの種類 MegaCore ファンクションは、ネイティブ PCI Express エンドポイント またはレガシー・エンドポイントのいずれかを実装できます。新しいア プリケーションにはネイティブ PCI Express エンドポイントを使用する ことをお勧めします。PCI Express エンドポイントは、メモリ・スペー スのリード・トランザクションおよびライト・トランザクションのみを サポートしています。レガシー・エンドポイントは、既存のアプリケー ションと互換性があり、I/O スペースのリード・トランザクションおよ びライト・トランザクションをサポートできます。 ネイティブ PCI Express エンドポイントとレガシー・エンドポイントの 違いについて詳しくは、PCI Express specification のエンドポイントの説 明を参照してください。 トランザクション・レイヤ トランザクション・レイヤは、アプリケーション・レイヤとデータ・リ ンク・レイヤの間にあります。トランザクション・レイヤは、トランザ クション・レイヤ・パケットを生成し、受信します。図 3-2 に、初期化 された 2 つのバーチャル・チャネルを備えたコンポーネントのトランザ クション・レイヤを示します。トランザクション・レイヤには、送信デー タ・パス、コンフィギュレーション・スペース、および受信データ・パ スの 3 つの汎用サブブロックがあり、これらを図 3-2 で縦向きのカッコ 内に示します。 3–2 PCI Express Compiler Version 6.1 PCI Express コンパイラ・ユーザガイド Altera Corporation 2006 年 12 月 仕様 図 3-2. トランザクション・レイヤのアーキテクチャ : 各バーチャル・チャネルの専用受信バッファ Towards Application Layer Towards Data Link Layer Interface Established per Virtual Channel Interface Established per Component Virtual Channel 1 Tx1 Data Tx1 Descriptor Tx1 Control Tx1 Request Sequencing Flow Control Check & Reordering Tx Transaction Layer Packet Description & Data Rx Flow Control Credits Virtual Channel 0 Transmit Data Path Tx0 Data Tx0 Descriptor Virtual Channel Arbitration & Tx Sequencing Tx0 Control Tx0 Request Sequencing Flow Control Check & Reordering Type 0 Configuration Space Virtual Channel 0 Configuration Space Receive Buffer Rx0 Data Rx0 Descriptor Posted & Completion Non-Posted Rx0 Control & Status Rx0 Sequencing & Reordering Transaction Layer Packet FIFO Flow Control Update Receive Data Path Virtual Channel 1 Receive Buffer Rx1 Data Tx Flow Control Credits Rx1 Descriptor Posted & Completion Non-Posted Rx1 Control & Status Altera Corporation 2006 年 12 月 Rx1 Sequencing & Reordering Transaction Layer Packet FIFO Flow Control Update Rx Transaction Layer Packet PCI Express Compiler Version 6.1 3–3 PCI Express コンパイラ・ユーザガイド 機能の説明 受信データ・パスを介してトランザクションをトレースするには、以下 のステップが必要です。 1. トランザクション・レイヤがデータ・リンク・レイヤからトランザ クション・レイヤ・パケットを受信します。 2. コンフィギュレーション・スペースによって、トランザクション・レ イヤ・パケットが十分に形成されているかどうかが判断され、TC/ バーチャル・チャネル・マッピングに基づいて適切なバーチャル・ チャネルにパケットが送られます。 3. 各バーチャル・チャネル内で、トランザクション・レイヤ・パケッ トが、トランザクションのタイプ(Posted、Non-Posted、およびコ ンプリーション)に応じて、受信バッファの特定の部分に格納されます。 4. トランザクション・レイヤ・パケットの FIFO ブロックに、バッファ されたトランザクション・レイヤ・パケットのアドレスが格納されます。 5. 受信シーケンスおよびリオーダリング・ブロックが、待機中のトラ ンザクション・レイヤ・パケットの順序を必要に応じて入れ換えし、 トランザクション・レイヤ・パケットの FIFO ブロックから優先権が あるトランザクション・レイヤ・パケットのアドレスをフェッチし、 トランザクション・レイヤ・パケットをアプリケーション・レイヤ に送信し始めます。受信ロジックによって、トランザクション・レ イヤ・パケットのデータからディスクリプタが分離され、それらが 受信ディスクリプタ・バス rx_desc[135:0]、および受信データ・ バス rx_data[63:0] を介してアプリケーション・レイヤに転送さ れます。 送信データ・パスを介してトランザクションをトレースするには、以下 のステップが必要になります。 1. MegaCore ファンクションが、特定のタイプのトランザクションに対 して十分なフロー制御クレジットが存在することを送信クレジット tx_cred[21:0] で、アプリケーション・レイヤに通知します。アプ リケーション・レイヤは、この情報を無視することができます。 2. アプリケーション・レイヤが、トランザクション・レイヤ・パケッ ト の 送 信 を 要 求 し ま す。ア プ リ ケ ー シ ョ ン・レ イ ヤ は、 tx_desc[127:0]バスにPCI Expressトランザクション・ヘッダを供 給し、tx_data[63:0] バスでデータ・ペイロード全体を連続した サイクルで供給するよう準備しなければなりません。 3. MegaCore ファンクションが、十分なフロー制御クレジットが存在す ることを確認し、要求を確認応答するかまたは延期します。 3–4 PCI Express Compiler Version 6.1 PCI Express コンパイラ・ユーザガイド Altera Corporation 2006 年 12 月 仕様 4. トランザクション・レイヤ・パケットがアプリケーション・レイヤ によって転送され、トランザクション・レイヤがバーチャル・チャ ネル間でアービトレーションを行い、次に優先権のあるトランザク ション・レイヤ・パケットをデータ・リンク・レイヤに転送します。 送信バーチャル・チャネルのアービトレーション PCI Express MegaCore ファンクションを利用すると、PCI Express Base Specification 1.1 の 6 章または PCI Express Base Specification Revision 1.0a で 規定されている高優先度のグループと低優先度のグループにバーチャ ル・チャネルを分割することができます。 高優先度のバーチャル・チャネルのアービトレーションには、大きい番 号のバーチャル・チャネルが小さい番号のバーチャル・チャネルよりも 常に優先度が高くなるという、厳密な優先度アービトレーション機構が 使用されます。低優先度のバーチャル・チャネルでは、固定されたラウ ンド・ロビン・アービトレーション機構が使用されます。 MegaWizard インタフェースの Parameter Settings タブからアクセス可 能な Buffer Setup ページの設定を使用して、バーチャル・チャネルの数 および低優先度グループのバーチャル・チャネルの数を指定できます。 3–44 ページの「Buffer Setup ページ」を参照してください。 コンフィギュレーション・スペース コンフィギュレーション・スペースは、すべてのコンフィギュレーショ ン・レジスタおよび関連する以下のファンクションを実装します。 ■ ■ ■ ■ ■ タイプ 0 コンフィギュレーション・スペース PCI パワー・マネージメント機能構造 MSI(Message Signaled Interrupt)機能構造 PCI Express 機能構造 バーチャル・チャネル機能 コンフィギュレーション・スペースはまた、PCI Express リンクの方向 にダウンストリーム・ポートによって生成されるパワー・スロット制限 メッセージを除き、Root Complex の方向に流れるコンフィギュレーショ ン・リクエストから、すべてのメッセージ(PME#、INT、エラー、パ ワー・スロット制限など)、MSI リクエスト、およびコンプリーション・ パケットを生成します。そのようなすべてのトランザクションは、PCI Express™ Base Specification Revision 1.0a に記載されているように、PCI Express コンフィギュレーション・スペースの内容に依存します。 Altera Corporation 2006 年 12 月 PCI Express Compiler Version 6.1 3–5 PCI Express コンパイラ・ユーザガイド 機能の説明 これらのレジスタの詳しい内容については、3–20 ページの「コンフィ ギュレーション・スペース・レジスタの内容」または PCI Express Base Specification 1.1 の 7 章、あるいは PCI Express Base Specification Revision 1.0a を参照してください。 トランザクション・レイヤのルーティング・ルール トランザクションは、以下のルーティング・ルールに従います。 ■ 受信方向(すなわち PCI Express リンクから)では、定義済みの BAR に適合するメモリおよび I/O リクエストは受信インタフェースに送 られます。アプリケーション・レイヤ・ロジックは、リクエストを 処理し、必要に応じてリード・コンプリーションを生成します。 ■ 受信したタイプ 0 コンフィギュレーション・リクエストは、内部コン フィギュレーション・スペースに送られ、MegaCore ファンクション はコンプリーションを生成および送信します。 ■ MegaCore ファンクションは、サポートされている受信メッセージ・ トランザクション(パワー・マネージメントおよびスロット・パワー 制限)を内部で処理します。 ■ トランザクション・レイヤは、受信したその他のすべてのトランザ クション(定義済みの BAR に適合しないメモリまたは I/O リクエス トを含む)をサポートされない要求として扱います。トランザクショ ン・レイヤは適切なエラー・ビットを設定し、必要に応じてコンプ リーションを送信します。サポートされていないこれらの要求は、ア プリケーション・レイヤからは見えず、ヘッダおよびデータはドロッ プされます。 ■ トランザクション・レイヤは、すべてのメモリおよび I/O リクエス ト、ならびにアプリケーション・レイヤによって生成され、送信イ ンタフェースに渡されたコンプリーションを、PCI Express リンクに 送信します。 ■ MegaCore ファンクションは、専用信号の制御下で、パワー・マネー ジメント、割り込み、およびエラー信号メッセージを自動的に生成 および送信できます。さらに、MegaCore ファンクションは、専用信 号の制御下で、MSI リクエストを生成できます。 3–6 PCI Express Compiler Version 6.1 PCI Express コンパイラ・ユーザガイド Altera Corporation 2006 年 12 月 仕様 受信バッファのバイパス・モード 受信バッファが空で、特定のバーチャル・チャネルの rx_descriptor レジスタに有効なデータが含まれていない場合、MegaCore ファンク ションは受信バッファをバイパスし、それによってレイテンシを減らし ます。 実際には、ディスクリプタが受信バッファと rx_descriptor レジスタ に同時に書き込まれるため、受信バッファが本当にバイパスされること はありません。しかし、トランザクション・レイヤ・パケットの再送信 が必要なことを除けば、受信バッファ内のデータがアクセスされること はありません。 受信バッファのリオーダリング 受信データ・パスは、受信バッファのリオーダリング機能を実装してお り、このリオーダリング機能によって、アプリケーション・レイヤが新 たに Non-Posted トランザクションを受け入れることができないとき、 Posted およびコンプリーション・トランザクションを Non-Posted トラ ンザクション(PCI Express オーダリング・ルールで許可される)を追 い越すことができます。 アプリケーション・レイヤは、rx_mask 信号をアサートすることによっ て、Rx Buffer リオーダリングをダイナミックにイネーブルにします。 rx_mask は、Posted およびコンプリーション・トランザクションのみが アプリケーションに渡されるように、アプリケーション・インタフェー スに対して Non-Posted リクエストトランザクションをマスクします。 MegaCore ファンクションは、rx_mask がアサートされているときに は、受信バッファ・バイパス・モードで動作します。ただし、マスクさ れたリクエストが存在する場合、MegaCore ファンクションは、rx_mask のデアサーションによって受信バッファ・バイパス・モードを抜けます。 Altera Corporation 2006 年 12 月 PCI Express Compiler Version 6.1 3–7 PCI Express コンパイラ・ユーザガイド 機能の説明 データ・リンク・レイヤ データ・リンク・レイヤは、トランザクション・レイヤと物理レイヤの 間に配置されています。データ・リンク・レイヤは、パケット・インテ グリティの維持、および PCI Express リンク・レベルにおける通信(デー タ・リンク・レイヤ・パケット送信による) (ファブリック内でのトラン ザクション・レイヤ・パケット送信によるコンポーネント通信ではない) を行います。具体的には、データ・リンク・レイヤは、以下を行います。 ■ ■ ■ ■ ■ データ・リンク・レイヤ・パケットの受信および送信によるリンク 管理 ● バーチャル・チャネルごとにフロー制御クレジットを初期化お よび更新する ● パワー・マネージメントのためのデータ・リンク・レイヤ・パ ケットの受信および送信 ● ACK/NACK パケットを送信および受信する トランザクション・レイヤ・パケットおよびデータ・リンク・レイ ヤ・パケットに対するCRCの生成と検査によるデータ・インテグリティ リトライ・バッファを使用して NAK データ・リンク・レイヤ・パケッ ト受信時のトランザクション・レイヤ・パケットの再送信 リトライ・バッファの管理 エラー発生時のリンク再トレーニング要求(物理レイヤの LTSSM に よる) 3–8 PCI Express Compiler Version 6.1 PCI Express コンパイラ・ユーザガイド Altera Corporation 2006 年 12 月 仕様 図 3-3 に、データ・リンク・レイヤのアーキテクチャを示します。 図 3-3. データ・リンク・レイヤ Towards Transaction Layer Towards Physical Layer Tx Transaction Layer Packet Description & Data Transaction Layer Packet Generator Retry Buffer Tx Packets DLLP Generator Transmit Data Path Tx Arbitration AckNack Packets Power Management Function Configuration Space Control Data Link Control & Status & Management State Machine Tx Flow Control Credits DLLP Checker Rx Flow Control Credits Rx Transaction Layer Packet Description & Data Transaction Layer Packet Checker Receive Data Path Rx Packets データ・リンク・レイヤには以下のサブブロックがあります。 ■ データ・リンクの制御および管理用のステート・マシン — このステー ト・マシンは、物理レイヤの LTSSM ステート・マシンと同期され、 またコンフィギュレーション・スペース・レジスタにも接続されて います。リンクおよびバーチャル・チャネルのフロー制御クレジッ トを初期化し、コンフィギュレーション・スペースにステータスを レポートします(バーチャル・チャネル 0 はデフォルトで初期化さ れ、追加バーチャル・チャネルも物理的に有効化されており、また ソフトウェアが許可する場合は、同様に初期化されます)。 ■ パワー・マネージメント — この機能は、低消費電力モードに入るた めのハンドシェイクを処理します。そのような移行は、コンフィギュ レーション空間のレジスタ値および受信したPM DLLPに基づいてい ます。 ■ データ・リンク・レイヤ・パケット・ジェネレータおよびチェッカ — このブロックは、データ・リンク・レイヤ・パケットの 16 ビット CRC に関連し、送信されたパケットのインテグリティを維持します。 Altera Corporation 2006 年 12 月 PCI Express Compiler Version 6.1 3–9 PCI Express コンパイラ・ユーザガイド 機能の説明 ■ ■ ■ ■ ■ トランザクション・レイヤ・パケット・ジェネレータ — このブロッ クは、トランザクション・レイヤから受信されたディスクリプタお よびデータに応じて送信パケットを生成し、シーケンス番号および 32 ビット CRC を生成します。これらのパケットはまた、内部保存の ためにリトライ・バッファに送られます。リトライ・モードでは、ト ランザクション・レイヤ・パケット・ジェネレータは、リトライ・ バッファからパケットを受信し、送信パケットの CRC を生成します。 リトライ・バッファ — リトライ・バッファは、トランザクション・レ イヤ・パケットを格納し、NAK DLLP を受信した場合は確認応答さ れなかったすべてのパケットを再送信します。ACK DLLP を受信し た場合、リトライ・バッファは確認応答されたすべてのパケットを 破棄します。 ACK/NACK パケット —ACK/NACK ブロックは、 ACK/NACK デー タ・リンク・レイヤ・パケットを処理し、送信されるパケットのシー ケンス番号を生成します。 トランザクション・レイヤ・パケット・チェッカ — このブロックは、 受信したトランザクション・レイヤ・パケットのインテグリティを チェックし、ACK/NACK データ・リンク・レイヤ・パケットの送 信要求を生成します。 TX アービトレーション — このブロックは、以下の優先度順序に基づ いて、トランザクションのアービトレーションを行います。 a. FC データ・リンク・レイヤ・パケットの初期化 b. ACK/NAK データ・リンク・レイヤ・パケット(高優先度) c. FC データ・リンク・レイヤ・パケットのアップデート(高優先度) d. PM データ・リンク・レイヤ・パケット e. リトライ・バッファ・トランザクション・レイヤ・パケット f. トランザクション・レイヤ・パケット g. FC データ・リンク・レイヤ・パケットのアップデート(低優先度) h. ACK/NAK データ・リンク・レイヤ・パケット(低優先度) 3–10 PCI Express Compiler Version 6.1 PCI Express コンパイラ・ユーザガイド Altera Corporation 2006 年 12 月 仕様 物理レイヤ 物理レイヤは、MegaCore ファンクションの最下位レベルに配置されて おり、リンクに最も近いレイヤです。リンクを通してパケットをエンコー ドして送信し、受信したパケットを受け入れてデコードします。物理レ イヤは、2.5 Gbps で動作する高速 SERDES を介してリンクに接続しま す。物理レイヤは以下の処理を担当します。 ■ ■ ■ リンクの初期化 レーンあたり 2.5 Gbps のスクランブル / デスクランブルおよび 8b/10b エンコーディング / デコーディング データのシリアライジングおよびデシリアライジング 物理レイヤ・アーキテクチャ 図 3-4 に、物理レイヤ・アーキテクチャを示します。 図 3-4. 物理レイヤ Towards Data Link Layer Towards Link MAC Layer PIPE Interface PHY layer Lane n Lane 0 8B/10B Encoder Scrambler SKIP Generation PIPE Emulation Logic LTSSM State Machine Lane n 8B/10B Decoder Descrambler Multilane Deskew Rx Packets Link Serializer for an x8 Link Control & Status Elastic Buffer Rx MAC Lane Lane 0 8B/10B Decoder Descrambler Elastic Buffer Stratix GX Transceiver (per Lane) with 2.5 Gbps SERDES & PLL Link Serializer for an x8 Link Tx Packets Tx+ / Tx- 8B/10B Encoder Scrambler Transmit Data Path Tx+ / Tx- Rx+ / Rx- Receive Data Path Rx+ / Rx- Rx MAC Lane Altera Corporation 2006 年 12 月 PCI Express Compiler Version 6.1 3–11 PCI Express コンパイラ・ユーザガイド 機能の説明 物理レイヤは、PIPE インタフェース規格によってそれ自体が次の 2 つの レイヤに分割されています(図 3-4 の水平方向向きの括弧内)。 ■ MAC(Media Access Control)レイヤ —MAC レイヤには、リンク・ トレーニングおよびステータス・ステート・マシン、ならびにスク ランブル / デスクランブルおよびマルチレーン・デスキュー機能が 含まれています。 ■ PHY レイヤ — PHY レイヤには、8B/10B エンコード / デコード機能、 エラスティック・バッファリング、およびシリアライゼーション / デシリアライゼーション機能が含まれています。 物理レイヤは、デジタル・エレメントとアナログ・エレメントの両方を 統合します。Intel は、MAC を PHY から分離するために PIPE インタ フェースを設計しています。MegaCore ファンクションは、PIPE インタ フェースに準拠しており、他の PIPE 準拠の外部 PHY デバイスとの統合 を可能にしています。 MegaCore ファンクションは、Stratix GX/Stratix II GX デバイス・ファ ミリをターゲットとするとき、完全な PHY レイヤを自動的にインスタ ンス化します。 レーンの初期化 接続された PCI Express コンポーネントが、同じ数のレーンをサポート していない場合があります。×4 MegaCore ファンクションは、1、2、ま たは 4 レーンのコンポーネントによる初期化および動作をサポートして います。 ×8 MegaCore ファンクションは、1、4、または 8 レーンのコンポーネント での初期化および動作をサポートしています。2 レーンを持つコンポー ネントは 1 レーンで動作します。 スループットの解析 スループット解析には、フロー制御ループを理解していることが必要で す(3–14 ページの図 3-5 参照)。この項では、フロー制御ループについ て、またスループットの改善に役立つ事項について説明します。 3–12 PCI Express Compiler Version 6.1 PCI Express コンパイラ・ユーザガイド Altera Corporation 2006 年 12 月 仕様 Posted 書き込みのスループット Posted 書き込みのスループットは、主に 3–14 ページの図 3-5 に示すフ ロー制御アップデート・ループによって制限されます。ライト・リクエ スタが可能な限り素早くデータを提供し、ライト・コンプリータが可能 な限り素早くそのデータを消費する場合、フロー制御アップデート・ルー プは、リンクの実際の帯域幅の他に、書き込みスループットにおける最 大の決定的要因となります。 図 3-5 のフロー制御アップデート・ループは、フロー制御アップデート・ ループの主なコンポーネントを示しています。図 3-5 には、通信する以 下の 2 つの PCI Express ポートがあります。 ■ ■ ライト・リクエスタ ライト・コンプリータ PCI Express specification に記載されているように、各トランスミッタ、 この場合はライト・リクエスタは、Credit Limit レジスタおよび Credit Consumed レジスタを備えます。Credit Limit レジスタは、受信側、こ の場合はライト・コンプリータによって発行されたすべてのクレジット の合計となります。Credit Limit レジスタは、リンク初期化のフロー制 御初期化段階の間に初期化され、フロー制御(FC)アップデート DLLP によって動作中にアップデートされます。Credits Consumed レジスタ は、送信されたパケットによって消費されたすべてのクレジットの合計 となります。以下の 6 種類のフロー制御それぞれに対して、Separate Credit Limit および Credigts Consumed レジスタが各々存在します。 ■ ■ ■ ■ ■ ■ Posted ヘッダ Posted データ Non-Posted ヘッダ Non-Posted データ コンプリーション・ヘッダ コンプリーション・データ 各レシーバはまた、Credit Allocated カウンタを保持し、このカウンタ は、Rx Buffer(特定のフロー制御クラス用)の使用可能な全スペースに 初期化され、アプリケーション・レイヤによって Rx Buffer からパケッ トが取り出されるとインクリメントされます。このレジスタの値は、FC Update DLLP 値として送信されます。 Altera Corporation 2006 年 12 月 PCI Express Compiler Version 6.1 3–13 PCI Express コンパイラ・ユーザガイド 機能の説明 図 3-5. フロー制御アップデート・ループ Flow Control Gating Logic (Credit Check) 1 Allow FC Update DLLP Decode Credit Limit Credits Consumed Counter 2 FC Update DLLP 6 7 FC Update DLLP Generate Credit Allocated Incr 5 4 3 Incr Rx Buffer Data Packet App Layer Transaction Layer Data Link Layer Physical Layer PCI Express Link Physical Layer Data Source Data Link Layer Transaction Layer Data Packet App Layer Data Sink 以下の番号付けしたステップで、フロー制御アップデート・ループにお ける各ステップを説明します。上の図の対応する番号は、対応する一般 的な領域を示しています。 1. アプリケーション・レイヤに送信するパケットがあるとき、必要な クレジットの数が計算されます。Credit Limit から Credits Consumed を引いた現在の値が、必要なクレジット以上の場合、パケットは直 ちに送信できます。しかし、Credit Limit から Credits Consumed を 引いた値が、必要なクレジットよりも小さい場合、FC アップデート DLLP によって Credit Limit が十分な値に引き上げられるまで、パ ケットを保持しなければなりません。このチェックは、ヘッダおよ びデータ・クレジットの両方に対して個別に実行され、1 個のパケッ トは単一ヘッダ・クレジットのみ消費します。 2. 送信するためにパケットが選択されると、Credits Consumed レジス タは、そのパケットが消費したクレジット数だけインクリメントさ れます。これは、ヘッダとデータ両方の Credit Consumed レジスタ に対して発生します。 3. パケットはリンクの他端で受信され、Rx Buffer に置かれます。 4. ある時点で、パケットはアプリケーション・レイヤによって Rx Buffer から読み出されます。パケット全体が Rx Buffer から読み出されると、 Credit Allocated レジスタは、パケットが使用したクレジットの数だ けインクリメントできます。ヘッダおよびデータ・クレジットに対 して、個別の Credit Allocated レジスタがあります。 3–14 PCI Express Compiler Version 6.1 PCI Express コンパイラ・ユーザガイド Altera Corporation 2006 年 12 月 仕様 5. Credit Allocated レジスタの値は、FC アップデート DLLP を作成す るために使用されます。 6. FC アップデート DLLP が作成されると、FC アップデート DLLP は PCI Express リンクにアクセスするためにアービトレーションを行い ます。FC アップデート DLLP は通常、低優先度でスケジュールされ ます。つまり、アプリケーション・レイヤ TLP または他の DLLP (ACK など)の連続的なストリームが、長期間にわたって FC Update DLLP を遅延させる可能性があります。トランスミッタ側の欠乏を防 止するため、FC アップデート DLLP は、以下の 3 つの状況で高優先 度に格上げされます。 a. 受信したデータ量を Last Sent Credit Allocated カウンタから引 い た 値 が Max Sized Payload よりも小さく、現在の Credit Allocated カウンタが Last Sent Credit Counter よりも大きい場 合。基本的に、これは、Data Source が全 Max Payload 相当分 のクレジットよりも小さく、したがって不足が生じることを Data Sink が認識することを意味します。 b. FC ア ッ プ デ ー ト DLLP を 再 送 信 す る た め に PCI Express specification を満たすように 30 us にコンフィギュレーション された最後の FC アップデート DLLP が送信されたときから、 内部タイマが満了になった場合。 c. Credit Allocated カウンタから Last Sent Credit Allocated カウ ンタを引いた値が、Rx Buffer で使用可能な全クレジットの 25% 以上のとき、FC アップデート DLLP リクエストは高優先度に 格上げされます。 ワースト・ケースにおいて、FC アップデート DLLP を次の送信ア イテムとなるようにアービトレーションを行うと、FC アップデー ト DLLP は、現在送信されている最大サイズの TLP が完了するまで 待たなければ、送信できないことがあります。 7. FC アップデート DLLP は元のライト・リクエスタで受信され、Credit Limit 値がアップデートされます。クレジットを待つ停止中のパケッ トがある場合、それらは直ちに送信できます。 上記のライト・リクエスタが連続してパケットを送信できるようにする には、Credit Allocated カウンタおよび Credit Limit カウンタを十分なク レジットで初期化して、最初に送信された TLP からのクレジット解放に 対応した FC アップデート DLLP の待機中に、複数の TLP を送信できる ようにしなければなりません。 Altera Corporation 2006 年 12 月 PCI Express Compiler Version 6.1 3–15 PCI Express コンパイラ・ユーザガイド 機能の説明 表 3–1「Stratix II GX 用の FC アップデート・ループ遅延要素」は、PCI Express MegaCore ファンクションが Stratix II GX デバイスと共に使用さ れる FC アップデートに対する遅延要素を示しています。これらの遅延 要素は、パケット長とは無関係の遅延です。ループの全遅延はパケット 長によって増大します。 表 3–1. Stratix II GX 用の FC アップデート・ループ遅延要素 ×8 ×4 ×1 ファンクション ファンクション ファンクション 遅延 最小 最大 最小 最大 最小 最大 Transmit Credit Consumed カウンタのデクリメン 60 トから PCI Express リンクまで(ns) 。 68 104 120 272 288 PCI Express リンクから、アプリケーション・レイ 124 ヤ・インタフェースでパケットが利用可能になる まで(ns)。 168 200 248 488 536 アプリケーション・レイヤがパケットを取り込ん 60 でから、PCI Express リンクでの FC アップデート DLLP の生成および送信まで(アービトレーション 遅延がないと仮定)(ns) 。 68 120 136 216 232 PCI Express リンクで FC アップデート DLLP を受 116 信してから、トランスミッタの Credit Limit レジ スタをアップデートするまで(ns) 。 160 184 232 424 472 上記の FC アップデート・ループ遅延、付加的なアービトレーション、 およびパケット長遅延に基づいて、表 3–2 に、遅延を補うために通知が 必要なフロー制御クレジットの数を示します。Rx Buffer は、全帯域幅を 維持するために、このクレジット数に対応するサイズが必要です。 表 3–2. パケット・サイズごとの必要なデータ・クレジット ×8 ファンクション ×4 ファンクション ×1 ファンクション 最大パケット・サイズ 最小 最大 最小 最大 最小 最大 128 64 96 56 80 40 48 256 80 112 80 96 64 64 512 128 160 128 128 96 96 1024 192 256 192 192 192 192 2048 384 384 384 384 384 384 3–16 PCI Express Compiler Version 6.1 PCI Express コンパイラ・ユーザガイド Altera Corporation 2006 年 12 月 仕様 上記のクレジットは、PCI Express リンクの両端にPCI Express MegaCore ファンクションおよび Stratix II GX 遅延を持つデバイスがあることを仮 定しています。リンクの他端にあるデバイスによっては、より小さなま たはより大きな遅延を持つ場合があり、これは必要なクレジットの最小 数に影響する可能性があります。アプリケーション・レイヤが、いずれ のケースでも受信したパケットを直ちに取り込めない場合は、追加クレ ジットを供給してこの遅延を補う必要があることもあります。 MegaWizard インタフェースの Parameter Settings タブで、Buffer Setup ページの Desired performance for received requests を High に設定す ると、上記の必要なクレジットを満たすだけの十分なスペースを持つ Rx Buffer がコンフィギュレーションされます。Desired performance for received requests を High 設定から上下に調整して、遅延および必要な 性能に合わせて Rx Buffer サイズを調整できます。 Non-Posted 読み出しのスループット リード・データの高スループットをサポートするには、すべてのコンプ リーション・データが戻されるまで、リード・リクエストを発行するア プリケーション・レイヤからの全体的な遅延を解析する必要があります。 アプリケーションは、十分なリード・リクエストを発行でき、またリー ド・コンプリータは、この遅延を補う処理が可能な(または少なくとも 十分な Non-Posted ヘッダ・クレジットを提供できる)ことが必要です。 しかし、このループで発生する遅延の大部分は、PCI Express MegaCore ファンクションからかなり外側にあり、推定が非常に困難です。PCI Express スイッチがこのループに挿入されることがあり、それによって 遅延の境界を判断することがより困難になります。 ただし、コンプリーション・データ・パケットの最大スループットを維 持することは重要です。PCI Express Endpoints は、無制限数のコンプ リーション・クレジットを提供しなければなりません。ただし、PCI Express MegaCore ファンクションは、アプリケーションが処理できる ようになるまで、このデータを Rx Buffer にバッファする必要がありま す。違いは、PCI Express MegaCore ファンクションが、フロー制御メカ ニズムを用いて Rx Buffer を管理しなくなることです。代わりに、アプ リケーションがリード・リクエストを発行する速度で Rx Buffer を管理 します。 Rx Buffer でコンプリーションに対して確保するスペース容量に対する 適切な設定を決定するには、リード・コンプリーションが戻されるまで の時間を推定しなければなりません。これは、3–13 ページの「Posted 書 き込みのスループット」の項で説明した FC アップデート・ループ遅延 を上回る追加遅延から推定できます。リード・リクエストおよびコンプ Altera Corporation 2006 年 12 月 PCI Express Compiler Version 6.1 3–17 PCI Express コンパイラ・ユーザガイド 機能の説明 リーションのパスは、PCI Express Logic 内の Posted 書き込みおよび FC アップデートのパスとは厳密に同じではありません。しかし、遅延の差 は、外部読み出しからコンプリーションまでの遅延の内容を推測する際 の不正確さと比較すれば、おそらく小さなものです。 リード・リクエスタとリード・コンプリータとの間のパスに PCI Express スイッチが存在すると仮定し、ルート・ポートの標準的なリード・コン プリーション時間を推定して、表 3–3 に、リード・ラウンド・トリップ 遅延を補うのに必要な推定コンプリーション・スペースを示します。 表 3–3. リード・ラウンド・トリップ遅延を補うための コンプリーション・データ・スペース(クレジット単位) ×8 最大パケット・ ファンクション サイズ 標準 ×4 ファンクション 標準 ×1 ファンクション 標準 128 120 96 56 256 144 112 80 512 192 160 128 1024 256 256 192 2048 384 384 384 4096 768 768 768 コンプリーションは、最大パケット・サイズ未満の複数のコンプリーショ ンに分割できることに注意してください。分割するためには、最大パケッ ト・サイズで割ったコンプリーション・データ・スペースよりも多くの コンプリーション・ヘッダ用の空きが必要です。代わりに、ヘッダ用の 空きはコンプリーション・データ・スペース(バイト単位)÷ 64 になる 必要があります。その理由は 64 が可能な最小のリード・コンプリーショ ン境界であるためです。MegaCore ファンクションの Parameter Settings を 使 用 す る と き、Buffer Setup ページの Desired performance for received completions を High に設定すると、上記の要件を満たす十分 な ス ペー ス を も つ Rx Buffer がコンフィギュレーションされます。 Desired performance for received completions を High 設定から上下に 調整して、遅延および必要な性能に合わせて Rx Buffer サイズを調整で きます。 その他の制約は、一度に保留状態にできるリード・リクエストの量です。 これは、アプリケーションが発行できるヘッダ・タグ数の値、および発 行できる最大リード・リクエストのサイズによって制限されます。使用 できるヘッダ・タグ数の値もまた、PCI Express MegaCore ファンクショ ンによって制限されます。×1 および ×4 ファンクションの場合、最大で 3–18 PCI Express Compiler Version 6.1 PCI Express コンパイラ・ユーザガイド Altera Corporation 2006 年 12 月 仕様 256 のタグを使用するように指定できますが、コンフィギュレーション・ ソフトウェアは32のタグのみを使用するようにアプリケーションを制限 することがあります。ただし、32 のタグで十分なはずです。 ×8コアの場合、MegaCoreファンクションは最大8つのタグを提供してい ます。しかし、今日の PCI Express システムでは、Max Payload Size が 128 バイトに制限されている場合でも、512 以上の最大リード・リクエス ト・サイズを許可しています。512 バイトのリード・リクエストは、32 クレジットの読み出しと同等です。したがって、512 バイトのリード・ リクエストを 8 つ(タグの制限)発行すると、256 データ・クレジット が消費されますが、これはリード・リクエスト・ループをフルに維持し、 スループットを最大化するのに十分です。 Altera Corporation 2006 年 12 月 PCI Express Compiler Version 6.1 3–19 PCI Express コンパイラ・ユーザガイド 機能の説明 コンフィギュレーション・スペース・レジスタの内容 この項では、コンフィギュレーション・スペース・レジスタについて説 明します。詳しくは、PCI Express Base Specification Revision 1.0a の 7 章を 参照してください。 表 3–4 に、共通コンフィギュレーション・スペース・ヘッダを示します。 以下の表にさらに詳しく示します。 表 3–4. 共通コンフィギュレーション・スペース・ヘッダ 31:24 23:16 15:8 7:0 バイト・ オフセット タイプ 0 コンフィギュレーション・レジスタ(詳しくは、表 3–5 を参照) 。 000h..03Ch Reserved 040h..04Ch MSI 機能構造(詳しくは、表 3–6 を参照) 050..05Ch Reserved 060h..074h パワー・マネージメント機能構造(詳しくは、表 3–7 を参照) 078..07Ch PCI Express 機能構造(詳しくは、表 3–8 を参照) 080h..0A0h Reserved 0A4h..0FCh バーチャル・チャネル機能構造(詳しくは、表 3–9 を参照) 100h..16Ch Reserved 170h..17Ch バーチャル・チャネル・アービトレーション・テーブル 180h..1FCh ポート VC0 アービトレーション・テーブル(Reserved) 200h..23Ch ポート VC1 アービトレーション・テーブル(Reserved) 240h..27Ch ポート VC2 アービトレーション・テーブル(Reserved) 280h..2BCh ポート VC3 アービトレーション・テーブル(Reserved) 2C0h..2FCh ポート VC4 アービトレーション・テーブル(Reserved) 300h..33Ch ポート VC5 アービトレーション・テーブル(Reserved) 340h..37Ch ポート VC6 アービトレーション・テーブル(Reserved) 380h..3BCh ポート VC7 アービトレーション・テーブル(Reserved) 3C0h..3FCh Reserved 400h..7FCh AER(オプション) 800..834 Reserved 838..FFF 3–20 PCI Express Compiler Version 6.1 PCI Express コンパイラ・ユーザガイド Altera Corporation 2006 年 12 月 仕様 表 3–5 に、タイプ 0 コンフィギュレーション設定を示します。 表 3–5. タイプ 0 コンフィギュレーション設定 31:24 23:16 15:8 デバイス ID ベンダ ID ステータス コマンド クラス・コード 0x00 ヘッダ・タイプ 0x00 7:0 バイト・ オフセット 000h 004h リビジョン ID 008h キャッシュ・ ライン・サイズ 00Ch ベース・アドレス 0 010h ベース・アドレス 1 014h ベース・アドレス 2 018h ベース・アドレス 3 01Ch ベース・アドレス 4 020h ベース・アドレス 5 024h Reserved 028h サブシステム ID 02Ch サブシステム・ベンダ ID 030h 拡張 ROM ベース・アドレス Reserved 機能 PTR Reserved 0x00 034h 038h 0x00 割り込みピン 割り込みライン 03Ch 表 3–6 に、MSI 機能構造を示します。 表 3–6. MSI 機能構造 31:24 メッセージ・コントロール 23:16 15:8 ネクスト・ ポインタ 7:0 機能 ID バイト・ オフセット 050h メッセージ・アドレス 054h メッセージ上位アドレス 058h Reserved Altera Corporation 2006 年 12 月 メッセージ・データ 05Ch PCI Express Compiler Version 6.1 3–21 PCI Express コンパイラ・ユーザガイド 機能の説明 表 3–7 に、パワー・マネージメント機能構造を示します。 表 3–7. パワー・マネージメント機能構造 31:24 23:16 機能レジスタ 15:8 ネクスト・ 機能 PTR 7:0 バイト・ オフセット 078h 機能 ID PMコントロール/ス パワー・マネージメント・ステータスとコ 07Ch ントロール テータス・ ブリッジ拡張 データ 表 3–8 に、PCI Express 機能構造を示します。 表 3–8. PCI Express 機能構造 31:24 パワー・マネージメント機能 23:16 15:8 ネクスト・ 機能 PTR 7:0 機能 ID デバイス・コントロール 088h 08Ch リンク機能 リンク・ステータス 080h 084h デバイス機能 デバイス・ステータス バイト・ オフセット リンク・コントロール 090h 094h スロット機能 スロット・ステータス スロット・コントロール 098h RsvdP ルート・コントロール 09Ch ルート・ステータス 3–22 PCI Express Compiler Version 6.1 PCI Express コンパイラ・ユーザガイド 0A0h Altera Corporation 2006 年 12 月 仕様 表 3–9 に、バーチャル・チャネル機能構造を示します。 表 3–9. バーチャル・チャネル機能構造 31:24 23:16 ネクスト機能 PTR 7:0 104h ポート VC 機能 1 RsvdP ポート VC ステータス VC アービトレー ション機能 ポート VC コントロール PAT オ フ セッ ト 0 VC リソース機能レジスタ(0) (31:24) バイト・ オフセット 100h バージョン 拡張機能 ID RsvdP VAT オフセット 15:8 108h 10Ch 110h VC リソース・コントロール・レジスタ(0) 114h VC リソース・ステータス・レジスタ(0) RsvdP 118h PAT オ フ セッ ト 1 VC リソース機能レジスタ(1) (31:24) 11Ch VC リソース・コントロール・レジスタ(1) 120h VC リソース・ステータス・レジスタ(1) RsvdP 124h ... PAT オ フ セッ ト 7 VC リソース機能レジスタ(7) (31:24) 164h VC リソース・コントロール・レジスタ(7) 168h VC リソース・ステータス・レジスタ(7) RsvdP 16Ch Altera Corporation 2006 年 12 月 PCI Express Compiler Version 6.1 3–23 PCI Express コンパイラ・ユーザガイド 機能の説明 表 3–10 に、PCI Express アドバンスド・エラー・レポーティング拡張機 能構造を示します。 表 3–10. PCI Express アドバンスド・エラー・レポーティング拡張機能構造 31:24 23:16 15:8 7:0 バイト・ オフセット PCI Express 拡張機能ヘッダ 800h 訂正不能エラー・ステータス・レジスタ 804h 訂正不能エラー・マスク・レジスタ 808h 訂正不能エラー重大度レジスタ 80Ch 訂正可能エラー・ステータス・レジスタ 810h 訂正可能エラー・マスク・レジスタ 814h アドバンスド・エラー機能およびコントロール・レジスタ 818h ヘッダ・ログ・レジスタ 81Ch ルート・エラー・コマンド 82Ch ルート・エラー・ステータス 830h エラー・ソース ID レジスタ 訂正可能エラー・ソース ID レジスタ 834h アクティブ・ステート・パワー・マネージメント(ASPM) PCI Express プロトコルは、デバイスがソフトウェアによって低消費電 力ステートに置かれていない場合でも、リンク消費電力の節約を指示し ます。ASPM はソフトウェアによって開始されますが、それ以降はハー ドウェアによって処理されます。MegaCore ファンクションは、以下の 2 つの低消費電力ステートのうちの 1 つに自動的にシフトして、消費電 力を節約します。 ■ L0s ASPM — PCI Express プロトコルは、L0s への自動遷移をに指定 します。このステートでは、MegaCore ファンクションは電気的アイ ドルに移行しますが、アクティブな受信インタフェースを維持でき ます(すなわち、リンク全体で 1 つのコンポーネントのみが低消費 電力ステートに移行します)。メイン・パワーとリファレンス・ク ロックは維持されます。 L0s ASPM は、Stratix GX の内部 PHY を使用するときにはサポー トされません。Stratix II GX の内部 PHY を使用しているときに は、オプションでイネーブルにできます。取り付けられた外部 PHY デバイスで許可される範囲で、他のデバイス・ファミリに対 してサポートされています。 3–24 PCI Express Compiler Version 6.1 PCI Express コンパイラ・ユーザガイド Altera Corporation 2006 年 12 月 仕様 ■ L1 ASPM — L1 への遷移はオプションで、L0s よりも多くの電力を節 約します。この状態では、リンクの両側が共にパワー・ダウンしま す。すなわちいずれの側も、最初に L0 に戻らなければ、送信も受信 もできません。 L1 ASPM は、Stratix GX または Stratix II GX の内部 PHY を使用 するときにはサポートされません。取り付けられた外部 PHY デ バイスで許可される範囲で、他のデバイス・ファミリに対してサ ポートされています。 L0 または L1 からの脱出 コンポーネントが低消費電力ステートからいかに速く回復するかは、ま ず第一に、コンポーネントが低消費電力ステートに遷移する権利を持っ ているかどうかは、脱出レイテンシおよび許容レイテンシによって決ま ります。 脱出レイテンシ コンポーネントの脱出レイテンシは、コンポーネントが低消費電力ス テートから L0 に回復するのに要する時間として定義されており、 SERDES PLL 同期時間およびソフトウェアでプログラムされた共通ク ロック・コンフィギュレーションに依存します。SERDES には一般に、 全レーンに対して 1 つの送信 PLL があり、またレーンごとに 1 つの受信 PLL があります。 ■ 送信 PLL — 送信時には、送信 PLL はロックしなければなりません。 ■ 受信 PLL — 受信 PLL はリファレンス・クロックでトレーニングしま す。レーンが電気的アイドルから脱出すると、各受信 PLL は受信デー タに同期します(クロック・データ・リカバリ動作)。受信データが スロットのリファレンス・クロックで生成されている場合、および 各受信 PLL がこの同じリファレンス・クロックでトレーニングする 場合、受信 PLL の同期時間は、リファレンス・クロックが両方のコ ンポーネントに対して同じでない場合よりも短くなります。 各コンポーネントは、スロットのリファレンス・クロックを使用する場 合は、コンフィギュレーション・スペースでレポートしなければなりま せん。その場合、ソフトウェアは各コンポーネントのリファレンス・ク ロックに応じて、共通クロック・レジスタをプログラムします。ソフト ウェアはまた、共通クロック・レジスタ値を変更した後、リンクを再ト レーニングして各脱出レイテンシをアップデートします。表 3–11 に、L0s および L1 脱出レイテンシを示します。各コンポーネントは、L0s および Altera Corporation 2006 年 12 月 PCI Express Compiler Version 6.1 3–25 PCI Express コンパイラ・ユーザガイド 機能の説明 L1 脱出レイテンシに対する 2 つの値、つまり共通クロック・コンフィ ギュレーションの値と分離クロック・コンフィギュレーションの値を維 持します。 表 3–11. L0s および L1 脱出レイテンシ パワー・ ステート L0s 説明 L0s 脱出レイテンシは、MegaWizard インタフェースの Power Management ページに指定された 高速トレーニング・シーケンスの値に基づいて MegaCore ファンクションによって計算され、コ ンフィギュレーション・スペース・レジストリで維持されます。メイン・パワーおよびリファレ ンス・クロックはなお存在し、PHY は受信データに対して素早く同期します。 再同期は高速トレーニング順序セットによって実行され、このセットは反対側のコンポーネント によって送信されます。初期化処理によって、コンポーネントは送信するセット数を知ることが でき、このとき必要なセット数は TS1 および TS2 によって決定されます。 L1 L1 脱出レイテンシは、MegaWizard インタフェースの Power Management ページで指定され、コ ンフィギュレーション・スペース・レジストリで維持されます。リンクの両方のコンポーネント は、L1 低消費電力ステートに共に遷移しなければなりません。L1 のとき、コンポーネントの PHY もさらに電力を節約するために P1 低消費電力ステートにあります。メイン・パワーおよびリファ レンス・クロックは依然存在しますが、PHY はすべての PLL をシャット・ダウンして余分な電力 を節約できます。ただし、PLL をシャット・ダウンすると、L0 への遷移時間がより長くなります。 L1 脱出レイテンシは、L0s 脱出レイテンシよりも大きくなります。送信 PLL がロックされると、 両方のコンポーネントがリカバリ・ステートを正しくネゴシエートすると、LTSSM は L0 に戻り ます。このように、厳密な L1 脱出レイテンシは、各コンポーネントの脱出レイテンシ(すなわち、 2 つのコンポーネントのうちの大きい方の値)に依存します。すべての計算はソフトウェアによっ て実行されますが、各コンポーネントは自身の L1 脱出レイテンシをレポートします。 許容レイテンシ 許容レイテンシは、システム性能に妥協することなく、コンポーネント が低消費電力ステートから L0 に遷移するために許容される最大レイテ ンシとして定義されています。許容レイテンシ値は、コンポーネントの 内部バッファリングに依存し、コンフィギュレーション・スペース・レ ジストリに維持されます。ソフトウェアは、リンク脱出レイテンシをエ ンドポイントの許容レイテンシと比較して、そのコンポーネントが特定 の電力ステートの使用を許可されているかどうかを判断します。 ■ L0s の場合、反対側のコンポーネントおよびルート・ポートとエンド ポイント間の各コンポーネントの脱出レイテンシが、エンドポイン トの許容レイテンシと比較されます。例えば、ルート・ポートに接 続されたエンドポイントでは、ルート・ポートの L0s 脱出レイテン シが 1 µs、エンドポイントの L0s 許容レイテンシが 512 ns の場合、 ソフトウェアはそのエンドポイントの L0s へのエントリをおそらく イネーブルできません。 3–26 PCI Express Compiler Version 6.1 PCI Express コンパイラ・ユーザガイド Altera Corporation 2006 年 12 月 仕様 ■ L1 の場合、ソフトウェアは、エンドポイントとルート・ポート間の 各リンクの L1 脱出レイテンシを計算し、その最大値をエンドポイン トの許容レイテンシと比較します。例えば、ルート・ポートに接続 されたエンドポイントでは、ルート・ポートの L1 脱出レイテンシが 1.5 µs、エンドポイントの L1 脱出レイテンシが 4 µs、エンドポイン トの許容レイテンシが 2 µs である場合、リンクの厳密な L1 脱出レイ テンシは 4 µs となり、ソフトウェアはおそらく L1 へのエントリをイ ネーブルにしません。 1 つまたは複数のスイッチがエンドポイントとルート・ポートの間に配 置されている場合、何らかの時間調整が必要になることがあります。 性能を最大にするために、L0s および L1 許容レイテンシ値をそ れらの最小値に設定することをお勧めします。 エラー処理 各 PCI Express 準拠のデバイスは、基本レベルのエラー・マネージメン トを実装する必要があり、オプションでアドバンスト・エラー・マネー ジメントを実装できます。MegaCore ファンクションは、この項で説明 するように両方を行います。ルート・ポートのエラー処理は、ファブリッ ク内での位置と役割を考慮すれば、エンドポイントのエラー処理よりも 複雑になります。 PCI Express specification では 3 つのタイプのエラーが定義されており、 それらの概要を表 3–12 に示します。 表 3–12. エラーの分類 タイプ 処理すべき エージェント 説明 訂正可能 ハードウェア 訂正可能なエラーはシステム性能に影響することがありますが、データ・イン テグリティは維持されます。 訂正不能、 非致命的 デバイス・ ソフトウェア 訂正不能な非致命的エラーは、データは失われるがシステム・インテグリティ は維持される、すなわちファブリックが特定の TLP を失うことがあるが、依 然として問題なく動作するエラーとして定義されています。 訂正不能、 致命的 システム・ ソフトウェア データの損失およびシステム障害によって発生するエラーは、訂正不能かつ致 命的とみなされます。ソフトウェアはそのようなエラーの処理方法、すなわち リンクをリセットするか、または他の手段を実装して問題を最小化するかを決 定しなければなりません。 Altera Corporation 2006 年 12 月 PCI Express Compiler Version 6.1 3–27 PCI Express コンパイラ・ユーザガイド 機能の説明 物理レイヤ 表 3–13 に、物理レイヤで検出されるエラーを示します。 表 3–13. 物理レイヤで検出されるエラー エラー 受信ポート・ エラー タイプ 訂正可能 説明 このエラーの原因には、以下の 3 つが考えられます。 ● ● ● トレーニング・ エラー (1) 訂正不能 (致命的) レーンが L0 ステートにあるときのフィジカル・コーディング・サブ レイヤ・エラー。このエラーはレーンごとに rx_status[2:0] で レポートされます。 100: 8B/10B デコード・エラー 101: エラスティック・バッファ・オーバフロー 110: エラスティック・バッファ・アンダフロー 111: ディスパリティ・エラー マルチレーン・デスキュー FIFO のオーバフローに起因するデス キュー・エラー 誤ったレーンで受信されたコントロール・シンボル トレーニング・エラーは、MegaCore ファンクションが、ホット・リセッ ト、ディセーブル、ループバック、L2 以外のステートを抜けて LTSSM 検出ステートに移行すると発生します。 表 3–13 の注 : (1) PCI Express specification ではオプションとみなされます。 データ・リンク・レイヤ 表 3–14 に、データ・リンク・レイヤで検出されるエラーを示します。 表 3–14. データ・リンク・レイヤで検出されるエラー エラー タイプ 説明 不正な TLP 訂正可能 このエラーは LCRC 検証が失敗するとき、またはシーケンス番号エラーと 共に発生します。 不正な DLLP 訂正可能 このエラーは CRC 検証が失敗すると発生します。 リプレイ・ タイマ 訂正可能 このエラーはリプレイ・タイマがタイム・アウトすると発生します。 リ プ レ イ 番 号 訂正可能 ロールオーバ このエラーはリプレイ・番号がロールオーバすると発生します。 データ・リンク・ 訂正不能 レイヤ・ (致命的) プロトコル このエラーは、AckNak_Seq_Num で指定されたシーケンス番号が、認証 されなかった TLP に対応しないときに発生します。 3–28 PCI Express Compiler Version 6.1 PCI Express コンパイラ・ユーザガイド Altera Corporation 2006 年 12 月 仕様 トランザクション・レイヤ 表 3–15 に、トランザクション・レイヤで検出されるエラーを示します。 表 3–15. トランザクション・レイヤで検出されるエラー (1 / 3) エラー タイプ 説明 ポイズンド TLP の 訂正不能 (非致命的) 受信 このエラーは、受信したトランザクション・レイヤ・パケットの EP ポイ ズンド・ビットがセットされている場合に発生します。 受信した TLP は、rx_desc および rx_data バスに表われ、アプリケー ション・レイヤ・ロジックはポイズンド TLP に応じて、適切なアプリ ケーション・アクションをとらなければなりません。 ECRC チェックの 訂正不能 (非致命的) 失敗 (1) このエラーは、トランザクション・レイヤ・パケットが不正に形成され ておらず、また LCRC チェックが有効であるにもかかわらず、ECRC チェックが失敗したことが原因で発生します。 MegaCore ファンクションは、このトランザクション・レイヤ・パケッ ト を 自動 的 に処 理 しま す。TLP が Non-Posted リ クエ ス トの 場 合、 MegaCore ファンクションは、Completer Abort ステータスでコンプリー ションを生成します。すべてのケースで、TLP は MegaCore ファンクショ ンに対して内部的に削除され、アプリケーション・レイヤには提示され ません。 サポートされてい 訂正不能 ないリクエスト (非致命的) このエラーは、コンポーネントが次のいずれかを含めて、サポートされ ていないリクエストを受信すると発生します。 ● ● ● ● ● ● ● RID がバス / デバイスに適合しないコンプリーション・トランザク ション。 サポートされていないメッセージ。 タイプ 1 コンフィギュレーション・リクエスト・トランザクション・ レイヤ・パケット。 ネ イ テ ィ ブ・エ ン ド ポ イ ン ト で の ロ ッ ク さ れ た メ モ リ 読 み 出 し (MEMRDLK)。 ロックされたコンプリーション・トランザクション。 アドレスの 32 MSB が 0 に設定されている 64 ビット・メモリ・トランザ クション。 BAR マッチが存在しないメモリまたは I/O トランザクション。 TLP が Non-Posted リクエストの場合、MegaCore ファンクションはサ ポートされていないリクエスト・ステータスでコンプリーションを生成 します。すべてのケースで、TLP は MegaCore ファンクションに対して 内部的に削除され、アプリケーション・レイヤには提示されません。 コンプリーション・ 訂正不能 タイム・アウト (非致命的) Altera Corporation 2006 年 12 月 このエラーは、アプリケーション・レイヤから発生したリクエストが、確 立された時間内に対応するコンプリーション・トランザクション・レイ ヤ・パケットを生成しない場合に発生します。コンプリーション・タイ ム・アウト・メカニズムを提供するのは、アプリケーション・レイヤ・ ロ ジ ッ ク の 役 割 で す。コ ン プ リ ー シ ョ ン・タ イ ム・ア ウ ト は、 cpl_err[0] 信号によってトランザクション・レイヤにレポートされな ければなりません。 PCI Express Compiler Version 6.1 3–29 PCI Express コンパイラ・ユーザガイド 機能の説明 表 3–15. トランザクション・レイヤで検出されるエラー (2 / 3) エラー コンプリータ・ アボート (1) タイプ 説明 訂正不能 (非致命的) アプリケーション・レイヤは、トランザクション・レイヤ・パケットの 受信を中止するとき、cpl_err[1] 信号によってこのエラーをレポート します。 予期しないコンプ 訂正不能 リーション (非致命的) このエラーは、cpl_err[2] 信号によってアプリケーション・レイヤか ら入力された予期しないコンプリーション・トランザクション、または リクエスタ ID がエンドポイントのコンフィギュレーションされた ID に 一致しないときのコンプリーション・トランザクションによって発生し ます。 レシーバ・ オーバフロー (1) このエラーは、このタイプのトランザクション・レイヤ・パケットに割 り当てられた FC クレジットに違反するトランザクション・レイヤ・パ ケットをコンポーネントが受信すると発生します。すべてのケースで、 TLP は MegaCore ファンクションに対して内部的に削除され、アプリケー ション・レイヤには提示されません。 訂正不能 (致命的) フロー制御プロト 訂正不能 コル・エラー(FCPE)(致命的) (1) このエラーは、200µs の制限内にコンポーネントがアップデート・フロー 制御クレジットを受信しないと発生します。 3–30 PCI Express Compiler Version 6.1 PCI Express コンパイラ・ユーザガイド Altera Corporation 2006 年 12 月 仕様 表 3–15. トランザクション・レイヤで検出されるエラー (3 / 3) エラー タイプ 不正に形成された 訂正不能 TLP (致命的) 説明 このエラーは、以下の条件のいずれかによって発生します。 ● ● ● ● ● ● ● ● 受信したトランザクション・レイヤ・パケットのデータ・ペイロード が最大ペイロード・サイズを超えている。 TD フィールドがアサートされているが、トランザクション・レイヤ・ パケット・ダイジェストが存在しない、あるいはトランザクション・ レイヤ・パケット・ダイジェストが存在するが、TD フィールドがア サートされていない。 トランザクション・レイヤ・パケットがバイト・イネーブル・ルール に 違 反 し て い る。MegaCore フ ァ ン ク シ ョ ン は、PCI Express specification ではオプションとみなされるこの違反をチェックしま す。 タイプおよび長さのフィールドがトランザクション・レイヤ・パケッ トの全長と一致しないトランザクション・レイヤ・パケット。 フォーマットとタイプの組み合わせが PCI Express specification で規 定されていないトランザクション・レイヤ・パケット。 メモリ・スペース・アクセスが 4K バイト境界を越えるアドレス / 長さ の組み合わせのリクエスト。MegaCore ファンクションはこの違反を チェックします。これは PCI Express specification ではオプションと みなされます。 Assert_INTx、パワー・マネージメント、エラー・シグナリング、 アンロック、 Set_Slot_power_limit などのメッセージは、デ フォルトのトラフィック・クラスで送信しなければなりません。 初期化されていないバーチャル・チャネルを使用するトランザクショ ン・レイヤ・パケット。 不正に形成された TLP は MegaCore ファンクションに対して内部的に削 除され、アプリケーション・レイヤには提示されません。 表 3–15 の注 : (1) PCI Express specification ではオプションとみなされます。 エラー・ロギングおよびレポーティング エンドポイントが特定のエラーを処理する方法は、デバイスのコンフィ ギュレーション・レジスタによって異なります。図 3-6 は、エンドポイ ントのデバイス・エラー・シグナリングおよびロギングのフローチャー トです。 Altera Corporation 2006 年 12 月 PCI Express Compiler Version 6.1 3–31 PCI Express コンパイラ・ユーザガイド 機能の説明 図 3-6. エンドポイントのデバイス・エラー・ロギングおよびレポーティング Start No Is the detected error correctable? Yes Adjust severity according to uncorrectable error severity register. Set correctable error detected bit in device status register. Set fatal/nonfatal error detected bit in device status register. Set corresponding bit in correctable error status register. Advanced Error Management Only Set corresponding bit in uncorrectable error status register. Yes Masked in correctable error mask register? End Masked in uncorrectable error mask register? Yes No End No If first error pointer is not valid, update first error pointer and header registers. Uncorrectable error reporting enabled in device control register? No End Send ERR_FATAL Message End Fatal? Correctable error reporting enabled in device control register? End Yes No No Yes Yes Send ERR_NONFATAL Message End 3–32 PCI Express Compiler Version 6.1 PCI Express コンパイラ・ユーザガイド Send ERR_CORR Message End Altera Corporation 2006 年 12 月 仕様 データのポイズニング MegaCore ファンクションは、データのポイズニング、すなわちトラン ザクションに関連するデータが破壊されていることを示すメカニズムを 実装しています。ポイズンド・トランザクション・レイヤ・パケットは、 ヘッダのエラー / ポイズンド・ビットが 1 に設定されており、次のルー ルに従います。 ■ 受信したポイズンド・トランザクション・レイヤ・パケットがアプ リケーション・レイヤに送信され、ステータス・ビットがコンフィ ギュレーション・スペース内で自動的にアップデートされます。 ■ 受信した有害コンフィギュレーション・ライト・トランザクション・ レイヤ・パケットは、コンフィギュレーション・スペースに書き込 まれません。 ■ コンフィギュレーション・スペースがポイズンド・トランザクショ ン・レイヤ・パケットを生成することはなく、ヘッダのエラー / ポ イズンド・ビットは常に 0 に設定されます。 ポイズンド・トランザクション・レイヤ・パケットは、PCI コンフィギュ レーション・スペース・ステータス・レジスタのパリティ・エラー・ビッ トも設定することがあります。パリティ・エラーは、表 3–16 に規定され た条件によって発生します。 表 3–16. パリティ・エラー条件 ステータス・ビット 条件 パリティ・エラーの検出 受信したいずれかのトランザクション・レイヤ・パケットが有害であるときに設定。 (ステータス・レジスタ・ ビット 15) マ ス タ・デ ー タ・パ リ このビットは、コマンド・レジスタのパリティ・イネーブル・ビットが設定されて ティ・エラー おり、次の条件のいずれかに該当するときに設定されます。 (ステータス・レジスタ・ ● ポイズンド・ビットが設定されたライト・リクエスト・トランザクション・レイ ビット 8) ヤ・パケットの送信。 ● ポイズンド・ビットが設定されたコンプリーション・トランザクション・レイ ヤ・パケットの受信。 MegaCore ファンクションによって受信されたポイズンド・パケットは、 アプリケーション・レイヤに渡されます。ポイズンド送信トランザクショ ン・レイヤ・パケットが、同様にリンクに送信されます。 Altera Corporation 2006 年 12 月 PCI Express Compiler Version 6.1 3–33 PCI Express コンパイラ・ユーザガイド 機能の説明 Stratix GX PCI Express の互換性 いくつかの PCI Express デバイスは、Stratix GX レシーバを検出できま せん。PCI Express レシーバ検出シーケンスの間に、他の PCI Express デ バイスが Stratix GX レシーバを検出できない場合、他のデバイスは LTSSM Detect ステートのまま、Stratix GX デバイスは Compliance ス テートのままとなり、リンクは初期化されません。これはレシーバ入力 が電気的アイドルにあるときに、Stratix GX デバイスが正しいレシーバ・ インピーダンス特性を示さないことにより発生します。Stratix GX デバ イスは、PCI Express specification が開発される前に設計されました。 Stratix II GX デバイスは、PCI Express プロトコルを満たすように設計さ れており、この問題はありません。ただし、Stratix II GX は Stratix GX を検出できない PCI Express デバイスの 1 つです。 結果として設計に影響する点は、Stratix GX が他の一部の PCI Express デバイスと同時に動作しないということです。しかし、この問題は以下 のいずれかの対策をとることによって解決できます。 ■ 可能であれば、他の PCI Express デバイスが Rx Detect プロトコルの結 果を無視し、リンクのトレーニングを試みるようにします。 ■ Stratix GX PCI Express デザインから Stratix II GX に移行します。 OpenCore Plus タイム・アウト動作 OpenCore® Plus ハードウェア評価機能は、次の 2 つのモードの動作をサ ポートできます。 ■ ■ アンテザード — デザインは一定時間のみ動作します。 テザード — ボードとホスト・コンピュータを接続する必要がありま す。テザード・モードがすべてのデザイン内 MegaCore ファンクショ ンでサポートされている場合、デバイスはより長時間または無期限 に動作できます。 デバイスのすべての MegaCore ファンクションは、最も制限的な評価時 間に達すると同時にタイム・アウトします。デザインに複数の MegaCore ファンクションが存在する場合、特定の MegaCore ファンクションのタ イム・アウト動作は、他の MegaCore ファンクションのタイム・アウト 動作によってマスクされることがあります。 MegaCore ファンクションの場合、アンテザード・タイム・アウ トは 1 時間、テザード・タイム・アウト値は無限です。 ハードウェア評価時間が期限切れとなったとき、MegaCore ファンク ションは以下のことを行います。 3–34 PCI Express Compiler Version 6.1 PCI Express コンパイラ・ユーザガイド Altera Corporation 2006 年 12 月 仕様 1. リンク・トレーニングおよびステータス・ステート・マシンがクワィ エット・ステートを検出するよう強制され、そこに保持されます。こ れによって、PCI Express リンクがディセーブルされ、追加のデータ 転送が防止されます。 2. コンフィギュレーション・スペース内の PCI Express 機能レジスタ は、リセット状態に保持されます。 OpenCore Plus ハードウェア評価機能について詳しくは、1–6 ページの 「OpenCore Plus 評価機能」および「AN 320 : OpenCore Plus Evaluation of Megafunctions」を参照してください。 Altera Corporation 2006 年 12 月 PCI Express Compiler Version 6.1 3–35 PCI Express コンパイラ・ユーザガイド パラメータ 設定 パラメータ 設定 この項では、MegaWizard インタフェースの Parameter Settings タブを 使用してのみ設定できる PCI Express ファンクション・パラメータにつ いて説明します。 System Settings ページ MegaWizard インタフェースの最初のページには、システム全体の設定 およびベース・アドレス・レジスタに対するパラメータが含まれていま す。図 3-7 を参照してください。 図 3-7. System Settings ページ 3–36 PCI Express Compiler Version 6.1 PCI Express コンパイラ・ユーザガイド Altera Corporation 2006 年 12 月 仕様 表 3–17 に、このページで設定できるパラメータを示します。 表 3–17. System Settings ページ・パラメータ (1 / 2) パラメータ PHY type 値 説明 Custom すべての PHY インタフェース(シリアルを除く)を許可、×1 お よび ×4 レーンを許可 Stratix GX Stratix GX は、Stratix GX デバイス・ファミリの内蔵 altgxb トラ ンシーバを使用します。この PHY インタフェースを選択すると、 シリアル PHY インタフェースのみ許可され、Number of Lanes は ×1 または ×4 に制限されます。 Stratix II GX Stratix II GX は、Stratix II GX デバイス・ファミリの内蔵 alt2gxb トランシーバを使用します。この PHY インタフェースを選択す ると、シリアル PHY インタフェースのみ許可され、Number of Lanes は ×1、×4、または ×8 にすることできます。 TI XIO1100 TI XIO1100 は、送信クロック(txclk)付き 8 ビット DDR また は送信クロック PHY インタフェース付き 16 ビット SDR を許可 します。これらはいずらも、Number of Lanesを×1に制限します。 Philips PX1011A Philips PX1011A は、8 ビット TxClk 付き SDR の PHY インタ フェースを使用します。このオプションを指定すると、レーン 数が ×1 に制限されます。 PHY interface Serial、 これによって、データパス幅およびクロッキング・モードに基 づいて、特定のタイプの外部 PHY インタフェースを選択します。 16-bit SDR、 16-bit SDR w/TxClk、 具体的な PHY モードについて詳しくは、4 章 外部 PHY を参照 してください。 8-bit DDR、 8-bit DDR w/TxClk、 Stratix II GX および Stratix GX はシリアル専用の PHY インタ フェースであり、使用可能な唯一のシリアル・インタフェース 8-bit SDR、 です。 8-bit SDR w/TxClk Lanes ×1、×4、×8 サポートされるレーンの最大数を指定します。 ×8 値は、Stratix II GX PHY に対してのみサポートされています。 Port type Native Endpoint、 Legacy Endpoint ポート・タイプを指定します。アルテラでは、すべての新しい デザインに対してネイティブ・エンドポイントを推奨していま す。互換性のために I/O トランザクションのサポートが必要な 場合にのみ、Legacy Endpoint を選択します。詳しくは、3–2 ペー ジの「エンドポイントの種類」を参照してください。 Xcvr ref_clk 100 MHz、125 MHz、 Stratix GX PHY を使用する場合は、 refclk 入力クロック信号 156.25 MHz の周波数を指定します。Stratix GX PHY は、125 MHz または 156.25 MHz クロックのいずれかを直接使用できます。100 MHz を選択した場合、MegaCore ファンクションは Stratix GX PLL を 使用して、100 MHz 入力から 125 MHz クロックを生成します。 汎用 PIPE を使用する場合、 refclk は必要ありません。 Stratix II GX PHY は 100 MHz クロックを必要とします。 Altera Corporation 2006 年 12 月 PCI Express Compiler Version 6.1 3–37 PCI Express コンパイラ・ユーザガイド パラメータ 設定 表 3–17. System Settings ページ・パラメータ (2 / 2) パラメータ 値 説明 PCI Express version 1.0A または 1.1 バリエーションが互換性を持つ PCI Express specification を選択 します。 Configure transceiver block Enable fast recovery mode または Enable rate match fifo トランシーバ・ブロックをコンフィギュレーションするための ダイアログが表示されます。このオプションは、Stratix II GX PHY を選択した場合にのみ有効です。これらの使用可能なオプ ションについて詳しくは、表 3–18 および図 3-8 を参照してくだ さい。 Internal clock 62.5、125、250 MHz レーン数および選択された PHY タイプに基づく内部クロックの 周波数を指定します。これはコアのアプリケーション・レイヤ・ インタフェースが動作する周波数でもあります。 ×8 コンフィギュレーションでは、内部クロックは 250 MHz で固 定されます。×4 コンフィギュレーションでは、内部クロックは 125 MHz で固定されます。Stratix II GX の ×1 コンフィギュレー ションでは、内部クロックは 125 MHz で固定されます。他の ×1 コンフィギュレーションでは、Internal Clock は 62.5 MHz か 125 MHz のいずれかに選択できます。 BAR Table (BAR0) BAR タイプおよび サイズ BAR0 サイズおよびタイプ・マッピング(I/O スペース、メモ リ・スペース、プリフェッチ可能)。BAR0 と BAR1 を組み合わ せて 64 ビット BAR を形成できます。 BAR Table (BAR1) BAR タイプおよび サイズ BAR1 サイズおよびタイプ・マッピング(I/O スペース、メモ リ・スペース、プリフェッチ可能)。 BAR Table (BAR2) BAR タイプおよび サイズ BAR2 サイズおよびタイプ・マッピング(I/O スペース、メモ リ・スペース、プリフェッチ可能)。BAR2 と BAR3 を組み合わ せて 64 ビット BAR を形成できます。 BAR Table (BAR3) BAR タイプおよび サイズ BAR3 サイズおよびタイプ・マッピング(I/O スペース、メモ リ・スペース、プリフェッチ可能)。 BAR Table (BAR4) BAR タイプおよび サイズ BAR4 サイズおよびタイプ・マッピング(I/O スペース、メモ リ・スペース、プリフェッチ可能)。 BAR Table (BAR5) BAR タイプおよび サイズ BAR5 サイズおよびタイプ・マッピング(I/O スペース、メモ リ・スペース、プリフェッチ可能)。BAR4 と BAR5 を組み合わ せて 64 ビット BAR を形成できます。 BAR Table (EXP-ROM) BAR タイプおよび サイズ Expansion ROM BAR サイズおよびタイプ・マッピング(I/O ス ペース、メモリ・スペース、プリフェッチ可能)。 3–38 PCI Express Compiler Version 6.1 PCI Express コンパイラ・ユーザガイド Altera Corporation 2006 年 12 月 仕様 MegaCore ファンクション BAR サポート ×1 および ×4 MegaCore ファンクションは、 128 バイトから、32 ビットまた は 64 ビット BAR で許可される最大のサイズの範囲の Memory Space BAR をサポートします。×8 MegaCore ファンクションは、4 K バイトか ら、32 ビットまたは 64 ビット BAR で許可される最大バイト数の Memory Space BAR をサポートします。 Legacy Endpoint モードでの ×1 および ×4 MegaCore ファンクションは、 サイズが 16 バイトから 4 K バイトまでの I/O Space BAR をサポートし ます。×8 MegaCore ファンクションは、4 K バイトの I/O Space BAR の みサポートします。 Stratix II GX PHY のトランシーバ・ブロックの コンフィギュレーション Stratix II GX PHY を使用する場合、System Settings ページの Configure transceiver block から利用できるダイアログで設定を変更することに よって、トランシーバ・ブロックをコンフィギュレーションできます。 表 3–18. トランシーバ・ブロック・パラメータの コンフィギュレーション パラメータ 説明 Enable fast recovery mode このオプションをイネーブルにすると、 Rx ASPM L0s ステートをより高速に脱出するための付加的なロ ジックが追加されます。ディセーブルにすると、Rx ASPM L0s の脱出には通常、リンク・リカバリの起動 が必要となります。 Enable rate match fifo こ の オ プ シ ョ ン を イ ネ ー ブ ル に す る と、Rate Matching FIFO がイネーブルされ、PCI Express リン クの各端で PPM が異なる各種クロックが許可されま す。 ディセーブルにすると、レート・マッチ FIFO がバイ パスされ、より低いレイテンシが可能になりますが、 PCI Express リンクの両端のポートが同じクロック・ ソースを使用することが必要です。各端のクロックの 間に PPM の違いはありません。 Altera Corporation 2006 年 12 月 PCI Express Compiler Version 6.1 3–39 PCI Express コンパイラ・ユーザガイド パラメータ 設定 図 3-8. Configure Transceiver ダイアログ 3–40 PCI Express Compiler Version 6.1 PCI Express コンパイラ・ユーザガイド Altera Corporation 2006 年 12 月 仕様 Capabilities ページのパラメータ Capabilities ページには、PCI 読み出し専用レジスタおよびメイン機能設 定に対するパラメータが含まれています。図 3-9 を参照してください。 図 3-9. Capabilities ページ Altera Corporation 2006 年 12 月 PCI Express Compiler Version 6.1 3–41 PCI Express コンパイラ・ユーザガイド パラメータ 設定 表 3–19 に、このページで設定できるパラメータを示します。 表 3–19. Capabilities ページのパラメータ (1 / 2) パラメータ 値 説明 Device ID 16 ビット 16 進数 デバイス ID レジスタの読み出し専用値を設定します。 Vendor ID 16 ビット 16 進数 ベンダ ID レジスタの読み出し専用値を設定します。このパラメー タを、PCI Express specification に従って 0xFFFF に設定することは できません。 Class code 24 ビット 16 進数 クラス・コード・レジスタの読み出し専用値を設定します。 Revision ID 8 ビット 16 進数 リビジョン ID レジスタの読み出し専用値を設定します。 Subsystem ID 16 ビット 16 進数 サブシステム・デバイス ID レジスタの読み出し専用値を設定しま す。 Subsystem vendor ID 16 ビット 16 進数 サブシステム・ベンダ ID レジスタの読み出し専用値を設定します。 このパラメータを、PCI Express specification に従って 0xFFFF に設 定することはできません。 Link common clock オン / オフ システムで供給される共通リファレンス・クロックを PHY のリファ レンス・クロックとして使用するかどうかを示します。このパラメー タは、リンク・ステータス・レジスタ内のスロット・クロック・コ ンフィギュレーション・ビットの読み出し専用値を設定します。 Implement advanced error reporting オン / オフ アドバンスト・エラー・レポート機能を設定します。 Implement ECRC check オン / オフ ECRC チェック機能をイネーブルにします。アドバンスト・エラー 機能およびコントロール・レジスタにおける ECRC チェック可能 ビットの読み出し専用値を設定します。このパラメータを使用する には、ユーザがアドバンスト・エラー・レポーティング機能を実装 する必要があります。 Implement ECRC generation オン / オフ ECRC 生成機能をイネーブルにします。アドバンスト・エラー機能 およびコントロール・レジスタにおける ECRC 生成可能ビットの読 み出し専用値を設定します。このパラメータを使用するには、ユー ザがアドバンスト・エラー・レポーティング機能を実装する必要が あります。 Link port number 8 ビット 16 進数 リンク機能レジスタにおけるポート番号フィールドの読み出し専用 値を設定します。 3–42 PCI Express Compiler Version 6.1 PCI Express コンパイラ・ユーザガイド Altera Corporation 2006 年 12 月 仕様 表 3–19. Capabilities ページのパラメータ (2 / 2) パラメータ 値 説明 Tags supported 4、8、16、 アプリケーション・レイヤが送信する Non-Posted リクエストに対 32、64、128、 してサポートされるタグ数を示します。トランザクション・レイヤ 256 は、アプリケーションが作成した Non-Posted リクエストに対する すべての未処理のコンプリーションを追跡します。このパラメータ は、トランザクション・レイヤに追跡すべき最大数を知らせます。 アプリケーション・レイヤは、すべての Non-Posted PCI Express ヘッダの Tag 値をこの値よりも小さく設定しなければなりません。 また、32 よりも大きい値を指定すると、コンフィギュレーション空 間デバイス機能レジスタの Extended Tag Field Supported ビットも セットされます。コンフィギュレーション・ソフトウェアがデバイ ス・コントロール・レジスタの Extended Tag Field Enable ビットを セットする場合、アプリケーションは 31 よりも大きいタグ数しか使 用 で き ま せ ん。こ の ビ ッ ト は、ア プ リ ケ ー シ ョ ン か ら cfg_devcsr[8] として使用できます。この値は、×8 MegaCore ファンクションに対しては最大 8 に制限されます。 MSI messages requested 1、 2、 4、 8、 アプリケーションが要求するメッセージ数を示します。メッセージ・ コントロール・レジスタのマルチプル・メッセージ可能フィールド 16、32 の値を設定します。詳しくは、3–92 ページの「MSI および INTx 割 り込み信号」を参照してください。 MSI message 64-bit capable オン / オフ Altera Corporation 2006 年 12 月 MSI 機能メッセージ・コントロール・レジスタが 64 ビット・アド レッシングが可能かどうかを示します。PCI Express ネイティブ・エ ンドポイントは常に MSI 64 ビット・アドレッシングをサポートし ます。 PCI Express Compiler Version 6.1 3–43 PCI Express コンパイラ・ユーザガイド パラメータ 設定 Buffer Setup ページ Buffer Setup ページには、受信バッファおよびリトライ・バッファのパ ラメータが含まれています。図 3-10 を参照してください。 図 3-10. Buffer Setup ページ 3–44 PCI Express Compiler Version 6.1 PCI Express コンパイラ・ユーザガイド Altera Corporation 2006 年 12 月 仕様 表 3–20 に、このページで設定できるパラメータを示します。 表 3–20. Buffer Setup ページ・パラメータ (1 / 4) パラメータ 値 説明 Maximum payload 128 Bytes、 size 256 Bytes、 512 Bytes、 1 KByte、 2 KBytes サポートされる最大ペイロード・サイズを指定します。このパラメータ は、デバイス機能レジスタの最大ペイロード・サイズ・サポート・フィー ルドの読み出し専用値を設定し、このサイズのペイロードに対して MegaCore ファンクションを最適化します。 Number of virtual channels 1-4 サポートされるバーチャル・チャネル数を指定します。このパラメータ は、ポート・バーチャル・チャネル機能レジスタ 1 の読み出し専用拡張 バーチャル・チャネル・カウント・フィールドを設定し、実装される バーチャル・チャネル・トランザクション・レイヤ・インタフェース数 を制御します。 Number of low priority VCs None、2、3、4 低優先度アービトレーション・グループのバーチャル・チャネル数を指 定します。この値よりも小さい番号が付けられたバーチャル・チャネル は、低優先度です。この値以上の番号が付けられたバーチャル・チャネ ルは、高優先度です。詳しくは、3–5 ページの「送信バーチャル・チャ ネルのアービトレーション」を参照してください。このパラメータは、 ポート・バーチャル・チャネル機能レジスタ 1 の読み出し専用低優先度 拡張バーチャル・チャネル・カウント・フィールドを設定します。 Auto configure retry buffer size オン / オフ 最大ペイロード・サイズに基づいてリトライ・バッファの自動コンフィ ギュレーションを制御します。 Retry buffer size 512 バイトから 送信された PCI Express パケットが確認応答されるまで格納するための 16 K バイト リトライ・バッファのサイズを設定します。 (2 のべき乗) Maximum retry packets 4 から 256 (2 のべき乗) Altera Corporation 2006 年 12 月 リトライ・バッファに格納できるパケットの最大数を設定します。 PCI Express Compiler Version 6.1 3–45 PCI Express コンパイラ・ユーザガイド パラメータ 設定 表 3–20. Buffer Setup ページ・パラメータ (2 / 4) パラメータ Desired performance for received requests 値 Low、 Medium、 High、 Maximum 説明 Rx Buffer サイズおよびフロー制御クレジットをコンフィギュレーショ ンする方法を指定します。 ● ● ● ● Low — 希望のトラフィックに対して最小量のスペースを用意しま す。受信したリクエストのスループットがシステム・デザインにとっ て重要でないときは、このオプションを選択します。これにより、 デバイスのリソース使用量が最小になります。 Medium — 受信したリクエストに対して中容量のスペースを用意 します。受信したリクエストのトラフィックが全リンク帯域幅を使 用する必要がなくても、ときどき最大サイズの 2、3 倍のペイロー ド・パケット・バーストを使用することが予測される場合には、こ のオプションを選択します。 High — 取り付けられた PCI Express ポートによって、標準外部リン ク遅延および FC Update 処理遅延を持ち、受信したリクエストの全 リンク帯域幅を維持するのに十分なバッファ・スペースを用意しま す。この設定は全リンク帯域幅が必要となる大部分の状況で使用し ます。これはデフォルトの設定です。 Maximum — 付加的な外部遅延(リンク側およびアプリケーション 側)があっても最大スループットを可能とするための付加的なス ペースを用意します。 このパラメータが供給するよりも多くのバッファ・スペースが必要 な場合は、より大きなペイロード・サイズとこの設定を選択します。 これにより、バッファ・サイズが増加し、またロジック・エレメン ト(LE)の数もわずかに増加しますが、より大きなペイロード・サ イズをサポートします。 詳しくは、3–12 ページの「スループットの解析」の項のデータ・ク レジットを参照してください。 3–46 PCI Express Compiler Version 6.1 PCI Express コンパイラ・ユーザガイド Altera Corporation 2006 年 12 月 仕様 表 3–20. Buffer Setup ページ・パラメータ (3 / 4) パラメータ Desired performance for received completions 値 Low、 Medium、 High、 Maximum 説明 Rx Buffer サイズおよびフロー制御クレジットをコンフィギュレーショ ンする方法を指定します。 ● ● ● ● Low — 受信したコンプリーションに対して最小量のスペースを用 意します。受信したコンプリーションのスループットがシステム・ デザインにとって重要でないときは、このオプションを選択します。 このオプションはまた、アプリケーションが PCI Express リンク上 でリード・リクエストを開始することがないと予測される場合にも 使用されます。このオプションを選択すると、デバイスのリソース 使用量が最小になります。 Medium — 受信したコンプリーションに対して中容量のスペース を用意します。受信したコンプリーションのトラフィックが全リン ク帯域幅を使用する必要がなくても、ときどき最大サイズの 2、3 倍 のペイロード・パケット・バーストを使用することが予測される場 合には、このオプションを選択します。 High — 取り付けられた PCI Express ポートによって、標準的な外部 リンク遅延および FC Update 処理遅延を持ち、受信したリクエスト の全リンク帯域幅を維持するのに十分なバッファ・スペースを用意 します。この設定は全リンク帯域幅が必要となる大部分の状況で使 用します。これはデフォルトの設定です。 Maximum — 付加的な外部遅延(リンク側およびアプリケーション 側)があっても最大スループットを可能とするための付加的なス ペースを用意します。 このパラメータが供給するよりも多くのバッファ・スペースが必要 な場合は、より大きなペイロード・サイズとこの設定を選択します。 これにより、バッファ・サイズが増加し、またロジック・エレメン ト(LE)の数もわずかに増加しますが、より大きなペイロード・サ イズをサポートします。 詳しくは、3–12 ページの「スループットの解析」の項のデータ・クレ ジットを参照してください。 Altera Corporation 2006 年 12 月 PCI Express Compiler Version 6.1 3–47 PCI Express コンパイラ・ユーザガイド パラメータ 設定 表 3–20. Buffer Setup ページ・パラメータ (4 / 4) パラメータ RX Buffer Space Allocation 値 説明 読 み 出 し 専 用 Rx Buffer Space Allocation テーブルには、Rx Buffer Size 設定に基づ テーブル いて各フロー制御可能なタイプに割り当てられたクレジットとスペー スが表示されます。すべてのバーチャル・チャネルは同じ Rx Buffer ス ペース・アロケーションを使用します。 このテーブルには Non-Posted データ・クレジットは表示されません。 これは、MegaCore ファンクションが常に無限の Non-Posted データ・ クレジットを通知し、各 Non-Posted ヘッダに関連付けることができる 最大 1 DWORD のデータに対する空きを持つからです。 コンプリーション・ヘッダおよびコンプリーション・データに対して表 示される数は、コンプリーション用の Rx Buffer に確保されるスペース 容量を示します。ただし、無限のコンプリーション・クレジットは、エ ンドポイントに対して要求されるため、PCI Express リンク上で通知さ れます。Rx Buffer コンプリーション・スペースがオーバフローしない ようにするために行われる Non-Posted リクエストのレートは、アプリ ケーション・レイヤが管理します。 3–48 PCI Express Compiler Version 6.1 PCI Express コンパイラ・ユーザガイド Altera Corporation 2006 年 12 月 仕様 Power Management ページ Power Management ページには、MegaCore ファンクションのさまざま なパワー・マネージメント特性を設定するためのパラメータがあります。 図 3-11 を参照してください。 図 3-11. Power Management ページ Altera Corporation 2006 年 12 月 PCI Express Compiler Version 6.1 3–49 PCI Express コンパイラ・ユーザガイド パラメータ 設定 表 3–21 に、このページで設定できるパラメータを示します。 表 3–21. Power Management ページ・パラメータ (1 / 2) パラメータ 値 説明 Idle threshold for L0s 256 ns から 8,192 ns L0s エントリのアイドル・スレッショルドを示します。このパラ entry (256 ns 単位) メータは、トランスミッタが L0s ステートに遷移するまでリンク が ア イ ド ル で な け れ ば な ら な い 合 計 時 間 を 指 定 し ま す。 PCI Express specification では、この時間は 7 µs より小さくなけ ればならないと記載されていますが、正確な値は実装によって異 なります。Stratix GX PHY または Stratix II GX PHY を選択する 場合、このパラメータはディセーブルされ、外部 PHY を使用し ている場合は、その最大値に設定されます。PHY ベンダのドキュ メントを参照して、このパラメータに対する正しい値を決定して ください。 Endpoint L0s acceptable latency < 64 ns to > 4 µs デバイス機能レジスタの許容エンドポイント L0s レイテンシを示 します。デバイス機能レジスタのエンドポイント L0s 許容レイテ ンシ・フィールドの読み出し専用値を設定します。この値はアプ リケーション・レイヤが許容可能なレイテンシに基づく必要があ ります。 Number of Fast Training Sequences 共通クロック 0 - 255 共通クロック・モードで必要な高速トレーニング・シーケンス 数を示します。必要な高速トレーニング・シーケンス数は、リ ンク初期化中にリンクの他端に送信され、デバイス機能レジス タの L0s 脱出レイテンシ・フィールドの計算にも使用されます。 Stratix GX PHY または Stratix II GX PHY を選択する場合、この パラメータはディセーブルされ、その最大値に設定されます。外 部 PHY を使用している場合は、PHY ベンダのドキュメントを 参照して、このパラメータの正しい値を決定してください。 Number of Fast Training Sequences Separate clock 0 - 255 個別クロック・モードで必要な高速トレーニング・シーケンス 数を示します。必要な高速トレーニング・シーケンス数は、リ ンク初期化中にリンクの他端に送信され、デバイス機能レジス タの L0s 脱出レイテンシ・フィールドの計算にも使用されます。 Stratix GX PHY または Stratix II GX PHY を選択する場合、この パラメータはディセーブルされ、その最大値に設定されます。外 部 PHY を使用している場合は、PHY ベンダのドキュメントを参 照して、このパラメータの正しい値を決定してください。 Enable L1 ASPM オン / オフ リンク機能レジスタの L1 アクティブ・ステート・パワー・マネー ジメント・サポート・ビットを設定します。Stratix GX PHY また は Stratix II GX PHY を選択する場合、このオプションはオフに され、ディセーブルされます。 Endpoint L1 acceptable latency < 1µs から > 64 µs エンドポイント L1 許容レイテンシを示します。デバイス機能レ ジスタのエンドポイント L1 許容レイテンシ・フィールドの読み 出し専用値を設定します。この値はアプリケーション・レイヤが 許容可能なレイテンシに基づく必要があります。 3–50 PCI Express Compiler Version 6.1 PCI Express コンパイラ・ユーザガイド Altera Corporation 2006 年 12 月 仕様 表 3–21. Power Management ページ・パラメータ (2 / 2) パラメータ 値 説明 L1 Exit Latency Common clock < 1µs から > 64 µs 個別クロックの L1 脱出レイテンシを示します。デバイス機能レ ジスタの L1 脱出レイテンシ・フィールドの値を計算するために 使用されます。Stratix GX PHY または Stratix II GX PHY を選択 する場合、このパラメータはディセーブルされ、その最大値に設 定されます。外部 PHY を使用している場合は、PHY ベンダのド キュメントを参照して、このパラメータの正しい値を決定してく ださい。 L1 Exit Latency Separate clock < 1µs から > 64 µs 共通クロックの L1 脱出レイテンシを示します。デバイス機能レ ジスタの L1 脱出レイテンシ・フィールドの値を計算するために 使用されます。Stratix GX PHY または Stratix II GX PHY を選択 する場合、このパラメータはディセーブルされ、その最大値に設 定されます。外部 PHY を使用している場合は、PHY ベンダのド キュメントを参照して、このパラメータの正しい値を決定してく ださい。 信号 アプリケーション・インタフェースの信号は、以下の 4 つのカテゴリに 分類されます。 ■ ■ ■ ■ 送信データ・パス・インタフェース信号 受信データ・パス・インタフェース信号 コンフィギュレーション・インタフェース信号 グローバル信号 図 3-12 に、すべての PCI Express MegaCore ファンクションの信号を示 します。 送信および受信信号は実装された各バーチャル・チャネルに適用されま す。他方、コンフィギュレーションおよびグローバル信号はリンク上の すべてのバーチャル・チャネルに共通です。 Altera Corporation 2006 年 12 月 PCI Express Compiler Version 6.1 3–51 PCI Express コンパイラ・ユーザガイド 信号 図 3-12. MegaCore ファンクションの I/O 信号 Transmit Data Path (for VC0) tx_req0 tx_desc0 tx_ack0 tx_dfr0 tx_dv0 PCI Express MegaCore Function tx_data0[63:0] tx_ws0 tx_cred0[21:0] rx_req0 rx_desc0[135:0] rx_ack0 rx_abort0 Receive Data Path (for VC0) rx_retry0 rx_mask0 rx_dfr0 rx_dv0 rx_data0[63:0] rx_be0[7:0] rx_ws0 Power Management pme_to_cr pme_to_sr cfg_pmcsr[31:0] app_msi_req Interrupt app_msi_ack ack_msi_tc[2:0] msi_num[4:0] cfg_msicsr[15:0] pex_msi_num[4:0] app_int_sts tx[7:0] rx[7:0] pipe_mode 1-Bit Serial txdata0_ext[15:0] txdatak0_ext[1:0] txdetectrx0_ext txelecidle0_ext txcompliance0_ext rxpolarity0_ext powerdown0_ext[1:0] rxdata0_ext[15:0] rxdatak0_ext[1:0] rxvalid0_ext 16-Bit PIPE for x1 and x4 (Repeated for Lanes 1 - 3 in the x4 MegaCore Function) phystatus0_ext rxelecidle0_ext rxstatus0_ext[2:0] txdata0_ext[7:0] txdatak0_ext txdetectrx0_ext txelecidle0_ext txcompliance0_ext rxpolarity0_ext powerdown0_ext[1:0] rxdata0_ext[7:0] rxdatak0_ext rxvalid0_ext phystatus0_ext rxelecidle0_ext 8-Bit PIPE for x8 (Repeated for Lanes 1 - 7 in the x8 MegaCore Function) rxstatus0_ext[2:0] refclk clk125_in (1) clk125_out (2) Global npor srst (3) crst (3) 12_exit hotrst_exit dlup_exit Configuration cfg_tcvcmap[23:0] cfg_busdev[12:0] cfg_prmcfr[31:0] cfg_devcsr[31:0] Notes SignalChanges for x 8 MegaCore Functions: (1) clk125_in for the x1, x4 MegaCore function is changed to clk250_in for a x8 MegaCore function (2) clk125_out for the x1 or x4 MegaCore function is changed to clk250_out for the x8 MegaCore function (3) srst & crst are removed for the x8 MegaCore function (4) test_out[511:0] for the x1 or x4 MegaCore function is changed to test_out[127:0] for the x8 MegaCore function. cfg_linkcsr[31:0] Completion Interface Test Interface cpl_err[2:0] cpl_pending test_in[31:0] test_out[511:0] (4) 3–52 PCI Express Compiler Version 6.1 PCI Express コンパイラ・ユーザガイド Altera Corporation 2006 年 12 月 仕様 送信インタフェース動作信号 送信インタフェースは、初期化されたバーチャル・チャネルごとに確立 され、2 本の独立したバスに基づいています。これらのバスのうち、1 本 はディスクリプタ・フェーズ用(tx_desc[127:0])、もう 1 本はデー タ・フェーズ用(tx_data[63:0])です。すべてのトランザクション にディスクリプタが含まれています。ディスクリプタは、次の項で説明 する例外のビット 126 および 127(これらはトランザクション・レイヤ の パ ケ ッ ト・グ ル ー プを示すものです)を含む、PCI Express Base Specification Revision 1.0a に定義される標準的なトランザクション・レイ ヤ・パケット・ヘッダです。通常のデータ・ペイロードを持つトランザ クション・レイヤ・パケットにのみ、1 つまたは複数のデータ・フェー ズが含まれます。 送信データ・パス信号 MegaCore ファンクションは、アプリケーション・レイヤによって送信 されるトランザクション・レイヤ・パケットが適切に形成されているこ とを前提としています。すなわち、MegaCore ファンクションは、アプ リケーション・レイヤから送信されるトランザクション・レイヤ・パケッ トの形成が不正かどうかは検出しません。 送信データ・パス信号は以下の 2 つのグループに分類することができま す。 ■ ■ ディスクリプタ・フェーズ信号 データ・フェーズ信号 以下の表で 0 のサフィックスが付けられた送信インタフェース信 号名はバーチャル・チャネル 0 に対するものです。MegaCore ファ ンクションに追加バーチャル・チャネルが実装されている場合、 そのバーチャル・チャネル番号がサフィックスとして付けられた 追加信号セットが存在します。 Altera Corporation 2006 年 12 月 PCI Express Compiler Version 6.1 3–53 PCI Express コンパイラ・ユーザガイド 信号 表 3–22 では、標準ディスクリプタ・フェーズ信号について説明します。 表 3–22. 標準ディスクリプタ・フェーズ信号 (1 / 2) 信号 tx_reqn (1)、(2) I/O I tx_descn[127:0] I (1)、(2) 説明 送信要求。この信号は各リクエストごとにアサートしなければなりません。送信 要求信号は、常に tx_desc[127:0] と一緒にアサートされ、tx_ack がアサー トされるまでアサートされたままでなければなりません。連続するディスクリプ タ・パケットの間でこの信号をデアサートする必要はありません。 送信ディスクリプタ・バス。送信ディスクリプタ・バスである、トランザクショ ンのビット 127:0 には、3 または 4 DWORD の PCI Express トランザクション・ ヘッダを含めることができます。これらのビットは、PCI Express Base Specification Revision 1.0a. で定義されている標準的なトランザクション・レイヤ・パケット・ ヘッダと同じ意味を持っています。ヘッダのバイト 0 は tx_desc バスのビット 127:120 を占有し、ヘッダのバイト 1 はビット 119:112 を占有するというように なり、ビット 7:0 のバイト 15 まで同様です。ヘッダのフォーマットについては、 付録 B. トランザクション・レイヤ・ パケットのヘッダ・フォーマットを参照し てください。 以下のビットは特別な意味を持っています。 ● ● ● ● ● tx_desc[2] または tx_desc[34] は tx_data 上のデータのアラインメン トを表します。 0 に設定された tx_desc[2](64 ビット・アドレス): 最初の DWORD は tx_data[31:0] ビットにあります。 0 に設定された tx_desc[34](32 ビット・アドレス): 最初の DWORD は tx_data[31:0] ビットにあります。 1 に設定された tx_desc[2](64 ビット・アドレス): 最初の DWORD は tx_data[63:32] ビットにあります。 1 に設定された tx_desc[34](32 ビット・アドレス): 最初の DWORD は tx_data[63:32] ビットにあります。 ディスクリプタのビット 126 は通過中のトランザクション・レイヤ・パケットの タイプを示します。 ● ● 0に設定された tx_desc[126]:データを含まないトランザクション・レイヤ・ パケット 1 に設定された tx_desc[126]: データを含むトランザクション・レイヤ・パ ケット 以下に、このバスでのビット配置の例をいくつか示します。 ● ● ● tx_desc[105:96]: length[9:0] tx_desc[126:125]: fmt[1:0] tx_desc[126:120]: type[4:0] 3–54 PCI Express Compiler Version 6.1 PCI Express コンパイラ・ユーザガイド Altera Corporation 2006 年 12 月 仕様 表 3–22. 標準ディスクリプタ・フェーズ信号 (2 / 2) 信号 tx_ackn I/O O (1)、(2) 説明 送信確認。この信号は、アプリケーションが tx_req 信号で要求したディスクリ プタ・フェーズを MegaCore ファンクションが確認応答するときに 1 クロック・ サイクル間アサートされます。次のクロック・サイクルで、 tx_req 信号(ア サートを維持)と tx_desc によって、新しいディスクリプタの送信を要求する ことができます。 表 3–22 の注 : (1) ただし、n はバーチャル・チャネル番号とします。×1 および ×4 の場合、n は 0 ∼ 3 です。 (2) ×8n は 0 または 1 です。 表 3–23 では、標準データ・フェーズ信号について説明します。 表 3–23. 標準データ・フェーズ信号 (1 / 2) 信号 tx_dfrn I/O 送信データ・フェーズ・フレーミング。この信号は、データ・フェーズを要求 するために(データ・フェーズが必要と仮定)、tx_req と同じクロック・サイ クルでアサートされます。この信号は、最後のデータ・フェーズの前のクロッ ク・サイクルまでアサートしたままでなければなりません。 I 送信データ有効。この信号はユーザ・アプリケーション・インタフェースによっ てアサートされ、tx_data[63:0] 信号が有効であることを知らせます。この 信号は、tx_dfr のアサーションに続くクロック・サイクルでアサートされ、送 信 の 最 後 の デ ー タ・フ ェ ー ズ ま で ア サ ー ト さ れ て い な け れ ば な り ま せ ん。 MegaCore ファンクションは、 tx_ws がアサートされていない限り、この信号 がアサートされたときにのみデータを受け入れます。 (1)、(2) tx_dvn 説明 I (1)、(2) アプリケーション・インタフェースは、ディスクリプタ・フェーズが確認応答 される(tx_ack のアサーションにより)前は、最初のデータ・フェーズが発 生しないという事実を利用することができます。ただし、トランザクション・レ イヤ・パケット・ヘッダが 3 DWORD のみ場合は、 tx_ack のアサーションと 同時に最初のデータ・フェーズが現れることがあります。 tx_wsn (1)、(2) O 送信ウェイト・ステート。MegaCore ファンクションは、この信号を使用して ウェイト・ステートを挿入し、データ損失を防止します。この信号は以下の状 況で使用される可能性があります。 ● ● DLLP に送信優先度を与えるため リンクが許容レーン数よりも少ないレーン数で初期化されている場合に、高 優先度バーチャル・チャネルまたはリトライ・バッファに送信優先度を与え るため MegaCoreファンクションがディスクリプタ・フェーズを確認応答する(tx_ack のアサーションにより)準備が整っていない場合は、自動的に tx_ws をアサー トして送信速度を制限します。 tx_dv がアサートされていない場合、 tx_ws は無視すべきです。 Altera Corporation 2006 年 12 月 PCI Express Compiler Version 6.1 3–55 PCI Express コンパイラ・ユーザガイド 信号 表 3–23. 標準データ・フェーズ信号 (2 / 2) 信号 tx_datan[63:0] (1)、(2) I/O I 説明 送信データ・バス。この信号によって、アプリケーション・インタフェースか らリンクにデータが転送されます。この信号は 2 DWORD 幅であり、tx_desc のビット 2 または 34(tx_desc 信号のトランザクション・レイヤ・パケット・ ヘッダ・ビット 125 が 3 DWORD か 4 DWORD かによって決まる)に位置する トランザクション・レイヤ・パケット・アドレスのビット 2 に応じて、2 つの方 法のいずれかで自然にアドレスに揃えられます。 ● ● ● ● 0 に設定された tx_desc[2](64 ビット・アドレス): 最初の DWORD は tx_data[31:0] ビットにあります。 0 に設定された tx_desc[34](32 ビット・アドレス): 最初の DWORD は tx_data[31:0] ビットにあります。 1 に設定された tx_desc[2](64 ビット・アドレス): 最初の DWORD は tx_data[63:32] ビットにあります。 1 に設定された tx_desc[34](32 ビット・アドレス): 最初の DWORD は tx_data[63:32] ビットにあります。 このナチュラル・アラインメントによって、1 QWORD アドレス(リトル・エ ンディアン方式)に揃えられた 64 ビット・データ・パスに tx_data[63:0] を直接接続することができます。 ビット 2 が 1 に設定された場合(5 DWORD トランザクション) Clock Cycles 1 2 tx_data[63:32] X tx_data[31:0] X 3 4 DW 0 5 6 DW 2 DW 4 X DW 1 DW 3 X ビット 2 が 0 に設定された場合(5 DWORD トランザクション) Clock Cycles 1 2 3 4 5 tx_data[63:32] X DW 1 DW 3 tx_data[31:0] X DW 0 DW 2 6 X DW 4 X 表 3–23 の注 : (1) ここで、n はバーチャル・チャネルの番号。×1 および ×4 の場合、n は 0 ∼ 3 です。 (2) ×8 の場合、n は 0 または 1 です。 表 3–24 では、アドバンスド・データ・フェーズ信号について説明します。 3–56 PCI Express Compiler Version 6.1 PCI Express コンパイラ・ユーザガイド Altera Corporation 2006 年 12 月 仕様 表 3–24. アドバンスド・データ・フェーズ信号 信号 I/O tx_credn[65:0] O (1)、 (2) 説明 送信クレジット。この信号は、アプリケーション・レイヤに使用可能なフロー制御 クレジットに基づいて、特定のタイプのトランザクション・レイヤ・パケットを送 信できるかどうかを通知するのに使用されます。MegaCore ファンクションは要求 を確認応答する前に、常に十分なクレジットがあるかどうかをチェックするため、 この信号はオプションです。しかし、この信号で使用可能なクレジットをチェック することによって、アプリケーションは使用可能なクレジットに基づき大きなトラ ンザクション・レイヤ・パケットを小さなトランザクション・レイヤ・パケットに 分割するか、使用可能なクレジットを通知するバーチャル・チャネルで特定のトラ ンザクション・レイヤ・パケットを送信して、異なるタイプのトランザクション・ レイヤ・パケット間でアービトレーションを行い、システム性能を向上させること ができます。ビットの詳細については、表 3–25 を参照してください。 トランザクション・レイヤ・パケットが MegaCore ファンクションによって確認応 答されると、対応するフロー制御クレジットが消費され、この信号は tx_ack の アサーションの 1 クロック・サイクル後に更新されます。 初期化時に無限のクレジットを受け取ったコンポーネントの場合、この信号の各 フィールドは可能な最高値に設定されます。 ×1 および ×4 MegaCore ファンクションの場合、この信号は 22 ビット幅で、アプリ ケーション・レイヤが使用可能なクレジットを簡単にチェックできるよう、使用可 能なクレジットのエンコーディングが行われます。詳しくは、表 3–22 を参照して ください。 ×8 MegaCore ファンクションでは、 この信号は 66 ビット幅で、 各フロー制御タイプ で使用可能な正確なクレジット数を提供します。詳しくは、表 3–26 を参照してく ださい。 tx_errn (1) I 送信エラー。この信号は、トランザクション・レイヤ・パケットを破棄または無効 にするために使用され、データ・フェーズ中に 1 クロック・サイクル間アサートさ れます。MegaCore ファンクションは、自動的にイベントをメモリにコミットし、 データ・フェーズの終了を待ちます。 tx_err がアサートされたら、アプリケーション・インタフェースは、tx_dfr と tx_dv をデアサートして、トランザクション・レイヤ・パケットの送信を中止し なければなりません。 この信号は、リンクに送信されたトランザクション・レイヤ・パケット(コンフィ ギュレーション・スペースに送信されたトランザクション・レイヤ・パケットでは なく)のみに適用されます。この信号は使用しない場合は 0 レベルに接続すること ができます。×8 MegaCore ファンクションでは、この信号は使用できません。 表 3–24 の注 : (1) ここで、n はバーチャル・チャネルの番号で、×1 および ×4 の場合、n は 0 ∼ 3 です。 (2) ×8 の場合、n は 0 または 1 です。 Altera Corporation 2006 年 12 月 PCI Express Compiler Version 6.1 3–57 PCI Express コンパイラ・ユーザガイド 信号 表 3–25に、 ×1および×4 MegaCoreファンクション用のtx_cred0[21:0] に関するビット情報を示します。 表 3–25. ×1 および ×4 MegaCore ファンクション用 tx_cred0[21:0] ビット ビット 0 値 ● ● 9:1 ● ● ● 10 ● ● 11 ● ● 12 ● ● 21:13 説明 Posted ヘッダ 0: 使用可能なクレジットがない 1: 少なくとも1つのトランザクション・レ イヤ・パケットに対して十分なクレジッ トが使用可能 0: 使用可能なクレジットがない 1-256: 使用可能なクレジットの数 257-511: Reserved Posted データ : 9 ビットで最大ペイロード・サイズであ る 4KB に相当する 256 クレジットの通知を許可します。 Non-Posted ヘッダ 0: 使用可能なクレジットがない 1: 少なくとも1つのトランザクション・レ イヤ・パケットに対して十分なクレジッ トが使用可能 Non-Posted データ 0: 使用可能なクレジットがない 1: 少なくとも1つのトランザクション・レ イヤ・パケットに対して十分なクレジッ トが使用可能 コンプリーション・ヘッダ 0: 使用可能なクレジットがない 1: 少なくとも1つのトランザクション・レ イヤ・パケットに対して十分なクレジッ トが使用可能 9 ビットで最大ペイロード・サイズである コンプリーション・データ、Posted データ 4KBに相当する256クレジットの通知を許可 3–58 PCI Express Compiler Version 6.1 PCI Express コンパイラ・ユーザガイド Altera Corporation 2006 年 12 月 仕様 表 3–26 に、×8 MegaCore ファンクション用の tx_credn[65:0] に関 するビット情報を示します。. 表 3–26. ×8 MegaCore ファンクション用 tx_cred[65:0] ビット (1 / 2) ビット tx_cred[7:0] 値 ● ● tx_cred[19:8] ● ● ● ● tx_cred[27:20] ● ● tx_cred[39:28] ● ● tx_cred[47:40] ● ● tx_cred[59:48] ● ● tx_cred[60] ● ● tx_cred[61] ● ● tx_cred[62] ● ● tx_cred[63] ● ● Altera Corporation 2006 年 12 月 説明 Posted ヘッダ 0: 使用可能なクレジットがない 1: 少なくとも1 つの TLP に対して十分なク Posted ヘッダのクレジット、 レジットが使用可能 tx_cred[60] の値が 1 に設定されてい る場合は、このフィールドを無視しま す。 0: 使用可能なクレジットがない 1-256: 使用可能なクレジットの数 257-511: Reserved Posted データ : 9 ビットで最大ペイロー ド・サイズである 4KB に相当する 256 ク レ ジ ッ ト の 通 知 を 許 可 し ま す。 Posted デ ー タ の ク レ ジ ッ ト tx_cred[61] の値が 1 に設定されてい る場合、このフィールドを無視します。 Non-Posted ヘッダ 0: 使用可能なクレジットがない 1: 少なくとも1 つの TLP に対して十分なク Non-Posted ヘ ッ ダ の ク レ ジ ッ ト レジットが使用可能 tx_cred[62] の値が 1 に設定されてい る場合、このフィールドを無視します。 Non-Posted データ 0: 使用可能なクレジットがない 1: 少なくとも1 つの TLP に対して十分なク Non-Posted デ ー タ の ク レ ジ ッ ト レジットが使用可能 tx_cred[63] の値が 1 に設定されてい る場合、このフィールドを無視します。 0: 使用可能なクレジットがない コンプリーション・ヘッダ 1: 少なくとも1 つの TLP に対して十分なク レジットが使用可能 0: 使用可能なクレジットがない 1-256: 使用可能なクレジットの数 257-511: Reserved コンプリーション・データ Posted データ : 9 ビットで最大ペイロード・サイズであ る 4KB に相当する 256 クレジットの通知 を許可します。 0: Posted ヘッダのクレジットは有限 1: Posted ヘッダのクレジットは無限 1 に設定されている場合、Posted ヘッダ のクレジットは無限です。 0: Posted データのクレジットは有限 1: Posted データのクレジットは無限 1 に設定されている場合、Posted データ のクレジットは無限です。 0: Non-Posted ヘッダのクレジットは有限 1 に設定されている場合、Posted ヘッダ 1: Non-Posted ヘッダのクレジットは無限 のクレジットは無限です。 0: Non-Posted データのクレジットは有限 1 に 設 定 さ れ て い る 場 合、Non-Posted 1: Non-Posted データのクレジットは無限 データのクレジットは無限です。 PCI Express Compiler Version 6.1 3–59 PCI Express コンパイラ・ユーザガイド 信号 表 3–26. ×8 MegaCore ファンクション用 tx_cred[65:0] ビット (2 / 2) ビット tx_cred[64] 値 ● ● tx_cred[65] ● ● 0: コンプリーション・クレジットは有限 1: コンプリーション・クレジットは無限 説明 1 に設定されている場合、コンプリーショ ン・ヘッダのクレジットは無限です。 0: コンプリーション・データのクレジット 1 に設定されている場合、コンプリーショ は有限 ン・データのクレジットは無限です。 1: コンプリーション・データのクレジット は無限 送信信号を使用したトランザクションの例 この項では、トランザクション信号の相互作用の様子を示す例を紹介し ます。 ■ ■ ■ ■ ■ 理想的なケースでの送信 トランザクション・レイヤがパケット受け入れ不可の場合 ウェイト・ステート・インサーションが可能な場合 優先度が他の場所で与えられている場合 トランザクション・レイヤ・パケット間で送信要求をアサートした ままにできる場合 ■ ヘッダが 4 DWORD なので、トランザクション・レイヤがウェイト・ ステートを挿入する場合 ■ 複数のウェイト・ステートによってデータ送信が制限される場合 ■ エラーがアサートされ、送信が無効化される場合 各波形では、水平方向の目立つ線によって、ディスクリプタ信号とデー タ信号が区分されています。 理想的なケースでの送信 理想的なケースでは、ディスクリプタの転送とデータの転送が互いに独 立しており、同時に起こることもあります。図 3-13 を参照してくださ い。MegaCore ファンクションは、8 DWORD のコンプリーション・ト ランザクションを送信します。アドレス・ビット 2 は 0 に設定されます。 クロック・サイクル 4 では、最初のデータ・フェーズがディスクリプタ の転送と同時に確認応答されます。 3–60 PCI Express Compiler Version 6.1 PCI Express コンパイラ・ユーザガイド Altera Corporation 2006 年 12 月 仕様 図 3-13. 8 DWORD の 64 ビット・データ付きコンプリーションのトランザクション波形 Clock Cycles 1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 tx_req Descriptor Signals tx_ack tx_desc[127:0] CPLD tx_dfr tx_dv Data Signals tx_data[63:32] X DW1 DW3 DW5 DW7 X tx_data[31:0] X DW0 DW2 DW4 DW6 X tx_ws tx_err 図 3-14 に、MegaCore ファンクションによる 1 DWORD のメモリ・ライ トの送信を示します。 図 3-14. 1 DWORD ライト転送 2 1 3 4 5 6 7 Clock Cycles 8 9 10 11 12 13 14 15 tx_req Descriptor Signals tx_ack tx_desc[127:0] MEMWR32 tx_dfr tx_dv Data Signals tx_data[63:32] X tx_data[31:0] X X DW0 X tx_ws tx_err Altera Corporation 2006 年 12 月 PCI Express Compiler Version 6.1 3–61 PCI Express コンパイラ・ユーザガイド 信号 トランザクション・レイヤがパケット受け入れ不可の場合 この例では、アプリケーションが 6 DWORD の 64 ビット・メモリ・リー ド・トランザクションを送信します。アドレス・ビット 2 は 0 に設定さ れます。図 3-15 を参照してください。 この例のケースのように、MegaCore ファンクションのトランザクショ ン・レイヤのステート・マシンが前のパケットの送信中でビジー状態に ある場合は、データ送信を開始することができません。 図 3-15. ステート・マシンが前のトランザクション・レイヤ・パケットでビジー状態になっている 波形 Clock Cycles 1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 tx_req Descriptor Signals tx_ack tx_desc[127:0] MEMRD64 tx_dfr tx_dv Data Signals tx_data[63:32] tx_data[31:0] tx_ws tx_err 3–62 PCI Express Compiler Version 6.1 PCI Express コンパイラ・ユーザガイド Altera Corporation 2006 年 12 月 仕様 図 3-16 は、アプリケーション・レイヤが確認応答を受け取るまで待ち、 その後でライト・データの転送が可能になることを示しています。 図 3-16. トランザクション・レイヤがパケット受け入れ不可の場合 2 1 3 4 5 6 7 Clock Cycles 8 9 10 11 12 13 14 15 tx_req Descriptor Signals tx_ack tx_desc[127:0] MEMWR32 tx_dfr tx_dv Data Signals tx_data[63:32] X tx_data[31:0] X X DW0 X tx_ws tx_err ウェイト・ステート・インサーションが可能な場合 MegaCore ファンクションが可能な最大レーンに初期化されていない場 合、必然的にデータ転送が遅延します。図 3-18 を参照してください。ア プリケーションは、8 DWORD の 32 ビット・メモリ・ライト・トランザ クションを送信します。アドレス・ビット 2 は 0 に設定されます。 クロック・サイクル 3 では、転送バッファがフルでない限り、すぐにデー タ転送を開始できます。 クロック・サイクル 5 では、バッファがフルになり、MegaCore ファン クションがウェイト・ステートを挿入して転送速度を制限すると、1 回 の転送ごとに 1 クロック・サイクルではなく 4 クロック・サイクルが必 要になります。これは、MegaCore ファンクションが実装されたレーン で可能な最大数でコンフィギュレーションされていないためです。 図 3-17 に、トランザクション・レイヤがウェイト・ステート信号のア サートによってデータ・フェーズを拡張する様子を示します。 Altera Corporation 2006 年 12 月 PCI Express Compiler Version 6.1 3–63 PCI Express コンパイラ・ユーザガイド 信号 図 3-17. ウェイト・ステートが挿入された、1 DWORD ライト転送 2 1 3 4 5 6 7 Clock Cycles 8 9 10 11 12 13 14 15 tx_req Descriptor Signals tx_ack tx_desc[127:0] MEMWR32 tx_dfr tx_dv Data Signals tx_data[63:32] X tx_data[31:0] X X DW0 X tx_ws tx_err 図 3-18. MegaCore ファンクションのレーンが可能な最大レーンよりも少ない場合の信号動作の 波形 Clock Cycles 1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 tx_req Descriptor Signals tx_ack tx_desc[127:0] MEMW32 tx_dfr tx_dv Data Signals tx_data[63:32] X DW1 DW3 DW5 DW7 X tx_data[31:0] X DW0 DW2 DW4 DW6 X tx_ws tx_err 3–64 PCI Express Compiler Version 6.1 PCI Express コンパイラ・ユーザガイド Altera Corporation 2006 年 12 月 仕様 ヘッダが 4 DWORD のため、トランザクション・レイヤがウェイト・ ステートを挿入する場合 この例では、アプリケーションが 64 ビット・メモリ・ライト・トランザ クションを送信します。アドレス・ビット 2 は 1 に設定されます。図 319 を参照してください。MegaCore ファンクションは連続するトランザ クション・レイヤ・パケットの送信時に最大性能が得られるように小さ なバッファを実装しているので、最初の 2 データ・フェーズでウェイト・ ステートが挿入されることはありません。 クロック・サイクル 3 では、メモリ・ライト 64 ビット・トランザクショ ン・レイヤ・パケット・リクエストに 4 DWORD ヘッダがあるため、 MegaCore ファンクションは 1 ウェイト・ステートを挿入します。この 場合、tx_dv はその 1 クロック・サイクル後に送信することも可能です。 図 3-19. ヘッダが 4 DWORD のため、ウェイト・ステートが挿入されるときの波形 Clock Cycles 1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 tx_req Descriptor Signals tx_ack tx_desc[127:0] MEMWR64 tx_dfr tx_dv Data Signals tx_data[63:32] X tx_data[31:0] X DW0 DW2 DW4 DW6 DW1 DW3 DW5 X DW7 X tx_ws tx_err Altera Corporation 2006 年 12 月 PCI Express Compiler Version 6.1 3–65 PCI Express コンパイラ・ユーザガイド 信号 優先度が他の場所で与えられている場合 この例では、アプリケーションが 8 DWORD の 64 ビット・メモリ・ラ イト・トランザクションを送信します。アドレス・ビット 2 は 0 に設定 されます。送信パスには、連続するトランザクション・レイヤ・パケッ トをできるだけ高速に処理できるように深さ 3 の 64 ビット・バッファが あり、tx_desc と最初の tx_data を遅延なく受け入れます。図 3-20 を 参照してください。 クロック・サイクル 5 では、このバーチャル・チャネルにはすぐに優先 度が与えられなかったので、MegaCore ファンクションは、tx_ws の 2 回目のアサーションを行って、データ・フローを制限します。優先度は、 送信待ちデータ・リンク・レイヤ・パケット、コンフィギュレーション・ コンプリーション、または別のバーチャル・チャネルに与えられていま す。×8 の MegaCore ファンクションでは、tx_err は使用できません。 図 3-20. 64 ビット・メモリ・ライト・リクエストの波形 Clock Cycles 1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 tx_req Descriptor Signals tx_ack tx_desc[127:0] MEMWR64 tx_dfr tx_dv Data Signals tx_data[63:32] X DW1 DW3 DW5 DW7 X tx_data[31:0] X DW0 DW2 DW4 DW6 X tx_ws tx_err 3–66 PCI Express Compiler Version 6.1 PCI Express コンパイラ・ユーザガイド Altera Corporation 2006 年 12 月 仕様 トランザクション・レイヤ・パケット間で送信要求をアサートしたまま にできる場合 この例では、アプリケーションが 64 ビット・メモリ・リード・トランザ クションを送信し、続いて 64 ビット・メモリ・ライト・トランザクショ ンを送信します。アドレス・ビット 2 は 0 に設定されます。図 3-21 を参 照してください。 クロック・サイクル 4 では、トランザクション・レイヤ・パケット間で tx_req がデアサートされません。 クロック・サイクル 5 では、別々の番地や LCRC など、64 ビット・アド レスに伴う追加オーバヘッドのために、2 番目のトランザクション・レ イヤ・パケットはすぐには確認応答されません。この状況では、2 つの 連続するトランザクション・レイヤ・パケット間にクロック・サイクル が 1 つ追加されます。 図 3-21. 64 ビット・メモリ・リード・リクエストの波形 Clock Cycles 1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 tx_req Descriptor Signals tx_ack tx_desc[127:0] MEMRD64 MEMWR64 tx_dfr tx_dv Data Signals tx_data[63:32] X DW1 DW3 DW5 DW7 X tx_data[31:0] X DW0 DW2 DW4 DW6 X tx_ws tx_err Altera Corporation 2006 年 12 月 PCI Express Compiler Version 6.1 3–67 PCI Express コンパイラ・ユーザガイド 信号 複数のウェイト・ステートによってデータ送信が制限される場合 この例では、アプリケーションが 32 ビット・メモリ・ライト・トランザ クションを送信します。アドレス・ビット 2 は 0 に設定されます。図 322 を参照してください。MegaCore ファンクションは連続するトランザ クション・レイヤ・パケットの送信時に最大性能が得られるように小さ なバッファを実装しているので、最初の 2 データ・フェーズでウェイト・ ステートが挿入されることはありません。 クロック・サイクル 5、7、9、11 では、MegaCore ファンクションはウェ イト・ステートを挿入して、送信フローを制限します。 図 3-22. データ送信速度を制限する複数のウェイト・ステートの波形 Clock Cycles 1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 tx_req Descriptor Signals tx_ack tx_desc[127:0] MEMWR64 tx_dfr tx_dv Data Signals tx_data[63:32] X DW1 DW3 DW5 DW7 DW9 DW11 X tx_data[31:0] X DW0 DW2 DW4 DW6 DW8 DW10 X tx_ws tx_err エラーがアサートされ、送信が無効化される場合 この例では、アプリケーションが 14 DWORD の 64 ビット・メモリ・ラ イト・トランザクションを送信します。アドレス・ビット 2 は 0 に設定 されます。図 3-23 を参照してください。 クロック・サイクル 12 では、tx_err がアサートされ、それによってリ ンク上のトランザクション・レイヤ・パケットの送信が無効化されます。 無効化されたパケットには、計算された値から反転した LCRC があり、 通常の END コントロール・キャラクタの代わりに end bad パケット (EDB)が使用されます。 3–68 PCI Express Compiler Version 6.1 PCI Express コンパイラ・ユーザガイド Altera Corporation 2006 年 12 月 仕様 図 3-23. エラー・アサーション波形 Clock Cycles 1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 tx_req Descriptor Signals tx_ack tx_desc[127:0] MEMWR64 tx_dfr tx_dv Data Signals tx_data[63:32] DW1 DW3 DW5 DW7 DW9 DWB DWD DWF tx_data[31:0] DW0 DW2 DW4 DW6 DW8 DWA DWC DWE tx_ws tx_err 受信インタフェース動作信号 受信インタフェースは、送信インタフェースと同様に、2 つの独立した バスに基づいており、そのうち 1 つはディスクリプタ・フェーズ用 (rx_desc[135:0])、もう 1 つはデータ・フェーズ用(rx_data[63:0]) です。すべてのトランザクションにディスクリプタが含まれています。 ディスクリプタは、PCI Express Base Specification Revision 1.0a. で定義さ れる標準トランザクション・レイヤ・パケット・ヘッダで 2 つの例外を 含みます。ビット 126 および 127 はトランザクション・レイヤ・パケッ ト・グループを示し、ビット 135:128 は BAR およびアドレス・デコー ディング情報を記述します(詳しくは、以下の rx_desc[135:0] を参 照)。 受信データ・パス信号 受信データ・パス信号は、以下の 2 つのグループに分類することができ ます。 ■ ■ ディスクリプタ・フェーズ信号 データ・フェーズ信号 以下の表で、0 のサフィックスが付けられた受信インタフェース 信号名はバーチャル・チャネル 0 に対応しています。MegaCore ファンクションが追加のバーチャル・チャネルを実装する場合、 そのバーチャル・チャネル番号がサフィックスとして付けられた 追加信号セットが存在します。 Altera Corporation 2006 年 12 月 PCI Express Compiler Version 6.1 3–69 PCI Express コンパイラ・ユーザガイド 信号 表 3–27 で、標準ディスクリプタ・フェーズ信号について説明します。 表 3–27. 標準ディスクリプタ・フェーズ信号 (1 / 2) 信号 rx_req0 I/O 受信要求。この信号は MegaCore ファンクションによってアサートされ、アプリケーショ ン・インタフェースへのパケット転送を要求します。この信号は、トランザクション・レ イヤ・パケット・ヘッダの最初の 2 DWORD が有効な場合にアサートされます。この信号 は最小 2 クロック・サイクル間アサートされ、rx_abort、rx_retry、および rx_ack をこの信号と同時にアサートすることはできません。完全なディスクリプタは、この信号 がアサートされる 2 番目のクロック・サイクルで有効です。 O 受信ディスクリプタ・バス。ビット(125:0)は、PCI Express Base Specification Revision 1.0a. で定義される標準トランザクション・レイヤ・パケット・ヘッダと同じ意味を持っていま す。ヘッダのバイト 0 は rx_desc バスのビット 127:120 を占有し、ヘッダのバイト 1 は ビット 119:112 を占有するというように、ビット 7:0 のバイト 15 まで同様です。ヘッダ・ フォーマットについては、付録 B. トランザクション・レイヤ・パケットのヘッダ・フォー マットを参照してください。 (1)、 (2) rx_descn [135:0] (1)、 (2) 説明 O ビット 135:128(ディスクリプタおよび BAR デコーディング)については、表 3–28 を参 照してください。エンドポイントで受信したコンプリーション・トランザクションにはア サートされたビットがなく、アプリケーション・レイヤのマスタ・ブロックに転送しなけ ればなりません。 rx_desc[127:64] は、rx_req がアサートされるのと同一クロックで送信を開始し、で きるだけ迅速にプリコーディングとアービトレーションを開始できるようにします。以下 の図に示すように、rx_desc のその他のビットは、次のクロック・サイクルまで有効にな りません。 Clock Cycles 1 2 3 4 5 6 rx_req rx_ack rx_desc[135:128] X rx_desc[127:64] X rx_desc[63:0] X Valid Valid Valid X X X ディスクリプタのビット 126 は通過中のトランザクション・レイヤ・パケットのタイプを 示します。 ● ● 0 に設定された rx_desc[126]: データを含まないトランザクション・レイヤ・パケッ ト 1 に設定された rx_desc[126]: データを含むトランザクション・レイヤ・パケット 3–70 PCI Express Compiler Version 6.1 PCI Express コンパイラ・ユーザガイド Altera Corporation 2006 年 12 月 仕様 表 3–27. 標準ディスクリプタ・フェーズ信号 (2 / 2) 信号 rx_ackn (1)、 (2) I/O I 説明 受信確認。この信号は、アプリケーション・インタフェースがディスクリプタ・フェーズ を確認応答し、データ・フェーズがあればそれを開始するときに 1 クロック・サイクルの rx_req 信号は次のクロック・サイクルでデアサートされ、rx_desc 間アサートされます。 は次の送信を行える状態になります。 rx_abortn I (1)、 (2) 受信アボート。この信号は、アプリケーションが要求されるディスクリプタを受け入れる ことができない場合に、アプリケーション・インタフェースによってアサートされます。 この場合、受信バッファ・スペースからディスクリプタが削除され、フロー制御クレジッ トが更新され、また必要に応じて、アプリケーション・レイヤは送信側の unsupported 要 求(UR)状態を用いてコンプリーション・トランザクションを生成します。 rx_retryn I (1)、 (2) 受信リトライ。アプリケーション・インタフェースは、Non-Posted リクエストを受け入 れることができない場合に、この信号をアサートします。この場合、アプリケーション・ レイヤは、 rx_mask0 の持続中に、受信インタフェースに Posted トランザクションとコ ンプリーション・トランザクションのみ現れるように、 rx_mask0 を rx_retry0 と共 にアサートしなければなりません。 rx_maskn (1)、 (2) 受信マスク(Non-Posted リクエスト)。この信号は、Posted トランザクションとコンプ リーション・トランザクションのみが現れるように、アプリケーション・インタフェース に対して行われたすべての Non-Posted リクエスト・トランザクションをマスクするのに 使用されます。この信号は、 rx_retry0 と一緒にアサートし、MegaCore ファンクショ ンが再び Non-Posted リクエストを受け入れることができるようになった時点でデアサー トしなければなりません。 I 表 3–27 の注 : (1) ここで、n はバーチャル・チャネルの番号で、×1 および ×4 の場合、n は 0 ∼ 3 です。 (2) ×8 の場合、n は 0 または 1 です。 MegaCore ファンクションは、BAR のデコーディング情報によって、こ の信号の 8 つの MSB を生成します。表 3–28 を参照してください。 表 3–28. rx_desc[135:128]: ディスクリプタ、および BAR のデコーディング タイプ 0 コンポーネント ビット Altera Corporation 2006 年 12 月 128 = 1: BAR 0 がデコードされた。 129 = 1: BAR 1 がデコードされた。 130 = 1: BAR 2 がデコードされた。 131 = 1: BAR 3 がデコードされた。 132 = 1: BAR 4 がデコードされた。 133 = 1: BAR 5 がデコードされた。 134 = 1: 拡張 ROM がデコードされた。 135 Reserved PCI Express Compiler Version 6.1 3–71 PCI Express コンパイラ・ユーザガイド 信号 表 3–29 では、データ・フェーズ信号について説明します。 表 3–29. データ・フェーズ信号 (1 / 2) 信号 I/O 説明 rx_ben[7:0] (1)、 (2) O 受信バイト・イネーブル。これらの信号は、 rx_data[63:0] 上のデータを有 効にします。信号の各ビットは、 rx_data[63:0] 上のデータの対応するバイ トが有効かどうかを示します。×8 MegaCore ファンクションには、これらの信号 はありません。 rx_dfrn (1)、 (2)) O 受信データ・フェーズ・フレーミング。この信号は、rx_req と同じまたはそれ 以降のクロック・サイクルでアサートされ、データ・フェーズを要求します(デー タ・フェーズが必要と仮定)。この信号は最後のデータ・フェーズの前のクロッ ク・サイクルでデアサートされ、アプリケーション・レイヤにデータ・フェーズ の終了を知らせます。アプリケーション・レイヤがデータ・フェーズ・カウンタ を実装する必要はありません。 rx_dvn (1)、 (2) O 受信データ有効。この信号は、MegaCore ファンクションによってアサートされ、 rx_data[63:0] にデータが含まれていることを知らせます。 3–72 PCI Express Compiler Version 6.1 PCI Express コンパイラ・ユーザガイド Altera Corporation 2006 年 12 月 仕様 表 3–29. データ・フェーズ信号 (2 / 2) 信号 rx_datan[63:0] (1)、 (2) I/O O 説明 受信データ・バス。このバスはリンクからアプリケーション・レイヤにデータを 転送します。この信号は 2 DWORD 幅であり、 rx_desc のビット 2 に応じて、 2 つの方法のいずれかで自然にアドレスに揃えられます。 ● ● ● ● 0 に設定された rx_desc[2](64 ビット・アドレス): 最初の DWORD は rx_data[31:0] ビットにあります。 0 に設定された rx_desc[34](32 ビット・アドレス): 最初の DWORD は rx_data[31:0] ビットにあります。 1 に設定された rx_desc[2](64 ビット・アドレス): 最初の DWORD は rx_data[63:32] ビットにあります。 1 に設定された rx_desc[34](32 ビット・アドレス): 最初の DWORD は rx_data[63:32] にあります。 このナチュラル・アラインメントによって、1 QWORD アドレス(リトル・エン ディアン方式)に揃えられた 64 ビット・データ・パスに rx_data[63:0] を 直接接続することができます。 ビット 2 が 1 に設定された場合(5 DWORD トランザクション) Clock Cycles 1 2 rx_data[63:32] X rx_data[31:0] X 3 4 DW 0 5 6 DW 2 DW 4 X DW 1 DW 3 X ビット 2 が 0 に設定された場合(5 DWORD トランザクション) Clock Cycles 1 rx_wsn (1)、 (2) I 2 3 4 5 rx_data[63:32] X DW 1 DW 3 rx_data[31:0] X DW 0 DW 2 6 X DW 4 X 受信ウェイト・ステート。アプリケーション・レイヤは、この信号を使用して ウェイト・ステートを挿入し、データ転送を制限することができます。 表 3–29 の注 : (1) ここで、n はバーチャル・チャネルの番号で、×1 および ×4 の場合、n は 0 ∼ 3 です。 (2) ×8 の場合、n は 0 または 1 です。 Altera Corporation 2006 年 12 月 PCI Express Compiler Version 6.1 3–73 PCI Express コンパイラ・ユーザガイド 信号 受信信号を使用したトランザクションの例 この項では、トランザクション信号の相互作用の様子を示す別の例を紹 介します。 ■ ■ データ・ペイロードを伴わないトランザクション リトライされたトランザクションおよびマスクされた Non-Posted トランザクション ■ アボートされたトランザクション ■ データ・ペイロードを伴うトランザクション ■ データ・ペイロードおよびウェイト・ステートを伴う トランザクション 各波形では、水平方向の目立つ線によって、ディスクリプタ信号とデー タ信号が区分されています。 データ・ペイロードを伴わないトランザクション 図 3-24 では、MegaCore ファンクションは以下の 3 つの連続するトラン ザクションを受け取りますが、いずれにもデータ・ペイロードはありま せん。 ■ ■ ■ メモリ・リード・リクエスト(64 ビット・アドレッシング・モード) メモリ・リード・リクエスト(32 ビット・アドレッシング・モード) I/O リード・リクエスト クロック・サイクル 4、7、12 では、MegaCore ファンクションは、各ト ランザクション・レイヤ・パケットが確認応答あるいはアボートされた 後で、フロー制御クレジットを更新します。MegaCore ファンクション は、必要に応じてフロー制御 DLLP を生成して、フロー制御クレジット のレベルを通知します。 クロック・サイクル 8 では、クロック・サイクル 8 で開始された I/O リード・リクエストは、rx_ack がアサートされるクロック・サイクル 11 まで確認応答されません。輻輳のため確認応答が比較的遅くなってい る可能性があります。 3–74 PCI Express Compiler Version 6.1 PCI Express コンパイラ・ユーザガイド Altera Corporation 2006 年 12 月 仕様 図 3-24. データ・ペイロードを伴わない 3 つのトランザクションの波形 Clock Cycles 1 2 3 4 5 6 7 8 9 10 11 12 13 14 rx_req rx_ack Descriptor Signals rx_desc[135:128] X rx_desc[127:64] X rx_desc[63:0] X Valid MEMRD64 Valid X Valid X Valid X X MEMRD32 X I/O RD X X Valid X Valid X rx_abort rx_retry rx_mask rx_dfr rx_dv Data Signals rx_ws rx_data[63:32] X rx_data[31:0] X rx_be[7:0] X リトライされたトランザクションおよびマスクされた Non-Posted トランザクション アプリケーション・レイヤは、Non-Posted リクエストを受け入れるこ とができなくなると、パケットの再送信を要求するか、rx_mask をア サートします。rx_mask の持続中は、MegaCore ファンクションはすべ ての Non-Posted トランザクションをマスクし、Posted トランザクショ ンとコンプリーション・トランザクションが優先されるように、送信待 ちのトランザクションの優先度を再設定します。アプリケーション・レ イヤが再度 Non-Posted トランザクションを受け入れることができるよ うになると、rx_mask がデアサートされ、受信バッファに蓄積されたす べての Non-Posted トランザクションに優先度が与えられます。 各バーチャル・チャネルは専用データ・パスと関連のバッファを備えて おり、バーチャル・チャネル間にオーダリング関係は存在しません。1 本のバーチャル・チャネルが一時的に閉塞しても、他のバーチャル・チャ ネルには影響なくデータ・フローが継続します。バーチャル・チャネル では、Non-Posted トランザクションに対してのみデッドロックを防止 するためにリオーダリングが必要です。以下のケースでは、リオーダリ ングは実装されません。 Altera Corporation 2006 年 12 月 PCI Express Compiler Version 6.1 3–75 PCI Express コンパイラ・ユーザガイド 信号 ■ ■ ■ 同一バーチャル・チャネル内にマップされたトラフィック・クラスの間 Posted トランザクションとコンプリーション・トランザクションの間 同一タイプのトランザクションの間(トランザクション・レイヤ・パ ケットのリラックス・オーダリング・ビットとは無関係) 図 3-25 では、MegaCore ファンクションは、すぐに受け入れることので きない 4 DWORD のメモリ・リード・リクエスト・トランザクションを 受け取ります。2 番目のトランザクション(1 DWORD のメモリ・ライ ト・トランザクション)は、受信バッファ内で送信待ちの状態にありま す。メモリ・ライト・リクエストのための rx_data[63:0] のビット 2 は 1 に設定されます。 クロック・サイクル 3 では、rx_mask がアサートされている限り、NonPosted トランザクションの送信は許可されません。 トランザクション・レイヤ・パケットが受信バッファから抽出され、ディ スクリプタ・フェーズとデータ・フェーズ(ある場合)の両方が終了し た後にのみ、フロー制御クレジットが更新されます。この更新は、図 325 のクロック・サイクル 8 および 12 で行われます。 図 3-25. リトライされたトランザクションおよびマスクされた Non-Posted トランザクションの 波形 Clock Cycles 1 2 3 4 5 6 7 8 9 10 11 12 13 14 rx_req rx_ack Descriptor Signals rx_desc[135:128] X Valid X Valid rx_desc[127:64] X MEMRD 4DW X rx_desc[63:0] X Valid X X Valid X MEMWR 1DW X MEMRD 4DW X Valid X Valid X rx_abort rx_retry rx_mask rx_dfr rx_dv Data Signals rx_ws rx_data[63:32] X X X rx_data[31:0] rx_be[7:0] DW 0 00h F0h 3–76 PCI Express Compiler Version 6.1 PCI Express コンパイラ・ユーザガイド 00h Altera Corporation 2006 年 12 月 仕様 アボートされたトランザクション 図 3-26 では、16 DWORD のメモリ・リードがアプリケーション・レイ ヤに送られます。アプリケーション・レイヤは、トランザクション・レ イ ヤ・パ ケ ッ ト を 受 け 入 れ る こ と が で き な く な る と 判 断 す る と、 rx_abort をアサートしてそのパケットを破棄します。また、アプリケー ション・レイヤがすべてのトランザクション・レイヤ・パケットを受け 入れ、検証後に拒否できるロジックを実装するデザインも考えられます。 rx_abort をアサートする利点は、データ・ペイロードを伴うトランザ クション・レイヤ・パケットを 1 クロック・サイクルで破棄できること です。 MegaCore ファンクションは、最初のトランザクション・レイヤ・パケッ トをアボートした後、2 番目のパケット(この場合は 3 DWORD コンプ リーション)を送信することができます。MegaCore ファンクションは、 アボートされたトランザクション・レイヤ・パケットをエラーとして処 理せず、そのトランザクションが確認応答されたかのように、フロー制 御クレジットを更新します。この場合、アプリケーション・レイヤは、 Completer Abort ステータスでコンプリーションを生成して送信し、 cpl_errのアサーションによってMegaCoreファンクションのコンフィ ギュレーション・スペースに Completer Abort イベントを知らせなけれ ばなりません。 クロック・サイクル 6 で、rx_abort がアサートされ、クロック・サイ クル 8 で次のトランザクションの送信が開始されます。 Altera Corporation 2006 年 12 月 PCI Express Compiler Version 6.1 3–77 PCI Express コンパイラ・ユーザガイド 信号 図 3-26. アボートされたトランザクションの波形 Clock Cycles 1 2 3 4 5 6 7 8 9 10 11 12 13 14 rx_req rx_ack rx_desc[135:128] Descriptor Signals rx_desc[127:64] rx_desc[63:0] Valid X MEMRD 16DW X Valid X Valid X CPL 3DW X Valid X rx_abort rx_retry rx_mask rx_dfr rx_dv Data Signals rx_ws rx_data[63:32] X DW 1 rx_data[31:0] X DW 0 DW 2 X rx_be[7:0] X FFh 0Fh X X データ・ペイロードを伴うトランザクション 図 3-27 では、MegaCore ファンクションは、8 DWORD のコンプリー ション・トランザクションと、2 番目の 3 DWORD のメモリ・ライト・ リクエストを受け取ります。rx_data[63:0] のビット 2 は、コンプ リーション・トランザクションの場合は 0 に設定され、メモリ・ライト・ リクエスト・トランザクションの場合は 1 に設定されます。 rx_dfr は通常、rx_req と同じクロック・サイクルまたは次のクロッ ク・サイクルでアサートされます。ただし、このケースでは、この信号 はすでにアサートされており、最初のトランザクションの送信終了を知 らせるクロック・サイクル 7 までアサートされたままです。この信号は クロック・サイクル 8 ですぐに再アサートされ、2 番目のトランザクショ ンのデータ・フェーズを要求します。 3–78 PCI Express Compiler Version 6.1 PCI Express コンパイラ・ユーザガイド Altera Corporation 2006 年 12 月 仕様 図 3-27. データ・ペイロードを伴うトランザクションの波形 Clock Cycles 1 2 3 4 5 6 7 8 9 10 11 12 13 14 rx_req rx_ack Descriptor Signals rx_desc[135:128] X Valid X rx_desc[127:64] X CPLD 8DW X rx_desc[63:0] X Valid X X Valid X MEMWR AD1 3DW X Valid rx_abort rx_retry rx_mask rx_dfr rx_dv Data Signals rx_ws rx_data[63:32] X DW 1 DW 3 DW 5 rx_data[31:0] X DW 0 DW 2 DW 4 DW 6 rx_be[7:0] X FFh DW 7 DW 0 X X F0h DW 2 X DW 1 X FFh X データ・ペイロードとウェイト・ステートを伴うトランザクション アプリケーション・レイヤは、何回でも必要なだけ rx_ws をアサートす ることができます。図 3-28では、MegaCoreファンクションは、4 DWORD のコンプリーション・トランザクションを受信します。rx_data[63:0] のビット 2 は 1 に設定されます。アプリケーション・レイヤと MegaCore フ ァン クシ ョ ンの 両 方が ウ ェイ ト・ステ ー トを 挿入 し ます。通 常、 rx_data[63:0] はクロック・サイクル 4 でデータを出力しますが、 MegaCore ファンクションは、rx_dv をデアサートしてウェイト・ス テートを挿入しています。 クロック・サイクル 11 では、以下の両方の条件が満足されるまでデータ 送信は再開されません。 ■ MegaCore ファンクションがクロック・サイクル 10 で rx_dv をアサー トし、それによって MegaCore ファンクションが挿入したウェイト・ ステートが終了する。 ■ クロック・サイクル 11 でアプリケーション・レイヤが rx_ws をデア サートし、それによってアプリケーション・レイヤが挿入したウェ イト・ステートが終了する。 Altera Corporation 2006 年 12 月 PCI Express Compiler Version 6.1 3–79 PCI Express コンパイラ・ユーザガイド 信号 図 3-28. データ・ペイロードとウェイト・ステートを伴うトランザクションの波形 Clock Cycles 1 2 3 4 5 6 7 8 9 10 11 12 13 14 rx_req rx_ack Descriptor Signals rx_desc[135:128] X Valid X rx_desc[127:64] X CPLD 4DW X rx_desc[63:0] X Valid X rx_abort rx_retry rx_mask rx_dfr rx_dv rx_ws Data Signals rx_data[63:32] X rx_data[31:0] X rx_be[7:0] X DW 0 F0h DW 2 X DW 1 X DW 3 X FFh X 0Fh X 受信信号間の依存性 表 3–30 に、さまざまな受信信号間の最小および最大レイテンシ値をク ロック・サイクルで示します。 表 3–30. 受信信号間のクロック・サイクルにおける最小および最大レイテンシ値 信号 1 信号 2 最小 標準 最大 注 rx_req rx_ack 1 1 N rx_req rx_dfr 0 0 0 データ・ペイロードが存在する場合、前のデータ転送が 進行中の場合を除いて、常に同じクロック・サイクルで アサートされます。3–79 ページの図 3-27 を参照してくだ さい。 rx_req rx_dv 1 1-2 N データが送信されることを仮定しています。 rx_retry rx_req 1 2 N rx_req は次のトランザクション要求です。 3–80 PCI Express Compiler Version 6.1 PCI Express コンパイラ・ユーザガイド Altera Corporation 2006 年 12 月 仕様 クロック アルテラの PCI Express MegaCore ファンクションは、PHY(汎用 PIPE または Stratix GX)とリファレンス・クロック周波数に応じて、可能な 複数のクロック・コンフィギュレーションのうちの 1 つを使用します。 このファンクションには、refclk および clk125_in の 2 つのクロッ ク入力信号があります。 このファンクションには、125 MHz のトランシーバ・クロックである出 力クロック clk125_out もあります。Stratix GX PHY の実装では、 clk125_out がトランシーバ・リファレンス・クロックの 125 MHz バー ジョンであり、これを使用して clk125_in を生成しなければなりませ ん。汎用 PIPE PHY 実装では、この信号は refclk 入力からドライブさ れます。 ■ refclk – この信号は Stratix GX PHY 実装に、トランシーバ用のリ ファレンス・クロックを供給します。汎用 PIPE PHY 実装の場合、 refclk は clk125_out に直接ドライブされます。 ■ clk125_in – この信号は、このファンクションのすべてのレジス タに対するクロックですが、受信 PCS レイヤのわずかな部分は例外 的に、Stratix GX PHY 実装では復元クロックによってクロックされ ます。同期アプリケーション・レイヤ・インタフェース信号はすべ て、このクロックに同期して動作します。clk125_in は 125 MHz でなければならず、Stratix GX PHY 実装では、clk125_out とまっ たく同じ周波数でなければなりません。汎用 PIPE PHY 実装では、こ の信号は PHY からの pclk 信号に接続する必要があります。 ×4 MegaCore ファンクションを Stratix GX デバイスに実装するに は、1 レーンごとに 4 つの追加クロック・リソースが復元クロッ クのために使用されます。PHY レイヤのエラスティック・バッ ファはこれらのクロックを使用します。 汎用 PIPE PHY クロッキング・コンフィギュレーション 汎 用 PIPE PHY を MegaCore ファンクションに実装する場合は、 clk125_in入力に125 MHzクロックを供給しなければなりません。一般 に、汎用 PIPE PHY は、125 MHz クロックを PIPE インタフェース全体 に供給します。 このファンクションのユーザ・アプリケーション・インタフェースと PIPE インタフェースを含むすべてのインタフェースが clk125_in 入力 に 同 期 し て 動 作 し ま す。こ の ケ ー ス で は、refclk 信 号 お よ び clk125_out 信号を使用する必要はありません。図 3-29 を参照してくだ さい。 Altera Corporation 2006 年 12 月 PCI Express Compiler Version 6.1 3–81 PCI Express コンパイラ・ユーザガイド 信号 図 3-29. 汎用 PIPE PHY クロック・コンフィギュレーション (1) altpcie_64b_x4_pipen1b: External PHY Not Required refclk clk125_out Not Required All Logic in MegaCore Function 125-MHz pclk from PIPE PHY clk125_in clk 図 3-29 の注 : (1) ユーザおよび PIPE インタフェース信号は、clk125_in に同期して動作します。 Stratix GX PHY の 100 MHz リファレンス・クロック Stratix GX PHY を 100 MHz リファレンス・クロックで実装する場合、 refclk 入力に 100 MHz クロックを供給しなければなりません。一般に、 このクロックは、Card Electro-Mechanical(CEM)Specification で規定 される 100 MHz PCI Express のリファレンス・クロックです。 このコンフィギュレーションでは、100 MHz の refclk が MegaCore ファンクション内の enhanced PLL に接続され、Stratix GX トランシー バで使用したり、clk125_out 信号として使用する 125 MHz クロック を生成します。125 MHz クロックは clk125_out 信号に基づいて供給 されます。 clk125_out は、例えばアプリケーションで必要な分配回路を介して、 clk125_in 入力に接続しなければなりません。このファンクションの ユーザ・アプリケーション・インタフェースと PIPE インタフェースを 含むすべてのインタフェースがclk125_in入力に同期して動作します。 図 3-30 を参照してください。 3–82 PCI Express Compiler Version 6.1 PCI Express コンパイラ・ユーザガイド Altera Corporation 2006 年 12 月 仕様 図 3-30. Stratix GX PHY の 100 MHz リファレンス・クロックの コンフィギュレーション (1) altpcie_64b_x4_pipen1b: Stratix GX 100 MHz 100-MHz Clock Source refclk clk125_out PLL 100 -> 125 ALTGXB Transceiver inclk rx_cruclk tx_coreclk All Logic in MegaCore Function clk125_in clk 図 3-30 の注 : (1) ユーザおよび PIPE インタフェース信号は、clk125_in に同期して動作します。 enhanced PLL の他の出力を他の目的のため、あるいは異なる位相また は周波数と共に使用する場合は、125 MHz のリファレンス・クロック・ モードを使用し、MegaCore ファンクションへの外部 100 ∼ 125 MHz PLL を使用する必要があります。 Stratix GX PHY、125 MHz リファレンス・クロック Stratix GX PHY を 125 MHz リファレンス・クロックと共に実装する場 合は、refclk 入力に 125 MHz クロックを供給しなければなりません。 同じクロックが遅延なく clk125_out 信号に供給されます。 clk125_out は、例えばアプリケーションで必要な分配回路を介して、 clk125_in 入力に接続しなければなりません。このファンクションの ユーザ・アプリケーション・インタフェースと PIPE インタフェースを 含むすべてのインタフェースがclk125_in入力に同期して動作します。 図 3-31 を参照してください。 Altera Corporation 2006 年 12 月 PCI Express Compiler Version 6.1 3–83 PCI Express コンパイラ・ユーザガイド 信号 図 3-31. Stratix GX PHY、125 MHz リファレンス・クロックの コンフィギュレーション (1) altpcie_64b_x4_pipen1b: Stratix GX 125 MHz 125-MHz Clock Source refclk clk125_out ALTGXB Transceiver inclk rx_cruclk tx_coreclk All Logic in MegaCore Function clk125_in clk 図 3-31 の注 : (1) ユーザおよび PIPE インタフェース信号は、clk125_in に同期して動作します。 Stratix GX PHY、156.25 MHz リファレンス・クロック Stratix GX PHY を 156.25 MHz リファレンス・クロックで実装する場合、 refclk 入力に 156.25 MHz クロックを供給しなければなりません。 156.25 MHz クロックは Stratix GX トランシーバに直接入ります。トラ ンシーバの coreclk_out 出力は、ファンクションの 125 MHz の clk125_out 出力になります。 clk125_out は、例えばアプリケーションで必要な分配回路を介して、 clk125_in 入力に接続しなければなりません。このファンクションの ユーザ・アプリケーション・インタフェースと PIPE インタフェースを 含むすべてのインタフェースがclk125_in入力に同期して動作します。 図 3-32 を参照してください。 3–84 PCI Express Compiler Version 6.1 PCI Express コンパイラ・ユーザガイド Altera Corporation 2006 年 12 月 仕様 図 3-32. Stratix GX PHY、156.25 MHz リファレンス・クロックの コンフィギュレーション (1) altpcie_64b_x4_pipen1b: Stratix GX 156.25 MHz ALTGXB Transceiver 156.25-MHz Clock Source refclk inclk rx_cruclk coreclk_out clk125_out tx_coreclk All Logic in MegaCore Function clk125_in clk 図 3-32 の注 : (1) ユーザおよび PIPE インタフェース信号は、clk125_in に同期して動作します。 Stratix II GX PHYの ×1 および ×4 100 MHz リファレンス・クロック Stratix II GX PHY を ×1 または ×4 コンフィギュレーションで実装する場 合、100 MHz クロックが ALT2GXB トランシーバに直接接続されます。 clk125_outはALT2GXBトランシーバの出力によってドライブされます。 clk125_out は、できるだけ特定のアプリケーションで必要な分配回路を 通じて、clk125_in 入力に接続しなければなりません。ファンクションの ユーザ・アプリケーション・インタフェースと PIPE インタフェースを 含むすべてのインタフェースが clk125_in 入力に同期して動作します。こ のクロッキング・コンフィギュレーションについては、3–87 ページの 図 3-34 を参照してください。 Altera Corporation 2006 年 12 月 PCI Express Compiler Version 6.1 3–85 PCI Express コンパイラ・ユーザガイド 信号 図 3-33. Stratix II GX PHY の ×1 および ×4 100 MHz リファレンス・クロック altpcie_64b_x4_pipen1b: Stratix II GX (or x1) 100-MHz Clock Source refclk clk125_out ALTGXB Transceiver pll_inclk coreclkout User and PIPE interface signals are synchronous to clk125_in All Logic in MegaCore Function clk125_in clk Stratix II GX PHY の ×8 100 MHz リファレンス・クロック Stratix II GX PHY が ×8 コンフィギュレーションで使用される場合、 100 MHz クロックが ALT2GXB トランシーバに直接接続されます。 clk250_outはALT2GXBトランシーバの出力によってドライブされます。 clk250_out は、できるだけ特定のアプリケーションで必要な分配回路を 通じて、clk250_in 入力に接続しなければなりません。ファンクションの ユーザ・アプリケーション・インタフェースと PIPE インタフェースを 含むすべてのインタフェースが clk250_in 入力に同期して動作します。こ のクロッキング・コンフィギュレーションについては、3–87 ページの 図 3-34 を参照してください。 3–86 PCI Express Compiler Version 6.1 PCI Express コンパイラ・ユーザガイド Altera Corporation 2006 年 12 月 仕様 図 3-34. Stratix II GX PHY の ×8 100 MHz リファレンス・クロック altpcie_64b_x8_pipen1b: Stratix II GX 100-MHz Clock Source refclk clk250_out ALTGXB Transceiver pll_inclk coreclkout User and PIPE interface signals are synchronous to clk250_in All Logic in MegaCore Function clk250_in clk ユーティリティ信号 すべての PCI Express MegaCore ファンクションの信号の図については、 3–52 ページの図 3-12 を参照してください。 表 3–31 では、ファンクションのグローバル信号について説明します。 表 3–31. グローバル信号 (1 / 2) 信号 I/O 説明 refclk I MegaCore ファンクション用リファレンス・クロック。この信号の周波数は、MegaWizard インタフェースの Parameter Settings タブからアクセスできる System Settings ページで 指定しなければなりません。この信号は Stratix GX および Stratix II GX PHY 実装で必要 です。汎用 PIPE 実装の場合、この信号は clk125_out 信号を直接ドライブします。 clk125_in I ×1 および ×4 MegaCore ファンクション用入力クロック。 MegaCore ファンクションのす べての I/O 信号(refclk、 clk125_out、および npor を除く)がこのクロック信 号に同期して動作します。この信号は 125 MHz のクロック信号でなければなりません。 Stratix GX PHY 実装では、必要に応じて、clk125_out 信号でこの信号をドライブす ることができます。125 MHz リファレンス・クロックを使用する Stratix GX PHY 実装 では、リファレンス・クロックでこの信号をドライブすることもできます。汎用 PIPE PHY 実装では、PIPE PHY デバイスが供給する pclk は、通常 clk125_in をドライ ブします。この信号は ×8 MegaCore ファンクションにはありません。 clk125_out O ×1 および ×4 MegaCore ファンクション用出力クロック。Stratix GX PHY 実装の refclk 入力から派生した 125 MHz クロック出力。汎用 PIPE PHY 実装では、refclk 入力が この信号をドライブします。この信号は ×8 MegaCore ファンクションにはありません。 Altera Corporation 2006 年 12 月 PCI Express Compiler Version 6.1 3–87 PCI Express コンパイラ・ユーザガイド 信号 表 3–31. グローバル信号 (2 / 2) 信号 I/O 説明 clk250_in I ×8 MegaCore ファンクション用入力クロック。MegaCore ファンクションのすべての I/O 信号(refclk、 clk250_out、および npor を除く)がこのクロック信号に同 期して動作します。この信号の周波数は clk250_out クロック信号と同じでなければ なりません。この信号は ×8 MegaCore ファンクションにしかありません。 clk250_out O ×8 MegaCoreファンクションからの出力。refclk入力から派生した250MHzクロック 出力。この信号は ×8 MegaCore ファンクションにしかありません。 rstn I コンフィギュレーション・スペースおよびデータ・パス・ロジックの非同期リセット。 アクティブ Low。この信号は ×8 MegaCore ファンクションにしかありません。 npor I パワー・オン・リセット。この信号は非同期、アクティブ Low のパワー・オン・リセッ ト信号です。このリセット信号は、すべてのコンフィギュレーション・スペースのス テッキー・レジスタ、PLL、および SERDES 回路の初期化に使用されます。100 または 156.25 MHz リファレンス・クロック実装では、clk125_out は、npor がアサートさ れている間 Low に保持されます。 srst I 同期データ・パス・リセット。この信号は、MegaCore ファンクションのデータ・パ ス・ステート・マシンの同期リセットです。これはアクティブ High です。この信号は ×1 および ×4 MegaCore ファンクションにしかありません。 crst I 同期コンフィギュレーション・リセット。この信号は、MegaCore ファンクションの非 ステッキー・コンフィギュレーション・スペース・レジスタの同期リセットです。これ はアクティブ High です。この信号は ×1 および ×4 MegaCore ファンクションにしかあ りません。 app_clk O ×1 MegaCore ファンクションからアプリケーション・レイヤへの出力クロック。このク ロックは 125 MHz または 62.5 MHz のいずれかで、refclk から派生します。この信 号は ×1 MegaCore ファンクションにしかありません。 l2_exit O L2 終了。PCI Express specification では、基本的なホット、ウォーム、およびコールド の各リセット・ステートが定義されています。コールド・リセット(crst および srst のアサーション)は、LTSSM が L2 ステートを終了する(この信号のアサーションに よって通知される)ときに実行しなければなりません。この信号はアクティブ Low で あり、アクティブでない場合は High に留まります。 hotrst_exit O ホット・リセット脱出。この信号は、LTSSM がホット・リセット・ステートを抜ける と、1 クロック・サイクルの間アサートされます。この信号は、アプリケーション・レ イヤに、グローバル・リセット(crst および srst)をアサートする必要があること を知らせます。この信号はアクティブ Low であり、アクティブでない場合は High に 留まります。 dlup_exit DL アップ脱出。この信号は DL_UP から DL_DOWN への遷移を示します。この信号 は内部リセットのもう 1 つのソースであり、crst および srst 同期リセットのアサー ションを引き起こす必要があります。この信号はアクティブ Low です。 O 3–88 PCI Express Compiler Version 6.1 PCI Express コンパイラ・ユーザガイド Altera Corporation 2006 年 12 月 仕様 図 3-35 に、ファンクションのグローバル・リセット信号を示します。 図 3-35. ×1 および ×4 MegaCore ファンクション用グローバル・ リセット信号 Other Power On Reset npor perst# PCI Express x1 or x4 MegaCore Function srst crst l2_exit hotrst_exit dlup_exit ×1 および ×4 MegaCore ファンクションには、npor、srst、および crst の 3 つのリセット入力があります。npor は、内部ですべてのステッ キー・レジスタ(L2 低消費電力モードまたは基本的なリセットでリセッ トできないレジスタ)に使用されます。npor は通常、パワー・オン・ リ セ ッ ト・ジ ェ ネ レ ー タ と PCI Express Card Electromechanical Specification で規定される perst 信号との論理和で生成されます。 srst 信号は、データ・パス・ステート・マシンの同期リセットです。 crst 信号は、非ステッキー・コンフィギュレーション・スペース・レジ スタの同期リセットです。srst および crst は、l2_exit、hotrst_exit、 またはdlup_exit信号がアサートされるたびにアサートしなければなり ません。 図 3-36 に示すリセット・ブロックは、MegaCore ファンクションの一部 として含まれておらず、実装固有のリセット生成方法にある程度の柔軟 性を持たせています。 図 3-36 に、ファンクションのグローバル・リセット信号を示します。 Altera Corporation 2006 年 12 月 PCI Express Compiler Version 6.1 3–89 PCI Express コンパイラ・ユーザガイド 信号 図 3-36. ×8 MegaCore ファンクション用グローバル・リセット信号 Other Power On Reset npor perst# PCI Express x8 MegaCore Function rstn l2_exit hotrst_exit dlup_exit ×8 MegaCoreファンクションには、nporおよびrstnの2つのリセット入 力があります。npor リセットは、内部ですべてのステッキー・レジス タ(L2 低消費電力モードでまたは基本的なリセットでリセットできない レジスタ)に使用されます。npor は通常、パワー・オン・リセット・ ジェネレータと PCI Express Card Electromechanical Specification で規定 される perst 信号との論理和で生成されます。 rstn 信号は、データ・パス・ステート・マシンと非ステッキー・コン フィギュレーション・スペース・レジスタの非同期リセットです。rstn は、l2_exit、hotrst_exit、または dlup_exit 信号がアサートさ れるたびにアサートしなければなりません。 図 3-36 に示すリセット・ブロックは、MegaCore ファンクションの一部 として含まれておらず、実装固有のリセット生成方法にある程度の柔軟 性を持たせています。 3–90 PCI Express Compiler Version 6.1 PCI Express コンパイラ・ユーザガイド Altera Corporation 2006 年 12 月 仕様 表 3–32 に、ファンクションのパワー・マネージメント信号を示します。 表 3–32. パワー・マネージメント信号 信号 I/O 説明 pme_to_cr I パワー・マネージメント・ターン・オフ・コントロール・レジスタ。この信号が ア サ ート さ れ ると、 pme_to_ack をル ー ト・ポ ー トに 送 るこ と に よっ て PME_turn_off メッセージを確認応答します。 pme_to_sr O パワー・マネージメント・ターン・オフ・ステータス・レジスタ。この信号は、 エンドポイントがルート・ポートから PME_turn_off メッセージを受け取っ たときにアサートされます。この信号は、pme_to_cr がアサートされるまでア サートされたままです。 cfg_pmcsr[31:0] O パワー・マネージメント機能レジスタ。このレジスタは読み出し専用で、特定の ファンクションのパワー・マネージメントに関する情報を提供します。 31 24 23 16 15 14 13 12 Data Register Reserved Data_scale PME_EN Data_select PME_status ● ● ● ● ● ● ● ● Altera Corporation 2006 年 12 月 9 8 7 21 0 PM_state Reserved cfg_pmcsr[31:24]: データ・レジスタ : このフィールドは、ファンクショ ンがどのパワー・ステートに対して PME# をアサートできるかを示します。 cfg_pmcsr[23:16]: Reserved cfg_pmcsr[15]: PME_status: この信号が 1 に設定されていると、ファン クションが通常、PME_en ビットの状態に関係なく、 PME# 信号をアサート することを意味します。 cfg_pmcsr[14:13]: Data_scale: このフィールドは、データ・レジスタ から取り出した値を解釈するときのスケーリング・ファクタを示します。こ のフィールドは読み出し専用です。 cfg_pmcsr[12:9]: Data_select: このフィールドは、データ・レジスタ と Data_scale フィールドによってどのデータをレポートすべきかを示しま す。 cfg_pmcsr[8]: PME_EN: 1: ファンクションが PME# をアサートできることを示す。 0: ファンクションが PME# をアサートできないことを示す。 cfg_pmcsr[7:2]: Reserved cfg_pmcsr[1:0]: PM_STATE PCI Express Compiler Version 6.1 3–91 PCI Express コンパイラ・ユーザガイド 信号 図 3-37 に、エンドポイントにおける pme_to_sr と pme_to_cr の動作 を示します。最初に、MegaCore ファンクションが PME_turn_off を メッセージを受信します。次に、アプリケーションはルート・ポートへ の PME_to_ack メッセージの送信を試みます。 図 3-37. エンドポイントにおける pme_to_sr および pme_to_cr の波形 Clock Cycles 1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 pme_to_sr pme_to_cr MSI および INTx 割り込み信号 MegaCore ファンクションは、MSI(Message Signaled Interrupt)およ び INTx 割り込みの両方をサポートします。MSI トランザクションはラ イト・トランザクション・レイヤ・パケットです。 表 3–33 では、MegaCore ファンクションの割り込み信号について説明し ます。 表 3–33. 割り込み信号 (1 / 2) 信号 I/O 説明 app_msi_req I アプリケーション MSI リクエスト。この信号はアプリケーションが MSI を要求 するのに使用されます。 app_msi_ack O アプリケーション MSI 確認応答。この信号は、MegaCore ファンクションがア プリケーションの MSI リクエストを確認応答するために送信されます。 app_msi_tc[2:0] I アプリケーション MSI トラフィック・クラス。この信号は MSI を送信するため に使用されるトラフィック・クラスを示します(INTx 割り込みとは異なり、任 意のトラフィック・クラスを使用して MSI を送信できます)。 app_msi_num[4:0] I アプリケーション MSI オフセット数。この信号は、アプリケーションがベー ス・メッセージ・データと送信する MSI との間のオフセットを示すのに使用さ れます。 3–92 PCI Express Compiler Version 6.1 PCI Express コンパイラ・ユーザガイド Altera Corporation 2006 年 12 月 仕様 表 3–33. 割り込み信号 (2 / 2) 信号 I/O 説明 cfg_msicsr[15:0] O コンフィギュレーション MSI コントロール・ステータス・レジスタ。このバス は MSI ソフトウェア・コントロールを提供します。 ● cfg_msicsr[15:9]: Reserved ● cfg_msicsr[8]: ベクターごとのマスキングが可能 1: ファンクションは MSI のベクターごとのマスキングをサポートします。 0: ファンクションは MSI のベクターごとのマスキングをサポートしません。 ● cfg_msicsr[7]: 64 ビット・アドレスが可能 1: ファンクションは 64 ビット・メッセージ・アドレスを送信することがで きます。 0: ファンクションは 64 ビット・メッセージ・アドレスを送信できません。 ● cfg_msicsr[6:4]: 複数のメッセージがイネーブル : このフィールドは MSI 信号の許容値を示します。例えば、このフィールドに「100」が書き込 まれた場合、16 の MSI 信号が割り当てられます。 000: 1 つの MSI が割り当てられる。 001: 2 つの MSI が割り当てられる。 010: 4 つの MSI が割り当てられる。 011: 8 つの MSI が割り当てられる。 100: 16 の MSI が割り当てられる。 101: 32 の MSI が割り当てられる。 110: Reserved 111: Reserved ● cfg_msicsr[3:1]: 複数のメッセージが可能 : このフィールドは、要求さ れた MSI メッセージの数を判断するためにシステム・ソフトウェアによっ て読み出されます。 000: 1 つの MSI が要求された。 001: 2 つの MSI が要求された。 010: 4 つの MSI が要求された。 011: 8 つの MSI が要求された。 100: 16 の MSI が要求された。 101: 32 の MSI が要求された。 110: Reserved 111: Reserved ● cfg_msicsr[0]: MSI がイネーブル : 0 に設定されている場合、このコン ポーネントは MSI を使用できません。 pex_msi_num[4:0] I パワー・マネージメント MSI 番号。この信号はパワー・マネージメントおよび / またはホット・プラグで使用され、ベース・メッセージ割り込み番号と、MSI を通じて送信するメッセージ割り込み番号との間のオフセットを決定します。 app_int_sts アプリケーション割り込みステータス。この信号は、アプリケーション割り込 みのステータスを示します。この信号がアサートされると、 INT# メッセージ が生成され、 int_status レジスタ内でそのステータスが維持されます。 Altera Corporation 2006 年 12 月 I PCI Express Compiler Version 6.1 3–93 PCI Express コンパイラ・ユーザガイド 信号 図 3-38 に、MSI ハンドラ・ブロックのアーキテクチャを示します。 図 3-38. MSI ハンドラ・ブロック app_msi_req app_msi_ack app_msi_tc app_msi_num pex_msi_num app_int_sts MSI Handler Block cfg_msicsr[31:0] 図 3-39 に、ベクターごとのイネーブル・ビットを備えた MSI ハンドラ・ ブロックで可能な実装を示します。このベクターごとの MSI の代わり に、グローバル・アプリケーション割り込みイネーブルも実装できます。 図 3-39. MSI ハンドラ・ブロックの実装例 app_int_sts Vector 0 app_int_en0 msi_enable & Master Enable app_msi_req0 R/W app_int_sts0 MSI Arbitration app_msi_req app_msi_ack Vector 1 app_int_en1 app_msi_req1 R/W app_int_sts1 3–94 PCI Express Compiler Version 6.1 PCI Express コンパイラ・ユーザガイド Altera Corporation 2006 年 12 月 仕様 32 の可能な MSI メッセージがあります。特定のコンポーネントが要求 したメッセージ数と割り当てられたメッセージ数が必ずしも一致すると は限りません。例えば、図 3-40 では、エンドポイントは 8 つの MSI を 要求していますが、割り当てられるメッセージは 2 つだけです。この場 合、アプリケーション・レイヤは、割り当てられた 2 つのメッセージの みを使用するように設計しなければなりません。 図 3-40. MSI リクエストの例 Root Complex CPU Root Port Endpoint 8 Requested 2 Allocated Interrupt Block Interrupt Register 図 3-41 に、図 3-40 のルート・ポート用 MSI 割り込み信号間のやりとり を示します。app_msi_req と app_msi_ack 間で可能な最小レイテン シは 1 クロック・サイクルです。 図 3-41. MSI 割り込み信号の波形 Clock Cycles 1 2 3 4 5 6 7 8 9 10 11 12 13 app_msi_req app_msi_tc[2:0] Valid app_msi_num[4:0] Valid app_msi_ack Altera Corporation 2006 年 12 月 PCI Express Compiler Version 6.1 3–95 PCI Express コンパイラ・ユーザガイド 信号 表 3–34 では 3 つの実装例について説明します。1 つの実装例では 32 の すべての MSI メッセージが割り当てられ、2 つの実装例では 4 つのメッ セージのみ割り当てられています。 表 3–34. 要求され、割り当てられ、マッピングされる MSI メッセージ MSI 割り当て 32 4 4 システム・エラー 31 3 3 ホット・プラグおよびパワー・ マネージメント・イベント 30 2 3 29:0 1:0 2:0 アプリケーション ホット・プラグ、パワー・マネージメント・イベント、およびシステム・ エラーに対して生成される MSI は、常に TC0 を使用します。アプリケー ション・レイヤで生成される MSI は、どのトラフィック・クラスでも使 用できます。例えば、送信終了時に MSI を生成する DMA は、データ転 送に使用されたのと同じトラフィック・コントロールを使用することが できます。 3–96 PCI Express Compiler Version 6.1 PCI Express コンパイラ・ユーザガイド Altera Corporation 2006 年 12 月 仕様 コンフィギュレーション・スペース信号 表 3–35 の信号は、アプリケーション・レイヤがアクセスする必要がある 複数のコンフィギュレーション・スペース・レジスタの現在の値を反映 しています。 表 3–35. コンフィギュレーション・スペース信号 信号 I/O cfg_tcvcmap[23:0] O 説明 コンフィギュレーション・トラフィック・クラス / バーチャル・チャネル・マッ ピング : アプリケーション・レイヤは、この信号を使用して、パケットのトラ フィック・クラスに基づいて適切なバーチャル・チャネルにマップされるトラ ンザクション・レイヤ・パケットを生成します。 ● ● ● ● ● ● ● ● cfg_busdev[12:0] O cfg_tcvcmap[2:0]: TC0 に対するマッピング(常に 0) cfg_tcvcmap[5:3]: TC1 に対するマッピング cfg_tcvcmap[8:6]: TC2 に対するマッピング cfg_tcvcmap[11:9]: TC3 に対するマッピング cfg_tcvcmap[14:12]: TC4 に対するマッピング cfg_tcvcmap[17:15]: TC5 に対するマッピング cfg_tcvcmap[20:18]: TC6 に対するマッピング cfg_tcvcmap[23:21]: TC7 に対するマッピング コンフィギュレーション・バス・デバイス : この信号は、各トランザクション・ レイヤ・パケットのトランザクション ID を生成し、MegaCore ファンクショ ンのバス番号とデバイス番号を示します。MegaCore ファンクションは 1 つの ファンクションしか実装しないので、トランザクション ID のファンクション 番号は 000b に設定しなければなりません。 ● ● cfg_busdev[12:5]: バス番号 cfg_busdev[4:0]: デバイス番号 cfg_prmcsr[31:0] O コンフィギュレーション・プライマリ・コントロール・ステータス・レジス タ。このレジスタの内容で PCI ステータスを制御します。 cfg_devcsr[31:0] O コンフィギュレーション・デバイス・コントロール・ステータス・レジスタ。 詳しくは、PCI Express Specifications を参照してください。 cfg_linkcsr[31:0] O Altera Corporation 2006 年 12 月 コンフィギュレーション・リンク・コントロール・ステータス・レジスタ。詳 しくは、PCI Express Specifications を参照してください。 PCI Express Compiler Version 6.1 3–97 PCI Express コンパイラ・ユーザガイド 信号 コンプリーション・インタフェース信号 表 3–36 に、ファンクションのコンプリーション・インタフェース信号を 示します。 表 3–36. コンプリーション・インタフェース信号 信号 cpl_err[2:0] I/O I 説明 コンプリーション・エラー : この信号はコンフィギュレーション・スペースにコンプ リーション・エラーをレポートします。アプリケーション・レイヤがレポートしなけ ればならないエラーのタイプは以下の 3 つです。 ● ● ● cpl_pending I コンプリーション・タイム・アウト・エラー : cpl_err[0]: この信号は、マスタ のようなインタフェースが Non-Posted リクエストを実行し、50ms のタイム・ア ウト期間を過ぎても対応するコンプリーション・トランザクションを受け取らな かった時、アサートしなければなりません。MegaCore ファンクションは自動的 にエラー・メッセージを生成し、このエラー・メッセージは Root Complex に送 られます。 Completer Abort エラー : cpl_err[1]: この信号は、ターゲット・ブロックが Non-Posted リクエストを処理できない場合にアサートしなければなりません。こ の場合、ターゲット・ブロックは、Completer Abort(CA)ステータスと共にコ ンプリーション・パケットを生成してリクエスタに送信し、次に MegaCore ファ ンクションに対してこのエラー信号をアサートします。ブロックは自動的にエ ラー・メッセージを生成し、それを Root Complex に送ります。 予期しないコンプリーション・エラー : cpl_err[2]: この信号はマスタ・ブロッ クが予期しないコンプリーション・トランザクション(すなわち、特定のパケッ トを待っているコンプリーション・リソースがない)を検出した場合にアサート しなければなりません。 コンプリーション・ペンディング : アプリケーション・レイヤは、マスタ・ブロック がコンプリーションを待っている(すなわち、トランザクションが待ち状態にある) 場合にこの信号をアサートしなければなりません。この信号がアサートされ、低消費 電力モードが要求された場合、MegaCore ファンクションは、ロー・パワー・ステー トに移行する前に、この信号がデアサートされるのを待ちます。 3–98 PCI Express Compiler Version 6.1 PCI Express コンパイラ・ユーザガイド Altera Corporation 2006 年 12 月 仕様 最大コンプリーション・スペース信号 表 3–37 に、最大コンプリーション・スペース信号を示します。 表 3–37. 最大コンプリーション・スペース信号 信号 I/O ko_cpl_spc_vcn[19:0] O ここで、n は ×1 および ×4 コ アの場合は 0 ∼ 3、×8 コアの 場合は 0 ∼ 1。 説明 このスタティック信号は、コンプリーション・ヘッダおよびデータのため に予約された Rx バッファ・スペースの量を反映します。この信号は、ウィ ザードの Buffer Setup ページ(3–44 ページの「Buffer Setup ページ」参 照)の Rx バッファ・スペース・アロケーション・テーブルに記載したも のと同じ情報を示します。この信号のビット・フィールド割り当ては以下 のとおりです。 ● ko_cpl_spc_vcn[7:0] : Rxバッファに格納できるコンプリーショ ン・ヘッダの数 ● ko_cpl_spc_vcn[19:8] : Rx バッファに格納できる 16 バイト・コ ンプリーション・データ・セグメントの数 アプリケーション・レイヤのロジックは、コンプリーション・バッファ・ スペースがオーバフローしないようにしなければなりません。これを確実 にするために未処理の Non-Posted リクエストの数とサイズを制限する必 要があります。 alt2gxb サポート信号 この項では、Stratix II GX 統合型 PHY である ALT2GXB を使用するバリ アントにのみ存在する alt2gxb サポート信号について説明します。これ らの信号は ALT2GXB インスタンスに直接接続されます。多くの場合、 これらの信号は、同じデバイスに実装される ALT2GXB インスタンスと 共有する必要があります。以下の信号があります。 ■ ■ ■ ■ Altera Corporation 2006 年 12 月 cal_blk_clk reconfig_clk reconfig_togxb reconfig_fromgxb PCI Express Compiler Version 6.1 3–99 PCI Express コンパイラ・ユーザガイド 信号 表 3–38 では、これらの alt2gxb サポート信号について説明します。 表 3–38. alt2gxb サポート信号 信号 cal_blk_clk I/O I 説明 cal_blk_clk 入力信号は、ALT2GXB キャリブレーション・ブロック・ク ロック(cal_blk_clk)入力に接続されます。1 個のデバイスに 1 つのキャリ ブレーション・ブロックしかないので、同一デバイス内の ALT2GXB のすべ てのインスタンスでは、cal_blk_clk 入力が同じ信号に接続されていなければ なりません。この入力は、 「Stratix II GX デバイス・ハンドブック」で推奨さ れているとおり動作するクロックに接続する必要があります。 reconfig_clk I reconfig_clk 入力信号は、ALT2GXB ダイナミック・リコンフィギュレー ション・クロックです。ALT2GXB ダイナミック・リコンフィギュレーショ ンは、PCI Express に対してはサポートされていません。したがって、この信 号は通常、デザインで Low に接続することができます。この信号は、PCI Express インスタンスが Stratix II GX トランシーバのクワッドを、ダイナミッ ク・リコンフィギュレーションをサポートする別のプロトコルと共有する場 合に提供されます。これらのケースでは、この信号は「Stratix II GX デバイ ス・ハンドブック」に記載されているとおり接続しなければなりません。 reconfig_togxb I reconfig_togxb[2:0] 入力バスは、ALT2GXB ダイナミック・リコンフィ ギュレーション・データ入力です。ALT2GXB ダイナミック・リコンフィギュ レーションは、PCI Express に対してはサポートされていません。したがっ て、このバスは通常、デザインで「010」に接続することができます。このバ スは、PCI Express インスタンスが Stratix II GX トランシーバのクワッドを、 ダイナミック・リコンフィギュレーションをサポートする別のプロトコルと 共有する場合に提供されます。これらのケースでは、この信号は「Stratix II GX デバイス・ハンドブック」に記載されているとおり接続しなければなりま せん。 reconfig_fromgxb O reconfig_fromgxb 出力信号は、ALT2GXB ダイナミック・リコンフィギュ レーション・データ出力です。ALT2GXB ダイナミック・リコンフィギュレー ションは、PCI Express に対してはサポートされていません。したがって、こ の出力信号はデザインでは未接続のままにしておくことができます。この信 号は、PCI Express インスタンスが Stratix II GX トランシーバのクワッドを、 ダイナミック・リコンフィギュレーションをサポートする別のプロトコルと 共有する場合に提供されます。これらのケースでは、この信号は「Stratix II GX デバイス・ハンドブック」に記載されているとおり接続しなければなりま せん。 3–100 PCI Express Compiler Version 6.1 PCI Express コンパイラ・ユーザガイド Altera Corporation 2006 年 12 月 仕様 物理レイヤ・インタフェース信号 この項では、可能な 3 種類の物理的インタフェース(1 ビット、20 ビッ ト、または PIPE)用の信号について説明します。すべての PCI Express MegaCore ファンクションの信号の図については、3–52 ページの図 3-12 を参照してください。 シリアル・インタフェース信号 表 3–39 では、シリアル・インタフェース信号について説明します。表に 示したように、レーン 1 ∼ 7 用の信号もあります。これらの信号は、 Stratix GX PHY または Stratix II GX PHY を使用している場合に利用可能 です。 表 3–39. 1 ビット・インタフェース信号 信号 tx_outn I/O 説明 O 送信入力 0。この信号はレーン 0 のシリアル出力です(差動信号で 2.5 Gpbs)。 I 受信入力 0。この信号はレーン 0 のシリアル入力です(差動信号で 2.5 Gpbs)。 I pipe_mode は、MegaCoreファンクションがPIPEインタフェースまたは1ビッ ト・インタフェースのいずれを使用するかを選択します。pipe_mode を 1 に ここで、n は 0 ∼ 7 の レーン番号です。 rx_inn ここで、n は 0 ∼ 7 の レーン番号です。 pipe_mode 設定すると PIPE インタフェースが選択され、0 に設定すると 1 ビット・イン タフェースが選択されます。シミュレーション時に、この信号を設定してどち らのインタフェースをシミュレーションに使用するかを示すことができます。 デザインをアルテラのデバイス用にコンパイルするときには、この信号を 0 に 設定します。 Altera Corporation 2006 年 12 月 PCI Express Compiler Version 6.1 3–101 PCI Express コンパイラ・ユーザガイド 信号 PIPE インタフェース信号 ×1および×4 MegaCoreファンクションは、PIPEインタフェースの16ビッ ト・バ ー ジ ョ ン に 準 拠しており、外部 PHY の使用が可能です。×8 MegaCore ファンクションは、PIPE インタフェースの 8 ビット・バー ジョンに準拠しています。これらの信号は、Stratix GX PHY または Stratix II GX PHY を選択しているときでも使用可能であり、1 ビットお よび PIPE インタフェースの両方を使用してシミュレートすることがで きます。一般に、シミュレーションの速度は、PIPE インタフェースを使 用する方が速くなります。表 3–40 を参照してください。表に示したよう に、レーン番号 0 に存在する信号は、レーン 1 ∼ 7 にも存在します。 表 3–40. PIPE インタフェース信号 (1 / 2) 信号 I/O 説明 txdatan_extn[15:0](1) O 送信データ 0(レーン 0 で 2 つのシンボル)このバスはレーン 0 でデータ を送信します。最初に送信されるシンボルは txdata_ext[7:0] で、 2 番目 に 送信 さ れる シ ンボ ル は txdata0_ext[15:8] です。×8 MegaCore フ ァン ク シ ョン ま たは 8 ビ ット PIPE モー ド の場 合、 txdata0_ext[7:0] のみ使用できます。 txdatakn_ext[1:0] O 送信データ・コントロール 0(レーン 0 で 2 つのシンボル)この信号は、 txdatan_ext(最初に送信されるシンボル用の txdatakn_ext[0] お よび 2 番目送信されるシンボル(8b/10b エンコーディング)用の txdatakn_ext[1])のコントロール・ビットとして機能します。×8 MegaCore ファンクションまたは 8 ビット PIPE モードの場合、シング ル・ビット信号 txdatakn_ext のみ使用できます。 O 送信検出受信 0。この信号は、PHY レイヤに受信検出動作またはループ バックの開始を指示するのに使用されます。 O 送信電気的アイドル 0。この信号は、送信出力を強制的に電気的アイド ルにします。 O 送信コンプライアンス 0。この信号は、コンプライアンス・モードでの ランニング・ディスパリティを強制的に負にします(負の COM キャラ クタ)。 O 受信極性 0。この信号は PHY レイヤに、8b/10b レシーバ・デコーディ ング・ブロックでの極性反転の実行を指示します。 O パワーダウン 0。この信号は、PHY にそのパワー・ステートを指定され たステート(P0、P0s、P1、または P2 に変更するよう要求します。 I 受信データ 0(レーン 0 の 2 つのシンボル)このバスはレーン 0 でデータ を受信します。最初に受信したシンボルは rxdatan_ext[7:0] で、 2 番目に受信したシンボルは rxdatan_ext[15:8]です。 ×8 MegaCore ファンクションまたは 8 ビット PIPE モードでは、rxdatan_ext[7:0] のみ使用可能です。 (1) txdetectrxn_ext (1) txelecidlen_ext (1) txcompln_ext (1) rxpolarityn_ext (1) powerdownn_ext[1:0] (1) rxdatan_ext[15:0] (1) 3–102 PCI Express Compiler Version 6.1 PCI Express コンパイラ・ユーザガイド Altera Corporation 2006 年 12 月 仕様 表 3–40. PIPE インタフェース信号 (2 / 2) 信号 rxdatakn_ext[1:0] I/O 説明 I 受信データ・コントロール 0(レーン 0 の 2 つのシンボル)この信号は、 コントロール・シンボルとデータ・シンボルを区別するために使用され ます。最初に受信したシンボルは rxdatakn_ext[0] に揃えられ、2 番目に受信したシンボルは rxdatan_ext[1] に揃えられます。×8 MegaCore ファンクションまたは 8 ビット PIPE モードの場合、シング ル・ビット信号 rxdatakn_ext のみ使用できます。 I 受信有効 0。このシンボルは、 rxdatan_ext および rxdatakn_ext でのシンボル・ロックおよび有効データを示します。 I PHY ステータス 0。この信号は複数の PHY 要求のコンプリーションを 伝えるのに使用されます。 I 受信電気的アイドル 0。この信号は、受信出力を強制的に電気的アイド ルにします。 I 受信ステータス 0: この信号は受信データ・ストリームおよびレシーバ検 出に対する受信ステータスとエラー・コードをエンコードします。 pipe_rstn O 外部 PHY への非同期リセット。これは High に接続され、ボードにプル ダウン抵抗が必要です。FPGA のコンフィギュレーション時に、プルダ ウン抵抗が PHY をリセットし、その後 FPGA が PHY をリセットからド ライブ・アウトします。この信号は外部 PHY にコンフィギュレーション された MegaCore ファンクションにのみ存在します。 pipe_txclk O 外部 PHY への送信データ・パス・クロック。このクロックは refclk から派生し、PHY の送信データ用ソース・シンクロナス・クロックを供 給します。 (1) rxvalidn_ext (1) phystatusn_ext (1) rxelecidlen_ext (1) rxstatusn_ext[2:0] (1) 表 3–40 の注 : (1) ここで、n は 0 ∼ 7 のレーン番号です。 Altera Corporation 2006 年 12 月 PCI Express Compiler Version 6.1 3–103 PCI Express コンパイラ・ユーザガイド 信号 テスト信号 表 3–40 では、使用できるテスト信号について説明します。 表 3–41. テスト・インタフェース信号 信号 test_in[31:0] I/O I 説明 test_in バスは、特定の MegaCore 機能とエラー・インジェクション機 能用のランタイム・コントロールを提供します。このバスの個々のビッ トについて詳しくは、付録 C. テスト・ポート・インタフェース信号を 参照してください。通常動作の場合、このバスはすべての 0 にドライ ブすることができます。 ×1 または ×4 の場合は test_out[511:0]、 ×8 の場合は test_out[127:0] O test_out バスでは、MegaCore ファンクションの内部ステートを幅 広くモニタリングすることができます。このバスの個々のビットにつ いて詳しくは、付録 C. テスト・ポート・インタフェース信号を参照し てください。通常動作の場合、このバスは未接続のままにしておくこ とができます。 3–104 PCI Express Compiler Version 6.1 PCI Express コンパイラ・ユーザガイド Altera Corporation 2006 年 12 月 仕様 MegaCore 検証 アルテラは、PCI Express への準拠を確実にするために、PCI Express MegaCore ファンクションの徹底した妥当性検査を実行しました。検査 にはシミュレーションおよびハードウェア・テストの両方が含まれます。 シミュレーション環境 アルテラの PCI Express MegaCore ファンクション用検証シミュレー ション環境では、PCI Express リンク・インタフェースをドライブする 業界標準のバス・ファンクション・モデルで構成される複数のテストベ ンチを使用します。カスタムのバス・ファンクション・モデルは、アプ リケーション側インタフェースに接続します。 アルテラはシミュレーション環境で以下のテストを実施しました。 ■ トランザクション・レイヤ・パケットのすべてのタイプとサイズ、お よびコンフィギュレーション・スペースの全ビットをテストする指 定テスト ■ リンク、トランザクション・レイヤ・パケット、データ・リンク・レ イヤ・パケットのエラー・インジェクション・テスト。MegaCore ファンクションからの正しい応答をチェックするエラー・インジェ クション・テスト ■ チ ェ ッ ク リ ス ト の 項 目 を 特 に テ ス ト す る PCI-SIG Compliance Checklist テスト ■ 1 本または複数のバーチャル・チャネルでの広範なトラフィック・パ ターンをテストするランダム・テスト 互換性テストの環境 ア ルテ ラ は、信頼 性 の高いソリューションを実現するために、PCI Express MegaCore ファンクションについて膨大なハードウェア・テス トを実行しました。MegaCore ファンクションは、2005 年と 2006 年の PCI-SIG の PCI Express Specificationに準拠したさまざまなワークショッ プで、Stratix II GX および多様な外部 PHY と共にテストされ、すべての PCI-SIG ゴールド・テストと幅広いマザーボードおよびテスト装置との 相互運用性テストに合格しました。さらに、アルテラはさまざまなメー カのマザーボードとスイッチ・チップにより、すべてのリリース製品の 自社テストを行っています。各リリースで PCI-SIG 準拠テストも実施し ています。 Altera Corporation 2006 年 12 月 PCI Express Compiler Version 6.1 3–105 PCI Express コンパイラ・ユーザガイド MegaCore 検証 3–106 PCI Express Compiler Version 6.1 PCI Express コンパイラ・ユーザガイド Altera Corporation 2006 年 12 月 4. 外部 PHY 外部 PHY の サポート この章では、表 4–1 に示す新しい外部 PHY とインタフェース・モードを 含む外部 PHY のサポートについて説明します。 表 4–1. 外部 PHY インタフェース・モード PHY インタフェース・モード 16 ビット SDR クロック周波数 125 MHz 16 ビット SDR モード(ソース・シン 125 MHz クロナス送信クロック付き) 注 この汎用 16 ビット PIPE インタフェースでは、 Tx および Rx データが PHY からの pclk でクロック されます。 この汎用 PIPE インタフェースへの拡張機能は、 TxData ソースを同期的にクロックするための TxClk を外部 PHY に追加します。TIXIO1100 PHY はこのモードを使用します。 125 MHz このダブル・データ・レート・バージョンは、ク ロック周波数を上げないで I/O ピンを節約します。 PHY からの 1 つの pclk を使用して、データを双 方向にクロックします。 8 ビット DDR モード(8 ビット DDR 125 MHz ソース・シンクロナス送信クロック付 き) このダブル・データ・レート・バージョンは、ク ロック周波数を上げないで I/O ピンを節約します。 TxClk は、データ・ソースを送信方向に同期的に クロックします。TIXIO1100 Phy はこのモードを使 用します。 8 ビット DDR 8 ビット SDR 250 MHz 8 ビット SDR モード(ソース・シン 250 MHz クロナス送信クロック付き) これは汎用 8 ビット PIPE インタフェースです。Tx データと Rx データの両方が PHY からの pclk で クロックされます。Philips 社の PX1011APHY はこ のモードを使用しています。 この汎用 PIPE インタフェースへの拡張機能は、 TxData ソースを同期的にクロックするための TxClk を外部 PHY に追加します。 外部 PHY を選択すると、外部 PHY に直接接続するのに必要な追加ロジッ クが < バリエーション名 > モジュールまたはエンティティに含まれます。 ユーザ・ロジックは、このモジュールまたはエンティティをデザイン内 でインスタンス化しなければなりません。これらのモードのそれぞれの 実装の詳細については、以下の項で説明します。 Altera Corporation 2006 年 12 月 PCI Express Compiler Version 6.1 4–1 外部 PHY のサポート 16 ビット SDR モード この 16 ビット SDR モード PHY サポートの実装は、図 4–1 に示してあ り、ファイル < バリエーション名 >.v または < バリエーション名 >.vhd に含まれており、PLL を含みます。PLL の inclock は、refclk によっ てドライブされ、以下の 3 つの出力を備えています。 refclk は、外部 PHY から供給されるパラレル・クロック pclk と 同じです。この資料では、refclk と pclk という用語を区別な く使用しています。 ■ clk125_outは、refclk と同じ位相オフセットを有する125 MHz出 力です。clk125_out は、図 4–1 に示すように、ユーザ・ロジック 内のclk125_in入力をドライブしなければなりません。clk125_in は、着信データをキャプチャするのに使用され、また MegaCore の clk125_in 入力をドライブするのにも使用されます。 ■ clk125_early は、位相シフトされた 125 MHz 出力です。この位相 シフトされた出力は、送信データの出力レジスタをクロックします。 ボード遅延に基づいて、この出力の位相シフトを調整する必要があ る場合もあります。位相シフトを変更するには、ユーザのバリエー ション・ファイルで参照する PLL ソース・ファイルを < パス >/ip/PCI Express Compiler/lib ディレクトリからユーザのプロジェクト・ディ レ ク ト リ に コ ピ ー し ま す。次 に、Quartus II ソ フ ト ウ ェ ア の MegaWizard Plug In Manger を使用して PLL ソース・ファイルを編 集し、必要な位相シフトを設定します。次に、変更された PLL ソー ス・ファイルをユーザの Quartus II プロジェクトに追加します。 ■ tlp_clk62p5 は、MegaCore の内部クロック周波数が 62.5 MHz のと きに MegaCore ファンクションの tlp_clk 入力をドライブする 62.5 MHz 出力です。 4–2 PCI Express Compiler Version 6.1 PCI Express コンパイラ・ユーザガイド Altera Corporation 2006 年 12 月 外部 PHY 図 4-1. 16 ビット SDR モード 125Mhz SDR Mode without txclk rxdata A Q1 A Q1 D Q4 D Q4 clk125_in ENB txdata ENB Q Q1 A A Q 44 Q D D PCIe IP MegaCore ENB ENB clk125_out refclk clk125_in Mode 1 PLL clk125_early tlp_clk_62p5 tlp_clk refclk clk125_out External connection in user logic ソース・シンクロナス TxClk 付き 16 ビット SDR モード ソース・シンクロナス TxClk 付き 16 ビット SDR モードの実装は、図 4–2 に示してあり、ファイル < バリエーション名 >.v または < バリエーショ ン名 >.vhd に含まれています。このモードでは、以下のクロッキング方 式が使用されます。 Altera Corporation 2006 年 12 月 ■ refclk は、コア用の clk125_in として使用されます。 ■ refclk は、着信データ用のシングル・データ・レート・レジスタを クロックします。 ■ refclk は、送信データ・レジスタ(txdata)を直接クロックします。 PCI Express Compiler Version 6.1 4–3 PCI Express コンパイラ・ユーザガイド 外部 PHY のサポート ■ refclkは、中央に揃ったTxClkを作成するのに使用されるDDRレジ スタをクロックするためにも使用されます。 これは、PLL を必要としない唯一の外部 PHY モードです。ただし、こ の PIPE インタフェース・モードで低速 tlp_clk 機能を使用する場合 は、低速 tlp_clk を作成するために PLL が必要です。低速 tlp_clk の場合、回路は先に図 4-1 に示した 16 ビット SDR の回路と似ています が、TxClk 出力が追加されます。 図 4-2. ソース・シンクロナス TxClk 付き 16 ビット SDR モード 125Mhz 16-bit SDR Mode with txclk tlp_clk @ 125Mhz rxdata A Q1 D Q4 ck125_in ENB txdata Q 11 Q A A Q Q 44 D D ENB ENB PCIe IP MegaCore clk125_in DDIO txclk (~refclk) Q1 A Q4 D tlp_clk ENB refclk refclk clk125_out clk125_out External connection in user logic 4–4 PCI Express Compiler Version 6.1 PCI Express コンパイラ・ユーザガイド Altera Corporation 2006 年 12 月 外部 PHY 8 ビット DDR モード 図 4-3 に示す 8 ビット DDR モードの実装は、ファイル < バリエーショ ン名 >.v または < バリエーション名 >.vhd に含まれており、PLL を含み ます。PLL の inclock は、refclk(外部 PHY からの pclk)によって ドライブされ、以下の 3 つの出力を備えています。 ■ 125 MHz refclk のゼロ遅延コピー。ゼロ遅延 PLL 出力は、コア用の clk125_in として使用され、着信データ用ダブル・データ・レート・ レジスタをクロックします。 ■ 125 MHz の refclk から逓倍された 250 MHz の「早期」出力は、 refclk よりも早い出力です。250 MHz の早期クロック PLL 出力は、 8 ビット SDR 送信データ出力レジスタをクロックするのに使用され ます。250 MHz シングル・データ・レート・レジスタを 125 MHz DDR 出力に使用すると、Cyclone II IOB 内で SDR 出力レジスタが使 用可能になるので、125 MHz DDR 出力には 250 MHz シングル・デー タ・レート・レジスタが使用されます。PHY 用の共通 refclk に必 要なクロック - 出力時間に適合させるために、早期クロックが必要で す。ユーザ固有の PHY およびボード遅延に対する位相シフトを調整 する必要がある場合もあります。位相シフトを変更するには、ユー ザのバリエーション・ファイルで参照する PLL ソース・ファイルを < パス >/ip/PCI Express Compiler/lib ディレクトリからユーザのプ ロジェクト・ディレクトリにコピーします。次に、Quartus II ソフト ウェアの MegaWizard Plug In Manger を使用して PLL ソース・ファ イルを編集し、必要な位相シフトを設定します。次に、変更された PLL ソース・ファイルをユーザの Quartus II プロジェクトに追加し ます。 ■ ×1 の実装のために、オプションの 62.5 MHz TLP 低速クロックが提供 されます。 エッジ検出回路を使用して 125 MHz クロックと 250 MHz の立ち上がり エッジの関係が検出され、16 ビット・データが 8 ビット出力レジスタ内 に正しく順序付けされます。 Altera Corporation 2006 年 12 月 PCI Express Compiler Version 6.1 4–5 PCI Express コンパイラ・ユーザガイド 外部 PHY のサポート 図 4-3. 8 ビット DDR モード 8-bit DDR without txclk DDIO rxdata A Q1 D Q4 out txclk clk125_in ENB 0 0 0 0 0 Edge Detect and Sync clk125_out clk125_in refclk clk250_early Mode 3 PLL tlp_clk Tlp_clkt PCIe IP MegaCore txdata_h txdata Q1 A Q1 A Q4 D Q4 D txdata_l ENB ENB refclk External connection in user logic clk125_out Clk125_pll_in ソース・シンクロナス TxClk 付き 8 ビット DDR ソース・シンクロナス送信クロック(TxClk)付き 8 ビット DDR モー ドの実装を図 4-4 に示します。これはファイル < バリエーション名 >.v または < バリエーション名 >.vhd に含まれており、PLL を含みます。PLL の inclock は、refclk(外部 PHY からの pclk)によってドライブさ れ、以下の 3 つの出力を備えています。 ■ MegaCore ファンクション用の clk125_in として使用され、Rx デー タおよびステータス信号用の DDR 入力レジスタをクロックするのに も使用される 125 MHz refclk のゼロ遅延コピー。 4–6 PCI Express Compiler Version 6.1 PCI Express コンパイラ・ユーザガイド Altera Corporation 2006 年 12 月 外部 PHY ■ 250 MHz の「早期」クロック PLL 出力は、8 ビット SDR 送信データ出 力レジスタをクロックします。250 MHz の早期出力は、125 MHz の refclk から逓倍され、refclk よりも早い出力です。125 MHz DDR 出力用の 250 MHz シングル・データ・レート・レジスタによって、 Cyclone II IOB で SDR 出力レジスタを使用できるようになります。 ■ ×1 の実装のために、オプションの 62.5 MHz TLP 低速クロックが提供 されます。 エッジ検出回路を使用して 125 MHz クロックと 250 MHz の立ち上がり エッジの関係が検出され、16 ビット・データが 8 ビット出力レジスタ内 に正しく順序付けされます。 図 4-4. ソース・シンクロナス送信クロック付き 8 ビット DDR モード 8-bit DDR Mode with txclk DDIO rxdata A Q1 D Q4 clk125_in ENB 0 0 0 0 0 Edge Detect and Sync clk125_out clk125_in pclk Mode 3 PLL clk250_early tlp_clk tlp_clk PCIe IP MegaCore txdata txdata_h Q1 A Q1 A Q4 D Q4 D txdata_l ENB txclk ENB Q1 A Q4 D refclk clk125_out ENB External connection in user logic Altera Corporation 2006 年 12 月 PCI Express Compiler Version 6.1 4–7 PCI Express コンパイラ・ユーザガイド 外部 PHY のサポート 8 ビット SDR モード 8 ビット SDR モードの実装は、図 4-5 に示してあり、ファイル < バリ エーション名 >.v または < バリエーション名 >.vhd に含まれており、PLL を含みます。PLL の inclock は、refclk(外部 PHY からの pclk)に よってドライブされ、以下の 3 つの出力を備えています。 ■ コア用のclk125_inとして使用され、また8 ビット着信データをロジッ クの残りの部分の 16 ビット・レジスタに転送するのにも使用される、 250 MHz refclk から派生した 125 MHz 出力 ■ 8 ビット SDR 送信データ出力レジスタをクロックするために使用さ れる refclk よりも早くスキューされた 250 MHz の「早期」クロック 出力。早期クロック PLL 出力は、送信データ出力レジスタをクロッ クするのに使用されます。早期クロックは、共通クロックに必要な クロック - 出力時間に適合させるために必要です。ユーザ固有の PHY およびボード遅延に対する位相シフトを調整する必要がある場合も あります。位相シフトを変更するには、ユーザのバリエーション・ ファイルで参照する PLL ソース・ファイルを < パス >/ip/PCI Express Compiler/lib ディレクトリからユーザのプロジェクト・ディレクト リにコピーします。次に、Quartus II ソフトウェアの MegaWizard Plug In Manger を使用して PLL ソース・ファイルを編集し、必要な 位相シフトを設定します。次に、変更された PLL ソース・ファイル をユーザの Quartus II プロジェクトに追加します。 ■ ×1 の実装のために、オプションの 62.5 MHz TLP 低速クロックが提供 されます。 エッジ検出回路を使用して 125 MHz クロックと 250 MHz の立ち上がり エッジの関係が検出され、16 ビット・データが 8 ビット出力レジスタ内 に正しく順序付けされます。 4–8 PCI Express Compiler Version 6.1 PCI Express コンパイラ・ユーザガイド Altera Corporation 2006 年 12 月 外部 PHY 図 4-5. 8 ビット SDR モード 250Mhz SDR Mode rxdata A Q1 A Q1 A Q1 D Q4 D Q4 D Q4 rxdata_h refclk (250 Mhz) ENB ENB ENB 0 0 0 A Q1 A Q1 0 0 D Q4 D Q4 rxdata_l Edge Detect and Sync clk125_in ENB ENB clk125_in Mode 4 PLL clk250_early PCIe IP MegaCore clk125_out txdata_h txdata Q1 A Q1 A Q4 D Q4 D ENB txdata_l ENB tlp_clk tlp_clk External connection in user logic refclk ソース・シンクロナス TxClk 付き 8 ビット SDR ソース・シンクロナス TxClk 付き 16 ビット SDR モードの実装は、図 46 に示してあり、ファイル < バリエーション名 >.v または < バリエーショ ン名 >.vhd に含まれており、 PLL を含みます。PLL の inclock は、refclk (外部 PHY からの pclk)によってドライブされ、以下の 3 つの出力を 備えています。 Altera Corporation 2006 年 12 月 ■ 250 MHz refclkから派生した125 MHzの出力。この125 MHzのPLL 出力は、MegaCore ファンクション用の clk125_in として使用され ます。 ■ refclk よりも早くスキューされた 250 MHz の「早期」クロック出力。 250 MHz の早期クロック PLL 出力は、8 ビット SDR 送信データ出力 レジスタをクロックするために使用されます。 PCI Express Compiler Version 6.1 4–9 PCI Express コンパイラ・ユーザガイド 外部 PHY のサポート ×1 の実装のために、オプションの 62.5 MHz TLP 低速クロックが提供 されます。 ■ エッジ検出回路を使用して 125 MHz クロックと 250 MHz の立ち上がり エッジの関係が検出され、16 ビット・データが 8 ビット出力レジスタ内 に正しく順序付けされます。 図 4-6. ソース・シンクロナス送信クロック付き 8 ビット SDR モード 250Mhz SDR Mode with txclk rxdata A Q1 A Q1 A Q1 D Q4 D Q4 D Q4 rxdata_h refclk (250 Mhz) ENB ENB ENB 0 0 0 A Q1 A Q1 0 0 D Q4 D Q4 rxdata_l Edge Detect and Sync ENB ENB clk125_in Mode 4 PLL PCIe IP MegaCore clk125_out txdata_h txdata Q1 A Q1 A Q4 D Q4 D ENB txdata_l ENB txclk clk250_early tlp_clk clk125_zero External connection in user logic 4–10 PCI Express Compiler Version 6.1 PCI Express コンパイラ・ユーザガイド tlp_clk refclk Altera Corporation 2006 年 12 月 外部 PHY 16 ビット PHY インタフェース信号 表 4–2 に、16 ビット PIPE インタフェース・モード用の外部 I/O 信号を 要約します。選択されたレーンの数および PHY モードが TxClk を備え ているか否かによって、一部信号が存在しないことがあります。 表 4–2. 16 ビット PHY インタフェース信号 (1 / 2) 信号名 方向 説明 可用性 pcie_rstn 入力 PCI Express Reset 信号、アクティブ Low phystatus_ext 入力 PIPE インタフェース PhyStatus 信号。PHY が要求され 常に た動作の完了を通知する。 powerdown_ext[1:0] 出力 PIPE インタフェース・パワーダウン信号。PHY に指定 常に されたパワー状態に入ることを要求する。 refclk 入力 PHY からの PIPE インタフェース pclk 信号に接続さ 常に れるクロック入力。すべてのステータスおよびデータ 信号をクロックするのに使用される 125 MHz のクロッ ク pipe_txclk 出力 Tx データおよび PHY に送られるコントロール信号を TxClk を持つモード クロックするためのソース・シンクロナス送信クロッ のみ ク信号 rxdata0_ext[15:0] 入力 PIPE インタフェース・レーン 0 Rx データ信号。受信し 常に たパラレル・データを転送する。 rxdatak0_ext[1:0] 入力 PIPE インタフェース・レーン 0 Rx データ K 記号フラグ 常に rxelecidle0_ext 入力 PIPE インタフェース・レーン 0 Rx 電気的アイドル表示 常に 常に rxpolarity0_ext 出力 PIPE インタフェース・レーン 0 Rx 極性反転制御 rxstatus0_ext[1:0] 入力 PIPE インタフェース・レーン 0 Rx ステータス・フラグ 常に rxvalid0_ext 入力 PIPE インタフェース・レーン 0 Rx データ有効表示 txcompl0_ext 出力 PIPE インタフェース・レーン 0 Tx コンプライアンス制 常に 御 txdata0_ext[15:0] 出力 PIPE インタフェース・レーン 0 Tx データ信号。パラレ 常に ル送信データを転送する。 常に 常に txdatak0_ext[1:0] 出力 PIPE インタフェース・レーン 0 Tx データ K 記号フラグ 常に txelecidle0_ext 出力 PIPE インタフェース・レーン 0 Tx 電気的アイドル制御 常に rxdata1_ext[15:0] 入力 PIPE インタフェース・レーン 1 の Rx データ信号。受 ×4 のみ 信したパラレル・データを転送する。 rxdatak1_ext[1:0] 入力 PIPE インタフェース・レーン 1 Rx データ K 記号フラグ ×4 のみ rxelecidle1_ext 入力 PIPE インタフェース・レーン 1 Rx 電気的アイドル表示 ×4 のみ rxpolarity1_ext 出力 PIPE インタフェース・レーン 1 Rx 極性反転制御 rxstatus1_ext[1:0] 入力 PIPE インタフェース・レーン 1 Rx ステータス・フラグ ×4 のみ Altera Corporation 2006 年 12 月 ×4 のみ PCI Express Compiler Version 6.1 4–11 PCI Express コンパイラ・ユーザガイド 外部 PHY のサポート 表 4–2. 16 ビット PHY インタフェース信号 (2 / 2) 信号名 方向 説明 可用性 ×4 のみ rxvalid1_ext 入力 PIPE インタフェース・レーン 1 Rx データ有効表示 txcompl1_ext 出力 PIPE インタフェース・レーン 1 Tx コンプライアンス制 ×4 のみ 御 txdata1_ext[15:0] 出力 PIPE インタフェース・レーン 1 Tx データ信号。パラレ ×4 のみ ル送信データを転送する。 txdatak1_ext[1:0] 出力 PIPE インタフェース・レーン 1 Tx データ K 記号フラグ ×4 のみ txelecidle1_ext 出力 PIPE インタフェース・レーン 1 Tx 電気的アイドル制御 ×4 のみ rxdata2_ext[15:0] 入力 PIPE インタフェース・レーン 2 Rx データ信号。受信し ×4 のみ たパラレル・データを転送する。 rxdatak2_ext[1:0] 入力 PIPE インタフェース・レーン 2 Rx データ K 記号フラグ ×4 のみ rxelecidle2_ext 入力 PIPE インタフェース・レーン 2 Rx 電気的アイドル表示 ×4 のみ ×4 のみ rxpolarity2_ext 出力 PIPE インタフェース・レーン 2 Rx 極性反転制御 rxstatus2_ext[1:0] 入力 PIPE インタフェース・レーン 2 Rx ステータス・フラグ ×4 のみ rxvalid2_ext 入力 PIPE インタフェース・レーン 2 Rx データ有効表示 txcompl2_ext 出力 PIPE インタフェース・レーン 2 Tx コンプライアンス制 ×4 のみ 御 txdata2_ext[15:0] 出力 PIPE インタフェース・レーン 2 Tx データ信号。パラレ ×4 のみ ル送信データを転送する。 txdatak2_ext[1:0] 出力 PIPE インタフェース・レーン 2 Tx データ K 記号フラグ ×4 のみ txelecidle2_ext 出力 PIPE インタフェース・レーン 2 Tx 電気的アイドル制御 ×4 のみ rxdata3_ext[15:0] 入力 PIPE インタフェース・レーン 3 Rx データ信号。受信し ×4 のみ たパラレル・データを転送する。 rxdatak3_ext[1:0] 入力 PIPE インタフェース・レーン 3 Rx データ K 記号フラグ ×4 のみ rxelecidle3_ext 入力 PIPE インタフェース・レーン 3 Rx 電気的アイドル表示 ×4 のみ ×4 のみ ×4 のみ rxpolarity3_ext 出力 PIPE インタフェース・レーン 3 Rx 極性反転制御 rxstatus3_ext[1:0] 入力 PIPE インタフェース・レーン 3 Rx ステータス・フラグ ×4 のみ rxvalid3_ext 入力 PIPE インタフェース・レーン 3 Rx データ有効表示 txcompl3_ext 出力 PIPE インタフェース・レーン 3 Tx コンプライアンス制 ×4 のみ 御 txdata3_ext[15:0] 出力 PIPE インタフェース・レーン 3 Tx データ信号。パラレ ×4 のみ ル送信データを転送する。 txdatak3_ext[1:0] 出力 PIPE インタフェース・レーン 3 Tx データ K 記号フラグ ×4 のみ txelecidle3_ext 出力 PIPE インタフェース・レーン 3 Tx 電気的アイドル制御 ×4 のみ 4–12 PCI Express Compiler Version 6.1 PCI Express コンパイラ・ユーザガイド ×4 のみ Altera Corporation 2006 年 12 月 外部 PHY 8 ビット PHY インタフェース信号 表 4–3 に、8 ビット PIPE インタフェース・モード用の外部 I/O 信号を 要約します。選択されたレーンの数および PHY モードが TxClk を備え ているか否かによって、一部信号が存在しないことがあります。 表 4–3. 8 ビット PHY インタフェース信号 (1 / 2) 信号名 方向 説明 可用性 pcie_rstn 入力 PCI Express Reset 信号、アクティブ Low phystatus_ext 入力 PIPE インタフェース PhyStatus 信号。PHY が要求され 常に た動作の完了を通知する。 powerdown_ext[1:0] 出力 PIPE インタフェース・パワーダウン信号。PHY に指定 常に されたパワー状態に入ることを要求する。 refclk 入力 PHY からの PIPE インタフェース pclk 信号に接続され 常に るクロック入力。すべてのステータスおよびデータ信号 をクロックするのに使用される。これが SDR インタ フェースか DDR インタフェースかによって、このクロッ クは 250 MHz または 125 MHz になる。 pipe_txclk 出力 Tx データおよび PHY に送られるコントロール信号をク TxClk を持つモー ロックするためのソース・シンクロナス送信クロック信 ドのみ 号 rxdata0_ext[7:0] 入力 PIPE インタフェース・レーン 0 Rx データ信号。受信し 常に たパラレル・データを転送する。 rxdatak0_ext 入力 PIPE インタフェース・レーン 0 Rx データ K 記号フラグ 常に rxelecidle0_ext 入力 PIPE インタフェース・レーン 0 Rx 電気的アイドル表示 常に rxpolarity0_ext 出力 PIPE インタフェース・レーン 0 Rx 極性反転制御 常に 常に rxstatus0_ext[1:0] 入力 PIPE インタフェース・レーン 0 Rx ステータス・フラグ 常に rxvalid0_ext 入力 PIPE インタフェース・レーン 0 Rx データ有効表示 常に txcompl0_ext 出力 PIPE インタフェース・レーン 0 Tx コンプライアンス制御 常に txdata0_ext[7:0] 出力 PIPE インタフェース・レーン 0 Tx データ信号。パラレ 常に ル送信データを転送する。 txdatak0_ext 出力 PIPE インタフェース・レーン 0 Tx データ K 記号フラグ 常に txelecidle0_ext 出力 PIPE インタフェース・レーン 0 Tx 電気的アイドル制御 rxdata1_ext[7:0] 入力 PIPE インタフェース・レーン 1 Rx データ信号。受信し ×4 のみ たパラレル・データを転送する。 rxdatak1_ext 入力 PIPE インタフェース・レーン 1 Rx データ K 記号フラグ ×4 のみ rxelecidle1_ext 入力 PIPE インタフェース・レーン 1 Rx 電気的アイドル表示 ×4 のみ rxpolarity1_ext 出力 PIPE インタフェース・レーン 1 Rx 極性反転制御 ×4 のみ Altera Corporation 2006 年 12 月 常に PCI Express Compiler Version 6.1 4–13 PCI Express コンパイラ・ユーザガイド 外部 PHY のサポート 表 4–3. 8 ビット PHY インタフェース信号 (2 / 2) 信号名 rxstatus1_ext[1:0] 方向 説明 可用性 PIPE インタフェース・レーン 1 Rx ステータス・フラグ ×4 のみ 入力 PIPE インタフェース・レーン 1 Rx データ有効表示 ×4 のみ 出力 PIPE インタフェース・レーン 1 Tx コンプライアンス制御 ×4 のみ 入力 rxvalid1_ext txcompl1_ext txdata1_ext[7:0] 出力 PIPE インタフェース・レーン 1 Tx データ信号。パラレ ×4 のみ ル送信データを転送する。 txdatak1_ext 出力 PIPE インタフェース・レーン 1 Tx データ K 記号フラグ ×4 のみ txelecidle1_ext 出力 PIPE インタフェース・レーン 1 Tx 電気的アイドル制御 rxdata2_ext[7:0] 入力 PIPE インタフェース・レーン 2 Rx データ信号。受信し ×4 のみ たパラレル・データを転送する。 rxdatak2_ext 入力 PIPE インタフェース・レーン 2 Rx データ K 記号フラグ ×4 のみ rxelecidle2_ext 入力 PIPE インタフェース・レーン 2 Rx 電気的アイドル表示 ×4 のみ rxpolarity2_ext 出力 PIPE インタフェース・レーン 2 Rx 極性反転制御 ×4 のみ ×4 のみ rxstatus2_ext[1:0] 入力 PIPE インタフェース・レーン 2 Rx ステータス・フラグ ×4 のみ rxvalid2_ext 入力 PIPE インタフェース・レーン 2 Rx データ有効表示 ×4 のみ txcompl2_ext 出力 PIPE インタフェース・レーン 2 Tx コンプライアンス制御 ×4 のみ txdata2_ext[7:0] 出力 PIPE インタフェース・レーン 2 Tx データ信号。パラレ ×4 のみ ル送信データを転送する。 txdatak2_ext 出力 PIPE インタフェース・レーン 2 Tx データ K 記号フラグ ×4 のみ ×4 のみ txelecidle2_ext 出力 PIPE インタフェース・レーン 2 Tx 電気的アイドル制御 rxdata3_ext[7:0] 入力 PIPE インタフェース・レーン 3 Rx データ信号。受信し ×4 のみ たパラレル・データを転送する。 rxdatak3_ext 入力 PIPE インタフェース・レーン 3 Rx データ K 記号フラグ ×4 のみ rxelecidle3_ext 入力 PIPE インタフェース・レーン 3 Rx 電気的アイドル表示 ×4 のみ rxpolarity3_ext 出力 PIPE インタフェース・レーン 3 Rx 極性反転制御 ×4 のみ rxstatus3_ext[1:0] 入力 PIPE インタフェース・レーン 3 Rx ステータス・フラグ ×4 のみ ×4 のみ rxvalid3_ext 入力 PIPE インタフェース・レーン 3 Rx データ有効表示 txcompl3_ext 出力 PIPE インタフェース・レーン 3 Tx コンプライアンス制御 ×4 のみ txdata3_ext[7:0] 出力 PIPE インタフェース・レーン 3 Tx データ信号。パラレ ×4 のみ ル送信データを転送する。 txdatak3_ext 出力 PIPE インタフェース・レーン 3 Tx データ K 記号フラグ ×4 のみ txelecidle3_ext 出力 PIPE インタフェース・レーン 3 Tx 電気的アイドル制御 4–14 PCI Express Compiler Version 6.1 PCI Express コンパイラ・ユーザガイド ×4 のみ Altera Corporation 2006 年 12 月 外部 PHY 外部 PHY の 選択 パラメータ設定のプロセスで表示される Systems Setting ページから、外 部 PHY を選択します。次の 2 つの選択肢が用意されています。 ■ ■ 的確な PHY を選択します。 PHY へのインタフェースのタイプを選択します。いくつかの PHY は 複数のインタフェース・モードを備えています。 Custom オプションを選択することにより、サポートされている任意の インタフェースを選択できます。図 4–4 に、外部 PHY を選択するため の Systems Setting ページを示します。 図 4-7. パラメータ化時の外部 PHY の選択 Altera Corporation 2006 年 12 月 PCI Express Compiler Version 6.1 4–15 PCI Express コンパイラ・ユーザガイド 外部 PHY 制約のサポート 表 4–4 に PHY サポート・マトリックスを示します。サポートされてい るすべての PHY タイプとインタフェースについて、この表には許容さ れるレーン幅が記載されています。 表 4–4. 外部 PHY のサポート・マトリックス PHY タイプ 許容されるインタフェースおよびレーン 16 ビット 16 ビット 8 ビット 8 ビット 8 ビット 8 ビット シリアル SDR SDR DDR DDR SDR SDR インタフェース (pclkのみ)(w/TxClk)(pclk のみ)(w/TxClk)(pclk のみ)(w/TxClk) - - - - - - ×1, ×4 Stratix II GX - - - - - - ×1, ×4, ×8 TI XIO1100 - ×1 - ×1 - - - Philips PX1011A - - - - - ×1 - カスタム ×1, ×4 ×1, ×4 ×1, ×4 ×1, ×4 ×1, ×4 ×1, ×4 - Stratix GX TI XIO1100 デバイスは、ユーザ・デザインによってドライブされる必要 があるいくつかの追加コントロール信号があります。デザインでさらに 柔軟性が必要な場合やアルテラ・デバイスからドライブする場合を除い て、これらはボード・デザイン内で High または Low にスタティックに プルできます。これらの信号は、以下のとおりです。 ■ P1_SLEEP は Low にしなければなりません。PCI Express MegaCore ファンクションは、P1パワーダウン状態のときにはrefclk(XIO1100 からの RX_CLK)がアクティブ状態を保持することを要求します。 ■ PCI Express MegaCore ファンクションのバリエーションが 8 ビット DDR(w/TxClk)モードを使用している場合は、DDR_EN を High にしなければなりません。16 ビット SDR(w/TxClk)モードが使用 されている場合は、Low にプルしなければなりません。 ■ CLK_SEL は、XIO1100 に供給されるリファレンス・クロックに基づ いて、正しく設定する必要があります。具体的な推奨事項について は、XIO1100 データシートを参照してください。 外部 PHY 制約 のサポート PCI Express コンパイラは制約をサポートします。MegaCore をパラメー タ設定して生成するときに、Quartus II ソフトウェアは、デザインをコ ンパイルする際に実行する Tcl ファイルを作成します。 Tcl ファイルには、 MegaCore ファンクションのパラメータ設定および生成時に指定され る、以下の制約が含まれています。 ■ ■ ■ pclk 周波数制約(125 MHz または 250 MHz) 入力信号に対するセットアップおよびホールド制約 出力信号に対するクロック−出力制約 4–16 PCI Express Compiler Version 6.1 PCI Express コンパイラ・ユーザガイド Altera Corporation 2006 年 12 月 外部 PHY ■ I/O インタフェース標準規格 デザインをコンパイルする際の制約ファイルの使用と追加につい て詳しくは、2–16 ページの「デザインのコンパイル」を参照して ください。 外部 PHY と Stratix GX デバイス・ファミリの使用 外部 PHY を Stratix GX デバイス・ファミリに実装されるデザインと共 に使用する場合は、一部の外部 PHY が Stratix GX ファミリで動作する ために必要なPLLインスタンスを変更しなければなりません。Stratix GX の内部 PHY を使用している場合、これは不要です。 PLL インスタンスを変更するには、以下のステップに従います。 1. バリエーション・ファイルで参照した PLL ソース・ファイルを < パ ス >/ip/PCI Express Compiler/lib ディレクトリからユーザのプロ ジェクト・ディレクトリにコピーします。 2. Quartus II ソフトウェアの MegaWizard Plug In Manger を使用して、 Stratix GX デバイス・ファミリを使用するように PLL を編集します。 3. 変更された PLL ソース・ファイルをユーザの Quartus II プロジェク トに追加します。 Altera Corporation 2006 年 12 月 PCI Express Compiler Version 6.1 4–17 PCI Express コンパイラ・ユーザガイド 外部 PHY 制約のサポート 4–18 PCI Express Compiler Version 6.1 PCI Express コンパイラ・ユーザガイド Altera Corporation 2006 年 12 月 5. テストベンチおよび デザイン例 この章では、PCI Express MegaCore ファンクション・テストベンチ、 BFM テスト・ドライバ・モジュール、および以下の 2 つのデザイン例を 紹介します。 ■ シンプル DMA デザイン例 ■ チェイニング DMA デザイン例 この章のコンポーネントと概念を再検討した後、BFM テスト・ドライ バ・モジュールを変更して、ユーザ独自のアプリケーション・レイヤ・ デザインを動作させ、テストするのに必要な情報を得ることができます。 2–12 ページの「ファイルの生成」で説明した MegaCore ファンクショ ン・バリエーションを作成すると、ユーザのバリエーションに合わせて カスタマイズされたデザイン例およびテストベンチも生成されます。 テストベンチはデザイン例とルート・ポート BFM をインスタンス化し、 以下のコンフィギュレーション・ルーチンとインタフェースを提供しま す。 ■ エンドポイントですべての基本コンフィギュレーション・レジスタ をセットアップするコンフィギュレーション・ルーチン。このルー チンにより、エンドポイント・アプリケーションをターゲットとし て、PCI Express トランザクションを開始することができます。 ■ エンドポイントに対してPCI Expressトランザクションを開始するた めの VHDL/Verilog HDL プロシージャ・インタフェース このテストベンチはテスト・ドライバ・モジュール(シンプル DMA デ ザイン用の altpcietb_bfm_driver およびチェイニング DMA デザイン用 の altpcietb_bfm_driver_chaining)を使用して、デザイン例のターゲッ ト・メモリと DMA チャネルを試験します。このテスト・ドライバ・モ ジュールは、エンドポイントのコンフィギュレーション・スペース・レ ジスタからの情報も表示します。これにより、ユーザは MegaWizard イ ンタフェースに指定したパラメータを検証することができます。 提供されるデザイン例の 1 つをサンプルとして使用し、テストベンチの テスト・ドライバ・モジュールを簡単に変更して、提供されたデザイン 例のアプリケーション・レイヤ・ロジックの代わりに、ユーザ独自のア プリケーション・レイヤ・デザインを使用することができます。テスト Altera Corporation 2006 年 12 月 PCI Express Compiler Version 6.1 5–1 ベンチとルート・ポート BFM デザインは、MegaCore ファンクションの エンドポイント・バリエーションにインタフェースするアプリケーショ ン・レイヤ・ロジックを試験するプロセスを簡素化します。PCI Express のリンク監視およびエラー・インジェクション機能は、MegaCore ファ ンクションの test_in および test_out 信号に制限されています。以 降の項では、テストベンチ、2 つのデザイン例、およびルート BFM を詳 細に説明します。 アルテラのテストベンチとルート・ポート BFM は、MegaCore ファンク ションのエンドポイント・バリエーションにインタフェースするアプリ ケーション・レイヤ・ロジックの基本テストを行う単純な方法を提供し ます。ただし、テストベンチおよびルート・ポート BFM は、完全な検 証環境の代わりになること意図したものではありません。アプリケー ションを徹底的にテストするために、アルテラでは市販されている PCI Express 検証 IP およびツールを取得するか、ユーザ独自の包括的なハー ドウェア・テストを実行する(あるいはその両方を行う)ことを推奨し ています。 ユーザのアプリケーション・レイヤ・デザインは、アルテラのテストベ ンチやルート・ポート BFM では作成できない以下のシナリオに対処し なければならない場合があります。アルテラのルート・ポート BFM に は、以下の制限があります。 ■ ■ ■ ■ ■ ベンダが定義したメッセージを生成または受信することはできませ ん。一部のシステムはベンダが定義したメッセージを生成し、アプ リケーション・レイヤはそれらを処理するように設計できなければ なりません。MegaCore ファンクションはこれらのメッセージをアプ リケーション・レイヤに渡します。アプリケーション・レイヤはほ とんどの場合、それらを無視しなければなりませんが、すべてのケー スで rx_ack を発行して、Rx バッファからのメッセージをクリアする 必要があります。 受信した読み出し要求のうち、現在設定されている最大ペイロード・ サイズ以下の要求しか処理できません。多くのシステムはより大き な読み出し要求を処理でき、それらは複数のコンプリーションで返 されます。 読み出し要求ごとに常に 1 つのコンプリーションを返します。一部の システムは 64 バイト・アドレス境界ごとにコンプリーションを分割 します。 コンプリーションは常に読み出し要求が発行されたのと同じ順序で 返されます。コンプリーションを順不同で生成するシステムもあり ます。 一部のシステムがいくつかのライト・トランザクションに続くフ ラッシュ要求として生成する、長さゼロの読み出し要求を生成する ことはできません。アプリケーション・レイヤは、長さゼロの読み 出し要求に対してコンプリーションを生成できなければなりませ ん。 5–2 PCI Express Compiler Version 6.1 PCI Express コンパイラ・ユーザガイド Altera Corporation 2006 年 12 月 テストベンチおよび デザイン例 コアと共に提供されるシンプルおよびチェイニングDMAデザイン例は、 提供されたテストベンチがそれらをテストできない場合でも、上記のす べての動作を扱うように設計されています。 さらに、PCI Express のリンク監視およびエラー・インジェクション能 力は、MegaCore ファンクションの test_in および test_out 信号に 制限されています。テストベンチおよびルート・ポート BFM は、どの トランザクションも NAK しません。 テストベンチ MegaWizard インタフェースは、ユーザのプロジェクト・ディレクトリ 内のシンプル DMA デザイン例用のサブディレクトリ < バリエーション 名 >_examples/simple_dma/testbench およびチェイニング DMA デザイ ン例用の < バリエーション名 >_examples/chaining_dma/testbench にテ ストベンチを提供します。テストベンチのトップ・レベルには、シンプ ル DMA デザイン例に対しては < バリエーション名 >_testbench、そし て チ ェ イ ニ ン グ DMA デザイン例に対しては < バリエーション 名 >_chaining_testbench の名前が付けられます。 このテストベンチにより、ルート・ポートおよびエンドポイントの PIPE インタフェースまたはシリアル PCI Express インタフェースのいずれか を使用して、最大 8 レーンの PCI Express リンクのシミュレーションが 可能です。テストベンチのハイ・レベル・ビューについては、図 5-1 を 参照してください。 図 5-1. テストベンチのトップ・レベル・モジュール : < バリエーション名 >_testbench Testbench Top Level (<variation name>_testbench) Endpoint Example Design <variation name>_example_pipen1b Altera Corporation 2006 年 12 月 PIPE Interconnection Module (x8) (altpcierd_pipe_phy) Root Port BFM (altpcierd_bfm_rp_top_x8_pipen1b) Chaining DMA Simple DMA Test Driver Module (altpcietb_bfm_driver_chaining) Test Driver Module (altpcietb_bfm_driver) PCI Express Compiler Version 6.1 5–3 PCI Express コンパイラ・ユーザガイド テストベンチ テストベンチのトップ・レベルは、以下の 4 つのメイン・モジュールを インスタンス化します。 ■ < バリエーション名 >_example_pipen1b — これは MegaCore ファン クションのバリエーションを含むエンドポイント・デザイン例です。 このモジュールについて詳しくは、5–6 ページの「シンプル DMA デ ザイン例」を参照してください。 ■ altpcietb_bfm_rp_top_x8_pipen1b — こ れ は ル ー ト・ポ ー ト PCI Express バス機能モデル (BFM) です。このモジュールについて詳し くは、5–32 ページの「ルート・ポート BFM」を参照してください。 ■ altpcietb_pipe_phy — このモジュールには各レーンに 1 つずつ、8 つ のインスタンスがあります。これらのモジュールは、ルート・ポー トおよびエンドポイントの PIPE MAC レイヤ・インタフェースを相 互接続します。このモジュールは、両方の MAC インタフェースに 対する PIPE PHY レイヤの動作を模倣します。 ■ altpcietb_bfm_driver — このモジュールはトランザクションをルー ト・ポート BFM にドライブします。これはエンドポイント・デザイ ン例またはユーザ独自のデザインに送信されたトランザクションを 変更するように修正するモジュールです。このモジュールについて 詳しくは、5–23 ページの「シンプル DMA デザイン例用の BFM テス ト・ドライバ・モジュール」を参照してください。 さらに、テストベンチは以下のタスクを実行するルーチンを持っていま す。 ● ● 要求される周波数でエンドポイント用基準クロックを生成。 起動時に PCI Express リセットを提供。 5–4 PCI Express Compiler Version 6.1 PCI Express コンパイラ・ユーザガイド Altera Corporation 2006 年 12 月 テストベンチおよび デザイン例 テストベンチは、テストベンチの全体的な動作を制御するいくつかの VHDL generic/Verilog HDL parameter を備えています。これらの汎用 パラメータは、表 5–1 に説明されています。 表 5–1. テストベンチ VHDL generic/Verilog HDL parameter Generic/Parameter 許容値 デフォルト値 説明 PIPE_MODE 0 または 1 1 PIPE インタフェース (PIPE_MODE = 1) また はシリアル・インタフェース (PIPE_MODE = 0) がシミュレーションに使用されるかどうかを 制御します。PIPE インタフェースは、一般にシ リアル・インタフェースよりもはるかに高速でシ ミュレーションされます。バリエーション名ファ イルが PIPE インタフェースのみ実装する場合 は、PIPE_MODE を 0 に設定しても影響はなく、 PIPE インタフェースが常に使用されます。 NUM_CONNECTED_LANES 1,2,4,8 これにより、テストベンチで相互接続されるレー ン数が制御されます。この generic 値をより小さ な値 に 設定 す ると、最 大値 よ りも 狭 い PCI Express インタフェースで動作するエンドポイン トがシミュレーションされます。 8 ユーザのバリエーションで ×1 MegaCore ファン クションしか実装しない場合、この設定は無効で あり 1 レーンしか使用されません。 FAST_COUNTERS Altera Corporation 2006 年 12 月 0 または 1 1 このパラメータを 1 に設定すると、PCI Express MegaCore ファンクションのタイミング・カウン タの多くを PCI Express 仕様で規定される以上の 速度で動作させることによって、シミュレーショ ンがスピードアップされます。これは通常は 1 に 設定すべきであるが、真のタイムアウト値をシ ミュレーションする必要がある場合は0に設定で きます。 PCI Express Compiler Version 6.1 5–5 PCI Express コンパイラ・ユーザガイド シンプル DMA デザイン例 シンプル DMA デザイン例 このデザイン例は、PCI Express MegaCore ファンクションにインタ フェースするエンドポイントアプリケーション・レイヤ・デザインの作 成方法を示します。デザインには以下が含まれています。 ■ PCI Express メモリ・リードおよびライト・トランザクションをター ゲットにすることができるメモリ ■ PCI Express リンク上で、メモリ・リードおよびライト・トランザク ションを開始できる DMA チャネル エンドポイント・デザイン例は、サポートされているアルテラ・デバイ ス内に完全に内蔵することが可能で、PCI Express リンク以外のハード ウェア・インタフェースには依存していません。これにより、ユーザは ユーザ・システムの初期ハードウェア妥当性検証にこのデザイン例を使 用できます。 Quartus II ソフトウェアは、ユーザがバリエーション(バリエーション 名ファイルで生成される)に使用しているのと同じ言語でデザイン例を 生成します。デザイン例は Verilog HDL または VHDL のいずれかです。 MegaWizard インタフェースが MegaCore バリアントを生成すると、 MegaCore ファンクション・バリエーションでエンドポイント・デザイ ン例が作成されます。5–7 ページの「シミュレーションのためのトップ・ レベル・シンプル DMA デザイン例」に示すとおり、デザイン例には MegaCore ファンクション・バリエーションとアプリケーション・レイ ヤ・デザイン例の 2 つの主要コンポーネントが含まれています。 エンドポイント・デザイン例のアプリケーション・レイヤは、以下の特 長を備えています。 ■ ■ ■ ■ ■ ■ PCI Express MegaCore ファンクションへのインタフェース方法を示 す。 PCI Express メモリ書き込みおよびリード・トランザクションに対し て読み書き可能なターゲット・メモリ。 PCI Express リンク上で、メモリ・リードおよびライト・トランザク ションを開始するのに使用できる DMA チャネル。 DMA 開始メモリ・トランザクション用データをソースおよびシンク するのに使用できるマスタ・メモリ・ブロック。 DMA 開始メモリ・ライト・トランザクション用データをソースする のに使用可能なデータ・パターン・ジェネレータ。 2 本のバーチャル・チャネル(VC)のサポート。 5–6 PCI Express Compiler Version 6.1 PCI Express コンパイラ・ユーザガイド Altera Corporation 2006 年 12 月 テストベンチおよび デザイン例 エンドポイント・デザイン例はテストベンチ・シミュレーションで使用 して、アルテラ・デバイス用の完全なデザインとしてコンパイルするこ とができます。バリエーション・ファイルでデザイン例を実装するのに 必要なすべてのモジュールが、使用する言語に基づいて以下の個別ファ イルに含まれています。 < バリエーション名 >_example_top.vhd < バリエーション名 >_example_top.v altpcierd_dprambe.v または altpcierd_dprambe.vhd altpcierd_example_app.v または altpcierd_example_app.vhd altpcierd_master.v または altpcierd_master.vhd altpcierd_slave.v または altpcierd_slave.vhd < バリエーション名 >_example_pipen1b.v または < バリエーション名 >_example_pipen1b.vhd < バリエーション名 >_example_top.v または < バリエーション名 >_example_top.vhd このファイルは生成された MegaCore ファンクションのプロジェクト・ ディレクトリに作成されます。詳しくは、2–12 ページの「ファイルの生 成」を参照してください。 図 5-2 に、シンプル DMA エンドポイント・デザイン例のハイ・レベル・ ブロック図を示します。 図 5-2. シミュレーションのためのトップ・レベル・シンプル DMA デザイン例 Simple DMA Example Design Simulation Top Level (<variation name>_example_pipenb) Simple DMA Example Application Layer (altpcierd_example_app) VC0 Tx Master Module (altpcierd_master) PHY Support Module (<variation name>) VC0 Rx Includes DMA, Memory & Data Generator Traffic Class to Virtual Channel Mapping VC1 Tx VC1 Rx PCI Express MegaCore Function Variation Slave Module (altpcierd_slave) Includes Memory & Control Registers Altera Corporation 2006 年 12 月 PCI Express Compiler Version 6.1 5–7 PCI Express コンパイラ・ユーザガイド シンプル DMA デザイン例 このデザイン例には、以下のモジュールが含まれています。 ■ <バリエーション名>_example_pipen1bこのモジュールは、ユーザが シミュレーションに使用するエンドポイント・デザイン例のトップ・ レベルです。 このモジュールは、シミュレーション環境に PIPE とシリアル・イン タフェースの両方を提供します。このモジュールは、test_out と test_in(付録 C 参照)という名前の 2 つのデバッグ・ポートを備え ています。これによりユーザは MegaCore ファンクションの内部状 態を監視および制御することができます。 合成する場合、トップ・レベル・モジュールは < バリエーション 名 >_example_top です。このモジュールは、モジュール < バリエー ション名 >_example_pipen1b をインスタンス化し、テスト・ポート の小さなサブセットのみを外部 I/O に接続します。ユーザ・デザイ ンでこれらのテスト・ポートを使用できます。 ■ < バリエーション名 >.vhd または < バリエーション名 >.v — このファイルは、この項の随所に記載され ている < バリエーション名 >_core エンティティ(またはモジュール) をインスタンス化し、ユーザのバリエーションに選択した特定の PHY をサポートするのに必要な追加ロジックが含まれています。 Quartus II ソフトウェアでデザインをコンパイルするときには、この ファイルを含めなければなりません。 ■ <バリエーション名>_core.vまたは<バリエーション名>_core.vhd — このバリエーション名モジュールは生成フェーズ中に MegaCore ファンクションをパラメータ化するとき、ユーザが設定したパラ メータに基づいて、MegaWizard インタフェースによって作成され ます(2–5 ページの「パラメータ設定」参照)。シミュレーション目 的で、Quartus II ソフトウェアによって作成された IP 機能シミュレー ション・モデルが使用されます。IP 機能シミュレーション・モデル は、< バリ エー シ ョン名 >_core.vho また は < バリエーション 名 >_core.vo ファイルのいずれかです。関連する < バリエーション 名 >_core.vhd または < バリエーション名 >_core.v ファイルは、コン パイル中に Quartus II ソフトウェアによって使用されます。機能シ ミュレーション・モデルの生成について詳しくは、2–9 ページの「シ ミュレーションのセットアップ」を参照してください。 5–8 PCI Express Compiler Version 6.1 PCI Express コンパイラ・ユーザガイド Altera Corporation 2006 年 12 月 テストベンチおよび デザイン例 ■ altpcierd_example_app — このアプリケーション・レイヤ・デザイン 例には、マスタおよびスレーブ・モジュールが含まれています。ま た、MegaCore ファンクション・コンフィギュレーション・スペース のマッピング・テーブルに基づいてリクエストのトラフィック・ク ラス (TC) をバーチャル・チャネル (VC) へマッピングするロジック も含まれています。詳しくは、3–97 ページの表 3–35 を参照してくだ さい。 ■ altpcierd_slave — スレーブ・モジュールは、PCI Express リンクから 受信したすべてのメモリ・リードおよびライト・トランザクション を扱います。トランザクションがどのベース・アドレス・レジスタ (BAR) に一致したかによって、トランザクションはターゲット・メ モリまたはコントロール・レジスタ領域のいずれかに送られます。 BAR およびアドレス・マッピングについて詳しくは、 「デザイン例の BAR/ アドレス・マップ」を参照してください。どのリード・トラン ザクションを受信しても、スレーブ・モジュールは必要なコンプリー ションを生成し、それを送信のために MegaCore ファンクションに 渡します。 ■ altpcierd_master — これは以下のファンクションを含むマスタ・モ ジュールです。 ● PCI Express リンク上で、メモリ・リードおよびライト・トラン ザクションを生成する DMA チャネル。 ● DMA チャネルによって開始されたメモリ・ライト・トランザク ションのデータのソースおよびメモリ・リード・トランザクショ ンのデータのシンクになることができるマスタ・メモリ・ブロッ ク。 ● DMA チャネルによって開始されたメモリ・ライト・トランザク ションのための代わりのデータのソースとなることができる データ・ジェネレータ・ファンクション。 DMA チャネルおよび DMA チャネルを制御するためのベース・アドレ ス・レジスタ(BAR)を含むレジスタのセットアップについて詳しくは、 次の「デザイン例の BAR/ アドレス・マップ」の項を参照してください。 Altera Corporation 2006 年 12 月 PCI Express Compiler Version 6.1 5–9 PCI Express コンパイラ・ユーザガイド シンプル DMA デザイン例 デザイン例の BAR/ アドレス・マップ このデザイン例は、受信したメモリ・トランザクションがどの BAR に 一致したかに基づいて、そのトランザクションをターゲット・メモリ・ ブロックまたはコントロール・レジスタ・ブロックのいずれかにマップ します。異なるバリエーション・ファイルとの相互運用性を最大化する ために、これらの各ブロックにマップする複数のBARがあります。表 5–2 にマッピングを示します。 表 5–2. デザイン例の BAR マップ メモリ BAR マッピング 32 ビット BAR0 32 ビット BAR1 64 ビット BAR1:0 32 K バイトのターゲット・メモリ・ブロックにマップ。下位アドレス・ビットは、読 み書きする RAM 位置を選択します。アドレス・ビット 15 以上は無視されます。 32 ビット BAR2 32 ビット BAR3 64 ビット BAR3:2 コントロール・レジスタ・ブロックへのマップ。詳しくは、表 5–3 コントロール・レ ジスタのデザイン例を参照してください。 32 ビット BAR4 32 ビット BAR5 64 ビット BAR5:4 32 K バイトのターゲット・メモリ・ブロックにマップ。下位アドレス・ビットは、読 み書きする RAM 位置を選択します。アドレス・ビット 15 以上は無視されます。 拡張 ROM BAR デザイン例では実装されておらず、動作は予測不能です。 I/O 領域 BAR (いずれか) デザイン例では実装されておらず、動作は予測不能です。 デザイン例のコントロール・レジスタ・ブロックは、主に DMA チャネ ル動作をセットアップするのに使用されます。コントロール・レジスタ・ ブロックは、DMA チャネル動作のアドレス、サイズ、および属性を設 定します。DMAチャネル動作の実行は、以下のステップで構成されます。 1. オフセット 0x00 および 0x04 にあるレジスタへの PCI Express アドレ スの書き込み 2. オフセット 0x14 にあるレジスタへのマスタ・メモリ・ブロック・ア ドレスの書き込み 3. オフセット 0x08 にあるレジスタへの要求動作の長さの書き込み 4. オフセット 0x0C にあるレジスタへの要求動作の属性(PCI Express メモリの書き込みまたは読み出し方向を含む)の書き込み。このレ ジスタに書き込むと DMA チャネル動作の実行が開始されます。 5–10 PCI Express Compiler Version 6.1 PCI Express コンパイラ・ユーザガイド Altera Corporation 2006 年 12 月 テストベンチおよび デザイン例 5. オフセット 0x0C にある DMA チャネル動作実行中ビットの読み出 し。これによりDMAチャネル動作のコンプリーションを判断します。 表 5–3. デザイン例のコントロール・レジスタ (1 / 3) レジスタのバイト・ アドレス ビット・ (BAR2、3 からの フィールド オフセット) 説明 0x00 31:0 DMA チャネル PCI Express アドレス [31:0] — これらは DMA チャネル によって作成されたメモリ・トランザクションに使用される開始アドレ スの下位 32 ビットです。 0x04 31:0 DMA チャネル PCI Express アドレス [63:32] — これらは DMA チャネル によって作成されたメモリ・トランザクションに使用される開始アドレ スの上位 32 ビットです。 0x08 31:0 DMA チャネル動作サイズ — このレジスタは実行する DMA 動作の長さ をバイト数で指定します。 0x0C すべて DMA チャネル・コントロール・レジスタ。このレジスタのいずれかの バイトに書き込むと、DMA 動作が開始されます。 31 DMA チャネル動作実行中 — これは読み出し専用ビットです。このビッ トが 1 に設定されているときは、DMA 動作を実行中です。 30:23 Reserved 22 DMA チャネルは、メモリ・ライト・トランザクションに対してインク リメント DWORD パターンを使用します。 21 DMA チャネルは、メモリ・ライト・トランザクションに対してインク リメント・バイト・パターンを使用します。 20 DMA チャネルは、メモリ・ライト・トランザクションに対してオール・ ゼロをデータとして使用します。 19 Reserved 18:16 DMA チャネル・トランザクションの最大ペイロード・サイズを指定 — これは DMA チャネルをコンフィギュレーション領域 Max Payload Size および Max Read Request Size で許容される値より小さいトランザク ションを使用するように制限するのに使用できます。トランザクショ ン・サイズは許容される最小値です。これは以下のフィールドと同じエ ンコーディングを使用します。 0x0C 000—128 バイト 001—256 バイト 010—512 バイト 011—1 K バイト 100—2 K バイト Altera Corporation 2006 年 12 月 PCI Express Compiler Version 6.1 5–11 PCI Express コンパイラ・ユーザガイド シンプル DMA デザイン例 表 5–3. デザイン例のコントロール・レジスタ (2 / 3) レジスタのバイト・ アドレス ビット・ (BAR2、3 からの フィールド オフセット) 0x0C 説明 15 この DMA チャネル動作で生成されるすべての PCI Express リクエス ト・ヘッダの TD ビットの値を設定します。TD ビットは TLP ダイジェ スト・フィールド・プレゼント・ビットです。 14 この DMA チャネル動作で生成されるすべての PCI Express リクエス ト・ヘッダの EP ビットの値を設定します。EP ビットはデータがポイ ズンドであることを示すビットです。 13 この DMA チャネル動作で生成されるすべての PCI Express リクエス ト・ヘッダの Relaxed Ordering Attribute ビットの値を設定します。 12 この DMA チャネル動作で生成されるすべての PCI Express リクエス ト・ヘッダの No Snoop Attribute ビットの値を設定します。 11 Reserved 10:8 この DMA チャネル動作で生成されるすべての PCI Express リクエス ト・ヘッダの Traffic Class フィールドの値を設定します。 7 Reserved 6:5 この DMA チャネル動作で生成されるすべての PCI Express リクエス ト・ヘッダの Packet Format フィールドの値を設定します。エンコー ディングは次のとおりです。 00b— メモリ読み出し(データなし 3DW) 01b— メモリ読み出し(データなし 4DW) 10b— メモリ書き込み(データ付き 3DW) 11b— メモリ書き込み(データ付き 4DW) 4:0 この DMA チャネル動作で生成されるすべての PCI Express リクエス ト・ヘッダの Type フィールドの値を設定します。サポートされている エンコーディングは、以下のとおりです。 00000b— メモリ読み出しまたは書き込み 5–12 PCI Express Compiler Version 6.1 PCI Express コンパイラ・ユーザガイド Altera Corporation 2006 年 12 月 テストベンチおよび デザイン例 表 5–3. デザイン例のコントロール・レジスタ (3 / 3) レジスタのバイト・ アドレス ビット・ (BAR2、3 からの フィールド オフセット) 0x10 0x14 Altera Corporation 2006 年 12 月 説明 31:15 Reserved 14:12 MSI 要求時の MSI トラフィック・クラス。このフィールドに書き込ん で、どの PCI-Express Traffic Class が MSI メモリ・ライト・パケットを 送信するかを指定します。 11:9 Reserved 8:4 MSI 要求時の MSI 番号。このフィールドに書き込んで、どの MSI を送 信するかを指定します。 3:1 Reserved 0 割り込み要求。MSI がエンドポイント (EP) デザインでイネーブルにさ れた場合、このビットに書き込むと Message Signaled Interrupt (MSI) が送信されます。そうでない場合、MSI は EP でディセーブルされ、 Legacy Interrupt メッセージが送信されます。 31:15 Reserved 14:3 DMA チャネル動作のための開始マスタ・メモリ・ブロック・アドレス。 2:0 開始マスタ・メモリ・ブロック・アドレスのビット 2:0 は、開始 PCI Express アドレスからコピーされます。 PCI Express Compiler Version 6.1 5–13 PCI Express コンパイラ・ユーザガイド チェイニング DMA デザイン例 チェイニング DMA デザイン 例 このデザイン例では、同時 DMA リードおよびライト・トランザクショ ンをサポートする 2 つの DMA モジュールを持つチェイニング DMA エ ンドポイントを作成する方法を示します。1 つの DMA モジュールはエ ンドポイント (EP) メモリからルート・コンプレックス (RC) メモリへの アップストリーム・フローでの書き込み動作を実装し、もう 1 つの DMA は RC メモリから EP メモリへのダウンストリーム・フローでの読み出 し動作を実装しています。 チェイニング DMA デザイン例のエンドポイント・デザインは、サポー トされているアルテラ・デバイス内に完全に搭載可能で、PCI Express リ ンク以外のハードウェア・インタフェースには依存しません。これによ り、ユーザはユーザ・システムの初期ハードウェア妥当性検証にこのデ ザイン例を使用できます。 MegaWizard インタフェースは、ユーザがバリエーション(バリエーショ ン名ファイルで生成される)に使用しているのと同じ言語でデザイン例 を生成します。デザイン例は Verilog HDL または VHDL のいずれかで す。チェイニング DMA デザイン例では、BAR 2 または BAR 3 が最小 256 バイトに設定されている必要があります。 生成ステップ中は、MegaCore ファンクション・バリエーションでエン ドポイント・デザイン例が作成されます。このデザイン例には、以下の 2 つの主要コンポーネントが含まれています。 ■ MegaCore ファンクション・バリエーション ■ アプリケーション・レイヤのデザイン例 シンプル DMA デザイン例では、ソフトウェア・アプリケーション(ルー ト・ポート側)は、メモリ・ブロックの転送ごとにエンドポイント DMA レジスタをプログラムする必要があります。これによって、BFM 共有メ モリとエンドポイント・バッファ・メモリ間で大量の非連続メモリを転 送するときに、性能が制限される可能性があります。チェイニング DMA デザイン例は、メモリ・ブロックごとに DMA レジスタを再プログラム することなく、大量の断片化されたメモリを転送可能なアーキテクチャ を示します。 チェイニング DMA デザイン例は、転送する各メモリ・ブロックにディ スクリプタ・テーブルを使用します。各ディスクリプタ・テーブルには、 以下の情報が含まれています。 ■ ■ ■ 転送の長さ 転送元のアドレス 転送先のアドレス 5–14 PCI Express Compiler Version 6.1 PCI Express コンパイラ・ユーザガイド Altera Corporation 2006 年 12 月 テストベンチおよび デザイン例 ■ ソフトウェア・アプリケーションとチェイニング DMA モジュール間 のハンドシェイク動作を設定するコントロール・ビット ソフトウェア・アプリケーションは、これらのディスクリプタ・テーブ ルを BFM 共有メモリに書き込みます。チェイニング DMA デザイン・エ ンジンは、DMA リードおよび / または DMA ライトのために、連続し てこれらのディスクリプタ・テーブルを収集します。転送の開始時に、 ソフトウェア・アプリケーションは DMA エンジン・レジスタにディス クリプタ・テーブル・ヘッダをプログラムします。ディスクリプタ・テー ブル・ヘッダには、記述子の総数や最初のディスクリプタ・テーブルの BFM 共有メモリ・アドレスなどの情報が含まれています。ディスクリプ タ・ヘッダが設定されると、チェイニング DMA エンジンは、DMA リー ドおよび DMA ライトの両方のために、BFM 共有メモリから継続的に記 述子をフェッチして、各記述子のためのデータ転送を実行します。 図 5-3 の左側にデザイン例のブロック図を示し、右側に外部 RC CPU を 示します。ブロック図には以下のエレメントが含まれています。 Altera Corporation 2006 年 12 月 ■ EP DMA ライトおよびリード・リクエスタ・モジュール(上記) ■ Avalon®-MMバス上でEPメモリへのアクセスを調停するEPリード/ ライト MUX ■ EP TLP (Transaction Layer Packet) トランスレータ・モジュール - 適切 なサブモジュールに対する TLP フォーマッティングおよびトラ フィック管理の実行に使用(DMA リードまたはライト・コンフィ ギュレーション)。 ■ 2 つのルート・コンプレックス(RC)メモリディスクリプタ・テーブ ル - 各 DMA モジュールに 1 つずつ。これらについては、以下の項で 説明しています。 ■ EP デザイン例への RC CPU および関連の PCI Express PHY リンク ルート・ポートおよび North/South ブリッジを使用 PCI Express Compiler Version 6.1 5–15 PCI Express コンパイラ・ユーザガイド チェイニング DMA デザイン例 図 5-3. チェイニング DMA デザイン例のシミュレーション用トップ・レベル Chaining DMA Example Root Complex Endpoint Memory Memory S S M M Read Descriptor Table Avalon-MM buses DMA Write Data DMA Read Requester Requester Descriptor Descriptor Header Register Write Descriptor Table PCI Express MegaCore Function Variation (DUT) Root Port Header Register CPU RC Slave エンドポイント・デザイン例のアプリケーション・レイヤには、以下の 機能があります。 ■ PCI Express MegaCore ファンクションへのインタフェース方法を示 す。 ■ PCI Express リンク上で、メモリ・リードおよびライト・トランザク ションを開始するのに使用可能なチェイニング DMA チャネルを提 供。 エンドポイント・デザイン例でテストベンチ・シミュレーションを使用 することができ、またアルテラ・デバイス用の完全なデザインをコンパ イルできます。バリエーション・ファイルでデザイン例を実装するのに 必要なすべてのモジュールは、使用する言語に基づき、以下のファイル の 1 つに含まれています。 < バリエーション名 >_examples/chaining_dma/ < バリエーション名 >_example_chaining.vhd または < バリエーション名 >_examples/chaining_dma/ < バリエーション名 >_example_chaining.v 5–16 PCI Express Compiler Version 6.1 PCI Express コンパイラ・ユーザガイド Altera Corporation 2006 年 12 月 テストベンチおよび デザイン例 このファイルは、ファイルの生成時にプロジェクト・ディレクトリ内に 作成されます。 以下のモジュールは、デザイン例に含まれ、サブディレクトリ < バリ エーション名 >_example/chaining_dma に置かれます。 ■ < バリエーション名 >_example_pipen1b — このモジュールは、シ ミュレーションに使用するエンドポイント・デザイン例のトップ・レ ベルです。このモジュールは、MegaWizard インタフェースによっ て作成される以下のファイルに含まれています。 < バリエーション名 >_example_chaining_top.vhd < バリエーション名 >_example_chaining_top.v このモジュールは、シミュレーション環境のための PIPE とシリア ル・イ ン タ フ ェ ー ス の 両 方 を 提 供 し ま す。こ の モ ジ ュ ー ル は、 test_out と test_in(付録 C 参照)という名前の 2 個のデバッグ・ ポートを備えています。これによりユーザは MegaCore ファンクショ ンの内部状態を監視および制御することができます。 合成の場合、トップ・レベル・モジュールは < バリエーション 名 >_example_chaining_top です。このモジュールは、モジュール < バリエーション名 >_example_pipen1b をインスタンス化して、テ スト・ポートの小さなサブセットのみが外部 I/O につながっていま す。これらのテスト・ポートはユーザ・デザインで使用できます。 ■ < バリエーション名 >.v または < バリエーション名 >.vhd — このバリ エーション名モジュールは、ユーザが設定したパラメータに基づき、 ファイル生成時に MegaWizard インタフェースによって作成されま す。シュミレーション目的で、MegaWizard インタフェースによっ て作成された IP 機能シミュレーション・モデルが使用されます。IP 機能シミュレーション・モデルは、< バリエーション名 >.vho また は < バリエーション名 >.vo ファイルのいずれかです。関連する < バ リエーション名 >.vhd または < バリエーション名 >.v ファイルは、コ ンパイル中に Quartus II ソフトウェアによって使用されます。機能 シミュレーション・モデルの生成については、 「使用法」の章を参照 してください。 チェイニング DMA デザイン例の階層は、以下のコンポーネントで構成 されています。 Altera Corporation 2006 年 12 月 ● DMA リードおよび DMA ライト・モジュール ● 各エンジンで2つのAvalon-MMバスを使用するオン・チップEP メモリ(Avalon スレーブ) PCI Express Compiler Version 6.1 5–17 PCI Express コンパイラ・ユーザガイド チェイニング DMA デザイン例 ● 性 能 監 視 用 RC ス レ ー ブ・モ ジ ュ ー ル お よ び 単 一 DWORD Mrd/Mwr 各 DMA モジュールは、以下のコンポーネントで構成されています。 ● ヘッダ・レジスタ・モジュール : RC は、DMA の初めにディスク リプタ・ヘッダ(4 DWORD)をプログラムします。 ● ディスクリプタ・モジュール : DMA エンジンは、EP メモリから チェイニング・ディスクリプタを収集します。 ● リクエスタ・モジュール : 与えられたディスクリプタに対して、 DMA エンジンは EP メモリと BFM 共有メモリの間でメモリ転 送を実行します。 以下のモジュールは、各階層レベルを反映します。 ● altpcierd_example_app_chaining — こ の モ ジ ュ ー ル は モ ジュール altpcie_dma_dt(読み出しまたは書き込み)および altpcie_rc_slave 用の PCI Express パケットを調停するトップ・ レベルです。altpcierd_example_app_chaining は、DMA リー ドおよびライト転送に使用されるエンドポイント・メモリをイ ンスタンス化します。 altpcie_rc_slave — は、ソフトウェア・アプリケーション(ルート・ポー ト)で使用され、DMA パフォーマンス・カウンタ値を取り出し、DMA エンジンをバイパスすることによって、エンドポイント・メモリに対す るシングル DWORD 読み出しおよび書き込みを実行します。デフォルト では、このモジュールはディセーブルされています。 ● altpcie_dma_dt — は、サ ブ モ ジ ュ ー ル で あ る モ ジ ュ ー ル altpcie_dma_prg_reg、altpcie_read_dma_requester、 altpcie_write_dma_requesterおよびaltpcie_dma_descriptorに よって発行された PCI Express パケットを調停します。 ● altpcie_dma_prg_reg — には、ソフトウェア・アプリケーショ ンによってプログラムされるディスクリプタ・ヘッダ・テーブ ル・レジスタが含まれています。このモジュールは、BAR 2 ま たは 3 上の tlp タイプ MWr の PCI Express TL パケットをソフ トウェア・アプリケーションから収集します。 ● altpcie_dma_descriptor —は、ルート・ポート・メモリからDMA リードまたはライト・ディスクリプタを取り出して、ディスク リプタ FIFO に保存します。このモジュールは、tlp タイプ MRd の PCI Express TL パケットを BFM 共有メモリに発行します。 5–18 PCI Express Compiler Version 6.1 PCI Express コンパイラ・ユーザガイド Altera Corporation 2006 年 12 月 テストベンチおよび デザイン例 ● altpcie_read_dma_requester — altpcie_descriptor FIFO にある 各 デ ィ ス ク リ プタのために、このモジュールは MRd PCI Express TL パケットを発行することによって、BFM 共有メモ リからエンドポイント・メモリにデータを転送します。 ● altpcie_write_dma_requester — altpcie_descriptor FIFO にあ る各ディスクリプタに対して、このモジュールは MWr PCI Express TL パケットを発行することによって、エンドポイン ト・メモリから BFM 共有メモリにデータを転送します。 デザイン例の BAR/ アドレス・マップ このデザイン例は、受信したメモリ・トランザクションがどの BAR に 一致したかに基づいて、そのトランザクションをターゲット・メモリ・ ブロックまたはコントロール・レジスタ・ブロックのいずれかにマップ します。異なるバリエーション・ファイルとの相互運用性を最大化する ために、これらの各ブロックにマップする複数のBARがあります。表 5–4 にマッピングを示します。 表 5–4. デザイン例の BAR マップ メモリ BAR マッピング 32 ビット BAR0 32 ビット BAR1 64 ビット BAR1:0 32 K バイト・ターゲット・メモリ・ブロックにマップします。 rc_slave モジュールを使用して、チェイニング DMA をバイパス します。 32 ビット BAR2 32 ビット BAR3 64 ビット BAR3:2 DMA リードおよび DMA ライト・レジスタ・ヘッダを制御する ためにマップし、最小 256 バイトを必要とします。 32 ビット BAR4 32 ビット BAR5 64 ビット BAR5:4 32 K バイト・ターゲット・メモリ・ブロックにマップします。 rc_slave モジュールを使用して、チェイニング DMA をバイパス します。 拡張 ROM BAR デザイン例では実装されておらず、動作は予測不能です。 I/O 領域 BAR (いずれか) デザイン例では実装されておらず、動作は予測不能です。 デザイン例のコントロール・レジスタ・ブロックは、主に DMA チャネ ル動作をセットアップするのに使用されます。コントロール・レジスタ・ ブロックは、DMA チャネル動作のアドレス、サイズ、および属性を設 定します。DMAチャネル動作の実行は、以下のステップで構成されます。 1. オフセット 0x00 および 0x04 にあるレジスタへの PCI Express アドレ スの書き込み Altera Corporation 2006 年 12 月 PCI Express Compiler Version 6.1 5–19 PCI Express コンパイラ・ユーザガイド チェイニング DMA デザイン例 2. オフセット 0x14 にあるレジスタへのマスタ・メモリ・ブロック・ア ドレスの書き込み 3. オフセット 0x08 にあるレジスタへの要求動作の長さの書き込み 4. オフセット 0x0C にあるレジスタへの要求動作の属性(PCI Express メモリの書き込みまたは読み出し方向を含む)の書き込み。このレ ジスタに書き込むと DMA チャネル動作の実行が開始されます。 5. オフセット 0x0C にある DMA チャネル動作実行中ビットの読み出 し。これによりDMAチャネル動作のコンプリーションを判断します。 チェイニング DMA ディスクリプタ・テーブル 各ディスクリプタ・テーブルは、ベース・アドレスにあるディスクリプ タ・ヘッダとそれに続く連続したディスクリプタ・リストで構成されま す。後続の各ディスクリプタは、最低 4 つの DWORD(PCI-Express 32 ビット・ダブル・ワード)のデータで構成され、1 回の DMA 転送に対 応しています。ソフトウェア・アプリケーションは、EP ポイント・ヘッ ダ・ディスクリプタ・レジスタにディスクリプタ・ヘッダを書き込みま す。表 5–5、5–6 およびは、このヘッダの各フィールドを記述します。 表 5–5. チェイニング DMA ディスクリプタ・ヘッダ・フォーマットのアドレス・マップ 31 16 15 0 コントロール・フィールド(表 5–6 を参照) サイズ BDT 上位 DWORD BDT 下位 DWORD Reserved RCLAST 表 5–6. チェイニング DMA ディスクリプタ・ヘッダ・フォーマット(コントロール・フィールド) 31 Reserved 30 28 27 MSI トラフィック・クラス Reserved 25 24 MSI 番号 20 17 16 Reserved EPLAST_ENA MSI 19 方向 5–20 PCI Express Compiler Version 6.1 PCI Express コンパイラ・ユーザガイド 18 Altera Corporation 2006 年 12 月 テストベンチおよび デザイン例 表 5–7. チェイニング DMA ディスクリプタ・ヘッダ・フィールド (1 / 2) EP RC ディスクリプタ・ ヘッダ・フィールド アクセス アクセス EP アドレス 説明 サイズ R R/W 0x00(DMA) 0x10(DMA) ディスクリプタ・テーブルに記述子の番号 n を指定します。 方向 R R/W 0x00(DMA) 0x10(DMA) ディスクリプタ・テーブルのマッピング・ルー ルに DMA モジュールを指定します。このビッ トがセットされていると、ディスクリプタ・ テーブルは DMA ライト・ロジックを参照し ます。このビットがクリアされていると、ディ スクリプタ・テーブルは DMA リード・ロジッ クを参照します。 メッセージ通知割り込 R み (MSI) R/W 0x00(DMA) 0x10(DMA) すべてのディスクリプタに対する割り込みを イネーブルにします。このビットがセットさ れていると、EP DMA モジュールは MSI を使 用して RC に割り込みを発行します。ユーザ・ ソフトウェア・アプリケーションは、この割 り込みを使用して DMA 転送ステータスを監 視することができます。 MSI 番号 R R/W 0x00(DMA) 0x10(DMA) RC が EP の MSI 機能を読み出すと、これらの レジスタ・ビットは PCI Express バックエン ド MSI 信号 app_msi_num [4:0] にマップし ます。 MSI が 2 つ以上あり、すべての MSI が使用可 能な場合、デフォルトのマッピングは以下の ようになります。 MSI 0 = リード MSI 1 = ライト MSI トラフィック・ クラス R R/W 0x00(DMA) 0x10(DMA) RC アプリケーション・ソフトウェアが EP の MSI 機能を読み出すと、この値はデフォルト により MSI トラフィック・クラス 0 に割り当 てられます。これらのレジスタ・ビットは、 PCI Express バ ック エ ンド MSI 信 号 app_msi_tc [2:0] にマップします。 BDT 上位 DWORD R R/W 0x04(DMA) 0x14(DMA) ベース・アドレスのディスクリプタ・テーブ ル・アドレス BDT 下位 DWORD R R/W 0x08(DMA) 0x18(DMA) ベース・アドレスのディスクリプタ・テーブ ル・アドレス Altera Corporation 2006 年 12 月 PCI Express Compiler Version 6.1 5–21 PCI Express コンパイラ・ユーザガイド チェイニング DMA デザイン例 表 5–7. チェイニング DMA ディスクリプタ・ヘッダ・フィールド (2 / 2) EP RC ディスクリプタ・ ヘッダ・フィールド アクセス アクセス EP アドレス 説明 EPLAST_ENA R R/W 0x00(DMA) 0x10(DMA) すべてのディスクリプタで EPLAST ロジック をイネーブルにします。すべてのディスクリ プタでメモリ・ポーリングをイネーブルにし ます。このビットがセットされると、EP DMA モジュールは BFM 共有メモリへのメモリ・ラ イトを発行し、完了した DMA ディスクリプ タの数をレポートします。ソフトウェア・ア プリケーションは、このメモリ位置をポーリ ングして、DMA 転送ステータスを監視する ことができます。 RCLAST R R/W 0x0C(DMA) 0x1C(DMA) RCLAST は転送可能なディスクリプタの数を 反映します。ソフトウェア・アプリケーショ ンは、システム・レベルのメモリ・スケジュー リング制約に基づいて、このレジスタを周期 的に更新できます。 ディスクリプタ・ヘッダに続くディスクリプタ・フィールドのフォーマッ トについては、表 5–8 を参照してください。各記述子は 1 回の DMA 転 送に関するハードウェア情報を提供します。表 5–10 に、各ディスクリプ タ・フィールドを説明しています。 表 5–8、5–9 は、BFM 共有メモリに置かれているディスクリプタ・テー ブルのリストに関連しています。 表 5–8. チェイニング DMA ディスクリプタ・フォーマット・マップ 31 22 21 Reserved 16 15 コントロール・フィールド (表 5–9 を参照) 0 DMA の長さ EP アドレス RC アドレス上位 DWORD RC アドレス下位 DWORD 表 5–9. チェイニング DMA ディスクリプタ・フォーマット・マップ(コントロール・フィールド) 21 Reserved 20 Reserved 19 Reserved 18 17 MSI 5–22 PCI Express Compiler Version 6.1 PCI Express コンパイラ・ユーザガイド 16 EPLAST_ENA Altera Corporation 2006 年 12 月 テストベンチおよび デザイン例 表 5–10. チェイニング DMA ディスクリプタ・フィールド EP RC ディスクリプタ・ フィールド アクセス アクセス 説明 EP アドレス R R/W EP サイトでのメモリ転送のベース・アドレスを指定する 32 ビッ ト・フィールド。 RC アドレス 上位 DWORD R R/W RC サイトでのメモリ転送の上位ベース・アドレスを指定しま す。 RC アドレス 下位 DWORD R R/W RC サイトでのメモリ転送の下位ベース・アドレスを指定しま す。 DMA の長さ R R/W 転送する DMA バイト数を指定します。 EPLAST_ENA R R/W このビットはディスクリプタ・ヘッダの EPLAST_ENA ビット と OR されます。EPLAST_ENA がセットされると、EP DMA モジュールは EPLast RC メモリ・レジスタをフォーム 0 – n で 最後に完了したディスクリプタの値で更新します。 MSI R R/W このビットはディスクリプタ・ヘッダの MSI ビットと OR され ます。このビットがセットされると、EP モジュールは各チャネ ルの DMA 転送の終了時に割り込み完了メッセージを送信しま す。 テスト・ ドライバ・ モジュール この項では、デザイン例のテストに使用されるテスト・ドライバ・モ ジュールについて説明します。 ■ 「シンプル DMA デザイン例用の BFM テスト・ドライバ・モジュール」 ■ 「チェイニング DMA デザイン例用の BFM テスト・ドライバ・モジュー ル」 シンプル DMA デザイン例用の BFM テスト・ドライバ・モ ジュール 生成ステップ中にMega Wizardインタフェースによって生成されるBFM ドライバ・モジュールは、シンプル DMA エンドポイント・デザイン例 をテストするためにコンフィギュレーションされます。BFM ドライバ・ モジュールは、エンドポイント・コンフィギュレーション・スペース・ レジスタをコンフィギュレーションし、エンドポイント・デザイン例の ターゲット・メモリおよび DMA チャネルをテストします。 このファイルのVHDLバージョンについては、以下を参照してください。 < バリエーション名 >_example_simple_dma/altpcietb_bfm_driver.vhd または Altera Corporation 2006 年 12 月 PCI Express Compiler Version 6.1 5–23 PCI Express コンパイラ・ユーザガイド テスト・ ドライバ・モジュール Verilog HDL ファイルについては、以下を参照してください。 < バリエーション名 >_example_simple_dma/altpcietb_bfm_driver.v BFM テスト・ドライバ・モジュールは、以下のステップを順に実行しま す。 1. ルート・ポートおよびエンドポイント・コンフィギュレーション・ス ペースのコンフィギュレーションは、BFM テスト・ドライバ・モ ジ ュ ー ル が、altpcierd_bfm_configure の 一 部 で あ る ebfm_cfg_rp_epプロシージャを呼び出すことによって実行されま す。 2. エンドポイント・デザイン例のターゲット・メモリ領域へのアクセ スに使用するのに適した BAR を検索します。ターゲット・メモリ・ テストを実行するには、BAR 0、1、4、または 5 の 1 つは最低 4KB のメモリ BAR でなければなりません。altpcietb_bfm_driver に含ま れる find_mem_bar プロシージャがこれを行います。 3. 前のステップで、適した BAR が見つかった場合、altpcietb_bfm_driver の target_mem_test プロシージャは、エンドポイント・デザイン 例のターゲット・メモリ領域をテストします。このプロシージャは、 以下のサブ・ステップを実行します。 a. BFM 共有メモリで 4,096 バイトのデータ・パターンをセット アップします。これは altpcietb_bfm_shmem の shemem_fill プロシージャを呼び出すことによって行われます。 b. これらの 4,096 バイトをエンドポイント・デザイン例のターゲッ ト・メモリに書き込みます。これは altpcietb_bfm_rdwr の ebfm_barwr プロシージャを呼び出すことによって行われま す。 c. ターゲット・メモリから同じ 4,096 バイトを BFM 共有メモリ内 の別の位置に読み込みます。これは altpcietb_bfm_rdwr の ebfm_barrd_wait プロシージャを呼び出すことによって行わ れます。このプロシージャは、読み出しに対するコンプリーショ ンが受信されるまでブロック(待機)します。 d. ターゲット・メモリから読み戻したデータをチェックして、最 初 に 書 き 込 ん だ 内 容 と 同 じ か ど う か 確 認 し ま す。こ れ は、 altpcietb_bfm_shmem の shmem_chk_ok プロシージャを呼び 出すことによって行われます。 5–24 PCI Express Compiler Version 6.1 PCI Express コンパイラ・ユーザガイド Altera Corporation 2006 年 12 月 テストベンチおよび デザイン例 4. エンドポイント・デザイン例のコントロール・レジスタ領域へのア クセスに適した BAR を検索します。DMA チャネル・テストを実行 するには、BAR 2 または 3 の 1 つが最低 128 バイトのメモリ BAR で なければなりません。altpcietb_bfm_driver の find_mem_bar プロ シージャがこれを行います。 5. 前のステップで適した BAR が見つかった場合、エンドポイント・デザ イン例のDMAチャネルはaltpcietb_bfm_driverのtarget_dma_test プロシージャでテストされます。このプロシージャは、以下のサブ・ ステップを実行します。 Altera Corporation 2006 年 12 月 a. BFM 共有メモリで 4,096 バイトのデータ・パターンをセット アップします。これは altpcietb_bfm_shmem の shemem_fill プロシージャを呼び出すことによって行われます。 b. DMA チャネル・コントロール・レジスタをセットアップし、 DMA チャネルを開始して BFM 共有メモリからデザイン例のマ スタ・メモリにデータを転送します。これは altpcietb_bfm_rdwr の ebfm_barwr_imm プロシージャを連続して呼び出すことに よって行われます。これらの ebfm_barwr_imm 呼び出しの最 後で、DMA チャネルを開始します。 c. コントロール・レジスタ領域でDMAチャネルの実行中ビットが クリアされるまでチェックして、DMA チャネルが終了するのを 待ちます。これは、altpcietb_bfm_rdwr の ebfm_barrd_wait プロシージャの呼び出し周辺のループによって行われます。 d. DMA チャネル・コントロール・レジスタをセットアップし、 DMA チャネルを開始してデータをデザイン例のマスタ・メモリ から BFM 共有メモリに転送します。 これは altpcietb_bfm_rdwr の ebfm_barwr_imm プロシージャを連続して呼び出すことに よって行われます。これらの ebfm_barwr_imm 呼び出しの最 後で、DMA チャネルを開始します。 e. コントロール・レジスタ領域でDMAチャネルの実行中ビットが クリアされるまでチェックして、DMA チャネルが終了するのを 待ちます。これは、altpcietb_bfm_rdwr の ebfm_barrd_wait プロシージャの呼び出し周辺のループによって行われます。 f. DMAチャネルによってマスタ・メモリから転送されるデータを チェックし、それが最初に書き込まれた内容と同じであること を確認します。これは altpcietb_bfm_shmemの shmem_chk_ok プロシージャの呼び出しによって行われます。 PCI Express Compiler Version 6.1 5–25 PCI Express コンパイラ・ユーザガイド テスト・ ドライバ・モジュール 6. DMA チャネル・テストに適した BAR が見つかった場合、BFM はレ ガシー割り込みテストを試みます。 a. エンドポイントがレガシー割り込みをサポートしているかどう かをチェックして確認します。サポートしている場合はテスト が続行され、そうでない場合、テストは終了します。 b. MSI メッセージ・コントロール・レジスタをチェックして、MSI がディセーブルされているかどうかを確認します。MSI がイ ネーブルされている場合、テストは MSI をディセーブルにしま す。 c. ウォッチドッグ・タイマを設定し、エンドポイント・レジスタ に書き込んでレガシー割り込みをトリガします。 d. レガシー割り込みを受け取るまで、またはウォッチドッグ・タ イマが満了するまで待機します。 e. テストの結果をレポートし、MSI メッセージ・コントロール・ レジスタの値を復元して、EP の割り込みビットをクリアしま す。 7. レガシー割り込みテストに適した BAR が見つかった場合、BFM は MSI の割り込みテストを試みます。 a. MSI 対応レジスタをチェックして、サポートされている MSI レ ジスタ数を確認します。 b. MSI 対応構造を EP に付与されるターゲット MSI アドレス、デー タ、およびメッセージ数で初期化します。 c. エンドポイントの MSI をトリガし、EP からの割り込みのため の BFM 共有メモリをポーリングして、各 MSI 番号をチェック します。ここで、テストは EP がサポートするすべての MSI を ループします。テストは次に、ウォッチドッグ・タイマが満了 する前に各 MSI が受信されていること、受信された MSI デー タが正しいことをチェックします。 d. MSI コントロール・レジスタをテスト前の状態に復元し、テス トの結果をレポートします。 e. altpcieb_bfm_log の ebfm_log_stop_sim プロシージャの呼 び出しによってシミュレーションが停止します。 5–26 PCI Express Compiler Version 6.1 PCI Express コンパイラ・ユーザガイド Altera Corporation 2006 年 12 月 テストベンチおよび デザイン例 チェイニング DMA デザイン例用の BFM テスト・ドライ バ・モジュール 生成ステップ中にMega Wizardインタフェースによって生成されるBFM ドライバ・モジュールは、チェイン DMA エンドポイント・デザイン例 をテストするためにコンフィギュレーションされます。BFM ドライバ・ モジュールは、エンドポイント・コンフィギュレーション・スペース・ レジスタをコンフィギュレーションし、エンドポイント・チェイニング DMA チャネル例をテストします。 このファイルのVHDLバージョンについては、以下を参照してください。 < バリエーション名 >_example_chaining_dma/testbench/ < バリエーション名 >_altpcietb_bfm_driver_chaining.vhd Verilog HDL ファイルについては、以下を参照してください。 < バリエーション名 >_example_chaining_dma/testbench/ < バリエーション名 >_altpcietb_bfm_driver_chaining.v BFM テスト・ドライバ・モジュールは、以下のステップを順に実行しま す。 1. ルート・ポートおよびエンドポイント・コンフィギュレーション・ス ペースをコンフィギュレーションします。これは BFM テスト・ドラ イ バ・モ ジ ュ ー ル が、altpcierd_bfm_configure の 一 部 で あ る ebfm_cfg_rp_ep プロシージャを呼び出して行います。 2. エンドポイント・デザイン例のコントロール・レジスタ領域へのアク セスに適した BAR を検索します。DMA チャネル・テストを実行す るには、BAR 2 または 3 の 1 つは最低 128 バイトのメモリ BAR でな ければなりません。 altpcietb_bfm_driver_chaining のfind_mem_bar プロシージャがこれを行います。 3. 前のステップで適した BAR が見つかった場合、エンドポイント・ デ ザ イ ン 例 の チ ェ イ ニ ン グ DMA は altpcietb_bfm_driver の chained_dma_test プロシージャでテストされます。このプロシー ジャは、方向引数の値に基づいて、それぞれ DMA ライトおよび DMA リードに対する dma_wr_test および dma_rd_test プロシージャ を呼び出すラッパです。 DMA ライト・サイクル DMA ライトに使用される dma_wr_test プロシージャでは、以下のス テップを使用しています。 Altera Corporation 2006 年 12 月 PCI Express Compiler Version 6.1 5–27 PCI Express コンパイラ・ユーザガイド テスト・ ドライバ・モジュール 1. BFM 共有メモリのコンフィギュレーション。これは、以下に示す 内容を持つ 3 つのディスクリプタ・テーブルによって行われます。 表 5–11. ライト・ディスクリプタ 0 ライト・ディスクリプタ 0 BFM 共有メモリ内の オフセット 値 説明 DW0 0x810 64 DW1 0x814 0 エンドポイント・アドレス値 DW2 0x818 0 BFM 共有メモリの上位アドレス値 DW3 0x81c 0x1800 BFM 共有メモリの下位アドレス値 データ 0x1800 0xAAA0_FFFF から アドレス範囲 0x01800Æ0x1840 の BFM 共有メモリ のインクリメント のデータ内容 DWORD およびコントロール・ビットの転送長 (表 5–7 で説明) 表 5–12. ライト・ディスクリプタ 1 ライト・ディスクリプタ 1 BFM 共有メモリ内の オフセット 値 説明 DW0 0x820 32 DWORD およびコントロール・ビットの転送長(5–23 ページの表 5–10 で説明) DW1 0x824 0 エンドポイント・アドレス値 DW2 0x828 0 BFM 共有メモリの上位アドレス値 DW3 0x82c 0x2800 BFM 共有メモリの下位アドレス値 データ 0x02800 0xBBB0_FFFF から アドレス範囲 0x02800Æ0x2820 の BFM 共有メモリの のインクリメント データ内容 5–28 PCI Express Compiler Version 6.1 PCI Express コンパイラ・ユーザガイド Altera Corporation 2006 年 12 月 テストベンチおよび デザイン例 表 5–13. ライト・ディスクリプタ 2 ライト・ディスクリプタ 2 BFM 共有メモリ内の オフセット 値 説明 DW0 0x830 96 DW1 0x834 0 エンドポイント・アドレス値 DW2 0x838 0 BFM 共有メモリの上位アドレス値 DW3 0x83c 0x04800 BFM 共有メモリの下位アドレス値 データ 0x04800 0xCCC0_FFFFから アドレス範囲 0x04800Æ0x4860 の BFM 共有メモリ のインクリメント のデータ内容 DWORD およびコントロール・ビットの転送長 (表 5–7 で説明) 2. チェイニング DMA ディスクリプタ・ヘッダをセットアップし、EP メ モリから BFM 共有メモリへのデータ転送を開始します。これは、以 下の 4 つの DWORD を DMA ライト・レジスタ・モジュールに書き 込むdma_set_headerプロシージャの呼び出しによって行われます。 表 5–14. DMA ライトのディスクリプタ・ヘッダ DMA ライトのディスクリプタ・ヘッダ EP メモリ内の オフセット 値 説明 DW0 0x0 3 DW1 0x4 0 BFM 共有メモリの上位アドレス値 DW2 0x8 0x800 BFM 共有メモリの下位アドレス値 DW3 0xc 2 最後に書き込まれたディスクリプタ ディスクリプタおよびコントロール・ビットの数(5–20ページの表 5–5 で説明) ディスクリプタ・ヘッダの最後の DWARD(DW3)を書き込んだ後、 DMA ライトはそれに続く 3 つのデータ転送を開始します。 3. DMA ライト・エンジンが完了した DMA 数の値を更新する BFM 共 有メモリ位置 0x80c をポーリングすることによって、DMA ライトが 完了するのを待機します。これは rcmem_poll プロシージャの呼び 出しによって行われます。 Altera Corporation 2006 年 12 月 PCI Express Compiler Version 6.1 5–29 PCI Express コンパイラ・ユーザガイド テスト・ ドライバ・モジュール DMA リード・サイクル DMA リードに使用される dma_rd_test プロシージャは、以下の 3 つ のステップを使用します。 1. BFM 共有メモリのコンフィギュレーション。これは、以下に示す 内 容 の 3 つ の デ ィ ス ク リ プ タ・テ ー ブ ル を 設 定 す る dma_set_rd_desc_dataプロシージャの呼び出しによって行われ ます。 2. チェイニング DMA ディスクリプタ・ヘッダをセットアップし、EP メモリから BFM 共有メモリへのデータ転送を開始します。これは、 以下の 4 つの DWORD を DMA ライト・レジスタ・モジュールに書 き込むdma_set_headerプロシージャの呼び出しによって行われま す。 ディスクリプタ・ヘッダの最後の DWARD(DW3)を書き込んだ後、 DMA ライトはそれに続く 3 つのデータ転送を開始します。 3. DMA ライト・エンジンが完了した DMA 数の値を更新する BFM 共 有メモリ位置 0x90c をポーリングすることによって、DMA ライトが 完了するのを待機します。これは rcmem_poll プロシージャの呼び 出しによって行われます。 表 5–15. リード・ディスクリプタ 0 a. リード・ディスクリプタ 0 BFM 共有メモリ内の オフセット 値 説明 DW0 0x910 64 DW1 0x914 0 エンドポイント・アドレス値 DW2 0x918 0 BFM 共有メモリの上位アドレス値 DW3 0x91c 0x8900 BFM 共有メモリの下位アドレス値 データ 0x8900 0xAAA0_FFFFから アドレス範囲 0x8900Æ0x8940 の BFM 共有メモリ のインクリメント のデータ内容 DWORD およびコントロール・ビットの転送長 (5–23 ページの表 5–10 で説明) 5–30 PCI Express Compiler Version 6.1 PCI Express コンパイラ・ユーザガイド Altera Corporation 2006 年 12 月 テストベンチおよび デザイン例 表 5–16. リード・ディスクリプタ 1 リード・ディスクリプタ 1 BFM 共有メモリ内の オフセット 値 説明 DW0 0x920 32 DW1 0x924 0 エンドポイント・アドレス値 DWORD およびコントロール・ビットの転送長 (5–23 ページの表 5–10 で説明) DW2 0x928 10 BFM 共有メモリの上位アドレス値 DW3 0x92c 0x10900 BFM 共有メモリの下位アドレス値 データ 0x10900 0xBBB0_FFFF から アドレス範囲 0x10900Æ0x10920 の BFM 共有メモ のインクリメント リのデータ内容 表 5–17. リード・ディスクリプタ 2 リード・ディスクリプタ 2 BFM 共有メモリ内の オフセット (BRC、ベース BFM 共有 メモリ・アドレス) 値 説明 DW0 0x930 96 DW1 0x934 0 エンドポイント・アドレス値 DW2 0x938 0 BFM 共有メモリの上位アドレス値 DW3 0x93c 0x20900 BFM 共有メモリの下位アドレス値 データ 0x20900 0xCCC0_FFFFから アドレス範囲 0x20900Æ0x20960 の BFM 共有メモ のインクリメント リのデータ内容 Altera Corporation 2006 年 12 月 DWORD およびコントロール・ビットの転送長 (5–23 ページの表 5–10 で説明) PCI Express Compiler Version 6.1 5–31 PCI Express コンパイラ・ユーザガイド ルート・ ポート BFM ルート・ ポート BFM 基本ルート・ポート BFM は、PCI Express リンクに発行されるトランザ クション・リクエストのための VHDL プロシージャまたは Verilog HDL タスクに基づくインタフェースを提供します。また、ルート・ポート BFMもPCI Expressリンクから受け取ったリクエストも処理します。ルー ト・ポート BFM のハイ・レベル・ビューについては、図 5-4 を参照して ください。 図 5-4. ルート・ポート BFM のハイ・レベル・ビュー Root Port BFM BFM Shared Memory (altpcietb_bfm_shmem) BFM Read/Write Shared Request Procedures (altpcietb_bfm_rdwr) BFM Configuration Procedures (altpcietb_bfm_configure) BFM Log Interface (altpcietb_bfm_log) BFM Request Interface (altpcietb_bfm_req_intf) Root Port RTL Model (altpcietb_bfm_rp_top_x8_pipen1b) VC0 Interface (altpcietb_bfm_vcintf) IP Functional Simulation Model of the Root Port Interface (altpcietb_bfm_rpvar_64b_x8_pipen1b) VC1 Interface (altpcietb_bfm_vcintf) VC2 Interface (altpcietb_bfm_vcintf) VC3 Interface (altpcietb_bfm_vcintf) ルート・ポート BFM は、以下の主要なコンポーネントで構成されてい ます。 ■ BFM 共有メモリ(altpcietb_bfm_shmem VHDL パッケージまたは Verilog HDL インクルード・ファイル)— ルート・ポート BFM は、 以下の用途に使用される BFM メモリに基づきます。 ● PCI Express リンクからのすべてのコンプリーションで受信し たデータの保存 ● PCI Express リンクから受け取ったすべてのライト・トランザク ションで受信したデータの保存 5–32 PCI Express Compiler Version 6.1 PCI Express コンパイラ・ユーザガイド Altera Corporation 2006 年 12 月 テストベンチおよび デザイン例 ● PCI Express リンクから受け取ったリード・トランザクションに 応答するすべてのコンプリーションに対するデータの供給。 ● PCI Express リンクに発行される大部分のライト・トランザク ションに対するデータの供給。唯一の例外は、呼び出しで渡さ れるライト・データの 4 バイト・フィールドを持つ特定の BFM ライト・プロシージャです。 ● エンドポイントの BAR にプログラムされたサイズと値を含む データ構造の保存 プロシージャ・セットは読み出し、書き込み、埋め込みに提供され、 BFM ドライバからの共有メモリをチェックします。これらのプロ シージャについて詳しくは、5–52 ページの「BFM 共有メモリ・アク セス・プロシージャ」を参照してください。 ■ BFM リ ー ド / ラ イ ト 要 求 プ ロ シ ー ジ ャ / フ ァ ン ク シ ョ ン (altpcietb_bfm_rdwr VHDL パッケージまたは Verilog HDL インク ルード・ファイル)— このパッケージは PCI Express の読み出しおよ び書き込みリクエストを呼び出す基本的な BFM プロシージャを提供 します。これらのプロシージャについて詳しくは、5–48 ページの 「BFM リード / ライト要求プロシージャ」を参照してください。 ■ BFM コンフィギュレーション・プロシージャ / ファンクション (altpcietb_bfm_configure VHDL パッケージまたは Verilog HDL イ ンクルード・ファイル)— これらのプロシージャおよびファンクショ ンは、PCI Express リンクおよびエンドポイント・コンフィギュレー ション・スペース・レジスタのコンフィギュレーションを要求する BFM 呼び出しを提供します。これらのプロシージャおよびファンク ションについて詳しくは、5–50 ページの「BFM コンフィギュレー ション・プロシージャ」を参照してください。 ■ Altera Corporation 2006 年 12 月 BFM ログ・インタフェース(altpcietb_bfm_log VHDL パッケージま たは Verilog HDL インクルード・ファイル)— BFM ログ・インタ フェースは一般的な書式のメッセージを、シミュレータ標準出力お よびログ・ファイル(オプション)に書き込むルーチンを提供しま す。また、エラー時にシミュレーションを停止するコントロールも 提供します。これらのプロシージャについて詳しくは、5–56 ページ の「BFM ログおよびメッセージ・プロシージャ」を参照してください。 PCI Express Compiler Version 6.1 5–33 PCI Express コンパイラ・ユーザガイド ルート・ ポート BFM ■ BFM リクエスト・インタフェース(altpcietb_bfm_req_intf VHDL パッケージまたは Verilog HDL インクルード・ファイル)— このイ ン タ フ ェ ー ス は、altpcietb_bfm_rdwr プ ロ シ ー ジ ャ と altpcietb_bfm_configureプロシージャとルート・ポートRTLモ デルの間にロー・レベル・インタフェースを提供します。このイン タフェースは、エンドポイントの BAR レジスタにプログラムされた サイズと値を保有する書き込み保護されたデータ構造、および内部 BFM 管理に使用されるその他のクリティカル・データを保存します。 エンドポイント・アプリケーションをテストするためには、これら のファイルを直接アクセスする必要はありません。 ■ ル ー ト・ポ ー ト RTL モ デ ル(altpcietb_bfm_rp_top_x8_pipen1b VHDL エントリまたは Verilog HDL モジュール)— これは、モデル の RTL (Register Transfer Level) 部分です。上記のモジュールからの 要求を取り込み、それらを RTL レベルで処理して、PCI Express リ ンクにインタフェースします。エンドポイント・アプリケーション をテストするためには、このモジュールに直接アクセスして適合さ せる必要はありません。 ■ VC0:3 インタフェース(altpcietb_bfm_vc_intf)— これらのインタ フェース・モジュールは、ルート・ポート・インタフェース・モデ ル上で VC 固有のインタフェースを処理します。BFM リクエスト・ インタフェースからのリクエストを取り込み、必要な PCI Express ト ランザクションを生成します。これらは PCI Express リンクから受け 取ったコンプリーションを処理し、リクエストが完了したら BFM リ クエスト・インタフェースに通知します。さらに、PCI Express リン クから受け取ったすべてのリクエストを処理し、要求されるコンプ リーションが生成される前に、共有メモリからのデータを保存また はフェッチします。 ■ ルート・ポート・インタフェース・モデル(altpcietb_bfm_rpvar_64b_ x8_pipen1b)— これはルート・ポート動作をサポートするため特別 に変更された MegaCore ファンクションのバージョンの IP 機能シ ミュレーション・モデルです。このモデルのアプリケーション・レ イヤ・インタフェースは、エンドポイント・モードに使用される MegaCore ファンクションのアプリケーション・レイヤ・インタ フェースと非常によく似ています。 BFM 用のすべてのファイルは、MegaWizard インタフェースによって testbench/< バリエーション名 > ディレクトリに生成されます。 5–34 PCI Express Compiler Version 6.1 PCI Express コンパイラ・ユーザガイド Altera Corporation 2006 年 12 月 テストベンチおよび デザイン例 BFM メモリ・マップ BFM 共有メモリは 2MB のサイズにコンフィギュレーションされます。 BFM 共有メモリは、I/O 領域の最初の 2MB にマップされており、また 最初の 2MB のメモリ領域にもなっています。エンドポイント・アプリ ケーションがこの範囲で I/O またはメモリ・トランザクションを生成す ると、BFM は共有メモリを読み出しまたは書き込みます。 コンフィギュレーション・スペース・バスおよびデバイス の番号付与 ルート・ポート・インタフェースは、内部バス番号 0 上でデバイス番号 0 が割り当てられています。 エンドポイントには、ebfm_cfg_rp_ep プロシージャの呼び出しを通 じて、任意のバス番号(0 以上)上に任意のデバイス番号を割り当てる ことができます。指定されたバス番号は、ルート・ポート・コンフィギュ レーション領域でセカンダリ・バスになるように割り当てられます。 ルート・ポートおよびエンド・ポイントのコンフィギュレー ション エンドポイントにトランザクションを発行する前に、ルート・ポートお よびエンドポイント・コンフィギュレーション・スペース・レジスタを コンフィギュレーションしなければなりません。これらのレジスタをコ ンフィギュレーションするには、altpcierd_bfm_configure の一部であ る ebfm_cfg_rp_ep プロシージャを呼び出します。 コンフィギュレーション・プロシージャおよびファンクションは、 VHDL パッケージ・ファイル altpcierd_bfm_configure.vhd、ま たは altpcierd_bfm_configure_common.v を使用する Verilog HDL インクルード・ファイル altpcierd_bfm_configure.v にあり ます。 ebfm_cfg_rp_ep は、以下のステップを実行して、コンフィギュレー ション領域を初期化します。 1. ルート・ポート・コンフィギュレーション領域を設定して、ルート・ ポートがPCI Expressリンク上でトランザクションを送信できるよう にします。 2. ルート・ポートおよびエンドポイント PCI Express 対応デバイス・コ ントロール・レジスタを、以下のように設定します。 Altera Corporation 2006 年 12 月 PCI Express Compiler Version 6.1 5–35 PCI Express コンパイラ・ユーザガイド ルート・ ポート BFM a. ル ー ト・ポ ー ト お よ び エ ン ド ポ イ ン ト の 両 方 で、Error Reporting をディセーブルにします。BFM にはエラー処理機 能はありません。 b. ル ー ト・ポ ー トおよびエン ドポイントの両方で、Relaxed Ordering をイネーブルにします。 c. エンドポイントで可能な場合は、エンドポイントの Extended Tags をイネーブルにします。 d. ル ー ト・ポ ー ト と エ ン ド ポ イ ン ト の 両 方 で、Phantom Functions、Aux Power PM、および No Snoop をディセーブル にします。 e. ルート・ポートは最大ペイロード・サイズをサポートしている ため、Max Payload Size に、エンドポイントがサポートする 最大値を設定します。 f. エンドポイント・デザイン例は、読み出しを必要なだけ多くの コンプリーション数に分割することをサポートしているため、 ルート・ポート Max Read Request Size を 4KB に設定します。 g. ルート・ポートは読み出しリクエストを複数のコンプリーショ ンに分割することをサポートしていないため、エンドポイント Max Read Request Size を Max Payload Size に設定しま す。 3. すべてのエンドポイント BAR レジスタに値を割り当てます。BAR ア ドレスは、以下に概説するアルゴリズムによって割り当てられます。 a. I/O BAR には、I/O 領域内の BFM 共有メモリの終了アドレス のすぐ上から開始し、必要に応じて 32 ビット I/O 領域全体に わたって継続する、最小値から最大値までのアドレスが割り当 てられます。 b. 32 ビット・プリフェッチ不能メモリ BAR には、メモリ領域内 の BFM 共有メモリの終了アドレスのすぐ上から開始し、必要 に応じて 32 ビット・メモリ領域全体にわたって継続する、最小 値から最大値までのアドレスが割り当てられます。 c. 32 ビットのプリフェッチ可能なメモリ BAR および 64 ビットの プ リ フ ェ ッ チ 可 能 な メ モ リ BAR の 割 り 当 て は、 ebfm_cfg_rp_ep への addr_map_4GB_limit 入力の値に基 づきます。addr_map_4GB_limit のデフォルト値は、0 です。 5–36 PCI Express Compiler Version 6.1 PCI Express コンパイラ・ユーザガイド Altera Corporation 2006 年 12 月 テストベンチおよび デザイン例 ebfm_cfg_rp_epへのaddr_map_4GB_limit入力が0に設定 されている場合、32 ビットのプリフェッチ可能なメモリ BAR には、32 ビット・メモリ領域の最大アドレスから開始し、必要 に応じて最後の 32 ビットのプリフェッチ不能な BAR の終了ア ドレスまで継続する、最大値から最小値までのアドレスが割り 当てられます。 ただし、addr_map_4GB_limit 入力が 1 に設定されている場 合、アドレス・マップは 4GB に制限され、32 ビットおよび 64 ビットのプリフェッチ可能なメモリ BAR には、32 ビット・メ モリ領域の最大アドレスから開始し、必要に応じて最後の 32 ビットのプリフェッチ不能の BAR の最小アドレスまで継続す る、最大値から最小値までのアドレスが割り当てられます。 d. addr_map_4GB_limit の ebfm_cfg_rp_ep への入力が 0 に 設定されている場合、64 ビットのプリフェッチ可能なメモリ BAR には、4GB のアドレスから開始し、64 ビットのメモリ領 域全体にわたって、4GB の制限より上位アドレス方向にメモリ を割り当てながら、最小値から最大値までのアドレスが割り当 てられます。 ebfm_cfg_rp_epへのaddr_map_4GB_limit入力が1に設定 されている場合、32 ビットおよび 64 ビットのプリフェッチ可 能なメモリ BAR には、4GB のアドレスから開始し、4GB アド レスの下位方向に最後の 32 ビットのプリフェッチ不能な BAR の終了アドレスまで、必要に応じて最大値から最小値までのア ドレスが割り当てられます。 上記のアルゴリズムでは、いくつかの非常に大きな(1GB 以上)の 32 ビット BAR があるときには、常にすべての BAR に値を割り当て られるとは限りません。すべての BAR にアドレスを割り当てること は可能ですが、これらのアドレスを効果的に割り当てるには、より 複雑なアルゴリズムが必要です。ただし、このようなコンフィギュ レーションが実際のシステムで役立つ可能性はほとんどありませ ん。プロシージャで BAR を割り当てることができない場合、エラー・ メッセージが表示され、シミュレーションが停止します。 4. 上記の BAR 割り当てに基づき、有効な BAR アドレス範囲をカバー するためにルート・ポート・コンフィギュレーション・スペース・ア ドレス・ウィンドウが割り当てられます。 5. エンドポイント PCI コントロール・レジスタは、マスタ・トランザ クション、メモリ・アドレス・デコーディング、および I/O アドレ ス・デコーディングをイネーブルにするよう設定されます。 Altera Corporation 2006 年 12 月 PCI Express Compiler Version 6.1 5–37 PCI Express コンパイラ・ユーザガイド ルート・ ポート BFM ebfm_cfg_rp_epプロシージャは、すべてのエンドポイントBARのサイ ズと割り当てアドレスをリストする BFM 共有メモリ内の bar_table データ構造もセットアップします。この BFM 共有メモリの領域は書き 込み保護されており、この領域にユーザが書き込みアクセスを行うと致 命的なシミュレーション・エラーが発生します。このデータ構造は、後 続の BFM プロシージャ・コールによって使用され、BAR からの特定の オフセットへの読み出しおよび書き込みリクエストを生成します。 コンフィギュレーション・ルーチンは、バーチャル・チャネル機能また はアドバンスド・エラー・レポート機能などの高度な PCI Expresss 機能 はコンフィギュレーションしません。 altpcietb_bfm_configure の ebfm_cfg_rp_ep プロシージャの他に、 altpcietb_bfm_rdwr VHDL パッケージまたは Verilog HDL インクルー ド・ファイルには、エンドポイント・コンフィギュレーション・スペー ス・レジスタを直接読み書きするルーチンが収められています。 アプリケーション・レイヤへのリード&ライト・トランザ クションの発行 リードおよびライト・トランザクションは、altpcietb_bfm_rdwr の ebfm_bar プロシージャの 1 つを呼び出すことによって、エンドポイン ト・アプリケーション・レイヤに発行されます。以下にリストするプロ シ ー ジ ャ と フ ァ ン ク シ ョ ン は、VHDL パ ッ ケ ー ジ・フ ァ イ ル altpcietb_bfm_rdwr.vhd または Verilog HDL インクルード・ファイル altpcietb_bfm_rdwr.v に収められています。使用可能なプロシージャお よびファンクションの完全なリストは、以下のとおりです。 ■ ebfm_barwr — BFM 共有メモリからのデータを特定のエンドポイ ント BAR からのオフセットに書き込みます。このプロシージャは、 送信のために VC インタフェース・モジュールにリクエストが渡さ れるとすぐに戻ります。 ■ ebfm_barwr_imm — 最大 4 バイトの即値データ(プロシージャ・コー ルに渡される)を特定のエンドポイント BAR からのオフセットに書 き込みます。このプロシージャは、送信のために VC インタフェー ス・モジュールにリクエストが渡されるとすぐに戻ります。 ■ ebfm_barrd_wait — データを特定のエンドポイント BAR のオフ セットから読み出し、BFM 共有メモリに保存します。このプロシー ジャ・ブロックは、コンプリーション・データが返されるのを待っ てから呼び出し側にコントロールを返します。 5–38 PCI Express Compiler Version 6.1 PCI Express コンパイラ・ユーザガイド Altera Corporation 2006 年 12 月 テストベンチおよび デザイン例 ■ ebfm_barrd_nowt — 特定のエンドポイントBARのオフセットから データを読み出し、それを BFM 共有メモリに保存します。このプロ シージャは、送信のために VC インタフェース・モジュールにリク エストが渡されるとすぐに戻ります。これにより、後に続く読み出 しをすぐに発行できます。 これらのルーチンは、BAR 番号をパラメータとして取り込んで、メモリ 領 域 お よ び ebfm_cfg_rp_ep プロシージャでセットアップした bar_table データ構造の BFM 共有メモリ・アドレスにアクセスします (5–35 ページの「ルート・ポートおよびエンド・ポイントのコンフィギュ レーション」参照)。これらのパラメータを使用すると、特定の BAR か らのオフセットにアクセスする BFM テスト・ドライバ・ルーチンが簡 素化され、特定の BAR に割り当てられるアドレスを計算する必要がな くなります。 ルート・ポート BFM は、エンドポイント I/O 領域 BAR へのアクセスを サポートしません。 これらのプロシージャ・コールについて詳しくは、5–48 ページの「BFM リード / ライト要求プロシージャ」の項を参照してください。 BFM プロシージャ およびファン クション この項では、BFM ドライバがエンドポイント・アプリケーション・テス トをドライブするために使用するすべての BFM プロシージャ、ファン クション、およびタスクへのインタフェースについて説明します。 最後の項では、チェイニング DMA デザイン例に固有のプロシー ジャについて説明します。 この項では、VHDL プロシージャおよびファンクションと Verilog HDL ファンクションおよびタスクについて説明します。VHDL プロシージャ の大部分は Verilog HDL タスクとして実装されますが、Verilog HDL タ スクではなく Verilog ファンクションとして実装されるものもあり、こ れらのファンクションは他の Verilog HDL ファンクションによって呼び 出すことができます。明示的に指定していない限り、以下の項に示すプ ロシージャもすべて Verilog HDL タスクとして実装されます。 Verilog HDL ユーザは、通常 VHDL パッケージでは隠されてい るその他のプロシージャによって呼び出されるいくつかの基礎的 なプロシージャおよびファンクションを表示することができます。 これら非表示のプロシージャは、ユーザが呼び出すものではあり ません。 Altera Corporation 2006 年 12 月 PCI Express Compiler Version 6.1 5–39 PCI Express コンパイラ・ユーザガイド BFM プロシージャおよびファンクション 以 下 の プ ロ シ ー ジ ャ お よびファンクションは、VHDL パッケージ altpcietb_bfm_rdwr.vhd または Verilog HDL インクルード・ファイル altpcietb_bfm_rdwr.v に収められています。これらのプロシージャおよ びファンクションは、PCI Express リンク上のメモリおよびコンフィギュ レーション・トランザクションの発行をサポートします。 すべての VHDL 引数は、特に記述がない限りサブタイプ NATURAL で 入力専用です。すべての Verilog HDL 引数は、特に記述がない限り INTEGER 型で入力専用です。 BFM リードおよびライト・プロシージャ この項では、BFM 共有メモリ、エンドポイント BAR、および指定され たコンフィギュレーション・レジスタのデータを読み書きするために使 用するプロシージャについて説明します。 ebfm_barwr プロシージャ ebfm_barwr プロシージャは、BFM 共有メモリのデータ・ブロックを指 定されたエンドポイント BAR からのオフセットに書き込みます。長さ はコンフィギュレーションされた Maximum Payload Size より長くな る場合があるため、プロシージャは必要に応じてリクエストを複数のト ランザクションに分割します。このルーチンは、最後のトランザクショ ンが VC インタフェース・モジュールに受け入れられるとすぐに戻りま す。 表 5–18. ebfm_barwr プロシージャ 構文 ebfm_barwr(bar_table, bar_num, pcie_offset, lcladdr, byte_len, tclass) 引数 bar_table BFM 共有メモリのエンドポイント bar_table 構造のアドレス bar_num PCI Express アドレスを決定するために pcie_offset で使用される BAR の番号 pcie_offset BAR ベースからのアドレス・オフセット lcladdr 書き込まれるデータの BFM 共有メモリ・アドレス byte_len 書き込まれるデータの長さ(バイト数)。BAR 領域または BFM 共有メモリ内の残 りの最小バイト数は 1 からになります。 tclass PCI Express トランザクションに使用するトラフィック・クラス 5–40 PCI Express Compiler Version 6.1 PCI Express コンパイラ・ユーザガイド Altera Corporation 2006 年 12 月 テストベンチおよび デザイン例 ebfm_barwr_imm プロシージャ ebfm_barwr_immプロシージャは、指定されたエンドポイントBARから のオフセットに最大 4 バイトのデータを書き込みます。 表 5–19. ebfm_barwr_imm プロシージャ 構文 ebfm_barwr_imm(bar_table, bar_num, pcie_offset, imm_data, byte_len, tclass) 引数 bar_table BFM 共有メモリのエンドポイント bar_table 構造のアドレス bar_num PCI Express アドレスを決定するために pcie_offset で使用される BAR の 番号 pcie_offset BAR ベースからのアドレス・オフセット imm_data 書き込まれるデータ。 VHDL では、この引数は std_logic_vector(31 downto 0) です。 Verilog HDL では、この引数は reg [31:0] です。 両言語とも、書き込まれるビット数は以下のように長さによって異なります。 長さ 4 3 2 1 書き込まれるビット数 31 downto 0 23 downto 0 15 downto 0 7 downto 0 byte_len 書き込まれるデータの長さ(バイト数) 。長さは最大 4 バイトです。 tclass PCI Express トランザクションに使用するトラフィック・クラス Altera Corporation 2006 年 12 月 PCI Express Compiler Version 6.1 5–41 PCI Express コンパイラ・ユーザガイド BFM プロシージャおよびファンクション ebfm_barrd_wait プロシージャ ebfm_barrd_wait プロシージャは、指定したエンドポイント BAR のオ フセットからデータ・ブロックを読み出して、BFM 共有メモリに保存し ます。長さはコンフィギュレーションされた最大読み出し要求サイズよ り長くなる場合があるため、プロシージャは必要に応じて要求を複数の トランザクションに分割します。このプロシージャは、すべてのコンプ リーション・データが返され共有メモリに置かれるまで待機します。 表 5–20. ebfm_barrd_wait プロシージャ 構文 ebfm_barrd_wait(bar_table, bar_num, pcie_offset, lcladdr, byte_len, tclass) 引数 bar_table BFM 共有メモリのエンドポイント bar_table 構造のアドレス bar_num PCI Express アドレスを決定するために pcie_offset で使用される BAR の番号 pcie_offset BAR ベースからのアドレス・オフセット lcladdr リード・データが保存される BFM 共有メモリ・アドレス byte_len 読み出されるデータの長さ(バイト数)。BAR 領域または BFM 共有メモリ 内の残りの最小バイト数は 1 からになります。 tclass PCI Express トランザクションに使用するトラフィック・クラス 5–42 PCI Express Compiler Version 6.1 PCI Express コンパイラ・ユーザガイド Altera Corporation 2006 年 12 月 テストベンチおよび デザイン例 ebfm_barrd_nowt プロシージャ ebfm_barrd_nowt プロシージャは、指定したエンドポイント BAR のオ フセットからデータ・ブロックを読み出して、BFM 共有メモリに保存し ます。長さはコンフィギュレーションされた最大読み出し要求サイズよ り長くなる場合があるため、プロシージャは必要に応じて要求を複数の トランザクションに分割します。このルーチンは、最後のリード・トラ ンザクションが VC インタフェース・モジュールに受け入れられるとす ぐに戻ります。これにより、後に続く読み出しをすぐに発行できます。 表 5–21. ebfm_barrd_nowt プロシージャ 構文 ebfm_barrd_nowt(bar_table, bar_num, pcie_offset, lcladdr, byte_len, tclass) 引数 bar_table BFM 共有メモリのエンドポイント bar_table 構造のアドレス bar_num PCI Express アドレスを決定するために pcie_offset で使用される BAR の番号 pcie_offset BAR ベースからのアドレス・オフセット lcladdr リード・データが保存される BFM 共有メモリ・アドレス byte_len 読み出されるデータの長さ(バイト数) 。BAR 領域または BFM 共有メモリ 内の残りの最小バイト数は 1 からになります。 tclass PCI Express トランザクションに使用するトラフィック・クラス Altera Corporation 2006 年 12 月 PCI Express Compiler Version 6.1 5–43 PCI Express コンパイラ・ユーザガイド BFM プロシージャおよびファンクション ebfm_cfgwr_imm_wait プロシージャ ebfm_cfgwr_imm_wait プロシージャは、指定されたコンフィギュレー ション・レジスタに最大 4 バイトのデータを書き込みます。このプロシー ジャは書き込みコンプリーションが返されるまで待機します。 表 5–22. ebfm_cfgwr_imm_wait プロシージャ 構文 ebfm_cfgwr_imm_wait(bus_num, dev_num, fnc_num, imm_regb_ad, regb_ln, imm_data, compl_status) 引数 bus_num ターゲット・デバイスの PCI Express バス番号 dev_num ターゲット・デバイスの PCI Express デバイス番号 fnc_num アクセスするターゲット・デバイスのファンクション番号 regb_ad 書き込まれるレジスタのバイト固有アドレス regb_ln 書き込まれるデータの長さ(バイト数) 。長さは最大 4 バイトです。regb_ln および regb_ad 引数は、DWORD 境界を越えることはできません。 imm_data 書き込まれるデータ。 VHDL では、この引数は std_logic_vector(31 downto 0) です。 Verilog HDL では、この引数は reg [31:0] です。 両言語とも、書き込まれるビット数は長さによって異なります。 長さ 4 3 2 1 compl_status 書き込まれるビット数 31 downto 0 23 downto 0 5 downto 0 7 downto 0 VHDL では、この引数は std_logic_vector(2 downto 0) であり、プロ シージャによって戻り時に設定されます。 Verilog HDL では、この引数は re [2:0] です。 両言語とも、この引数は PCI Express 仕様で指定されるコンプリーション・ ステータスです。 compl_status 000 001 010 100 定義 SC — 正常完了 UR — サポートされていない要求 CRS — コンフィギュレーション要求リトライ・ス テータス CA — コンプリータ・アボート 5–44 PCI Express Compiler Version 6.1 PCI Express コンパイラ・ユーザガイド Altera Corporation 2006 年 12 月 テストベンチおよび デザイン例 ebfm_cfgwr_imm_nowt プロシージャ ebfm_cfgwr_imm_nowt プロシージャは、指定されたコンフィギュレー ション・レジスタに最大 4 バイトのデータを書き込みます。このプロシー ジャは、VC インタフェース・モジュールがトランザクションを受け入 れるとすぐに戻るため、その間に他の書き込みの発行ができます。この プロシージャは、正常なコンプリーション・ステータスが期待できる場 合にのみ使用してください。 表 5–23. ebfm_cfgwr_imm_nowt プロシージャ 構文 ebfm_cfgwr_imm_nowt(bus_num, dev_num, fnc_num, imm_regb_adr, regb_len, imm_data) 引数 bus_num ターゲット・デバイスの PCI Express バス番号 dev_num ターゲット・デバイスの PCI Express デバイス番号 fnc_num アクセスするターゲット・デバイスのファンクション番号 regb_ad 書き込まれるレジスタのバイト固有アドレス regb_ln 書き込まれるデータの長さ(バイト数) 。長さは最大 4 バイトで、 regb_ln および regb_ad 引数は、DWORD 境界を越えることはできません。 imm_data 書き込まれるデータ VHDL では、この引数は std_logic_vector(31 downto 0) です。 Verilog HDL では、この引数は reg [31:0] です。 両言語とも、書き込まれるビットは長さによって異なります。 長さ 4 3 2 1 Altera Corporation 2006 年 12 月 書き込まれるビット数 31 downto 0 23 downto 0 5 downto 0 7 downto 0 PCI Express Compiler Version 6.1 5–45 PCI Express コンパイラ・ユーザガイド BFM プロシージャおよびファンクション ebfm_cfgrd_wait プロシージャ ebfm_cfgrd_wait プロシージャは、指定されたコンフィギュレーショ ン・レジスタから最大 4 バイトのデータ・ブロックを読み出して、BFM 共有メモリに保存します。このプロシージャは、読み出しコンプリーショ ンが返されるまで待機します。 表 5–24. ebfm_cfgrd_wait プロシージャ 構文 ebfm_cfgrd_wait(bus_num, dev_num, fnc_num, regb_ad, regb_ln, lcladdr, compl_status) 引数 bus_num ターゲット・デバイスの PCI Express バス番号 dev_num ターゲット・デバイスの PCI Express デバイス番号 fnc_num アクセスするターゲット・デバイスのファンクション番号 regb_ad 書き込まれるレジスタのバイト固有アドレス regb_ln 読み出されるデータの長さ(バイト数)。長さは最大 4 バイトです。regb_ln および regb_ad 引数は、DWORD 境界を越えることはできません。 lcladdr リード・データを格納する BFM 共有メモリ・アドレス compl_status コンフィギュレーション・トランザクションのコンプリーション・ステータ ス。 VHDL では、この引数は std_logic_vector(2 downto 0)であり、プロ シージャによって戻り時に設定されます。 Verilog HDL では、この引数は reg [2:0] です。 両言語とも、この引数は PCI Express 仕様で指定されるコンプリーション・ス テータスです。 compl_status 000 001 010 100 定義 SC — 正常完了 UR — サポートされていない要求 CRS — コンフィギュレーション要求リトライ・ス テータス CA — コンプリータ・アボート 5–46 PCI Express Compiler Version 6.1 PCI Express コンパイラ・ユーザガイド Altera Corporation 2006 年 12 月 テストベンチおよび デザイン例 ebfm_cfgrd_nowt プロシージャ ebfm_cfgrd_nowt プロシージャは、指定されたコンフィギュレーショ ン・レジスタから最大 4 バイトのデータを読み出し、BFM 共有メモリに 保存します。このプロシージャは、VC インタフェース・モジュールが トランザクションを受け入れるとすぐに戻るため、その間に他の読み出 しの発行ができます。このプロシージャは、正常なコンプリーション・ ステータスが期待される場合にのみ使用し、後に続くウェイトを伴った 読み出しまたは書き込みを使用して、動作の完了を保証することができ ます。 表 5–25. ebfm_cfgrd_nowt プロシージャ 構文 ebfm_cfgrd_nowt(bus_num, dev_num, fnc_num, regb_ad, regb_ln, lcladdr) 引数 bus_num ターゲット・デバイスの PCI Express バス番号 bus_num ターゲット・デバイスの PCI Express バス番号 dev_num ターゲット・デバイスの PCI Express デバイス番号 fnc_num アクセスするターゲット・デバイスのファンクション番号 regb_ad 書き込まれるレジスタのバイト固有アドレス regb_ln 書き込まれるデータの長さ(バイト数)。長さは最大 4 バイトです。regb_ln およ び regb_ad 引数は、DWORD 境界を越えることはできません。 lcladdr リード・データを格納する BFM 共有メモリ・アドレス BFM パフォーマンス・カウント この項では性能データにアクセスするための BFM ルーチンについて説 明します。ルート・ポート BFM は、ルート・ポートを通じて送受信す るパケットのパフォーマンス・カウンタ・セットを保持します。カウン タは以下のパケットごとに存在します。 ■ ■ 送信されたパケット ペイロード・データの送信された QWORD(すべてのバイトがイネー ブルされていなくてもフル QWORD がカウントされます) ■ 受信されたパケット ■ ペイロード・データの受信された QWORD(すべてのバイトがイネー ブルされていなくてもフル QWORD がカウントされます) 上記のカウンタは、シミュレーションの開始時より継続してカウントさ れます。プロシージャ ebfm_start_perf_sample は、すべてのカウ ンタを 0 にリセットします。 Altera Corporation 2006 年 12 月 PCI Express Compiler Version 6.1 5–47 PCI Express コンパイラ・ユーザガイド BFM プロシージャおよびファンクション ebfm_disp_perf_sample プロシージャは、これらのカウンタの拡張 バージョンを標準出力に表示します。これらの値はすべてのバーチャル・ チャネルの和として表示されます。また、ebfm_disp_perf_sample はカウンタを 0 にリセットし、それによって効果的に次の性能サンプル を開始します。 ■ 一般に、性能測定ルーチンは性能解析の開始時に ebfm_start_perf_ sample を呼び出します。ebfm_disp_perf_sample は性能解析の 終了時に呼び出すことができます。性能解析全体時間の総数が与え られます。あるいは、性能をより正確に表示するために、性能解析 ウィンドウ中に ebfm_disp_perf_sample を複数回呼び出すこと ができます。総合的な性能値は、シミュレータ標準出力の後処理に よって計算する必要があります。 BFM リード / ライト要求プロシージャ ebfm_start_perf_sample プロシージャ このプロシージャはパフォーマンス・カウンタをリセットするだけです。 カウンタが同期的にリセットされるように、プロシージャは次の Root Port BFM クロック・エッジまで待機します。このルーチンを呼び出す と、性能サンプリング・ウィンドウが開始されます。 5–48 PCI Express Compiler Version 6.1 PCI Express コンパイラ・ユーザガイド Altera Corporation 2006 年 12 月 テストベンチおよび デザイン例 ebfm_disp_perf_sample プロシージャ このプロシージャは標準出力に性能情報を表示します。また、次の Root Port BFM クロック・エッジでパフォーマンス・カウンタをリセットしま す。このルーチンを呼び出すと、新しい性能サンプリング・ウィンドウ が開始されます。あるサンプル・ウィンドウから次のサンプル・ウィン ドウに移行する間に、パフォーマンス・カウント情報が失われることは ありません。 以下の図にこのルーチンからの出力例を示します。 図 5-5. ebfm_disp_perf_sample プロシージャからの出力 # INFO: ns # INFO: # INFO: # INFO: # INFO: # INFO: # INFO: # INFO: # INFO: 92850 ns PERF: Sample Duration: 5008 92850 92850 92850 92850 92850 92850 92850 92850 ns ns ns ns ns ns ns ns PERF: PERF: PERF: PERF: PERF: PERF: PERF: PERF: Tx Packets: Tx Bytes: Tx MByte/sec: Tx Mbit/sec: Rx Packets: Rx Bytes: Rx MByte/sec: Rx Mbit/sec: 33 8848 1767 14134 34 8832 1764 14109 上記の例はテストベンチの VHDL バージョンから抜粋したものです。 Verilog バージョンのフォーマッティングは多少異なる場合があります。 Altera Corporation 2006 年 12 月 PCI Express Compiler Version 6.1 5–49 PCI Express コンパイラ・ユーザガイド BFM プロシージャおよびファンクション 表 5–26 に図 5-5 についての情報を示します。 表 5–26. サンプル持続時間および Tx パケットの説明 ラベル 説明 サンプル持続 時間 サンプリング・ウィンドウ開始からの経過時間、 ebfm_start_perf_sample および ebfm_disp_perf_sample が最後に呼び出された時間。 Tx Packets サンプル・ウィンドウ中にルート・ポート BFM によって送信されるパケット・ヘッダの総数 Tx Bytes サンプル・ウィンドウ中にルート・ポート BFM によって送信されるペイロード・データ・ バイトの総数。これは転送される QWORD 数に 8 を乗算した値です。部分 QWORD はパ ケットが QWORD 境界で開始または終了しないため調整は行われません。 Tx MByte/sec サンプル・ウィンドウ中に、1 秒あたりに送信されるメガバイト数。これは、 Tx Bytes サ ンプル持続時間で除算した値です。 Tx Mbit/sec サンプル・ウィンドウ中に、1 秒あたりに送信されるメガビット数。これは Tx MByte/sec に 8 を乗算した値です。 Rx Packets サンプル・ウィンドウ中にルート・ポート BFM によって受信されるパケット・ヘッダの総数 Rx Bytes サンプル・ウィンドウ中にルート・ポート BFM によって受信されるペイロード・データ・ バイトの総数。これは転送される QWORD 数に 8 を乗算した値です。部分 QWORD はパ ケットが QWORD 境界で開始または終了しないため調整は行われません。 Rx MByte/sec サンプル・ウィンドウ中に、1 秒あたりに受信されるメガバイト数。これは Rx Bytes をサ ンプル持続時間で除算した値です。 Rx Mbit/sec サンプル・ウィンドウ中に、1 秒あたりに受信されるメガビット数。これは Rx MByte/sec に 8 を乗算した値です。 BFM コンフィギュレーション・プロシージャ 次のプロシージャは、altpcietb_bfm_configure で使用できます。これ らのプロシージャは、ルート・ポートとエンドポイントのコンフィギュ レーション空間レジスタのコンフィギュレーションをサポートします。 すべての VHDL 引数は、特に記述がない限りサブタイプ NATURAL で、 入力専用です。すべての Verilog HDL 引数は、特に記述がない限り INTEGER 型で入力専用です。 5–50 PCI Express Compiler Version 6.1 PCI Express コンパイラ・ユーザガイド Altera Corporation 2006 年 12 月 テストベンチおよび デザイン例 ebfm_cfg_rp_ep プロシージャ ebfm_cfg_rp_ep プロシージャは、ルート・ポートおよびエンドポイン ト・コンフィギュレーション・スペース・レジスタをコンフィギュレー ションします。このプロシージャの引数の説明については、表 5–27 を参 照してください。 表 5–27. ebfm_cfg_rp_ep プロシージャ 構文 ebfm_cfg_rp_ep(bar_table, ep_bus_num, ep_dev_num, rp_max_rd_req_size, display_ep_config, addr_map_4GB_limit) 引数 bar_table BFM 共有 メモ リのエ ンドポ イン ト bar_table 構 造のア ドレ ス bar_table 構造には、このルーチンによってデータが投入されます。 ep_bus_num ターゲット・デバイスの PCI Express バス番号。0 以上の任意の値を付 与できます。ルート・ポートをコンフィギュレーションして、この値 をセカンダリ・バス番号として使用します。 ep_dev_num ターゲット・デバイスの PCI Express デバイス番号。任意の値を付与 できます。エンドポイントが最初のコンフィギュレーション・トラン ザクションを受信したとき、この値が自動的に割り当てられます。 rp_max_rd_req_size ルート・ポートで発行される読み出しのための最大読み出し要求サイ ズ(バイト数)。この値はエンドポイント・アプリケーション・レイヤ でサポートされる最大値に設定する必要があります。アプリケーショ ン・レイヤが Maximum Payload Size の読み出しのみサポートす る場合は、この値を 0 に設定することができ、読み出し要求サイズは 最大ペイロード・サイズに設定されます。この引数に有効な値は、0、 128、256、512、1024、2048、および 4096 です。 display_ep_config この引数を 1 に設定すると、エンドポイント・コンフィギュレーショ ン・スペース・レジスタの多くが初期化後に表示されます。これによ り、コンフィギュレーション・プロセス中には通常アクセスされない レジスタの読み出しがいくつか追加されます。 addr_map_4GB_limit この引数を 1 にすると、シミュレーション・システムのアドレス・マッ プは 4GB に制限されます。64 ビット BAR は、4GB 制限の下に割り当 てられます。 Altera Corporation 2006 年 12 月 PCI Express Compiler Version 6.1 5–51 PCI Express コンパイラ・ユーザガイド BFM プロシージャおよびファンクション eebfm_cfg_decode_bar プロシージャ ebfm_cfg_decode_bar プロシージャは、指定された BAR に対する BAR テーブルの情報を解析し、BAR 属性に関する詳細を返します。 表 5–28. ebfm_cfg_decode_bar プロシージャ 構文 ebfm_cfg_decode_bar(bar_table, bar_num, log2_size, is_mem, is_pref, is_64b) 引数 bar_table BFM 共有メモリのエンドポイント bar_table 構造のアドレス bar_num 解析する BAR 番号 log2_size この引数はプロシージャによって BAR の Log Base 2 サイズに設定されます。BAR がイネーブルされていない場合は、0 に設定されます。 is_mem この std_logic 引数はプロシージャによって設定され、BAR がメモリ領域 BAR (1) または I/O 領域 BAR (0) のいずれであるかを示します。 is_pref この std_logic 引数はプロシージャによって設定され、BAR がプリフェッチ可 能な BAR (1) またはプリフェッチ不能な BAR (0) のいずれであるかを示します。 is_64b この std_logic引数はプロシージャによって設定され、BARが64 ビットBAR (1) または 32 ビット BAR (0) のいずれであるかを示します。これはペアのうち小さい 番号の BAR にのみ 1 に設定されます。 BFM 共有メモリ・アクセス・プロシージャ 以 下 の プ ロ シ ー ジ ャ お よ び フ ァ ン ク シ ョ ン は、VHDL フ ァ イ ル altpcietb_bfm_shmem.vhd またはテストベンチのトップ・レベルでイン スタンス化される altpcietb_bfm_shmem_common.v モジュールを使用 する Verilog HDL インクルード・ファイル altpcietb_bfm_shmem.v に 収められています。これらのプロシージャおよびファンクションは、 BFM 共有メモリへのアクセスをサポートします。 すべての VHDL 引数は、特に記述がない限りサブタイプ NATURAL で 入力専用です。すべての Verilog HDL 引数は、特に記述がない限り INTEGER 型で入力専用です。 5–52 PCI Express Compiler Version 6.1 PCI Express コンパイラ・ユーザガイド Altera Corporation 2006 年 12 月 テストベンチおよび デザイン例 共有メモリ定数 以下の定数は、BFM 共有メモリ・パッケージで定義されています。これ らの定数は、shmem_fill および shmem_chk_ok ルーチンでデータ・ パターンを選択します。これらの共有メモリ定数は、すべて VHDL のサ ブタイプ NATURAL または Verilog HDL の INTEGER 型です。 表 5–29. 定数 :VHDL サブタイプ NATURAL または Verilog HDLINTEGER 定数 説明 SHMEM_FILL_ZEROS すべて 0 のデータ・パターンを指定します SHMEM_FILL_BYTE_INC インクリメント 8 ビット・バイト(0x00、0x01、0x02 など)のデータ・パ ターンを指定します。 SHMEM_FILL_WORD_INC インクリメント 16 ビット・ワード(0x0000、0x0001、0x0002 など)のデー タ・パターンを指定します。 SHMEM_FILL_DWORD_INC イン ク リメ ン ト 32 ビ ット・ダ ブル・ワ ード(0x00000000、0x00000001、 0x00000002 など)のデータ・パターンを指定します。 SHMEM_FILL_QWORD_INC イン ク リメ ン ト 64 ビ ット・ク ワッ ド・ワー ド(0x0000000000000000、 0x0000000000000001、0x0000000000000002 など)のデータ・パターンを指定 します。 SHMEM_FILL_ONE すべて 1 のデータ・パターンを指定します。 shmem_write shmem_write プロシージャは、データを BFM 共有メモリに書き込みま す。 表 5–30. shmem_write VHDL プロシージャまたは Verilog HDL タスク 構文 shmem_write(addr, data, leng) 引数 addr データ書き込みのための BFM 共有メモリ開始アドレス data BFM 共有メモリに書き込むデータ VHDL では、この引数は制約条件が与えられていない std_logic_vector です。このベクタは leng 長の 8 倍でなければなりません。 Verilog では、このパラメータは 64 ビット・ベクタとして実装されます。 leng は 1 ∼ 8 バイトです。 両言語とも、ビット 7 ∼ 0 は addr で指定される位置に書き込まれ、ビット 15 ∼ 8 は addr+1 で指定される位置に書き込まれる(以下同様)、というよ うになります。 leng Altera Corporation 2006 年 12 月 書き込まれるデータの長さ(バイト数) PCI Express Compiler Version 6.1 5–53 PCI Express コンパイラ・ユーザガイド BFM プロシージャおよびファンクション shmem_read ファンクション shmem_read ファンクションはデータを BFM 共有メモリに読み込みま す。 表 5–31. shmem_read ファンクション 構文 data:= shmem_read(addr, leng) 引数 addr データ読み出しのための BFM 共有メモリ開始アドレス leng 読み出されるデータの長さ(バイト数) data BFM 共有メモリから読み出したデータ。 VHDL では、これは制約条件のない std_logic_vector であり、ベクタは leng 長の 8 倍です。 Verilog では、このパラメータは 64 ビット・ベクタとして実装されます。 leng は1∼8バイトです。leng が8バイト未満の場合、返されるデータの対応する最下 位ビットのみ有効です。 戻り値 両言語とも、ビット 7 ∼ 0 は addr で指定される位置から読み込まれ、ビット 15 ∼ 8 は addr+1 で指定される位置から読み込まれる(以下同様) 、というようになります。 shmem_display VHDL プロシージャまたは Verilog HDL ファンク ション shmem_display VHDL プロシージャまたは Verilog HDL ファンクショ ンは、BFM 共有メモリのデータ・ブロックを表示します。 表 5–32. shmem_display VHDL プロシージャまたは Verilog HDL ファンクション 構文 VHDL: shmem_display(addr, leng, word_size, flag_addr, msg_type) Verilog HDL: dummy_return:=shmem_display(addr, leng, word_size, flag_addr, msg_type); 引数 addr データ表示のための BFM 共有メモリ開始アドレス leng 表示されるデータの長さ(バイト数) word_size 表示されるワードのサイズ。個別バイトをグループにまとめてワードにします。有効 な値は 1、2、4、および 8 です。 flag_addr このアドレスを含む表示ラインの最後に <== フラグを追加します。特定のデータを マーキングするのに役立ちます。2**21(BFM 共有メモリのサイズ)以上の値に設定し てフラグを抑制します。 msg_type 各ラインの先頭に表示するメッセージ・タイプを指定します。メッセージ・タイプに ついて詳しくは、5–56 ページの「BFM ログおよびメッセージ・プロシージャ」を参照 してください。メッセージ・タイプは、5–58 ページの表 5–35 で定義されている定数 のいずれかでなければなりません。 5–54 PCI Express Compiler Version 6.1 PCI Express コンパイラ・ユーザガイド Altera Corporation 2006 年 12 月 テストベンチおよび デザイン例 shmem_fill プロシージャ shmem_fill プロシージャは、BFM 共有メモリのブロックに指定された データ・パターンを埋め込みます。 表 5–33. shmem_fill プロシージャ 構文 shmem_fill(addr, mode, leng, init) 引数 addr データ埋め込みのための BFM 共有メモリ開始アドレス mode データの埋め込みに使用するデータ・パターン。データ・パターンは、5–53 ページの「共有メモリ定数」で定義されている定数のいずれかでなければなり ません。 leng 埋め込むデータの長さ(バイト数)長さがインクリメント・データ・パターン 幅の倍数でない場合、最後のデータ・パターンは切り捨てて格納されます。 init インクリメント・データ・パターン・モードに使用する最初のデータ値 VHDL では、 この引数はタイプ std_logic_vector(63 downto 0) です。 Verilog HDL では、この引数は reg [63:0] です。 両言語とも、必要な最下位ビットは 64 ビットより小さいデータ・パターンに 使用されます。 Altera Corporation 2006 年 12 月 PCI Express Compiler Version 6.1 5–55 PCI Express コンパイラ・ユーザガイド BFM プロシージャおよびファンクション shmem_chk_ok ファンクション shmem_chk_ok ファンクションは、BFM 共有メモリのブロックを指定さ れたデータ・パターンと照合します。 表 5–34. shmem_chk_ok ファンクション 構文 result:= shmem_chk_ok(addr, mode, leng, init, display_error) 引数 addr データをチェックするための BFM 共有メモリ開始アドレス mode データのチェックに使用するデータ・パターン。データ・パターンは、 5–53 ページの「共有メモリ定数」で定義されている定数のいずれかでな ければなりません。 leng チェックするデータの長さ(バイト数) init VHDL では、この引数はタイプ std_logic_vector(63 downto 0) です。 Verilog HDL では、この引数は reg [63:0] です。 両言語とも、必要な最下位ビットは 64 ビットより小さいデータ・パター ンに使用されます。 display_error この引数を 1 に設定すると、シミュレータ標準出力に比較が一致しない データが表示されます。 戻り値 Result Result は VHDL ブール型です。 TRUE — データ・パターンの比較が一致したことを示します。 FALSE — データ・パターンの比較が正常でなかったことを示します。 Verilog HDL では Result は 1 ビットです。 1’b1 — データ・パターンの比較が一致したことを示します。 1’b0 — データ・パターンの比較が一致しなかったことを示します BFM ログおよびメッセージ・プロシージャ 以下のプロシージャおよびファンクションは、VHDL パッケージ・ファ イル altpcietb_bfm_log.vhd またはテストベンチのトップ・レベルでイ ンスタンス化される altpcietb_bfm_log_common.v モジュールを使用す る Verilog HDL インクルード・ファイル altpcietb_bfm_log.v に収めら れています。 これらのプロシージャは、一般的な書式でのメッセージの表示、情報メッ セージの抑制、および特定のメッセージ・タイプでのシミュレーション の停止をサポートします。 5–56 PCI Express Compiler Version 6.1 PCI Express コンパイラ・ユーザガイド Altera Corporation 2006 年 12 月 テストベンチおよび デザイン例 ログ定数 以下の定数は、BFM ログ・パッケージで定義されています。これらの定 数は、メッセージ・タイプを定義し、それらの値によりメッセージを表 示するかどうか、また特定のメッセージの後でシミュレーションを停止 するかどうかを決定します。表示される各メッセージには、表 5–35 に示 すメッセージ・タイプに基づく特定のプリフィックスがあります。 特定のメッセージ・タイプの表示を抑制することができます。メッセー ジ・タイプを表示するかどうかを決定するデフォルト値について詳しく は、表 5–35 を参照してください。デフォルトのメッセージ表示を変更す るには、ebfm_log_set_suppressed_msg_mask へのプロシージャ・コー ルで表示のデフォルト値を修正します。 また、特定のメッセージ・タイプではメッセージが表示されるとシミュ レーションが停止します。表 5–35 にシミュレーションを停止するかどう か を 決 定 す る メ ッ セ ー ジ・タ イ プ の デ フ ォ ル ト 値 を 示 し ま す。 ebfm_log_set_stop_on_msg_mask プロシージャで、特定のメッセー ジのシミュレーションを停止するかどうかを指定できます。 これらのログ・メッセージ定数はすべて VHDL サブタイプ NATURAL または Verilog HDL の INTEGER です。 ebfm_display VHDL プロシージャまたは Verilog HDL ファンク ション ebfm_display プロシージャまたはファンクションは、シミュレーショ ン 標 準 出 力 に 指 定 さ れ た タ イ プ の メ ッ セ ー ジ を 表 示 し、 ebfm_log_open() が呼び出された場合はログ・ファイルにも出力しま す。 以下の各プロシージャが呼び出されるごとに、各プロシージャのメッ セージ・タイプおよびビット・マスクの値のデフォルト設定に応じて、 メッセージの抑制またはシミュレーションの停止あるいはその両方を実 行できます。表示するメッセージおよび特定のメッセージのシミュレー ションを停止するかどうかに基づき、これらのプロシージャのいずれか または両方を呼び出すことができます。 Altera Corporation 2006 年 12 月 ■ ebfm_log_set_suppressed_msg_mask()を呼び出すと、ビット・ マスクの値に基づいてメッセージの表示が抑制される場合がありま す。 ■ ebfm_log_set_stop_on_msg_mask() を呼び出すと、ビット・マ スクの値に基づいてメッセージが表示された後でシミュレーション が停止する場合があります。 PCI Express Compiler Version 6.1 5–57 PCI Express コンパイラ・ユーザガイド BFM プロシージャおよびファンクション 表 5–35. VHDL 定数を使用したログ・メッセージ - サブタイプ NATURAL(1 / 2) 定数 (メッセージ・ タイプ) 説明 マスク・ シミュレーション 表示 メッセージ・ ビット の停止 (デフォルト) プリフィックス 番号 (デフォルト) EBFM_MSG_DEBUG デ バ ッ グ・メ ッ 0 N N DEBUG: セージを指定しま す。 EBFM_MSG_INFO コンフィギュレー 1 ション・レジスタ 値、テストの開始 および終了などの 情報メッセージを 指定します。 Y N INFO: EBFM_MSG _WARNING 特定のコンフィ 2 ギュレーションな どによりテストが スキップされたこ となどへの警告 メッセージを指定 します。 Y N WARNING: EBFM_MSG_ERROR エラーに関する追 3 _INFO 加情報を指定しま Y N ERROR: Y N ERROR: Y 抑制不可 Y 抑制不可 FATAL: す。このメッセー ジを使用して、シ ミュレーションを 停 止 す る エ ラ ー・ メッセージの前に 暫定情報を表示し ます。 EBFM_MSG_ERROR シミュレーション 4 _CONTINUE の継続を可能にす る復元可能なエ ラーを指定しま す。エ ラ ー に は データの不一致な どがあります。 EBFM_MSG_ERROR テストベンチがシ N/A _FATAL ミュレーションを 継続できない状態 を引き起こし、シ ミュレーションを 停止するエラーを 指定します。 5–58 PCI Express Compiler Version 6.1 PCI Express コンパイラ・ユーザガイド Altera Corporation 2006 年 12 月 テストベンチおよび デザイン例 表 5–35. VHDL 定数を使用したログ・メッセージ - サブタイプ NATURAL(2 / 2) 定数 (メッセージ・ タイプ) マスク・ シミュレーション 表示 メッセージ・ ビット の停止 (デフォルト) プリフィックス 番号 (デフォルト) 説明 EBFM_MSG_ERROR BFM テスト・ドラ N/A _FATAL_TB_ERR イバまたはルー Y 抑制不可 Y 抑制不可 FATAL: ト・ポート BFM の 致命的エラーに使 用します。テスト ベンチがシミュ レーションを継続 できない状態を引 き起こし、シミュ レーションを停止 するエラーを指定 し ま す。こ の エ ラー・メッセージ は、テスト中のエ ンドポイント・ア プ リ ケ ー シ ョ ン・ レ イ ヤ で は な く、 BFM テスト・ドラ イバ・モジュール ま た は ル ー ト・ ポート BFM での問 題に起因するエ ラーに対して使用 します。 表 5–36. ebfm_display プロシージャ 構文 VHDL: ebfm_display(msg_type, message) Verilog HDL: dummy_return:=ebfm_display(msg_type, message); 引数 msg_type メッセージのメッセージ・タイプを表します。5–58 ページの表 5–35 で定義されている定数のいずれかでなければなりません。 message VHDL では、この引数は VHDL 文字列型であり、表示するメッ セージ・テキストが含まれています。 Verilog HDL では、メッセージ文字列は最大 100 文字に制限されて います。また、Verilog HDL は可変長文字列を許可していません。 このルーチンは、メッセージを表示する前に先頭の 8’h00 文字を剥 奪します。 戻り値 Altera Corporation 2006 年 12 月 always 0 これは Verilog HDL ルーチンにのみ適用されます。 PCI Express Compiler Version 6.1 5–59 PCI Express コンパイラ・ユーザガイド BFM プロシージャおよびファンクション ebfm_log_stop_sim VHDL プロシージャまたは Verilog HDL ファ ンクション ebfm_log_stop_sim プロシージャは、シミュレーションを停止します。 表 5–37. ebfm_log_stop_sim プロシージャ 構文 VHDL: ebfm_log_stop_sim(success) Verilog VHDL: return:=ebfm_log_stop_sim(success); 引数 success このプロセスを 1 に設定すると、シミュレーションが正常に完了したこと を示すメッセージを表示して、シミュレーションを停止します。メッセー ジには SUCCESS のプリフィックスが付加されます。 それ以外の場合、このプロセスはシミュレーションが完了していないこと を示すメッセージを表示して、シミュレーションを停止します。メッセー ジには FAILURE のプリフィックスが付加されます。 戻り値 Always 0 この値は Verilog HDL ファンクションにのみ適用されます。 ebfm_log_set_suppressed_msg_mask プロシージャ ebfm_log_set_suppressed_msg_mask プロシージャは、抑制する メッセージ・タイプを制御します。これにより 5–58 ページの表 5–35 に 示す Displayed by Default 設定が変更されます。 表 5–38. ebfm_log_set_suppressed_msg_mask プロシージャ 構文 bfm_log_set_suppressed_msg_mask (msg_mask) 引数 msg_mask VHDL では、この引数は std_logic_vector、EBFM_MSG_MASK のサブタ イプです。このベクタの範囲は、 EBFM_MSG_ERROR_CONTINUE から EBFM_MSG_DEBUG までです。 Verilog HDL では、この引数は reg [EBFM_MSG_ERROR_CONTINUE: EBFM_MSG_DEBUG] です。 両言語とも、msg_mask の特定のビット位置が 1 の場合、そのビット位 置に対応するタイプのメッセージが抑制されます。 5–60 PCI Express Compiler Version 6.1 PCI Express コンパイラ・ユーザガイド Altera Corporation 2006 年 12 月 テストベンチおよび デザイン例 ebfm_log_set_stop_on_msg_mask プロシージャ ebfm_log_set_stop_on_msg_mask プロシージャは、どのメッセー ジ・タイプでシミュレーションを停止するかを制御します。これにより 5–58 ページの表 5–35 に示す Stop Sim by Default 設定が変更されます。 表 5–39. ebfm_log_set_stop_on_msg_mask プロシージャ 構文 ebfm_log_set_stop_on_msg_mask (msg_mask) 引数 msg_mask VHDL では、この引数は std_logic_vector、 EBFM_MSG_MASK のサブ タイプです。このベクタの範囲は、 EBFM_MSG_ERROR_CONTINUE から EBFM_MSG_DEBUG までです。 Verilog HDLでは、 この引数はreg [EBFM_MSG_ERROR_CONTINUE: EBFM_MSG_DEBUG] です。 両言語とも、msg_mask の特定のビット位置が 1 の場合、そのビット 位置に対応するタイプのメッセージが表示された後、シミュレーション が停止します。 ebfm_log_open プロシージャ ebfm_log_open プロシージャは、指定された名前のログ・ファイルを 開きます。表示されるメッセージはすべて ebfm_display によって呼 び出され、シミュレータ標準出力としてこのログ・ファイルに書き出さ れます。 表 5–40. ebfm_log_open プロシージャ 構文 ebfm_log_open (fn) 引数 fn この引数のタイプは文字列型です。 開くログ・ファイルのファイル名です。 ebfm_log_close プロシージャ ebfm_log_close プロシージャは、以前 ebfm_log_open を呼び出すこ とによって開かれたログ・ファイルを閉じます。 表 5–41. ebfm_log_close プロシージャ Altera Corporation 2006 年 12 月 構文 ebfm_log_close 引数 なし PCI Express Compiler Version 6.1 5–61 PCI Express コンパイラ・ユーザガイド BFM プロシージャおよびファンクション himage (std_logic_vector) ファンクション himage ファンクションは、std_logic_vector 引数を 16 進文字列形 式 で 返 す ユ ー テ ィ リ テ ィ・ル ー チ ン で す。文 字 列 の 長 さ は、 std_logic_vector を 4 で除算(切り上げ)した値です。必要に応じて 引数に文字を埋め込んだり引数を切り捨てることによって、文字列の長 さを制御できます。 表 5–42. himage (std_logic_vector) ファンクション 構文 string:= himage(vec) 引数 vec この引数は、16 進文字列に変換される std_logic_vector です。 戻り値 文字列 引数を 16 進文字列形式で表したものです。 himage (integer) ファンクション himage ファンクションは、整数引数を 16 進文字列形式で返すユーティ リティ・ルーチンです。この文字列の長さは、hlen 引数で指定されます。 表 5–43. himage (integer) ファンクション 構文 string:= himage(num, hlen) 引数 num 16 進文字列に変換される整数型の引数です hlen 返される文字列の長さです。文字列は必要に応じて、切り捨てたり右 に 0 を埋め込みます。 文字列 引数を 16 進文字列形式で表したものです。 戻り値 Verilog HDL フォーマッティング・ファンクション この項では、Verilog HDL でのみ使用するフォーマッティング・ファン クションの概要を示します。これらのファンクションはすべて指定され た長さの引数を 1 つ取り込み、指定された長さのベクタを返します。 5–62 PCI Express Compiler Version 6.1 PCI Express コンパイラ・ユーザガイド Altera Corporation 2006 年 12 月 テストベンチおよび デザイン例 himage1 このファンクションは、より大きなサイズのメッセージ文字列に連結し、 ebfm_displayに渡すことができる入力引数の1 桁の16進文字列を作成 します。 表 5–44. himage1 構文 string:= himage(vec) 引数 vec 範囲が 3 ∼ 0 の reg 型入力データ 戻り値の範囲 文字列 入力引数の 1 桁の 16 進数を返します。戻りデータは範囲が 8 ∼ 1 の reg 型です himage2 このファンクションは、より大きなサイズのメッセージ文字列に連結し、 ebfm_displayに渡すことができる入力引数の2 桁の16進文字列を作成 します。 表 5–45. himage2 構文 string:= himage(vec) 引数の範囲 vec 範囲が 7 ∼ 0 の reg 型入力データ 戻り値の範囲 文字列 入力引数を 2 桁の 16 進数形式で返します。必要に応じて先頭に 0 が埋め込 まれます。戻りデータは範囲が 16 ∼ 1 の reg 型です。 himage4 このファンクションは、より大きなサイズのメッセージ文字列に連結し、 ebfm_displayに渡すことができる入力引数の4 桁の16進文字列を作成 します。 表 5–46. himage4 構文 string:= himage(vec) 引数の範囲 vec 範囲が 15 ∼ 0 の reg 型入力データ 戻り値の範囲 文字列 入力引数を 4 桁の 16 進数形式で返します。必要に応じて先頭に 0 が埋め込ま れます。戻りデータは範囲が 32 ∼ 1 の reg 型です。 Altera Corporation 2006 年 12 月 PCI Express Compiler Version 6.1 5–63 PCI Express コンパイラ・ユーザガイド BFM プロシージャおよびファンクション himage8 このファンクションは、より大きなサイズのメッセージ文字列に連結し、 ebfm_displayに渡すことができる入力引数の8 桁の16進文字列を作成 します。 表 5–47. himage8 構文 string:= himage(vec) 引数の範囲 vec 戻り値の範囲 文 字 入力引数を 8 桁の 16 進数形式で返します。必要に応じて先頭に 0 が埋め込まれま 列 す。戻りデータは範囲が 64 ∼ 1 の reg 型です。 範囲が 31 ∼ 0 の reg 型入力データ himage16 このファンクションは、より大きなサイズのメッセージ文字列に連結し、 ebfm_display に渡すことができる入力引数の 16 桁の 16 進文字列を作 成します。 表 5–48. himage16 構文 string:= himage(vec) 引数の範囲 vec 戻り値の範囲 文字列 入力引数を 16 桁の 16 進数形式で返します。必要に応じて先頭に 0 が埋め込まれ ます。戻りデータは範囲が 128 ∼ 1 の reg 型です。 範囲が 63 ∼ 0 の reg 型入力データ dimage1 このファンクションは、より大きなサイズのメッセージ文字列に連結し、 ebfm_displayに渡すことができる入力引数の1 桁の16進文字列を作成 します。 表 5–49. dimage1 構文 string:= dimage(vec) 引数の範囲 vec 戻り値の範囲 文字列 入力引数を 1 桁の 10 進数形式で返します。必要に応じて先頭に 0 が埋め込まれ ます。戻りデータは範囲が 8 ∼ 1 の reg 型です。 範囲が 31 ∼ 0 の reg 型入力データ 値を表現できない場合は、文字 U が返されます。 5–64 PCI Express Compiler Version 6.1 PCI Express コンパイラ・ユーザガイド Altera Corporation 2006 年 12 月 テストベンチおよび デザイン例 dimage2 このファンクションは、より大きなサイズのメッセージ文字列に連結し、 ebfm_displayに渡すことができる入力引数の2 桁の16進文字列を作成 します。 表 5–50. dimage2 構文 string:= dimage(vec) 引数の範囲 vec 範囲が 31 ∼ 0 の reg 型入力データ 戻り値の範囲 文字列 入力引数を 2 桁の 10 進数形式で返します。必要に応じて先頭に 0 が埋め込まれ ます。戻りデータは範囲 16 ∼ 1 の reg 型です。 値を表現できない場合は、文字 U が返されます。 dimage3 このファンクションは、より大きなサイズのメッセージ文字列に連結し、 ebfm_displayに渡すことができる入力引数の3 桁の16進文字列を作成 します。 表 5–51. dimage3 構文 string:= dimage(vec) 引数の範囲 vec 戻り値の範囲 文字列 入力引数を 3 桁の 10 進数形式で返します。必要に応じて先頭に 0 が埋め込まれ ます。戻りデータは範囲が 24 ∼ 1 の reg 型です。 範囲が 31 ∼ 0 の reg 型入力データ 値を表現できない場合は、文字 U が返されます。 Altera Corporation 2006 年 12 月 PCI Express Compiler Version 6.1 5–65 PCI Express コンパイラ・ユーザガイド BFM プロシージャおよびファンクション dimage4 このファンクションは、より大きなサイズのメッセージ文字列に連結し、 ebfm_displayに渡すことができる入力引数の4 桁の16進文字列を作成 します。 表 5–52. dimage4 構文 string:= dimage(vec) 引数の範囲 vec 戻り値の範囲 文字列 入力引数を 4 桁の 10 進数形式で返します。必要に応じて先頭に 0 が埋め込まれ ます。戻りデータは範囲が 32 ∼ 1 の reg 型です。 範囲が 31 ∼ 0 の reg 型入力データ 値を表現できない場合は、文字 U が返されます。 dimage5 このファンクションは、より大きなサイズのメッセージ文字列に連結し、 ebfm_displayに渡すことができる入力引数の5 桁の16進文字列を作成 します。 表 5–53. dimage5 構文 string:= dimage(vec) 引数の範囲 vec 戻り値の範囲 文字列 入力引数を 5 桁の 10 進数形式で返します。必要に応じて先頭に 0 が埋め込まれ ます。戻りデータは範囲が 40 ∼ 1 の reg 型です。 範囲が 31 ∼ 0 の reg 型入力データ 値を表現できない場合は、文字 U が返されます。 5–66 PCI Express Compiler Version 6.1 PCI Express コンパイラ・ユーザガイド Altera Corporation 2006 年 12 月 テストベンチおよび デザイン例 dimage6 このファンクションは、より大きなサイズのメッセージ文字列に連結し、 ebfm_displayに渡すことができる入力引数の6 桁の16進文字列を作成 します。 表 5–54. dimage6 構文 string:= dimage(vec) 引数の範囲 vec 戻り値の範囲 文字列 入力引数を 6 桁の 10 進数形式で返します。必要に応じて先頭に 0 が埋め込まれ ます。戻りデータは範囲 48 ∼ 1 の reg 型です。 範囲が 31 ∼ 0 の reg 型入力データ 値を表現できない場合は、文字 U が返されます。 dimage7 このファンクションは、より大きなサイズのメッセージ文字列に連結し、 ebfm_displayに渡すことができる入力引数の7 桁の16進文字列を作成 します。 表 5–55. dimage7 構文 string:= dimage(vec) 引数の範囲 vec 戻り値の範囲 文字列 入力引数を 7 桁の 10 進数形式で返します。必要に応じて先頭に 0 が埋め込まれ ます。戻りデータは範囲が 56 ∼ 1 の reg 型です。 範囲が 31 ∼ 0 の reg 型入力データ 値を表現できない場合は、文字 U が返されます。 Altera Corporation 2006 年 12 月 PCI Express Compiler Version 6.1 5–67 PCI Express コンパイラ・ユーザガイド BFM プロシージャおよびファンクション チェイニングDMAデザイン固有のプロシージャおよびファ ンクション この項では、チェイニング DMA のデザイン例に固有のプロシージャに ついて説明します。 chained_dma_test プロシージャ chained_dma_test プロシージャは、チェイニング DMA リードおよび チェイニングDMAライトを実行するトップ・レベル・プロシージャです。 表 5–56. chained_dma_test プロシージャ 構文 chained_dma_test (bar_table, bar_num, direction, use_msi, use_eplast) 引数 bar_table BFM 共有メモリのエンドポイント bar_table 構造のアドレス bar_num 解析する BAR 番号 direction 0 の場合 Æ 読み出し 1 の場合 Æ 書き込み 2 の場合 Æ 読み出してから書き込み 3 の場合 Æ 書き込んでから読み出し Use_msi この引数が設定されると、ルート・ポートはネイティブ PCI express MSI を使 用して DMA 完了を検出します。 Use_eplast この引数が設定されると、ルート・ポートは BFM 共有メモリ・ポーリングを 使用して DMA 完了を検出します。 dma_rd_test プロシージャ dma_rd_test プロシージャは、エンドポイント・メモリから BFM 共有 メモリへの DMA リードに使用します。 表 5–57. dma_rd_test プロシージャ 構文 dma_rd_test (bar_table, bar_num, use_msi, use_eplast) 引数 bar_table BFM 共有メモリのエンドポイント bar_table 構造のアドレス bar_num 解析する BAR 番号 Use_msi この引数が設定されると、ルート・ポートはネイティブ PCI express MSI を使用して DMA 完了を検出します。 Use_eplast この引数が設定されると、ルート・ポートは BFM 共有メモリ・ポーリン グを使用して DMA 完了を検出します。 5–68 PCI Express Compiler Version 6.1 PCI Express コンパイラ・ユーザガイド Altera Corporation 2006 年 12 月 テストベンチおよび デザイン例 dma_wr_test プロシージャ dma_wr_test プロシージャは、BFM 共有メモリからエンドポイント・ メモリへの DMA ライトに使用します。 表 5–58. dma_wr_test プロシージャ 構文 dma_wr_test (bar_table, bar_num, use_msi, use_eplast) 引数 bar_table BFM 共有メモリのエンドポイント bar_table 構造のアドレス bar_num 解析する BAR 番号 Use_msi この引数が設定されると、ルート・ポートはネイティブ PCI express MSI を使用して DMA 完了を検出します。 Use_eplast この引数が設定されると、ルート・ポートは BFM 共有メモリ・ポーリ ングを使用して DMA 完了を検出します。 dma_set_rd_desc_data プロシージャ dma_set_rd_desc_data プロシージャは、BFM 共有メモリを DMA リード用にコンフィギュレーションするのに使用します。 表 5–59. dma_set_rd_desc_data プロシージャ 構文 dma_set_rd_desc_data (bar_table, bar_num) 引数 bar_table BFM 共有メモリのエンドポイント bar_table 構造のアドレス bar_num 解析する BAR 番号 dma_set_wr_desc_data プロシージャ dma_set_wr_desc_data プロシージャは、BFM 共有メモリを DMA ラ イト用にコンフィギュレーションするのに使用します。 表 5–60. dma_set_wr_desc_data プロシージャ 構文 dma_set_wr_desc_data (bar_table, bar_num) 引数 bar_table BFM 共有メモリのエンドポイント bar_table 構造のアドレス bar_num 解析する BAR 番号 Altera Corporation 2006 年 12 月 PCI Express Compiler Version 6.1 5–69 PCI Express コンパイラ・ユーザガイド BFM プロシージャおよびファンクション dma_set_header プロシージャ dma_set_header プロシージャは、DMA リードまたは DMA ライト用 DMA ディスクリプタ・テーブルをコンフィギュレーションするのに使 用します。 表 5–61. dma_set_wr_desc_data プロシージャ 構文 dma_set_wr_desc_data (bar_table, bar_num) 引数 bar_table BFM 共有メモリのエンドポイント bar_table 構造のアドレス bar_num 解析する BAR 番号 Descriptor_size ディスクリプタ数 direction 0 の場合 Æ 読み出し 1 の場合 Æ 書き込み Use_msi この引数が設定されると、ルート・ポートはネイティブ PCI express MSI を使用して DMA 完了を検出します。 Use_eplast この引数が設定されると、ルート・ポートは BFM 共有メモリ・ ポーリングを使用して DMA 完了を検出します。 Bdt_msb BFM 共有メモリの上位アドレス値 Bdt_lsb BFM 共有メモリの下位アドレス値 Msi number use_msi が設定されている場合、この引数により dma_set_msi プロシージャで設定する msi 番号を指定します。 Msi_traffic_class use_msi が設定されている場合、この引数により dma_set_msi プロシージャで設定する MSI トラフィック・クラスを指定しま す。 msi_expected_dmawr use_msi が設定されている場合、この引数により dma_set_msi プロシージャで設定する MSI データの期待値を指定します。 Multi_message_enable use_msi が設定されている場合、この引数により dma_set_msi プロシージャで設定する MSI トラフィック・クラスを指定しま す。 5–70 PCI Express Compiler Version 6.1 PCI Express コンパイラ・ユーザガイド Altera Corporation 2006 年 12 月 テストベンチおよび デザイン例 rc_poll プロシージャ rc_pollプロシージャは、与えられたBFM共有メモリ位置のDWORDを ポーリングするのに使用します。 表 5–62. rc_poll プロシージャ 構文 rc_poll (rc_addr, rc_data) 引数 rc_addr ポーリングする BFM 共有メモリのアドレス rc_data ポーリングするデータの期待値 msi_poll プロシージャ msi_poll プロシージャは、エンドポイントから MSI コンプリーション を追跡します。 表 5–63. msi_poll プロシージャ 構文 dma_set_wr_desc_data (bar_table, bar_num) 引数 Dma_read この引数が設定されると、DMA リード・モジュールからの MSI をポーリングします。 Dma_write この引数が設定されると、DMA ライト・モジュールからの MSI をポーリングします。 Msi number use_msi が設定されている場合、この引数により dma_set_msi プロシージャで設定する msi 番号を指定します。 Msi_traffic_class use_msi が設定されている場合、この引数により dma_set_msi プロシージャで設定する MSI トラフィック・クラスを指定し ます。 msi_expected_dmawr use_msi が設定されている場合、この引数により dma_set_msi プロシージャで設定する MSI データの期待値を指定します。 Multi_message_enable use_msi が設定されている場合、この引数により dma_set_msi プロシージャで設定する MSI トラフィック・クラスを指定し ます。 Altera Corporation 2006 年 12 月 PCI Express Compiler Version 6.1 5–71 PCI Express コンパイラ・ユーザガイド BFM プロシージャおよびファンクション dma_set_msi プロシージャ dma_set_msiプロシージャは、PCI ExpressネイティブMSIをDMAリー ドまたは DMA ライト用に設定します。. 表 5–64. dma_set_msi プロシージャ 構文 et_msi (bar_table, bar_num) 引数 bar_table BFM 共有メモリのエンドポイント bar_table 構造のアドレス bar_num 解析する BAR 番号 Bus_num コンフィギュレーション・バス番号を設定します dev_num コンフィギュレーション・デバイス番号を設定します Fun_num コンフィギュレーション・ファンクション番号を設定します Direction 0 の場合 Æ 読み出し 1 の場合 Æ 書き込み Msi number msi 番号を返します Msi_traffic_class MSI トラフィック・クラス値を返します。 msi_expected_dmawr MSI データの期待値を返します。 Multi_message_enable MSI マルチ・メッセージ・イネーブル・ステータスを返します。 5–72 PCI Express Compiler Version 6.1 PCI Express コンパイラ・ユーザガイド Altera Corporation 2006 年 12 月 付録 A. コンフィギュレーション信号 X1 および x4 MegaCore ファンクション のコンフィギュ レーション信号 表 A–1に、x1およびx4 MegaCoreファンクションに使用できるMegaCore ファンクションのすべてのコンフィギュレーション信号を示します。こ れらの信号は、Quartus II ソフトウェアで作成されるバリエーション・ ファイルの内部で設定されます。MegaWizard インタフェースを使用す る場合を除き、これらの信号を変更してはなりません。ここに示すコン フィギュレーション信号は参照用です。 表 A–1. X1 および x4 MegaCore ファンクションのコンフィギュレーション信号 (1 / 6) 信号 値またはウィザード・ ページ / ラベル 説明 k_gbl[0] 0 に固定 PCI Express 仕様準拠の設定。値を 1 に設定すると、 MegaCore ファンクションは PCI Express 1.1 仕様準拠 として設定されます。 値を 0 に設定すると、MegaCore ファンクションは PCI Express 1.0a 仕様準拠として設定されます。 k_gbl[9:1] 0 に固定 Reserved k_gbl[10] Capabilities: Link Common Clock クロック・コンフィギュレーション、0 = システム・リ ファレンス・クロック不使用、1 = PHY にシステム・ リファレンス・クロックを使用。 k_gbl[11] 0 に固定 Reserved k_gbl[15:12] System: Interface Type ポート・タイプ : 0 = ネイティブ EP、1 = レガシー EP。 k_gbl[25:16] 0 に固定 Reserved k_gbl[26] 1 に固定 受信パスにリオーダリングを実装。 k_gbl[31:27] 0 に固定 Reserved k_conf[15:0] Capabilities: Vendor ID ベンダ ID レジスタ。 k_conf[31:16] Capabilities: Device ID デバイス ID レジスタ。 k_conf[39:32] Capabilities: Revision ID リビジョン ID レジスタ。 k_conf[63:40] Capabilities: Class Code クラス・コード・レジスタ。 k_conf[79:64] Capabilities: Subsystem Vendor ID サブシステム・ベンダ ID レジスタ。 k_conf[95:80] Capabilities: Subsystem Device ID サブシステム・デバイス ID レジスタ。 Altera Corporation 2006 年 12 月 PCI Express Compiler Version 6.1 A–1 X1 および x4 MegaCore ファンクションのコンフィギュレーション信号 表 A–1. X1 および x4 MegaCore ファンクションのコンフィギュレーション信号 (2 / 6) 信号 値またはウィザード・ ページ / ラベル 説明 k_conf[98:96] 0b010 に固定 パワー・マネージメント機能レジスタのバージョン・ フィールド(010 に設定)。 k_conf[99] 0 に固定 パワー・マネージメント機能レジスタのPME クロッ ク・フィールド k_conf[100] 0 に固定 Reserved k_conf[101] 0 に固定 パワー・マネージメント機能レジスタのデバイス固有 の初期化(DSI)フィールド。 k_conf[104:102] 0 に固定 パワー・マネージメント機能レジスタの d3cold での PME サポート時に必要な最大補助電流。 k_conf[105] 0 に固定 パワー・マネージメント機能レジスタ D1 サポート・ ビット。 k_conf[106] 0 に固定 パワー・マネージメント機能レジスタ D2 サポート・ ビット。 k_conf[107] 0 に固定 パワー・マネージメント機能レジスタの PME メッセー ジは、D0 ステート・ビットで送信できます。 k_conf[108] 0 に固定 パワー・マネージメント機能レジスタの PME メッセー ジは、D1 ステート・ビットで送信できます。 k_conf[109] 0 に固定 パワー・マネージメント機能レジスタの PME メッセー ジは、D2 ステート・ビットで送信できます。 k_conf[110] 0 に固定 パワー・マネージメント機能レジスタの PME メッセー ジは、D3 ホット・ステート・ビットで送信できます。 k_conf[111] 0 に固定 パワー・マネージメント機能レジスタの PME メッセー ジは、D3 コールド・ステート・ビットで送信できます。 k_conf[112] Capabilities: Implement AER アドバンスト・エラー報告機能をサポート。 k_conf[115:113] Buffer Setup: Low Priority ポート VC 機能レジスタ 1 低優先度 VC フィールド。 Virtual Channels k_conf[119:116] 0b0001 に固定 ポート VC 機能レジスタ 2 の VC アービトレーション 機能フィールド。 k_conf[127:120] 0 に固定 Reserved k_conf[130:128] 0 に固定 Reserved k_conf[132:131] 0 に固定 Reserved k_conf[133] Calculated デバイス機能レジスタ : 拡張タグ・フィールドをサポー ト。タグ数が > 32 のとき 1 に設定。 A–2 PCI Express Compiler Version 6.1 PCI Express コンパイラ・ユーザガイド Altera Corporation 2006 年 12 月 表 A–1. X1 および x4 MegaCore ファンクションのコンフィギュレーション信号 (3 / 6) 信号 値またはウィザード・ ページ / ラベル 説明 k_conf[136:134] Power Management: Endpoint L0s Acceptable Latency デバイス機能レジスタ : エンドポイント L0s 許容レイ テンシ。0 = < 64 ns、1 = 64 - 128 ns、2 = 128 - 256 ns、 3 = 256 - 512 ns、4 = 512 ns - 1 µs、5 = 1 - 2 µs、6 = 2 4 µs、7 => 4 µs k_conf[139:137] Power Management: Endpoint L1 Acceptable Latency デバイス機能レジスタ : エンドポイント L1 許容レイテ ンシ。0 =< 1 µs、1 = 1 - 2 µs、2 = 2 - 4 µs、3 = 4 - 8 µs、 4 = 8 - 16 µs、5 = 16 - 32 µs、6 = 32 - 64 µs、7 => 64 µs k_conf[143:140] 0 に固定 Reserved k_conf[145:144] 0 に固定 Reserved k_conf[151:146] レーン数から計算 リンク機能レジスタ : 最大リンク幅。1=x1、4 = x4、そ の他 = reserved。 k_conf[153:152] Power Management: Enable L1 ASPM リンク機能レジスタ : アクティブ・ステート・パワー・ マネージメント・サポート。01 = L0s、11 = L1 と L0s。 k_conf[156:154] Power Management: L1 Exit Latency Common Clock リンク機能レジスタ : L1 終了レイテンシ – 個別クロッ ク。0 =< 1 µs、1 = 1 - 2 µs、2 = 2 - 4 µs、3 = 4 - 8 µs、4 = 8 - 16 µs、5 = 16 - 32 µs、6 = 32 - 64 µs、7 => 64 µs k_conf[159:157] Power Management: L1 Exit Latency Separate Clock リンク機能レジスタ : L1 終了レイテンシ – 共通クロッ ク。0 =< 1 µs、1 = 1 - 2 µs、2 = 2 - 4 µs、3 = 4 - 8 µs、4 = 8 - 16 µs、5 = 16 - 32 µs、6 = 32 - 64 µs、7 => 64 µs k_conf[166:160] 0 に固定 Reserved k_conf[169:167] Capabilities: Tags Supported 送信された Non-Posted リクエストにサポートされる タグ数。 k_conf[191:170] 0 に固定 Reserved k_conf[199:192] Power Management: N_FTS Separate 個別クロック・モードで必要となる高速トレーニング・ シーケンスの数(N_FTS)。 k_conf[207:200] Power Management: N_FTS Common 共通クロック・モードで必要となる高速トレーニング・ シーケンスの数(N_FTS)。 k_conf[215:208] Capabilities: Link Port Number リンク機能レジスタ : ポート番号。 k_conf[216] Capabilities: Implement ECRC Check アドバンスド・エラー機能レジスタ : ECRC 検査イネー ブル。 k_conf[217] Capabilities: Implement ECRC Generation アドバンスド・エラー機能レジスタ : ECRC 生成イネー ブル。 k_conf[218] 0 に固定 Reserved Altera Corporation 2006 年 12 月 PCI Express Compiler Version 6.1 A–3 PCI Express コンパイラ・ユーザガイド X1 および x4 MegaCore ファンクションのコンフィギュレーション信号 表 A–1. X1 および x4 MegaCore ファンクションのコンフィギュレーション信号 (4 / 6) 信号 値またはウィザード・ ページ / ラベル 説明 k_conf[221:219] Capabilities: MSI Messages Requested k_conf[222] Capabilities: MSI Message MSI 機能メッセージ・コントロール・レジスタ : 64 ビッ 64 bit Capable ト機能。0 = 32b、1 = 64b または 32b。 k_conf[223] Capabilities: MSI Per Vector Masking k_bar[31:0] System: BAR Table (BAR0) BAR0 サイズ・マスクと読み出し専用フィールド(I/O スペース、メモリ・スペース、プリフェッチ可能) 。ビッ ト 31-4 = サイズ・マスク、ビット 3 = プリフェッチ可 能、ビット 2 = 64 ビット、ビット 1 = 0、ビット 0 = I/O。 k_bar[63:32] System: BAR Table (BAR1) BAR1 サイズ・マスクと読み出し専用フィールド(I/O スペース、メモリ・スペース、プリフェッチ可能) 。ビッ ト 31-4 = サイズ・マスク、ビット 3 = プリフェッチ可 能、ビット 2 = 64 ビット、ビット 1 = 0、ビット 0 = I/O (または旧 64 ビットの場合は、ビット 31-0 = サイズ・ マスク) 。 k_bar[95:64] System: BAR Table (BAR2) BAR2 サイズ・マスクと読み出し専用フィールド(I/O スペース、メモリ・スペース、プリフェッチ可能) 。ビッ ト 31-4 = サイズ・マスク、ビット 3 = プリフェッチ可 能、ビット 2 = 64 ビット、ビット 1 = 0、ビット 0 = I/O。 k_bar[127:96] System: BAR Table (BAR3) BAR3 サイズ・マスクと読み出し専用フィールド(I/O スペース、メモリ・スペース、プリフェッチ可能) 。ビッ ト 31-4 = サイズ・マスク、ビット 3 = プリフェッチ可 能、ビット 2 = 64 ビット、ビット 1 = 0、ビット 0 = I/O (または旧 64 ビットの場合は、ビット 31-0 = サイズ・ マスク) 。 k_bar[159:128] System: BAR Table (BAR4) BAR4 サイズ・マスクと読み出し専用フィールド(I/O スペース、メモリ・スペース、プリフェッチ可能) 。ビッ ト 31-4 = サイズ・マスク、ビット 3 = プリフェッチ可 能、ビット 2 = 64 ビット、ビット 1 = 0、ビット 0 = I/O。 k_bar[191:160] System: BAR Table (BAR5) BAR5 サイズ・マスクと読み出し専用フィールド(I/O スペース、メモリ・スペース、プリフェッチ可能) 。ビッ ト 31-4 = サイズ・マスク、ビット 3 = プリフェッチ可 能、ビット 2 = 64 ビット、ビット 1 = 0、ビット 0 = I/O (または旧 64 ビットの場合は、ビット 31-0 = サイズ・ マスク) 。 k_bar[223:192] System: BAR Table (Exp ROM) MSI 機能メッセージ・コントロール・レジスタ : 複数 のメッセージが可能な要求フィールド。0 = 1 メッセー ジ、1 = 2 メッセージ、2 = 4 メッセージ、3 = 8 メッセー ジ、4 = 16 メッセージ、5 = 32 メッセージ。 ビット別ベクター・マスキング(RO フィールド) 。 拡張 ROM BAR サイズ・マスク。ビット 31-11 = サイ ズ・マスク、ビット 10-1 = 0、ビット 0 = イネーブル。 A–4 PCI Express Compiler Version 6.1 PCI Express コンパイラ・ユーザガイド Altera Corporation 2006 年 12 月 表 A–1. X1 および x4 MegaCore ファンクションのコンフィギュレーション信号 (5 / 6) 信号 値またはウィザード・ ページ / ラベル 説明 k_cnt[95:0] 0 に固定 Reserved k_cnt[106:96] 17 に固定 フロー制御初期化タイマ(単位 µs)。サイクル数。 k_cnt[111:107] Power Management: Idle Threshold for L0s Entry L0s エントリのアイドル・スレッショルド値(256ns ス テップ) k_cnt[116:112] 30 に固定 k_cnt[119:117] 0 に固定 Reserved k_cnt[127:120] 200 に固定 フロー制御タイムアウト検査(単位 µs) 。 k_vc0[7:0] Calculated: VC Table Posted Header Credit VC0 Posted ヘッダの受信フロー制御クレジット。 k_vc0[19:8] Calculated: VC Table Posted Data Credit VC0 Posted データの受信フロー制御クレジット。 k_vc0[27:20] Calculated: VC Table Non- VC0 Non-Posted ヘッダの受信フロー制御クレジット。 Posted Header Credit k_vc0[35:28] 0 に固定 VC0 Non-Posted データの受信フロー制御クレジット。 Rx バッファは常に、Non-Posted ライト(コンフィギュ レーション・ライトまたは I/O ライト)に対して送信 できる最大 1 DWORD のデータのスペースを備えてい ます。 k_vc0[43:36] 0 に固定 VC0 コンプリーション・ヘッダの受信フロー制御クレ ジット。エンドポイントで無限のコンプリーション・ クレジットをアドバタイズする必要があります。 k_vc0[55:44] 0 に固定 VC0 コンプリーション・データの受信フロー制御クレ ジット。エンドポイントで無限のコンプリーション・ クレジットをアドバタイズする必要があります。 k_vc1[7:0] Calculated: VC Table Posted Header Credit VC1 Posted ヘッダの受信フロー制御クレジット。 k_vc1[19:8] Calculated: VC Table Posted Data Credit VC1 Posted データの受信フロー制御クレジット。 k_vc1[27:20] Calculated: VC Table Non- VC1 Non-Posted ヘッダの受信フロー制御クレジット。 Posted Header Credit k_vc1[35:28] 0 に固定 VC1 Non-Posted データの受信フロー制御クレジット。 Non-Posted ライト(コンフィギュレーションおよび I/O ライト)は VC0 のみ使用します。 k_vc1[43:36] 0 に固定 VC1 コンプリーション・ヘッダの受信フロー制御クレ ジット。エンドポイントで無限のコンプリーション・ クレジットをアドバタイズする必要があります。 Altera Corporation 2006 年 12 月 アップデート・フロー制御クレジット・タイマ (単位 µs) 。 PCI Express Compiler Version 6.1 A–5 PCI Express コンパイラ・ユーザガイド X1 および x4 MegaCore ファンクションのコンフィギュレーション信号 表 A–1. X1 および x4 MegaCore ファンクションのコンフィギュレーション信号 (6 / 6) 信号 値またはウィザード・ ページ / ラベル 説明 k_vc1[55:44] 0 に固定 VC1 コンプリーション・データの受信フロー制御クレ ジット。エンドポイントで無限のコンプリーション・ クレジットをアドバタイズする必要があります。 k_vc2[7:0] Calculated: VC Table Posted Header Credit VC2 Posted ヘッダの受信フロー制御クレジット。 k_vc2[19:8] Calculated: VC Table Posted Data Credit VC2 Posted データの受信フロー制御クレジット。 k_vc2[27:20] Calculated: VC Table Non- VC2 Non-Posted ヘッダの受信フロー制御クレジット。 Posted Header Credit k_vc2[35:28] 0 に固定 VC2 Non-Posted データの受信フロー制御クレジット。 Non-Posted ライト(コンフィギュレーションおよび I/O ライト)は VC0 のみ使用します。 k_vc2[43:36] 0 に固定 VC2 コンプリーション・ヘッダの受信フロー制御クレ ジット。エンドポイントで無限のコンプリーション・ クレジットをアドバタイズする必要があります。 k_vc2[55:44] 0 に固定 VC2 コンプリーション・データの受信フロー制御クレ ジット。エンドポイントで無限のコンプリーション・ クレジットをアドバタイズする必要があります。 k_vc3[7:0] Calculated: VC Table Posted Header Credit VC3 Posted ヘッダの受信フロー制御クレジット。 k_vc3[19:8] Calculated: VC Table Posted Data Credit VC3 Posted データの受信フロー制御クレジット。 k_vc3[27:20] Calculated: VC Table Non- VC3 Non-Posted ヘッダの受信フロー制御クレジット。 Posted Header Credit k_vc3[35:28] 0 に固定 VC3 Non-Posted データの受信フロー制御クレジット。 Non-Posted ライト(コンフィギュレーションおよび I/O ライト)は VC0 のみ使用します。 k_vc3[43:36] 0 に固定 VC3 コンプリーション・ヘッダの受信フロー制御クレ ジット。エンドポイントで無限のコンプリーション・ クレジットをアドバタイズする必要があります。 k_vc3[55:44] 0 に固定 VC3 コンプリーション・データの受信フロー制御クレ ジット。エンドポイントで無限のコンプリーション・ クレジットをアドバタイズする必要があります。 A–6 PCI Express Compiler Version 6.1 PCI Express コンパイラ・ユーザガイド Altera Corporation 2006 年 12 月 X8 MegaCore ファンクション のコンフィギュ レーション信号 表 A–2 に、x8 MegaCore ファンクションのコンフィギュレーション信号 をリストし、簡単に説明します。これらの信号は、MegaWizard インタ フェースで作成されるバリエーション・ファイルの内部で設定されます。 MegaWizard インタフェースを使用する場合を除き、これらの信号を変 更してはなりません。ここに示すコンフィギュレーション信号は参照用 です。 表 A–2. X8 MegaCore ファンクションのコンフィギュレーション信号 (1 / 4) 信号 値またはウィザード・ ページ / ラベル 説明 k_gbl[0] 0 に固定 PCI Express 仕様準拠の設定。値を 1 に設定すると、MegaCore ファンクションはPCI Express 1.1仕様準拠として設定されます。 値を 0 に設定すると、 MegaCore ファンクションは PCI Express 1.0a 仕様準拠として設定されます。 k_gbl[9:1] 0 に固定 Reserved k_epleg System: Interface Type Endpoint Type:この信号はコアをレガシーまたはネイティブ・ エンドポイントとして設定します。 0: ネイティブ・エンドポイント 1: レガシー・エンドポイント k_rxro 1 に固定 Receive Reordering: この信号は受信パス上にリオーダリング 機能を実装します。 0: 受信リオーダリングを実装しない 1: 受信リオーダリングを実装する k_conf[15:0] Capabilities: Vendor ID ベンダ ID レジスタ。 k_conf[31:16] Capabilities: Device ID デバイス ID レジスタ。 k_conf[39:32] Capabilities: Revision ID リビジョン ID レジスタ。 k_conf[63:40] Capabilities: Class Code クラス・コード・レジスタ。 k_conf[79:64] Capabilities: Subsystem Vendor ID サブシステム・ベンダ ID レジスタ。 k_conf[95:80] Capabilities: Subsystem Device ID サブシステム・デバイス ID レジスタ。 k_conf[98:96] 0b010 に固定 パワー・マネージメント機能レジスタのバージョン・フィー ルド(010 に設定)。 k_conf[99] 0 に固定 パワー・マネージメント機能レジスタのPMEクロック・フィー ルド k_conf[100] 0 に固定 Reserved k_conf[101] 0 に固定 パワー・マネージメント機能レジスタのデバイス固有の初期 化(DSI)フィールド。 k_conf[104:102] 0 に固定 パワー・マネージメント機能レジスタの d3cold での PME サ ポート時に必要な最大補助電流。 Altera Corporation 2006 年 12 月 PCI Express Compiler Version 6.1 A–7 PCI Express コンパイラ・ユーザガイド X8 MegaCore ファンクションのコンフィギュレーション信号 表 A–2. X8 MegaCore ファンクションのコンフィギュレーション信号 (2 / 4) 信号 値またはウィザード・ ページ / ラベル 説明 k_conf[105] 0 に固定 パワー・マネージメント機能レジスタの D1 サポート・ビット。 k_conf[106] 0 に固定 パワー・マネージメント機能レジスタの D2 サポート・ビット。 k_conf[107] 0 に固定 パワー・マネージメント機能レジスタの PME メッセージは、 D0 ステート・ビットで送信できます。 k_conf[108] 0 に固定 パワー・マネージメント機能レジスタの PME メッセージは、 D1 ステート・ビットで送信できます。 k_conf[109] 0 に固定 パワー・マネージメント機能レジスタの PME メッセージは、 D2 ステート・ビットで送信できます。 k_conf[110] 0 に固定 パワー・マネージメント機能レジスタの PME メッセージは、 D3 ホット・ステート・ビットで送信できます。 k_conf[111] 0 に固定 パワー・マネージメント機能レジスタの PME メッセージは、 D3 コールド・ステート・ビットで送信できます。 k_conf[112] 0 に固定 Reserved k_conf[115:113] Buffer Setup: Low ポート VC 機能レジスタ 1 の低優先度 VC フィールド。 Priority Virtual Channels k_conf[119:116] 0b0001 に固定 ポート VC 機能レジスタ 2 の VC アービトレーション機能 フィールド。 k_conf[127:120] 0 に固定 Reserved k_conf[130:128] 0 に固定 Reserved k_conf[132:131] 0 に固定 Reserved k_conf[133] Reserved 0 に固定 k_conf[136:134] Power Management: Endpoint L0s Acceptable Latency デバイス機能レジスタ : エンドポイント L0s 許容レイテンシ。 0 = < 64 ns、1 = 64 - 128 ns、2 = 128 - 256 ns、3 = 256 - 512 ns、 4 = 512 ns - 1 µs、5 = 1 - 2 µs、6 = 2 - 4 µs、7 => 4 µs k_conf[139:137] Power Management: デバイス機能レジスタ : エンドポイント L1 許容レイテンシ。 0 =< 1 µs、1 = 1 - 2 µs、2 = 2 - 4 µs、3 = 4 - 8 µs、4 = 8 - 16 µs、 5 = 16 - 32 µs、6 = 32 - 64 µs、7 => 64 µs Endpoint L1 Acceptable Latency k_conf[143:140] 0 に固定 Reserved k_conf[145:144] 0 に固定 Reserved k_conf[151:146] レーン数から計算 リンク機能レジスタ : 最大リンク幅。1 = x1、4 = x4、その他 = Reserved。 k_conf[153:152] Power Management: リンク機能レジスタ : アクティブ・ステート・パワー・マネー ジメント・サポート。01 = L0s、11 = L1 と L0s。 Enable L1 ASPM A–8 PCI Express Compiler Version 6.1 PCI Express コンパイラ・ユーザガイド Altera Corporation 2006 年 12 月 表 A–2. X8 MegaCore ファンクションのコンフィギュレーション信号 (3 / 4) 信号 値またはウィザード・ ページ / ラベル k_conf[156:154] Power Management: L1 Exit Latency Common Clock k_conf[159:157] Power Management: L1 Exit Latency Separate Clock 説明 リンク機能レジスタ :L1 終了レイテンシ – 個別クロック。0 =< 1 µs、1 = 1 - 2 µs、2 = 2 - 4 µs、3 = 4 - 8 µs、4 = 8 - 16 µs、5 = 16 - 32 µs、6 = 32 - 64 µs、7 => 64 µs リンク機能レジスタ :L1 終了レイテンシ – 共通クロック。0 =< 1 µs、1 = 1 - 2 µs、2 = 2 - 4 µs、3 = 4 - 8 µs、4 = 8 - 16 µs、5 = 16 - 32 µs、6 = 32 - 64 µs、7 => 64 µs k_conf[166:160] 0 に固定 Reserved k_conf[169:167] Capabilities: Tags 送信された Non-Posted リクエストにサポートされるタグ数。 Supported k_conf[191:170] 0 に固定 Reserved k_conf[199:192] Power Management: 個別クロック・モードで必要となる高速トレーニング・シー ケンスの数(N_FTS)。 N_FTS Separate k_conf[207:200] Power Management: N_FTS Common 共通クロック・モードで必要となる高速トレーニング・シー ケンスの数(N_FTS)。 k_conf[215:208] Capabilities: Link Port リンク機能レジスタ : ポート番号。 Number k_conf[216] 0 に固定 Reserved k_conf[217] 0 に固定 Reserved k_conf[218] 0 に固定 Reserved k_conf[221:219] Capabilities: MSI Messages Requested MSI 機能メッセージ・コントロール・レジスタ : 複数のメッ セージが可能な要求フィールド。0 = 1 メッセージ、1 = 2 メッ セージ、2 = 4 メッセージ、3 = 8 メッセージ、4 = 16 メッセー ジ、5 = 32 メッセージ。 k_conf[222] Capabilities: MSI MSI 機能メッセージ・コントロール・レジスタ :64 ビット機 Message 64 bit Capable 能。0 = 32b、1 = 64b または 32b。 k_conf[223] Capabilities: MSI Per Vector Masking ビット別ベクター・マスキング(RO フィールド) 。 k_bar[31:0] System: BAR Table (BAR0) BAR0 サイズ・マスクと読み出し専用フィールド(I/O スペー ス、メモリ・スペース、プリフェッチ可能)。ビット 31-4 = サ イズ・マスク、ビット 3 = プリフェッチ可能、ビット 2 = 64 ビット、ビット 1 = 0、ビット 0 = I/O。 k_bar[63:32] System: BAR Table (BAR1) BAR1 サイズ・マスクと読み出し専用フィールド(I/O スペー ス、メモリ・スペース、プリフェッチ可能)。ビット 31-4 = サ イズ・マスク、ビット 3 = プリフェッチ可能、ビット 2 = 64 ビット、ビット 1 = 0、ビット 0 = I/O(または旧 64 ビットの 場合は、ビット 31-0 = サイズ・マスク)。 Altera Corporation 2006 年 12 月 PCI Express Compiler Version 6.1 A–9 PCI Express コンパイラ・ユーザガイド X8 MegaCore ファンクションのコンフィギュレーション信号 表 A–2. X8 MegaCore ファンクションのコンフィギュレーション信号 (4 / 4) 信号 値またはウィザード・ ページ / ラベル 説明 k_bar[95:64] System: BAR Table (BAR2) BAR2 サイズ・マスクと読み出し専用フィールド(I/O スペー ス、メモリ・スペース、プリフェッチ可能)。ビット 31-4 = サ イズ・マスク、ビット 3 = プリフェッチ可能、ビット 2 = 64 ビット、ビット 1 = 0、ビット 0 = I/O。 k_bar[127:96] System: BAR Table (BAR3) BAR3 サイズ・マスクと読み出し専用フィールド(I/O スペー ス、メモリ・スペース、プリフェッチ可能)。ビット 31-4 = サ イズ・マスク、ビット 3 = プリフェッチ可能、ビット 2 = 64 ビット、ビット 1 = 0、ビット 0 = I/O(または旧 64 ビットの 場合は、ビット 31-0 = サイズ・マスク)。 k_bar[159:128] System: BAR Table (BAR4) BAR4 サイズ・マスクと読み出し専用フィールド(I/O スペー ス、メモリ・スペース、プリフェッチ可能)。ビット 31-4 = サ イズ・マスク、ビット 3 = プリフェッチ可能、ビット 2 = 64 ビット、ビット 1 = 0、ビット 0 = I/O。 k_bar[191:160] System: BAR Table (BAR5) BAR5 サイズ・マスクと読み出し専用フィールド(I/O スペー ス、メモリ・スペース、プリフェッチ可能)。ビット 31-4 = サ イズ・マスク、ビット 3 = プリフェッチ可能、ビット 2 = 64 ビット、ビット 1 = 0、ビット 0 = I/O(または旧 64 ビットの 場合は、ビット 31-0 = サイズ・マスク)。 k_bar[223:192] System: BAR Table (Exp ROM) 拡張 ROM BAR サイズ・マスク。ビット 31-11 = サイズ・マ スク、ビット 10-1 = 0、ビット 0 = イネーブル。 k_cnt[10:0] 17 に固定 フロー制御初期化タイマ(単位 µs)。サイクル数。 k_cnt[15:11] Power Management: Idle Threshold for L0s Entry L0s エントリのアイドル・スレッショルド値 (256 ns ステップ) k_cnt[20:12] 30 に固定 アップデート・フロー制御クレジット・タイマ(単位 µs)。 k_cnt[23:21] 0 に固定 Reserved k_cnt[35:24] 200 に固定 フロー制御タイムアウト検査(単位 µs) 。 k_cred0[7:0] Calculated: VC Table Posted Header Credit VC0 Posted ヘッダの受信フロー制御クレジット。 k_cred0[19:8] Calculated: VC Table Posted Data Credit VC0 Posted データの受信フロー制御クレジット。 k_cred0[27:20] Calculated: VC Table Non-Posted Header Credit VC0 Non-Posted ヘッダの受信フロー制御クレジット。 k_cred0[35:28] 0 に固定 VC0 Non-Posted データの受信フロー制御クレジット。Rx バッ ファは常に、Non-Posted ライト(コンフィギュレーションま たは I/O ライト)に対して送信できる最大 1 DWORD のデー タのスペースを備えています。 A–10 PCI Express Compiler Version 6.1 PCI Express コンパイラ・ユーザガイド Altera Corporation 2006 年 12 月 付録 B. トランザクション・レイヤ・ パケットのヘッダ・フォーマット データ・ペイ ロードを含まな いコンテンツ 表 B–2 から B–9 に、データ・ペイロードを含まないトランザクション・ レイヤ・パケットのヘッダ・フォーマットを示します。これらのヘッダ が tx_desc および rx_desc として MegaCore ファンクションとの間で 転送される場合、表 B–1 に示すマッピングが使用されます。 表 B–1. ヘッダのマッピング tx_desc/rx_desc ビット ヘッダ・バイト Altera Corporation 2006 年 12 月 バイト 0 127:120 バイト 1 119:112 バイト 2 111:104 バイト 3 103:96 バイト 4 95:88 バイト 5 87:80 バイト 6 79:72 バイト 7 71:64 バイト 8 63:56 バイト 9 55:48 バイト 10 47:40 バイト 11 39:32 バイト 12 31:24 バイト 13 23:16 バイト 14 15:8 バイト 15 7:0 PCI Express Compiler Version 6.1 B–1 データ・ペイロードを含むコンテンツ データ・ペイ ロードを含む コンテンツ 表 B–2 から B–9 に、データ・ペイロードを含むトランザクション・レイ ヤ・パケットのヘッダ定義内容を示します。 表 B–2. メモリ・ライト・リクエスト、32 ビット・アドレッシング +0 +1 +2 +3 7 6 5 4 3 2 1 0 7 6 5 4 3 2 1 0 7 バイト 0 0 1 0 0 0 0 0 0 0 TC バイト 4 リクエスタ ID 6 5 4 3 2 1 0 7 6 5 4 3 2 1 0 0 0 0 0 TD EP Attr 0 0 長さ タグ 末尾 BE 先頭 BE 0 0 バイト 8 アドレス [31:2] バイト12 R 表 B–3. メモリ・ライト・リクエスト、64 ビット・アドレッシング +0 +1 +2 7 6 5 4 3 2 1 0 7 6 5 4 3 2 1 0 7 バイト 0 0 1 1 0 0 0 0 0 0 TC バイト 4 リクエスタ ID +3 6 0 0 0 0 TD EP 5 4 3 2 1 0 7 6 5 4 3 2 1 0 Attr タグ 0 0 長さ 末尾 BE 先頭 BE バイト 8 アドレス [63:32] 0 0 バイト12 アドレス [31:2] 表 B–4. I/O 書き込みリクエスト +0 +1 +2 7 6 5 4 3 2 1 0 7 6 5 4 3 2 1 0 7 バイト 0 0 1 0 0 0 0 1 0 0 0 0 0 0 0 0 0 TD バイト 4 リクエスタ ID +3 6 5 4 3 2 1 0 7 6 5 4 3 2 1 0 EP 0 0 0 0 0 0 0 0 0 0 0 0 0 1 タグ バイト 8 アドレス [31:2] 0 0 0 0 先頭 BE 0 0 バイト12 R B–2 PCI Express Compiler Version 6.1 PCI Express コンパイラ・ユーザガイド Altera Corporation 2006 年 12 月 表 B–5. タイプ 0 コンフィギュレーション書き込みリクエスト +0 +1 +2 7 6 5 4 3 2 1 0 7 6 5 4 3 2 1 0 7 +3 6 5 4 3 2 1 0 7 6 5 4 3 2 1 0 バイト 0 0 1 0 0 0 1 0 0 0 0 0 0 0 0 0 0 TD EP 0 0 0 0 0 0 0 0 0 0 0 0 0 1 バイト 4 リクエスタ ID バイト 8 バス番号 0 0 0 0 先頭 BE タグ デバイス番号 Func 0 0 0 0 Ext.Reg. レジスタ番号 0 0 バイト12 R 表 B–6. タイプ 1 コンフィギュレーション書き込みリクエスト +0 +1 +2 7 6 5 4 3 2 1 0 7 6 5 4 3 2 1 0 7 +3 6 5 4 3 2 1 0 7 6 5 4 3 2 1 0 バイト 0 0 1 0 0 0 1 0 1 0 0 0 0 0 0 0 0 TD EP 0 0 0 0 0 0 0 0 0 0 0 0 0 1 バイト 4 リクエスタ ID バイト 8 バス番号 0 0 0 0 先頭 BE タグ デバイス番号 Func 0 0 0 0 Ext.Reg. 6 5 4 3 2 1 0 7 6 5 4 3 2 1 0 レジスタ番号 0 0 バイト12 R 表 B–7. コンプリーション・ウィズ・データ +0 +1 +2 7 6 5 4 3 2 1 0 7 6 5 4 3 2 1 0 7 バイト 0 0 1 0 0 1 0 1 0 0 TC +3 0 0 0 0 TD EP Attr 0 0 長さ バイト 4 コンプリータ ID ステータス B バイト数 バイト 8 リクエスタ ID タグ 0 下位アドレス バイト12 R 表 B–8. コンプリーション・ロックド・ウィズ・データ +0 +1 +2 7 6 5 4 3 2 1 0 7 6 5 4 3 2 1 0 7 バイト 0 0 1 0 0 1 0 1 1 0 TC +3 6 5 4 3 2 1 0 7 6 5 4 3 2 1 0 0 0 0 0 TD EP Attr 0 0 長さ バイト 4 コンプリータ ID ステータス B バイト数 バイト 8 リクエスタ ID タグ 0 下位アドレス バイト12 Altera Corporation 2006 年 12 月 PCI Express Compiler Version 6.1 B–3 PCI Express コンパイラ・ユーザガイド データ・ペイロードを含むコンテンツ 表 B–9. メッセージ・ウィズ・データ +0 +1 +2 7 6 5 4 3 2 1 0 7 6 5 4 3 2 1 0 7 バイト 0 0 1 1 1 0 r r r 2 1 0 バイト 4 リクエスタ ID 0 TC +3 6 5 4 3 2 1 0 7 6 5 4 3 2 1 0 0 0 0 0 TD EP 0 0 0 0 長さ タグ メッセージ・コード バイト 8 スロット電力制限のためのベンダ定義またはオール・ゼロ バイト12 スロット電力制限のためのベンダ定義またはオール・ゼロ B–4 PCI Express Compiler Version 6.1 PCI Express コンパイラ・ユーザガイド Altera Corporation 2006 年 12 月 付録 C. テスト・ポート・ インタフェース信号 テスト・ポートにはテスト・アウト信号とテスト・イン信号があり、PCI Express MegaCore ファンクションに観測機能および制御機能を追加し ます。 Altera Corporation 2006 年 12 月 ■ 出力ポートは MegaCore ファンクションの内部ノードを表示し、ス テート・マシンの状態や各エラー・タイプに対するエラー・カウン タなどの情報を提供します。 ■ 入力ポートはMegaCoreファンクションを標準以外の方法でコンフィ ギュレーションするのに使用できます。例えば、自動テストのために エラーを注入したり、リモート・ブートおよびコンプライアンス・ モードのディセーブルまたは強制などの機能を追加するのに使用で きます。 PCI Express Compiler Version 6.1 C–1 x1 & x4 MegaCore ファンクション用テスト・アウト・インタフェース 信号 x1 & x4 MegaCore ファンクション用 テスト・アウト・ インタフェース 信号 表 C–1 に x1 および x4 MegaCore ファンクション用テスト・アウト信号 を示します。 表 C–1. x1 および x4 MegaCore ファンクション用 test_out 信号 (1 / 18) 信号 rx_fval_tlp rx_hval_tlp rx_dval_tlp サブ ビット ブロック TRN rxtl 2:0 説明 受信トランザクション・レイヤ・パケットの受信状態。これらの 信号はトランザクション・レイヤ・パケットの受信シーケンスを 通知します。 ● ● ● TRN rxtl rx_check_tlp rx_discard_tlp rx_mlf_tlp tlp_err rxfc_ovf rx_ecrcerr_tlp rx_uns_tlp rx_sup_tlp 10:3 ビット 0: ヘッダの DW0 および DW1 は有効です ビット 1: ヘッダの DW2 および DW3 は有効です。 ビット 2: データ・ペイロードは有効です 受信トランザクション・レイヤ・パケット・チェック・ステート。 これらの信号はトランザクション・レイヤ・パケット受信シーケ ンスを通知します。 ● ● ● ● ● ● ● ● ビット 0: LCRC をチェックします ビット 1: LCRC エラーまたはシーケンス番号エラーを示します ビット 2: END/ 長さフィールドのミスマッチによる不正なト ランザクション・レイヤ・パケットを示します ビット 3: 形成ルールに準拠しない不正なトランザクション・レ イヤ・パケットを示します。 ビット 4: フロー制御ルールの違反を示します。 ビット 5: ECRC エラーを示します(フロー制御クレジットは更 新されます) ビット 6: サポートされていないトランザクション・レイヤ・パ ケットの受信を示します(フロー制御クレジットは更新されま す) ビット 7: コンフィギュレーション領域に送られるトランザク ション・レイヤ・パケットを示します(フロー制クレジットは 更新されます)。 ビット 1、2、3、または 4 が設定されている場合、受信バッファ からトランザクション・レイヤ・パケットが削除されるため、フ ロー制御クレジットは消費されません。ビット 5、6、または 7 が 設定されている場合、トランザクション・レイヤ・パケットは受 信バッファに書き込まれた後でコンフィギュレーション領域に送 信され、フロー制御クレジットが更新されます。 C–2 PCI Express Compiler Version 6.1 PCI Express コンパイラ・ユーザガイド Altera Corporation 2006 年 12 月 表 C–1. x1 および x4 MegaCore ファンクション用 test_out 信号 (2 / 18) 信号 サブ ビット ブロック 説明 rx_vc_tlp TRN rxtl 13:11 トランザクション・レイヤ・パケットバーチャル・チャネル・マッ ピングの受信。この信号は(トラフィック・クラスに応じて)ト ランザクション・レイヤ・パケットがマップされるバーチャル・ チャネル・リソースを通知します。 rx_reqid_tlp TRN rxtl 37:14 Receive ReqID. この 24 ビット信号は、rx_hval_tlp および rx_ok_tlp がアサートされるとコンプリーション・トランザク ション・レイヤ・パケットのリクエスタ ID を通知します。 また、この信号の 8 MSB は rx_fval_tlp および rx_ok_tlp が有効な場合に、トランザクションのタイプとフォーマットを通 知します。 rx_ok_tlp TRN rxtl 38 受信シーケンス有効。これはシーケンス信号パルスです。前述し た信号(test_out[37:0])はすべてこの信号がアサートされ ているときにのみ有効です。 tx_req_tlp TRN txtl 39 データ・リンク層へのリクエストの送信。この信号は、トランザ クション・レイヤ・パケットをデータ・リンク層に送信するため のグローバルバーチャル・チャネル・リクエストです。 tx_ack_tlp TRN txtl 40 データ・リンク層からのリクエスト送信に対する確認応答。この 信号は、データ・リンク層からトランザクション・レイヤ・パケッ トを受け入れ時に、トランザクション・レイヤからのグローバル・ リクエストに対する確認応答信号として機能します。 tx_dreq_tlp TRN txtl 41 データ・リンク層から要求されたデータの送信。この信号はトラ ンザクション・レイヤからの次のデータを要求するシーケンス信 号です。 tx_err_tlp TRN txtl 42 トランザクション・レイヤ・パケット無効化リクエストの送信。 この信号は送信されたトランザクション・レイヤ・パケットを破 棄するために、トランザクション・レイヤでアサートされます。 gnt_vc TRN txtl 50:43 バーチャル・チャネル・アービトレーション結果の送信。この信 号は現在送信中のトランザクション・レイヤ・パケットのアービ トレーション結果を通知します。 tx_ok_tlp TRN txtl 51 送信シーケンス有効。この信号はリンク上の初期化されたレーン 数に応じて変化するシーケンス信号パルスで、トランザクション・ レイヤからデータ・リンク層へのデータ転送をイネーブルします。 Altera Corporation 2006 年 12 月 PCI Express Compiler Version 6.1 C–3 PCI Express コンパイラ・ユーザガイド x1 & x4 MegaCore ファンクション用テスト・アウト・インタフェース 信号 表 C–1. x1 および x4 MegaCore ファンクション用 test_out 信号 (3 / 18) 信号 lpm_sm サブ ビット ブロック CFG pmgt 55:52 説明 パワー・マネージメント・ステート・マシン。この信号は、レガ シー低消費電力への遷移をスケジューリングするパワー・マネー ジメント・ステート・マシン・エンコーディングを示します。 ● ● ● ● ● ● ● ● ● ● 0000b: l0_rst 0001b: l0 0010b: l1_in0 0011b: l1_in1 0100b: l0_in 0101b: l0_in_wt 0110b: l2l3_in0 0111b: l2l3_in1 1000b: l2l3_rdy その他 : Reserved pme_sent CFG pmgt 56 PME 送信フラグ。この信号は MegaCore ファンクションによっ て、PM_PME メッセージが送信されたことをを通知します(エン ドポイント・モード時のみ)。 pme_resent CFG pmgt 57 PME 再送信フラグ。この信号は、MegaCore ファンクションがレ イテンシ・タイマによりタイム・アウトした PM_PME メッセー ジの再送信を要求したことを通知します(エンドポイント・モー ド時のみ)。 inh_dllp CFG pmgt 58 PM による DLLP/ トランザクション・レイヤ・パケットの送信停 止リクエスト。これは低消費電力状態に移行するために、DLLP の送信を禁止するパワー・マネージメント機能です。 req_phypm CFG pmgt 62:59 PM による LTSSM の低消費電力への移行指示。LTSSM に低消費 電力状態に移行するよう要求するパワー・マネージメント機能で す。 ● ● ● ● ack_phypm CFG pmgt 64:63 ● CFG pcie 65 0: 1: 2: 3: exit any requests requests requests low-power state to L0 transition to L0s transition to L1 transition to L2 LTSSM は PM 遷移イベントを通知します。これは、以下のように LTTSM が低消費電力状態に移行したことを通知するパワー・マ ネージメント機能です。 ● pme_status3 rx_pm_pme bit bit bit bit bit 0: receiver detects low-power exit bit 1: indicates that the transition to low-power state is complete 受信した PM_PME メッセージの破棄。この信号は、ストレージ 容量の不足のため受信した PM_PME メッセージがルート・ポー トで破棄されたことを通知します。 C–4 PCI Express Compiler Version 6.1 PCI Express コンパイラ・ユーザガイド Altera Corporation 2006 年 12 月 表 C–1. x1 および x4 MegaCore ファンクション用 test_out 信号 (4 / 18) 信号 サブ ビット ブロック 説明 link_up CFG pcie 66 リンク・アップ。この信号は LTSSM から見てリンクが起動して いることを通知します。 dl_up CFG pcie 67 DL Up. この信号は DLCMSM から見てデータ・リンクが起動して いることを通知します。 vc_en CFG vcreg 74:68 バーチャル・チャネル・イネーブル。この信号はソフトウェアに よってどのバーチャル・チャネルがイネーブルされるかを通知し ます(VC0 は常にイネーブルされているため、VC0 ビットは通知 されません) 。 vc_status CFG vcreg 82:75 バーチャル・チャネル・ステータス。この信号は正常に初期化を 完了したバーチャル・チャネルを通知します。 err_phy CFG errmgt 84:83 PHY エラー。以下のような物理層エラーです。 ● ● err_dll CFG errmgt 89:85 データ・リンク層エラー。以下のようなデータ・リンク層のエラー です。 ● ● ● ● ● err_trn CFG errmgt 98:90 bit bit bit bit bit 0: 1: 2: 3: 4: Transaction layer packet error Data link layerP error Replay timer error Replay counter rollover Data link layer protocol error TRNエラー。以下のようなトランザクション・レイヤ・エラーです。 ● ● ● ● ● ● ● ● ● Altera Corporation 2006 年 12 月 bit 0: Receiver port error bit 1: Training error bit 0: Poisoned transaction layer packet received bit 1: ECRC check failed bit 2: Unsupported request bit 3: Completion timeout bit 4: Completer abort bit 5: Unexpected Completion bit 6: Receiver overflow bit 7: Flow control protocol error bit 8: Malformed transaction layer packet PCI Express Compiler Version 6.1 C–5 PCI Express コンパイラ・ユーザガイド x1 & x4 MegaCore ファンクション用テスト・アウト・インタフェース 信号 表 C–1. x1 および x4 MegaCore ファンクション用 test_out 信号 (5 / 18) 信号 r2c_ack c2r_ack rxbuf_busy rxfc_updated サブ ビット ブロック TRN rxvc0 102:99 説明 受信 VC0 ステータス。以下のとおり、VC0 に関連するイベントを 通知します。 ● ● ● ● r2c_ack c2r_ack rxbuf_busy rxfc_updated TRN rxvc1 106:013 受信 VC1 ステータス。以下のとおり、VC1 に関連するイベントを 通知します。 ● ● ● ● r2c_ack c2r_ack rxbuf_busy rxfc_updated TRN rxvc2 110:107 ● ● ● TRN rxvc3 114:111 bit 0: transaction layer packet sent to the configuration space bit 1: transaction layer packet received from configuration space bit 2: Receive buffer not empty bit 3: Receive flow control credits updated 受信 VC3 ステータス。以下のとおり、VC3 に関連するイベ ントを通知します。 ● ● ● ● Reserved bit 0: transaction layer packet sent to the configuration space bit 1: transaction layer packet received from configuration space bit 2: Receive buffer not empty bit 3: Receive flow control credits updated 受信 VC2 ステータス。以下のとおり、VC2 に関連するイベントを 通知します。 ● r2c_ack c2r_ack rxbuf_busy rxfc_updated bit 0: Transaction layer packet sent to the configuration space bit 1: Transaction layer packet received from configuration space bit 2: Receive buffer not empty bit 3: Receive flow control credits updated bit 0: Transaction layer packet sent to the configuration space bit 1: Transaction layer packet received from configuration space bit 2: Receive buffer not empty bit 3: Receive flow control credits updated ビット 131 ∼ 255 の間の連続するすべての信号は、test_in[31:29] 入力で選択されるバーチャル・チャネルによって決まります。 C–6 PCI Express Compiler Version 6.1 PCI Express コンパイラ・ユーザガイド Altera Corporation 2006 年 12 月 表 C–1. x1 および x4 MegaCore ファンクション用 test_out 信号 (6 / 18) 信号 desc_sm サブ ビット ブロック TRN rxvc 133:131 説明 受信ディスクリプタ・ステート・マシン。以下のとおり、記述子 ステート・マシン・エンコーディングを受信します。 ● ● ● ● ● ● 000: idle 001: desc0 010: desc1 011: desc2 100: desc_wt others: reserved desc_val TRN rxvc 134 受信バイパス・モード有効。この信号は受信したトランザクショ ン・レイヤ・パケットでパイパス・モードが有効であることを通 知します。 data_sm TRN rxvc 136:135 受信データ・ステート・マシン。データ・ステート・マシン・エ ンコーディングを受信します。 ● ● ● ● 00: 01: 10: 11: idle data_first data_next data_last req_ro TRN rxvc 137 受信リオーダリング・キュー・ビジー。この信号はトランザクショ ン・レイヤ・パケット(トランザクション・レイヤ・パケット FIFO から抽出された情報)が現在リオーダリング・キューで再組 み立て中であることを通知します。 tlp_emp TRN rxvc 138 受信トランザクション・レイヤ・パケット FIFO エンプティ・フ ラグ。この信号はトランザクション・レイヤ・パケット FIFO が 空であることを通知します。 tlp_val TRN rxvc 139 受信トランザクション・レイヤ・パケットがノーマル・キューで 待機中。この信号は、トランザクション・レイヤ・パケット FIFO から抽出されたトランザクション・レイヤ・パケットがアプリケー ション層への送信待ち状態であることを通知します。 txbk_sm TRN txvc 143:140 送信ステート・マシン。ステート・マシン・エンコーディングは 以下のとおりです。 ● ● ● ● ● ● ● ● ● ● Altera Corporation 2006 年 12 月 0000: idle 0001: desc4dw 0010: desc3dw_norm 0011: desc3dw_shft 0100: data_norm 0101: data_shft 0110: data_last 0111: config0 1000: config1 others: reserved PCI Express Compiler Version 6.1 C–7 PCI Express コンパイラ・ユーザガイド x1 & x4 MegaCore ファンクション用テスト・アウト・インタフェース 信号 表 C–1. x1 および x4 MegaCore ファンクション用 test_out 信号 (7 / 18) 信号 rx_sub サブ ビット ブロック TRN rxfc 199:144 説明 受信フロー制御クレジット。利用可能な受信バッファ現行クレ ジット。 ● ● ● ● ● ● bit bit bit bit bit bit [7:0]: Posted Header (PH) [19:8]: Posted Data (PD) [27:20]: Non-Posted Header (NPH) [35:28]: Non-Posted Data (NPD) [43:36]: Completion Header (CPLH) [55:44]: Completion Data (CPLD) NPH クレジットを上回る NPD クレジットは無意味なため、NPD に対するフロー制御クレジットは 8 ビットに制限されています。 tx_sub TRN txfc 255:200 送信フロー制御クレジット。利用可能な送信バッファ現行クレ ジット。 ● ● ● ● ● ● bit bit bit bit bit bit [7:0]: Posted Header (PH) [19:8]: Posted Data (PD) [27:20]: Non-Posted Header (NPH) [35:28]: Non-Posted Data (NPD) [43:36]: Completion Header (CPLH) [55:44]: Completion Data (CPLD) NPH クレジットを上回る NPD クレジットは無意味なため、NPD に対するフロー制御クレジットは 8 ビットに制限されています。 dlcm_sm DLL dlcmsm 257:256 DLCM ステート・マシン。DLCM ステート・マシン・エンコー ディング。 ● ● ● ● fcip_sm DLL dlcmsm 260:258 00: 01: 10: 11: dl_inactive dl_init dl_active reserved Transmit InitFC ステート・マシン。Transmit Init フロー 制御ステート・エンコーディング : ● ● ● ● ● ● ● ● 000: 001: 010: 011: 100: 101: 110: 111: idle prep0 prep1 initfc_p initfc_np initfc_cpl initfc_wt reserved C–8 PCI Express Compiler Version 6.1 PCI Express コンパイラ・ユーザガイド Altera Corporation 2006 年 12 月 表 C–1. x1 および x4 MegaCore ファンクション用 test_out 信号 (8 / 18) 信号 rxfc_sm サブ ビット ブロック DLL dlcmsm 263:261 説明 Receive InitFC ステート・マシン。Receive Init フロー制 御ステート・マシン : ● ● ● ● ● ● 000: 001: 010: 011: 100: 111: idle ifc1_p ifc1_np ifc1_cpl ifc2 reserved flag_fi1 DLL dlcmsm 264 Flag_fi1FI1 フラグについては、PCI Express™ ベース仕様 Revision 1.0a で詳細に説明されています。 flag_fi2 DLL dlcmsm 265 Flag_fi2。FI2 フラグについては、 PCI Express™ ベース仕様 Revision 1.0a で詳細に説明されています。 rxfc_sm DLL rtry 268:266 リトライ・ステート・マシン。リトライ・ステート・マシン・エ ンコーディング ● ● ● ● ● ● ● ● storebuf_sm DLL rtry 270:269 000: 001: 010: 011: 100: 101: 110: 111: idle rtry_ini rtry_wt0 rtry_wt1 rtry_req rtry_tlp rtry_end reserved リトライ・バッファ・ストレージ・ステート・マシン。リトライ・ バッファ・ストレージ・ステート・マシン・エンコーディング : ● ● ● ● 00: 01: 10: 11: idle rtry str_tlp reserved mem_replay DLL rtry 271 リトライ・バッファ動作中。この信号は、送信後に受信確認が行 われていないトランザクション・レイヤ・パケットを追跡します。 また、このビットがセットされていると、リプレイ実行中の場合 を除いてリプレイ・タイマも動作しています。 mem_rtry DLL rtry 272 リプレイ・リクエストの記憶。この信号はリプレイ・タイム・ア ウト・イベントの発生または NAK DLLP が受信されたことを示 します。 replay_num DLL rtry 274:273 番号カウンタのリプレイ。この信号は MegaCore ファンクション による特定のトランザクション・レイヤ・パケットのリプレイ実 行回数をカウントします(PCI Express™ ベース仕様 Revision 1.0a で詳細に説明されています)。 Altera Corporation 2006 年 12 月 PCI Express Compiler Version 6.1 C–9 PCI Express コンパイラ・ユーザガイド x1 & x4 MegaCore ファンクション用テスト・アウト・インタフェース 信号 表 C–1. x1 および x4 MegaCore ファンクション用 test_out 信号 (9 / 18) 信号 サブ ビット ブロック 説明 val_nak_r DLL rtry 275 ACK/NAK DLLP の受信。この信号は ACK または NAK DLLP を 受信したことを通知します。 res_nak_r、 tlp_ack、 err_dl および no_rtry 信号は受信した ACK/NAK DLLP のタイプを詳 細に示します。 res_nak_r DLL rtry 276 NAK DLLP パラメータ。この信号は受信した ACK/NAK DLLP が NAK であることを通知します。 tlp_ack DLL rtry 277 Real ACK DLLP パラメータ。この信号は、受信した ACK DLLP がリトライ・バッファで 1 つまたは複数のトランザクション・レ イヤ・パケットの受信を確認したことを通知します。 err_dl DLL rtry 278 エラー ACK/NAK DLLP パラメータ。この信号は、受信した ACK/NAK DLLP のシーケンス番号が最後に送信したトランザク ション・レイヤ・パケットのシーケンス番号より大きいことを通 知します。 no_rtry DLL rtry 279 リトライなし NAK DLLP パラメータ。この信号は、受信した NAK DLLP のシーケンス番号が最後に受信確認を行ったトランザク ション・レイヤ・パケットに対応していることを通知します。 txdl_sm DLL txdl 282:280 送信トランザクション・レイヤ・パケット・ステート・マシン。 トランザクション・レイヤ・パケット・ステート・マシン・エン コーディングは以下のとおりです。 ● ● ● ● ● ● ● 000: 001: 010: 011: 100: 101: 111: idle tlp1 tlp2 tlp3a tlp5a (ECRC only) tlp6a (ECRC only) reserved この信号を使用して LCRC または ECRC エラーを注入することが できます。 tx3b tx4 tx5b DLL txdl 283 トランザクション・レイヤ・パケットの送信。この信号は LCRC を付加するパケットの最後の DWORD で設定されます。この信号 を使用してLCRCまたはECRCエラーを注入することができます。 tx0 DLL txdl 284 DLLP の送信。この信号は DLLP が物理層に送信されたときに設 定されます。この信号を使用して CRC または DLLP を注入する ことができます。 C–10 PCI Express Compiler Version 6.1 PCI Express コンパイラ・ユーザガイド Altera Corporation 2006 年 12 月 表 C–1. x1 および x4 MegaCore ファンクション用 test_out 信号 (10 / 18) 信号 gnt サブ ビット ブロック DLL txdl 292:285 説明 送信データ・リンク層のアービトレーション結果。この信号は、 以下のとおり DLLP とトランザクション・レイヤ・パケット間の アービトレーションの結果を通知します。 ● ● ● ● ● ● ● ● bit bit bit bit bit bit bit bit 0: 1: 2: 3: 4: 5: 6: 7: InitFC DLLP ACK DLLP (high priority) UFC DLLP (high priority) PM DLLP TXN transaction layer packet RPL transaction layer packet UFC DLLP (low priority) ACK DLLP (low priority) sop DLL txdl 293 データ・リンク層から PHY への sop(パケットの開始)。この信 号は、SDP/STP シンボルが物理層に送信中であることを通知しま す。 eop DLL txdl 294 データ・リンク層から PHY への eop(パケットの終わり)。この 信号は EDB/END シンボルが物理層に送信中であることを通知し ます。 sop と eop が同時に送信される場合、パケットは DLLP であるこ とを示します。そうでない場合、パケットはトランザクション・ レイヤ・パケットです。 eot DLL txdl 295 データ・リンク層から PHY への送信終了。この信号はデータ・リ ンク層が前の送信を終了し、物理層が低消費電力状態への移行ま たはリカバリが可能であることを示します。 init_lat_timer DLL rxdl 296 ACK レイテンシ・タイマのイネーブル。この信号は ACK レイテ ンシ・タイマが動作中であることを通知します。 req_lat DLL rxdl 297 ACK レイテンシ・タイムアウト。この信号は、ACK レイテンシ・ タイマの満了によるACK/NAK DLLPの再送信がスケジュールさ れたことを通知します。 tx_req_nak or tx_snd_nak DLL rxdl 298 ACK/NAK DLLP への送信要求。この信号は ACK/NAK DLLP に現在送信が要求されていることを通知します。 tx_res_nak DLL rxdl 299 ACK/NAK DLLP タイプへの送信要求。この信号は ACK/NAK DLLP のタイプに送信がスケジュールされていることを通知しま す。 ● ● Altera Corporation 2006 年 12 月 0: ACK 1: NAK PCI Express Compiler Version 6.1 C–11 PCI Express コンパイラ・ユーザガイド x1 & x4 MegaCore ファンクション用テスト・アウト・インタフェース 信号 表 C–1. x1 および x4 MegaCore ファンクション用 test_out 信号 (11 / 18) 信号 rx_val_pm サブ ビット ブロック DLL rxdl 300 説明 PM DLLP の受信。この信号は PM DLLP が受信されたことを通知 します(タイプは rx_vcid_fc で示されます)。 ● ● ● ● 000: 001: 011: 100: PM_Enter_L1 PM_Enter_L23 PM_AS_Request_L1 PM_Request_ACK rx_val_fc DLL rxdl 301 フロー制御 DLLP の受信。この信号は PM DLLP が受信されたこ とを通知します。フロー制御 DLLP のタイプは rx_typ_fc およ び rx_vcid_fc で示されます。 rx_typ_fc DLL rxdl 305:302 受信したフロー制御 DLLP タイプのパラメータ。この信号は受信 したフロー制御 DLLP のタイプを以下のとおり通知します。 ● ● ● ● ● ● ● ● ● rx_vcid_fc DLL rxdl 308:306 0100: 0101: 0110: 1100: 1101: 1110: 1000: 1001: 1010: InitFC1_P InitFC1_NP InitFC1_CPL InitFC2_P InitFC2_NP InitFC2_CPL UpdateFC_P UpdateFC_NP UpdateFC_CPL 受信したフロー制御 DLLP バーチャル・チャネル ID パラメータ。 この信号は受信したフロー制御 DLLP のバーチャル・チャネル ID を以下のとおり通知します。 ● ● ● ● 000: VCID 0 001: VCID 1 … 111: VCID 7 この信号はまた、受信した PM DLLP のタイプも示します。 crcinv DLL rxdl 309 無効化されたトランザクション・レイヤ・パケットの受信。この 信号は無効化されたトランザクション・レイヤ・パケットを受信 したことを示します。 crcerr DLL rxdl 310 LCRC エラーを含むトランザクション・レイヤ・パケットの受信。 この信号は LCRC エラーを含むトランザクション・レイヤ・パ ケットを受信したことを通知します。 crcval eqseq_r DLL rxdl 311 有効なトランザクション・レイヤ・パケットの受信。この信号は、 正しいシーケンス番号を含む有効なトランザクション・レイヤ・ パケットを受信したことを通知します。有効なトランザクション・ レイヤ・パケットはアプリケーション層に送信されます。 C–12 PCI Express Compiler Version 6.1 PCI Express コンパイラ・ユーザガイド Altera Corporation 2006 年 12 月 表 C–1. x1 および x4 MegaCore ファンクション用 test_out 信号 (12 / 18) 信号 サブ ビット ブロック 説明 crcval !eqseq_r infseq_r DLL rxdl 312 重複トランザクション・レイヤ・パケットの受信。この信号はす でに正常に受信したトランザクション・レイヤ・パケットを再度 受信したことを示します。このようなトランザクション・レイヤ・ パケットは確認なしで破棄されます。 crcval !eqseq_r !infseq_r DLL rxdl 313 エラーのあるトランザクション・レイヤ・パケットの受信。この 信号は、LCRC は有効であるがシーケンス番号が連続しない(現 在のシーケンス番号より大きい)トランザクション・レイヤ・パ ケットを受信したことを示します。 rx_err_frame DLL dlink 314 データ・リンク層フレーミング・エラーの検出。この信号は、受 信したデータが DLLP またはトランザクション・レイヤ・パケッ トと判断できないことを示します。この場合、受信ポート・エラー が生成され、リンク・リトレーニングが開始されます。 tlp_count DLL rtry 319:315 リトライ・バッファのトランザクション・レイヤ・パケット数。 この信号は、リトライ・バッファに格納されているトランザクショ ン・レイヤ・パケット数を示します(飽和限界は 31 です)。 ltssm_r MAC ltssm 324:320 LTSSM ステート。LTSSM ステート・エンコーディング : ● ● ● ● ● ● ● ● ● ● ● ● ● ● ● ● ● ● ● ● ● ● ● ● ● ● Altera Corporation 2006 年 12 月 00000: 00001: 00010: 00011: 00100: 00101: 00110: 00111: 01000: 01001: 01010: 01011: 01100: 01101: 01110: 01111: 10000: 10001: 10010: 10011: 10100: 10101: 10110: 10111: 11000: 11001: detect.quiet detect.active polling.active polling.compliance polling.configuration reserved (polling.speed) config.linkwidthstart config.linkaccept config:disable config.loopback.entry config.loopback.active config.loopback.exit recovery.rcvlock recovery.rcvconfig recovery.idle L0 disable loopback.entry loopback.active loopback.exit hot.reset L0s (transmit only) L1.entry L1.idle L2.idle L2.transmit.wake PCI Express Compiler Version 6.1 C–13 PCI Express コンパイラ・ユーザガイド x1 & x4 MegaCore ファンクション用テスト・アウト・インタフェース 信号 表 C–1. x1 および x4 MegaCore ファンクション用 test_out 信号 (13 / 18) 信号 rxl0s_sm サブ ビット ブロック MAC ltssm 326:325 説明 L0 ステートの受信。L0 ステート・マシンの受信。 ● ● ● ● txl0s_sm MAC ltssm 329:327 00: 01: 10: 11: inact idle fts out.recovery TX L0s ステート。L0 ステート・マシンの送信。 ● ● ● ● ● 000b: 001b: 010b: 011b: 100b: inact entry idle fts out.l0 timeout MAC ltssm 330 LTSSM タイムアウト。この信号は、現在の LTSSM ステートが LTSSM タイムアウト条件を満足したことを示すフラグとして機 能します。 txos_end MAC ltssm 331 LTSSM 終了条件の送信。この信号は、次のステート(L0)へ移行 するための LTSSM 終了条件を満たしていることを示すフラグと して機能します。次のステートにタイムリに達しない場合は、レ シーバに問題があります。 tx_ack MAC ltssm 332 PLP 受信確認の送信。この信号は、要求した PLP(physical layer packet)がリンクに送信された場合、1 クロック・サイクルの間 アクティブになります。パケットのタイプは tx_ctrl 信号で定 義されます。 tx_ctrl MAC ltssm 335:333 送信 PLP タイプ。この信号は送信した PLP のタイプを以下のと おり示します。 ● ● ● ● ● ● ● ● txrx_det MAC ltssm 343:336 000: 001: 010: 011: 100: 101: 110: 111: Electrical Idle Receiver detect during Electrical Idle TS1 OS TS2 OS D0.0 idle data FTS OS IDL OS Compliance pattern レシーバ検出結果。この信号は各レーンでレシーバ検出結果を通 知するフラグとして機能します。4 MSB は常に 0 です。 C–14 PCI Express Compiler Version 6.1 PCI Express コンパイラ・ユーザガイド Altera Corporation 2006 年 12 月 表 C–1. x1 および x4 MegaCore ファンクション用 test_out 信号 (14 / 18) 信号 tx_pad サブ ビット ブロック MAC ltssm 351:344 説明 送信する TS パターン上での PAD の強制。これはリンク上および 送信される TS1/TS2 OS のレーン・フィールドで PAD 送信を強制 するレーンごとの内部信号です。MegaCore ファンクションは、初 期化プロセス中にこの信号で示すレーンを初期化してはならない ものと判断します。 4 MSB は常に 0 です。 rx_ts1 MAC ltssm 359:352 TSI の受信 : この信号は指定されたレーンで TS1 を受信したことを 示します。この信号は LTSSM ステート・マシンによって新しい ステートに達するとクリアされます。 rx_ts2 MAC ltssm 367:360 TS2 の受信。この信号は指定されたレーンで TS2 を受信したこと を示します。この信号は LTSSM ステート・マシンによって新し いステートに達するとクリアされます。 4 MSB は常に 0 です。 4 MSB は常に 0 です。 rx_8d00 MAC ltssm 375:368 8 D0.0 シンボルの受信。この信号は、8 個の連続するアイドル・ デ ー タ・シ ン ボ ル を 受 信 し た こ と を 示 し ま す。こ の 信 号 は config.idle および recovery.idle ステートで有効です。 4 MSB は常に 0 です。 rx_idl MAC ltssm 383:376 rx_linkpad MAC ltssm 391:384 IDL OS の受信。この信号はレーン単位で IDL OS を受信したこと を示します。 4 MSB は常に 0 です。 リンク・パッド TS の受信。この信号は、受信した TS1/TS2 のリ ンク・フィールドが指定したレーンに対して PAD に設定されて いることを示します。 4 MSB は常に 0 です。 rx_lanepad MAC ltssm 399:392 レーン・パッド TS の受信。この信号は、受信した TS1/TS2 のレー ン・フィールドが指定したレーンに対して PAD に設定されてい ることを示します。 4 MSB は常に 0 です。 Altera Corporation 2006 年 12 月 PCI Express Compiler Version 6.1 C–15 PCI Express コンパイラ・ユーザガイド x1 & x4 MegaCore ファンクション用テスト・アウト・インタフェース 信号 表 C–1. x1 および x4 MegaCore ファンクション用 test_out 信号 (15 / 18) 信号 rx_tsnum サブ ビット ブロック MAC ltssm 407:400 説明 連続する同一 TS 番号の受信。この信号は、このステートに移行 してから完全に同じパラメータで受信した連続する同一 TS1/TS2 の数を通知します。最大数に達すると、信号は 0 から再開します。 この信号は論理レーン 0 としてコンフィギュレーションされる レーンに対応しています(レーンの反転によって変化する場合が あります)。 lane_act MAC ltssm 411:408 レーン・アクティブ・モード。この信号は以下のとおりトレーニ ング中にコンフィギュレーションされたレーン数を示します。 ● ● ● 0001: 1 レーン 0010: 2 レーン 0100: 4 レーン lane_rev MAC ltssm 415:412 Reserved count0 MAC deskew 418:416 デスキュー FIFO カウント・レーン 0。この信号は物理レーン 0 の デスキュー FIFO のワード数を示します。 count1 MAC deskew 421:419 デスキュー FIFO カウント・レーン 1。この信号は物理レーン 1 の デスキュー FIFO のワード数を示します。 count2 MAC deskew 424:422 デスキュー FIFO カウント・レーン 2。この信号は物理レーン 2 の デスキュー FIFO のワード数を示します。 count3 MAC deskew 427:425 デスキュー FIFO カウント・レーン 3。この信号は物理レーン 3 の デスキュー FIFO のワード数を示します。 Reserved N/A 439:428 Reserved err_deskew MAC deskew 447:440 デスキュー FIFO エラー。この信号は、特定の物理レーンでデス キュー・エラー(デスキュー FIFO オーバフロー)が検出された かどうかを示します。検出された場合、受信ポート・エラーと見 なされ、リンクのリトレーニングが開始されます。 4MSB は 0 にハード・ワイヤされています。 rdusedw0 PCS0 451:448 エラスティック・バッファ・カウンタ 0。この信号はエラスティッ ク・バッファのシンボル数を示します。 各レーンのエラスティック・バッファ・カウンタをモニタするこ とで、受信クロックと送信クロック間の PPM およびレーン間の スキューを検出できます。汎用 PIPE PHY インタフェースを使 用している場合は無意味です。 C–16 PCI Express Compiler Version 6.1 PCI Express コンパイラ・ユーザガイド Altera Corporation 2006 年 12 月 表 C–1. x1 および x4 MegaCore ファンクション用 test_out 信号 (16 / 18) 信号 rxstatus0 サブ ビット ブロック PCS0 454:452 説明 PIPE rxstatus 0。この信号はレーン単位で検出および通知さ れたエラーをモニタするために使用します。例 : ● ● ● ● ● ● ● ● 000: 001: 010: 011: 100: 101: 110: 111: Receive data OK 1 SKP added 1 SKP removed Receiver detected 8B/10B decode error Elastic buffer overflow Elastic buffer underflow Running disparity error 汎用PIPE PHYインタフェースを使用している場合は無意味です。 rxpolarity0 PCS0 455 PIPE 極性反転 0。この信号がアサートされると、LTSSM は PCS サ ブブロックに対して、トレーニング時に受信した 10 ビット・デー タの極性変転を要求します。 rdusedw1 PCS1 459:456 エラスティック・バッファ・カウンタ 1。この信号はエラスティッ ク・バッファのシンボル数を示します。 各レーンのエラスティック・バッファ・カウンタをモニタするこ とで、受信クロックと送信クロック間の PPM およびレーン間の スキューを検出できます。汎用 PIPE PHY インタフェースを使用 している場合は無意味です。 rxstatus1 PCS1 462:460 PIPE rxstatus 1。この信号はレーン単位で検出および通知さ れたエラーをモニタするために使用します。例 : ● ● ● ● ● ● ● ● 000: 001: 010: 011: 100: 101: 110: 111: Receive data OK 1 SKP added 1 SKP removed Receiver detected 8B/10B decode error Elastic buffer overflow Elastic buffer underflow Running disparity error 汎用PIPE PHYインタフェースを使用している場合は無意味です。 rxpolarity1 Altera Corporation 2006 年 12 月 PCS1 463 PIPE 極性反転 1。この信号がアサートされると、LTSSM は PCS サ ブブロックに対して、トレーニング時に受信した10 ビット・デー タの極性変転を要求します。汎用 PIPE PHY インタフェースを使 用している場合は無意味です。 PCI Express Compiler Version 6.1 C–17 PCI Express コンパイラ・ユーザガイド x1 & x4 MegaCore ファンクション用テスト・アウト・インタフェース 信号 表 C–1. x1 および x4 MegaCore ファンクション用 test_out 信号 (17 / 18) 信号 rdusedw2 サブ ビット ブロック PCS2 467:464 説明 エラスティック・バッファ・カウンタ 2。この信号はエラスティッ ク・バッファのシンボル数を通知します。 各レーンのエラスティック・バッファ・カウンタをモニタするこ とで、受信クロックと送信クロック間の PPM およびレーン間の スキューを検出できます。汎用 PIPE PHY インタフェースを使用 している場合は無意味です。 rxstatus2 PCS2 470:468 PIPE rxstatus 2。この信号はレーン単位で検出および通知され たエラーをモニタするために使用します。例 : ● ● ● ● ● ● ● ● 000: 001: 010: 011: 100: 101: 110: 111: receive data OK 1 SKP added 1 SKP removed Receiver detected 8B/10B decode error Elastic buffer overflow Elastic buffer underflow Running disparity error 汎用PIPE PHYインタフェースを使用している場合は無意味です。 rxpolarity2 PCS2 471 PIPE 極性反転 2。この信号がアサートされると、LTSSM は PCS サ ブブロックに対して、トレーニング時に受信した 10 ビット・デー タの極性変転を要求します。汎用 PIPE PHY インタフェースを使 用している場合は無意味です。 rdusedw3 PCS3 475:472 エラスティック・バッファ・カウンタ 3。この信号はエラスティッ ク・バッファのシンボル数を通知します。 各レーンのエラスティック・バッファ・カウンタをモニタするこ とで、受信クロックと送信クロック間の PPM およびレーン間の スキューを検出できます。汎用 PIPE PHY インタフェースを使用 している場合は無意味です。 C–18 PCI Express Compiler Version 6.1 PCI Express コンパイラ・ユーザガイド Altera Corporation 2006 年 12 月 表 C–1. x1 および x4 MegaCore ファンクション用 test_out 信号 (18 / 18) 信号 rxstatus3 サブ ビット ブロック PCS3 478:476 説明 PIPE rxstatus 3。この信号はレーン単位で検出および通知さ れたエラーをモニタするために使用します。例 : ● ● ● ● ● ● ● ● 000: 001: 010: 011: 100: 101: 110: 111: receive data OK 1 SKP added 1 SKP removed Receiver detected 8B/10B decode error Elastic buffer overflow Elastic buffer underflow Running disparity error 汎用PIPE PHYインタフェースを使用している場合は無意味です。 rxpolarity3 PCS3 479 PIPE 極性反転 3。この信号がアサートされると、LTSSM は PCS サ ブブロックに対して、トレーニング時に受信した 10 ビット・デー タの極性変転を要求します。汎用 PIPE PHY インタフェースを使 用している場合は無意味です。 Reserved PCS4 511:480 Reserved Altera Corporation 2006 年 12 月 PCI Express Compiler Version 6.1 C–19 PCI Express コンパイラ・ユーザガイド x8 MegaCore ファンクション用テスト・ アウト・インタフェース信号 x8 MegaCore ファンクション 用テスト・ アウト・インタ フェース信号 表 C–2 に x8 MegaCore ファンクション用 test-out 信号を示します。 表 C–2. x8 MegaCore ファンクション用 test_out 信号 (1 / 4) 信号 ltssm_r rxl0s_sm サブ ブロック ビット MAC ltssm 4:0 MAC ltssm 6:5 説明 LTSSM ステート :LTSSM ステート・エンコーディング : 00000: 00001: 00010: 00011: 00100: 00110: 00111: 01000: 01001: 01010: 01011: 01100: 01101: 01110: 01111: 10000: 10001: 10010: 10011: 10100: 10101: 10110: 10111: 11000: 11001: detect.quiet detect.active polling.active polling.compliance polling.configuration config.linkwidthstart config.linkaccept config.lanenumaccept config.lanenumwait config.complete config.idle recovery.rcvlock recovery.rcvconfig recovery.idle L0 disable loopback.entry loopback.active loopback.exit Hot reset L0s L1.entry L1.idle L2.idle L2 transmit.wake Rx L0s ステート : 受信 L0s ステート・マシン 00: 01: 10: 11: inact idle fts out.recovery C–20 PCI Express Compiler Version 6.1 PCI Express コンパイラ・ユーザガイド Altera Corporation 2006 年 12 月 表 C–2. x8 MegaCore ファンクション用 test_out 信号 (2 / 4) 信号 txl0s_sm サブ ブロック ビット 説明 MAC ltssm 9:7 timeout MAC ltssm 10 LTSSM のタイムアウト : この信号は、現在の LTSSM ス テートがLTSSMタイムアウト条件を満足したことを示す フラグとして機能します。 txos_end MAC ltssm 11 送信 LTSSM 終了条件 : この信号は、次のステート(L0) へ移行するためのLTSSM終了条件を満たしていることを 示すフラグとして機能します。次のステートにタイムリ に達しない場合は、レシーバに問題があります。 tx_ack MAC ltssm 12 送信 PLP 受信確認 : この信号は、要求した PLP(physical layer packet)がリンクに送信された場合、1 クロック・ サイクルの間アクティブになります。パケットのタイプ は TX_CTRL で定義されます。 tx_ctrl MAC ltssm 15:13 送信 PLP タイプ : この信号は以下のとおりです。 txrx_det MAC ltssm 23:16 レシーバ検出結果:この信号は各レーンでレシーバ検出結 果を通知するフラグとして機能します。 tx_pad MAC ltssm 31:24 送信する TS パターン上での PAD の強制 : これはリンク 上および送信される TS1/TS2 OS のレーン・フィールド で PAD 送信を強制するレーンごとの内部信号です。この コアは、初期化プロセス中にこの信号で示すレーンを初 期化してはならないものと判断します。 rx_ts1 MAC ltssm 39:32 TSI の受信 : この信号は指定されたレーンで TS1 を受信し たことを示します。この信号は LTSSM ステート・マシン によって新しいステートに達するとクリアされます。 rx_ts2 MAC ltssm 47:40 TS2 の受信 : この信号は指定されたレーンで TS2 を受信 したことを示します。この信号は LTSSM ステート・マシ ンによって新しいステートに達するとクリアされます。 Altera Corporation 2006 年 12 月 TX L0s ステート : 送信 L0s ステート・マシン 000b: 001b: 010b: 011b: 100b: 000: 001: 010: 011: 100: 101: 110: 111: inact entry idle fts out.l0 Electrical Idle Receiver detect during TS1 OS TS2 OS D0.0 idle data FTS OS IDL OS Compliance pattern PCI Express Compiler Version 6.1 C–21 PCI Express コンパイラ・ユーザガイド x8 MegaCore ファンクション用テスト・ アウト・インタフェース信号 表 C–2. x8 MegaCore ファンクション用 test_out 信号 (3 / 4) 信号 サブ ブロック ビット 説明 rx_8d00 MAC ltssm 55:48 8 D0.0 シンボルの受信 : この信号は、8 個の連続するアイ ドル・データ・シンボルを受信したことを示します。こ の信号は config.idle および recovery.idle ステートで有効 です。 rx_idl MAC ltssm 63:56 8 D0.0 シンボルの受信 : この信号は、8 個の連続するアイ ドル・データ・シンボルを受信したことを示します。こ の信号は config.idle および recovery.idle ステートで有効 です。 rx_linkpad MAC ltssm 71:64 リンク・パッド TS の受信 : この信号は受信した TS1/TS2 のリンク・フィールドが指定したレーンの PAD に設定さ れます。 rx_lanepad MAC ltssm 79:72 レーン・パッド TS の受信 : この信号は受信した TS1/TS2 のレーン・フィールドが指定したレーンの PAD に設定さ れます。 rx_tsnum MAC ltssm 87:80 連続する同一 TS 番号の受信 : この信号は、このステート に移行してから完全に同じパラメータで受信した連続す る同一 TS1/TS2 の数を通知します。最大数に達すると、 信号は 0 から再開します。この信号は論理レーン 0 とし てコンフィギュレーションされたレーンに対応していま す。 lane_act MAC ltssm 91:88 レーン・アクティブ・モード : この信号は以下のとおりト レーニング中にコンフィギュレーションされたレーン数 を示します。 0001: 0010: 0100: 1000: 1 2 4 8 lane lanes lanes lanes lane_rev MAC ltssm 95:92 Reserved count0 MAC deskew 98:96 デスキューFIFO カウント・レーン 0: この信号は物理レー ン 0 のデスキュー FIFO のワード数を示します。 count1 MAC deskew 101:99 デスキューFIFO カウント・レーン 1: この信号は物理レー ン 1 のデスキュー FIFO のワード数を示します。 count2 MAC deskew 104:102 デスキューFIFO カウント・レーン 2: この信号は物理レー ン 2 のデスキュー FIFO のワード数を示します。 count3 MAC deskew 107:105 デスキューFIFO カウント・レーン 3: この信号は物理レー ン 3 のデスキュー FIFO のワード数を示します。 count4 MAC deskew 110:108 デスキューFIFO カウント・レーン 4: この信号は物理レー ン 4 のデスキュー FIFO のワード数を示します。 C–22 PCI Express Compiler Version 6.1 PCI Express コンパイラ・ユーザガイド Altera Corporation 2006 年 12 月 表 C–2. x8 MegaCore ファンクション用 test_out 信号 (4 / 4) 信号 サブ ブロック ビット 説明 count5 MAC deskew 113:111 デスキューFIFO カウント・レーン 5: この信号は物理レー ン 5 のデスキュー FIFO のワード数を示します。 count6 MAC deskew 116:114 デスキューFIFO カウント・レーン 6: この信号は物理レー ン 6 のデスキュー FIFO のワード数を示します。 count7 MAC deskew 119:117 デスキューFIFO カウント・レーン 7: この信号は物理レー ン 7 のデスキュー FIFO のワード数を示します。 err_deskew MAC deskew 127:120 デスキュー FIFO エラー : この信号は、特定の物理レーン でデスキュー・エラー(デスキュー FIFO オーバフロー) が検出されたかどうかを示します。検出された場合、受 信ポート・エラーと見なされ、リンクのリトレーニング が開始されます。 テスト・イン・ インタフェース test_in ポートのエラー注入機能を使用するには、特定のロジックを実 装する必要があります。例えば、次に送信するトランザクション・レイ ヤ・パケットで LCRC エラーを強制するには、transmit txdl_sm、 (test_out[282:280])が非アイドル状態の時に、test_in[21] を 1 クロック・サイクルの間アサートする必要があります。 表 C–3 に test_in 信号を示します。 表 C–3. test_in 信号 (1 / 6) 信号 サブ ビット ブロック 説明 test_sim MAC ltssm 0 シミュレーション・モード。この信号は MegaCore ファンクショ ンの初期化を高速化するには、1 に設定しなければなりません。 test_lpbk MAC ltssm 1 ループバック・マスタ。この信号はリンクにループバックを指示 するには(マスタ・モードで)1 に設定しなければなりません。 このビットはx8 MegaCoreファンクションで予約されています。 test_discr MAC ltssm 2 デスクランブル・モード。この信号はデータ・スクランブリング をディセーブルするには、初期化中 1 に設定しなければなりませ ん。 test_nonc_phy MAC ltssm 3 Force_rxdet モード。この信号は PHY の実装が Rx Detect 機能を サポートしない場合は、1 に設定することができます。MegaCore ファンクションは検出ステート中には常に最大受信数を検出し、 少なくとも 1 つのレーンに正しいパターンがある場合、コンプラ イアンス・ステートに移行します。この信号は Stratix GX PHY 実装の場合、MegaCore ファンクション内部で強制されます。 Altera Corporation 2006 年 12 月 PCI Express Compiler Version 6.1 C–23 PCI Express コンパイラ・ユーザガイド テスト・イン・インタフェース 表 C–3. test_in 信号 (2 / 6) 信号 test_boot サブ ビット ブロック CFGcfgchk 4 test_compliance MAC ltssm 6:5 説明 リモート・ブート・モード。この信号は、リンクが初期化されて おらず、ブートがコンポーネントの後ろにある場合にアサートさ れると、BAR チェックをディセーブルします。 コンプライアンス・テスト・モード。コンプライアンス・モード のディセーブル / 強制。 ● ● ビット0はコンプライアンス・モードを完全にディセーブルし ます。 ビット 1 はコンプライアンス・モードを強制します。 test_pwr CFG PMGT 7 低消費電力ステート・ネゴシエーションのディセーブル。この信 号をアサートすると、すべての低消費電力ステート・ネゴシエー ションおよびエントリをディセールします。このモードは、ア タッチされた PHY が低消費電力リンク・ステートで使用される 電気的アイドル機能をサポートしない場合に使用できます。 MegaCore ファンクションはこのビットがアサートされている ときには、リンクを Tx L0s ステートまたは L1 ステートにしま せん。Stratix GX PHY 実装の場合、このビットは MegaCore ファ ンクションの内部で 1 に強制されます。 test_pcserror PCS 13:8 レーン・エラーの注入。コンプライアンス・モードのディセーブ ル / 強制。最初の 3 ビットは以下のモードを示します。 ● ● ● ● ● ● ● ● test_pcserror[2:0]: test_pcserror[2:0]: test_pcserror[2:0]: error test_pcserror[2:0]: data test_pcserror[2:0]: of END test_pcserror[2:0]: of END test_pcserror[2:0]: of data test_pcserror[2:0]: of END 000: normal mode 001: inject data error 010: inject disparity 011: inject different 100: inject SDP instead 101: inject STP instead 110: inject END instead 111: inject EDB instead 最後の 3 ビットは以下のとおりレーンを示します。 ● ● ● ● test_pcserror[5:3]: test_pcserror[5:3]: test_pcserror[5:3]: test_pcserror[5:3]: C–24 PCI Express Compiler Version 6.1 PCI Express コンパイラ・ユーザガイド 000: 001: 010: 011: on on on on lane lane lane lane 0 1 2 3 Altera Corporation 2006 年 12 月 表 C–3. test_in 信号 (3 / 6) 信号 サブ ビット ブロック 説明 test_rxerrtlp DLL 14 トランザクション・レイヤ・パケット LCRC エラー検出の強制。 この信号がアサートされると、MegaCore ファンクションは次に 受信するトランザクション・レイヤ・パケットを LCRC エラー があるかのように処理します。これらのビットは x8 MegaCore ファンクションで予約されています。 test_rxerrdllp DLL 16:15 DLLP CRC エラー検出の強制。この信号は、MegaCore ファン クションに次の DLLP の CRC エラーがないかチェックするよう 強制します。 ● ● ● ● 00: 01: 10: 11: the normal mode ACK/NAK PM flow control These bits are reserved on x8 MegaCore function. test_replay DLL 17 リトライ・バッファの強制。この信号がアサートされると、リト ライ・バッファはリトライを開始します。これらのビットは x8 MegaCore ファンクションで予約されています。 test_acknak DLL 19:18 ACK を NAK に置き換え。この信号は ACK を以下のシーケン ス番号を持つ NAK に置き換えます。 ● ● ● ● 00: 01: 10: 11: normal mode Same sequence number as the ACK Sequence number incremented Sequence number decremented これらのビットが未使用の場合は、0 にハード・ワイヤして未使 用ロジックを取り除きます。これらのビットは x8 MegaCore ファ ンクションで予約されています。 test_ecrcerr DLL 20 送信時の ECRC エラーの注入。この信号をアサートすると、送 信時に ECRC エラーが生成されます。 test_lcrcerr DLL 21 送信時の LCRC エラーの注入。この信号をアサートすると、送 信時に LCRC エラーが生成されます。これらのビットは x8 MegaCore ファンクションで予約されています。 Altera Corporation 2006 年 12 月 PCI Express Compiler Version 6.1 C–25 PCI Express コンパイラ・ユーザガイド テスト・イン・インタフェース 表 C–3. test_in 信号 (4 / 6) 信号 test_crcerr サブ ビット ブロック DLL 23:22 説明 送信時の DLLP CRC エラーの注入。DLLP の送信時に CRC エ ラーを生成します。 ● ● ● ● 00: 01: 10: 11: normal PM error flow control error ACK error これらのビットが未使用の場合は、0 にハード・ワイヤして未使 用ロジックを取り除きます。これらのビットは x8 MegaCore ファ ンクションで予約されています。 C–26 PCI Express Compiler Version 6.1 PCI Express コンパイラ・ユーザガイド Altera Corporation 2006 年 12 月 表 C–3. test_in 信号 (5 / 6) 信号 test_ufcvalue サブ ビット ブロック TRN 28:24 説明 アップデート・フロー制御用不正値の生成。この信号はフロー制 御クレジットのアップデート時に不正値を強制します。これは、 トランザクション・レイヤ・パケットが受信バッファから抽出さ れ、アプリケーション層に送信されるときに、クレジット割り当 てフィールドに1クレジットを追加または削除することによって 行います。 ● ● ● ● ● ● ● ● ● ● ● ● ● ● ● ● ● ● ● ● ● ● ● ● ● 00000: 00001: 00010: 00011: 00100: 00101: 00110: 00111: 01000: 01001: 01010: 01011: 01100: 01101: 01110: 01111: 10000: 10001: 10010: 10011: 10100: 10101: 10110: 10111: 11000: normal mode UFC_P error on header (+1/0) UFC_P error on data (0/+1) UFC_P error on header/data (+1/+1) UFC_NP error on header (+1/0) UFC_NP error on data (0/+1) UFC_NP error on header/data (+1/+1) UFC_CPL error on header (+1/0) UFC_CPL error on data (0/+1) UFC_CPL error header/data (+1/+1) UFC_P error on header (-1/0) UFC_P error on data (0/-1) UFC_P error on header/data (-1/-1) UFC_NP error on header (-1/0) UFC_NP error on data (0/-1) UFC_NP error on header/data (-1/-1) UFC_CPL error on header (-1/0) UFC_CPL error on data (0/-1) UFC_CPL error header/data (-1/-1) UFC_P error on header/data (+1/-1) UFC_P error on header/data (-1/+1) UFC_NP error on header/data (+1/-1) UFC_NP error on header/data (-1/+1) UFC_CPL error header/data (+1/-1) UFC_CPL error header/data (-1/+1) これらのビットが未使用の場合は、0 にハード・ワイヤして未使 用ロジックを取り除きます。これらのビットは x8 MegaCore ファ ンクションで予約されています。 Altera Corporation 2006 年 12 月 PCI Express Compiler Version 6.1 C–27 PCI Express コンパイラ・ユーザガイド テスト・イン・インタフェース 表 C–3. test_in 信号 (6 / 6) 信号 test_vcselect サブ ビット ブロック TRN 31:29 説明 バーチャル・チャネル・テストの選択。この信号はテスト・アウ ト・インタフェースで現在検討されているバーチャル・チャネル を示します(test_out[255:131])。このバーチャル・チャ ネルのテスト選択は、 test_out バスの一部を、別のバーチャ ル・チャネル(VC)からの出力デバッグ信号に切り替える mux の選択入力です。例 : ● ● ● ● test_vcselect[31:29]:000:test_out[255:131] describes activity for VC0 test_vcselect[31:29]:001:test_out[255:131] describes activity for VC1 test_vcselect[31:29]:010:test_out[255:131] describes activity for VC2 ... 未使用ロジックを取り除くには、この信号の特定ビットを 0 に設 定しなければなりません。 ● ● ● 1 本のバーチャル・チャネル(またはまったく未使用の信号) : 3 ビットすべてを 000 に設定します。 2 本のバーチャル・チャネル : 2 MSB を 00 に設定します。 3 本または 4 本のバーチャル・チャネル : MSB を 0 に設定しま す。これらのビットは x8 MegaCore ファンクションで予約さ れています。 C–28 PCI Express Compiler Version 6.1 PCI Express コンパイラ・ユーザガイド Altera Corporation 2006 年 12 月