pci express コンパイラ・ ユーザガイドpci express コンパイラ・ ユーザガイド...

278
101 Innovation Drive San Jose, CA 95134 (408) 544-7000 www.altera.co.jp PCI Express コンパイラ・ ユーザガイド MegaCore バージョン : 6.1 ドキュメント・バージョン : 6.1 rev. 2 ドキュメント・デート : 2006 12 この資料は英語版を翻訳したもので、内容に相違 が生じる場合には原文を優先します。こちらの日 本語版は参考用としてご利用ください。設計の際 には、最新の英語版で内容をご確認ください。

Upload: others

Post on 14-Sep-2020

2 views

Category:

Documents


0 download

TRANSCRIPT

Page 1: PCI Express コンパイラ・ ユーザガイドPCI Express コンパイラ・ ユーザガイド MegaCore バージョン:6.1 ドキュメント・バージョン: 6.1 rev. 2 ドキュメント・デート:2006年12

101 Innovation DriveSan Jose, CA 95134(408) 544-7000www.altera.co.jp

PCI Express コンパイラ・ユーザガイド

MegaCoreバージョン : 6.1ドキュメント・バージョン : 6.1 rev. 2ドキュメント・デート : 2006年 12月

この資料は英語版を翻訳したもので、内容に相違が生じる場合には原文を優先します。こちらの日本語版は参考用としてご利用ください。設計の際には、最新の英語版で内容をご確認ください。

Page 2: PCI Express コンパイラ・ ユーザガイドPCI Express コンパイラ・ ユーザガイド 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 devicedesignations, and all other words and logos that are identified as trademarks and/or service marks are, unless noted otherwise, the trademarks andservice 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 warrantsperformance of its semiconductor products to current specifications in accordance with Altera's standard warranty, but reserves the right to makechanges to any products and services at any time without notice. Altera assumes no responsibility or liability arising out of theapplication or use of any information, product, or service described herein except as expressly agreed to in writing by AlteraCorporation. Altera customers are advised to obtain the latest version of device specifications before relying on any publishedinformation and before placing orders for products or services.

ii PCI Express Compiler Version 6.1 Altera CorporationPCI Express コンパイラ・ユーザガイド

UG-PCI10605-1.4.1

Page 3: PCI Express コンパイラ・ ユーザガイドPCI Express コンパイラ・ ユーザガイド MegaCore バージョン:6.1 ドキュメント・バージョン: 6.1 rev. 2 ドキュメント・デート:2006年12

Altera Corporation PCI Express Compiler Version 6.1 iii2006年 12月

目次

このユーザガイドについて改訂履歴 ................................................................................................................................................... viiアルテラへのお問い合わせ .................................................................................................................. viii表記規則 ..................................................................................................................................................... ix

1. このコンパイラについてリリース情報 .......................................................................................................................................... 1–1サポートされるデバイス・ファミリ .................................................................................................. 1–1Compilerバージョン 6.1の新機能 ..................................................................................................... 1–2機能 .......................................................................................................................................................... 1–2概要 .......................................................................................................................................................... 1–3テストベンチおよびデザイン例 :シンプル DMAおよびチェインニング DMA ................... 1–5OpenCore Plus評価機能 ................................................................................................................. 1–6

パフォーマンス ...................................................................................................................................... 1–7

2. 使用法デザイン・フロー ................................................................................................................................. 2–1PCI Expressの実習 ................................................................................................................................ 2–2

MegaWizard Plug-In Managerの起動 .......................................................................................... 2–3パラメータ設定 ................................................................................................................................. 2–5シミュレーションのセットアップ ................................................................................................. 2–9ファイルの生成 ............................................................................................................................... 2–12

デザインのシミュレーション ................................................................................................................................ 2–15

IP機能シミュレーション・モデル .............................................................................................. 2–15デザインのコンパイル ........................................................................................................................ 2–16Program a Device ................................................................................................................................ 2–17ライセンスのセットアップ ................................................................................................................ 2–18

Page 4: PCI Express コンパイラ・ ユーザガイドPCI Express コンパイラ・ ユーザガイド MegaCore バージョン:6.1 ドキュメント・バージョン: 6.1 rev. 2 ドキュメント・デート:2006年12

iv PCI Express Compiler Version 6.1 Altera CorporationPCI Expressコンパイラ・ユーザガイド  2006年 12月

目次

3. 仕様機能の説明 .............................................................................................................................................. 3–1エンドポイントの種類 ..................................................................................................................... 3–2トランザクション・レイヤ ............................................................................................................. 3–2データ・リンク・レイヤ ................................................................................................................. 3–8物理レイヤ ....................................................................................................................................... 3–11スループットの解析 ....................................................................................................................... 3–12コンフィギュレーション・スペース・レジスタの内容 ........................................................... 3–20アクティブ・ステート・パワー・マネージメント(ASPM) ................................................. 3–24エラー処理 ....................................................................................................................................... 3–27Stratix GX PCI Expressの互換性 ................................................................................................. 3–34OpenCore Plusタイム・アウト動作 ........................................................................................... 3–34

パラメータ設定 .................................................................................................................................... 3–36System Settingsページ .................................................................................................................. 3–36Capabilitiesページのパラメータ ................................................................................................. 3–41Buffer Setupページ ........................................................................................................................ 3–44Power Managementページ .......................................................................................................... 3–49

信号 ........................................................................................................................................................ 3–51送信インタフェース動作信号 ....................................................................................................... 3–53受信インタフェース動作信号 ....................................................................................................... 3–69クロック ........................................................................................................................................... 3–81ユーティリティ信号 ....................................................................................................................... 3–87alt2gxbサポート信号 ..................................................................................................................... 3–99物理レイヤ・インタフェース信号 ............................................................................................. 3–101

MegaCore検証 ................................................................................................................................... 3–105シミュレーション環境 ................................................................................................................. 3–105互換性テストの環境 ..................................................................................................................... 3–105

4. 外部 PHY外部 PHYのサポート ............................................................................................................................ 4–1

16 ビット SDRモード ...................................................................................................................... 4–2ソース・シンクロナス TxClk付き 16 ビット SDRモード ........................................................ 4–38 ビット DDRモード ....................................................................................................................... 4–5ソース・シンクロナス TxClk付き 8 ビット DDR ...................................................................... 4–68 ビット SDRモード ........................................................................................................................ 4–8ソース・シンクロナス TxClk付き 8 ビット SDR ....................................................................... 4–916 ビット PHYインタフェース信号 ........................................................................................... 4–118 ビット PHYインタフェース信号 ............................................................................................. 4–13

外部 PHYの選択 .................................................................................................................................. 4–15外部 PHY制約のサポート .................................................................................................................. 4–16外部 PHYと Stratix GXデバイス・ファミリの使用 ................................................................ 4–17

Page 5: PCI Express コンパイラ・ ユーザガイドPCI Express コンパイラ・ ユーザガイド MegaCore バージョン:6.1 ドキュメント・バージョン: 6.1 rev. 2 ドキュメント・デート:2006年12

Altera Corporation PCI Express Compiler Version 6.1 v2006年 12月 PCI Expressコンパイラ・ユーザガイド

目次

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–32BFMメモリ・マップ ..................................................................................................................... 5–35コンフィギュレーション・スペース・バスおよびデバイスの番号付与 ............................... 5–35ルート・ポートおよびエンド・ポイントのコンフィギュレーション ................................... 5–35アプリケーション・レイヤへのリード&ライト・トランザクションの発行 ....................... 5–38

BFMプロシージャおよびファンクション ....................................................................................... 5–39BFMリードおよびライト・プロシージャ ................................................................................. 5–40BFMパフォーマンス・カウント ................................................................................................. 5–47BFMリード /ライト要求プロシージャ ..................................................................................... 5–48BFMコンフィギュレーション・プロシージャ ......................................................................... 5–50BFM共有メモリ・アクセス・プロシージャ ............................................................................. 5–52BFMログおよびメッセージ・プロシージャ ............................................................................. 5–56Verilog HDLフォーマッティング・ファンクション ............................................................... 5–62チェイニング DMAデザイン固有のプロシージャおよびファンクション ........................... 5–68

付録 A. コンフィギュレーション信号

X1および x4 MegaCoreファンクションのコンフィギュレーション信号 ............................................................................. A–1X8 MegaCoreファンクションのコンフィギュレーション信号 .................................................... A–7

付録 B. トランザクション・レイヤ・パケットのヘッダ・フォーマットデータ・ペイロードを含まないコンテンツ ..................................................................................... B–1データ・ペイロードを含むコンテンツ ............................................................................................. B–2

付録 C. テスト・ポート・インタフェース信号

x1 & x4 MegaCoreファンクション用テスト・アウト・インタフェース信号 ............................................................. C–2x8 MegaCoreファンクション用テスト・アウト・インタフェース信号 .................................. C–20テスト・イン・インタフェース ....................................................................................................... C–23

Page 6: PCI Express コンパイラ・ ユーザガイドPCI Express コンパイラ・ ユーザガイド MegaCore バージョン:6.1 ドキュメント・バージョン: 6.1 rev. 2 ドキュメント・デート:2006年12

vi PCI Express Compiler Version 6.1 Altera CorporationPCI Expressコンパイラ・ユーザガイド 2006年 12月

目次

Page 7: PCI Express コンパイラ・ ユーザガイドPCI Express コンパイラ・ ユーザガイド MegaCore バージョン:6.1 ドキュメント・バージョン: 6.1 rev. 2 ドキュメント・デート:2006年12

Altera Corporation PCI Express Compiler Version 6.1 vii2006年 12月 PCI Express コンパイラ・ユーザガイド

このユーザガイドについて

改訂履歴 以下の表に、このユーザガイドの章の改訂履歴を示します。

章 日付 バージョン 変更内容1 2006年 12月 6.1 ● Stratix® IIIデバイス・ファミリのサポートを追加

● バージョンおよび性能情報を更新

2006年 4月 2.1.0 ● 内容を再編● 性能情報を更新

2005年 10月 2.0.0 ● ×8サポートを追加● Stratix II GXおよび Cyclone® IIデバイスのサポートを追加● 性能情報を更新

2005年 6月 1.0.0 ● 初回リリース

2 12月 6.1 ● スクリーン・ショットおよびバージョン番号を更新● 新しいMegaWizard®インタフェースに対応するためにテキストを変更

● インストール図を更新● 新しいMegaWizardインタフェースに対応するために実習を更新

2006年 4月 2.1.0 ● スクリーン・ショットおよびバージョン番号を更新● コンパイル中に、2–16ページの「デザインのコンパイル」の項にある実習に Tcl制約ファイルを供給するためのステップを追加

● インストール情報をリリース・ノートに移動

2005年 10月 2.0.0 ● スクリーン・ショットおよびバージョン番号を更新

2005年 6月 1.0.0 ● 初回リリース

3 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 ● 初回リリース

Page 8: PCI Express コンパイラ・ ユーザガイドPCI Express コンパイラ・ ユーザガイド MegaCore バージョン:6.1 ドキュメント・バージョン: 6.1 rev. 2 ドキュメント・デート:2006年12

viii PCI Express Compiler Version 6.1 Altera CorporationPCI Express コンパイラ・ユーザガイド 2006年 12月

アルテラへのお問い合わせ

アルテラへのお問い合わせ

アルテラ製品に関する最新情報は、アルテラのウェブサイト、www.altera.co.jp をご覧ください。テクニカル・サポートについては、www.altera.co.jp/mysupportにアクセスしてください。また、アルテラの販売代理店にもお問い合わせいただけます。

4 2006年 12月 6.1 ● 新しいプロジェクト・ディレクトリ構造に対応するためにファイル名を変更

● 高性能チェインド DMA例の参考情報を追加

2006年 4月 2.1.0 ● 外部 PHYサポートのために、新しい章「外部 PHY」を追加

5 2006年 12月 6.1 ● 高性能チェインド DMA設計例を追加

2006年 4月 2.1.0 ● 章の番号を 5章に更新● 項を追加● 以下の 2つの BFM読み出し /書き込み手順を追加

ebfm_start_perf_sample手順ebfm_disp_perf_sample手順

2005年 10月 2.0.0 ● スクリーン・ショットおよびバージョン番号を更新

2005年 6月 1.0.0 ● 初回リリース

付録 A 2006年 4月 2.1.0 ● ×8 ECRCの制約を削除

2005年 6月 1.0.0 ● 初回リリース

付録 B 2005年 10月 2.1.0 ● 小さな修正

2005年 6月 1.0.0 ● 初回リリース

付録 C 4月 2.1.0 ● ×8に対する ECRCサポートを含めるように ECRCを更新

2005年 10月 1.0.0 ● ×8に対するサポートがないことを示すように ECRCを更新

2005年 6月 ● 初回リリース

すべて 2006年 4月 2.1.0 rev 2 ● ユーザガイド全体での小さな書式変更

章 日付 バージョン 変更内容

Page 9: PCI Express コンパイラ・ ユーザガイドPCI Express コンパイラ・ ユーザガイド MegaCore バージョン:6.1 ドキュメント・バージョン: 6.1 rev. 2 ドキュメント・デート:2006年12

Altera Corporation PCI Express Compiler Version 6.1 ix2006年 12月 PCI Express コンパイラ・ユーザガイド

このユーザガイド について

表記規則 本資料では以下の表記規則を使用しています。

書体 意味太字かつ文頭が大文字 コマンド名、ダイアログ・ボックス・タイトル、チェックボックス・オプショ

ン、およびダイアログ・ボックス・オプションは、太字かつ文頭が大文字で表記されています。例 : 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.など

手順など項目の順序が重要なものは、番号が付けられリスト形式で表記されています。

■ ● • 箇条書きの黒点などは、項目の順序が重要ではないものに付いています。チェックマークは、1ステップしかない手順を表します。

指差しマークは、要注意箇所を表しています。

CAUTIONマークは、特別な配慮および理解が必要であり、手順またはプロセスを始める前、または続ける際に確認すべき情報を示しています。

注意マークは、手順またはプロセスを始める前、または続ける際に確認すべき情報を示しています。矢印は、Enterキーを押すことを示しています。

足跡マークは、詳細情報の参照先を示しています。

Page 10: PCI Express コンパイラ・ ユーザガイドPCI Express コンパイラ・ ユーザガイド MegaCore バージョン:6.1 ドキュメント・バージョン: 6.1 rev. 2 ドキュメント・デート:2006年12

x PCI Express Compiler Version 6.1 Altera CorporationPCI Express コンパイラ・ユーザガイド 2006年 12月

表記規則

Page 11: PCI Express コンパイラ・ ユーザガイドPCI Express コンパイラ・ ユーザガイド MegaCore バージョン:6.1 ドキュメント・バージョン: 6.1 rev. 2 ドキュメント・デート:2006年12

Altera Corporation PCI Express Compiler Version 6.1 1–12006年 12月

1. このコンパイラについて

リリース情報 表 1–1に、アルテラの PCI Expressコンパイラのリリースに関する情報を示します。

サポートされるデバイス・ファミリ

MegaCore®ファンクションは、ターゲットのアルテラ・デバイス・ファミリに対し、フル・サポートあるいは暫定サポートを提供しています。

■ フル・サポートとは、MegaCoreファンクションがデバイス・ファミリのすべての機能要件およびタイミング要求値を満たし、生産デザインで使用できることを意味します。

■ 暫定サポートとは、MegaCoreファンクションがすべての機能要件を満たすが、デバイス・ファミリに対するタイミング解析の実行中であるため、生産デザインでの使用は注意が必要な場合があることを意味します。

表 1–1. PCI Expressコンパイラのリリース情報

項目 説明

バージョン 6.1

リリース月 2006年 12月

製品コード IP-PCIE/1IP-PCIE/4IP-PCIE/8

プロダクト ID 00A900AA00AB

ベンダ ID 6A66

Page 12: PCI Express コンパイラ・ ユーザガイドPCI Express コンパイラ・ ユーザガイド MegaCore バージョン:6.1 ドキュメント・バージョン: 6.1 rev. 2 ドキュメント・デート:2006年12

1–2 PCI Express Compiler Version 6.1 Altera CorporationPCI Express コンパイラ・ユーザガイド 2006年 12月

Compilerバージョン 6.1の新機能

表 1–2に、PCI Express Compilerによる各アルテラ・デバイス・ファミリへのサポートのレベルを示します。

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.サポートされるデバイス・ファミリ

デバイス・ファミリ サポートの種類Cyclone® II フル・サポート

HardCopy® II 暫定サポート

Stratix® II フル・サポート

Stratix II GX 暫定サポートStratix III 暫定サポートStratix GX フル・サポート

その他のデバイス・ファミリ サポートなし

Page 13: PCI Express コンパイラ・ ユーザガイドPCI Express コンパイラ・ ユーザガイド MegaCore バージョン:6.1 ドキュメント・バージョン: 6.1 rev. 2 ドキュメント・デート:2006年12

Altera Corporation PCI Express Compiler Version 6.1 1–32006年 12月 PCI Express コンパイラ・ユーザガイド

このコンパイラ について

■ 高信頼性機能へのアクセス● ×1、×4、および ×8レーンに対するオプションの ECRC (end-to-

end cyclic redundancy code)/AER (advanced error reporting)のサポート

■ OpenCore Plusを使用した無償の評価

概要 PCI Expressコンパイラは、ユーザが PCI Expressエンドポイントを設計するのに使用するカスタマイズされた PCI Express MegaCore ファンクション(非透過ブリッジを含む)、または 1個のアルテラ・デバイスに複数の PCI Express コンポーネントを組み合わせて搭載した真にユニークなデザインを生成します。PCI Express MegaCoreファンクションは、PCIExpress Base Specification Revision 1.1 または PCI Express™ BaseSpecification 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をサポートします。

Page 14: PCI Express コンパイラ・ ユーザガイドPCI Express コンパイラ・ ユーザガイド MegaCore バージョン:6.1 ドキュメント・バージョン: 6.1 rev. 2 ドキュメント・デート:2006年12

1–4 PCI Express Compiler Version 6.1 Altera CorporationPCI Express コンパイラ・ユーザガイド 2006年 12月

概要

図 1-1. PCI Expressシステムの例

PCI Express コンパイラはアルテラ・デバイスに対して最適化されており、すべてのメモリ、I/O、コンフィギュレーション、およびメッセージ・トランザクションをサポートしています。MegaCore ファンクションは、最大有効スループットを達成する高度に最適化されたアプリケーション・インタフェースを備えています。このコンパイラはパラメータ化が可能なので、Quartus® IIソフトウェアでMegaWizardインタフェースを使用することによって、デザイン要件に適合するように MegaCoreファンクションをカスタマイズできます。たとえば、MegaCore ファンクションは、×1または ×4コンフィギュレーションでは最大 4本のバーチャル・チャネル、または ×8 コンフィギュレーションでは最大 2 本のバーチャル・チャネルをサポートできます。また、ペイロード・サイズ、バッファ・サイズ、およびコンフィギュレーション・スペース(ベース・アドレス・レジスタのサポートおよび他のレジスタ)をカスタマイズすることも可能です。さらに PCI Expressコンパイラは、×1、×4、および×8 コンフィギュレーションに対しては、ECRC (end-to-end cyclicredundancy code)と AER (advanced error reporting)もサポートしています。

PCI Express MegaCoreファンクションには、MegaCoreファンクションの監視と制御が可能なデバッグ機能も含まれています。これらの追加の入力および出力は、システム・レベルの問題をより迅速にデバッギングするのに役立ちます。

RootComplex

Switch

Stratix GX or Stratix II GX Device

User Application Logic

PCI ExpressMegaCore Function

Endpoint

Stratix II or Cyclone II Device

User Application Logic

PCI ExpressMegaCore Function

Endpoint

PIPE Interface

PCI Express Link

External PHY

PCI Express Link

Page 15: PCI Express コンパイラ・ ユーザガイドPCI Express コンパイラ・ ユーザガイド MegaCore バージョン:6.1 ドキュメント・バージョン: 6.1 rev. 2 ドキュメント・デート:2006年12

Altera Corporation PCI Express Compiler Version 6.1 1–52006年 12月 PCI Express コンパイラ・ユーザガイド

このコンパイラ について

テストベンチおよびデザイン例 :シンプル DMAおよびチェインニング DMA

PCI Express コンパイラには、ベーシック・ルート・ポート BFM (busfunctional model)およびシンプル DMAとチェインニング DMAの 2つのエンドポイント・デザイン例に対応するエンドポイント・テストベンチが含まれています。両方のエンドポイント・デザイン例は、PCI ExpressMegaCore ファンクションへのアプリケーション・インタフェースを示し、シミュレーションと合成の両方、およびハードウェアでのMegaCoreファンクションの OpenCore Plus評価に適したクリア・テキスト・ソース・コード(VHDLおよび Verilog HDL)として供給されます。ベーシック・ルート・ポート BFM には、ルート・ポートのドライバと IP 機能シミュレーション・モデルが組み込まれています。図 1-2に、シンプル DMA例に対するエンドポイント・テストベンチ・セットアップを示します。図 1-3に、チェインニング DMA例に対するテストベンチを示します。

図 1-2.シンプル DMA例のテストベンチ

Endpoint Simple DMA Example

Root Port Driver

x8 Root Port Model

User Interface

Root Port BFM

TargetControl

PCI ExpressMegaCore Function

Endpoint Application Layer Example

DMAControl

Registers

DMAControl

TargetMemory

(32 KBytes)

DMAMemory

(32 KBytes)

Traffic Control/Virtual Channel MappingRequest/Completion Routing

User Interface

PCI Express Link

Page 16: PCI Express コンパイラ・ ユーザガイドPCI Express コンパイラ・ ユーザガイド MegaCore バージョン:6.1 ドキュメント・バージョン: 6.1 rev. 2 ドキュメント・デート:2006年12

1–6 PCI Express Compiler Version 6.1 Altera CorporationPCI Express コンパイラ・ユーザガイド 2006年 12月

概要

図 1-2 または図 1-3 に示すエンドポイント・アプリケーション・レイヤ例をユーザ独自のアプリケーション・レイヤ・デザインに置き換え、BFMドライバを変更して、アプリケーション・レイヤをテストするのに必要なトランザクションを生成することができます。

図 1-3.チェインニング DMA例のテストベンチ

OpenCore Plus評価機能

アルテラの無償 OpenCore Plus評価機能により、以下の操作を実行できます。

■ システム内のMegaCoreファンクションの動作のシミュレーション■ デザインの機能を検証したり、サイズやスピードを素早く簡単に評価可能

Endpoint Example

Root Port Driver

x8 Root Port Model

User Interface

Root Port BFM

PCI ExpressMegaCore Function

Endpoint Application Layer Example

DMAWrite

RCSlave

(Optional)

Endpoint Memory

(32 KBytes)

Traffic Control/Virtual Channel MappingRequest/Completion Routing

User Interface

PCI Express Link

DMARead

Page 17: PCI Express コンパイラ・ ユーザガイドPCI Express コンパイラ・ ユーザガイド MegaCore バージョン:6.1 ドキュメント・バージョン: 6.1 rev. 2 ドキュメント・デート:2006年12

Altera Corporation PCI Express Compiler Version 6.1 1–72006年 12月 PCI Express コンパイラ・ユーザガイド

このコンパイラ について

■ 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 を参照してください。

Page 18: PCI Express コンパイラ・ ユーザガイドPCI Express コンパイラ・ ユーザガイド MegaCore バージョン:6.1 ドキュメント・バージョン: 6.1 rev. 2 ドキュメント・デート:2006年12

1–8 PCI Express Compiler Version 6.1 Altera CorporationPCI Express コンパイラ・ユーザガイド 2006年 12月

パフォーマンス

表 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(受信要求に対する希望性能)および Desiredperformance for completions(完了に対する希望性能)は、両方とも Lowに設定されていました。

Page 19: PCI Express コンパイラ・ ユーザガイドPCI Express コンパイラ・ ユーザガイド MegaCore バージョン:6.1 ドキュメント・バージョン: 6.1 rev. 2 ドキュメント・デート:2006年12

Altera Corporation PCI Express Compiler Version 6.1 1–92006年 12月 PCI Express コンパイラ・ユーザガイド

このコンパイラ について

6.1 表 1–4に、Stratix II (EP2S130GF1508C3) デバイスをターゲットとしQuartus IIソフトウェア・バージョン 6.1を使用した場合の各種パラメータの標準的な期待性能を示します。

表 1–5に、Stratix II GX (EP2SGX130GF1508C3) デバイスをターゲットとし 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デバイス

パラメータ メモリ・ブロック数

×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

Page 20: PCI Express コンパイラ・ ユーザガイドPCI Express コンパイラ・ ユーザガイド MegaCore バージョン:6.1 ドキュメント・バージョン: 6.1 rev. 2 ドキュメント・デート:2006年12

1–10 PCI Express Compiler Version 6.1 Altera CorporationPCI Express コンパイラ・ユーザガイド 2006年 12月

パフォーマンス

表 1–6 に、Stratix III (EP3SL200F1152C3) デバイスをターゲットとしQuartus IIソフトウェア・バージョン 6.1を使用した場合の各種パラメータの標準的な期待性能を示します。

表 1–7 に、Stratix GX (EP1SGX25CF672C5) デバイスをターゲットとしQuartus IIソフトウェア・バージョン 6.1を使用した場合の各種パラメータの標準的な期待性能を示します。.

以下の表に、サポートされるリンク幅および内部クロック周波数に対する推奨デバイス・ファミリのスピード・グレードを示します。内部クロック周波数が 125 MHzまたは 250 MHzのときの 推奨設定値は、Quartus IIAnalysis & Synthesis Optimization TechniqueをSpeedにすることです。

表 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

パラメータ メモリ・ブロック数

×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

Page 21: PCI Express コンパイラ・ ユーザガイドPCI Express コンパイラ・ ユーザガイド MegaCore バージョン:6.1 ドキュメント・バージョン: 6.1 rev. 2 ドキュメント・デート:2006年12

Altera Corporation PCI Express Compiler Version 6.1 1–112006年 12月 PCI Express コンパイラ・ユーザガイド

このコンパイラ について

この設定方法について詳しくは、「Quartus II 開発ソフトウェア・ハンドブック」を参照してください。

表 1–8.推奨デバイス・ファミリとスピード・グレード

デバイス・ファミリ リンク幅 内部クロック周波数 推奨スピード・グレード

Cyclone II ×1, ×4 125MHz -6

×1 62.5MHz -6, -7, -8(4)

Stratix II GX ×1,×4 125MHz -3, -4, -5 (1)

×8 250MHz -3(1), -4(2),(3)

Stratix II ×1, ×4 125MHz -3, -4, -5 (1)

×1 62.5Mhz -3, -4, -5

Stratix III ×1,×4 125MHz -2,-3,-4

×1 62.5MHz -2,-3,-4

Stratix GX ×1, ×4 125MHz -5(1)

×1 62.5MHz -5,-6

注 :(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モードが推奨されます。

Page 22: PCI Express コンパイラ・ ユーザガイドPCI Express コンパイラ・ ユーザガイド MegaCore バージョン:6.1 ドキュメント・バージョン: 6.1 rev. 2 ドキュメント・デート:2006年12

1–12 PCI Express Compiler Version 6.1 Altera CorporationPCI Express コンパイラ・ユーザガイド 2006年 12月

パフォーマンス

Page 23: PCI Express コンパイラ・ ユーザガイドPCI Express コンパイラ・ ユーザガイド MegaCore バージョン:6.1 ドキュメント・バージョン: 6.1 rev. 2 ドキュメント・デート:2006年12

Altera Corporation PCI Express Compiler Version 6.1 2–12006年 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. ディレクトリ構造

commonContains shared components.

pci_express_compilerContains 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.

<path>Installation directory

ip Contains the MegaCore IP Library

Page 24: PCI Express コンパイラ・ ユーザガイドPCI Express コンパイラ・ ユーザガイド MegaCore バージョン:6.1 ドキュメント・バージョン: 6.1 rev. 2 ドキュメント・デート:2006年12

2–2 PCI Express Compiler Version 6.1 Altera CorporationPCI Express コンパイラ・ユーザガイド 2006年 12月

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■ シミュレーションのセットアップ■ ファイルの生成

Page 25: PCI Express コンパイラ・ ユーザガイドPCI Express コンパイラ・ ユーザガイド MegaCore バージョン:6.1 ドキュメント・バージョン: 6.1 rev. 2 ドキュメント・デート:2006年12

Altera Corporation PCI Express Compiler Version 6.1 2–32006年 12月 PCI Express コンパイラ・ユーザガイド

使用法

PCI Express コンパイラ MegaWizard インタフェースは、作成した PCIExpress 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-InManagerダイアログ・ボックスが表示されます(図 2-2を参照)。

MegaWizard Plug-In Managerの使用方法について詳しくは、Quartus IIヘルプを参照してください。

図 2-2. MegaWizard Plug-In Manager

2. 作成する新しいカスタム・メガファンクション・バリエーションを指定し、Nextをクリックします。

Page 26: PCI Express コンパイラ・ ユーザガイドPCI Express コンパイラ・ ユーザガイド MegaCore バージョン:6.1 ドキュメント・バージョン: 6.1 rev. 2 ドキュメント・デート:2006年12

2–4 PCI Express Compiler Version 6.1 Altera CorporationPCI Express コンパイラ・ユーザガイド 2006年 12月

PCI Expressの実習

3. ディレクトリ名の左の + アイコンをクリックして、Installed Plug-Insの下の Interfaces ディレクトリを拡張し、PCI Express Compiler v6.1をクリックします。

4. この MegaCore ファンクション・バリエーションに使用するデバイス・ファミリを選択します。例 : Stratix II GX

5. デザインの出力ファイル・タイプを選択します。MegaWizard Plug-In 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ファンクションの選択

Page 27: PCI Express コンパイラ・ ユーザガイドPCI Express コンパイラ・ ユーザガイド MegaCore バージョン:6.1 ドキュメント・バージョン: 6.1 rev. 2 ドキュメント・デート:2006年12

Altera Corporation PCI Express Compiler Version 6.1 2–52006年 12月 PCI Express コンパイラ・ユーザガイド

使用法

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を参照してください。

Page 28: PCI Express コンパイラ・ ユーザガイドPCI Express コンパイラ・ ユーザガイド MegaCore バージョン:6.1 ドキュメント・バージョン: 6.1 rev. 2 ドキュメント・デート:2006年12

2–6 PCI Express Compiler Version 6.1 Altera CorporationPCI Express コンパイラ・ユーザガイド 2006年 12月

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ビット

Page 29: PCI Express コンパイラ・ ユーザガイドPCI Express コンパイラ・ ユーザガイド MegaCore バージョン:6.1 ドキュメント・バージョン: 6.1 rev. 2 ドキュメント・デート:2006年12

Altera Corporation PCI Express Compiler Version 6.1 2–72006年 12月 PCI Express コンパイラ・ユーザガイド

使用法

他の多くの BAR 設定では、シンプル DMA デザイン例のフル・テストが可能です。テスト・モジュールが使用する設定の説明については、5–23 ページの「シンプル DMA デザイン例用の BFMテスト・ドライバ・モジュール」を参照してください。

利用可能なパラメータの詳しい説明については、3–36 ページの「パラメータ 設定」を参照してください。

2. Nextをクリックして、Capabilitiesページを表示します。

3. Capabilities ページを開いた状態で、適切な設定を行い、Next をクリックして、Buffer Setupページを表示します。図 2-5を参照してください。

図 2-5. Capabilitiesページ

Page 30: PCI Express コンパイラ・ ユーザガイドPCI Express コンパイラ・ ユーザガイド MegaCore バージョン:6.1 ドキュメント・バージョン: 6.1 rev. 2 ドキュメント・デート:2006年12

2–8 PCI Express Compiler Version 6.1 Altera CorporationPCI Express コンパイラ・ユーザガイド 2006年 12月

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を参照してください。

Page 31: PCI Express コンパイラ・ ユーザガイドPCI Express コンパイラ・ ユーザガイド MegaCore バージョン:6.1 ドキュメント・バージョン: 6.1 rev. 2 ドキュメント・デート:2006年12

Altera Corporation PCI Express Compiler Version 6.1 2–92006年 12月 PCI Express コンパイラ・ユーザガイド

使用法

5. Power Managementページが開きます。適切な設定を行います。図 2-7を参照してください。

図 2-7. 電源管理ページ

6. 設定を適用するには、Finishをクリックします。

7. Next(または Simulation Modelページ)をクリックしてシミュレーション・セットアップ・ページ(図 2-8を参照)を表示します。

シミュレーションのセットアップ

IP機能シミュレーション・モデルは、Quartus IIソフトウェアで作成するサイクル単位の正確な VHDL または Verilog HDL モデルです。このモデルにより、業界標準の VHDL および Verilog HDL シミュレータを使用した IPの高速機能シミュレーションが可能になります。

Page 32: PCI Express コンパイラ・ ユーザガイドPCI Express コンパイラ・ ユーザガイド MegaCore バージョン:6.1 ドキュメント・バージョン: 6.1 rev. 2 ドキュメント・デート:2006年12

2–10 PCI Express Compiler Version 6.1 Altera CorporationPCI Express コンパイラ・ユーザガイド 2006年 12月

PCI Expressの実習

これらのシミュレーション・モデル出力ファイルは、シミュレーション目的にのみ使用し、合成やその他の目的には使用しないでください。合成のためにこれらのモデルを使用すると、機能しないデザインが作成されます。

MegaCoreファンクション用の IP機能シミュレーション・モデルを生成するには、以下のステップに従います。

1. Simulation Model タブ(図 2-8を参照)をクリックします。

図 2-8. シミュレーションのセットアップ

2. チェックボックスをクリックして、Generate Simulation Model(図 2-8を参照)をイネーブルにします。

3. Languageリスト・プルダウンで言語を選択します。

Page 33: PCI Express コンパイラ・ ユーザガイドPCI Express コンパイラ・ ユーザガイド MegaCore バージョン:6.1 ドキュメント・バージョン: 6.1 rev. 2 ドキュメント・デート:2006年12

Altera Corporation PCI Express Compiler Version 6.1 2–112006年 12月 PCI Express コンパイラ・ユーザガイド

使用法

4. Next(または Summary タブ)をクリックして、サマリ・ページ(図 2-9を参照)を表示します。

図 2-9. Summary

Page 34: PCI Express コンパイラ・ ユーザガイドPCI Express コンパイラ・ ユーザガイド MegaCore バージョン:6.1 ドキュメント・バージョン: 6.1 rev. 2 ドキュメント・デート:2006年12

2–12 PCI Express Compiler Version 6.1 Altera CorporationPCI Express コンパイラ・ユーザガイド 2006年 12月

PCI Expressの実習

ファイルの生成

ファイルを生成するには、以下のステップに従います。

1. 生成したいファイルをオンにします。Summaryページのチェック・ボックスを使用して、指定されたファイルの生成をイネーブルまたはディセーブルにします。グレイのチェックマークは、自動的に生成されるファイルを示し、その他のチェックマークはオプションのファイルを示します。

どれかパラメータを変更したい場合は、このステージでBack、または Parameters Setting、Simulation Model、Summaryのいずれかのタブをクリックして、MegaWizard Plug-InManagerの他のページを表示することができます。

2. 指定されたファイルを生成し、MegaWizard Plug-In Manager を閉じるには、Finishをクリックします。

Generation パネルにファイル生成の状況が表示されます。すべてのファイルが生成されると、Generationパネルは Generation Successfulステータス・メッセージを返します。Exitをクリックしてパネルを閉じます。生成フェーズは完了するまでに数分かかることがあります。プロジェクト・ディレクトリに書き込まれ、<バリエーション名>.htmlという名前が付けられた生成レポートには、生成されたファイルとポートがリストされます。

図 2-10. Generationパネル

Page 35: PCI Express コンパイラ・ ユーザガイドPCI Express コンパイラ・ ユーザガイド MegaCore バージョン:6.1 ドキュメント・バージョン: 6.1 rev. 2 ドキュメント・デート:2006年12

Altera Corporation PCI Express Compiler Version 6.1 2–132006年 12月 PCI Express コンパイラ・ユーザガイド

使用法

表 2–2に、生成されたファイルとユーザのプロジェクト・ディレクトリに格納される可能性があるその他のファイルを示します。サマリに指定されるファイルの名前とタイプは、デザインを VHDL または VerilogHDLを使用して作成しているかどうかによって異なります。

表 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トランザクション、データ・リンク、および物理層をインスタンス化します。これは、<バリエーション名 >モジュール(またはエンティティ)内部でインスタンス化されます。QuartusII ソフトウェアでデザインをコンパイルするときには、このファイルを含めます。

Page 36: PCI Express コンパイラ・ ユーザガイドPCI Express コンパイラ・ ユーザガイド MegaCore バージョン:6.1 ドキュメント・バージョン: 6.1 rev. 2 ドキュメント・デート:2006年12

2–14 PCI Express Compiler Version 6.1 Altera CorporationPCI Express コンパイラ・ユーザガイド 2006年 12月

PCI Expressの実習

ここで、ユーザのカスタムMegaCoreファンクション・バリエーションをデザインに統合し、シミュレートしてコンパイルすることができます。

Quartus II ソフトウェアは、< バリエーション名 >_examples という名前のプロジェクト・ディレクトリに、3 レベルのサブディレクトリも作成します。図 2-11にこのディレクトリ構造を示します。このサブディレクトリには、シンプル DMAデザイン例およびチェインニング DMAデザイン例の両方をテストするための PCI Express BFMおよびテストベンチが含まれています。このディレクトリには、ModelSim シミュレータでテストベンチを実行するためのスクリプトも含まれています。テストベンチ用に作成されたファイルのリストと簡単な説明については、第 5章 テストベンチおよび デザイン例を参照してください。

<バリエーション名 >_core.vhoまたは<バリエーション名 >_core.vo

このファイルには、< バリエーション名 >_core エンティティ(またはモジュール)の VHDLまたは VerilogHDL IP 機能シミュレーション・モデルが含まれています。デザインをシミュレートするときには、このファイルを含めます。

表 2–1の注 :(1) これらのファイルはバリエーションに依存し、一部は存在しないか、または名前が変更される可能性があります。

(2) < バリエーション名 > は、MegaWizard Plug-In Manager によって自動的に供給されるプリフィックス・バリエーション名です。

表 2–2.生成されるファイル 注 (1)& (2)(2 /2)

ファイル名 説明

Page 37: PCI Express コンパイラ・ ユーザガイドPCI Express コンパイラ・ ユーザガイド MegaCore バージョン:6.1 ドキュメント・バージョン: 6.1 rev. 2 ドキュメント・デート:2006年12

Altera Corporation PCI Express Compiler Version 6.1 2–152006年 12月 PCI Express コンパイラ・ユーザガイド

使用法

図 2-11. ディレクトリ例が格納されている PCI Expressディレクトリ

デザインのシミュレーション

MegaWizardで生成された VHDLおよび Verilog HDL IP機能シミュレーション・モデルを使用して、デザインをシミュレートすることができます。

IP機能シュミレーション・モデルについて詳しくは、「Quartus II開発ソフトウェア・ハンドブック Volume 3」の「サードパーティ・シミュレーション・ツールによるアルテラ IPのシミュレーション」の章を参照してください。

IP機能シミュレーション・モデル

ModelSim シミュレータでテストベンチを実行するには、以下のステップに従います。

1. ModelSimシミュレータを開始する。

2. ModelSim Fileメニューから、Change Directoryを使用して作業ディレクトリを適切なデザイン例のディレクトリに変更します。

<Quartus II project>.qpf

<user_project directory>

<variation_name>.v or <variation_name>.vhd

<PCI Express variation_name>_examples

chaining_dmadirectory 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

testbenchaltpcietb_bfm_driver_chaining.vtop_chaining_testbench.v

common

testbench

testbench

simple_dmacontains 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

Page 38: PCI Express コンパイラ・ ユーザガイドPCI Express コンパイラ・ ユーザガイド MegaCore バージョン:6.1 ドキュメント・バージョン: 6.1 rev. 2 ドキュメント・デート:2006年12

2–16 PCI Express Compiler Version 6.1 Altera CorporationPCI Express コンパイラ・ユーザガイド 2006年 12月

デザインのコンパイル

シンプル 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プロジェクト例には、このデザイン例で使用されるバリエーションで選択されたパラメータに対して推奨される合成、フィッタ、およびタイミング解析設定があります。

Page 39: PCI Express コンパイラ・ ユーザガイドPCI Express コンパイラ・ ユーザガイド MegaCore バージョン:6.1 ドキュメント・バージョン: 6.1 rev. 2 ドキュメント・デート:2006年12

Altera Corporation PCI Express Compiler Version 6.1 2–172006年 12月 PCI Express コンパイラ・ユーザガイド

使用法

ユーザ・プロジェクトの PCI Express アサインメントを検証するには、以下のステップに従います。

1. Quartus IIソフトウェアで、Start Compilation(Processingメニュー)を選択します。

2. コンパイル後、フォルダ名の隣にある +アイコンをクリックして、Compilation Report パネルの Timing Analyzer または TimeQuestTiming Analyzerフォルダを展開します。Compilation Reportのこのセクションからタイミング制約が正しく満足されたかどうかに注意してください。

デザインが最初にタイミング制約を満足しない場合は、Quartus II ソフトウェアの Design Space Explorer を使用して、デザインがタイミング制約に適合するための最適なフィッタ設定を見つけるよう試みてください。Design SpaceExplorer を使用するには、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」機能を参照してください。

Page 40: PCI Express コンパイラ・ ユーザガイドPCI Express コンパイラ・ ユーザガイド MegaCore バージョン:6.1 ドキュメント・バージョン: 6.1 rev. 2 ドキュメント・デート:2006年12

2–18 PCI Express Compiler Version 6.1 Altera CorporationPCI Express コンパイラ・ユーザガイド 2006年 12月

ライセンスのセットアップ

ライセンスのセットアップ

MegaCore を製品に組み込む場合にのみ、ライセンスを購入していただく必要があります。

PCI Express MegaCoreファンクションのライセンスを購入してから、アルテラ・ウェブサイトのwww.altera.co.jp/licensingでライセンス・ファイルをリクエストして、取得したライセンス・ファイルをご使用のコンピュータにインストールすることができます。ライセンス・ファイルをリスエストされたお客様には、アルテラから license.datファイルを電子メールでお送りいたします。インターネットをご利用いただけないお客様は、アルテラの販売代理店にお問い合わせください。

Page 41: PCI Express コンパイラ・ ユーザガイドPCI Express コンパイラ・ ユーザガイド MegaCore バージョン:6.1 ドキュメント・バージョン: 6.1 rev. 2 ドキュメント・デート:2006年12

Altera Corporation PCI Express Compiler Version 6.1 3–12006年 12月

3. 仕様

機能の説明 図 3-1は、PCI Express MegaCoreファンクションの各レイヤの役割について説明しています。

図 3-1. MegaCoreファンクションの 3つのレイヤ

PCI Express MegaCoreファンクションは、PCI Express Base Specification1.1または PCI Express Base Specification Revision 1.0aに準拠し、以下の仕様の 3つのレイヤすべてを実装しています。

■ トランザクション・レイヤ —トランザクション・レイヤには、アプリケーション・レイヤとの通信を管理するコンフィギュレーション領域、つまり受信および送信チャネル、受信バッファ、およびフロー制御クレジットが含まれています。

■ データ・リンク・レイヤ —データ・リンク・レイヤは、物理レイヤとトランザクション・レイヤの間に配置されており、パケット送信を管理し、リンク・レベルでデータ・インテグリティを維持します。具体的には、データ・リンク・レイヤは以下を行います。

● データ・リンク・レイヤ・パケットの送信および受信を管理する● すべての送信 CRC(Cyclical Redundancy Code)チェックを生成し、受信中にすべての CRCをチェックする

● 受信した ACK/NAKデータ・リンク・レイヤ・パケットに応じてリトライ・バッファおよびリトライ・メカニズムを管理する

tx_desc

tx _data

rx_desc

rx _data

Tx

Rx

Transaction Layer Data Link Layer Physical Layer

PCI Express MegaCore Function

Towards Application Layer Towards Link

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 layerdisassembles thetransaction 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.

Page 42: PCI Express コンパイラ・ ユーザガイドPCI Express コンパイラ・ ユーザガイド MegaCore バージョン:6.1 ドキュメント・バージョン: 6.1 rev. 2 ドキュメント・デート:2006年12

3–2 PCI Express Compiler Version 6.1 Altera CorporationPCI Expressコンパイラ・ユーザガイド 2006年 12月

機能の説明

● データ・リンク・レイヤ・パケットのフロー制御メカニズムを初期化し、フロー制御クレジットをトランザクション・レイヤとの間で受け渡しする

■ 物理レイヤ—物理レイヤは、リンクから受信したパケットと上位のレイヤから受信した指示に基づいて、PCI Expressリンクの速度、レーン・ナンバリング、およびレーン幅を初期化します。

エンドポイントの種類

MegaCore ファンクションは、ネイティブ PCI Express エンドポイントまたはレガシー・エンドポイントのいずれかを実装できます。新しいアプリケーションにはネイティブ PCI Express エンドポイントを使用することをお勧めします。PCI Express エンドポイントは、メモリ・スペースのリード・トランザクションおよびライト・トランザクションのみをサポートしています。レガシー・エンドポイントは、既存のアプリケーションと互換性があり、I/Oスペースのリード・トランザクションおよびライト・トランザクションをサポートできます。

ネイティブ PCI Expressエンドポイントとレガシー・エンドポイントの違いについて詳しくは、PCI Express specificationのエンドポイントの説明を参照してください。

トランザクション・レイヤ

トランザクション・レイヤは、アプリケーション・レイヤとデータ・リンク・レイヤの間にあります。トランザクション・レイヤは、トランザクション・レイヤ・パケットを生成し、受信します。図 3-2 に、初期化された 2つのバーチャル・チャネルを備えたコンポーネントのトランザクション・レイヤを示します。トランザクション・レイヤには、送信データ・パス、コンフィギュレーション・スペース、および受信データ・パスの 3つの汎用サブブロックがあり、これらを図 3-2で縦向きのカッコ内に示します。

Page 43: PCI Express コンパイラ・ ユーザガイドPCI Express コンパイラ・ ユーザガイド MegaCore バージョン:6.1 ドキュメント・バージョン: 6.1 rev. 2 ドキュメント・デート:2006年12

Altera Corporation PCI Express Compiler Version 6.1 3–32006年 12月 PCI Expressコンパイラ・ユーザガイド

仕様

図 3-2. トランザクション・レイヤのアーキテクチャ :各バーチャル・チャネルの専用受信バッファ

Tx1 Data

Tx1 Descriptor

Tx1 RequestSequencing

Tx1 ControlFlow Control

Check & Reordering

Virtual Channel 1

Tx0 Data

Tx0 Descriptor

Tx0 RequestSequencing

Tx0 ControlFlow Control

Check & Reordering

Virtual Channel 0

Rx Flow Control Credits

Tx Transaction Layer Packet Description & Data

Virtual ChannelArbitration & Tx

Sequencing

Rx0 Data

Rx0 Descriptor

Rx0 Sequencing& Reordering

Rx0 Control& Status

Flow Control Update

Virtual Channel 0

Rx1 Data

Rx1 Descriptor

Rx1 Sequencing& Reordering

Rx1 Control& Status

Virtual Channel 1

Type 0 Configuration Space

Transaction Layer Packet FIFO

Receive Buffer

Posted & Completion

Non-Posted

Tx Flow Control Credits

Flow Control Update

Transaction Layer Packet FIFO

Receive Buffer

Posted & Completion

Non-Posted

Rx Transaction Layer Packet

Interface Established per Virtual Channel Interface Established per Component

TransmitData Path

ConfigurationSpace

ReceiveData Path

Towards Data Link LayerTowards Application Layer

Page 44: PCI Express コンパイラ・ ユーザガイドPCI Express コンパイラ・ ユーザガイド MegaCore バージョン:6.1 ドキュメント・バージョン: 6.1 rev. 2 ドキュメント・デート:2006年12

3–4 PCI Express Compiler Version 6.1 Altera CorporationPCI Expressコンパイラ・ユーザガイド 2006年 12月

機能の説明

受信データ・パスを介してトランザクションをトレースするには、以下のステップが必要です。

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ファンクションが、十分なフロー制御クレジットが存在することを確認し、要求を確認応答するかまたは延期します。

Page 45: PCI Express コンパイラ・ ユーザガイドPCI Express コンパイラ・ ユーザガイド MegaCore バージョン:6.1 ドキュメント・バージョン: 6.1 rev. 2 ドキュメント・デート:2006年12

Altera Corporation PCI Express Compiler Version 6.1 3–52006年 12月 PCI Expressコンパイラ・ユーザガイド

仕様

4. トランザクション・レイヤ・パケットがアプリケーション・レイヤによって転送され、トランザクション・レイヤがバーチャル・チャネル間でアービトレーションを行い、次に優先権のあるトランザクション・レイヤ・パケットをデータ・リンク・レイヤに転送します。

送信バーチャル・チャネルのアービトレーション

PCI Express MegaCore ファンクションを利用すると、PCI Express BaseSpecification 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リクエスト、およびコンプリーション・パケットを生成します。そのようなすべてのトランザクションは、PCIExpress™ Base Specification Revision 1.0a に記載されているように、PCIExpressコンフィギュレーション・スペースの内容に依存します。

Page 46: PCI Express コンパイラ・ ユーザガイドPCI Express コンパイラ・ ユーザガイド MegaCore バージョン:6.1 ドキュメント・バージョン: 6.1 rev. 2 ドキュメント・デート:2006年12

3–6 PCI Express Compiler Version 6.1 Altera CorporationPCI Expressコンパイラ・ユーザガイド 2006年 12月

機能の説明

これらのレジスタの詳しい内容については、3–20 ページの「コンフィギュレーション・スペース・レジスタの内容」または PCI Express BaseSpecification 1.1 の 7 章、あるいは PCI Express Base Specification Revision1.0aを参照してください。

トランザクション・レイヤのルーティング・ルール

トランザクションは、以下のルーティング・ルールに従います。

■ 受信方向(すなわち PCI Expressリンクから)では、定義済みの BARに適合するメモリおよび I/O リクエストは受信インタフェースに送られます。アプリケーション・レイヤ・ロジックは、リクエストを処理し、必要に応じてリード・コンプリーションを生成します。

■ 受信したタイプ 0コンフィギュレーション・リクエストは、内部コンフィギュレーション・スペースに送られ、MegaCoreファンクションはコンプリーションを生成および送信します。

■ MegaCoreファンクションは、サポートされている受信メッセージ・トランザクション(パワー・マネージメントおよびスロット・パワー制限)を内部で処理します。

■ トランザクション・レイヤは、受信したその他のすべてのトランザクション(定義済みの BARに適合しないメモリまたは I/Oリクエストを含む)をサポートされない要求として扱います。トランザクション・レイヤは適切なエラー・ビットを設定し、必要に応じてコンプリーションを送信します。サポートされていないこれらの要求は、アプリケーション・レイヤからは見えず、ヘッダおよびデータはドロップされます。

■ トランザクション・レイヤは、すべてのメモリおよび I/O リクエスト、ならびにアプリケーション・レイヤによって生成され、送信インタフェースに渡されたコンプリーションを、PCI Expressリンクに送信します。

■ MegaCoreファンクションは、専用信号の制御下で、パワー・マネージメント、割り込み、およびエラー信号メッセージを自動的に生成および送信できます。さらに、MegaCoreファンクションは、専用信号の制御下で、MSIリクエストを生成できます。

Page 47: PCI Express コンパイラ・ ユーザガイドPCI Express コンパイラ・ ユーザガイド MegaCore バージョン:6.1 ドキュメント・バージョン: 6.1 rev. 2 ドキュメント・デート:2006年12

Altera Corporation PCI Express Compiler Version 6.1 3–72006年 12月 PCI Expressコンパイラ・ユーザガイド

仕様

受信バッファのバイパス・モード

受信バッファが空で、特定のバーチャル・チャネルの 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のデアサーションによって受信バッファ・バイパス・モードを抜けます。

Page 48: PCI Express コンパイラ・ ユーザガイドPCI Express コンパイラ・ ユーザガイド MegaCore バージョン:6.1 ドキュメント・バージョン: 6.1 rev. 2 ドキュメント・デート:2006年12

3–8 PCI Express Compiler Version 6.1 Altera CorporationPCI Expressコンパイラ・ユーザガイド 2006年 12月

機能の説明

データ・リンク・レイヤ

データ・リンク・レイヤは、トランザクション・レイヤと物理レイヤの間に配置されています。データ・リンク・レイヤは、パケット・インテグリティの維持、および PCI Expressリンク・レベルにおける通信(データ・リンク・レイヤ・パケット送信による)(ファブリック内でのトランザクション・レイヤ・パケット送信によるコンポーネント通信ではない)を行います。具体的には、データ・リンク・レイヤは、以下を行います。

■ データ・リンク・レイヤ・パケットの受信および送信によるリンク管理● バーチャル・チャネルごとにフロー制御クレジットを初期化および更新する

● パワー・マネージメントのためのデータ・リンク・レイヤ・パケットの受信および送信

● ACK/NACKパケットを送信および受信する■ トランザクション・レイヤ・パケットおよびデータ・リンク・レイヤ・パケットに対するCRCの生成と検査によるデータ・インテグリティ

■ リトライ・バッファを使用してNAKデータ・リンク・レイヤ・パケット受信時のトランザクション・レイヤ・パケットの再送信

■ リトライ・バッファの管理■ エラー発生時のリンク再トレーニング要求(物理レイヤの LTSSMによる)

Page 49: PCI Express コンパイラ・ ユーザガイドPCI Express コンパイラ・ ユーザガイド MegaCore バージョン:6.1 ドキュメント・バージョン: 6.1 rev. 2 ドキュメント・デート:2006年12

Altera Corporation PCI Express Compiler Version 6.1 3–92006年 12月 PCI Expressコンパイラ・ユーザガイド

仕様

図 3-3に、データ・リンク・レイヤのアーキテクチャを示します。

図 3-3. データ・リンク・レイヤ

データ・リンク・レイヤには以下のサブブロックがあります。

■ データ・リンクの制御および管理用のステート・マシン —このステート・マシンは、物理レイヤの LTSSM ステート・マシンと同期され、またコンフィギュレーション・スペース・レジスタにも接続されています。リンクおよびバーチャル・チャネルのフロー制御クレジットを初期化し、コンフィギュレーション・スペースにステータスをレポートします(バーチャル・チャネル 0 はデフォルトで初期化され、追加バーチャル・チャネルも物理的に有効化されており、またソフトウェアが許可する場合は、同様に初期化されます)。

■ パワー・マネージメント — この機能は、低消費電力モードに入るためのハンドシェイクを処理します。そのような移行は、コンフィギュレーション空間のレジスタ値および受信したPM DLLPに基づいています。

■ データ・リンク・レイヤ・パケット・ジェネレータおよびチェッカ—このブロックは、データ・リンク・レイヤ・パケットの 16ビットCRCに関連し、送信されたパケットのインテグリティを維持します。

Transaction LayerPacket Generator

Retry Buffer

AckNackPackets

Power Management

Function

Data Link Control & Management State Machine

DLLPChecker

DLLPGenerator

Transaction LayerPacket Checker

Configuration Space

Control& Status

Rx Transaction LayerPacket Description & Data

Rx Packets

Rx Flow Control Credits

Tx Transaction LayerPacket Description & Data

Tx Flow Control Credits

Tx Packets

TransmitData Path

ReceiveData Path

Towards Physical LayerTowards Transaction Layer

Tx Arbitration

Page 50: PCI Express コンパイラ・ ユーザガイドPCI Express コンパイラ・ ユーザガイド MegaCore バージョン:6.1 ドキュメント・バージョン: 6.1 rev. 2 ドキュメント・デート:2006年12

3–10 PCI Express Compiler Version 6.1 Altera CorporationPCI Expressコンパイラ・ユーザガイド 2006年 12月

機能の説明

■ トランザクション・レイヤ・パケット・ジェネレータ — このブロックは、トランザクション・レイヤから受信されたディスクリプタおよびデータに応じて送信パケットを生成し、シーケンス番号および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データ・リンク・レイヤ・パケット(低優先度)

Page 51: PCI Express コンパイラ・ ユーザガイドPCI Express コンパイラ・ ユーザガイド MegaCore バージョン:6.1 ドキュメント・バージョン: 6.1 rev. 2 ドキュメント・デート:2006年12

Altera Corporation PCI Express Compiler Version 6.1 3–112006年 12月 PCI Expressコンパイラ・ユーザガイド

仕様

物理レイヤ

物理レイヤは、MegaCore ファンクションの最下位レベルに配置されており、リンクに最も近いレイヤです。リンクを通してパケットをエンコードして送信し、受信したパケットを受け入れてデコードします。物理レイヤは、2.5 Gbps で動作する高速 SERDES を介してリンクに接続します。物理レイヤは以下の処理を担当します。

■ リンクの初期化■ レーンあたり 2.5 Gbpsのスクランブル /デスクランブルおよび

8b/10bエンコーディング /デコーディング■ データのシリアライジングおよびデシリアライジング

物理レイヤ・アーキテクチャ

図 3-4に、物理レイヤ・アーキテクチャを示します。

図 3-4. 物理レイヤ

Scrambler8B/10BEncoder

Lane nTx+ / Tx-

Scrambler8B/10BEncoder

Lane 0Tx+ / Tx-

Descrambler8B/10BDecoder

Lane nRx+ / Rx-Elastic

Buffer

LTSSM State Machine

SKIPGeneration

Control & StatusPIPE

Emulation Logic

Link

Ser

ializ

erfo

r an

x8

Link

Tx Packets

Rx MAC Lane

Str

atix

GX

Tra

nsce

iver

(pe

r La

ne)

with

2.5

Gbp

s S

ER

DE

S &

PLL

Descrambler8B/10BDecoder

Lane 0Rx+ / Rx-Elastic

Buffer

Rx MAC Lane

PIPEInterface

Mul

tilan

e D

eske

w

Link

Ser

ializ

er fo

r an

x8

Link

Rx Packets

TransmitData Path

ReceiveData Path

MAC Layer PHY layer

Towards LinkTowards Data Link Layer

Page 52: PCI Express コンパイラ・ ユーザガイドPCI Express コンパイラ・ ユーザガイド MegaCore バージョン:6.1 ドキュメント・バージョン: 6.1 rev. 2 ドキュメント・デート:2006年12

3–12 PCI Express Compiler Version 6.1 Altera CorporationPCI Expressコンパイラ・ユーザガイド 2006年 12月

機能の説明

物理レイヤは、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 参照)。この項では、フロー制御ループについて、またスループットの改善に役立つ事項について説明します。

Page 53: PCI Express コンパイラ・ ユーザガイドPCI Express コンパイラ・ ユーザガイド MegaCore バージョン:6.1 ドキュメント・バージョン: 6.1 rev. 2 ドキュメント・デート:2006年12

Altera Corporation PCI Express Compiler Version 6.1 3–132006年 12月 PCI Expressコンパイラ・ユーザガイド

仕様

Posted書き込みのスループット

Posted 書き込みのスループットは、主に 3–14 ページの図 3-5 に示すフロー制御アップデート・ループによって制限されます。ライト・リクエスタが可能な限り素早くデータを提供し、ライト・コンプリータが可能な限り素早くそのデータを消費する場合、フロー制御アップデート・ループは、リンクの実際の帯域幅の他に、書き込みスループットにおける最大の決定的要因となります。

図 3-5のフロー制御アップデート・ループは、フロー制御アップデート・ループの主なコンポーネントを示しています。図 3-5 には、通信する以下の 2つの PCI Expressポートがあります。

■ ライト・リクエスタ■ ライト・コンプリータ

PCI Express specificationに記載されているように、各トランスミッタ、この場合はライト・リクエスタは、Credit Limit レジスタおよび CreditConsumed レジスタを備えます。Credit Limit レジスタは、受信側、この場合はライト・コンプリータによって発行されたすべてのクレジットの合計となります。Credit Limit レジスタは、リンク初期化のフロー制御初期化段階の間に初期化され、フロー制御(FC)アップデート DLLPによって動作中にアップデートされます。Credits Consumed レジスタは、送信されたパケットによって消費されたすべてのクレジットの合計となります。以下の 6 種類のフロー制御それぞれに対して、SeparateCredit Limitおよび Credigts Consumedレジスタが各々存在します。

■ Postedヘッダ■ Postedデータ■ Non-Postedヘッダ■ Non-Postedデータ■ コンプリーション・ヘッダ■ コンプリーション・データ

各レシーバはまた、Credit Allocated カウンタを保持し、このカウンタは、Rx Buffer(特定のフロー制御クラス用)の使用可能な全スペースに初期化され、アプリケーション・レイヤによって Rx Buffer からパケットが取り出されるとインクリメントされます。このレジスタの値は、FCUpdate DLLP値として送信されます。

Page 54: PCI Express コンパイラ・ ユーザガイドPCI Express コンパイラ・ ユーザガイド MegaCore バージョン:6.1 ドキュメント・バージョン: 6.1 rev. 2 ドキュメント・デート:2006年12

3–14 PCI Express Compiler Version 6.1 Altera CorporationPCI Expressコンパイラ・ユーザガイド 2006年 12月

機能の説明

図 3-5. フロー制御アップデート・ループ

以下の番号付けしたステップで、フロー制御アップデート・ループにおける各ステップを説明します。上の図の対応する番号は、対応する一般的な領域を示しています。

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レジスタがあります。

Credits

ConsumedCounter

Credit

Limit

Data Packet

Flow

ControlGating

Logic

(Credit

Check)

Allow

Incr

Rx

BufferData Packet

Credit

Allocated

FCUpdate

DLLP

Generate

FCUpdate

DLLPDecode

FC Update DLLP

App

Layer

Transaction

Layer

Data Link

Layer

Physical

Layer

Incr

Physical

Layer

Data Link

Layer

Transaction

Layer

App

Layer

Data Source

PCI

Express

Link

Data Sink

1 23

45

6

7

Page 55: PCI Express コンパイラ・ ユーザガイドPCI Express コンパイラ・ ユーザガイド MegaCore バージョン:6.1 ドキュメント・バージョン: 6.1 rev. 2 ドキュメント・デート:2006年12

Altera Corporation PCI Express Compiler Version 6.1 3–152006年 12月 PCI Expressコンパイラ・ユーザガイド

仕様

5. Credit Allocated レジスタの値は、FC アップデート DLLP を作成するために使用されます。

6. FC アップデート DLLP が作成されると、FC アップデート DLLP はPCI Expressリンクにアクセスするためにアービトレーションを行います。FCアップデート DLLPは通常、低優先度でスケジュールされます。つまり、アプリケーション・レイヤ TLP または他の DLLP(ACKなど)の連続的なストリームが、長期間にわたって FC UpdateDLLPを遅延させる可能性があります。トランスミッタ側の欠乏を防止するため、FCアップデート DLLPは、以下の 3つの状況で高優先度に格上げされます。

a. 受信したデータ量を Last Sent Credit Allocatedカウンタから引いた値が Max Sized Payload よりも小さく、現在の CreditAllocatedカウンタが Last Sent Credit Counterよりも大きい場合。基本的に、これは、Data Sourceが全Max Payload相当分のクレジットよりも小さく、したがって不足が生じることをData Sinkが認識することを意味します。

b. FCアップデート DLLPを再送信するために PCI Expressspecification を満たすように 30 us にコンフィギュレーションされた最後の FC アップデート DLLP が送信されたときから、内部タイマが満了になった場合。

c. Credit Allocated カウンタから Last Sent Credit Allocated カウンタを引いた値が、Rx Bufferで使用可能な全クレジットの 25%以上のとき、FC アップデート DLLP リクエストは高優先度に格上げされます。

ワースト・ケースにおいて、FC アップデート DLLP を次の送信アイテムとなるようにアービトレーションを行うと、FC アップデート DLLPは、現在送信されている最大サイズの TLPが完了するまで待たなければ、送信できないことがあります。

7. FCアップデート DLLPは元のライト・リクエスタで受信され、CreditLimit値がアップデートされます。クレジットを待つ停止中のパケットがある場合、それらは直ちに送信できます。

上記のライト・リクエスタが連続してパケットを送信できるようにするには、Credit Allocatedカウンタおよび Credit Limitカウンタを十分なクレジットで初期化して、最初に送信された TLPからのクレジット解放に対応した FCアップデート DLLPの待機中に、複数の TLPを送信できるようにしなければなりません。

Page 56: PCI Express コンパイラ・ ユーザガイドPCI Express コンパイラ・ ユーザガイド MegaCore バージョン:6.1 ドキュメント・バージョン: 6.1 rev. 2 ドキュメント・デート:2006年12

3–16 PCI Express Compiler Version 6.1 Altera CorporationPCI Expressコンパイラ・ユーザガイド 2006年 12月

機能の説明

表 3–1「Stratix II GX用の FCアップデート・ループ遅延要素」は、PCIExpress MegaCoreファンクションがStratix II GXデバイスと共に使用される FC アップデートに対する遅延要素を示しています。これらの遅延要素は、パケット長とは無関係の遅延です。ループの全遅延はパケット長によって増大します。

上記の FC アップデート・ループ遅延、付加的なアービトレーション、およびパケット長遅延に基づいて、表 3–2に、遅延を補うために通知が必要なフロー制御クレジットの数を示します。Rx Bufferは、全帯域幅を維持するために、このクレジット数に対応するサイズが必要です。

表 3–1. Stratix II GX用の FCアップデート・ループ遅延要素

遅延

×8ファンクション

×4ファンクション

×1ファンクション

最小 最大 最小 最大 最小 最大

Transmit Credit Consumedカウンタのデクリメントから PCI Expressリンクまで(ns)。

60 68 104 120 272 288

PCI Expressリンクから、アプリケーション・レイヤ・インタフェースでパケットが利用可能になるまで(ns)。

124 168 200 248 488 536

アプリケーション・レイヤがパケットを取り込んでから、PCI Expressリンクでの FCアップデートDLLPの生成および送信まで(アービトレーション遅延がないと仮定)(ns)。

60 68 120 136 216 232

PCI Expressリンクで FCアップデート DLLPを受信してから、トランスミッタの Credit Limit レジスタをアップデートするまで(ns)。

116 160 184 232 424 472

表 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

Page 57: PCI Express コンパイラ・ ユーザガイドPCI Express コンパイラ・ ユーザガイド MegaCore バージョン:6.1 ドキュメント・バージョン: 6.1 rev. 2 ドキュメント・デート:2006年12

Altera Corporation PCI Express Compiler Version 6.1 3–172006年 12月 PCI Expressコンパイラ・ユーザガイド

仕様

上記のクレジットは、PCI Expressリンクの両端にPCI Express MegaCoreファンクションおよび Stratix II GX遅延を持つデバイスがあることを仮定しています。リンクの他端にあるデバイスによっては、より小さなまたはより大きな遅延を持つ場合があり、これは必要なクレジットの最小数に影響する可能性があります。アプリケーション・レイヤが、いずれのケースでも受信したパケットを直ちに取り込めない場合は、追加クレジットを供給してこの遅延を補う必要があることもあります。

MegaWizardインタフェースの Parameter Settingsタブで、Buffer Setupページの Desired performance for received requestsを Highに設定すると、上記の必要なクレジットを満たすだけの十分なスペースを持つ RxBuffer がコンフィギュレーションされます。Desired performance forreceived requestsをHigh設定から上下に調整して、遅延および必要な性能に合わせて Rx Bufferサイズを調整できます。

Non-Posted読み出しのスループット

リード・データの高スループットをサポートするには、すべてのコンプリーション・データが戻されるまで、リード・リクエストを発行するアプリケーション・レイヤからの全体的な遅延を解析する必要があります。アプリケーションは、十分なリード・リクエストを発行でき、またリード・コンプリータは、この遅延を補う処理が可能な(または少なくとも十分なNon-Postedヘッダ・クレジットを提供できる)ことが必要です。

しかし、このループで発生する遅延の大部分は、PCI Express MegaCoreファンクションからかなり外側にあり、推定が非常に困難です。PCIExpress スイッチがこのループに挿入されることがあり、それによって遅延の境界を判断することがより困難になります。

ただし、コンプリーション・データ・パケットの最大スループットを維持することは重要です。PCI Express Endpoints は、無制限数のコンプリーション・クレジットを提供しなければなりません。ただし、PCIExpress MegaCore ファンクションは、アプリケーションが処理できるようになるまで、このデータを Rx Buffer にバッファする必要があります。違いは、PCI Express MegaCoreファンクションが、フロー制御メカニズムを用いて Rx Buffer を管理しなくなることです。代わりに、アプリケーションがリード・リクエストを発行する速度で Rx Buffer を管理します。

Rx Buffer でコンプリーションに対して確保するスペース容量に対する適切な設定を決定するには、リード・コンプリーションが戻されるまでの時間を推定しなければなりません。これは、3–13ページの「Posted書き込みのスループット」の項で説明した FC アップデート・ループ遅延を上回る追加遅延から推定できます。リード・リクエストおよびコンプ

Page 58: PCI Express コンパイラ・ ユーザガイドPCI Express コンパイラ・ ユーザガイド MegaCore バージョン:6.1 ドキュメント・バージョン: 6.1 rev. 2 ドキュメント・デート:2006年12

3–18 PCI Express Compiler Version 6.1 Altera CorporationPCI Expressコンパイラ・ユーザガイド 2006年 12月

機能の説明

リーションのパスは、PCI Express Logic内の Posted書き込みおよび FCアップデートのパスとは厳密に同じではありません。しかし、遅延の差は、外部読み出しからコンプリーションまでの遅延の内容を推測する際の不正確さと比較すれば、おそらく小さなものです。

リード・リクエスタとリード・コンプリータとの間のパスに PCI Expressスイッチが存在すると仮定し、ルート・ポートの標準的なリード・コンプリーション時間を推定して、表 3–3に、リード・ラウンド・トリップ遅延を補うのに必要な推定コンプリーション・スペースを示します。

コンプリーションは、最大パケット・サイズ未満の複数のコンプリーションに分割できることに注意してください。分割するためには、最大パケット・サイズで割ったコンプリーション・データ・スペースよりも多くのコンプリーション・ヘッダ用の空きが必要です。代わりに、ヘッダ用の空きはコンプリーション・データ・スペース(バイト単位)÷ 64になる必要があります。その理由は 64が可能な最小のリード・コンプリーション境界であるためです。MegaCoreファンクションの Parameter Settingsを使用するとき、Buffer Setup ページの Desired performance forreceived completions を High に設定すると、上記の要件を満たす十分なスペースをもつ Rx Buffer がコンフィギュレーションされます。Desired performance for received completionsをHigh設定から上下に調整して、遅延および必要な性能に合わせて Rx Buffer サイズを調整できます。

その他の制約は、一度に保留状態にできるリード・リクエストの量です。これは、アプリケーションが発行できるヘッダ・タグ数の値、および発行できる最大リード・リクエストのサイズによって制限されます。使用できるヘッダ・タグ数の値もまた、PCI Express MegaCoreファンクションによって制限されます。×1 および ×4ファンクションの場合、最大で

表 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

Page 59: PCI Express コンパイラ・ ユーザガイドPCI Express コンパイラ・ ユーザガイド MegaCore バージョン:6.1 ドキュメント・バージョン: 6.1 rev. 2 ドキュメント・デート:2006年12

Altera Corporation PCI Express Compiler Version 6.1 3–192006年 12月 PCI Expressコンパイラ・ユーザガイド

仕様

256のタグを使用するように指定できますが、コンフィギュレーション・ソフトウェアは32のタグのみを使用するようにアプリケーションを制限することがあります。ただし、32のタグで十分なはずです。

×8コアの場合、MegaCoreファンクションは最大8つのタグを提供しています。しかし、今日の PCI Expressシステムでは、Max Payload Sizeが128バイトに制限されている場合でも、512以上の最大リード・リクエスト・サイズを許可しています。512 バイトのリード・リクエストは、32クレジットの読み出しと同等です。したがって、512 バイトのリード・リクエストを 8 つ(タグの制限)発行すると、256 データ・クレジットが消費されますが、これはリード・リクエスト・ループをフルに維持し、スループットを最大化するのに十分です。

Page 60: PCI Express コンパイラ・ ユーザガイドPCI Express コンパイラ・ ユーザガイド MegaCore バージョン:6.1 ドキュメント・バージョン: 6.1 rev. 2 ドキュメント・デート:2006年12

3–20 PCI Express Compiler Version 6.1 Altera CorporationPCI Expressコンパイラ・ユーザガイド 2006年 12月

機能の説明

コンフィギュレーション・スペース・レジスタの内容

この項では、コンフィギュレーション・スペース・レジスタについて説明します。詳しくは、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

Page 61: PCI Express コンパイラ・ ユーザガイドPCI Express コンパイラ・ ユーザガイド MegaCore バージョン:6.1 ドキュメント・バージョン: 6.1 rev. 2 ドキュメント・デート:2006年12

Altera Corporation PCI Express Compiler Version 6.1 3–212006年 12月 PCI Expressコンパイラ・ユーザガイド

仕様

表 3–5に、タイプ 0コンフィギュレーション設定を示します。

表 3–6に、MSI機能構造を示します。

表 3–5.タイプ 0コンフィギュレーション設定

31:24 23:16 15:8 7:0 バイト・オフセット

デバイス ID ベンダ ID 000h

ステータス コマンド 004h

クラス・コード リビジョン ID 008h

0x00 ヘッダ・タイプ 0x00 キャッシュ・ライン・サイズ

00Ch

ベース・アドレス 0 010h

ベース・アドレス 1 014h

ベース・アドレス 2 018h

ベース・アドレス 3 01Ch

ベース・アドレス 4 020h

ベース・アドレス 5 024h

Reserved 028h

サブシステム ID サブシステム・ベンダ ID 02Ch

拡張 ROMベース・アドレス 030h

Reserved 機能 PTR 034h

Reserved 038h

0x00 0x00 割り込みピン 割り込みライン 03Ch

表 3–6. MSI機能構造

31:24 23:16 15:8 7:0 バイト・オフセット

メッセージ・コントロール ネクスト・ポインタ

機能 ID 050h

メッセージ・アドレス 054h

メッセージ上位アドレス 058h

Reserved メッセージ・データ 05Ch

Page 62: PCI Express コンパイラ・ ユーザガイドPCI Express コンパイラ・ ユーザガイド MegaCore バージョン:6.1 ドキュメント・バージョン: 6.1 rev. 2 ドキュメント・デート:2006年12

3–22 PCI Express Compiler Version 6.1 Altera CorporationPCI Expressコンパイラ・ユーザガイド 2006年 12月

機能の説明

表 3–7に、パワー・マネージメント機能構造を示します。

表 3–8に、PCI Express機能構造を示します。

表 3–7.パワー・マネージメント機能構造

31:24 23:16 15:8 7:0 バイト・オフセット

機能レジスタ ネクスト・機能 PTR

機能 ID 078h

データ PMコントロール/ステータス・ブリッジ拡張

パワー・マネージメント・ステータスとコントロール

07Ch

表 3–8. PCI Express機能構造

31:24 23:16 15:8 7:0 バイト・オフセット

パワー・マネージメント機能 ネクスト・機能 PTR

機能 ID 080h

デバイス機能 084h

デバイス・ステータス デバイス・コントロール 088h

リンク機能 08Ch

リンク・ステータス リンク・コントロール 090h

スロット機能 094h

スロット・ステータス スロット・コントロール 098h

RsvdP ルート・コントロール 09Ch

ルート・ステータス 0A0h

Page 63: PCI Express コンパイラ・ ユーザガイドPCI Express コンパイラ・ ユーザガイド MegaCore バージョン:6.1 ドキュメント・バージョン: 6.1 rev. 2 ドキュメント・デート:2006年12

Altera Corporation PCI Express Compiler Version 6.1 3–232006年 12月 PCI Expressコンパイラ・ユーザガイド

仕様

表 3–9に、バーチャル・チャネル機能構造を示します。

表 3–9.バーチャル・チャネル機能構造

31:24 23:16 15:8 7:0 バイト・オフセット

ネクスト機能 PTR バージョン 拡張機能 ID 100h

RsvdP ポート VC機能 1 104h

VATオフセット RsvdP VCアービトレーション機能

108h

ポート VCステータス ポート VCコントロール 10Ch

PAT オフセット 0(31:24)

VCリソース機能レジスタ(0) 110h

VCリソース・コントロール・レジスタ(0) 114h

VCリソース・ステータス・レジスタ(0) RsvdP 118h

PAT オフセット 1(31:24)

VCリソース機能レジスタ(1) 11Ch

VCリソース・コントロール・レジスタ(1) 120h

VCリソース・ステータス・レジスタ(1) RsvdP 124h

...

PAT オフセット 7(31:24)

VCリソース機能レジスタ(7) 164h

VCリソース・コントロール・レジスタ(7) 168h

VCリソース・ステータス・レジスタ(7) RsvdP 16Ch

Page 64: PCI Express コンパイラ・ ユーザガイドPCI Express コンパイラ・ ユーザガイド MegaCore バージョン:6.1 ドキュメント・バージョン: 6.1 rev. 2 ドキュメント・デート:2006年12

3–24 PCI Express Compiler Version 6.1 Altera CorporationPCI Expressコンパイラ・ユーザガイド 2006年 12月

機能の説明

表 3–10に、PCI Expressアドバンスド・エラー・レポーティング拡張機能構造を示します。

アクティブ・ステート・パワー・マネージメント(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–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

Page 65: PCI Express コンパイラ・ ユーザガイドPCI Express コンパイラ・ ユーザガイド MegaCore バージョン:6.1 ドキュメント・バージョン: 6.1 rev. 2 ドキュメント・デート:2006年12

Altera Corporation PCI Express Compiler Version 6.1 3–252006年 12月 PCI Expressコンパイラ・ユーザガイド

仕様

■ 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および

Page 66: PCI Express コンパイラ・ ユーザガイドPCI Express コンパイラ・ ユーザガイド MegaCore バージョン:6.1 ドキュメント・バージョン: 6.1 rev. 2 ドキュメント・デート:2006年12

3–26 PCI Express Compiler Version 6.1 Altera CorporationPCI Expressコンパイラ・ユーザガイド 2006年 12月

機能の説明

L1 脱出レイテンシに対する 2 つの値、つまり共通クロック・コンフィギュレーションの値と分離クロック・コンフィギュレーションの値を維持します。

許容レイテンシ

許容レイテンシは、システム性能に妥協することなく、コンポーネントが低消費電力ステートから L0 に遷移するために許容される最大レイテンシとして定義されています。許容レイテンシ値は、コンポーネントの内部バッファリングに依存し、コンフィギュレーション・スペース・レジストリに維持されます。ソフトウェアは、リンク脱出レイテンシをエンドポイントの許容レイテンシと比較して、そのコンポーネントが特定の電力ステートの使用を許可されているかどうかを判断します。

■ L0sの場合、反対側のコンポーネントおよびルート・ポートとエンドポイント間の各コンポーネントの脱出レイテンシが、エンドポイントの許容レイテンシと比較されます。例えば、ルート・ポートに接続されたエンドポイントでは、ルート・ポートの L0s 脱出レイテンシが 1 µs、エンドポイントの L0s 許容レイテンシが 512 ns の場合、ソフトウェアはそのエンドポイントの L0s へのエントリをおそらくイネーブルできません。

表 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脱出レイテンシをレポートします。

Page 67: PCI Express コンパイラ・ ユーザガイドPCI Express コンパイラ・ ユーザガイド MegaCore バージョン:6.1 ドキュメント・バージョン: 6.1 rev. 2 ドキュメント・デート:2006年12

Altera Corporation PCI Express Compiler Version 6.1 3–272006年 12月 PCI Expressコンパイラ・ユーザガイド

仕様

■ 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 を失うことがあるが、依然として問題なく動作するエラーとして定義されています。

訂正不能、致命的

システム・ソフトウェア

データの損失およびシステム障害によって発生するエラーは、訂正不能かつ致命的とみなされます。ソフトウェアはそのようなエラーの処理方法、すなわちリンクをリセットするか、または他の手段を実装して問題を最小化するかを決定しなければなりません。

Page 68: PCI Express コンパイラ・ ユーザガイドPCI Express コンパイラ・ ユーザガイド MegaCore バージョン:6.1 ドキュメント・バージョン: 6.1 rev. 2 ドキュメント・デート:2006年12

3–28 PCI Express Compiler Version 6.1 Altera CorporationPCI Expressコンパイラ・ユーザガイド 2006年 12月

機能の説明

物理レイヤ

表 3–13に、物理レイヤで検出されるエラーを示します。

データ・リンク・レイヤ

表 3–14に、データ・リンク・レイヤで検出されるエラーを示します。

表 3–13.物理レイヤで検出されるエラー

エラー タイプ 説明

受信ポート・エラー

訂正可能 このエラーの原因には、以下の 3つが考えられます。

● レーンが L0ステートにあるときのフィジカル・コーディング・サブレイヤ・エラー。このエラーはレーンごとに rx_status[2:0] でレポートされます。100: 8B/10Bデコード・エラー101: エラスティック・バッファ・オーバフロー110: エラスティック・バッファ・アンダフロー111: ディスパリティ・エラー

● マルチレーン・デスキュー FIFOのオーバフローに起因するデスキュー・エラー

● 誤ったレーンで受信されたコントロール・シンボル

トレーニング・エラー (1)

訂正不能(致命的)

トレーニング・エラーは、MegaCoreファンクションが、ホット・リセット、ディセーブル、ループバック、L2 以外のステートを抜けて LTSSM検出ステートに移行すると発生します。

表 3–13の注 :(1) PCI Express specificationではオプションとみなされます。

表 3–14.データ・リンク・レイヤで検出されるエラー

エラー タイプ 説明

不正な TLP 訂正可能 このエラーは LCRC検証が失敗するとき、またはシーケンス番号エラーと共に発生します。

不正な DLLP 訂正可能 このエラーは CRC検証が失敗すると発生します。

リプレイ・タイマ

訂正可能 このエラーはリプレイ・タイマがタイム・アウトすると発生します。

リプレイ番号ロールオーバ

訂正可能 このエラーはリプレイ・番号がロールオーバすると発生します。

データ・リンク・レイヤ・プロトコル

訂正不能(致命的)

このエラーは、AckNak_Seq_Numで指定されたシーケンス番号が、認証されなかった TLPに対応しないときに発生します。

Page 69: PCI Express コンパイラ・ ユーザガイドPCI Express コンパイラ・ ユーザガイド MegaCore バージョン:6.1 ドキュメント・バージョン: 6.1 rev. 2 ドキュメント・デート:2006年12

Altera Corporation PCI Express Compiler Version 6.1 3–292006年 12月 PCI Expressコンパイラ・ユーザガイド

仕様

トランザクション・レイヤ

表 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ファンクションに対して内部的に削除され、アプリケーション・レイヤには提示されません。

コンプリーション・タイム・アウト

訂正不能(非致命的)

このエラーは、アプリケーション・レイヤから発生したリクエストが、確立された時間内に対応するコンプリーション・トランザクション・レイヤ・パケットを生成しない場合に発生します。コンプリーション・タイム・アウト・メカニズムを提供するのは、アプリケーション・レイヤ・ロジックの役割です。コンプリーション・タイム・アウトは、cpl_err[0]信号によってトランザクション・レイヤにレポートされなければなりません。

Page 70: PCI Express コンパイラ・ ユーザガイドPCI Express コンパイラ・ ユーザガイド MegaCore バージョン:6.1 ドキュメント・バージョン: 6.1 rev. 2 ドキュメント・デート:2006年12

3–30 PCI Express Compiler Version 6.1 Altera CorporationPCI Expressコンパイラ・ユーザガイド 2006年 12月

機能の説明

コンプリータ・アボート (1)

訂正不能(非致命的)

アプリケーション・レイヤは、トランザクション・レイヤ・パケットの受信を中止するとき、cpl_err[1]信号によってこのエラーをレポートします。

予期しないコンプリーション

訂正不能(非致命的)

このエラーは、cpl_err[2]信号によってアプリケーション・レイヤから入力された予期しないコンプリーション・トランザクション、またはリクエスタ IDがエンドポイントのコンフィギュレーションされた IDに一致しないときのコンプリーション・トランザクションによって発生します。

レシーバ・オーバフロー (1)

訂正不能(致命的)

このエラーは、このタイプのトランザクション・レイヤ・パケットに割り当てられた FC クレジットに違反するトランザクション・レイヤ・パケットをコンポーネントが受信すると発生します。すべてのケースで、TLPはMegaCoreファンクションに対して内部的に削除され、アプリケーション・レイヤには提示されません。

フロー制御プロトコル・エラー(FCPE)(1)

訂正不能(致命的)

このエラーは、200µsの制限内にコンポーネントがアップデート・フロー制御クレジットを受信しないと発生します。

表 3–15.トランザクション・レイヤで検出されるエラー(2 /3)

エラー タイプ 説明

Page 71: PCI Express コンパイラ・ ユーザガイドPCI Express コンパイラ・ ユーザガイド MegaCore バージョン:6.1 ドキュメント・バージョン: 6.1 rev. 2 ドキュメント・デート:2006年12

Altera Corporation PCI Express Compiler Version 6.1 3–312006年 12月 PCI Expressコンパイラ・ユーザガイド

仕様

エラー・ロギングおよびレポーティング

エンドポイントが特定のエラーを処理する方法は、デバイスのコンフィギュレーション・レジスタによって異なります。図 3-6 は、エンドポイントのデバイス・エラー・シグナリングおよびロギングのフローチャートです。

不正に形成されたTLP

訂正不能(致命的)

このエラーは、以下の条件のいずれかによって発生します。

● 受信したトランザクション・レイヤ・パケットのデータ・ペイロードが最大ペイロード・サイズを超えている。

● TDフィールドがアサートされているが、トランザクション・レイヤ・パケット・ダイジェストが存在しない、あるいはトランザクション・レイヤ・パケット・ダイジェストが存在するが、TD フィールドがアサートされていない。

● トランザクション・レイヤ・パケットがバイト・イネーブル・ルールに違反している。MegaCoreファンクションは、PCI Expressspecification ではオプションとみなされるこの違反をチェックします。

● タイプおよび長さのフィールドがトランザクション・レイヤ・パケットの全長と一致しないトランザクション・レイヤ・パケット。

● フォーマットとタイプの組み合わせが PCI Express specificationで規定されていないトランザクション・レイヤ・パケット。

● メモリ・スペース・アクセスが 4Kバイト境界を越えるアドレス /長さの組み合わせのリクエスト。MegaCoreファンクションはこの違反をチェックします。これは PCI Express specificationではオプションとみなされます。

● Assert_INTx、パワー・マネージメント、エラー・シグナリング、アンロック、Set_Slot_power_limit などのメッセージは、デフォルトのトラフィック・クラスで送信しなければなりません。

● 初期化されていないバーチャル・チャネルを使用するトランザクション・レイヤ・パケット。

不正に形成された TLPはMegaCoreファンクションに対して内部的に削除され、アプリケーション・レイヤには提示されません。

表 3–15の注 :(1) PCI Express specificationではオプションとみなされます。

表 3–15.トランザクション・レイヤで検出されるエラー(3 /3)

エラー タイプ 説明

Page 72: PCI Express コンパイラ・ ユーザガイドPCI Express コンパイラ・ ユーザガイド MegaCore バージョン:6.1 ドキュメント・バージョン: 6.1 rev. 2 ドキュメント・デート:2006年12

3–32 PCI Express Compiler Version 6.1 Altera CorporationPCI Expressコンパイラ・ユーザガイド 2006年 12月

機能の説明

図 3-6. エンドポイントのデバイス・エラー・ロギングおよびレポーティング

Is the detectederror correctable?

Adjust severity accordingto uncorrectable error

severity register.

Set fatal/nonfatal errordetected bit in device

status register.

Set corresponding bitin uncorrectable error

status register.

If first error pointer is notvalid, update first error

pointer and header registers.

Set correctable errordetected bit in device

status register.

Set corresponding bitin correctable error

status register.

Masked inuncorrectable error mask

register?

Masked incorrectable error mask

register?

Uncorrectable errorreporting enabled in device

control register? Correctable errorreporting enabled in device

control register?

Fatal?

YesNo

End

End

End

End

Yes

NoYes

No

Yes

No

Yes

No

YesNo

Send ERR_FATALMessage

End

Send ERR_NONFATALMessage

End

Send ERR_CORRMessage

End

Advanced Error Management Only

Start

Page 73: PCI Express コンパイラ・ ユーザガイドPCI Express コンパイラ・ ユーザガイド MegaCore バージョン:6.1 ドキュメント・バージョン: 6.1 rev. 2 ドキュメント・デート:2006年12

Altera Corporation PCI Express Compiler Version 6.1 3–332006年 12月 PCI Expressコンパイラ・ユーザガイド

仕様

データのポイズニング

MegaCore ファンクションは、データのポイズニング、すなわちトランザクションに関連するデータが破壊されていることを示すメカニズムを実装しています。ポイズンド・トランザクション・レイヤ・パケットは、ヘッダのエラー /ポイズンド・ビットが 1に設定されており、次のルールに従います。

■ 受信したポイズンド・トランザクション・レイヤ・パケットがアプリケーション・レイヤに送信され、ステータス・ビットがコンフィギュレーション・スペース内で自動的にアップデートされます。

■ 受信した有害コンフィギュレーション・ライト・トランザクション・レイヤ・パケットは、コンフィギュレーション・スペースに書き込まれません。

■ コンフィギュレーション・スペースがポイズンド・トランザクション・レイヤ・パケットを生成することはなく、ヘッダのエラー / ポイズンド・ビットは常に 0に設定されます。

ポイズンド・トランザクション・レイヤ・パケットは、PCIコンフィギュレーション・スペース・ステータス・レジスタのパリティ・エラー・ビットも設定することがあります。パリティ・エラーは、表 3–16に規定された条件によって発生します。

MegaCoreファンクションによって受信されたポイズンド・パケットは、アプリケーション・レイヤに渡されます。ポイズンド送信トランザクション・レイヤ・パケットが、同様にリンクに送信されます。

表 3–16.パリティ・エラー条件

ステータス・ビット 条件

パリティ・エラーの検出(ステータス・レジスタ・ビット 15)

受信したいずれかのトランザクション・レイヤ・パケットが有害であるときに設定。

マスタ・データ・パリティ・エラー(ステータス・レジスタ・ビット 8)

このビットは、コマンド・レジスタのパリティ・イネーブル・ビットが設定されており、次の条件のいずれかに該当するときに設定されます。

● ポイズンド・ビットが設定されたライト・リクエスト・トランザクション・レイヤ・パケットの送信。

● ポイズンド・ビットが設定されたコンプリーション・トランザクション・レイヤ・パケットの受信。

Page 74: PCI Express コンパイラ・ ユーザガイドPCI Express コンパイラ・ ユーザガイド MegaCore バージョン:6.1 ドキュメント・バージョン: 6.1 rev. 2 ドキュメント・デート:2006年12

3–34 PCI Express Compiler Version 6.1 Altera CorporationPCI Expressコンパイラ・ユーザガイド 2006年 12月

機能の説明

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 ファンクションは以下のことを行います。

Page 75: PCI Express コンパイラ・ ユーザガイドPCI Express コンパイラ・ ユーザガイド MegaCore バージョン:6.1 ドキュメント・バージョン: 6.1 rev. 2 ドキュメント・デート:2006年12

Altera Corporation PCI Express Compiler Version 6.1 3–352006年 12月 PCI Expressコンパイラ・ユーザガイド

仕様

1. リンク・トレーニングおよびステータス・ステート・マシンがクワィエット・ステートを検出するよう強制され、そこに保持されます。これによって、PCI Expressリンクがディセーブルされ、追加のデータ転送が防止されます。

2. コンフィギュレーション・スペース内の PCI Express機能レジスタは、リセット状態に保持されます。

OpenCore Plus ハードウェア評価機能について詳しくは、1–6 ページの「OpenCore Plus評価機能」および「AN 320 : OpenCore Plus Evaluation

of Megafunctions」を参照してください。

Page 76: PCI Express コンパイラ・ ユーザガイドPCI Express コンパイラ・ ユーザガイド MegaCore バージョン:6.1 ドキュメント・バージョン: 6.1 rev. 2 ドキュメント・デート:2006年12

3–36 PCI Express Compiler Version 6.1 Altera CorporationPCI Expressコンパイラ・ユーザガイド 2006年 12月

パラメータ 設定

パラメータ設定

この項では、MegaWizardインタフェースの Parameter Settingsタブを使用してのみ設定できる PCI Express ファンクション・パラメータについて説明します。

System Settingsページ

MegaWizard インタフェースの最初のページには、システム全体の設定およびベース・アドレス・レジスタに対するパラメータが含まれています。図 3-7を参照してください。

図 3-7. System Settingsページ

Page 77: PCI Express コンパイラ・ ユーザガイドPCI Express コンパイラ・ ユーザガイド MegaCore バージョン:6.1 ドキュメント・バージョン: 6.1 rev. 2 ドキュメント・デート:2006年12

Altera Corporation PCI Express Compiler Version 6.1 3–372006年 12月 PCI Expressコンパイラ・ユーザガイド

仕様

表 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 ofLanesは ×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、16-bit SDR、16-bit SDR w/TxClk、8-bit DDR、8-bit DDR w/TxClk、8-bit SDR、8-bit SDR w/TxClk

これによって、データパス幅およびクロッキング・モードに基づいて、特定のタイプの外部PHYインタフェースを選択します。具体的な PHYモードについて詳しくは、4章 外部 PHYを参照してください。 Stratix II GX および Stratix GX はシリアル専用の PHY インタフェースであり、使用可能な唯一のシリアル・インタフェースです。

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、156.25 MHz

Stratix GX PHYを使用する場合は、refclk入力クロック信号の周波数を指定します。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クロックを必要とします。

Page 78: PCI Express コンパイラ・ ユーザガイドPCI Express コンパイラ・ ユーザガイド MegaCore バージョン:6.1 ドキュメント・バージョン: 6.1 rev. 2 ドキュメント・デート:2006年12

3–38 PCI Express Compiler Version 6.1 Altera CorporationPCI Expressコンパイラ・ユーザガイド 2006年 12月

パラメータ 設定

PCI Express version 1.0Aまたは 1.1 バリエーションが互換性を持つ PCI Express specificationを選択します。

Configure transceiver block

Enable fast recovery modeまたは Enable rate match fifo

トランシーバ・ブロックをコンフィギュレーションするためのダイアログが表示されます。このオプションは、Stratix II GXPHY を選択した場合にのみ有効です。これらの使用可能なオプションについて詳しくは、表 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–17. System Settingsページ・パラメータ(2 /2)

パラメータ 値 説明

Page 79: PCI Express コンパイラ・ ユーザガイドPCI Express コンパイラ・ ユーザガイド MegaCore バージョン:6.1 ドキュメント・バージョン: 6.1 rev. 2 ドキュメント・デート:2006年12

Altera Corporation PCI Express Compiler Version 6.1 3–392006年 12月 PCI Expressコンパイラ・ユーザガイド

仕様

MegaCoreファンクション BARサポート

×1および×4 MegaCoreファンクションは、128バイトから、32ビットまたは 64 ビット BAR で許可される最大のサイズの範囲の Memory SpaceBARをサポートします。×8 MegaCoreファンクションは、4 Kバイトから、32ビットまたは64ビットBARで許可される最大バイト数のMemorySpace 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ページの Configuretransceiver block から利用できるダイアログで設定を変更することによって、トランシーバ・ブロックをコンフィギュレーションできます。

表 3–18.トランシーバ・ブロック・パラメータのコンフィギュレーション

パラメータ 説明Enable fast recovery mode

このオプションをイネーブルにすると、Rx ASPM L0sステートをより高速に脱出するための付加的なロジックが追加されます。ディセーブルにすると、RxASPM L0sの脱出には通常、リンク・リカバリの起動が必要となります。

Enable rate match fifo このオプションをイネーブルにすると、RateMatching FIFOがイネーブルされ、PCI Expressリンクの各端で PPMが異なる各種クロックが許可されます。

ディセーブルにすると、レート・マッチ FIFOがバイパスされ、より低いレイテンシが可能になりますが、PCI Express リンクの両端のポートが同じクロック・ソースを使用することが必要です。各端のクロックの間に PPMの違いはありません。

Page 80: PCI Express コンパイラ・ ユーザガイドPCI Express コンパイラ・ ユーザガイド MegaCore バージョン:6.1 ドキュメント・バージョン: 6.1 rev. 2 ドキュメント・デート:2006年12

3–40 PCI Express Compiler Version 6.1 Altera CorporationPCI Expressコンパイラ・ユーザガイド 2006年 12月

パラメータ 設定

図 3-8. Configure Transceiverダイアログ

Page 81: PCI Express コンパイラ・ ユーザガイドPCI Express コンパイラ・ ユーザガイド MegaCore バージョン:6.1 ドキュメント・バージョン: 6.1 rev. 2 ドキュメント・デート:2006年12

Altera Corporation PCI Express Compiler Version 6.1 3–412006年 12月 PCI Expressコンパイラ・ユーザガイド

仕様

Capabilitiesページのパラメータ

Capabilitiesページには、PCI読み出し専用レジスタおよびメイン機能設定に対するパラメータが含まれています。図 3-9を参照してください。

図 3-9. Capabilitiesページ

Page 82: PCI Express コンパイラ・ ユーザガイドPCI Express コンパイラ・ ユーザガイド MegaCore バージョン:6.1 ドキュメント・バージョン: 6.1 rev. 2 ドキュメント・デート:2006年12

3–42 PCI Express Compiler Version 6.1 Altera CorporationPCI Expressコンパイラ・ユーザガイド 2006年 12月

パラメータ 設定

表 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進数

リンク機能レジスタにおけるポート番号フィールドの読み出し専用値を設定します。

Page 83: PCI Express コンパイラ・ ユーザガイドPCI Express コンパイラ・ ユーザガイド MegaCore バージョン:6.1 ドキュメント・バージョン: 6.1 rev. 2 ドキュメント・デート:2006年12

Altera Corporation PCI Express Compiler Version 6.1 3–432006年 12月 PCI Expressコンパイラ・ユーザガイド

仕様

Tags supported 4、 8、 16、32、 64、128、 256

アプリケーション・レイヤが送信する Non-Posted リクエストに対してサポートされるタグ数を示します。トランザクション・レイヤは、アプリケーションが作成した 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

オン /オフ MSI 機能メッセージ・コントロール・レジスタが 64 ビット・アドレッシングが可能かどうかを示します。PCI Expressネイティブ・エンドポイントは常に MSI 64 ビット・アドレッシングをサポートします。

表 3–19. Capabilitiesページのパラメータ (2 /2)

パラメータ 値 説明

Page 84: PCI Express コンパイラ・ ユーザガイドPCI Express コンパイラ・ ユーザガイド MegaCore バージョン:6.1 ドキュメント・バージョン: 6.1 rev. 2 ドキュメント・デート:2006年12

3–44 PCI Express Compiler Version 6.1 Altera CorporationPCI Expressコンパイラ・ユーザガイド 2006年 12月

パラメータ 設定

Buffer Setupページ

Buffer Setup ページには、受信バッファおよびリトライ・バッファのパラメータが含まれています。図 3-10を参照してください。

図 3-10. Buffer Setupページ

Page 85: PCI Express コンパイラ・ ユーザガイドPCI Express コンパイラ・ ユーザガイド MegaCore バージョン:6.1 ドキュメント・バージョン: 6.1 rev. 2 ドキュメント・デート:2006年12

Altera Corporation PCI Express Compiler Version 6.1 3–452006年 12月 PCI Expressコンパイラ・ユーザガイド

仕様

表 3–20に、このページで設定できるパラメータを示します。

表 3–20. Buffer Setupページ・パラメータ (1 /4)

パラメータ 値 説明Maximum payload size

128 Bytes、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 バイトから16 Kバイト(2のべき乗)

送信されたPCI Expressパケットが確認応答されるまで格納するためのリトライ・バッファのサイズを設定します。

Maximum retry packets

4から 256(2のべき乗)

リトライ・バッファに格納できるパケットの最大数を設定します。

Page 86: PCI Express コンパイラ・ ユーザガイドPCI Express コンパイラ・ ユーザガイド MegaCore バージョン:6.1 ドキュメント・バージョン: 6.1 rev. 2 ドキュメント・デート:2006年12

3–46 PCI Express Compiler Version 6.1 Altera CorporationPCI Expressコンパイラ・ユーザガイド 2006年 12月

パラメータ 設定

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–20. Buffer Setupページ・パラメータ (2 /4)

パラメータ 値 説明

Page 87: PCI Express コンパイラ・ ユーザガイドPCI Express コンパイラ・ ユーザガイド MegaCore バージョン:6.1 ドキュメント・バージョン: 6.1 rev. 2 ドキュメント・デート:2006年12

Altera Corporation PCI Express Compiler Version 6.1 3–472006年 12月 PCI Expressコンパイラ・ユーザガイド

仕様

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 ページの「スループットの解析」の項のデータ・クレジットを参照してください。

表 3–20. Buffer Setupページ・パラメータ (3 /4)

パラメータ 値 説明

Page 88: PCI Express コンパイラ・ ユーザガイドPCI Express コンパイラ・ ユーザガイド MegaCore バージョン:6.1 ドキュメント・バージョン: 6.1 rev. 2 ドキュメント・デート:2006年12

3–48 PCI Express Compiler Version 6.1 Altera CorporationPCI Expressコンパイラ・ユーザガイド 2006年 12月

パラメータ 設定

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–20. Buffer Setupページ・パラメータ (4 /4)

パラメータ 値 説明

Page 89: PCI Express コンパイラ・ ユーザガイドPCI Express コンパイラ・ ユーザガイド MegaCore バージョン:6.1 ドキュメント・バージョン: 6.1 rev. 2 ドキュメント・デート:2006年12

Altera Corporation PCI Express Compiler Version 6.1 3–492006年 12月 PCI Expressコンパイラ・ユーザガイド

仕様

Power Managementページ

Power Managementページには、MegaCoreファンクションのさまざまなパワー・マネージメント特性を設定するためのパラメータがあります。図 3-11を参照してください。

図 3-11. Power Managementページ

Page 90: PCI Express コンパイラ・ ユーザガイドPCI Express コンパイラ・ ユーザガイド MegaCore バージョン:6.1 ドキュメント・バージョン: 6.1 rev. 2 ドキュメント・デート:2006年12

3–50 PCI Express Compiler Version 6.1 Altera CorporationPCI Expressコンパイラ・ユーザガイド 2006年 12月

パラメータ 設定

表 3–21に、このページで設定できるパラメータを示します。

表 3–21. Power Managementページ・パラメータ (1 /2)

パラメータ 値 説明Idle threshold for L0s entry

256 nsから 8,192 ns(256 ns単位)

L0sエントリのアイドル・スレッショルドを示します。このパラメータは、トランスミッタが 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 TrainingSequences共通クロック

0 - 255 共通クロック・モードで必要な高速トレーニング・シーケンス数を示します。必要な高速トレーニング・シーケンス数は、リンク初期化中にリンクの他端に送信され、デバイス機能レジスタの L0s脱出レイテンシ・フィールドの計算にも使用されます。Stratix GX PHYまたは Stratix II GX PHYを選択する場合、このパラメータはディセーブルされ、その最大値に設定されます。外部 PHY を使用している場合は、PHY ベンダのドキュメントを参照して、このパラメータの正しい値を決定してください。

Number of Fast TrainingSequencesSeparate 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許容レイテンシ・フィールドの読み出し専用値を設定します。この値はアプリケーション・レイヤが許容可能なレイテンシに基づく必要があります。

Page 91: PCI Express コンパイラ・ ユーザガイドPCI Express コンパイラ・ ユーザガイド MegaCore バージョン:6.1 ドキュメント・バージョン: 6.1 rev. 2 ドキュメント・デート:2006年12

Altera Corporation PCI Express Compiler Version 6.1 3–512006年 12月 PCI Expressコンパイラ・ユーザガイド

仕様

信号 アプリケーション・インタフェースの信号は、以下の 4つのカテゴリに分類されます。

■ 送信データ・パス・インタフェース信号■ 受信データ・パス・インタフェース信号■ コンフィギュレーション・インタフェース信号■ グローバル信号

図 3-12に、すべての PCI Express MegaCoreファンクションの信号を示します。

送信および受信信号は実装された各バーチャル・チャネルに適用されます。他方、コンフィギュレーションおよびグローバル信号はリンク上のすべてのバーチャル・チャネルに共通です。

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ベンダのドキュメントを参照して、このパラメータの正しい値を決定してください。

表 3–21. Power Managementページ・パラメータ (2 /2)

パラメータ 値 説明

Page 92: PCI Express コンパイラ・ ユーザガイドPCI Express コンパイラ・ ユーザガイド MegaCore バージョン:6.1 ドキュメント・バージョン: 6.1 rev. 2 ドキュメント・デート:2006年12

3–52 PCI Express Compiler Version 6.1 Altera CorporationPCI Expressコンパイラ・ユーザガイド 2006年 12月

信号

図 3-12. MegaCoreファンクションの I/O信号

tx_req0

tx_desc0

tx_ack0

tx_dfr0

tx_dv0

tx_data0[63:0]

tx_ws0

tx_cred0[21:0]

rx_req0

rx_desc0[135:0]

rx_ack0

rx_abort0

rx_retry0

rx_mask0

rx_dfr0

rx_dv0

rx_data0[63:0]

rx_be0[7:0]

rx_ws0

pme_to_cr

pme_to_sr

cfg_pmcsr[31:0]

app_msi_req

app_msi_ack

ack_msi_tc[2:0]

msi_num[4:0]

cfg_msicsr[15:0]

pex_msi_num[4:0]

app_int_sts

refclk

clk125_in

clk125_out

npor

srst

crst

12_exit

hotrst_exit

dlup_exit

cfg_tcvcmap[23:0]

cfg_busdev[12:0]

cfg_prmcfr[31:0]

cfg_devcsr[31:0]

cfg_linkcsr[31:0]

cpl_err[2:0]

cpl_pending

test_in[31:0]

test_out[511:0]

PCI Express MegaCore Function

1-Bit Serial

tx[7:0]

rx[7:0]

pipe_mode

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

phystatus0_ext

rxelecidle0_ext

rxstatus0_ext[2:0]

16-Bit PIPE for x1 and x4 (Repeated for Lanes 1 - 3 in the x4 MegaCore Function)

Transmit Data Path (for VC0)

Receive Data Path (for VC0)

Power Management

Interrupt

Global

Configuration

Completion Interface

Test Interface

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

rxstatus0_ext[2:0]

8-Bit PIPE for x8(Repeated for Lanes 1 - 7in the x8 MegaCore Function)

(1)

(2)

(3)

(3)

(4)

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.

Page 93: PCI Express コンパイラ・ ユーザガイドPCI Express コンパイラ・ ユーザガイド MegaCore バージョン:6.1 ドキュメント・バージョン: 6.1 rev. 2 ドキュメント・デート:2006年12

Altera Corporation PCI Express Compiler Version 6.1 3–532006年 12月 PCI Expressコンパイラ・ユーザガイド

仕様

送信インタフェース動作信号

送信インタフェースは、初期化されたバーチャル・チャネルごとに確立され、2本の独立したバスに基づいています。これらのバスのうち、1本はディスクリプタ・フェーズ用(tx_desc[127:0])、もう 1 本はデータ・フェーズ用(tx_data[63:0])です。すべてのトランザクションにディスクリプタが含まれています。ディスクリプタは、次の項で説明する例外のビット 126 および 127(これらはトランザクション・レイヤのパケット・グループを示すものです)を含む、PCI Express BaseSpecification Revision 1.0aに定義される標準的なトランザクション・レイヤ・パケット・ヘッダです。通常のデータ・ペイロードを持つトランザクション・レイヤ・パケットにのみ、1 つまたは複数のデータ・フェーズが含まれます。

送信データ・パス信号

MegaCore ファンクションは、アプリケーション・レイヤによって送信されるトランザクション・レイヤ・パケットが適切に形成されていることを前提としています。すなわち、MegaCore ファンクションは、アプリケーション・レイヤから送信されるトランザクション・レイヤ・パケットの形成が不正かどうかは検出しません。

送信データ・パス信号は以下の 2つのグループに分類することができます。

■ ディスクリプタ・フェーズ信号■ データ・フェーズ信号

以下の表で 0のサフィックスが付けられた送信インタフェース信号名はバーチャル・チャネル 0に対するものです。MegaCoreファンクションに追加バーチャル・チャネルが実装されている場合、そのバーチャル・チャネル番号がサフィックスとして付けられた追加信号セットが存在します。

Page 94: PCI Express コンパイラ・ ユーザガイドPCI Express コンパイラ・ ユーザガイド MegaCore バージョン:6.1 ドキュメント・バージョン: 6.1 rev. 2 ドキュメント・デート:2006年12

3–54 PCI Express Compiler Version 6.1 Altera CorporationPCI Expressコンパイラ・ユーザガイド 2006年 12月

信号

表 3–22では、標準ディスクリプタ・フェーズ信号について説明します。

表 3–22.標準ディスクリプタ・フェーズ信号 (1 /2)

信号 I/O 説明

tx_reqn (1)、(2) I 送信要求。この信号は各リクエストごとにアサートしなければなりません。送信要求信号は、常に tx_desc[127:0]と一緒にアサートされ、tx_ackがアサートされるまでアサートされたままでなければなりません。連続するディスクリプタ・パケットの間でこの信号をデアサートする必要はありません。

tx_descn[127:0](1)、(2)

I 送信ディスクリプタ・バス。送信ディスクリプタ・バスである、トランザクションのビット 127:0には、3または 4 DWORDの PCI Expressトランザクション・ヘッダを含めることができます。これらのビットは、PCI Express Base SpecificationRevision 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]

Page 95: PCI Express コンパイラ・ ユーザガイドPCI Express コンパイラ・ ユーザガイド MegaCore バージョン:6.1 ドキュメント・バージョン: 6.1 rev. 2 ドキュメント・デート:2006年12

Altera Corporation PCI Express Compiler Version 6.1 3–552006年 12月 PCI Expressコンパイラ・ユーザガイド

仕様

表 3–23では、標準データ・フェーズ信号について説明します。

tx_ackn(1)、(2)

O 送信確認。この信号は、アプリケーションが tx_req信号で要求したディスクリプタ・フェーズを MegaCoreファンクションが確認応答するときに 1クロック・サイクル間アサートされます。次のクロック・サイクルで、tx_req 信号(アサートを維持)と tx_descによって、新しいディスクリプタの送信を要求することができます。

表 3–22の注 :(1) ただし、nはバーチャル・チャネル番号とします。×1および ×4の場合、nは 0~ 3です。(2) ×8n は 0または 1です。

表 3–22.標準ディスクリプタ・フェーズ信号 (2 /2)

信号 I/O 説明

表 3–23.標準データ・フェーズ信号 (1 /2)

信号 I/O 説明tx_dfrn(1)、(2)

I 送信データ・フェーズ・フレーミング。この信号は、データ・フェーズを要求するために(データ・フェーズが必要と仮定)、tx_reqと同じクロック・サイクルでアサートされます。この信号は、最後のデータ・フェーズの前のクロック・サイクルまでアサートしたままでなければなりません。

tx_dvn(1)、(2)

I 送信データ有効。この信号はユーザ・アプリケーション・インタフェースによってアサートされ、tx_data[63:0]信号が有効であることを知らせます。この信号は、tx_dfrのアサーションに続くクロック・サイクルでアサートされ、送信の最後のデータ・フェーズまでアサートされていなければなりません。MegaCore ファンクションは、tx_ws がアサートされていない限り、この信号がアサートされたときにのみデータを受け入れます。

アプリケーション・インタフェースは、ディスクリプタ・フェーズが確認応答される(tx_ack のアサーションにより)前は、最初のデータ・フェーズが発生しないという事実を利用することができます。ただし、トランザクション・レイヤ・パケット・ヘッダが 3 DWORDのみ場合は、tx_ackのアサーションと同時に最初のデータ・フェーズが現れることがあります。

tx_wsn(1)、(2)

O 送信ウェイト・ステート。MegaCore ファンクションは、この信号を使用してウェイト・ステートを挿入し、データ損失を防止します。この信号は以下の状況で使用される可能性があります。

● DLLPに送信優先度を与えるため● リンクが許容レーン数よりも少ないレーン数で初期化されている場合に、高優先度バーチャル・チャネルまたはリトライ・バッファに送信優先度を与えるため

MegaCoreファンクションがディスクリプタ・フェーズを確認応答する(tx_ackのアサーションにより)準備が整っていない場合は、自動的に tx_wsをアサートして送信速度を制限します。tx_dv がアサートされていない場合、tx_wsは無視すべきです。

Page 96: PCI Express コンパイラ・ ユーザガイドPCI Express コンパイラ・ ユーザガイド MegaCore バージョン:6.1 ドキュメント・バージョン: 6.1 rev. 2 ドキュメント・デート:2006年12

3–56 PCI Express Compiler Version 6.1 Altera CorporationPCI Expressコンパイラ・ユーザガイド 2006年 12月

信号

表 3–24では、アドバンスド・データ・フェーズ信号について説明します。

tx_datan[63:0](1)、(2)

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トランザクション)

ビット 2が 0に設定された場合(5 DWORDトランザクション)

表 3–23の注 :(1) ここで、nはバーチャル・チャネルの番号。×1および ×4の場合、nは 0~ 3です。(2) ×8の場合、n は 0または 1です。

表 3–23.標準データ・フェーズ信号 (2 /2)

信号 I/O 説明

tx_data[63:32]

tx_data[31:0]

1 2 3 4 5 6

Clock Cycles

X DW 2DW 0 XDW 4

X DW 3DW 1 X

tx_data[63:32]

tx_data[31:0]

1 2 3 4 5 6

Clock Cycles

X DW 2DW 0 XDW 4

X DW 3DW 1 X

Page 97: PCI Express コンパイラ・ ユーザガイドPCI Express コンパイラ・ ユーザガイド MegaCore バージョン:6.1 ドキュメント・バージョン: 6.1 rev. 2 ドキュメント・デート:2006年12

Altera Corporation PCI Express Compiler Version 6.1 3–572006年 12月 PCI Expressコンパイラ・ユーザガイド

仕様

表 3–24.アドバンスド・データ・フェーズ信号

信号 I/O 説明tx_credn[65:0](1)、(2)

O 送信クレジット。この信号は、アプリケーション・レイヤに使用可能なフロー制御クレジットに基づいて、特定のタイプのトランザクション・レイヤ・パケットを送信できるかどうかを通知するのに使用されます。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です。

Page 98: PCI Express コンパイラ・ ユーザガイドPCI Express コンパイラ・ ユーザガイド MegaCore バージョン:6.1 ドキュメント・バージョン: 6.1 rev. 2 ドキュメント・デート:2006年12

3–58 PCI Express Compiler Version 6.1 Altera CorporationPCI Expressコンパイラ・ユーザガイド 2006年 12月

信号

表 3–25に、×1および×4 MegaCoreファンクション用のtx_cred0[21:0]に関するビット情報を示します。

表 3–25. ×1および ×4 MegaCoreファンクション用 tx_cred0[21:0]ビット

ビット 値 説明0 ● 0: 使用可能なクレジットがない

● 1: 少なくとも1つのトランザクション・レイヤ・パケットに対して十分なクレジットが使用可能

Postedヘッダ

9:1 ● 0: 使用可能なクレジットがない● 1-256: 使用可能なクレジットの数● 257-511: Reserved

Postedデータ : 9ビットで最大ペイロード・サイズである4KBに相当する256クレジットの通知を許可します。

10 ● 0: 使用可能なクレジットがない● 1: 少なくとも1つのトランザクション・レイヤ・パケットに対して十分なクレジットが使用可能

Non-Postedヘッダ

11 ● 0: 使用可能なクレジットがない● 1: 少なくとも1つのトランザクション・レイヤ・パケットに対して十分なクレジットが使用可能

Non-Postedデータ

12 ● 0: 使用可能なクレジットがない● 1: 少なくとも1つのトランザクション・レイヤ・パケットに対して十分なクレジットが使用可能

コンプリーション・ヘッダ

21:13 9 ビットで最大ペイロード・サイズである4KBに相当する256クレジットの通知を許可

コンプリーション・データ、Postedデータ

Page 99: PCI Express コンパイラ・ ユーザガイドPCI Express コンパイラ・ ユーザガイド MegaCore バージョン:6.1 ドキュメント・バージョン: 6.1 rev. 2 ドキュメント・デート:2006年12

Altera Corporation PCI Express Compiler Version 6.1 3–592006年 12月 PCI Expressコンパイラ・ユーザガイド

仕様

表 3–26 に、×8 MegaCore ファンクション用の tx_credn[65:0] に関するビット情報を示します。.

表 3–26. ×8 MegaCoreファンクション用 tx_cred[65:0]ビット (1 /2)

ビット 値 説明tx_cred[7:0] ● 0: 使用可能なクレジットがない

● 1: 少なくとも1つのTLPに対して十分なクレジットが使用可能

PostedヘッダPostedヘッダのクレジット、tx_cred[60]の値が 1に設定されている場合は、このフィールドを無視します。

tx_cred[19:8] ● 0: 使用可能なクレジットがない● 1-256: 使用可能なクレジットの数● 257-511: Reserved

Posted データ : 9 ビットで最大ペイロード・サイズである 4KBに相当する 256クレ ジ ッ ト の 通 知 を 許 可 し ま す。Postedデ ー タ の ク レ ジ ッ トtx_cred[61]の値が 1に設定されている場合、このフィールドを無視します。

tx_cred[27:20] ● 0: 使用可能なクレジットがない● 1: 少なくとも1つのTLPに対して十分なクレジットが使用可能

Non-PostedヘッダNon-Postedヘ ッ ダ の ク レ ジ ッ トtx_cred[62]の値が 1に設定されている場合、このフィールドを無視します。

tx_cred[39:28] ● 0: 使用可能なクレジットがない● 1: 少なくとも1つのTLPに対して十分なクレジットが使用可能

Non-PostedデータNon-Postedデ ー タ の ク レ ジ ッ トtx_cred[63] の値が 1に設定されている場合、このフィールドを無視します。

tx_cred[47:40]● 0: 使用可能なクレジットがない● 1: 少なくとも1つのTLPに対して十分なクレジットが使用可能

コンプリーション・ヘッダ

tx_cred[59:48]● 0: 使用可能なクレジットがない● 1-256: 使用可能なクレジットの数● 257-511: Reserved

コンプリーション・データ Postedデータ: 9ビットで最大ペイロード・サイズである 4KBに相当する 256クレジットの通知を許可します。

tx_cred[60] ● 0: Postedヘッダのクレジットは有限● 1: Postedヘッダのクレジットは無限

1 に設定されている場合、Posted ヘッダのクレジットは無限です。

tx_cred[61] ● 0: Postedデータのクレジットは有限● 1: Postedデータのクレジットは無限

1 に設定されている場合、Posted データのクレジットは無限です。

tx_cred[62] ● 0: Non-Postedヘッダのクレジットは有限● 1: Non-Postedヘッダのクレジットは無限

1 に設定されている場合、Posted ヘッダのクレジットは無限です。

tx_cred[63] ● 0: Non-Postedデータのクレジットは有限● 1: Non-Postedデータのクレジットは無限

1に設定されている場合、Non-Postedデータのクレジットは無限です。

Page 100: PCI Express コンパイラ・ ユーザガイドPCI Express コンパイラ・ ユーザガイド MegaCore バージョン:6.1 ドキュメント・バージョン: 6.1 rev. 2 ドキュメント・デート:2006年12

3–60 PCI Express Compiler Version 6.1 Altera CorporationPCI Expressコンパイラ・ユーザガイド 2006年 12月

信号

送信信号を使用したトランザクションの例

この項では、トランザクション信号の相互作用の様子を示す例を紹介します。

■ 理想的なケースでの送信■ トランザクション・レイヤがパケット受け入れ不可の場合■ ウェイト・ステート・インサーションが可能な場合■ 優先度が他の場所で与えられている場合■ トランザクション・レイヤ・パケット間で送信要求をアサートしたままにできる場合

■ ヘッダが 4 DWORD なので、トランザクション・レイヤがウェイト・ステートを挿入する場合

■ 複数のウェイト・ステートによってデータ送信が制限される場合■ エラーがアサートされ、送信が無効化される場合

各波形では、水平方向の目立つ線によって、ディスクリプタ信号とデータ信号が区分されています。

理想的なケースでの送信

理想的なケースでは、ディスクリプタの転送とデータの転送が互いに独立しており、同時に起こることもあります。図 3-13を参照してください。MegaCore ファンクションは、8 DWORDのコンプリーション・トランザクションを送信します。アドレス・ビット 2は 0に設定されます。

クロック・サイクル 4では、最初のデータ・フェーズがディスクリプタの転送と同時に確認応答されます。

tx_cred[64] ● 0: コンプリーション・クレジットは有限● 1: コンプリーション・クレジットは無限

1に設定されている場合、コンプリーション・ヘッダのクレジットは無限です。

tx_cred[65] ● 0: コンプリーション・データのクレジットは有限

● 1: コンプリーション・データのクレジットは無限

1に設定されている場合、コンプリーション・データのクレジットは無限です。

表 3–26. ×8 MegaCoreファンクション用 tx_cred[65:0]ビット (2 /2)

ビット 値 説明

Page 101: PCI Express コンパイラ・ ユーザガイドPCI Express コンパイラ・ ユーザガイド MegaCore バージョン:6.1 ドキュメント・バージョン: 6.1 rev. 2 ドキュメント・デート:2006年12

Altera Corporation PCI Express Compiler Version 6.1 3–612006年 12月 PCI Expressコンパイラ・ユーザガイド

仕様

図 3-13. 8 DWORDの 64ビット・データ付きコンプリーションのトランザクション波形

図 3-14に、MegaCoreファンクションによる 1 DWORDのメモリ・ライトの送信を示します。

図 3-14. 1 DWORDライト転送

tx_req

tx_ack

tx_desc[127:0]

tx_dfr

tx_dv

tx_data[63:32]

tx_data[31:0]

tx_ws

tx_err

DescriptorSignals

DataSignals

1 2 3 4 5 6 7 8 9 10 11 12 13 14 15

CPLD

DW1 DW3 DW5 DW7X X

DW0 DW2 DW4 DW6X X

Clock Cycles

tx_desc[127:0]

tx_ack

_data[63:32]

tx_ws

1 2 3 4 5 6 7 10 11 12 13 14 15Clock Cycles

tx_err

tx_dfr

tx_req

8 9

tx_dv

tx_data[31:0]

MEMWR32

DW0

X

X

X

X

DescriptorSignals

txData

Signals

Page 102: PCI Express コンパイラ・ ユーザガイドPCI Express コンパイラ・ ユーザガイド MegaCore バージョン:6.1 ドキュメント・バージョン: 6.1 rev. 2 ドキュメント・デート:2006年12

3–62 PCI Express Compiler Version 6.1 Altera CorporationPCI Expressコンパイラ・ユーザガイド 2006年 12月

信号

トランザクション・レイヤがパケット受け入れ不可の場合

この例では、アプリケーションが 6 DWORDの 64ビット・メモリ・リード・トランザクションを送信します。アドレス・ビット 2は 0に設定されます。図 3-15を参照してください。

この例のケースのように、MegaCore ファンクションのトランザクション・レイヤのステート・マシンが前のパケットの送信中でビジー状態にある場合は、データ送信を開始することができません。

図 3-15. ステート・マシンが前のトランザクション・レイヤ・パケットでビジー状態になっている波形

tx_req

tx_ack

tx_desc[127:0]

tx_dfr

tx_dv

tx_data[63:32]

tx_data[31:0]

tx_ws

tx_err

DescriptorSignals

DataSignals

1 2 3 4 5 6 7 8 9 10 11 12 13 14 15

MEMRD64

Clock Cycles

Page 103: PCI Express コンパイラ・ ユーザガイドPCI Express コンパイラ・ ユーザガイド MegaCore バージョン:6.1 ドキュメント・バージョン: 6.1 rev. 2 ドキュメント・デート:2006年12

Altera Corporation PCI Express Compiler Version 6.1 3–632006年 12月 PCI Expressコンパイラ・ユーザガイド

仕様

図 3-16 は、アプリケーション・レイヤが確認応答を受け取るまで待ち、その後でライト・データの転送が可能になることを示しています。

図 3-16. トランザクション・レイヤがパケット受け入れ不可の場合

ウェイト・ステート・インサーションが可能な場合

MegaCore ファンクションが可能な最大レーンに初期化されていない場合、必然的にデータ転送が遅延します。図 3-18を参照してください。アプリケーションは、8 DWORDの 32ビット・メモリ・ライト・トランザクションを送信します。アドレス・ビット 2は 0に設定されます。

クロック・サイクル 3では、転送バッファがフルでない限り、すぐにデータ転送を開始できます。

クロック・サイクル 5 では、バッファがフルになり、MegaCore ファンクションがウェイト・ステートを挿入して転送速度を制限すると、1 回の転送ごとに 1クロック・サイクルではなく 4クロック・サイクルが必要になります。これは、MegaCore ファンクションが実装されたレーンで可能な最大数でコンフィギュレーションされていないためです。

図 3-17 に、トランザクション・レイヤがウェイト・ステート信号のアサートによってデータ・フェーズを拡張する様子を示します。

tx_desc[127:0]

tx_ack

tx_data[63:32]

tx_ws

1 2 3 4 5 6 7 10 11 12 13 14 15Clock Cycles

tx_err

tx_dfr

tx_req

8 9

tx_dv

tx_data[31:0]

MEMWR32

DW0

X

X

X

X

DescriptorSignals

DataSignals

Page 104: PCI Express コンパイラ・ ユーザガイドPCI Express コンパイラ・ ユーザガイド MegaCore バージョン:6.1 ドキュメント・バージョン: 6.1 rev. 2 ドキュメント・デート:2006年12

3–64 PCI Express Compiler Version 6.1 Altera CorporationPCI Expressコンパイラ・ユーザガイド 2006年 12月

信号

図 3-17. ウェイト・ステートが挿入された、1 DWORDライト転送

図 3-18. MegaCore ファンクションのレーンが可能な最大レーンよりも少ない場合の信号動作の波形

tx_desc[127:0]

tx_ack

tx_data[63:32]

tx_ws

1 2 3 4 5 6 7 10 11 12 13 14 15Clock Cycles

tx_err

tx_dfr

tx_req

8 9

tx_dv

tx_data[31:0]

MEMWR32

DW0

X

X

X

X

DescriptorSignals

DataSignals

tx_req

tx_ack

tx_desc[127:0]

tx_dfr

tx_dv

tx_data[63:32]

tx_data[31:0]

tx_ws

tx_err

DescriptorSignals

DataSignals

1 2 3 4 5 6 7 8 9 10 11 12 13 14 15

MEMW32

Clock Cycles

X DW1 DW3 DW5 DW7 X

X DW0 DW2 DW4 DW6 X

Page 105: PCI Express コンパイラ・ ユーザガイドPCI Express コンパイラ・ ユーザガイド MegaCore バージョン:6.1 ドキュメント・バージョン: 6.1 rev. 2 ドキュメント・デート:2006年12

Altera Corporation PCI Express Compiler Version 6.1 3–652006年 12月 PCI Expressコンパイラ・ユーザガイド

仕様

ヘッダが 4 DWORDのため、トランザクション・レイヤがウェイト・ステートを挿入する場合

この例では、アプリケーションが 64ビット・メモリ・ライト・トランザクションを送信します。アドレス・ビット 2は 1に設定されます。図 3-19を参照してください。MegaCoreファンクションは連続するトランザクション・レイヤ・パケットの送信時に最大性能が得られるように小さなバッファを実装しているので、最初の 2データ・フェーズでウェイト・ステートが挿入されることはありません。

クロック・サイクル 3では、メモリ・ライト 64ビット・トランザクション・レイヤ・パケット・リクエストに 4 DWORD ヘッダがあるため、MegaCore ファンクションは 1 ウェイト・ステートを挿入します。この場合、tx_dvはその 1クロック・サイクル後に送信することも可能です。

図 3-19. ヘッダが 4 DWORDのため、ウェイト・ステートが挿入されるときの波形

tx_req

tx_ack

tx_desc[127:0]

tx_dfr

tx_dv

tx_data[63:32]

tx_data[31:0]

tx_ws

tx_err

DescriptorSignals

DataSignals

1 2 3 4 5 6 7 8 9 10 11 12 13 14 15

MEMWR64

Clock Cycles

X DW4DW0 DW2 DW6 X

X DW3DW1 DW5 DW7 X

Page 106: PCI Express コンパイラ・ ユーザガイドPCI Express コンパイラ・ ユーザガイド MegaCore バージョン:6.1 ドキュメント・バージョン: 6.1 rev. 2 ドキュメント・デート:2006年12

3–66 PCI Express Compiler Version 6.1 Altera CorporationPCI Expressコンパイラ・ユーザガイド 2006年 12月

信号

優先度が他の場所で与えられている場合

この例では、アプリケーションが 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ビット・メモリ・ライト・リクエストの波形

tx_req

tx_ack

tx_desc[127:0]

tx_dfr

tx_dv

tx_data[63:32]

tx_data[31:0]

tx_ws

tx_err

DescriptorSignals

DataSignals

1 2 3 4 5 6 7 8 9 10 11 12 13 14 15

MEMWR64

Clock Cycles

X DW1 DW3 DW5 DW7 X

X DW0 DW2 DW4 DW6 X

Page 107: PCI Express コンパイラ・ ユーザガイドPCI Express コンパイラ・ ユーザガイド MegaCore バージョン:6.1 ドキュメント・バージョン: 6.1 rev. 2 ドキュメント・デート:2006年12

Altera Corporation PCI Express Compiler Version 6.1 3–672006年 12月 PCI Expressコンパイラ・ユーザガイド

仕様

トランザクション・レイヤ・パケット間で送信要求をアサートしたままにできる場合

この例では、アプリケーションが 64ビット・メモリ・リード・トランザクションを送信し、続いて 64ビット・メモリ・ライト・トランザクションを送信します。アドレス・ビット 2は 0に設定されます。図 3-21を参照してください。

クロック・サイクル 4では、トランザクション・レイヤ・パケット間でtx_reqがデアサートされません。

クロック・サイクル 5では、別々の番地や LCRCなど、64ビット・アドレスに伴う追加オーバヘッドのために、2 番目のトランザクション・レイヤ・パケットはすぐには確認応答されません。この状況では、2 つの連続するトランザクション・レイヤ・パケット間にクロック・サイクルが 1つ追加されます。

図 3-21. 64ビット・メモリ・リード・リクエストの波形

tx_req

tx_ack

tx_desc[127:0]

tx_dfr

tx_dv

tx_data[63:32]

tx_data[31:0]

tx_ws

tx_err

DescriptorSignals

DataSignals

1 2 3 4 5 6 7 8 9 10 11 12 13 14 15

MEMRD64

Clock Cycles

X DW1 DW3 DW5 DW7 X

X DW0 DW2 DW4 DW6 X

MEMWR64

Page 108: PCI Express コンパイラ・ ユーザガイドPCI Express コンパイラ・ ユーザガイド MegaCore バージョン:6.1 ドキュメント・バージョン: 6.1 rev. 2 ドキュメント・デート:2006年12

3–68 PCI Express Compiler Version 6.1 Altera CorporationPCI Expressコンパイラ・ユーザガイド 2006年 12月

信号

複数のウェイト・ステートによってデータ送信が制限される場合

この例では、アプリケーションが 32ビット・メモリ・ライト・トランザクションを送信します。アドレス・ビット 2は 0に設定されます。図 3-22を参照してください。MegaCoreファンクションは連続するトランザクション・レイヤ・パケットの送信時に最大性能が得られるように小さなバッファを実装しているので、最初の 2データ・フェーズでウェイト・ステートが挿入されることはありません。

クロック・サイクル 5、7、9、11では、MegaCoreファンクションはウェイト・ステートを挿入して、送信フローを制限します。

図 3-22. データ送信速度を制限する複数のウェイト・ステートの波形

エラーがアサートされ、送信が無効化される場合

この例では、アプリケーションが 14 DWORDの 64ビット・メモリ・ライト・トランザクションを送信します。アドレス・ビット 2は 0に設定されます。図 3-23を参照してください。

クロック・サイクル 12では、tx_errがアサートされ、それによってリンク上のトランザクション・レイヤ・パケットの送信が無効化されます。無効化されたパケットには、計算された値から反転した LCRC があり、通常の END コントロール・キャラクタの代わりに end bad パケット(EDB)が使用されます。

tx_req

tx_ack

tx_desc[127:0]

tx_dfr

tx_dv

tx_data[63:32]

tx_data[31:0]

tx_ws

tx_err

DescriptorSignals

DataSignals

1 2 3 4 5 6 7 8 9 10 11 12 13 14 15

MEMWR64

Clock Cycles

X DW5DW1 DW3 DW7 XDW9 DW11

X DW4DW0 DW2 DW6 XDW8 DW10

Page 109: PCI Express コンパイラ・ ユーザガイドPCI Express コンパイラ・ ユーザガイド MegaCore バージョン:6.1 ドキュメント・バージョン: 6.1 rev. 2 ドキュメント・デート:2006年12

Altera Corporation PCI Express Compiler Version 6.1 3–692006年 12月 PCI Expressコンパイラ・ユーザガイド

仕様

図 3-23. エラー・アサーション波形

受信インタフェース動作信号

受信インタフェースは、送信インタフェースと同様に、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ファンクションが追加のバーチャル・チャネルを実装する場合、そのバーチャル・チャネル番号がサフィックスとして付けられた追加信号セットが存在します。

tx_req

tx_ack

tx_desc[127:0]

tx_dfr

tx_dv

tx_data[63:32]

tx_data[31:0]

tx_ws

tx_err

DescriptorSignals

DataSignals

1 2 3 4 5 6 7 8 9 10 11 12 13 14 15

MEMWR64

Clock Cycles

DW5DW1 DW3 DW7 DW9 DWB DWD DWF

DW4DW0 DW2 DW6 DW8 DWA DWC DWE

Page 110: PCI Express コンパイラ・ ユーザガイドPCI Express コンパイラ・ ユーザガイド MegaCore バージョン:6.1 ドキュメント・バージョン: 6.1 rev. 2 ドキュメント・デート:2006年12

3–70 PCI Express Compiler Version 6.1 Altera CorporationPCI Expressコンパイラ・ユーザガイド 2006年 12月

信号

表 3–27で、標準ディスクリプタ・フェーズ信号について説明します。

表 3–27.標準ディスクリプタ・フェーズ信号 (1 /2)

信号 I/O 説明rx_req0(1)、(2)

O 受信要求。この信号はMegaCoreファンクションによってアサートされ、アプリケーション・インタフェースへのパケット転送を要求します。この信号は、トランザクション・レイヤ・パケット・ヘッダの最初の 2 DWORDが有効な場合にアサートされます。この信号は最小 2クロック・サイクル間アサートされ、rx_abort、rx_retry、および rx_ackをこの信号と同時にアサートすることはできません。完全なディスクリプタは、この信号がアサートされる 2番目のクロック・サイクルで有効です。

rx_descn[135:0](1)、(2)

O 受信ディスクリプタ・バス。ビット(125:0)は、PCI Express Base Specification Revision 1.0a.で定義される標準トランザクション・レイヤ・パケット・ヘッダと同じ意味を持っています。ヘッダのバイト 0は rx_descバスのビット 127:120を占有し、ヘッダのバイト 1はビット 119:112を占有するというように、ビット 7:0のバイト 15まで同様です。ヘッダ・フォーマットについては、付録 B.トランザクション・レイヤ・ パケットのヘッダ・フォーマットを参照してください。

ビット 135:128(ディスクリプタおよび BAR デコーディング)については、表 3–28 を参照してください。エンドポイントで受信したコンプリーション・トランザクションにはアサートされたビットがなく、アプリケーション・レイヤのマスタ・ブロックに転送しなければなりません。

rx_desc[127:64]は、rx_reqがアサートされるのと同一クロックで送信を開始し、できるだけ迅速にプリコーディングとアービトレーションを開始できるようにします。以下の図に示すように、rx_desc のその他のビットは、次のクロック・サイクルまで有効になりません。

ディスクリプタのビット 126は通過中のトランザクション・レイヤ・パケットのタイプを示します。

● 0に設定された rx_desc[126]:データを含まないトランザクション・レイヤ・パケット

● 1に設定された rx_desc[126]:データを含むトランザクション・レイヤ・パケット

rx_req

rx_ack

rx_desc[135:128]

rx_desc[127:64]

rx_desc[63:0]

1 2 3 4 5 6

Clock Cycles

X Valid X

X Valid X

X Valid X

Page 111: PCI Express コンパイラ・ ユーザガイドPCI Express コンパイラ・ ユーザガイド MegaCore バージョン:6.1 ドキュメント・バージョン: 6.1 rev. 2 ドキュメント・デート:2006年12

Altera Corporation PCI Express Compiler Version 6.1 3–712006年 12月 PCI Expressコンパイラ・ユーザガイド

仕様

MegaCoreファンクションは、BARのデコーディング情報によって、この信号の 8つのMSBを生成します。表 3–28を参照してください。

rx_ackn(1)、(2)

I 受信確認。この信号は、アプリケーション・インタフェースがディスクリプタ・フェーズを確認応答し、データ・フェーズがあればそれを開始するときに 1クロック・サイクルの間アサートされます。rx_req信号は次のクロック・サイクルでデアサートされ、rx_descは次の送信を行える状態になります。

rx_abortn(1)、(2)

I 受信アボート。この信号は、アプリケーションが要求されるディスクリプタを受け入れることができない場合に、アプリケーション・インタフェースによってアサートされます。この場合、受信バッファ・スペースからディスクリプタが削除され、フロー制御クレジットが更新され、また必要に応じて、アプリケーション・レイヤは送信側の unsupported要求(UR)状態を用いてコンプリーション・トランザクションを生成します。

rx_retryn(1)、(2)

I 受信リトライ。アプリケーション・インタフェースは、Non-Posted リクエストを受け入れることができない場合に、この信号をアサートします。この場合、アプリケーション・レイヤは、rx_mask0の持続中に、受信インタフェースに Postedトランザクションとコンプリーション・トランザクションのみ現れるように、rx_mask0 を rx_retry0 と共にアサートしなければなりません。

rx_maskn(1)、(2)

I 受信マスク(Non-Posted リクエスト)。この信号は、Posted トランザクションとコンプリーション・トランザクションのみが現れるように、アプリケーション・インタフェースに対して行われたすべての Non-Postedリクエスト・トランザクションをマスクするのに使用されます。この信号は、rx_retry0と一緒にアサートし、MegaCoreファンクションが再び Non-Postedリクエストを受け入れることができるようになった時点でデアサートしなければなりません。

表 3–27の注 :(1) ここで、nはバーチャル・チャネルの番号で、×1および ×4の場合、nは 0~ 3です。(2) ×8の場合、n は 0または 1です。

表 3–27.標準ディスクリプタ・フェーズ信号 (2 /2)

信号 I/O 説明

表 3–28. rx_desc[135:128]:ディスクリプタ、およびBARのデコーディング

ビット タイプ 0コンポーネント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

Page 112: PCI Express コンパイラ・ ユーザガイドPCI Express コンパイラ・ ユーザガイド MegaCore バージョン:6.1 ドキュメント・バージョン: 6.1 rev. 2 ドキュメント・デート:2006年12

3–72 PCI Express Compiler Version 6.1 Altera CorporationPCI Expressコンパイラ・ユーザガイド 2006年 12月

信号

表 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]にデータが含まれていることを知らせます。

Page 113: PCI Express コンパイラ・ ユーザガイドPCI Express コンパイラ・ ユーザガイド MegaCore バージョン:6.1 ドキュメント・バージョン: 6.1 rev. 2 ドキュメント・デート:2006年12

Altera Corporation PCI Express Compiler Version 6.1 3–732006年 12月 PCI Expressコンパイラ・ユーザガイド

仕様

rx_datan[63:0](1)、(2)

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トランザクション)

ビット 2が 0に設定された場合(5 DWORDトランザクション)

rx_wsn(1)、(2)

I 受信ウェイト・ステート。アプリケーション・レイヤは、この信号を使用してウェイト・ステートを挿入し、データ転送を制限することができます。

表 3–29の注 :(1) ここで、nはバーチャル・チャネルの番号で、×1および ×4の場合、nは 0~ 3です。(2) ×8の場合、n は 0または 1です。

表 3–29.データ・フェーズ信号 (2 /2)

信号 I/O 説明

rx_data[63:32]

rx_data[31:0]

1 2 3 4 5 6

Clock Cycles

X DW 2DW 0 XDW 4

X DW 3DW 1 X

rx_data[63:32]

rx_data[31:0]

1 2 3 4 5 6

Clock Cycles

X DW 2DW 0 XDW 4

X DW 3DW 1 X

Page 114: PCI Express コンパイラ・ ユーザガイドPCI Express コンパイラ・ ユーザガイド MegaCore バージョン:6.1 ドキュメント・バージョン: 6.1 rev. 2 ドキュメント・デート:2006年12

3–74 PCI Express Compiler Version 6.1 Altera CorporationPCI Expressコンパイラ・ユーザガイド 2006年 12月

信号

受信信号を使用したトランザクションの例

この項では、トランザクション信号の相互作用の様子を示す別の例を紹介します。

■ データ・ペイロードを伴わないトランザクション■ リトライされたトランザクションおよびマスクされた Non-Postedトランザクション

■ アボートされたトランザクション■ データ・ペイロードを伴うトランザクション■ データ・ペイロードおよびウェイト・ステートを伴うトランザクション

各波形では、水平方向の目立つ線によって、ディスクリプタ信号とデータ信号が区分されています。

データ・ペイロードを伴わないトランザクション

図 3-24では、MegaCoreファンクションは以下の 3つの連続するトランザクションを受け取りますが、いずれにもデータ・ペイロードはありません。

■ メモリ・リード・リクエスト(64ビット・アドレッシング・モード)■ メモリ・リード・リクエスト(32ビット・アドレッシング・モード)■ I/Oリード・リクエスト

クロック・サイクル 4、7、12では、MegaCoreファンクションは、各トランザクション・レイヤ・パケットが確認応答あるいはアボートされた後で、フロー制御クレジットを更新します。MegaCore ファンクションは、必要に応じてフロー制御 DLLPを生成して、フロー制御クレジットのレベルを通知します。

クロック・サイクル 8 では、クロック・サイクル 8 で開始された I/Oリード・リクエストは、rx_ack がアサートされるクロック・サイクル11まで確認応答されません。輻輳のため確認応答が比較的遅くなっている可能性があります。

Page 115: PCI Express コンパイラ・ ユーザガイドPCI Express コンパイラ・ ユーザガイド MegaCore バージョン:6.1 ドキュメント・バージョン: 6.1 rev. 2 ドキュメント・デート:2006年12

Altera Corporation PCI Express Compiler Version 6.1 3–752006年 12月 PCI Expressコンパイラ・ユーザガイド

仕様

図 3-24. データ・ペイロードを伴わない 3つのトランザクションの波形

リトライされたトランザクションおよびマスクされた Non-Postedトランザクション

アプリケーション・レイヤは、Non-Posted リクエストを受け入れることができなくなると、パケットの再送信を要求するか、rx_mask をアサートします。rx_maskの持続中は、MegaCoreファンクションはすべてのNon-Postedトランザクションをマスクし、Postedトランザクションとコンプリーション・トランザクションが優先されるように、送信待ちのトランザクションの優先度を再設定します。アプリケーション・レイヤが再度 Non-Posted トランザクションを受け入れることができるようになると、rx_maskがデアサートされ、受信バッファに蓄積されたすべてのNon-Postedトランザクションに優先度が与えられます。

各バーチャル・チャネルは専用データ・パスと関連のバッファを備えており、バーチャル・チャネル間にオーダリング関係は存在しません。1本のバーチャル・チャネルが一時的に閉塞しても、他のバーチャル・チャネルには影響なくデータ・フローが継続します。バーチャル・チャネルでは、Non-Posted トランザクションに対してのみデッドロックを防止するためにリオーダリングが必要です。以下のケースでは、リオーダリングは実装されません。

rx_req

rx_ack

rx_desc[135:128]

rx_desc[127:64]

rx_desc[63:0]

rx_abort

rx_retry

rx_mask

rx_dfr

rx_dv

rx_ws

rx_data[63:32]

rx_data[31:0]

rx_be[7:0]

DescriptorSignals

DataSignals

1 2 3 4 5 6 7 8 9 10 11 12 13 14

Clock Cycles

XX MEMRD64 MEMRD32 X I/O RD X

X

X

X

XX Valid X Valid X

XX Valid X Valid X

Valid

Valid

Page 116: PCI Express コンパイラ・ ユーザガイドPCI Express コンパイラ・ ユーザガイド MegaCore バージョン:6.1 ドキュメント・バージョン: 6.1 rev. 2 ドキュメント・デート:2006年12

3–76 PCI Express Compiler Version 6.1 Altera CorporationPCI Expressコンパイラ・ユーザガイド 2006年 12月

信号

■ 同一バーチャル・チャネル内にマップされたトラフィック・クラスの間■ Postedトランザクションとコンプリーション・トランザクションの間■ 同一タイプのトランザクションの間(トランザクション・レイヤ・パケットのリラックス・オーダリング・ビットとは無関係)

図 3-25では、MegaCoreファンクションは、すぐに受け入れることのできない 4 DWORDのメモリ・リード・リクエスト・トランザクションを受け取ります。2 番目のトランザクション(1 DWORD のメモリ・ライト・トランザクション)は、受信バッファ内で送信待ちの状態にあります。メモリ・ライト・リクエストのための rx_data[63:0]のビット 2は 1に設定されます。

クロック・サイクル 3では、rx_maskがアサートされている限り、Non-Postedトランザクションの送信は許可されません。

トランザクション・レイヤ・パケットが受信バッファから抽出され、ディスクリプタ・フェーズとデータ・フェーズ(ある場合)の両方が終了した後にのみ、フロー制御クレジットが更新されます。この更新は、図 3-25のクロック・サイクル 8および 12で行われます。

図 3-25. リトライされたトランザクションおよびマスクされた Non-Postedトランザクションの波形

rx_req

rx_ack

rx_desc[135:128]

rx_desc[127:64]

rx_desc[63:0]

rx_abort

rx_retry

rx_mask

rx_dfr

rx_dv

rx_ws

rx_data[63:32]

rx_data[31:0]

rx_be[7:0]

DescriptorSignals

DataSignals

1 2 3 4 5 6 7 8 9 10 11 12 13 14

Clock Cycles

XX ValidValid X Valid X

X

XX DW 0

00h00h F0h

XX MEMWR 1DWMEMRD 4DW X MEMRD 4DW X

XX ValidValid X Valid X

Page 117: PCI Express コンパイラ・ ユーザガイドPCI Express コンパイラ・ ユーザガイド MegaCore バージョン:6.1 ドキュメント・バージョン: 6.1 rev. 2 ドキュメント・デート:2006年12

Altera Corporation PCI Express Compiler Version 6.1 3–772006年 12月 PCI Expressコンパイラ・ユーザガイド

仕様

アボートされたトランザクション

図 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で次のトランザクションの送信が開始されます。

Page 118: PCI Express コンパイラ・ ユーザガイドPCI Express コンパイラ・ ユーザガイド MegaCore バージョン:6.1 ドキュメント・バージョン: 6.1 rev. 2 ドキュメント・デート:2006年12

3–78 PCI Express Compiler Version 6.1 Altera CorporationPCI Expressコンパイラ・ユーザガイド 2006年 12月

信号

図 3-26. アボートされたトランザクションの波形

データ・ペイロードを伴うトランザクション

図 3-27 では、MegaCore ファンクションは、8 DWORD のコンプリーション・トランザクションと、2 番目の 3 DWORD のメモリ・ライト・リクエストを受け取ります。rx_data[63:0] のビット 2 は、コンプリーション・トランザクションの場合は 0に設定され、メモリ・ライト・リクエスト・トランザクションの場合は 1に設定されます。

rx_dfr は通常、rx_req と同じクロック・サイクルまたは次のクロック・サイクルでアサートされます。ただし、このケースでは、この信号はすでにアサートされており、最初のトランザクションの送信終了を知らせるクロック・サイクル 7までアサートされたままです。この信号はクロック・サイクル 8ですぐに再アサートされ、2番目のトランザクションのデータ・フェーズを要求します。

rx_req

rx_ack

rx_desc[135:128]

rx_desc[127:64]

rx_desc[63:0]

rx_abort

rx_retry

rx_mask

rx_dfr

rx_dv

rx_ws

rx_data[63:32]

rx_data[31:0]

rx_be[7:0]

DescriptorSignals

DataSignals

1 2 3 4 5 6 7 8 9 10 11 12 13 14

Clock Cycles

Valid X Valid X

XX DW 1

0FhX FFh X

DW 2X DW 0 X

MEMRD 16DW X CPL 3DW X

Valid X Valid X

Page 119: PCI Express コンパイラ・ ユーザガイドPCI Express コンパイラ・ ユーザガイド MegaCore バージョン:6.1 ドキュメント・バージョン: 6.1 rev. 2 ドキュメント・デート:2006年12

Altera Corporation PCI Express Compiler Version 6.1 3–792006年 12月 PCI Expressコンパイラ・ユーザガイド

仕様

図 3-27. データ・ペイロードを伴うトランザクションの波形

データ・ペイロードとウェイト・ステートを伴うトランザクション

アプリケーション・レイヤは、何回でも必要なだけ 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をデアサートし、それによってアプリケーション・レイヤが挿入したウェイト・ステートが終了する。

rx_req

rx_ack

rx_desc[135:128]

rx_desc[127:64]

rx_desc[63:0]

rx_abort

rx_retry

rx_mask

rx_dfr

rx_dv

rx_ws

rx_data[63:32]

rx_data[31:0]

rx_be[7:0]

DescriptorSignals

DataSignals

1 2 3 4 5 6 7 8 9 10 11 12 13 14

Clock Cycles

ValidValid X

FFhX FFh X

DW 2X DW 0 X

X X

DW 3DW 1 DW 7DW 5 X

X DW 1 XDW 2DW 0 DW 6DW 4 X

F0h

MEMWR AD1 3DWCPLD 8DW XX X

ValidValid XX X

Page 120: PCI Express コンパイラ・ ユーザガイドPCI Express コンパイラ・ ユーザガイド MegaCore バージョン:6.1 ドキュメント・バージョン: 6.1 rev. 2 ドキュメント・デート:2006年12

3–80 PCI Express Compiler Version 6.1 Altera CorporationPCI Expressコンパイラ・ユーザガイド 2006年 12月

信号

図 3-28. データ・ペイロードとウェイト・ステートを伴うトランザクションの波形

受信信号間の依存性

表 3–30 に、さまざまな受信信号間の最小および最大レイテンシ値をクロック・サイクルで示します。

rx_req

rx_ack

rx_desc[135:128]

rx_desc[127:64]

rx_desc[63:0]

rx_abort

rx_retry

rx_mask

rx_dfr

rx_dv

rx_ws

rx_data[63:32]

rx_data[31:0]

rx_be[7:0]

DescriptorSignals

DataSignals

1 2 3 4 5 6 7 8 9 10 11 12 13 14

Clock Cycles

Valid

X DW 1 X

X X

DW 3X

FFhX F0h X0FhX

DW 2X DW 0 X

CPLD 4DWX X

ValidX X

表 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は次のトランザクション要求です。

Page 121: PCI Express コンパイラ・ ユーザガイドPCI Express コンパイラ・ ユーザガイド MegaCore バージョン:6.1 ドキュメント・バージョン: 6.1 rev. 2 ドキュメント・デート:2006年12

Altera Corporation PCI Express Compiler Version 6.1 3–812006年 12月 PCI Expressコンパイラ・ユーザガイド

仕様

クロック

アルテラの 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を参照してください。

Page 122: PCI Express コンパイラ・ ユーザガイドPCI Express コンパイラ・ ユーザガイド MegaCore バージョン:6.1 ドキュメント・バージョン: 6.1 rev. 2 ドキュメント・デート:2006年12

3–82 PCI Express Compiler Version 6.1 Altera CorporationPCI Expressコンパイラ・ユーザガイド 2006年 12月

信号

図 3-29. 汎用 PIPE PHYクロック・コンフィギュレーション (1)

図 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を参照してください。

altpcie_64b_x4_pipen1b: External PHY

refclk

clk125_in

clk125_outNot Required Not Required

clk

All Logic in MegaCore Function

125-MHz pclkfrom PIPE PHY

Page 123: PCI Express コンパイラ・ ユーザガイドPCI Express コンパイラ・ ユーザガイド MegaCore バージョン:6.1 ドキュメント・バージョン: 6.1 rev. 2 ドキュメント・デート:2006年12

Altera Corporation PCI Express Compiler Version 6.1 3–832006年 12月 PCI Expressコンパイラ・ユーザガイド

仕様

図 3-30. Stratix GX PHYの 100 MHzリファレンス・クロックのコンフィギュレーション (1)

図 3-30の注 :(1) ユーザおよび PIPEインタフェース信号は、clk125_inに同期して動作します。

enhanced PLL の他の出力を他の目的のため、あるいは異なる位相または周波数と共に使用する場合は、125 MHzのリファレンス・クロック・モードを使用し、MegaCore ファンクションへの外部 100 ~ 125 MHzPLLを使用する必要があります。

Stratix GX PHY、125 MHzリファレンス・クロック

Stratix GX PHYを 125 MHzリファレンス・クロックと共に実装する場合は、refclk入力に 125 MHzクロックを供給しなければなりません。同じクロックが遅延なく clk125_out信号に供給されます。

clk125_out は、例えばアプリケーションで必要な分配回路を介して、clk125_in 入力に接続しなければなりません。このファンクションのユーザ・アプリケーション・インタフェースと PIPE インタフェースを含むすべてのインタフェースがclk125_in入力に同期して動作します。図 3-31を参照してください。

altpcie_64b_x4_pipen1b: Stratix GX 100 MHz

refclk

clk125_in

clk125_out

clk

All Logic in MegaCore Function

100-MHz Clock Source PLL

100 -> 125

inclkrx_cruclk

tx_coreclk

ALTGXB Transceiver

Page 124: PCI Express コンパイラ・ ユーザガイドPCI Express コンパイラ・ ユーザガイド MegaCore バージョン:6.1 ドキュメント・バージョン: 6.1 rev. 2 ドキュメント・デート:2006年12

3–84 PCI Express Compiler Version 6.1 Altera CorporationPCI Expressコンパイラ・ユーザガイド 2006年 12月

信号

図 3-31. Stratix GX PHY、125 MHzリファレンス・クロックのコンフィギュレーション (1)

図 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を参照してください。

altpcie_64b_x4_pipen1b: Stratix GX 125 MHz

refclk

clk125_in

clk125_out

clk

All Logic in MegaCore Function

125-MHz Clock Source

inclkrx_cruclk

tx_coreclk

ALTGXB Transceiver

Page 125: PCI Express コンパイラ・ ユーザガイドPCI Express コンパイラ・ ユーザガイド MegaCore バージョン:6.1 ドキュメント・バージョン: 6.1 rev. 2 ドキュメント・デート:2006年12

Altera Corporation PCI Express Compiler Version 6.1 3–852006年 12月 PCI Expressコンパイラ・ユーザガイド

仕様

図 3-32. Stratix GX PHY、156.25 MHzリファレンス・クロックのコンフィギュレーション (1)

図 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 を参照してください。

altpcie_64b_x4_pipen1b: Stratix GX 156.25 MHz

refclk

clk125_in

clk125_out

clk

All Logic in MegaCore Function

156.25-MHz Clock Source inclk

rx_cruclk

tx_coreclk

ALTGXB Transceiver

coreclk_out

Page 126: PCI Express コンパイラ・ ユーザガイドPCI Express コンパイラ・ ユーザガイド MegaCore バージョン:6.1 ドキュメント・バージョン: 6.1 rev. 2 ドキュメント・デート:2006年12

3–86 PCI Express Compiler Version 6.1 Altera CorporationPCI Expressコンパイラ・ユーザガイド 2006年 12月

信号

図 3-33. Stratix II GX PHYの ×1および ×4 100 MHzリファレンス・クロック

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 を参照してください。

altpcie_64b_x4_pipen1b: Stratix II GX (or x1)

refclk

clk125_in

clk125_out100-MHz

Clock Source

ALTGXB Transceiver

All Logic in MegaCore Function

clk

pll_inclk

coreclkout

User and PIPE interface signalsare synchronousto clk125_in

Page 127: PCI Express コンパイラ・ ユーザガイドPCI Express コンパイラ・ ユーザガイド MegaCore バージョン:6.1 ドキュメント・バージョン: 6.1 rev. 2 ドキュメント・デート:2006年12

Altera Corporation PCI Express Compiler Version 6.1 3–872006年 12月 PCI Expressコンパイラ・ユーザガイド

仕様

図 3-34. Stratix II GX PHYの ×8 100 MHzリファレンス・クロック

ユーティリティ信号

すべての PCI Express MegaCoreファンクションの信号の図については、3–52ページの図 3-12 を参照してください。

表 3–31では、ファンクションのグローバル信号について説明します。

altpcie_64b_x8_pipen1b: Stratix II GX

refclk

clk250_in

clk250_out100-MHz

Clock Source

ALTGXB Transceiver

All Logic in MegaCore Function

clk

pll_inclk

coreclkout

User and PIPE interface signalsare synchronousto clk250_in

表 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実装では、リファレンス・クロックでこの信号をドライブすることもできます。汎用 PIPEPHY実装では、PIPE PHYデバイスが供給する pclkは、通常 clk125_inをドライブします。この信号は ×8 MegaCoreファンクションにはありません。

clk125_out O ×1および×4 MegaCoreファンクション用出力クロック。Stratix GX PHY実装のrefclk入力から派生した 125 MHzクロック出力。汎用 PIPE PHY実装では、refclk入力がこの信号をドライブします。この信号は ×8 MegaCoreファンクションにはありません。

Page 128: PCI Express コンパイラ・ ユーザガイドPCI Express コンパイラ・ ユーザガイド MegaCore バージョン:6.1 ドキュメント・バージョン: 6.1 rev. 2 ドキュメント・デート:2006年12

3–88 PCI Express Compiler Version 6.1 Altera CorporationPCI Expressコンパイラ・ユーザガイド 2006年 12月

信号

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 O DL アップ脱出。この信号は DL_UP から DL_DOWN への遷移を示します。この信号は内部リセットのもう 1つのソースであり、crstおよび srst同期リセットのアサーションを引き起こす必要があります。この信号はアクティブ Lowです。

表 3–31.グローバル信号(2 /2)

信号 I/O 説明

Page 129: PCI Express コンパイラ・ ユーザガイドPCI Express コンパイラ・ ユーザガイド MegaCore バージョン:6.1 ドキュメント・バージョン: 6.1 rev. 2 ドキュメント・デート:2006年12

Altera Corporation PCI Express Compiler Version 6.1 3–892006年 12月 PCI Expressコンパイラ・ユーザガイド

仕様

図 3-35に、ファンクションのグローバル・リセット信号を示します。

図 3-35. ×1および ×4 MegaCoreファンクション用グローバル・リセット信号

×1および ×4 MegaCoreファンクションには、npor、srst、および crstの 3 つのリセット入力があります。npor は、内部ですべてのステッキー・レジスタ(L2低消費電力モードまたは基本的なリセットでリセットできないレジスタ)に使用されます。npor は通常、パワー・オン・リ セ ッ ト・ジ ェ ネ レ ー タ と PCI Express Card ElectromechanicalSpecificationで規定される perst信号との論理和で生成されます。

srst 信号は、データ・パス・ステート・マシンの同期リセットです。crst信号は、非ステッキー・コンフィギュレーション・スペース・レジスタの同期リセットです。srst および crst は、l2_exit、hotrst_exit、またはdlup_exit信号がアサートされるたびにアサートしなければなりません。

図 3-36に示すリセット・ブロックは、MegaCoreファンクションの一部として含まれておらず、実装固有のリセット生成方法にある程度の柔軟性を持たせています。

図 3-36に、ファンクションのグローバル・リセット信号を示します。

Other PowerOn Reset

PCI Express x1 or x4 MegaCore

Function

perst#npor

srstcrst

l2_exithotrst_exitdlup_exit

Page 130: PCI Express コンパイラ・ ユーザガイドPCI Express コンパイラ・ ユーザガイド MegaCore バージョン:6.1 ドキュメント・バージョン: 6.1 rev. 2 ドキュメント・デート:2006年12

3–90 PCI Express Compiler Version 6.1 Altera CorporationPCI Expressコンパイラ・ユーザガイド 2006年 12月

信号

図 3-36. ×8 MegaCoreファンクション用グローバル・リセット信号

×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ファンクションの一部として含まれておらず、実装固有のリセット生成方法にある程度の柔軟性を持たせています。

Other PowerOn Reset

PCI Expressx8 MegaCore

Function

perst#npor

rstn

l2_exithotrst_exitdlup_exit

Page 131: PCI Express コンパイラ・ ユーザガイドPCI Express コンパイラ・ ユーザガイド MegaCore バージョン:6.1 ドキュメント・バージョン: 6.1 rev. 2 ドキュメント・デート:2006年12

Altera Corporation PCI Express Compiler Version 6.1 3–912006年 12月 PCI Expressコンパイラ・ユーザガイド

仕様

表 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 パワー・マネージメント機能レジスタ。このレジスタは読み出し専用で、特定のファンクションのパワー・マネージメントに関する情報を提供します。

● 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

Data Register

31 24 23 16 012789131415 12

Reserved

PME_status

Data_scale

Data_select

PME_EN

Reserved

PM_state

Page 132: PCI Express コンパイラ・ ユーザガイドPCI Express コンパイラ・ ユーザガイド MegaCore バージョン:6.1 ドキュメント・バージョン: 6.1 rev. 2 ドキュメント・デート:2006年12

3–92 PCI Express Compiler Version 6.1 Altera CorporationPCI Expressコンパイラ・ユーザガイド 2006年 12月

信号

図 3-37に、エンドポイントにおける pme_to_srと pme_to_crの動作を示します。最初に、MegaCore ファンクションが PME_turn_off をメッセージを受信します。次に、アプリケーションはルート・ポートへの PME_to_ackメッセージの送信を試みます。

図 3-37. エンドポイントにおける pme_to_srおよび pme_to_crの波形

MSIおよび INTx割り込み信号

MegaCore ファンクションは、MSI(Message Signaled Interrupt)および INTx割り込みの両方をサポートします。MSI トランザクションはライト・トランザクション・レイヤ・パケットです。

表 3–33では、MegaCoreファンクションの割り込み信号について説明します。

pme_to_sr

pme_to_cr

1 2 3 4 5 6 7 8 9 10 11 12 13 14

Clock Cycles

15

表 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との間のオフセットを示すのに使用されます。

Page 133: PCI Express コンパイラ・ ユーザガイドPCI Express コンパイラ・ ユーザガイド MegaCore バージョン:6.1 ドキュメント・バージョン: 6.1 rev. 2 ドキュメント・デート:2006年12

Altera Corporation PCI Express Compiler Version 6.1 3–932006年 12月 PCI Expressコンパイラ・ユーザガイド

仕様

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: Reserved111: 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: Reserved111: Reserved

● cfg_msicsr[0]: MSI がイネーブル : 0 に設定されている場合、このコンポーネントはMSIを使用できません。

pex_msi_num[4:0] I パワー・マネージメントMSI番号。この信号はパワー・マネージメントおよび/またはホット・プラグで使用され、ベース・メッセージ割り込み番号と、MSIを通じて送信するメッセージ割り込み番号との間のオフセットを決定します。

app_int_sts I アプリケーション割り込みステータス。この信号は、アプリケーション割り込みのステータスを示します。この信号がアサートされると、INT# メッセージが生成され、int_statusレジスタ内でそのステータスが維持されます。

表 3–33.割り込み信号 (2 /2)

信号 I/O 説明

Page 134: PCI Express コンパイラ・ ユーザガイドPCI Express コンパイラ・ ユーザガイド MegaCore バージョン:6.1 ドキュメント・バージョン: 6.1 rev. 2 ドキュメント・デート:2006年12

3–94 PCI Express Compiler Version 6.1 Altera CorporationPCI Expressコンパイラ・ユーザガイド 2006年 12月

信号

図 3-38に、MSIハンドラ・ブロックのアーキテクチャを示します。

図 3-38. MSIハンドラ・ブロック

図 3-39に、ベクターごとのイネーブル・ビットを備えたMSIハンドラ・ブロックで可能な実装を示します。このベクターごとの MSI の代わりに、グローバル・アプリケーション割り込みイネーブルも実装できます。

図 3-39. MSIハンドラ・ブロックの実装例

MSI HandlerBlock

app_msi_reqapp_msi_ackapp_msi_tcapp_msi_numpex_msi_numapp_int_sts

cfg_msicsr[31:0]

app_int_en0

app_int_sts0

app_msi_req0

app_int_en1

app_int_sts1

app_msi_req1

app_int_sts

MSIArbitration

msi_enable & Master Enable

app_msi_req

app_msi_ack

Vector 1

Vector 0

R/W

R/W

Page 135: PCI Express コンパイラ・ ユーザガイドPCI Express コンパイラ・ ユーザガイド MegaCore バージョン:6.1 ドキュメント・バージョン: 6.1 rev. 2 ドキュメント・デート:2006年12

Altera Corporation PCI Express Compiler Version 6.1 3–952006年 12月 PCI Expressコンパイラ・ユーザガイド

仕様

32 の可能な MSI メッセージがあります。特定のコンポーネントが要求したメッセージ数と割り当てられたメッセージ数が必ずしも一致するとは限りません。例えば、図 3-40 では、エンドポイントは 8 つの MSI を要求していますが、割り当てられるメッセージは 2つだけです。この場合、アプリケーション・レイヤは、割り当てられた 2つのメッセージのみを使用するように設計しなければなりません。

図 3-40. MSIリクエストの例

図 3-41に、図 3-40のルート・ポート用MSI割り込み信号間のやりとりを示します。app_msi_reqと app_msi_ack間で可能な最小レイテンシは 1クロック・サイクルです。

図 3-41. MSI割り込み信号の波形

Endpoint

8 Requested2 Allocated

Root Complex

RootPort

InterruptBlock

CPU

Interrupt Register

app_msi_req

app_msi_tc[2:0]

app_msi_num[4:0]

app_msi_ack

1 2 3 4 5 6 7 8 9 10 11 12 13

Clock Cycles

Valid

Valid

Page 136: PCI Express コンパイラ・ ユーザガイドPCI Express コンパイラ・ ユーザガイド MegaCore バージョン:6.1 ドキュメント・バージョン: 6.1 rev. 2 ドキュメント・デート:2006年12

3–96 PCI Express Compiler Version 6.1 Altera CorporationPCI Expressコンパイラ・ユーザガイド 2006年 12月

信号

表 3–34では 3つの実装例について説明します。1つの実装例では 32のすべてのMSIメッセージが割り当てられ、2つの実装例では 4つのメッセージのみ割り当てられています。

ホット・プラグ、パワー・マネージメント・イベント、およびシステム・エラーに対して生成されるMSIは、常に TC0を使用します。アプリケーション・レイヤで生成されるMSIは、どのトラフィック・クラスでも使用できます。例えば、送信終了時にMSIを生成する DMAは、データ転送に使用されたのと同じトラフィック・コントロールを使用することができます。

表 3–34.要求され、割り当てられ、マッピングされるMSIメッセージ

MSI割り当て

32 4 4

システム・エラー 31 3 3

ホット・プラグおよびパワー・マネージメント・イベント

30 2 3

アプリケーション 29:0 1:0 2:0

Page 137: PCI Express コンパイラ・ ユーザガイドPCI Express コンパイラ・ ユーザガイド MegaCore バージョン:6.1 ドキュメント・バージョン: 6.1 rev. 2 ドキュメント・デート:2006年12

Altera Corporation PCI Express Compiler Version 6.1 3–972006年 12月 PCI Expressコンパイラ・ユーザガイド

仕様

コンフィギュレーション・スペース信号

表 3–35の信号は、アプリケーション・レイヤがアクセスする必要がある複数のコンフィギュレーション・スペース・レジスタの現在の値を反映しています。

表 3–35.コンフィギュレーション・スペース信号

信号 I/O 説明cfg_tcvcmap[23: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に対するマッピング

cfg_busdev[12:0] O コンフィギュレーション・バス・デバイス : この信号は、各トランザクション・レイヤ・パケットのトランザクション 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 コンフィギュレーション・リンク・コントロール・ステータス・レジスタ。詳しくは、PCI Express Specificationsを参照してください。

Page 138: PCI Express コンパイラ・ ユーザガイドPCI Express コンパイラ・ ユーザガイド MegaCore バージョン:6.1 ドキュメント・バージョン: 6.1 rev. 2 ドキュメント・デート:2006年12

3–98 PCI Express Compiler Version 6.1 Altera CorporationPCI Expressコンパイラ・ユーザガイド 2006年 12月

信号

コンプリーション・インタフェース信号

表 3–36に、ファンクションのコンプリーション・インタフェース信号を示します。

表 3–36.コンプリーション・インタフェース信号

信号 I/O 説明cpl_err[2:0] I コンプリーション・エラー : この信号はコンフィギュレーション・スペースにコンプ

リーション・エラーをレポートします。アプリケーション・レイヤがレポートしなければならないエラーのタイプは以下の 3つです。

● コンプリーション・タイム・アウト・エラー : 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]: この信号はマスタ・ブロックが予期しないコンプリーション・トランザクション(すなわち、特定のパケットを待っているコンプリーション・リソースがない)を検出した場合にアサートしなければなりません。

cpl_pending I コンプリーション・ペンディング : アプリケーション・レイヤは、マスタ・ブロックがコンプリーションを待っている(すなわち、トランザクションが待ち状態にある)場合にこの信号をアサートしなければなりません。この信号がアサートされ、低消費電力モードが要求された場合、MegaCoreファンクションは、ロー・パワー・ステートに移行する前に、この信号がデアサートされるのを待ちます。

Page 139: PCI Express コンパイラ・ ユーザガイドPCI Express コンパイラ・ ユーザガイド MegaCore バージョン:6.1 ドキュメント・バージョン: 6.1 rev. 2 ドキュメント・デート:2006年12

Altera Corporation PCI Express Compiler Version 6.1 3–992006年 12月 PCI Expressコンパイラ・ユーザガイド

仕様

最大コンプリーション・スペース信号

表 3–37に、最大コンプリーション・スペース信号を示します。

alt2gxbサポート信号

この項では、Stratix II GX統合型 PHYである ALT2GXBを使用するバリアントにのみ存在する alt2gxb サポート信号について説明します。これらの信号は ALT2GXB インスタンスに直接接続されます。多くの場合、これらの信号は、同じデバイスに実装される ALT2GXBインスタンスと共有する必要があります。以下の信号があります。

■ cal_blk_clk ■ reconfig_clk ■ reconfig_togxb■ reconfig_fromgxb

表 3–37.最大コンプリーション・スペース信号

信号 I/O 説明ko_cpl_spc_vcn[19:0]ここで、nは ×1および ×4コアの場合は 0~ 3、×8コアの場合は 0~ 1。

O このスタティック信号は、コンプリーション・ヘッダおよびデータのために予約された 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リクエストの数とサイズを制限する必要があります。

Page 140: PCI Express コンパイラ・ ユーザガイドPCI Express コンパイラ・ ユーザガイド MegaCore バージョン:6.1 ドキュメント・バージョン: 6.1 rev. 2 ドキュメント・デート:2006年12

3–100 PCI Express Compiler Version 6.1 Altera CorporationPCI Expressコンパイラ・ユーザガイド 2006年 12月

信号

表 3–38では、これらの alt2gxbサポート信号について説明します。

表 3–38. alt2gxbサポート信号

信号 I/O 説明cal_blk_clk 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 に接続することができます。この信号は、PCIExpressインスタンスが Stratix II GXトランシーバのクワッドを、ダイナミック・リコンフィギュレーションをサポートする別のプロトコルと共有する場合に提供されます。これらのケースでは、この信号は「Stratix II GX デバイス・ハンドブック」に記載されているとおり接続しなければなりません。

reconfig_togxb I reconfig_togxb[2:0]入力バスは、ALT2GXBダイナミック・リコンフィギュレーション・データ入力です。ALT2GXBダイナミック・リコンフィギュレーションは、PCI Express に対してはサポートされていません。したがって、このバスは通常、デザインで「010」に接続することができます。このバスは、PCI Expressインスタンスが Stratix II GXトランシーバのクワッドを、ダイナミック・リコンフィギュレーションをサポートする別のプロトコルと共有する場合に提供されます。これらのケースでは、この信号は「Stratix IIGXデバイス・ハンドブック」に記載されているとおり接続しなければなりません。

reconfig_fromgxb O reconfig_fromgxb出力信号は、ALT2GXBダイナミック・リコンフィギュレーション・データ出力です。ALT2GXBダイナミック・リコンフィギュレーションは、PCI Expressに対してはサポートされていません。したがって、この出力信号はデザインでは未接続のままにしておくことができます。この信号は、PCI Expressインスタンスが Stratix II GXトランシーバのクワッドを、ダイナミック・リコンフィギュレーションをサポートする別のプロトコルと共有する場合に提供されます。これらのケースでは、この信号は「Stratix IIGXデバイス・ハンドブック」に記載されているとおり接続しなければなりません。

Page 141: PCI Express コンパイラ・ ユーザガイドPCI Express コンパイラ・ ユーザガイド MegaCore バージョン:6.1 ドキュメント・バージョン: 6.1 rev. 2 ドキュメント・デート:2006年12

Altera Corporation PCI Express Compiler Version 6.1 3–1012006年 12月 PCI Expressコンパイラ・ユーザガイド

仕様

物理レイヤ・インタフェース信号

この項では、可能な 3種類の物理的インタフェース(1ビット、20ビット、または PIPE)用の信号について説明します。すべての PCI ExpressMegaCoreファンクションの信号の図については、3–52ページの図 3-12を参照してください。

シリアル・インタフェース信号

表 3–39では、シリアル・インタフェース信号について説明します。表に示したように、レーン 1 ~ 7 用の信号もあります。これらの信号は、Stratix GX PHYまたは Stratix II GX PHYを使用している場合に利用可能です。

表 3–39. 1ビット・インタフェース信号

信号 I/O 説明tx_outnここで、n は 0 ~ 7 のレーン番号です。

O 送信入力 0。この信号はレーン 0のシリアル出力です(差動信号で 2.5 Gpbs)。

rx_innここで、n は 0 ~ 7 のレーン番号です。

I 受信入力 0。この信号はレーン 0のシリアル入力です(差動信号で 2.5 Gpbs)。

pipe_mode I pipe_modeは、MegaCoreファンクションがPIPEインタフェースまたは1ビット・インタフェースのいずれを使用するかを選択します。pipe_modeを 1に設定すると PIPE インタフェースが選択され、0 に設定すると 1 ビット・インタフェースが選択されます。シミュレーション時に、この信号を設定してどちらのインタフェースをシミュレーションに使用するかを示すことができます。デザインをアルテラのデバイス用にコンパイルするときには、この信号を 0に設定します。

Page 142: PCI Express コンパイラ・ ユーザガイドPCI Express コンパイラ・ ユーザガイド MegaCore バージョン:6.1 ドキュメント・バージョン: 6.1 rev. 2 ドキュメント・デート:2006年12

3–102 PCI Express Compiler Version 6.1 Altera CorporationPCI Expressコンパイラ・ユーザガイド 2006年 12月

信号

PIPEインタフェース信号

×1および×4 MegaCoreファンクションは、PIPEインタフェースの16ビット・バージョンに準拠しており、外部 PHY の使用が可能です。 ×8MegaCore ファンクションは、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] です。×8MegaCore ファンクションまたは 8 ビット PIPE モードの場合、txdata0_ext[7:0]のみ使用できます。

txdatakn_ext[1:0](1)

O 送信データ・コントロール 0(レーン 0で 2つのシンボル) この信号は、txdatan_ext(最初に送信されるシンボル用のtxdatakn_ext[0]および 2 番目送信されるシンボル(8b/10b エンコーディング)用のtxdatakn_ext[1])のコントロール・ビットとして機能します。×8MegaCore ファンクションまたは 8 ビット PIPE モードの場合、シングル・ビット信号 txdatakn_extのみ使用できます。

txdetectrxn_ext(1)

O 送信検出受信 0。この信号は、PHYレイヤに受信検出動作またはループバックの開始を指示するのに使用されます。

txelecidlen_ext(1)

O 送信電気的アイドル 0。この信号は、送信出力を強制的に電気的アイドルにします。

txcompln_ext(1)

O 送信コンプライアンス 0。この信号は、コンプライアンス・モードでのランニング・ディスパリティを強制的に負にします(負の COM キャラクタ)。

rxpolarityn_ext(1)

O 受信極性 0。この信号は PHY レイヤに、8b/10b レシーバ・デコーディング・ブロックでの極性反転の実行を指示します。

powerdownn_ext[1:0](1)

O パワーダウン 0。この信号は、PHYにそのパワー・ステートを指定されたステート(P0、P0s、P1、または P2に変更するよう要求します。

rxdatan_ext[15:0](1)

I 受信データ 0(レーン 0の 2つのシンボル) このバスはレーン 0でデータを受信します。最初に受信したシンボルは rxdatan_ext[7:0] で、2番目に受信したシンボルはrxdatan_ext[15:8]です。×8 MegaCoreファンクションまたは 8ビット PIPEモードでは、rxdatan_ext[7:0]のみ使用可能です。

Page 143: PCI Express コンパイラ・ ユーザガイドPCI Express コンパイラ・ ユーザガイド MegaCore バージョン:6.1 ドキュメント・バージョン: 6.1 rev. 2 ドキュメント・デート:2006年12

Altera Corporation PCI Express Compiler Version 6.1 3–1032006年 12月 PCI Expressコンパイラ・ユーザガイド

仕様

rxdatakn_ext[1:0](1)

I 受信データ・コントロール 0(レーン 0の 2つのシンボル) この信号は、コントロール・シンボルとデータ・シンボルを区別するために使用されます。最初に受信したシンボルは rxdatakn_ext[0] に揃えられ、2番目に受信したシンボルは rxdatan_ext[1] に揃えられます。×8MegaCore ファンクションまたは 8 ビット PIPE モードの場合、シングル・ビット信号 rxdatakn_extのみ使用できます。

rxvalidn_ext(1)

I 受信有効 0。このシンボルは、rxdatan_ext および rxdatakn_extでのシンボル・ロックおよび有効データを示します。

phystatusn_ext(1)

I PHY ステータス 0。この信号は複数の PHY 要求のコンプリーションを伝えるのに使用されます。

rxelecidlen_ext(1)

I 受信電気的アイドル 0。この信号は、受信出力を強制的に電気的アイドルにします。

rxstatusn_ext[2:0](1)

I 受信ステータス 0: この信号は受信データ・ストリームおよびレシーバ検出に対する受信ステータスとエラー・コードをエンコードします。

pipe_rstn O 外部 PHYへの非同期リセット。これは Highに接続され、ボードにプルダウン抵抗が必要です。FPGA のコンフィギュレーション時に、プルダウン抵抗が PHYをリセットし、その後 FPGAが PHYをリセットからドライブ・アウトします。この信号は外部 PHYにコンフィギュレーションされたMegaCoreファンクションにのみ存在します。

pipe_txclk O 外部 PHY への送信データ・パス・クロック。このクロックは refclkから派生し、PHYの送信データ用ソース・シンクロナス・クロックを供給します。

表 3–40の注 :(1) ここで、nは 0~ 7のレーン番号です。

表 3–40. PIPEインタフェース信号 (2 /2)

信号 I/O 説明

Page 144: PCI Express コンパイラ・ ユーザガイドPCI Express コンパイラ・ ユーザガイド MegaCore バージョン:6.1 ドキュメント・バージョン: 6.1 rev. 2 ドキュメント・デート:2006年12

3–104 PCI Express Compiler Version 6.1 Altera CorporationPCI Expressコンパイラ・ユーザガイド 2006年 12月

信号

テスト信号

表 3–40では、使用できるテスト信号について説明します。

表 3–41.テスト・インタフェース信号

信号 I/O 説明test_in[31:0] I test_inバスは、特定のMegaCore機能とエラー・インジェクション機

能用のランタイム・コントロールを提供します。このバスの個々のビットについて詳しくは、付録 C.テスト・ポート・ インタフェース信号を参照してください。通常動作の場合、このバスはすべての 0にドライブすることができます。

×1または ×4の場合はtest_out[511:0]、×8の場合はtest_out[127:0]

O test_outバスでは、MegaCoreファンクションの内部ステートを幅広くモニタリングすることができます。このバスの個々のビットについて詳しくは、付録 C.テスト・ポート・ インタフェース信号を参照してください。通常動作の場合、このバスは未接続のままにしておくことができます。

Page 145: PCI Express コンパイラ・ ユーザガイドPCI Express コンパイラ・ ユーザガイド MegaCore バージョン:6.1 ドキュメント・バージョン: 6.1 rev. 2 ドキュメント・デート:2006年12

Altera Corporation PCI Express Compiler Version 6.1 3–1052006年 12月 PCI Expressコンパイラ・ユーザガイド

仕様

MegaCore検証

アルテラは、PCI Express への準拠を確実にするために、PCI ExpressMegaCore ファンクションの徹底した妥当性検査を実行しました。検査にはシミュレーションおよびハードウェア・テストの両方が含まれます。

シミュレーション環境

アルテラの PCI Express MegaCore ファンクション用検証シミュレーション環境では、PCI Express リンク・インタフェースをドライブする業界標準のバス・ファンクション・モデルで構成される複数のテストベンチを使用します。カスタムのバス・ファンクション・モデルは、アプリケーション側インタフェースに接続します。

アルテラはシミュレーション環境で以下のテストを実施しました。

■ トランザクション・レイヤ・パケットのすべてのタイプとサイズ、およびコンフィギュレーション・スペースの全ビットをテストする指定テスト

■ リンク、トランザクション・レイヤ・パケット、データ・リンク・レイヤ・パケットのエラー・インジェクション・テスト。MegaCoreファンクションからの正しい応答をチェックするエラー・インジェクション・テスト

■ チェックリストの項目を特にテストする PCI-SIG ComplianceChecklistテスト

■ 1本または複数のバーチャル・チャネルでの広範なトラフィック・パターンをテストするランダム・テスト

互換性テストの環境

アルテラは、信頼性の高いソリューションを実現するために、PCIExpress MegaCore ファンクションについて膨大なハードウェア・テストを実行しました。MegaCore ファンクションは、2005 年と 2006 年のPCI-SIGのPCI Express Specificationに準拠したさまざまなワークショップで、Stratix II GXおよび多様な外部 PHYと共にテストされ、すべてのPCI-SIG ゴールド・テストと幅広いマザーボードおよびテスト装置との相互運用性テストに合格しました。さらに、アルテラはさまざまなメーカのマザーボードとスイッチ・チップにより、すべてのリリース製品の自社テストを行っています。各リリースで PCI-SIG準拠テストも実施しています。

Page 146: PCI Express コンパイラ・ ユーザガイドPCI Express コンパイラ・ ユーザガイド MegaCore バージョン:6.1 ドキュメント・バージョン: 6.1 rev. 2 ドキュメント・デート:2006年12

3–106 PCI Express Compiler Version 6.1 Altera CorporationPCI Expressコンパイラ・ユーザガイド 2006年 12月

MegaCore 検証

Page 147: PCI Express コンパイラ・ ユーザガイドPCI Express コンパイラ・ ユーザガイド MegaCore バージョン:6.1 ドキュメント・バージョン: 6.1 rev. 2 ドキュメント・デート:2006年12

Altera Corporation PCI Express Compiler Version 6.1 4–12006年 12月

4. 外部 PHY

外部 PHYのサポート

この章では、表 4–1に示す新しい外部 PHYとインタフェース・モードを含む外部 PHYのサポートについて説明します。

外部PHYを選択すると、外部PHYに直接接続するのに必要な追加ロジックが<バリエーション名>モジュールまたはエンティティに含まれます。

ユーザ・ロジックは、このモジュールまたはエンティティをデザイン内でインスタンス化しなければなりません。これらのモードのそれぞれの実装の詳細については、以下の項で説明します。

表 4–1.外部 PHYインタフェース・モード

PHYインタフェース・モード クロック周波数 注

16 ビット SDR 125 MHz この汎用 16 ビット PIPEインタフェースでは、Txおよび Rxデータが PHYからの pclkでクロックされます。

16 ビット SDRモード(ソース・シンクロナス送信クロック付き)

125 MHz この汎用 PIPE インタフェースへの拡張機能は、TxData ソースを同期的にクロックするためのTxClkを外部 PHYに追加します。TIXIO1100 PHYはこのモードを使用します。

8 ビット DDR 125 MHz このダブル・データ・レート・バージョンは、クロック周波数を上げないで I/Oピンを節約します。PHYからの 1つの pclkを使用して、データを双方向にクロックします。

8 ビット DDRモード(8 ビット DDRソース・シンクロナス送信クロック付き)

125 MHz このダブル・データ・レート・バージョンは、クロック周波数を上げないで I/Oピンを節約します。TxClk は、データ・ソースを送信方向に同期的にクロックします。TIXIO1100 Phyはこのモードを使用します。

8 ビット SDR 250 MHz これは汎用 8 ビット PIPEインタフェースです。Txデータと Rxデータの両方が PHYからの pclkでクロックされます。Philips社の PX1011APHYはこのモードを使用しています。

8 ビット SDR モード(ソース・シンクロナス送信クロック付き)

250 MHz この汎用 PIPE インタフェースへの拡張機能は、TxData ソースを同期的にクロックするためのTxClkを外部 PHYに追加します。

Page 148: PCI Express コンパイラ・ ユーザガイドPCI Express コンパイラ・ ユーザガイド MegaCore バージョン:6.1 ドキュメント・バージョン: 6.1 rev. 2 ドキュメント・デート:2006年12

4–2 PCI Express Compiler Version 6.1 Altera CorporationPCI Expressコンパイラ・ユーザガイド 2006年 12月

外部 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/PCIExpress Compiler/libディレクトリからユーザのプロジェクト・ディレクトリにコピーします。次に、Quartus IIソフトウェアのMegaWizard Plug In Mangerを使用して PLLソース・ファイルを編集し、必要な位相シフトを設定します。次に、変更された PLL ソース・ファイルをユーザの Quartus IIプロジェクトに追加します。

■ tlp_clk62p5は、MegaCoreの内部クロック周波数が62.5 MHzのときに MegaCore ファンクションの tlp_clk 入力をドライブする62.5 MHz出力です。

Page 149: PCI Express コンパイラ・ ユーザガイドPCI Express コンパイラ・ ユーザガイド MegaCore バージョン:6.1 ドキュメント・バージョン: 6.1 rev. 2 ドキュメント・デート:2006年12

Altera Corporation PCI Express Compiler Version 6.1 4–32006年 12月 PCI Expressコンパイラ・ユーザガイド

外部 PHY

図 4-1. 16 ビット SDRモード

ソース・シンクロナス TxClk付き 16 ビット SDRモード

ソース・シンクロナス TxClk付き 16 ビット SDRモードの実装は、図 4–2に示してあり、ファイル <バリエーション名 >.vまたは <バリエーション名 >.vhdに含まれています。このモードでは、以下のクロッキング方式が使用されます。

■ refclkは、コア用の clk125_inとして使用されます。

■ refclkは、着信データ用のシングル・データ・レート・レジスタをクロックします。

■ refclkは、送信データ・レジスタ(txdata)を直接クロックします。

A

D

Q1

Q4

ENB

refclk

rxdata

A

D

Q 1

Q 4

ENB

txdata

125Mhz SDR Mode without txclk

A

D

Q1

Q4

ENB

PCIe IP MegaCore

Mode 1PLL tlp_clk_62p5

clk125_out

refclk clk125_out

clk125_in

clk125_in

A

D

Q1

Q4

ENB

External connection in user logic

tlp_clkclk125_early

Page 150: PCI Express コンパイラ・ ユーザガイドPCI Express コンパイラ・ ユーザガイド MegaCore バージョン:6.1 ドキュメント・バージョン: 6.1 rev. 2 ドキュメント・デート:2006年12

4–4 PCI Express Compiler Version 6.1 Altera CorporationPCI Expressコンパイラ・ユーザガイド 2006年 12月

外部 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

A

D

Q1

Q4

ENB

DDIO

txclk (~refclk)

A

D

Q1

Q4

ENB

refclk

rxdata

A

D

Q 1

Q 4

ENB

txdata A

D

Q1

Q4

ENB PCIe IP MegaCore

clk125_out

refclk clk125_out

ck125_in

clk125_in

External connection in user logic

tlp_clk

Page 151: PCI Express コンパイラ・ ユーザガイドPCI Express コンパイラ・ ユーザガイド MegaCore バージョン:6.1 ドキュメント・バージョン: 6.1 rev. 2 ドキュメント・デート:2006年12

Altera Corporation PCI Express Compiler Version 6.1 4–52006年 12月 PCI Expressコンパイラ・ユーザガイド

外部 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 MHzDDR出力に使用すると、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 ビット出力レジスタ内に正しく順序付けされます。

Page 152: PCI Express コンパイラ・ ユーザガイドPCI Express コンパイラ・ ユーザガイド MegaCore バージョン:6.1 ドキュメント・バージョン: 6.1 rev. 2 ドキュメント・デート:2006年12

4–6 PCI Express Compiler Version 6.1 Altera CorporationPCI Expressコンパイラ・ユーザガイド 2006年 12月

外部 PHYのサポート

図 4-3. 8 ビット DDRモード

ソース・シンクロナス 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のゼロ遅延コピー。

clk125_in

rxdata

8-bit DDR without txclk

Edge Detect and Sync

0

0

0

0

0

txdata_h

txdata_l

A

D

Q1

Q4

ENB

txdata

PCIe IP MegaCore

A

D

Q1

Q4

ENB

DDIO

Mode 3PLL tlp_clk

clk250_early

clk125_out

refclk

Clk125_pll_in

clk125_out

refclk

clk125_in

Tlp_clkt

A

D

Q1

Q4

ENB

External connection in user logic

out txclk

Page 153: PCI Express コンパイラ・ ユーザガイドPCI Express コンパイラ・ ユーザガイド MegaCore バージョン:6.1 ドキュメント・バージョン: 6.1 rev. 2 ドキュメント・デート:2006年12

Altera Corporation PCI Express Compiler Version 6.1 4–72006年 12月 PCI Expressコンパイラ・ユーザガイド

外部 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モード

clk125_in

rxdata

8-bit DDR Mode with txclk

Edge Detect and Sync

0

0

0

0

0

txdata_h

txdata_l

A

D

Q 1

Q 4

ENB

txdata

A

D

Q 1

Q 4

ENB

txclk

PCIe IP MegaCore

A

D

Q1

Q4

ENB

DDIO

Mode 3PLL tlp_clk

clk250_early

clk125_out

pclk

clk125_out

refclk

clk125_in

tlp_clk

A

D

Q 1

Q 4

ENB

External connection in user logic

Page 154: PCI Express コンパイラ・ ユーザガイドPCI Express コンパイラ・ ユーザガイド MegaCore バージョン:6.1 ドキュメント・バージョン: 6.1 rev. 2 ドキュメント・デート:2006年12

4–8 PCI Express Compiler Version 6.1 Altera CorporationPCI Expressコンパイラ・ユーザガイド 2006年 12月

外部 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 ExpressCompiler/lib ディレクトリからユーザのプロジェクト・ディレクトリにコピーします。次に、Quartus II ソフトウェアの MegaWizardPlug In Mangerを使用して PLLソース・ファイルを編集し、必要な位相シフトを設定します。次に、変更された PLL ソース・ファイルをユーザの Quartus IIプロジェクトに追加します。

■ ×1の実装のために、オプションの 62.5 MHz TLP低速クロックが提供されます。

エッジ検出回路を使用して 125 MHzクロックと 250 MHzの立ち上がりエッジの関係が検出され、16 ビット・データが 8 ビット出力レジスタ内に正しく順序付けされます。

Page 155: PCI Express コンパイラ・ ユーザガイドPCI Express コンパイラ・ ユーザガイド MegaCore バージョン:6.1 ドキュメント・バージョン: 6.1 rev. 2 ドキュメント・デート:2006年12

Altera Corporation PCI Express Compiler Version 6.1 4–92006年 12月 PCI Expressコンパイラ・ユーザガイド

外部 PHY

図 4-5. 8 ビット SDRモード

ソース・シンクロナス TxClk付き 8 ビット SDR

ソース・シンクロナス TxClk付き 16 ビット SDRモードの実装は、図 4-6に示してあり、ファイル <バリエーション名 >.vまたは <バリエーション名 >.vhdに含まれており、PLLを含みます。PLLの inclockは、refclk(外部 PHY からの pclk)によってドライブされ、以下の 3つの出力を備えています。

■ 250 MHz refclkから派生した125 MHzの出力。この125 MHzのPLL出力は、MegaCoreファンクション用の clk125_inとして使用されます。

■ refclkよりも早くスキューされた250 MHzの「早期」クロック出力。250 MHzの早期クロック PLL出力は、8 ビット SDR送信データ出力レジスタをクロックするために使用されます。

clk125_in

A

D

Q1

Q4

ENB

refclk (250 Mhz)

rxdata

250Mhz SDR Mode

Edge Detect and Sync

0

0

0

0

0

txdata_h

txdata_l

A

D

Q1

Q4

ENB

txdata

PCIe IP MegaCore

A

D

Q1

Q4

ENB

A

D

Q1

Q4

ENB

rxdata_h

rxdata_l

Mode 4PLL

tlp_clk

clk250_early

clk125_out

A

D

Q1

Q4

ENB

A

D

Q1

Q4

ENB

A

D

Q1

Q4

ENB

clk125_in

tlp_clk

refclkExternal connection in user logic

Page 156: PCI Express コンパイラ・ ユーザガイドPCI Express コンパイラ・ ユーザガイド MegaCore バージョン:6.1 ドキュメント・バージョン: 6.1 rev. 2 ドキュメント・デート:2006年12

4–10 PCI Express Compiler Version 6.1 Altera CorporationPCI Expressコンパイラ・ユーザガイド 2006年 12月

外部 PHYのサポート

■ ×1の実装のために、オプションの 62.5 MHz TLP低速クロックが提供されます。

エッジ検出回路を使用して 125 MHzクロックと 250 MHzの立ち上がりエッジの関係が検出され、16 ビット・データが 8 ビット出力レジスタ内に正しく順序付けされます。

図 4-6. ソース・シンクロナス送信クロック付き 8 ビット SDRモード

A

D

Q1

Q4

ENB

refclk (250 Mhz)

rxdata

250Mhz SDR Mode with txclk

Edge Detect and Sync

0

0

0

0

0

txdata_h

txdata_l

A

D

Q1

Q4

ENB

txdata

txclk

PCIe IP MegaCore

A

D

Q1

Q4

ENB

A

D

Q 1

Q 4

ENB

rxdata_h

rxdata_l

Mode 4PLL

clk125_zero

tlp_clkclk250_early

clk125_out

A

D

Q1

Q4

ENB

A

D

Q1

Q4

ENB

A

D

Q1

Q4

ENB

External connection in user logic

clk125_in

refclk

tlp_clk

Page 157: PCI Express コンパイラ・ ユーザガイドPCI Express コンパイラ・ ユーザガイド MegaCore バージョン:6.1 ドキュメント・バージョン: 6.1 rev. 2 ドキュメント・デート:2006年12

Altera Corporation PCI Express Compiler Version 6.1 4–112006年 12月 PCI Expressコンパイラ・ユーザガイド

外部 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極性反転制御 ×4のみrxstatus1_ext[1:0] 入力 PIPEインタフェース・レーン 1 Rxステータス・フラグ ×4のみ

Page 158: PCI Express コンパイラ・ ユーザガイドPCI Express コンパイラ・ ユーザガイド MegaCore バージョン:6.1 ドキュメント・バージョン: 6.1 rev. 2 ドキュメント・デート:2006年12

4–12 PCI Express Compiler Version 6.1 Altera CorporationPCI Expressコンパイラ・ユーザガイド 2006年 12月

外部 PHYのサポート

rxvalid1_ext 入力 PIPEインタフェース・レーン 1 Rxデータ有効表示 ×4のみ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のみrxpolarity2_ext 出力 PIPEインタフェース・レーン 2 Rx極性反転制御 ×4のみrxstatus2_ext[1:0] 入力 PIPEインタフェース・レーン 2 Rxステータス・フラグ ×4のみrxvalid2_ext 入力 PIPEインタフェース・レーン 2 Rxデータ有効表示 ×4のみ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のみrxpolarity3_ext 出力 PIPEインタフェース・レーン 3 Rx極性反転制御 ×4のみrxstatus3_ext[1:0] 入力 PIPEインタフェース・レーン 3 Rxステータス・フラグ ×4のみrxvalid3_ext 入力 PIPEインタフェース・レーン 3 Rxデータ有効表示 ×4のみ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–2. 16 ビット PHYインタフェース信号(2 /2)

信号名 方向 説明 可用性

Page 159: PCI Express コンパイラ・ ユーザガイドPCI Express コンパイラ・ ユーザガイド MegaCore バージョン:6.1 ドキュメント・バージョン: 6.1 rev. 2 ドキュメント・デート:2006年12

Altera Corporation PCI Express Compiler Version 6.1 4–132006年 12月 PCI Expressコンパイラ・ユーザガイド

外部 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のみ

Page 160: PCI Express コンパイラ・ ユーザガイドPCI Express コンパイラ・ ユーザガイド MegaCore バージョン:6.1 ドキュメント・バージョン: 6.1 rev. 2 ドキュメント・デート:2006年12

4–14 PCI Express Compiler Version 6.1 Altera CorporationPCI Expressコンパイラ・ユーザガイド 2006年 12月

外部 PHYのサポート

rxstatus1_ext[1:0] 入力 PIPEインタフェース・レーン 1 Rxステータス・フラグ ×4のみrxvalid1_ext 入力 PIPEインタフェース・レーン 1 Rxデータ有効表示 ×4のみtxcompl1_ext 出力 PIPEインタフェース・レーン 1 Txコンプライアンス制御 ×4のみtxdata1_ext[7:0] 出力 PIPE インタフェース・レーン 1 Tx データ信号。パラレ

ル送信データを転送する。×4のみ

txdatak1_ext 出力 PIPEインタフェース・レーン 1 Txデータ K記号フラグ ×4のみtxelecidle1_ext 出力 PIPEインタフェース・レーン 1 Tx電気的アイドル制御 ×4のみ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のみ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のみtxelecidle2_ext 出力 PIPEインタフェース・レーン 2 Tx電気的アイドル制御 ×4のみ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のみrxvalid3_ext 入力 PIPEインタフェース・レーン 3 Rxデータ有効表示 ×4のみ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のみ

表 4–3. 8 ビット PHYインタフェース信号(2 /2)

信号名 方向 説明 可用性

Page 161: PCI Express コンパイラ・ ユーザガイドPCI Express コンパイラ・ ユーザガイド MegaCore バージョン:6.1 ドキュメント・バージョン: 6.1 rev. 2 ドキュメント・デート:2006年12

Altera Corporation PCI Express Compiler Version 6.1 4–152006年 12月 PCI Expressコンパイラ・ユーザガイド

外部 PHY

外部 PHYの選択

パラメータ設定のプロセスで表示される Systems Settingページから、外部 PHYを選択します。次の 2つの選択肢が用意されています。

■ 的確な PHYを選択します。■ PHYへのインタフェースのタイプを選択します。いくつかの PHYは複数のインタフェース・モードを備えています。

Custom オプションを選択することにより、サポートされている任意のインタフェースを選択できます。図 4–4 に、外部 PHY を選択するための Systems Settingページを示します。

図 4-7. パラメータ化時の外部 PHYの選択

Page 162: PCI Express コンパイラ・ ユーザガイドPCI Express コンパイラ・ ユーザガイド MegaCore バージョン:6.1 ドキュメント・バージョン: 6.1 rev. 2 ドキュメント・デート:2006年12

4–16 PCI Express Compiler Version 6.1 Altera CorporationPCI Expressコンパイラ・ユーザガイド 2006年 12月

外部 PHY制約のサポート

表 4–4 に PHY サポート・マトリックスを示します。サポートされているすべての PHY タイプとインタフェースについて、この表には許容されるレーン幅が記載されています。

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–4.外部 PHYのサポート・マトリックス

PHYタイプ 許容されるインタフェースおよびレーン

16 ビットSDR(pclkのみ)

16 ビットSDR(w/TxClk)

8 ビットDDR(pclkのみ)

8 ビットDDR(w/TxClk)

8 ビットSDR(pclkのみ)

8 ビットSDR(w/TxClk)

シリアルインタフェース

Stratix GX - - - - - - ×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 -

Page 163: PCI Express コンパイラ・ ユーザガイドPCI Express コンパイラ・ ユーザガイド MegaCore バージョン:6.1 ドキュメント・バージョン: 6.1 rev. 2 ドキュメント・デート:2006年12

Altera Corporation PCI Express Compiler Version 6.1 4–172006年 12月 PCI Expressコンパイラ・ユーザガイド

外部 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 プロジェクトに追加します。

Page 164: PCI Express コンパイラ・ ユーザガイドPCI Express コンパイラ・ ユーザガイド MegaCore バージョン:6.1 ドキュメント・バージョン: 6.1 rev. 2 ドキュメント・デート:2006年12

4–18 PCI Express Compiler Version 6.1 Altera CorporationPCI Expressコンパイラ・ユーザガイド 2006年 12月

外部 PHY制約のサポート

Page 165: PCI Express コンパイラ・ ユーザガイドPCI Express コンパイラ・ ユーザガイド MegaCore バージョン:6.1 ドキュメント・バージョン: 6.1 rev. 2 ドキュメント・デート:2006年12

Altera Corporation PCI Express Compiler Version 6.1 5–12006年 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つをサンプルとして使用し、テストベンチのテスト・ドライバ・モジュールを簡単に変更して、提供されたデザイン例のアプリケーション・レイヤ・ロジックの代わりに、ユーザ独自のアプリケーション・レイヤ・デザインを使用することができます。テスト

Page 166: PCI Express コンパイラ・ ユーザガイドPCI Express コンパイラ・ ユーザガイド MegaCore バージョン:6.1 ドキュメント・バージョン: 6.1 rev. 2 ドキュメント・デート:2006年12

5–2 PCI Express Compiler Version 6.1 Altera CorporationPCI Expressコンパイラ・ユーザガイド 2006年 12月

ベンチとルート・ポート BFMデザインは、MegaCoreファンクションのエンドポイント・バリエーションにインタフェースするアプリケーション・レイヤ・ロジックを試験するプロセスを簡素化します。PCI Expressのリンク監視およびエラー・インジェクション機能は、MegaCore ファンクションの test_inおよび test_out信号に制限されています。以降の項では、テストベンチ、2つのデザイン例、およびルート BFMを詳細に説明します。

アルテラのテストベンチとルート・ポート BFMは、MegaCoreファンクションのエンドポイント・バリエーションにインタフェースするアプリケーション・レイヤ・ロジックの基本テストを行う単純な方法を提供します。ただし、テストベンチおよびルート・ポート BFM は、完全な検証環境の代わりになること意図したものではありません。アプリケーションを徹底的にテストするために、アルテラでは市販されている PCIExpress検証 IPおよびツールを取得するか、ユーザ独自の包括的なハードウェア・テストを実行する(あるいはその両方を行う)ことを推奨しています。

ユーザのアプリケーション・レイヤ・デザインは、アルテラのテストベンチやルート・ポート BFM では作成できない以下のシナリオに対処しなければならない場合があります。アルテラのルート・ポート BFM には、以下の制限があります。

■ ベンダが定義したメッセージを生成または受信することはできません。一部のシステムはベンダが定義したメッセージを生成し、アプリケーション・レイヤはそれらを処理するように設計できなければなりません。MegaCoreファンクションはこれらのメッセージをアプリケーション・レイヤに渡します。アプリケーション・レイヤはほとんどの場合、それらを無視しなければなりませんが、すべてのケースで rx_ackを発行して、Rxバッファからのメッセージをクリアする必要があります。

■ 受信した読み出し要求のうち、現在設定されている最大ペイロード・サイズ以下の要求しか処理できません。多くのシステムはより大きな読み出し要求を処理でき、それらは複数のコンプリーションで返されます。

■ 読み出し要求ごとに常に 1 つのコンプリーションを返します。一部のシステムは 64バイト・アドレス境界ごとにコンプリーションを分割します。

■ コンプリーションは常に読み出し要求が発行されたのと同じ順序で返されます。コンプリーションを順不同で生成するシステムもあります。

■ 一部のシステムがいくつかのライト・トランザクションに続くフラッシュ要求として生成する、長さゼロの読み出し要求を生成することはできません。アプリケーション・レイヤは、長さゼロの読み出し要求に対してコンプリーションを生成できなければなりません。

Page 167: PCI Express コンパイラ・ ユーザガイドPCI Express コンパイラ・ ユーザガイド MegaCore バージョン:6.1 ドキュメント・バージョン: 6.1 rev. 2 ドキュメント・デート:2006年12

Altera Corporation PCI Express Compiler Version 6.1 5–32006年 12月 PCI Expressコンパイラ・ユーザガイド

テストベンチおよび デザイン例

コアと共に提供されるシンプルおよびチェイニング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. テストベンチのトップ・レベル・モジュール : <バリエーション名 >_testbenchTestbench Top Level (<variation name>_testbench)

Endpoint Example Design<variation name>_example_pipen1b

PIPE InterconnectionModule (x8)

(altpcierd_pipe_phy)

Root Port BFM(altpcierd_bfm_rp_top_x8_pipen1b)

Test Driver Module(altpcietb_bfm_driver)

Test Driver Module(altpcietb_bfm_driver_chaining)

Simple DMAChaining DMA

Page 168: PCI Express コンパイラ・ ユーザガイドPCI Express コンパイラ・ ユーザガイド MegaCore バージョン:6.1 ドキュメント・バージョン: 6.1 rev. 2 ドキュメント・デート:2006年12

5–4 PCI Express Compiler Version 6.1 Altera CorporationPCI Expressコンパイラ・ユーザガイド 2006年 12月

テストベンチ

テストベンチのトップ・レベルは、以下の 4つのメイン・モジュールをインスタンス化します。

■ <バリエーション名>_example_pipen1b —これはMegaCoreファンクションのバリエーションを含むエンドポイント・デザイン例です。このモジュールについて詳しくは、5–6ページの「シンプル DMAデザイン例」を参照してください。

■ altpcietb_bfm_rp_top_x8_pipen1b —これはルート・ポート PCIExpress バス機能モデル (BFM) です。このモジュールについて詳しくは、5–32ページの「ルート・ ポート BFM」を参照してください。

■ altpcietb_pipe_phy —このモジュールには各レーンに 1つずつ、8つのインスタンスがあります。これらのモジュールは、ルート・ポートおよびエンドポイントの PIPE MACレイヤ・インタフェースを相互接続します。このモジュールは、両方の MAC インタフェースに対する PIPE PHYレイヤの動作を模倣します。

■ altpcietb_bfm_driver — このモジュールはトランザクションをルート・ポート BFMにドライブします。これはエンドポイント・デザイン例またはユーザ独自のデザインに送信されたトランザクションを変更するように修正するモジュールです。このモジュールについて詳しくは、5–23ページの「シンプル DMAデザイン例用の BFMテスト・ドライバ・モジュール」を参照してください。

さらに、テストベンチは以下のタスクを実行するルーチンを持っています。

● 要求される周波数でエンドポイント用基準クロックを生成。● 起動時に PCI Expressリセットを提供。

Page 169: PCI Express コンパイラ・ ユーザガイドPCI Express コンパイラ・ ユーザガイド MegaCore バージョン:6.1 ドキュメント・バージョン: 6.1 rev. 2 ドキュメント・デート:2006年12

Altera Corporation PCI Express Compiler Version 6.1 5–52006年 12月 PCI Expressコンパイラ・ユーザガイド

テストベンチおよび デザイン例

テストベンチは、テストベンチの全体的な動作を制御するいくつかの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 8 これにより、テストベンチで相互接続されるレーン数が制御されます。この generic値をより小さな値に設定すると、最大値よりも狭い PCIExpressインタフェースで動作するエンドポイントがシミュレーションされます。

ユーザのバリエーションで ×1 MegaCore ファンクションしか実装しない場合、この設定は無効であり 1レーンしか使用されません。

FAST_COUNTERS 0または 1 1 このパラメータを 1に設定すると、PCI ExpressMegaCoreファンクションのタイミング・カウンタの多くをPCI Express仕様で規定される以上の速度で動作させることによって、シミュレーションがスピードアップされます。これは通常は 1に設定すべきであるが、真のタイムアウト値をシミュレーションする必要がある場合は0に設定できます。

Page 170: PCI Express コンパイラ・ ユーザガイドPCI Express コンパイラ・ ユーザガイド MegaCore バージョン:6.1 ドキュメント・バージョン: 6.1 rev. 2 ドキュメント・デート:2006年12

5–6 PCI Express Compiler Version 6.1 Altera CorporationPCI Expressコンパイラ・ユーザガイド 2006年 12月

シンプル 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)のサポート。

Page 171: PCI Express コンパイラ・ ユーザガイドPCI Express コンパイラ・ ユーザガイド MegaCore バージョン:6.1 ドキュメント・バージョン: 6.1 rev. 2 ドキュメント・デート:2006年12

Altera Corporation PCI Express Compiler Version 6.1 5–72006年 12月 PCI Expressコンパイラ・ユーザガイド

テストベンチおよび デザイン例

エンドポイント・デザイン例はテストベンチ・シミュレーションで使用して、アルテラ・デバイス用の完全なデザインとしてコンパイルすることができます。バリエーション・ファイルでデザイン例を実装するのに必要なすべてのモジュールが、使用する言語に基づいて以下の個別ファイルに含まれています。

<バリエーション名 >_example_top.vhd<バリエーション名 >_example_top.valtpcierd_dprambe.vまたは altpcierd_dprambe.vhdaltpcierd_example_app.vまたは altpcierd_example_app.vhdaltpcierd_master.vまたは altpcierd_master.vhdaltpcierd_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デザイン例

Master Module(altpcierd_master)

Includes DMA, Memory & Data Generator

Traffic Class to Virtual Channel

Mapping

Simple DMA Example Design Simulation Top Level (<variation name>_example_pipenb)

Slave Module(altpcierd_slave)

Includes Memory &Control Registers

Simple DMA Example Application Layer (altpcierd_example_app)

PCI Express MegaCoreFunction Variation

PHY Support Module (<variation name>)

VC0 Tx

VC0 Rx

VC1 Tx

VC1 Rx

Page 172: PCI Express コンパイラ・ ユーザガイドPCI Express コンパイラ・ ユーザガイド MegaCore バージョン:6.1 ドキュメント・バージョン: 6.1 rev. 2 ドキュメント・デート:2006年12

5–8 PCI Express Compiler Version 6.1 Altera CorporationPCI Expressコンパイラ・ユーザガイド 2006年 12月

シンプル 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ページの「シミュレーションのセットアップ」を参照してください。

Page 173: PCI Express コンパイラ・ ユーザガイドPCI Express コンパイラ・ ユーザガイド MegaCore バージョン:6.1 ドキュメント・バージョン: 6.1 rev. 2 ドキュメント・デート:2006年12

Altera Corporation PCI Express Compiler Version 6.1 5–92006年 12月 PCI Expressコンパイラ・ユーザガイド

テストベンチおよび デザイン例

■ 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/アドレス・マップ」の項を参照してください。

Page 174: PCI Express コンパイラ・ ユーザガイドPCI Express コンパイラ・ ユーザガイド MegaCore バージョン:6.1 ドキュメント・バージョン: 6.1 rev. 2 ドキュメント・デート:2006年12

5–10 PCI Express Compiler Version 6.1 Altera CorporationPCI Expressコンパイラ・ユーザガイド 2006年 12月

シンプル DMAデザイン例

デザイン例の BAR/アドレス・マップ

このデザイン例は、受信したメモリ・トランザクションがどの BAR に一致したかに基づいて、そのトランザクションをターゲット・メモリ・ブロックまたはコントロール・レジスタ・ブロックのいずれかにマップします。異なるバリエーション・ファイルとの相互運用性を最大化するために、これらの各ブロックにマップする複数のBARがあります。表 5–2にマッピングを示します。

デザイン例のコントロール・レジスタ・ブロックは、主に DMAチャネル動作をセットアップするのに使用されます。コントロール・レジスタ・ブロックは、DMA チャネル動作のアドレス、サイズ、および属性を設定します。DMAチャネル動作の実行は、以下のステップで構成されます。

1. オフセット 0x00および 0x04にあるレジスタへのPCI Expressアドレスの書き込み

2. オフセット 0x14 にあるレジスタへのマスタ・メモリ・ブロック・アドレスの書き込み

3. オフセット 0x08にあるレジスタへの要求動作の長さの書き込み

4. オフセット 0x0Cにあるレジスタへの要求動作の属性(PCI Expressメモリの書き込みまたは読み出し方向を含む)の書き込み。このレジスタに書き込むと DMAチャネル動作の実行が開始されます。

表 5–2.デザイン例の BARマップ

メモリ BAR マッピング

32 ビット BAR032 ビット BAR164 ビット BAR1:0

32 Kバイトのターゲット・メモリ・ブロックにマップ。下位アドレス・ビットは、読み書きする RAM位置を選択します。アドレス・ビット 15以上は無視されます。

32 ビット BAR232 ビット BAR364 ビット BAR3:2

コントロール・レジスタ・ブロックへのマップ。詳しくは、表 5–3 コントロール・レジスタのデザイン例を参照してください。

32 ビット BAR432 ビット BAR564 ビット BAR5:4

32 Kバイトのターゲット・メモリ・ブロックにマップ。下位アドレス・ビットは、読み書きする RAM位置を選択します。アドレス・ビット 15以上は無視されます。

拡張 ROM BAR デザイン例では実装されておらず、動作は予測不能です。

I/O領域 BAR(いずれか)

デザイン例では実装されておらず、動作は予測不能です。

Page 175: PCI Express コンパイラ・ ユーザガイドPCI Express コンパイラ・ ユーザガイド MegaCore バージョン:6.1 ドキュメント・バージョン: 6.1 rev. 2 ドキュメント・デート:2006年12

Altera Corporation PCI Express Compiler Version 6.1 5–112006年 12月 PCI Expressコンパイラ・ユーザガイド

テストベンチおよび デザイン例

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

0x0C 18:16 DMAチャネル・トランザクションの最大ペイロード・サイズを指定 —これはDMAチャネルをコンフィギュレーション領域Max Payload Sizeおよび Max Read Request Size で許容される値より小さいトランザクションを使用するように制限するのに使用できます。トランザクション・サイズは許容される最小値です。これは以下のフィールドと同じエンコーディングを使用します。

000—128 バイト001—256 バイト010—512 バイト011—1 Kバイト100—2 Kバイト

Page 176: PCI Express コンパイラ・ ユーザガイドPCI Express コンパイラ・ ユーザガイド MegaCore バージョン:6.1 ドキュメント・バージョン: 6.1 rev. 2 ドキュメント・デート:2006年12

5–12 PCI Express Compiler Version 6.1 Altera CorporationPCI Expressコンパイラ・ユーザガイド 2006年 12月

シンプル DMAデザイン例

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–3.デザイン例のコントロール・レジスタ(2 /3)

レジスタのバイト・アドレス

(BAR2、3からのオフセット)

ビット・フィールド 説明

Page 177: PCI Express コンパイラ・ ユーザガイドPCI Express コンパイラ・ ユーザガイド MegaCore バージョン:6.1 ドキュメント・バージョン: 6.1 rev. 2 ドキュメント・デート:2006年12

Altera Corporation PCI Express Compiler Version 6.1 5–132006年 12月 PCI Expressコンパイラ・ユーザガイド

テストベンチおよび デザイン例

0x10 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メッセージが送信されます。

0x14 31:15 Reserved

14:3 DMAチャネル動作のための開始マスタ・メモリ・ブロック・アドレス。2:0 開始マスタ・メモリ・ブロック・アドレスのビット 2:0 は、開始 PCI

Expressアドレスからコピーされます。

表 5–3.デザイン例のコントロール・レジスタ(3 /3)

レジスタのバイト・アドレス

(BAR2、3からのオフセット)

ビット・フィールド 説明

Page 178: PCI Express コンパイラ・ ユーザガイドPCI Express コンパイラ・ ユーザガイド MegaCore バージョン:6.1 ドキュメント・バージョン: 6.1 rev. 2 ドキュメント・デート:2006年12

5–14 PCI Express Compiler Version 6.1 Altera CorporationPCI Expressコンパイラ・ユーザガイド 2006年 12月

チェイニング 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デザイン例は、転送する各メモリ・ブロックにディスクリプタ・テーブルを使用します。各ディスクリプタ・テーブルには、以下の情報が含まれています。

■ 転送の長さ■ 転送元のアドレス■ 転送先のアドレス

Page 179: PCI Express コンパイラ・ ユーザガイドPCI Express コンパイラ・ ユーザガイド MegaCore バージョン:6.1 ドキュメント・バージョン: 6.1 rev. 2 ドキュメント・デート:2006年12

Altera Corporation PCI Express Compiler Version 6.1 5–152006年 12月 PCI Expressコンパイラ・ユーザガイド

テストベンチおよび デザイン例

■ ソフトウェア・アプリケーションとチェイニングDMAモジュール間のハンドシェイク動作を設定するコントロール・ビット

ソフトウェア・アプリケーションは、これらのディスクリプタ・テーブルを BFM共有メモリに書き込みます。チェイニング DMAデザイン・エンジンは、DMAリードおよび /または DMAライトのために、連続してこれらのディスクリプタ・テーブルを収集します。転送の開始時に、ソフトウェア・アプリケーションは DMAエンジン・レジスタにディスクリプタ・テーブル・ヘッダをプログラムします。ディスクリプタ・テーブル・ヘッダには、記述子の総数や最初のディスクリプタ・テーブルのBFM共有メモリ・アドレスなどの情報が含まれています。ディスクリプタ・ヘッダが設定されると、チェイニング DMAエンジンは、DMAリードおよび DMAライトの両方のために、BFM共有メモリから継続的に記述子をフェッチして、各記述子のためのデータ転送を実行します。

図 5-3の左側にデザイン例のブロック図を示し、右側に外部 RC CPUを示します。ブロック図には以下のエレメントが含まれています。

■ 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ブリッジを使用

Page 180: PCI Express コンパイラ・ ユーザガイドPCI Express コンパイラ・ ユーザガイド MegaCore バージョン:6.1 ドキュメント・バージョン: 6.1 rev. 2 ドキュメント・デート:2006年12

5–16 PCI Express Compiler Version 6.1 Altera CorporationPCI Expressコンパイラ・ユーザガイド 2006年 12月

チェイニング DMAデザイン例

図 5-3. チェイニング DMAデザイン例のシミュレーション用トップ・レベル

エンドポイント・デザイン例のアプリケーション・レイヤには、以下の機能があります。

■ PCI Express MegaCoreファンクションへのインタフェース方法を示す。

■ PCI Expressリンク上で、メモリ・リードおよびライト・トランザクションを開始するのに使用可能なチェイニング DMA チャネルを提供。

エンドポイント・デザイン例でテストベンチ・シミュレーションを使用することができ、またアルテラ・デバイス用の完全なデザインをコンパイルできます。バリエーション・ファイルでデザイン例を実装するのに必要なすべてのモジュールは、使用する言語に基づき、以下のファイルの 1つに含まれています。

<バリエーション名 >_examples/chaining_dma/<バリエーション名 >_example_chaining.vhdまたは<バリエーション名 >_examples/chaining_dma/<バリエーション名 >_example_chaining.v

CPU

RC Slave

Root Complex Chaining DMA Example

Endpoint Memory

Avalon-MM buses

Root Port

SS

MemoryReadDescriptorTable

WriteDescriptorTable

Data

PCI Express MegaCore Function

Variation (DUT)

MM

DMA WriteRequester

Descriptor

Header Register

DMA ReadRequester

Descriptor

Header Register

Page 181: PCI Express コンパイラ・ ユーザガイドPCI Express コンパイラ・ ユーザガイド MegaCore バージョン:6.1 ドキュメント・バージョン: 6.1 rev. 2 ドキュメント・デート:2006年12

Altera Corporation PCI Express Compiler Version 6.1 5–172006年 12月 PCI Expressコンパイラ・ユーザガイド

テストベンチおよび デザイン例

このファイルは、ファイルの生成時にプロジェクト・ディレクトリ内に作成されます。

以下のモジュールは、デザイン例に含まれ、サブディレクトリ < バリエーション名 >_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デザイン例の階層は、以下のコンポーネントで構成されています。

● DMAリードおよび DMAライト・モジュール

● 各エンジンで2つのAvalon-MMバスを使用するオン・チップEPメモリ(Avalonスレーブ)

Page 182: PCI Express コンパイラ・ ユーザガイドPCI Express コンパイラ・ ユーザガイド MegaCore バージョン:6.1 ドキュメント・バージョン: 6.1 rev. 2 ドキュメント・デート:2006年12

5–18 PCI Express Compiler Version 6.1 Altera CorporationPCI Expressコンパイラ・ユーザガイド 2006年 12月

チェイニング DMAデザイン例

● 性能監視用 RCスレーブ・モジュールおよび単一 DWORDMrd/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共有メモリに発行します。

Page 183: PCI Express コンパイラ・ ユーザガイドPCI Express コンパイラ・ ユーザガイド MegaCore バージョン:6.1 ドキュメント・バージョン: 6.1 rev. 2 ドキュメント・デート:2006年12

Altera Corporation PCI Express Compiler Version 6.1 5–192006年 12月 PCI Expressコンパイラ・ユーザガイド

テストベンチおよび デザイン例

● altpcie_read_dma_requester — altpcie_descriptor FIFOにある各ディスクリプタのために、このモジュールは MRd PCIExpress TL パケットを発行することによって、BFM 共有メモリからエンドポイント・メモリにデータを転送します。

● altpcie_write_dma_requester — altpcie_descriptor FIFO にある各ディスクリプタに対して、このモジュールは MWr PCIExpress TL パケットを発行することによって、エンドポイント・メモリから BFM共有メモリにデータを転送します。

デザイン例の BAR/アドレス・マップ

このデザイン例は、受信したメモリ・トランザクションがどの BAR に一致したかに基づいて、そのトランザクションをターゲット・メモリ・ブロックまたはコントロール・レジスタ・ブロックのいずれかにマップします。異なるバリエーション・ファイルとの相互運用性を最大化するために、これらの各ブロックにマップする複数のBARがあります。表 5–4にマッピングを示します。

デザイン例のコントロール・レジスタ・ブロックは、主に DMAチャネル動作をセットアップするのに使用されます。コントロール・レジスタ・ブロックは、DMA チャネル動作のアドレス、サイズ、および属性を設定します。DMAチャネル動作の実行は、以下のステップで構成されます。

1. オフセット 0x00および 0x04にあるレジスタへのPCI Expressアドレスの書き込み

表 5–4.デザイン例の BARマップ

メモリ BAR マッピング

32 ビット BAR032 ビット BAR164 ビット BAR1:0

32 K バイト・ターゲット・メモリ・ブロックにマップします。rc_slaveモジュールを使用して、チェイニング DMAをバイパスします。

32 ビット BAR232 ビット BAR364 ビット BAR3:2

DMAリードおよび DMAライト・レジスタ・ヘッダを制御するためにマップし、最小 256バイトを必要とします。

32 ビット BAR432 ビット BAR564 ビット BAR5:4

32 K バイト・ターゲット・メモリ・ブロックにマップします。rc_slaveモジュールを使用して、チェイニング DMAをバイパスします。

拡張 ROM BAR デザイン例では実装されておらず、動作は予測不能です。

I/O領域 BAR(いずれか)

デザイン例では実装されておらず、動作は予測不能です。

Page 184: PCI Express コンパイラ・ ユーザガイドPCI Express コンパイラ・ ユーザガイド MegaCore バージョン:6.1 ドキュメント・バージョン: 6.1 rev. 2 ドキュメント・デート:2006年12

5–20 PCI Express Compiler Version 6.1 Altera CorporationPCI Expressコンパイラ・ユーザガイド 2006年 12月

チェイニング 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ディスクリプタ・ヘッダ・フォーマットのアドレス・マップ

表 5–6.チェイニング DMAディスクリプタ・ヘッダ・フォーマット(コントロール・フィールド)

31 16 15 0

コントロール・フィールド(表 5–6を参照) サイズ

BDT上位 DWORD

BDT下位 DWORD

Reserved RCLAST

31 30 28 27 25 24 20 19 18 17 16Reserved MSIトラフィック・クラス Reserved MSI番号 Reserved EPLAST_ENA MSI 方向

Page 185: PCI Express コンパイラ・ ユーザガイドPCI Express コンパイラ・ ユーザガイド MegaCore バージョン:6.1 ドキュメント・バージョン: 6.1 rev. 2 ドキュメント・デート:2006年12

Altera Corporation PCI Express Compiler Version 6.1 5–212006年 12月 PCI Expressコンパイラ・ユーザガイド

テストベンチおよび デザイン例

表 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リード・ロジックを参照します。

メッセージ通知割り込み (MSI)

R 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)

ベース・アドレスのディスクリプタ・テーブル・アドレス

Page 186: PCI Express コンパイラ・ ユーザガイドPCI Express コンパイラ・ ユーザガイド MegaCore バージョン:6.1 ドキュメント・バージョン: 6.1 rev. 2 ドキュメント・デート:2006年12

5–22 PCI Express Compiler Version 6.1 Altera CorporationPCI Expressコンパイラ・ユーザガイド 2006年 12月

チェイニング DMAデザイン例

ディスクリプタ・ヘッダに続くディスクリプタ・フィールドのフォーマットについては、表 5–8を参照してください。各記述子は 1回の DMA転送に関するハードウェア情報を提供します。表 5–10に、各ディスクリプタ・フィールドを説明しています。

表 5–8、5–9は、BFM共有メモリに置かれているディスクリプタ・テーブルのリストに関連しています。

表 5–8.チェイニング DMAディスクリプタ・フォーマット・マップ

表 5–9.チェイニング DMAディスクリプタ・フォーマット・マップ(コントロール・フィールド)

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–7.チェイニング DMAディスクリプタ・ヘッダ・フィールド(2 /2)

ディスクリプタ・ヘッダ・フィールド

EPアクセス

RCアクセス

EPアドレス 説明

31 22 21 16 15 0Reserved コントロール・フィールド

(表 5–9を参照)DMAの長さ

EPアドレス

RCアドレス上位 DWORD

RCアドレス下位 DWORD

21 20 19 18 17 16Reserved Reserved Reserved MSI EPLAST_ENA

Page 187: PCI Express コンパイラ・ ユーザガイドPCI Express コンパイラ・ ユーザガイド MegaCore バージョン:6.1 ドキュメント・バージョン: 6.1 rev. 2 ドキュメント・デート:2006年12

Altera Corporation PCI Express Compiler Version 6.1 5–232006年 12月 PCI Expressコンパイラ・ユーザガイド

テストベンチおよび デザイン例

テスト・ドライバ・モジュール

この項では、デザイン例のテストに使用されるテスト・ドライバ・モジュールについて説明します。

■ 「シンプル DMAデザイン例用の BFMテスト・ドライバ・モジュール」■ 「チェイニング DMAデザイン例用の BFMテスト・ドライバ・モジュール」

シンプル DMAデザイン例用の BFMテスト・ドライバ・モジュール

生成ステップ中にMega Wizardインタフェースによって生成されるBFMドライバ・モジュールは、シンプル DMAエンドポイント・デザイン例をテストするためにコンフィギュレーションされます。BFMドライバ・モジュールは、エンドポイント・コンフィギュレーション・スペース・レジスタをコンフィギュレーションし、エンドポイント・デザイン例のターゲット・メモリおよび DMAチャネルをテストします。

このファイルのVHDLバージョンについては、以下を参照してください。<バリエーション名 >_example_simple_dma/altpcietb_bfm_driver.vhd

または

表 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 転送の終了時に割り込み完了メッセージを送信します。

Page 188: PCI Express コンパイラ・ ユーザガイドPCI Express コンパイラ・ ユーザガイド MegaCore バージョン:6.1 ドキュメント・バージョン: 6.1 rev. 2 ドキュメント・デート:2006年12

5–24 PCI Express Compiler Version 6.1 Altera CorporationPCI Expressコンパイラ・ユーザガイド 2006年 12月

テスト・ ドライバ・ モジュール

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プロシージャを呼び出すことによって行われます。

Page 189: PCI Express コンパイラ・ ユーザガイドPCI Express コンパイラ・ ユーザガイド MegaCore バージョン:6.1 ドキュメント・バージョン: 6.1 rev. 2 ドキュメント・デート:2006年12

Altera Corporation PCI Express Compiler Version 6.1 5–252006年 12月 PCI Expressコンパイラ・ユーザガイド

テストベンチおよび デザイン例

4. エンドポイント・デザイン例のコントロール・レジスタ領域へのアクセスに適した BARを検索します。DMAチャネル・テストを実行するには、BAR 2または 3の 1つが最低 128バイトのメモリ BARでなければなりません。altpcietb_bfm_driverの find_mem_barプロシージャがこれを行います。

5. 前のステップで適した BAR が見つかった場合、エンドポイント・デザイン例のDMAチャネルはaltpcietb_bfm_driverのtarget_dma_testプロシージャでテストされます。このプロシージャは、以下のサブ・ステップを実行します。

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プロシージャの呼び出しによって行われます。

Page 190: PCI Express コンパイラ・ ユーザガイドPCI Express コンパイラ・ ユーザガイド MegaCore バージョン:6.1 ドキュメント・バージョン: 6.1 rev. 2 ドキュメント・デート:2006年12

5–26 PCI Express Compiler Version 6.1 Altera CorporationPCI Expressコンパイラ・ユーザガイド 2006年 12月

テスト・ ドライバ・ モジュール

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プロシージャの呼び出しによってシミュレーションが停止します。

Page 191: PCI Express コンパイラ・ ユーザガイドPCI Express コンパイラ・ ユーザガイド MegaCore バージョン:6.1 ドキュメント・バージョン: 6.1 rev. 2 ドキュメント・デート:2006年12

Altera Corporation PCI Express Compiler Version 6.1 5–272006年 12月 PCI Expressコンパイラ・ユーザガイド

テストベンチおよび デザイン例

チェイニング 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 プロシージャでは、以下のステップを使用しています。

Page 192: PCI Express コンパイラ・ ユーザガイドPCI Express コンパイラ・ ユーザガイド MegaCore バージョン:6.1 ドキュメント・バージョン: 6.1 rev. 2 ドキュメント・デート:2006年12

5–28 PCI Express Compiler Version 6.1 Altera CorporationPCI Expressコンパイラ・ユーザガイド 2006年 12月

テスト・ ドライバ・ モジュール

1. BFM共有メモリのコンフィギュレーション。これは、以下に示す内容を持つ 3つのディスクリプタ・テーブルによって行われます。

表 5–11.ライト・ディスクリプタ 0

ライト・ディスクリプタ 0

BFM共有メモリ内のオフセット

値 説明

DW0 0x810 64 DWORD およびコントロール・ビットの転送長(表 5–7で説明)

DW1 0x814 0 エンドポイント・アドレス値DW2 0x818 0 BFM共有メモリの上位アドレス値DW3 0x81c 0x1800 BFM共有メモリの下位アドレス値

データ 0x1800 0xAAA0_FFFFからのインクリメント

アドレス範囲 0x01800 0x1840の BFM共有メモリのデータ内容

表 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共有メモリのデータ内容

Page 193: PCI Express コンパイラ・ ユーザガイドPCI Express コンパイラ・ ユーザガイド MegaCore バージョン:6.1 ドキュメント・バージョン: 6.1 rev. 2 ドキュメント・デート:2006年12

Altera Corporation PCI Express Compiler Version 6.1 5–292006年 12月 PCI Expressコンパイラ・ユーザガイド

テストベンチおよび デザイン例

2. チェイニング DMAディスクリプタ・ヘッダをセットアップし、EPメモリから BFM共有メモリへのデータ転送を開始します。これは、以下の 4つの DWORDを DMAライト・レジスタ・モジュールに書き込むdma_set_headerプロシージャの呼び出しによって行われます。

ディスクリプタ・ヘッダの最後の DWARD(DW3)を書き込んだ後、DMAライトはそれに続く 3つのデータ転送を開始します。

3. DMA ライト・エンジンが完了した DMA 数の値を更新する BFM 共有メモリ位置 0x80cをポーリングすることによって、DMAライトが完了するのを待機します。これは rcmem_pollプロシージャの呼び出しによって行われます。

表 5–13.ライト・ディスクリプタ 2

ライト・ディスクリプタ 2

BFM共有メモリ内のオフセット

値 説明

DW0 0x830 96 DWORD およびコントロール・ビットの転送長(表 5–7で説明)

DW1 0x834 0 エンドポイント・アドレス値DW2 0x838 0 BFM共有メモリの上位アドレス値DW3 0x83c 0x04800 BFM共有メモリの下位アドレス値

データ 0x04800 0xCCC0_FFFFからのインクリメント

アドレス範囲0x04800 0x4860のBFM共有メモリのデータ内容

表 5–14. DMAライトのディスクリプタ・ヘッダ

DMAライトのディスクリプタ・ヘッダ

EPメモリ内のオフセット

値 説明

DW0 0x0 3 ディスクリプタおよびコントロール・ビットの数(5–20ページの表 5–5で説明)

DW1 0x4 0 BFM共有メモリの上位アドレス値DW2 0x8 0x800 BFM共有メモリの下位アドレス値DW3 0xc 2 最後に書き込まれたディスクリプタ

Page 194: PCI Express コンパイラ・ ユーザガイドPCI Express コンパイラ・ ユーザガイド MegaCore バージョン:6.1 ドキュメント・バージョン: 6.1 rev. 2 ドキュメント・デート:2006年12

5–30 PCI Express Compiler Version 6.1 Altera CorporationPCI Expressコンパイラ・ユーザガイド 2006年 12月

テスト・ ドライバ・ モジュール

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 DWORD およびコントロール・ビットの転送長(5–23ページの表 5–10で説明)

DW1 0x914 0 エンドポイント・アドレス値DW2 0x918 0 BFM共有メモリの上位アドレス値DW3 0x91c 0x8900 BFM共有メモリの下位アドレス値

データ 0x8900 0xAAA0_FFFFからのインクリメント

アドレス範囲 0x8900 0x8940 の BFM 共有メモリのデータ内容

Page 195: PCI Express コンパイラ・ ユーザガイドPCI Express コンパイラ・ ユーザガイド MegaCore バージョン:6.1 ドキュメント・バージョン: 6.1 rev. 2 ドキュメント・デート:2006年12

Altera Corporation PCI Express Compiler Version 6.1 5–312006年 12月 PCI Expressコンパイラ・ユーザガイド

テストベンチおよび デザイン例

表 5–16.リード・ディスクリプタ 1

リード・ディスクリプタ 1

BFM共有メモリ内のオフセット

値 説明

DW0 0x920 32 DWORD およびコントロール・ビットの転送長(5–23ページの表 5–10で説明)

DW1 0x924 0 エンドポイント・アドレス値DW2 0x928 10 BFM共有メモリの上位アドレス値DW3 0x92c 0x10900 BFM共有メモリの下位アドレス値

データ 0x10900 0xBBB0_FFFF からのインクリメント

アドレス範囲 0x10900 0x10920 の BFM 共有メモリのデータ内容

表 5–17.リード・ディスクリプタ 2

リード・ディスクリプタ 2

BFM共有メモリ内のオフセット

(BRC、ベース BFM共有メモリ・アドレス)

値 説明

DW0 0x930 96 DWORD およびコントロール・ビットの転送長(5–23ページの表 5–10で説明)

DW1 0x934 0 エンドポイント・アドレス値DW2 0x938 0 BFM共有メモリの上位アドレス値DW3 0x93c 0x20900 BFM共有メモリの下位アドレス値

データ 0x20900 0xCCC0_FFFFからのインクリメント

アドレス範囲 0x20900 0x20960の BFM共有メモリのデータ内容

Page 196: PCI Express コンパイラ・ ユーザガイドPCI Express コンパイラ・ ユーザガイド MegaCore バージョン:6.1 ドキュメント・バージョン: 6.1 rev. 2 ドキュメント・デート:2006年12

5–32 PCI Express Compiler Version 6.1 Altera CorporationPCI Expressコンパイラ・ユーザガイド 2006年 12月

ルート・ ポート BFM

ルート・ポート BFM

基本ルート・ポート BFMは、PCI Expressリンクに発行されるトランザクション・リクエストのための VHDLプロシージャまたは Verilog HDLタスクに基づくインタフェースを提供します。また、ルート・ポートBFMもPCI Expressリンクから受け取ったリクエストも処理します。ルート・ポート BFMのハイ・レベル・ビューについては、図 5-4を参照してください。

図 5-4. ルート・ポート BFMのハイ・レベル・ビュー

ルート・ポート BFM は、以下の主要なコンポーネントで構成されています。

■ BFM 共有メモリ(altpcietb_bfm_shmem VHDL パッケージまたはVerilog HDLインクルード・ファイル)—ルート・ポート BFMは、以下の用途に使用される BFMメモリに基づきます。

● PCI Express リンクからのすべてのコンプリーションで受信したデータの保存

● PCI Expressリンクから受け取ったすべてのライト・トランザクションで受信したデータの保存

BFM Shared Memory(altpcietb_bfm_shmem)

BFM Read/Write SharedRequest Procedures(altpcietb_bfm_rdwr)

BFM ConfigurationProcedures

(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)

IP Functional SimulationModel of the Root

Port Interface (altpcietb_bfm_rpvar_64b_x8_pipen1b)

VC0 Interface(altpcietb_bfm_vcintf)

VC1 Interface(altpcietb_bfm_vcintf)

VC2 Interface(altpcietb_bfm_vcintf)

VC3 Interface(altpcietb_bfm_vcintf)

Root Port BFM

Page 197: PCI Express コンパイラ・ ユーザガイドPCI Express コンパイラ・ ユーザガイド MegaCore バージョン:6.1 ドキュメント・バージョン: 6.1 rev. 2 ドキュメント・デート:2006年12

Altera Corporation PCI Express Compiler Version 6.1 5–332006年 12月 PCI Expressコンパイラ・ユーザガイド

テストベンチおよび デザイン例

● 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 コンフィギュレーション・プロシージャ」を参照してください。

■ BFMログ・インタフェース(altpcietb_bfm_log VHDLパッケージまたは Verilog HDL インクルード・ファイル)— BFM ログ・インタフェースは一般的な書式のメッセージを、シミュレータ標準出力およびログ・ファイル(オプション)に書き込むルーチンを提供します。また、エラー時にシミュレーションを停止するコントロールも提供します。これらのプロシージャについて詳しくは、5–56 ページの「BFMログおよびメッセージ・プロシージャ」を参照してください。

Page 198: PCI Express コンパイラ・ ユーザガイドPCI Express コンパイラ・ ユーザガイド MegaCore バージョン:6.1 ドキュメント・バージョン: 6.1 rev. 2 ドキュメント・デート:2006年12

5–34 PCI Express Compiler Version 6.1 Altera CorporationPCI Expressコンパイラ・ユーザガイド 2006年 12月

ルート・ ポート BFM

■ BFM リクエスト・インタフェース(altpcietb_bfm_req_intf VHDLパッケージまたは Verilog HDLインクルード・ファイル)—このイン タ フ ェ ー ス は、altpcietb_bfm_rdwr プ ロ シ ー ジ ャ とaltpcietb_bfm_configureプロシージャとルート・ポートRTLモデルの間にロー・レベル・インタフェースを提供します。このインタフェースは、エンドポイントの BARレジスタにプログラムされたサイズと値を保有する書き込み保護されたデータ構造、および内部BFM管理に使用されるその他のクリティカル・データを保存します。エンドポイント・アプリケーションをテストするためには、これらのファイルを直接アクセスする必要はありません。

■ ルート・ポート RTLモデル(altpcietb_bfm_rp_top_x8_pipen1bVHDLエントリまたは 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/<バリエーション名 >ディレクトリに生成されます。

Page 199: PCI Express コンパイラ・ ユーザガイドPCI Express コンパイラ・ ユーザガイド MegaCore バージョン:6.1 ドキュメント・バージョン: 6.1 rev. 2 ドキュメント・デート:2006年12

Altera Corporation PCI Express Compiler Version 6.1 5–352006年 12月 PCI Expressコンパイラ・ユーザガイド

テストベンチおよび デザイン例

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 を使用する VerilogHDLインクルード・ファイル altpcierd_bfm_configure.vにあります。

ebfm_cfg_rp_ep は、以下のステップを実行して、コンフィギュレーション領域を初期化します。

1. ルート・ポート・コンフィギュレーション領域を設定して、ルート・ポートがPCI Expressリンク上でトランザクションを送信できるようにします。

2. ルート・ポートおよびエンドポイント PCI Express 対応デバイス・コントロール・レジスタを、以下のように設定します。

Page 200: PCI Express コンパイラ・ ユーザガイドPCI Express コンパイラ・ ユーザガイド MegaCore バージョン:6.1 ドキュメント・バージョン: 6.1 rev. 2 ドキュメント・デート:2006年12

5–36 PCI Express Compiler Version 6.1 Altera CorporationPCI Expressコンパイラ・ユーザガイド 2006年 12月

ルート・ ポート BFM

a. ルート・ポートおよびエンドポイントの両方で、ErrorReportingをディセーブルにします。BFMにはエラー処理機能はありません。

b. ルート・ポートおよびエンドポイントの両方で、RelaxedOrderingをイネーブルにします。

c. エンドポイントで可能な場合は、エンドポイントの ExtendedTagsをイネーブルにします。

d. ルート・ポートとエンドポイントの両方で、PhantomFunctions、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です。

Page 201: PCI Express コンパイラ・ ユーザガイドPCI Express コンパイラ・ ユーザガイド MegaCore バージョン:6.1 ドキュメント・バージョン: 6.1 rev. 2 ドキュメント・デート:2006年12

Altera Corporation PCI Express Compiler Version 6.1 5–372006年 12月 PCI Expressコンパイラ・ユーザガイド

テストベンチおよび デザイン例

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 アドレス・デコーディングをイネーブルにするよう設定されます。

Page 202: PCI Express コンパイラ・ ユーザガイドPCI Express コンパイラ・ ユーザガイド MegaCore バージョン:6.1 ドキュメント・バージョン: 6.1 rev. 2 ドキュメント・デート:2006年12

5–38 PCI Express Compiler Version 6.1 Altera CorporationPCI Expressコンパイラ・ユーザガイド 2006年 12月

ルート・ ポート 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 共有メモリに保存します。このプロシージャ・ブロックは、コンプリーション・データが返されるのを待ってから呼び出し側にコントロールを返します。

Page 203: PCI Express コンパイラ・ ユーザガイドPCI Express コンパイラ・ ユーザガイド MegaCore バージョン:6.1 ドキュメント・バージョン: 6.1 rev. 2 ドキュメント・デート:2006年12

Altera Corporation PCI Express Compiler Version 6.1 5–392006年 12月 PCI Expressコンパイラ・ユーザガイド

テストベンチおよび デザイン例

■ 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 パッケージでは隠されているその他のプロシージャによって呼び出されるいくつかの基礎的なプロシージャおよびファンクションを表示することができます。これら非表示のプロシージャは、ユーザが呼び出すものではありません。

Page 204: PCI Express コンパイラ・ ユーザガイドPCI Express コンパイラ・ ユーザガイド MegaCore バージョン:6.1 ドキュメント・バージョン: 6.1 rev. 2 ドキュメント・デート:2006年12

5–40 PCI Express Compiler Version 6.1 Altera CorporationPCI Expressコンパイラ・ユーザガイド 2006年 12月

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トランザクションに使用するトラフィック・クラス

Page 205: PCI Express コンパイラ・ ユーザガイドPCI Express コンパイラ・ ユーザガイド MegaCore バージョン:6.1 ドキュメント・バージョン: 6.1 rev. 2 ドキュメント・デート:2006年12

Altera Corporation PCI Express Compiler Version 6.1 5–412006年 12月 PCI Expressコンパイラ・ユーザガイド

テストベンチおよび デザイン例

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 31 downto 03 23 downto 02 15 downto 01 7 downto 0

byte_len 書き込まれるデータの長さ(バイト数)。長さは最大 4バイトです。

tclass PCI Expressトランザクションに使用するトラフィック・クラス

Page 206: PCI Express コンパイラ・ ユーザガイドPCI Express コンパイラ・ ユーザガイド MegaCore バージョン:6.1 ドキュメント・バージョン: 6.1 rev. 2 ドキュメント・デート:2006年12

5–42 PCI Express Compiler Version 6.1 Altera CorporationPCI Expressコンパイラ・ユーザガイド 2006年 12月

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トランザクションに使用するトラフィック・クラス

Page 207: PCI Express コンパイラ・ ユーザガイドPCI Express コンパイラ・ ユーザガイド MegaCore バージョン:6.1 ドキュメント・バージョン: 6.1 rev. 2 ドキュメント・デート:2006年12

Altera Corporation PCI Express Compiler Version 6.1 5–432006年 12月 PCI Expressコンパイラ・ユーザガイド

テストベンチおよび デザイン例

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トランザクションに使用するトラフィック・クラス

Page 208: PCI Express コンパイラ・ ユーザガイドPCI Express コンパイラ・ ユーザガイド MegaCore バージョン:6.1 ドキュメント・バージョン: 6.1 rev. 2 ドキュメント・デート:2006年12

5–44 PCI Express Compiler Version 6.1 Altera CorporationPCI Expressコンパイラ・ユーザガイド 2006年 12月

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 31 downto 03 23 downto 02 5 downto 01 7 downto 0

compl_status VHDLでは、この引数は std_logic_vector(2 downto 0)であり、プロシージャによって戻り時に設定されます。Verilog HDLでは、この引数は re [2:0]です。両言語とも、この引数は PCI Express仕様で指定されるコンプリーション・ステータスです。

compl_status 定義000 SC —正常完了001 UR —サポートされていない要求010 CRS —コンフィギュレーション要求リトライ・ス

テータス100 CA —コンプリータ・アボート

Page 209: PCI Express コンパイラ・ ユーザガイドPCI Express コンパイラ・ ユーザガイド MegaCore バージョン:6.1 ドキュメント・バージョン: 6.1 rev. 2 ドキュメント・デート:2006年12

Altera Corporation PCI Express Compiler Version 6.1 5–452006年 12月 PCI Expressコンパイラ・ユーザガイド

テストベンチおよび デザイン例

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 31 downto 03 23 downto 02 5 downto 01 7 downto 0

Page 210: PCI Express コンパイラ・ ユーザガイドPCI Express コンパイラ・ ユーザガイド MegaCore バージョン:6.1 ドキュメント・バージョン: 6.1 rev. 2 ドキュメント・デート:2006年12

5–46 PCI Express Compiler Version 6.1 Altera CorporationPCI Expressコンパイラ・ユーザガイド 2006年 12月

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 SC —正常完了001 UR —サポートされていない要求010 CRS —コンフィギュレーション要求リトライ・ス

テータス100 CA —コンプリータ・アボート

Page 211: PCI Express コンパイラ・ ユーザガイドPCI Express コンパイラ・ ユーザガイド MegaCore バージョン:6.1 ドキュメント・バージョン: 6.1 rev. 2 ドキュメント・デート:2006年12

Altera Corporation PCI Express Compiler Version 6.1 5–472006年 12月 PCI Expressコンパイラ・ユーザガイド

テストベンチおよび デザイン例

ebfm_cfgrd_nowtプロシージャ

ebfm_cfgrd_nowtプロシージャは、指定されたコンフィギュレーション・レジスタから最大 4バイトのデータを読み出し、BFM共有メモリに保存します。このプロシージャは、VC インタフェース・モジュールがトランザクションを受け入れるとすぐに戻るため、その間に他の読み出しの発行ができます。このプロシージャは、正常なコンプリーション・ステータスが期待される場合にのみ使用し、後に続くウェイトを伴った読み出しまたは書き込みを使用して、動作の完了を保証することができます。

BFMパフォーマンス・カウント

この項では性能データにアクセスするための BFM ルーチンについて説明します。ルート・ポート BFM は、ルート・ポートを通じて送受信するパケットのパフォーマンス・カウンタ・セットを保持します。カウンタは以下のパケットごとに存在します。

■ 送信されたパケット■ ペイロード・データの送信された QWORD(すべてのバイトがイネーブルされていなくてもフル QWORDがカウントされます)

■ 受信されたパケット■ ペイロード・データの受信された QWORD(すべてのバイトがイネーブルされていなくてもフル QWORDがカウントされます)

上記のカウンタは、シミュレーションの開始時より継続してカウントされます。プロシージャ ebfm_start_perf_sample は、すべてのカウンタを 0にリセットします。

表 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共有メモリ・アドレス

Page 212: PCI Express コンパイラ・ ユーザガイドPCI Express コンパイラ・ ユーザガイド MegaCore バージョン:6.1 ドキュメント・バージョン: 6.1 rev. 2 ドキュメント・デート:2006年12

5–48 PCI Express Compiler Version 6.1 Altera CorporationPCI Expressコンパイラ・ユーザガイド 2006年 12月

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プロシージャ

このプロシージャはパフォーマンス・カウンタをリセットするだけです。カウンタが同期的にリセットされるように、プロシージャは次の RootPort BFM クロック・エッジまで待機します。このルーチンを呼び出すと、性能サンプリング・ウィンドウが開始されます。

Page 213: PCI Express コンパイラ・ ユーザガイドPCI Express コンパイラ・ ユーザガイド MegaCore バージョン:6.1 ドキュメント・バージョン: 6.1 rev. 2 ドキュメント・デート:2006年12

Altera Corporation PCI Express Compiler Version 6.1 5–492006年 12月 PCI Expressコンパイラ・ユーザガイド

テストベンチおよび デザイン例

ebfm_disp_perf_sampleプロシージャ

このプロシージャは標準出力に性能情報を表示します。また、次の RootPort BFMクロック・エッジでパフォーマンス・カウンタをリセットします。このルーチンを呼び出すと、新しい性能サンプリング・ウィンドウが開始されます。あるサンプル・ウィンドウから次のサンプル・ウィンドウに移行する間に、パフォーマンス・カウント情報が失われることはありません。

以下の図にこのルーチンからの出力例を示します。

図 5-5. ebfm_disp_perf_sampleプロシージャからの出力

上記の例はテストベンチの VHDL バージョンから抜粋したものです。Verilogバージョンのフォーマッティングは多少異なる場合があります。

# INFO: 92850 ns PERF: Sample Duration: 5008 ns # INFO: 92850 ns PERF: Tx Packets: 33 # INFO: 92850 ns PERF: Tx Bytes: 8848 # INFO: 92850 ns PERF: Tx MByte/sec: 1767 # INFO: 92850 ns PERF: Tx Mbit/sec: 14134 # INFO: 92850 ns PERF: Rx Packets: 34 # INFO: 92850 ns PERF: Rx Bytes: 8832 # INFO: 92850 ns PERF: Rx MByte/sec: 1764 # INFO: 92850 ns PERF: Rx Mbit/sec: 14109

Page 214: PCI Express コンパイラ・ ユーザガイドPCI Express コンパイラ・ ユーザガイド MegaCore バージョン:6.1 ドキュメント・バージョン: 6.1 rev. 2 ドキュメント・デート:2006年12

5–50 PCI Express Compiler Version 6.1 Altera CorporationPCI Expressコンパイラ・ユーザガイド 2006年 12月

BFM プロシージャおよびファンクション

表 5–26に図 5-5についての情報を示します。

BFMコンフィギュレーション・プロシージャ

次のプロシージャは、altpcietb_bfm_configure で使用できます。これらのプロシージャは、ルート・ポートとエンドポイントのコンフィギュレーション空間レジスタのコンフィギュレーションをサポートします。

すべての VHDL引数は、特に記述がない限りサブタイプNATURALで、入力専用です。すべての Verilog HDL 引数は、特に記述がない限りINTEGER型で入力専用です。

表 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を乗算した値です。

Page 215: PCI Express コンパイラ・ ユーザガイドPCI Express コンパイラ・ ユーザガイド MegaCore バージョン:6.1 ドキュメント・バージョン: 6.1 rev. 2 ドキュメント・デート:2006年12

Altera Corporation PCI Express Compiler Version 6.1 5–512006年 12月 PCI Expressコンパイラ・ユーザガイド

テストベンチおよび デザイン例

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制限の下に割り当てられます。

Page 216: PCI Express コンパイラ・ ユーザガイドPCI Express コンパイラ・ ユーザガイド MegaCore バージョン:6.1 ドキュメント・バージョン: 6.1 rev. 2 ドキュメント・デート:2006年12

5–52 PCI Express Compiler Version 6.1 Altera CorporationPCI Expressコンパイラ・ユーザガイド 2006年 12月

BFM プロシージャおよびファンクション

eebfm_cfg_decode_barプロシージャ

ebfm_cfg_decode_bar プロシージャは、指定された BAR に対するBARテーブルの情報を解析し、BAR属性に関する詳細を返します。

BFM共有メモリ・アクセス・プロシージャ

以下のプロシージャおよびファンクションは、VHDLファイルaltpcietb_bfm_shmem.vhdまたはテストベンチのトップ・レベルでインスタンス化される altpcietb_bfm_shmem_common.vモジュールを使用する Verilog HDL インクルード・ファイル altpcietb_bfm_shmem.v に収められています。これらのプロシージャおよびファンクションは、BFM共有メモリへのアクセスをサポートします。

すべての VHDL引数は、特に記述がない限りサブタイプ NATURALで入力専用です。すべての Verilog HDL 引数は、特に記述がない限りINTEGER型で入力専用です。

表 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に設定されます。

Page 217: PCI Express コンパイラ・ ユーザガイドPCI Express コンパイラ・ ユーザガイド MegaCore バージョン:6.1 ドキュメント・バージョン: 6.1 rev. 2 ドキュメント・デート:2006年12

Altera Corporation PCI Express Compiler Version 6.1 5–532006年 12月 PCI Expressコンパイラ・ユーザガイド

テストベンチおよび デザイン例

共有メモリ定数

以下の定数は、BFM共有メモリ・パッケージで定義されています。これらの定数は、shmem_fill および shmem_chk_ok ルーチンでデータ・パターンを選択します。これらの共有メモリ定数は、すべて VHDLのサブタイプNATURALまたは Verilog HDLの INTEGER型です。

shmem_write

shmem_writeプロシージャは、データを BFM共有メモリに書き込みます。

表 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のデータ・パターンを指定します。

表 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 書き込まれるデータの長さ(バイト数)

Page 218: PCI Express コンパイラ・ ユーザガイドPCI Express コンパイラ・ ユーザガイド MegaCore バージョン:6.1 ドキュメント・バージョン: 6.1 rev. 2 ドキュメント・デート:2006年12

5–54 PCI Express Compiler Version 6.1 Altera CorporationPCI Expressコンパイラ・ユーザガイド 2006年 12月

BFM プロシージャおよびファンクション

shmem_readファンクション

shmem_read ファンクションはデータを BFM 共有メモリに読み込みます。

shmem_display VHDLプロシージャまたは Verilog HDLファンクション

shmem_display VHDLプロシージャまたはVerilog HDLファンクションは、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で指定される位置から読み込まれる(以下同様)、というようになります。

表 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 で定義されている定数のいずれかでなければなりません。

Page 219: PCI Express コンパイラ・ ユーザガイドPCI Express コンパイラ・ ユーザガイド MegaCore バージョン:6.1 ドキュメント・バージョン: 6.1 rev. 2 ドキュメント・デート:2006年12

Altera Corporation PCI Express Compiler Version 6.1 5–552006年 12月 PCI Expressコンパイラ・ユーザガイド

テストベンチおよび デザイン例

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 ビットより小さいデータ・パターンに使用されます。

Page 220: PCI Express コンパイラ・ ユーザガイドPCI Express コンパイラ・ ユーザガイド MegaCore バージョン:6.1 ドキュメント・バージョン: 6.1 rev. 2 ドキュメント・デート:2006年12

5–56 PCI Express Compiler Version 6.1 Altera CorporationPCI Expressコンパイラ・ユーザガイド 2006年 12月

BFM プロシージャおよびファンクション

shmem_chk_okファンクション

shmem_chk_okファンクションは、BFM共有メモリのブロックを指定されたデータ・パターンと照合します。

BFMログおよびメッセージ・プロシージャ

以下のプロシージャおよびファンクションは、VHDLパッケージ・ファイル altpcietb_bfm_log.vhd またはテストベンチのトップ・レベルでインスタンス化される altpcietb_bfm_log_common.vモジュールを使用する Verilog HDLインクルード・ファイル altpcietb_bfm_log.vに収められています。

これらのプロシージャは、一般的な書式でのメッセージの表示、情報メッセージの抑制、および特定のメッセージ・タイプでのシミュレーションの停止をサポートします。

表 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 —データ・パターンの比較が一致しなかったことを示します

Page 221: PCI Express コンパイラ・ ユーザガイドPCI Express コンパイラ・ ユーザガイド MegaCore バージョン:6.1 ドキュメント・バージョン: 6.1 rev. 2 ドキュメント・デート:2006年12

Altera Corporation PCI Express Compiler Version 6.1 5–572006年 12月 PCI Expressコンパイラ・ユーザガイド

テストベンチおよび デザイン例

ログ定数

以下の定数は、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()が呼び出された場合はログ・ファイルにも出力します。

以下の各プロシージャが呼び出されるごとに、各プロシージャのメッセージ・タイプおよびビット・マスクの値のデフォルト設定に応じて、メッセージの抑制またはシミュレーションの停止あるいはその両方を実行できます。表示するメッセージおよび特定のメッセージのシミュレーションを停止するかどうかに基づき、これらのプロシージャのいずれかまたは両方を呼び出すことができます。

■ ebfm_log_set_suppressed_msg_mask()を呼び出すと、ビット・マスクの値に基づいてメッセージの表示が抑制される場合があります。

■ ebfm_log_set_stop_on_msg_mask()を呼び出すと、ビット・マスクの値に基づいてメッセージが表示された後でシミュレーションが停止する場合があります。

Page 222: PCI Express コンパイラ・ ユーザガイドPCI Express コンパイラ・ ユーザガイド MegaCore バージョン:6.1 ドキュメント・バージョン: 6.1 rev. 2 ドキュメント・デート:2006年12

5–58 PCI Express Compiler Version 6.1 Altera CorporationPCI Expressコンパイラ・ユーザガイド 2006年 12月

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_INFO

エラーに関する追加情報を指定します。このメッセージを使用して、シミュレーションを停止するエラー・メッセージの前に暫定情報を表示します。

3 Y N ERROR:

EBFM_MSG_ERROR_CONTINUE

シミュレーションの継続を可能にする復元可能なエラーを指定します。エ ラ ー に はデータの不一致などがあります。

4 Y N ERROR:

EBFM_MSG_ERROR_FATAL

テストベンチがシミュレーションを継続できない状態を引き起こし、シミュレーションを停止するエラーを指定します。

N/A Y抑制不可

Y抑制不可

FATAL:

Page 223: PCI Express コンパイラ・ ユーザガイドPCI Express コンパイラ・ ユーザガイド MegaCore バージョン:6.1 ドキュメント・バージョン: 6.1 rev. 2 ドキュメント・デート:2006年12

Altera Corporation PCI Express Compiler Version 6.1 5–592006年 12月 PCI Expressコンパイラ・ユーザガイド

テストベンチおよび デザイン例

EBFM_MSG_ERROR_FATAL_TB_ERR

BFMテスト・ドライバまたはルート・ポート BFMの致命的エラーに使用します。テストベンチがシミュレーションを継続できない状態を引き起こし、シミュレーションを停止するエラーを指定し ま す。こ の エラー・メッセージは、テスト中のエンドポイント・アプリケーション・レイヤではなく、BFMテスト・ドライバ・モジュールま た は ル ー ト・ポートBFMでの問題に起因するエラーに対して使用します。

N/A Y抑制不可

Y抑制不可

FATAL:

表 5–35. VHDL定数を使用したログ・メッセージ -サブタイプ NATURAL(2 /2)

定数(メッセージ・タイプ)

説明マスク・ビット番号

表示(デフォルト)

シミュレーションの停止

(デフォルト)

メッセージ・プリフィックス

表 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文字を剥奪します。

戻り値 always 0 これは Verilog HDLルーチンにのみ適用されます。

Page 224: PCI Express コンパイラ・ ユーザガイドPCI Express コンパイラ・ ユーザガイド MegaCore バージョン:6.1 ドキュメント・バージョン: 6.1 rev. 2 ドキュメント・デート:2006年12

5–60 PCI Express Compiler Version 6.1 Altera CorporationPCI Expressコンパイラ・ユーザガイド 2006年 12月

BFM プロシージャおよびファンクション

ebfm_log_stop_sim VHDLプロシージャまたは Verilog HDLファンクション

ebfm_log_stop_simプロシージャは、シミュレーションを停止します。

ebfm_log_set_suppressed_msg_maskプロシージャ

ebfm_log_set_suppressed_msg_mask プロシージャは、抑制するメッセージ・タイプを制御します。これにより 5–58ページの表 5–35に示すDisplayed by Default設定が変更されます。

表 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ファンクションにのみ適用されます。

表 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の場合、そのビット位置に対応するタイプのメッセージが抑制されます。

Page 225: PCI Express コンパイラ・ ユーザガイドPCI Express コンパイラ・ ユーザガイド MegaCore バージョン:6.1 ドキュメント・バージョン: 6.1 rev. 2 ドキュメント・デート:2006年12

Altera Corporation PCI Express Compiler Version 6.1 5–612006年 12月 PCI Expressコンパイラ・ユーザガイド

テストベンチおよび デザイン例

ebfm_log_set_stop_on_msg_maskプロシージャ

ebfm_log_set_stop_on_msg_mask プロシージャは、どのメッセージ・タイプでシミュレーションを停止するかを制御します。これにより5–58ページの表 5–35に示す Stop Sim by Default設定が変更されます。

ebfm_log_openプロシージャ

ebfm_log_openプロシージャは、指定された名前のログ・ファイルを開きます。表示されるメッセージはすべて ebfm_display によって呼び出され、シミュレータ標準出力としてこのログ・ファイルに書き出されます。

ebfm_log_closeプロシージャ

ebfm_log_closeプロシージャは、以前ebfm_log_openを呼び出すことによって開かれたログ・ファイルを閉じます。

表 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の場合、そのビット位置に対応するタイプのメッセージが表示された後、シミュレーションが停止します。

表 5–40. ebfm_log_openプロシージャ

構文 ebfm_log_open (fn)

引数 fn この引数のタイプは文字列型です。開くログ・ファイルのファイル名です。

表 5–41. ebfm_log_closeプロシージャ

構文 ebfm_log_close

引数 なし

Page 226: PCI Express コンパイラ・ ユーザガイドPCI Express コンパイラ・ ユーザガイド MegaCore バージョン:6.1 ドキュメント・バージョン: 6.1 rev. 2 ドキュメント・デート:2006年12

5–62 PCI Express Compiler Version 6.1 Altera CorporationPCI Expressコンパイラ・ユーザガイド 2006年 12月

BFM プロシージャおよびファンクション

himage (std_logic_vector)ファンクション

himageファンクションは、std_logic_vector引数を 16進文字列形式で返すユーティリティ・ルーチンです。文字列の長さは、std_logic_vectorを 4で除算(切り上げ)した値です。必要に応じて引数に文字を埋め込んだり引数を切り捨てることによって、文字列の長さを制御できます。

himage (integer)ファンクション

himageファンクションは、整数引数を 16進文字列形式で返すユーティリティ・ルーチンです。この文字列の長さは、hlen引数で指定されます。

Verilog HDLフォーマッティング・ファンクション

この項では、Verilog HDL でのみ使用するフォーマッティング・ファンクションの概要を示します。これらのファンクションはすべて指定された長さの引数を 1つ取り込み、指定された長さのベクタを返します。

表 5–42. himage (std_logic_vector)ファンクション

構文 string:= himage(vec)

引数 vec この引数は、16進文字列に変換される std_logic_vectorです。

戻り値 文字列 引数を 16進文字列形式で表したものです。

表 5–43. himage (integer)ファンクション

構文 string:= himage(num, hlen)

引数 num 16進文字列に変換される整数型の引数です

hlen 返される文字列の長さです。文字列は必要に応じて、切り捨てたり右に 0を埋め込みます。

戻り値 文字列 引数を 16進文字列形式で表したものです。

Page 227: PCI Express コンパイラ・ ユーザガイドPCI Express コンパイラ・ ユーザガイド MegaCore バージョン:6.1 ドキュメント・バージョン: 6.1 rev. 2 ドキュメント・デート:2006年12

Altera Corporation PCI Express Compiler Version 6.1 5–632006年 12月 PCI Expressコンパイラ・ユーザガイド

テストベンチおよび デザイン例

himage1

このファンクションは、より大きなサイズのメッセージ文字列に連結し、ebfm_displayに渡すことができる入力引数の1 桁の16進文字列を作成します。

himage2

このファンクションは、より大きなサイズのメッセージ文字列に連結し、ebfm_displayに渡すことができる入力引数の2 桁の16進文字列を作成します。

himage4

このファンクションは、より大きなサイズのメッセージ文字列に連結し、ebfm_displayに渡すことができる入力引数の4 桁の16進文字列を作成します。

表 5–44. himage1

構文 string:= himage(vec)

引数 vec 範囲が 3~ 0の reg型入力データ

戻り値の範囲 文字列 入力引数の 1 桁の 16進数を返します。戻りデータは範囲が 8~ 1の reg型です

表 5–45. himage2

構文 string:= himage(vec)

引数の範囲 vec 範囲が 7~ 0の reg型入力データ

戻り値の範囲 文字列 入力引数を 2 桁の 16進数形式で返します。必要に応じて先頭に 0が埋め込まれます。戻りデータは範囲が 16~ 1の reg型です。

表 5–46. himage4

構文 string:= himage(vec)

引数の範囲 vec 範囲が 15~ 0の reg型入力データ

戻り値の範囲 文字列 入力引数を 4 桁の 16進数形式で返します。必要に応じて先頭に 0が埋め込まれます。戻りデータは範囲が 32~ 1の reg型です。

Page 228: PCI Express コンパイラ・ ユーザガイドPCI Express コンパイラ・ ユーザガイド MegaCore バージョン:6.1 ドキュメント・バージョン: 6.1 rev. 2 ドキュメント・デート:2006年12

5–64 PCI Express Compiler Version 6.1 Altera CorporationPCI Expressコンパイラ・ユーザガイド 2006年 12月

BFM プロシージャおよびファンクション

himage8

このファンクションは、より大きなサイズのメッセージ文字列に連結し、ebfm_displayに渡すことができる入力引数の8 桁の16進文字列を作成します。

himage16

このファンクションは、より大きなサイズのメッセージ文字列に連結し、ebfm_displayに渡すことができる入力引数の 16 桁の 16進文字列を作成します。

dimage1

このファンクションは、より大きなサイズのメッセージ文字列に連結し、ebfm_displayに渡すことができる入力引数の1 桁の16進文字列を作成します。

表 5–47. himage8

構文 string:= himage(vec)

引数の範囲 vec 範囲が 31~ 0の reg型入力データ

戻り値の範囲 文 字列

入力引数を 8 桁の 16進数形式で返します。必要に応じて先頭に 0が埋め込まれます。戻りデータは範囲が 64~ 1の reg型です。

表 5–48. himage16

構文 string:= himage(vec)

引数の範囲 vec 範囲が 63~ 0の reg型入力データ

戻り値の範囲 文字列 入力引数を 16 桁の 16進数形式で返します。必要に応じて先頭に 0が埋め込まれます。戻りデータは範囲が 128~ 1の reg型です。

表 5–49. dimage1

構文 string:= dimage(vec)

引数の範囲 vec 範囲が 31~ 0の reg型入力データ

戻り値の範囲 文字列 入力引数を 1 桁の 10進数形式で返します。必要に応じて先頭に 0が埋め込まれます。戻りデータは範囲が 8~ 1の reg型です。

値を表現できない場合は、文字 Uが返されます。

Page 229: PCI Express コンパイラ・ ユーザガイドPCI Express コンパイラ・ ユーザガイド MegaCore バージョン:6.1 ドキュメント・バージョン: 6.1 rev. 2 ドキュメント・デート:2006年12

Altera Corporation PCI Express Compiler Version 6.1 5–652006年 12月 PCI Expressコンパイラ・ユーザガイド

テストベンチおよび デザイン例

dimage2

このファンクションは、より大きなサイズのメッセージ文字列に連結し、ebfm_displayに渡すことができる入力引数の2 桁の16進文字列を作成します。

dimage3

このファンクションは、より大きなサイズのメッセージ文字列に連結し、ebfm_displayに渡すことができる入力引数の3 桁の16進文字列を作成します。

表 5–50. dimage2

構文 string:= dimage(vec)

引数の範囲 vec 範囲が 31~ 0の reg型入力データ

戻り値の範囲 文字列 入力引数を 2 桁の 10進数形式で返します。必要に応じて先頭に 0が埋め込まれます。戻りデータは範囲 16~ 1の reg型です。

値を表現できない場合は、文字 Uが返されます。

表 5–51. dimage3

構文 string:= dimage(vec)

引数の範囲 vec 範囲が 31~ 0の reg型入力データ

戻り値の範囲 文字列 入力引数を 3 桁の 10 進数形式で返します。必要に応じて先頭に 0 が埋め込まれます。戻りデータは範囲が 24~ 1の reg型です。

値を表現できない場合は、文字 Uが返されます。

Page 230: PCI Express コンパイラ・ ユーザガイドPCI Express コンパイラ・ ユーザガイド MegaCore バージョン:6.1 ドキュメント・バージョン: 6.1 rev. 2 ドキュメント・デート:2006年12

5–66 PCI Express Compiler Version 6.1 Altera CorporationPCI Expressコンパイラ・ユーザガイド 2006年 12月

BFM プロシージャおよびファンクション

dimage4

このファンクションは、より大きなサイズのメッセージ文字列に連結し、ebfm_displayに渡すことができる入力引数の4 桁の16進文字列を作成します。

dimage5

このファンクションは、より大きなサイズのメッセージ文字列に連結し、ebfm_displayに渡すことができる入力引数の5 桁の16進文字列を作成します。

表 5–52. dimage4

構文 string:= dimage(vec)

引数の範囲 vec 範囲が 31~ 0の reg型入力データ

戻り値の範囲 文字列 入力引数を 4 桁の 10 進数形式で返します。必要に応じて先頭に 0 が埋め込まれます。戻りデータは範囲が 32~ 1の reg型です。

値を表現できない場合は、文字 Uが返されます。

表 5–53. dimage5

構文 string:= dimage(vec)

引数の範囲 vec 範囲が 31~ 0の reg型入力データ

戻り値の範囲 文字列 入力引数を 5 桁の 10 進数形式で返します。必要に応じて先頭に 0 が埋め込まれます。戻りデータは範囲が 40~ 1の reg型です。

値を表現できない場合は、文字 Uが返されます。

Page 231: PCI Express コンパイラ・ ユーザガイドPCI Express コンパイラ・ ユーザガイド MegaCore バージョン:6.1 ドキュメント・バージョン: 6.1 rev. 2 ドキュメント・デート:2006年12

Altera Corporation PCI Express Compiler Version 6.1 5–672006年 12月 PCI Expressコンパイラ・ユーザガイド

テストベンチおよび デザイン例

dimage6

このファンクションは、より大きなサイズのメッセージ文字列に連結し、ebfm_displayに渡すことができる入力引数の6 桁の16進文字列を作成します。

dimage7

このファンクションは、より大きなサイズのメッセージ文字列に連結し、ebfm_displayに渡すことができる入力引数の7 桁の16進文字列を作成します。

表 5–54. dimage6

構文 string:= dimage(vec)

引数の範囲 vec 範囲が 31~ 0の reg型入力データ

戻り値の範囲 文字列 入力引数を 6 桁の 10 進数形式で返します。必要に応じて先頭に 0 が埋め込まれます。戻りデータは範囲 48~ 1の reg型です。

値を表現できない場合は、文字 Uが返されます。

表 5–55. dimage7

構文 string:= dimage(vec)

引数の範囲 vec 範囲が 31~ 0の reg型入力データ

戻り値の範囲 文字列 入力引数を 7 桁の 10 進数形式で返します。必要に応じて先頭に 0 が埋め込まれます。戻りデータは範囲が 56~ 1の reg型です。

値を表現できない場合は、文字 Uが返されます。

Page 232: PCI Express コンパイラ・ ユーザガイドPCI Express コンパイラ・ ユーザガイド MegaCore バージョン:6.1 ドキュメント・バージョン: 6.1 rev. 2 ドキュメント・デート:2006年12

5–68 PCI Express Compiler Version 6.1 Altera CorporationPCI Expressコンパイラ・ユーザガイド 2006年 12月

BFM プロシージャおよびファンクション

チェイニングDMAデザイン固有のプロシージャおよびファンクション

この項では、チェイニング DMAのデザイン例に固有のプロシージャについて説明します。

chained_dma_testプロシージャ

chained_dma_testプロシージャは、チェイニングDMAリードおよびチェイニングDMAライトを実行するトップ・レベル・プロシージャです。

dma_rd_testプロシージャ

dma_rd_testプロシージャは、エンドポイント・メモリから BFM共有メモリへの 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完了を検出します。

表 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完了を検出します。

Page 233: PCI Express コンパイラ・ ユーザガイドPCI Express コンパイラ・ ユーザガイド MegaCore バージョン:6.1 ドキュメント・バージョン: 6.1 rev. 2 ドキュメント・デート:2006年12

Altera Corporation PCI Express Compiler Version 6.1 5–692006年 12月 PCI Expressコンパイラ・ユーザガイド

テストベンチおよび デザイン例

dma_wr_testプロシージャ

dma_wr_testプロシージャは、BFM共有メモリからエンドポイント・メモリへの DMAライトに使用します。

dma_set_rd_desc_dataプロシージャ

dma_set_rd_desc_data プロシージャは、BFM 共有メモリを DMAリード用にコンフィギュレーションするのに使用します。

dma_set_wr_desc_dataプロシージャ

dma_set_wr_desc_dataプロシージャは、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 expressMSIを使用して DMA完了を検出します。

Use_eplast この引数が設定されると、ルート・ポートは 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番号

表 5–60. dma_set_wr_desc_dataプロシージャ

構文 dma_set_wr_desc_data (bar_table, bar_num)

引数 bar_table BFM共有メモリのエンドポイント bar_table構造のアドレス

bar_num 解析する BAR番号

Page 234: PCI Express コンパイラ・ ユーザガイドPCI Express コンパイラ・ ユーザガイド MegaCore バージョン:6.1 ドキュメント・バージョン: 6.1 rev. 2 ドキュメント・デート:2006年12

5–70 PCI Express Compiler Version 6.1 Altera CorporationPCI Expressコンパイラ・ユーザガイド 2006年 12月

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 この引数が設定されると、ルート・ポートはネイティブ PCIexpress 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 トラフィック・クラスを指定します。

Page 235: PCI Express コンパイラ・ ユーザガイドPCI Express コンパイラ・ ユーザガイド MegaCore バージョン:6.1 ドキュメント・バージョン: 6.1 rev. 2 ドキュメント・デート:2006年12

Altera Corporation PCI Express Compiler Version 6.1 5–712006年 12月 PCI Expressコンパイラ・ユーザガイド

テストベンチおよび デザイン例

rc_pollプロシージャ

rc_pollプロシージャは、与えられたBFM共有メモリ位置のDWORDをポーリングするのに使用します。

msi_pollプロシージャ

msi_pollプロシージャは、エンドポイントからMSIコンプリーションを追跡します。

表 5–62. rc_pollプロシージャ

構文 rc_poll (rc_addr, rc_data)

引数 rc_addr ポーリングする BFM共有メモリのアドレス

rc_data ポーリングするデータの期待値

表 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 トラフィック・クラスを指定します。

Page 236: PCI Express コンパイラ・ ユーザガイドPCI Express コンパイラ・ ユーザガイド MegaCore バージョン:6.1 ドキュメント・バージョン: 6.1 rev. 2 ドキュメント・デート:2006年12

5–72 PCI Express Compiler Version 6.1 Altera CorporationPCI Expressコンパイラ・ユーザガイド 2006年 12月

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マルチ・メッセージ・イネーブル・ステータスを返します。

Page 237: PCI Express コンパイラ・ ユーザガイドPCI Express コンパイラ・ ユーザガイド MegaCore バージョン:6.1 ドキュメント・バージョン: 6.1 rev. 2 ドキュメント・デート:2006年12

Altera Corporation PCI Express Compiler Version 6.1 A–12006年 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ファンクションは PCIExpress 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レジスタ。

Page 238: PCI Express コンパイラ・ ユーザガイドPCI Express コンパイラ・ ユーザガイド MegaCore バージョン:6.1 ドキュメント・バージョン: 6.1 rev. 2 ドキュメント・デート:2006年12

A–2 PCI Express Compiler Version 6.1 Altera CorporationPCI Expressコンパイラ・ユーザガイド 2006年 12月

X1および x4 MegaCore ファンクションのコンフィギュレーション信号

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 Virtual Channels

ポート VC機能レジスタ 1低優先度 VCフィールド。

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–1. X1および x4 MegaCoreファンクションのコンフィギュレーション信号(2 /6)

信号値またはウィザード・ページ /ラベル 説明

Page 239: PCI Express コンパイラ・ ユーザガイドPCI Express コンパイラ・ ユーザガイド MegaCore バージョン:6.1 ドキュメント・バージョン: 6.1 rev. 2 ドキュメント・デート:2006年12

Altera Corporation PCI Express Compiler Version 6.1 A–32006年 12月 PCI Expressコンパイラ・ユーザガイド

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

表 A–1. X1および x4 MegaCoreファンクションのコンフィギュレーション信号(3 /6)

信号値またはウィザード・ページ /ラベル 説明

Page 240: PCI Express コンパイラ・ ユーザガイドPCI Express コンパイラ・ ユーザガイド MegaCore バージョン:6.1 ドキュメント・バージョン: 6.1 rev. 2 ドキュメント・デート:2006年12

A–4 PCI Express Compiler Version 6.1 Altera CorporationPCI Expressコンパイラ・ユーザガイド 2006年 12月

X1および x4 MegaCore ファンクションのコンフィギュレーション信号

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 Message 64 bit Capable

MSI機能メッセージ・コントロール・レジスタ : 64ビット機能。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 = サイズ・マスク)。

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 = イネーブル。

表 A–1. X1および x4 MegaCoreファンクションのコンフィギュレーション信号(4 /6)

信号値またはウィザード・ページ /ラベル 説明

Page 241: PCI Express コンパイラ・ ユーザガイドPCI Express コンパイラ・ ユーザガイド MegaCore バージョン:6.1 ドキュメント・バージョン: 6.1 rev. 2 ドキュメント・デート:2006年12

Altera Corporation PCI Express Compiler Version 6.1 A–52006年 12月 PCI Expressコンパイラ・ユーザガイド

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に固定 アップデート・フロー制御クレジット・タイマ(単位 µs)。

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-Posted Header Credit

VC0 Non-Postedヘッダの受信フロー制御クレジット。

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-Posted Header Credit

VC1 Non-Postedヘッダの受信フロー制御クレジット。

k_vc1[35:28] 0に固定 VC1 Non-Postedデータの受信フロー制御クレジット。Non-Posted ライト(コンフィギュレーションおよびI/Oライト)は VC0のみ使用します。

k_vc1[43:36] 0に固定 VC1コンプリーション・ヘッダの受信フロー制御クレジット。エンドポイントで無限のコンプリーション・クレジットをアドバタイズする必要があります。

表 A–1. X1および x4 MegaCoreファンクションのコンフィギュレーション信号(5 /6)

信号値またはウィザード・ページ /ラベル 説明

Page 242: PCI Express コンパイラ・ ユーザガイドPCI Express コンパイラ・ ユーザガイド MegaCore バージョン:6.1 ドキュメント・バージョン: 6.1 rev. 2 ドキュメント・デート:2006年12

A–6 PCI Express Compiler Version 6.1 Altera CorporationPCI Expressコンパイラ・ユーザガイド 2006年 12月

X1および x4 MegaCore ファンクションのコンフィギュレーション信号

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-Posted Header Credit

VC2 Non-Postedヘッダの受信フロー制御クレジット。

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-Posted Header Credit

VC3 Non-Postedヘッダの受信フロー制御クレジット。

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–1. X1および x4 MegaCoreファンクションのコンフィギュレーション信号(6 /6)

信号値またはウィザード・ページ /ラベル 説明

Page 243: PCI Express コンパイラ・ ユーザガイドPCI Express コンパイラ・ ユーザガイド MegaCore バージョン:6.1 ドキュメント・バージョン: 6.1 rev. 2 ドキュメント・デート:2006年12

Altera Corporation PCI Express Compiler Version 6.1 A–72006年 12月 PCI Expressコンパイラ・ユーザガイド

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 Express1.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サポート時に必要な最大補助電流。

Page 244: PCI Express コンパイラ・ ユーザガイドPCI Express コンパイラ・ ユーザガイド MegaCore バージョン:6.1 ドキュメント・バージョン: 6.1 rev. 2 ドキュメント・デート:2006年12

A–8 PCI Express Compiler Version 6.1 Altera CorporationPCI Expressコンパイラ・ユーザガイド 2006年 12月

X8 MegaCoreファンクションのコンフィギュレーション信号

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 Priority Virtual Channels

ポート VC機能レジスタ 1の低優先度 VCフィールド。

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] 0に固定 Reserved

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。

表 A–2. X8 MegaCoreファンクションのコンフィギュレーション信号(2 /4)

信号値またはウィザード・ページ /ラベル 説明

Page 245: PCI Express コンパイラ・ ユーザガイドPCI Express コンパイラ・ ユーザガイド MegaCore バージョン:6.1 ドキュメント・バージョン: 6.1 rev. 2 ドキュメント・デート:2006年12

Altera Corporation PCI Express Compiler Version 6.1 A–92006年 12月 PCI Expressコンパイラ・ユーザガイド

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] 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 Message 64 bit Capable

MSI 機能メッセージ・コントロール・レジスタ :64 ビット機能。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 = サイズ・マスク)。

表 A–2. X8 MegaCoreファンクションのコンフィギュレーション信号(3 /4)

信号値またはウィザード・ページ /ラベル 説明

Page 246: PCI Express コンパイラ・ ユーザガイドPCI Express コンパイラ・ ユーザガイド MegaCore バージョン:6.1 ドキュメント・バージョン: 6.1 rev. 2 ドキュメント・デート:2006年12

A–10 PCI Express Compiler Version 6.1 Altera CorporationPCI Expressコンパイラ・ユーザガイド 2006年 12月

X8 MegaCoreファンクションのコンフィギュレーション信号

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–2. X8 MegaCoreファンクションのコンフィギュレーション信号(4 /4)

信号値またはウィザード・ページ /ラベル 説明

Page 247: PCI Express コンパイラ・ ユーザガイドPCI Express コンパイラ・ ユーザガイド MegaCore バージョン:6.1 ドキュメント・バージョン: 6.1 rev. 2 ドキュメント・デート:2006年12

Altera Corporation PCI Express Compiler Version 6.1 B–12006年 12月

付録 B.トランザクション・レイヤ・

パケットのヘッダ・フォーマット

データ・ペイロードを含まないコンテンツ

表 B–2から B–9に、データ・ペイロードを含まないトランザクション・レイヤ・パケットのヘッダ・フォーマットを示します。これらのヘッダがtx_descおよびrx_descとしてMegaCoreファンクションとの間で転送される場合、表 B–1に示すマッピングが使用されます。

表 B–1. ヘッダのマッピング

ヘッダ・バイト tx_desc/rx_descビット

バイト 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

Page 248: PCI Express コンパイラ・ ユーザガイドPCI Express コンパイラ・ ユーザガイド MegaCore バージョン:6.1 ドキュメント・バージョン: 6.1 rev. 2 ドキュメント・デート:2006年12

B–2 PCI Express Compiler Version 6.1 Altera CorporationPCI Expressコンパイラ・ユーザガイド 2006年 12月

データ・ペイロードを含むコンテンツ

データ・ペイロードを含むコンテンツ

表 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 6 5 4 3 2 1 0 7 6 5 4 3 2 1 0

バイト 0 0 1 0 0 0 0 0 0 0 TC 0 0 0 0 TD EP Attr 0 0 長さ

バイト 4 リクエスタ ID タグ 末尾 BE 先頭 BE

バイト 8 アドレス [31:2] 0 0

バイト12 R

表 B–3. メモリ・ライト・リクエスト、64ビット・アドレッシング

+0 +1 +2 +3

7 6 5 4 3 2 1 0 7 6 5 4 3 2 1 0 7 6 5 4 3 2 1 0 7 6 5 4 3 2 1 0

バイト 0 0 1 1 0 0 0 0 0 0 TC 0 0 0 0 TD EP Attr 0 0 長さ

バイト 4 リクエスタ ID タグ 末尾 BE 先頭 BE

バイト 8 アドレス [63:32]

バイト12 アドレス [31:2] 0 0

表 B–4. I/O書き込みリクエスト

+0 +1 +2 +3

7 6 5 4 3 2 1 0 7 6 5 4 3 2 1 0 7 6 5 4 3 2 1 0 7 6 5 4 3 2 1 0

バイト 0 0 1 0 0 0 0 1 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 タグ 0 0 0 0 先頭 BE

バイト 8 アドレス [31:2] 0 0

バイト12 R

Page 249: PCI Express コンパイラ・ ユーザガイドPCI Express コンパイラ・ ユーザガイド MegaCore バージョン:6.1 ドキュメント・バージョン: 6.1 rev. 2 ドキュメント・デート:2006年12

Altera Corporation PCI Express Compiler Version 6.1 B–32006年 12月 PCI Expressコンパイラ・ユーザガイド

表 B–5. タイプ 0コンフィギュレーション書き込みリクエスト

+0 +1 +2 +3

7 6 5 4 3 2 1 0 7 6 5 4 3 2 1 0 7 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 タグ 0 0 0 0 先頭 BE

バイト 8 バス番号 デバイス番号 Func 0 0 0 0 Ext.Reg. レジスタ番号 0 0

バイト12 R

表 B–6. タイプ 1コンフィギュレーション書き込みリクエスト

+0 +1 +2 +3

7 6 5 4 3 2 1 0 7 6 5 4 3 2 1 0 7 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 タグ 0 0 0 0 先頭 BE

バイト 8 バス番号 デバイス番号 Func 0 0 0 0 Ext.Reg. レジスタ番号 0 0

バイト12 R

表 B–7. コンプリーション・ウィズ・データ+0 +1 +2 +3

7 6 5 4 3 2 1 0 7 6 5 4 3 2 1 0 7 6 5 4 3 2 1 0 7 6 5 4 3 2 1 0

バイト 0 0 1 0 0 1 0 1 0 0 TC 0 0 0 0 TD EP Attr 0 0 長さ

バイト 4 コンプリータ ID ステータス B バイト数

バイト 8 リクエスタ ID タグ 0 下位アドレス

バイト12 R

表 B–8. コンプリーション・ロックド・ウィズ・データ+0 +1 +2 +3

7 6 5 4 3 2 1 0 7 6 5 4 3 2 1 0 7 6 5 4 3 2 1 0 7 6 5 4 3 2 1 0

バイト 0 0 1 0 0 1 0 1 1 0 TC 0 0 0 0 TD EP Attr 0 0 長さ

バイト 4 コンプリータ ID ステータス B バイト数

バイト 8 リクエスタ ID タグ 0 下位アドレス

バイト12

Page 250: PCI Express コンパイラ・ ユーザガイドPCI Express コンパイラ・ ユーザガイド MegaCore バージョン:6.1 ドキュメント・バージョン: 6.1 rev. 2 ドキュメント・デート:2006年12

B–4 PCI Express Compiler Version 6.1 Altera CorporationPCI Expressコンパイラ・ユーザガイド 2006年 12月

データ・ペイロードを含むコンテンツ

表 B–9. メッセージ・ウィズ・データ+0 +1 +2 +3

7 6 5 4 3 2 1 0 7 6 5 4 3 2 1 0 7 6 5 4 3 2 1 0 7 6 5 4 3 2 1 0

バイト 0 0 1 1 1 0 r2

r1

r0

0 TC 0 0 0 0 TD EP 0 0 0 0 長さ

バイト 4 リクエスタ ID タグ メッセージ・コード

バイト 8 スロット電力制限のためのベンダ定義またはオール・ゼロ

バイト12 スロット電力制限のためのベンダ定義またはオール・ゼロ

Page 251: PCI Express コンパイラ・ ユーザガイドPCI Express コンパイラ・ ユーザガイド MegaCore バージョン:6.1 ドキュメント・バージョン: 6.1 rev. 2 ドキュメント・デート:2006年12

Altera Corporation PCI Express Compiler Version 6.1 C–12006年 12月

付録 C.テスト・ポート・

インタフェース信号

テスト・ポートにはテスト・アウト信号とテスト・イン信号があり、PCIExpress MegaCore ファンクションに観測機能および制御機能を追加します。

■ 出力ポートは MegaCore ファンクションの内部ノードを表示し、ステート・マシンの状態や各エラー・タイプに対するエラー・カウンタなどの情報を提供します。

■ 入力ポートはMegaCoreファンクションを標準以外の方法でコンフィギュレーションするのに使用できます。例えば、自動テストのためにエラーを注入したり、リモート・ブートおよびコンプライアンス・モードのディセーブルまたは強制などの機能を追加するのに使用できます。

Page 252: PCI Express コンパイラ・ ユーザガイドPCI Express コンパイラ・ ユーザガイド MegaCore バージョン:6.1 ドキュメント・バージョン: 6.1 rev. 2 ドキュメント・デート:2006年12

C–2 PCI Express Compiler Version 6.1 Altera CorporationPCI Expressコンパイラ・ユーザガイド 2006年 12月

x1 & x4 MegaCore ファンクション用テスト・アウト・インタフェース 信号

x1 & x4 MegaCoreファンクション用テスト・アウト・インタフェース信号

表 C–1に x1および x4 MegaCoreファンクション用テスト・アウト信号を示します。

表 C–1. x1および x4 MegaCoreファンクション用 test_out信号 (1 /18)

信号 サブブロック ビット 説明

rx_fval_tlprx_hval_tlprx_dval_tlp

TRN rxtl 2:0 受信トランザクション・レイヤ・パケットの受信状態。これらの信号はトランザクション・レイヤ・パケットの受信シーケンスを通知します。

● ビット 0: ヘッダの DW0および DW1は有効です● ビット 1: ヘッダの DW2および DW3は有効です。● ビット 2: データ・ペイロードは有効です

rx_check_tlprx_discard_tlprx_mlf_tlptlp_errrxfc_ovfrx_ecrcerr_tlprx_uns_tlprx_sup_tlp

TRN rxtl 10:3 受信トランザクション・レイヤ・パケット・チェック・ステート。これらの信号はトランザクション・レイヤ・パケット受信シーケンスを通知します。

● ビット 0: LCRCをチェックします● ビット 1: LCRCエラーまたはシーケンス番号エラーを示します● ビット 2: END/ 長さフィールドのミスマッチによる不正なトランザクション・レイヤ・パケットを示します

● ビット 3: 形成ルールに準拠しない不正なトランザクション・レイヤ・パケットを示します。

● ビット 4: フロー制御ルールの違反を示します。● ビット 5: ECRCエラーを示します(フロー制御クレジットは更新されます)

● ビット 6: サポートされていないトランザクション・レイヤ・パケットの受信を示します(フロー制御クレジットは更新されます)

● ビット 7: コンフィギュレーション領域に送られるトランザクション・レイヤ・パケットを示します(フロー制クレジットは更新されます)。

ビット 1、2、3、または 4 が設定されている場合、受信バッファからトランザクション・レイヤ・パケットが削除されるため、フロー制御クレジットは消費されません。ビット 5、6、または 7が設定されている場合、トランザクション・レイヤ・パケットは受信バッファに書き込まれた後でコンフィギュレーション領域に送信され、フロー制御クレジットが更新されます。

Page 253: PCI Express コンパイラ・ ユーザガイドPCI Express コンパイラ・ ユーザガイド MegaCore バージョン:6.1 ドキュメント・バージョン: 6.1 rev. 2 ドキュメント・デート:2006年12

Altera Corporation PCI Express Compiler Version 6.1 C–32006年 12月 PCI Expressコンパイラ・ユーザガイド

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 送信シーケンス有効。この信号はリンク上の初期化されたレーン数に応じて変化するシーケンス信号パルスで、トランザクション・レイヤからデータ・リンク層へのデータ転送をイネーブルします。

表 C–1. x1および x4 MegaCoreファンクション用 test_out信号 (2 /18)

信号 サブブロック ビット 説明

Page 254: PCI Express コンパイラ・ ユーザガイドPCI Express コンパイラ・ ユーザガイド MegaCore バージョン:6.1 ドキュメント・バージョン: 6.1 rev. 2 ドキュメント・デート:2006年12

C–4 PCI Express Compiler Version 6.1 Altera CorporationPCI Expressコンパイラ・ユーザガイド 2006年 12月

x1 & x4 MegaCore ファンクション用テスト・アウト・インタフェース 信号

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 に低消費電力状態に移行するよう要求するパワー・マネージメント機能です。

● bit 0: exit any low-power state to L0● bit 1: requests transition to L0s● bit 2: requests transition to L1● bit 3: requests transition to L2

ack_phypm CFG pmgt 64:63 LTSSMは PM遷移イベントを通知します。これは、以下のようにLTTSM が低消費電力状態に移行したことを通知するパワー・マネージメント機能です。

● bit 0: receiver detects low-power exit● bit 1: indicates that the transition to

low-power state is complete

pme_status3rx_pm_pme

CFG pcie 65 受信した PM_PME メッセージの破棄。この信号は、ストレージ容量の不足のため受信した PM_PME メッセージがルート・ポートで破棄されたことを通知します。

表 C–1. x1および x4 MegaCoreファンクション用 test_out信号 (3 /18)

信号 サブブロック ビット 説明

Page 255: PCI Express コンパイラ・ ユーザガイドPCI Express コンパイラ・ ユーザガイド MegaCore バージョン:6.1 ドキュメント・バージョン: 6.1 rev. 2 ドキュメント・デート:2006年12

Altera Corporation PCI Express Compiler Version 6.1 C–52006年 12月 PCI Expressコンパイラ・ユーザガイド

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エラー。以下のような物理層エラーです。

● bit 0: Receiver port error● bit 1: Training error

err_dll CFG errmgt

89:85 データ・リンク層エラー。以下のようなデータ・リンク層のエラーです。

● bit 0: Transaction layer packet error● bit 1: Data link layerP error● bit 2: Replay timer error● bit 3: Replay counter rollover● bit 4: Data link layer protocol error

err_trn CFG errmgt

98:90 TRNエラー。以下のようなトランザクション・レイヤ・エラーです。

● 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

表 C–1. x1および x4 MegaCoreファンクション用 test_out信号 (4 /18)

信号 サブブロック ビット 説明

Page 256: PCI Express コンパイラ・ ユーザガイドPCI Express コンパイラ・ ユーザガイド MegaCore バージョン:6.1 ドキュメント・バージョン: 6.1 rev. 2 ドキュメント・デート:2006年12

C–6 PCI Express Compiler Version 6.1 Altera CorporationPCI Expressコンパイラ・ユーザガイド 2006年 12月

x1 & x4 MegaCore ファンクション用テスト・アウト・インタフェース 信号

r2c_ackc2r_ackrxbuf_busyrxfc_updated

TRN rxvc0

102:99 受信 VC0ステータス。以下のとおり、VC0に関連するイベントを通知します。

● 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

r2c_ackc2r_ackrxbuf_busyrxfc_updated

TRN rxvc1

106:013 受信 VC1ステータス。以下のとおり、VC1に関連するイベントを通知します。

● 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

r2c_ackc2r_ackrxbuf_busyrxfc_updated

TRN rxvc2

110:107 受信 VC2ステータス。以下のとおり、VC2に関連するイベントを通知します。

● 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

r2c_ackc2r_ackrxbuf_busyrxfc_updated

TRN rxvc3

114:111 受信 VC3ステータス。以下のとおり、VC3に関連するイベントを通知します。

● 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

Reserved ビット 131~ 255の間の連続するすべての信号は、test_in[31:29]入力で選択されるバーチャル・チャネルによって決まります。

表 C–1. x1および x4 MegaCoreファンクション用 test_out信号 (5 /18)

信号 サブブロック ビット 説明

Page 257: PCI Express コンパイラ・ ユーザガイドPCI Express コンパイラ・ ユーザガイド MegaCore バージョン:6.1 ドキュメント・バージョン: 6.1 rev. 2 ドキュメント・デート:2006年12

Altera Corporation PCI Express Compiler Version 6.1 C–72006年 12月 PCI Expressコンパイラ・ユーザガイド

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: idle● 01: data_first● 10: data_next● 11: 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 送信ステート・マシン。ステート・マシン・エンコーディングは以下のとおりです。

● 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

表 C–1. x1および x4 MegaCoreファンクション用 test_out信号 (6 /18)

信号 サブブロック ビット 説明

Page 258: PCI Express コンパイラ・ ユーザガイドPCI Express コンパイラ・ ユーザガイド MegaCore バージョン:6.1 ドキュメント・バージョン: 6.1 rev. 2 ドキュメント・デート:2006年12

C–8 PCI Express Compiler Version 6.1 Altera CorporationPCI Expressコンパイラ・ユーザガイド 2006年 12月

x1 & x4 MegaCore ファンクション用テスト・アウト・インタフェース 信号

rx_sub TRN rxfc 199:144 受信フロー制御クレジット。利用可能な受信バッファ現行クレジット。

● bit [7:0]: Posted Header (PH)● bit [19:8]: Posted Data (PD)● bit [27:20]: Non-Posted Header (NPH)● bit [35:28]: Non-Posted Data (NPD)● bit [43:36]: Completion Header (CPLH)● bit [55:44]: Completion Data (CPLD)

NPHクレジットを上回る NPDクレジットは無意味なため、NPDに対するフロー制御クレジットは 8ビットに制限されています。

tx_sub TRN txfc 255:200 送信フロー制御クレジット。利用可能な送信バッファ現行クレジット。

● bit [7:0]: Posted Header (PH)● bit [19:8]: Posted Data (PD)● bit [27:20]: Non-Posted Header (NPH)● bit [35:28]: Non-Posted Data (NPD)● bit [43:36]: Completion Header (CPLH)● bit [55:44]: Completion Data (CPLD)

NPHクレジットを上回る NPDクレジットは無意味なため、NPDに対するフロー制御クレジットは 8ビットに制限されています。

dlcm_sm DLL dlcmsm

257:256 DLCM ステート・マシン。DLCM ステート・マシン・エンコーディング。

● 00: dl_inactive● 01: dl_init● 10: dl_active● 11: reserved

fcip_sm DLL dlcmsm

260:258 Transmit InitFCステート・マシン。Transmit Initフロー制御ステート・エンコーディング :

● 000: idle● 001: prep0● 010: prep1● 011: initfc_p● 100: initfc_np● 101: initfc_cpl● 110: initfc_wt● 111: reserved

表 C–1. x1および x4 MegaCoreファンクション用 test_out信号 (7 /18)

信号 サブブロック ビット 説明

Page 259: PCI Express コンパイラ・ ユーザガイドPCI Express コンパイラ・ ユーザガイド MegaCore バージョン:6.1 ドキュメント・バージョン: 6.1 rev. 2 ドキュメント・デート:2006年12

Altera Corporation PCI Express Compiler Version 6.1 C–92006年 12月 PCI Expressコンパイラ・ユーザガイド

rxfc_sm DLL dlcmsm

263:261 Receive InitFCステート・マシン。Receive Initフロー制御ステート・マシン :

● 000: idle● 001: ifc1_p● 010: ifc1_np● 011: ifc1_cpl● 100: ifc2● 111: reserved

flag_fi1 DLL dlcmsm

264 Flag_fi1FI1フラグについては、PCI Express™ベース仕様 Revision1.0aで詳細に説明されています。

flag_fi2 DLL dlcmsm

265 Flag_fi2。FI2フラグについては、PCI Express™ベース仕様 Revision1.0aで詳細に説明されています。

rxfc_sm DLL rtry 268:266 リトライ・ステート・マシン。リトライ・ステート・マシン・エンコーディング

● 000: idle● 001: rtry_ini● 010: rtry_wt0● 011: rtry_wt1● 100: rtry_req● 101: rtry_tlp● 110: rtry_end● 111: reserved

storebuf_sm DLL rtry 270:269 リトライ・バッファ・ストレージ・ステート・マシン。リトライ・バッファ・ストレージ・ステート・マシン・エンコーディング :

● 00: idle● 01: rtry● 10: str_tlp● 11: 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で詳細に説明されています)。

表 C–1. x1および x4 MegaCoreファンクション用 test_out信号 (8 /18)

信号 サブブロック ビット 説明

Page 260: PCI Express コンパイラ・ ユーザガイドPCI Express コンパイラ・ ユーザガイド MegaCore バージョン:6.1 ドキュメント・バージョン: 6.1 rev. 2 ドキュメント・デート:2006年12

C–10 PCI Express Compiler Version 6.1 Altera CorporationPCI Expressコンパイラ・ユーザガイド 2006年 12月

x1 & x4 MegaCore ファンクション用テスト・アウト・インタフェース 信号

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パラメータ。この信号は、受信したNAKDLLP のシーケンス番号が最後に受信確認を行ったトランザクション・レイヤ・パケットに対応していることを通知します。

txdl_sm DLL txdl 282:280 送信トランザクション・レイヤ・パケット・ステート・マシン。トランザクション・レイヤ・パケット・ステート・マシン・エンコーディングは以下のとおりです。

● 000: idle● 001: tlp1● 010: tlp2● 011: tlp3a● 100: tlp5a (ECRC only)● 101: tlp6a (ECRC only)● 111: reserved

この信号を使用してLCRCまたは ECRCエラーを注入することができます。

tx3btx4tx5b

DLL txdl 283 トランザクション・レイヤ・パケットの送信。この信号は LCRCを付加するパケットの最後の DWORDで設定されます。この信号を使用してLCRCまたはECRCエラーを注入することができます。

tx0 DLL txdl 284 DLLP の送信。この信号は DLLP が物理層に送信されたときに設定されます。この信号を使用して CRC または DLLP を注入することができます。

表 C–1. x1および x4 MegaCoreファンクション用 test_out信号 (9 /18)

信号 サブブロック ビット 説明

Page 261: PCI Express コンパイラ・ ユーザガイドPCI Express コンパイラ・ ユーザガイド MegaCore バージョン:6.1 ドキュメント・バージョン: 6.1 rev. 2 ドキュメント・デート:2006年12

Altera Corporation PCI Express Compiler Version 6.1 C–112006年 12月 PCI Expressコンパイラ・ユーザガイド

gnt DLL txdl 292:285 送信データ・リンク層のアービトレーション結果。この信号は、以下のとおり DLLPとトランザクション・レイヤ・パケット間のアービトレーションの結果を通知します。

● bit 0: InitFC DLLP● bit 1: ACK DLLP (high priority)● bit 2: UFC DLLP (high priority)● bit 3: PM DLLP ● bit 4: TXN transaction layer packet● bit 5: RPL transaction layer packet● bit 6: UFC DLLP (low priority)● bit 7: 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/NAKDLLP のタイプに送信がスケジュールされていることを通知します。

● 0: ACK● 1: NAK

表 C–1. x1および x4 MegaCoreファンクション用 test_out信号 (10 /18)

信号 サブブロック ビット 説明

Page 262: PCI Express コンパイラ・ ユーザガイドPCI Express コンパイラ・ ユーザガイド MegaCore バージョン:6.1 ドキュメント・バージョン: 6.1 rev. 2 ドキュメント・デート:2006年12

C–12 PCI Express Compiler Version 6.1 Altera CorporationPCI Expressコンパイラ・ユーザガイド 2006年 12月

x1 & x4 MegaCore ファンクション用テスト・アウト・インタフェース 信号

rx_val_pm DLL rxdl 300 PM DLLPの受信。この信号は PM DLLPが受信されたことを通知します(タイプは rx_vcid_fcで示されます)。

● 000: PM_Enter_L1● 001: PM_Enter_L23● 011: PM_AS_Request_L1● 100: 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のタイプを以下のとおり通知します。

● 0100: InitFC1_P● 0101: InitFC1_NP● 0110: InitFC1_CPL● 1100: InitFC2_P● 1101: InitFC2_NP● 1110: InitFC2_CPL● 1000: UpdateFC_P● 1001: UpdateFC_NP● 1010: UpdateFC_CPL

rx_vcid_fc DLL rxdl 308:306 受信したフロー制御 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 エラーを含むトランザクション・レイヤ・パケットを受信したことを通知します。

crcvaleqseq_r

DLL rxdl 311 有効なトランザクション・レイヤ・パケットの受信。この信号は、正しいシーケンス番号を含む有効なトランザクション・レイヤ・パケットを受信したことを通知します。有効なトランザクション・レイヤ・パケットはアプリケーション層に送信されます。

表 C–1. x1および x4 MegaCoreファンクション用 test_out信号 (11 /18)

信号 サブブロック ビット 説明

Page 263: PCI Express コンパイラ・ ユーザガイドPCI Express コンパイラ・ ユーザガイド MegaCore バージョン:6.1 ドキュメント・バージョン: 6.1 rev. 2 ドキュメント・デート:2006年12

Altera Corporation PCI Express Compiler Version 6.1 C–132006年 12月 PCI Expressコンパイラ・ユーザガイド

crcval!eqseq_rinfseq_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ステート・エンコーディング :

● 00000: detect.quiet● 00001: detect.active● 00010: polling.active● 00011: polling.compliance● 00100: polling.configuration● 00101: reserved (polling.speed)● 00110: config.linkwidthstart● 00111: config.linkaccept● 01000: config:disable● 01001: config.loopback.entry● 01010: config.loopback.active● 01011: config.loopback.exit● 01100: recovery.rcvlock● 01101: recovery.rcvconfig● 01110: recovery.idle● 01111: L0● 10000: disable● 10001: loopback.entry● 10010: loopback.active● 10011: loopback.exit● 10100: hot.reset● 10101: L0s (transmit only)● 10110: L1.entry● 10111: L1.idle● 11000: L2.idle● 11001: L2.transmit.wake

表 C–1. x1および x4 MegaCoreファンクション用 test_out信号 (12 /18)

信号 サブブロック ビット 説明

Page 264: PCI Express コンパイラ・ ユーザガイドPCI Express コンパイラ・ ユーザガイド MegaCore バージョン:6.1 ドキュメント・バージョン: 6.1 rev. 2 ドキュメント・デート:2006年12

C–14 PCI Express Compiler Version 6.1 Altera CorporationPCI Expressコンパイラ・ユーザガイド 2006年 12月

x1 & x4 MegaCore ファンクション用テスト・アウト・インタフェース 信号

rxl0s_sm MAC ltssm

326:325 L0ステートの受信。L0ステート・マシンの受信。

● 00: inact● 01: idle● 10: fts● 11: out.recovery

txl0s_sm MAC ltssm

329:327 TX L0sステート。L0ステート・マシンの送信。

● 000b: inact● 001b: entry● 010b: idle● 011b: fts● 100b: 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 layerpacket)がリンクに送信された場合、1 クロック・サイクルの間アクティブになります。パケットのタイプは tx_ctrl 信号で定義されます。

tx_ctrl MAC ltssm

335:333 送信 PLP タイプ。この信号は送信した PLP のタイプを以下のとおり示します。

● 000: Electrical Idle● 001: Receiver detect during Electrical Idle● 010: TS1 OS● 011: TS2 OS● 100: D0.0 idle data● 101: FTS OS● 110: IDL OS● 111: Compliance pattern

txrx_det MAC ltssm

343:336 レシーバ検出結果。この信号は各レーンでレシーバ検出結果を通知するフラグとして機能します。4 MSBは常に 0です。

表 C–1. x1および x4 MegaCoreファンクション用 test_out信号 (13 /18)

信号 サブブロック ビット 説明

Page 265: PCI Express コンパイラ・ ユーザガイドPCI Express コンパイラ・ ユーザガイド MegaCore バージョン:6.1 ドキュメント・バージョン: 6.1 rev. 2 ドキュメント・デート:2006年12

Altera Corporation PCI Express Compiler Version 6.1 C–152006年 12月 PCI Expressコンパイラ・ユーザガイド

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 ステート・マシンによって新しいステートに達するとクリアされます。

4 MSBは常に 0です。

rx_ts2 MAC ltssm

367:360 TS2の受信。この信号は指定されたレーンで TS2を受信したことを示します。この信号は LTSSM ステート・マシンによって新しいステートに達するとクリアされます。

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 IDL OSの受信。この信号はレーン単位で IDL OSを受信したことを示します。

4 MSBは常に 0です。

rx_linkpad MAC ltssm

391:384 リンク・パッド TSの受信。この信号は、受信した TS1/TS2のリンク・フィールドが指定したレーンに対して PAD に設定されていることを示します。

4 MSBは常に 0です。

rx_lanepad MAC ltssm

399:392 レーン・パッド TSの受信。この信号は、受信した TS1/TS2のレーン・フィールドが指定したレーンに対して PAD に設定されていることを示します。

4 MSBは常に 0です。

表 C–1. x1および x4 MegaCoreファンクション用 test_out信号 (14 /18)

信号 サブブロック ビット 説明

Page 266: PCI Express コンパイラ・ ユーザガイドPCI Express コンパイラ・ ユーザガイド MegaCore バージョン:6.1 ドキュメント・バージョン: 6.1 rev. 2 ドキュメント・デート:2006年12

C–16 PCI Express Compiler Version 6.1 Altera CorporationPCI Expressコンパイラ・ユーザガイド 2006年 12月

x1 & x4 MegaCore ファンクション用テスト・アウト・インタフェース 信号

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–1. x1および x4 MegaCoreファンクション用 test_out信号 (15 /18)

信号 サブブロック ビット 説明

Page 267: PCI Express コンパイラ・ ユーザガイドPCI Express コンパイラ・ ユーザガイド MegaCore バージョン:6.1 ドキュメント・バージョン: 6.1 rev. 2 ドキュメント・デート:2006年12

Altera Corporation PCI Express Compiler Version 6.1 C–172006年 12月 PCI Expressコンパイラ・ユーザガイド

rxstatus0 PCS0 454:452 PIPE rxstatus 0。この信号はレーン単位で検出および通知されたエラーをモニタするために使用します。例 :

● 000: Receive data OK● 001: 1 SKP added● 010: 1 SKP removed● 011: Receiver detected● 100: 8B/10B decode error● 101: Elastic buffer overflow● 110: Elastic buffer underflow● 111: 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: Receive data OK● 001: 1 SKP added● 010: 1 SKP removed● 011: Receiver detected● 100: 8B/10B decode error● 101: Elastic buffer overflow● 110: Elastic buffer underflow● 111: Running disparity error

汎用PIPE PHYインタフェースを使用している場合は無意味です。

rxpolarity1 PCS1 463 PIPE極性反転1。この信号がアサートされると、LTSSMはPCSサブブロックに対して、トレーニング時に受信した10ビット・データの極性変転を要求します。汎用 PIPE PHYインタフェースを使用している場合は無意味です。

表 C–1. x1および x4 MegaCoreファンクション用 test_out信号 (16 /18)

信号 サブブロック ビット 説明

Page 268: PCI Express コンパイラ・ ユーザガイドPCI Express コンパイラ・ ユーザガイド MegaCore バージョン:6.1 ドキュメント・バージョン: 6.1 rev. 2 ドキュメント・デート:2006年12

C–18 PCI Express Compiler Version 6.1 Altera CorporationPCI Expressコンパイラ・ユーザガイド 2006年 12月

x1 & x4 MegaCore ファンクション用テスト・アウト・インタフェース 信号

rdusedw2 PCS2 467:464 エラスティック・バッファ・カウンタ 2。この信号はエラスティック・バッファのシンボル数を通知します。

各レーンのエラスティック・バッファ・カウンタをモニタすることで、受信クロックと送信クロック間の PPM およびレーン間のスキューを検出できます。汎用 PIPE PHYインタフェースを使用している場合は無意味です。

rxstatus2 PCS2 470:468 PIPE rxstatus 2。この信号はレーン単位で検出および通知されたエラーをモニタするために使用します。例 :

● 000: receive data OK● 001: 1 SKP added● 010: 1 SKP removed● 011: Receiver detected● 100: 8B/10B decode error● 101: Elastic buffer overflow● 110: Elastic buffer underflow● 111: Running disparity error

汎用PIPE PHYインタフェースを使用している場合は無意味です。

rxpolarity2 PCS2 471 PIPE極性反転2。この信号がアサートされると、LTSSMはPCSサブブロックに対して、トレーニング時に受信した 10ビット・データの極性変転を要求します。汎用 PIPE PHYインタフェースを使用している場合は無意味です。

rdusedw3 PCS3 475:472 エラスティック・バッファ・カウンタ 3。この信号はエラスティック・バッファのシンボル数を通知します。

各レーンのエラスティック・バッファ・カウンタをモニタすることで、受信クロックと送信クロック間の PPM およびレーン間のスキューを検出できます。汎用 PIPE PHYインタフェースを使用している場合は無意味です。

表 C–1. x1および x4 MegaCoreファンクション用 test_out信号 (17 /18)

信号 サブブロック ビット 説明

Page 269: PCI Express コンパイラ・ ユーザガイドPCI Express コンパイラ・ ユーザガイド MegaCore バージョン:6.1 ドキュメント・バージョン: 6.1 rev. 2 ドキュメント・デート:2006年12

Altera Corporation PCI Express Compiler Version 6.1 C–192006年 12月 PCI Expressコンパイラ・ユーザガイド

rxstatus3 PCS3 478:476 PIPE rxstatus 3。この信号はレーン単位で検出および通知されたエラーをモニタするために使用します。例 :

● 000: receive data OK● 001: 1 SKP added● 010: 1 SKP removed● 011: Receiver detected● 100: 8B/10B decode error● 101: Elastic buffer overflow● 110: Elastic buffer underflow● 111: Running disparity error

汎用PIPE PHYインタフェースを使用している場合は無意味です。

rxpolarity3 PCS3 479 PIPE極性反転3。この信号がアサートされると、LTSSMはPCSサブブロックに対して、トレーニング時に受信した 10ビット・データの極性変転を要求します。汎用 PIPE PHYインタフェースを使用している場合は無意味です。

Reserved PCS4 511:480 Reserved

表 C–1. x1および x4 MegaCoreファンクション用 test_out信号 (18 /18)

信号 サブブロック ビット 説明

Page 270: PCI Express コンパイラ・ ユーザガイドPCI Express コンパイラ・ ユーザガイド MegaCore バージョン:6.1 ドキュメント・バージョン: 6.1 rev. 2 ドキュメント・デート:2006年12

C–20 PCI Express Compiler Version 6.1 Altera CorporationPCI Expressコンパイラ・ユーザガイド 2006年 12月

x8 MegaCoreファンクション用テスト・ アウト・インタフェース信号

x8 MegaCoreファンクション用テスト・アウト・インタフェース信号

表 C–2に x8 MegaCoreファンクション用 test-out 信号を示します。

表 C–2. x8 MegaCoreファンクション用 test_out信号 (1 /4)

信号 サブブロック ビット 説明

ltssm_r MACltssm

4:0 LTSSMステート :LTSSMステート・エンコーディング :00000: detect.quiet00001: detect.active00010: polling.active00011: polling.compliance00100: polling.configuration00110: config.linkwidthstart00111: config.linkaccept01000: config.lanenumaccept01001: config.lanenumwait01010: config.complete01011: config.idle01100: recovery.rcvlock01101: recovery.rcvconfig01110: recovery.idle01111: L010000: disable10001: loopback.entry10010: loopback.active10011: loopback.exit10100: Hot reset10101: L0s10110: L1.entry10111: L1.idle11000: L2.idle11001: L2 transmit.wake

rxl0s_sm MACltssm

6:5 Rx L0sステート :受信 L0sステート・マシン00: inact01: idle10: fts11: out.recovery

Page 271: PCI Express コンパイラ・ ユーザガイドPCI Express コンパイラ・ ユーザガイド MegaCore バージョン:6.1 ドキュメント・バージョン: 6.1 rev. 2 ドキュメント・デート:2006年12

Altera Corporation PCI Express Compiler Version 6.1 C–212006年 12月 PCI Expressコンパイラ・ユーザガイド

txl0s_sm MACltssm

9:7 TX L0sステート :送信 L0sステート・マシン000b: inact001b: entry010b: idle011b: fts100b: out.l0

timeout MACltssm

10 LTSSM のタイムアウト : この信号は、現在の LTSSM ステートがLTSSMタイムアウト条件を満足したことを示すフラグとして機能します。

txos_end MACltssm

11 送信 LTSSM 終了条件 :この信号は、次のステート(L0)へ移行するためのLTSSM終了条件を満たしていることを示すフラグとして機能します。次のステートにタイムリに達しない場合は、レシーバに問題があります。

tx_ack MACltssm

12 送信 PLP受信確認 :この信号は、要求した PLP(physicallayer packet)がリンクに送信された場合、1 クロック・サイクルの間アクティブになります。パケットのタイプは TX_CTRLで定義されます。

tx_ctrl MACltssm

15:13 送信 PLPタイプ :この信号は以下のとおりです。000: Electrical Idle001: Receiver detect during010: TS1 OS011: TS2 OS100: D0.0 idle data101: FTS OS110: IDL OS111: Compliance pattern

txrx_det MACltssm

23:16 レシーバ検出結果:この信号は各レーンでレシーバ検出結果を通知するフラグとして機能します。

tx_pad MACltssm

31:24 送信する TSパターン上での PADの強制 :これはリンク上および送信される TS1/TS2 OS のレーン・フィールドで PAD送信を強制するレーンごとの内部信号です。このコアは、初期化プロセス中にこの信号で示すレーンを初期化してはならないものと判断します。

rx_ts1 MACltssm

39:32 TSIの受信 :この信号は指定されたレーンでTS1を受信したことを示します。この信号は LTSSMステート・マシンによって新しいステートに達するとクリアされます。

rx_ts2 MACltssm

47:40 TS2 の受信 : この信号は指定されたレーンで TS2 を受信したことを示します。この信号は LTSSMステート・マシンによって新しいステートに達するとクリアされます。

表 C–2. x8 MegaCoreファンクション用 test_out信号 (2 /4)

信号 サブブロック ビット 説明

Page 272: PCI Express コンパイラ・ ユーザガイドPCI Express コンパイラ・ ユーザガイド MegaCore バージョン:6.1 ドキュメント・バージョン: 6.1 rev. 2 ドキュメント・デート:2006年12

C–22 PCI Express Compiler Version 6.1 Altera CorporationPCI Expressコンパイラ・ユーザガイド 2006年 12月

x8 MegaCoreファンクション用テスト・ アウト・インタフェース信号

rx_8d00 MACltssm

55:48 8 D0.0シンボルの受信 :この信号は、8個の連続するアイドル・データ・シンボルを受信したことを示します。この信号は config.idleおよび recovery.idleステートで有効です。

rx_idl MACltssm

63:56 8 D0.0シンボルの受信 :この信号は、8個の連続するアイドル・データ・シンボルを受信したことを示します。この信号は config.idleおよび recovery.idleステートで有効です。

rx_linkpad MACltssm

71:64 リンク・パッド TSの受信 :この信号は受信した TS1/TS2のリンク・フィールドが指定したレーンの PADに設定されます。

rx_lanepad MACltssm

79:72 レーン・パッド TSの受信 :この信号は受信した TS1/TS2のレーン・フィールドが指定したレーンの PADに設定されます。

rx_tsnum MACltssm

87:80 連続する同一 TS番号の受信 :この信号は、このステートに移行してから完全に同じパラメータで受信した連続する同一 TS1/TS2 の数を通知します。最大数に達すると、信号は 0 から再開します。この信号は論理レーン 0 としてコンフィギュレーションされたレーンに対応しています。

lane_act MACltssm

91:88 レーン・アクティブ・モード :この信号は以下のとおりトレーニング中にコンフィギュレーションされたレーン数を示します。

0001: 1 lane0010: 2 lanes0100: 4 lanes1000: 8 lanes

lane_rev MACltssm

95:92 Reserved

count0 MACdeskew

98:96 デスキューFIFOカウント・レーン 0:この信号は物理レーン 0のデスキュー FIFOのワード数を示します。

count1 MACdeskew

101:99 デスキューFIFOカウント・レーン 1:この信号は物理レーン 1のデスキュー FIFOのワード数を示します。

count2 MACdeskew

104:102 デスキューFIFOカウント・レーン 2:この信号は物理レーン 2のデスキュー FIFOのワード数を示します。

count3 MACdeskew

107:105 デスキューFIFOカウント・レーン 3:この信号は物理レーン 3のデスキュー FIFOのワード数を示します。

count4 MACdeskew

110:108 デスキューFIFOカウント・レーン 4:この信号は物理レーン 4のデスキュー FIFOのワード数を示します。

表 C–2. x8 MegaCoreファンクション用 test_out信号 (3 /4)

信号 サブブロック ビット 説明

Page 273: PCI Express コンパイラ・ ユーザガイドPCI Express コンパイラ・ ユーザガイド MegaCore バージョン:6.1 ドキュメント・バージョン: 6.1 rev. 2 ドキュメント・デート:2006年12

Altera Corporation PCI Express Compiler Version 6.1 C–232006年 12月 PCI Expressコンパイラ・ユーザガイド

テスト・イン・インタフェース

test_inポートのエラー注入機能を使用するには、特定のロジックを実装する必要があります。例えば、次に送信するトランザクション・レイヤ・パケットで LCRC エラーを強制するには、transmit txdl_sm、(test_out[282:280])が非アイドル状態の時に、test_in[21]を 1クロック・サイクルの間アサートする必要があります。

表 C–3に test_in信号を示します。

count5 MACdeskew

113:111 デスキューFIFOカウント・レーン 5:この信号は物理レーン 5のデスキュー FIFOのワード数を示します。

count6 MACdeskew

116:114 デスキューFIFOカウント・レーン 6:この信号は物理レーン 6のデスキュー FIFOのワード数を示します。

count7 MACdeskew

119:117 デスキューFIFOカウント・レーン 7:この信号は物理レーン 7のデスキュー FIFOのワード数を示します。

err_deskew MACdeskew

127:120 デスキュー FIFOエラー :この信号は、特定の物理レーンでデスキュー・エラー(デスキュー FIFOオーバフロー)が検出されたかどうかを示します。検出された場合、受信ポート・エラーと見なされ、リンクのリトレーニングが開始されます。

表 C–2. x8 MegaCoreファンクション用 test_out信号 (4 /4)

信号 サブブロック ビット 説明

表 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ファンクション内部で強制されます。

Page 274: PCI Express コンパイラ・ ユーザガイドPCI Express コンパイラ・ ユーザガイド MegaCore バージョン:6.1 ドキュメント・バージョン: 6.1 rev. 2 ドキュメント・デート:2006年12

C–24 PCI Express Compiler Version 6.1 Altera CorporationPCI Expressコンパイラ・ユーザガイド 2006年 12月

テスト・イン・インタフェース

test_boot CFGcfgchk 4 リモート・ブート・モード。この信号は、リンクが初期化されておらず、ブートがコンポーネントの後ろにある場合にアサートされると、BARチェックをディセーブルします。

test_compliance MAC ltssm 6:5 コンプライアンス・テスト・モード。コンプライアンス・モードのディセーブル /強制。

● ビット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]: 000: normal mode● test_pcserror[2:0]: 001: inject data error● test_pcserror[2:0]: 010: inject disparity

error● test_pcserror[2:0]: 011: inject different

data● test_pcserror[2:0]: 100: inject SDP instead

of END● test_pcserror[2:0]: 101: inject STP instead

of END● test_pcserror[2:0]: 110: inject END instead

of data● test_pcserror[2:0]: 111: inject EDB instead

of END

最後の 3ビットは以下のとおりレーンを示します。

● test_pcserror[5:3]: 000: on lane 0● test_pcserror[5:3]: 001: on lane 1● test_pcserror[5:3]: 010: on lane 2● test_pcserror[5:3]: 011: on lane 3

表 C–3. test_in信号 (2 /6)

信号 サブブロック ビット 説明

Page 275: PCI Express コンパイラ・ ユーザガイドPCI Express コンパイラ・ ユーザガイド MegaCore バージョン:6.1 ドキュメント・バージョン: 6.1 rev. 2 ドキュメント・デート:2006年12

Altera Corporation PCI Express Compiler Version 6.1 C–252006年 12月 PCI Expressコンパイラ・ユーザガイド

test_rxerrtlp DLL 14 トランザクション・レイヤ・パケット LCRCエラー検出の強制。この信号がアサートされると、MegaCoreファンクションは次に受信するトランザクション・レイヤ・パケットを LCRC エラーがあるかのように処理します。これらのビットは x8 MegaCoreファンクションで予約されています。

test_rxerrdllp DLL 16:15 DLLP CRC エラー検出の強制。この信号は、MegaCore ファンクションに次のDLLPのCRCエラーがないかチェックするよう強制します。

● 00: normal mode● 01: ACK/NAK● 10: PM● 11: flow control These bits are reserved on

the x8 MegaCore function.

test_replay DLL 17 リトライ・バッファの強制。この信号がアサートされると、リトライ・バッファはリトライを開始します。これらのビットは x8MegaCoreファンクションで予約されています。

test_acknak DLL 19:18 ACK を NAK に置き換え。この信号は ACK を以下のシーケンス番号を持つ NAKに置き換えます。

● 00: normal mode● 01: Same sequence number as the ACK● 10: Sequence number incremented● 11: Sequence number decremented

これらのビットが未使用の場合は、0にハード・ワイヤして未使用ロジックを取り除きます。これらのビットはx8 MegaCoreファンクションで予約されています。

test_ecrcerr DLL 20 送信時の ECRC エラーの注入。この信号をアサートすると、送信時に ECRCエラーが生成されます。

test_lcrcerr DLL 21 送信時の LCRC エラーの注入。この信号をアサートすると、送信時に LCRC エラーが生成されます。これらのビットは x8MegaCoreファンクションで予約されています。

表 C–3. test_in信号 (3 /6)

信号 サブブロック ビット 説明

Page 276: PCI Express コンパイラ・ ユーザガイドPCI Express コンパイラ・ ユーザガイド MegaCore バージョン:6.1 ドキュメント・バージョン: 6.1 rev. 2 ドキュメント・デート:2006年12

C–26 PCI Express Compiler Version 6.1 Altera CorporationPCI Expressコンパイラ・ユーザガイド 2006年 12月

テスト・イン・インタフェース

test_crcerr DLL 23:22 送信時の DLLP CRC エラーの注入。DLLP の送信時に CRC エラーを生成します。

● 00: normal● 01: PM error● 10: flow control error● 11: ACK error

これらのビットが未使用の場合は、0にハード・ワイヤして未使用ロジックを取り除きます。これらのビットはx8 MegaCoreファンクションで予約されています。

表 C–3. test_in信号 (4 /6)

信号 サブブロック ビット 説明

Page 277: PCI Express コンパイラ・ ユーザガイドPCI Express コンパイラ・ ユーザガイド MegaCore バージョン:6.1 ドキュメント・バージョン: 6.1 rev. 2 ドキュメント・デート:2006年12

Altera Corporation PCI Express Compiler Version 6.1 C–272006年 12月 PCI Expressコンパイラ・ユーザガイド

test_ufcvalue TRN 28:24 アップデート・フロー制御用不正値の生成。この信号はフロー制御クレジットのアップデート時に不正値を強制します。これは、トランザクション・レイヤ・パケットが受信バッファから抽出され、アプリケーション層に送信されるときに、クレジット割り当てフィールドに1クレジットを追加または削除することによって行います。

● 00000: normal mode● 00001: UFC_P error on header (+1/0)● 00010: UFC_P error on data (0/+1)● 00011: UFC_P error on header/data (+1/+1)● 00100: UFC_NP error on header (+1/0)● 00101: UFC_NP error on data (0/+1)● 00110: UFC_NP error on header/data (+1/+1)● 00111: UFC_CPL error on header (+1/0)● 01000: UFC_CPL error on data (0/+1)● 01001: UFC_CPL error header/data (+1/+1)● 01010: UFC_P error on header (-1/0)● 01011: UFC_P error on data (0/-1)● 01100: UFC_P error on header/data (-1/-1)● 01101: UFC_NP error on header (-1/0)● 01110: UFC_NP error on data (0/-1)● 01111: UFC_NP error on header/data (-1/-1)● 10000: UFC_CPL error on header (-1/0)● 10001: UFC_CPL error on data (0/-1)● 10010: UFC_CPL error header/data (-1/-1)● 10011: UFC_P error on header/data (+1/-1)● 10100: UFC_P error on header/data (-1/+1)● 10101: UFC_NP error on header/data (+1/-1)● 10110: UFC_NP error on header/data (-1/+1)● 10111: UFC_CPL error header/data (+1/-1)● 11000: UFC_CPL error header/data (-1/+1)

これらのビットが未使用の場合は、0にハード・ワイヤして未使用ロジックを取り除きます。これらのビットはx8 MegaCoreファンクションで予約されています。

表 C–3. test_in信号 (5 /6)

信号 サブブロック ビット 説明

Page 278: PCI Express コンパイラ・ ユーザガイドPCI Express コンパイラ・ ユーザガイド MegaCore バージョン:6.1 ドキュメント・バージョン: 6.1 rev. 2 ドキュメント・デート:2006年12

C–28 PCI Express Compiler Version 6.1 Altera CorporationPCI Expressコンパイラ・ユーザガイド 2006年 12月

テスト・イン・インタフェース

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–3. test_in信号 (6 /6)

信号 サブブロック ビット 説明