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

PCI Express コンパイラ・
ユーザガイド
101 Innovation Drive
San Jose, CA 95134
(408) 544-7000
www.altera.co.jp
この資料は英語版を翻訳したもので、内容に相違
が生じる場合には原文を優先します。こちらの日
本語版は参考用としてご利用ください。設計の際
には、最新の英語版で内容をご確認ください。
MegaCore バージョン :
ドキュメント・バージョン :
ドキュメント・デート :
6.1
6.1 rev. 2
2006 年 12 月
Copyright © 2006 Altera Corporation. All rights reserved. Altera, The Programmable Solutions Company, the stylized Altera logo, specific device
designations, and all other words and logos that are identified as trademarks and/or service marks are, unless noted otherwise, the trademarks and
service marks of Altera Corporation in the U.S. and other countries. All other product or service names are the property of their respective holders.
Altera products are protected under numerous U.S. and foreign patents and pending applications, maskwork rights, and copyrights. Altera warrants
performance of its semiconductor products to current specifications in accordance with Altera's standard warranty, but reserves the right to make
changes to any products and services at any time without notice. Altera assumes no responsibility or liability arising out of the
application or use of any information, product, or service described herein except as expressly agreed to in writing by Altera
Corporation. Altera customers are advised to obtain the latest version of device specifications before relying on any published
information and before placing orders for products or services.
UG-PCI10605-1.4.1
ii
PCI Express Compiler Version 6.1
PCI Express コンパイラ・ユーザガイド
Altera Corporation
目次
このユーザガイドについて
改訂履歴 ................................................................................................................................................... vii
アルテラへのお問い合わせ .................................................................................................................. viii
表記規則 ..................................................................................................................................................... ix
1. このコンパイラについて
リリース情報 .......................................................................................................................................... 1–1
サポートされるデバイス・ファミリ .................................................................................................. 1–1
Compiler バージョン 6.1 の新機能 ..................................................................................................... 1–2
機能 .......................................................................................................................................................... 1–2
概要 .......................................................................................................................................................... 1–3
テストベンチおよびデザイン例 : シンプル DMA およびチェインニング DMA ................... 1–5
OpenCore Plus 評価機能 ................................................................................................................. 1–6
パフォーマンス ...................................................................................................................................... 1–7
2. 使用法
デザイン・フロー ................................................................................................................................. 2–1
PCI Express の実習 ................................................................................................................................ 2–2
MegaWizard Plug-In Manager の起動 .......................................................................................... 2–3
パラメータ設定 ................................................................................................................................. 2–5
シミュレーションのセットアップ ................................................................................................. 2–9
ファイルの生成 ............................................................................................................................... 2–12
デザインの
シミュレーション ................................................................................................................................ 2–15
IP 機能シミュレーション・モデル .............................................................................................. 2–15
デザインのコンパイル ........................................................................................................................ 2–16
Program a Device ................................................................................................................................ 2–17
ライセンスのセットアップ ................................................................................................................ 2–18
Altera Corporation
2006 年 12 月
PCI Express Compiler Version 6.1
iii
目次
3. 仕様
機能の説明 .............................................................................................................................................. 3–1
エンドポイントの種類 ..................................................................................................................... 3–2
トランザクション・レイヤ ............................................................................................................. 3–2
データ・リンク・レイヤ ................................................................................................................. 3–8
物理レイヤ ....................................................................................................................................... 3–11
スループットの解析 ....................................................................................................................... 3–12
コンフィギュレーション・スペース・レジスタの内容 ........................................................... 3–20
アクティブ・ステート・パワー・マネージメント(ASPM)................................................. 3–24
エラー処理 ....................................................................................................................................... 3–27
Stratix GX PCI Express の互換性 ................................................................................................. 3–34
OpenCore Plus タイム・アウト動作 ........................................................................................... 3–34
パラメータ設定 .................................................................................................................................... 3–36
System Settings ページ .................................................................................................................. 3–36
Capabilities ページのパラメータ ................................................................................................. 3–41
Buffer Setup ページ ........................................................................................................................ 3–44
Power Management ページ .......................................................................................................... 3–49
信号 ........................................................................................................................................................ 3–51
送信インタフェース動作信号 ....................................................................................................... 3–53
受信インタフェース動作信号 ....................................................................................................... 3–69
クロック ........................................................................................................................................... 3–81
ユーティリティ信号 ....................................................................................................................... 3–87
alt2gxb サポート信号 ..................................................................................................................... 3–99
物理レイヤ・インタフェース信号 ............................................................................................. 3–101
MegaCore 検証 ................................................................................................................................... 3–105
シミュレーション環境 ................................................................................................................. 3–105
互換性テストの環境 ..................................................................................................................... 3–105
4. 外部 PHY
外部 PHY のサポート ............................................................................................................................ 4–1
16 ビット SDR モード ...................................................................................................................... 4–2
ソース・シンクロナス TxClk 付き 16 ビット SDR モード ........................................................ 4–3
8 ビット DDR モード ....................................................................................................................... 4–5
ソース・シンクロナス TxClk 付き 8 ビット DDR ...................................................................... 4–6
8 ビット SDR モード ........................................................................................................................ 4–8
ソース・シンクロナス TxClk 付き 8 ビット SDR ....................................................................... 4–9
16 ビット PHY インタフェース信号 ........................................................................................... 4–11
8 ビット PHY インタフェース信号 ............................................................................................. 4–13
外部 PHY の選択 .................................................................................................................................. 4–15
外部 PHY 制約のサポート .................................................................................................................. 4–16
外部 PHY と Stratix GX デバイス・ファミリの使用 ................................................................ 4–17
iv
PCI Express Compiler Version 6.1
PCI Express コンパイラ・ユーザガイド Altera Corporation
2006 年 12 月
目次
5. テストベンチおよびデザイン例
テストベンチ .......................................................................................................................................... 5–3
シンプル DMA デザイン例 .................................................................................................................. 5–6
デザイン例の BAR/ アドレス・マップ ...................................................................................... 5–10
チェイニング DMA デザイン例 ........................................................................................................ 5–14
デザイン例の BAR/ アドレス・マップ ...................................................................................... 5–19
チェイニング DMA ディスクリプタ・テーブル ....................................................................... 5–20
テスト・ドライバ・モジュール ........................................................................................................ 5–23
シンプル DMA デザイン例用の BFM テスト・ドライバ・モジュール ................................ 5–23
チェイニング DMA デザイン例用の BFM テスト・ドライバ・モジュール ........................ 5–27
ルート・ポート BFM ........................................................................................................................... 5–32
BFM メモリ・マップ ..................................................................................................................... 5–35
コンフィギュレーション・スペース・バスおよびデバイスの番号付与 ............................... 5–35
ルート・ポートおよびエンド・ポイントのコンフィギュレーション ................................... 5–35
アプリケーション・レイヤへのリード&ライト・トランザクションの発行 ....................... 5–38
BFM プロシージャおよびファンクション ....................................................................................... 5–39
BFM リードおよびライト・プロシージャ ................................................................................. 5–40
BFM パフォーマンス・カウント ................................................................................................. 5–47
BFM リード / ライト要求プロシージャ ..................................................................................... 5–48
BFM コンフィギュレーション・プロシージャ ......................................................................... 5–50
BFM 共有メモリ・アクセス・プロシージャ ............................................................................. 5–52
BFM ログおよびメッセージ・プロシージャ ............................................................................. 5–56
Verilog HDL フォーマッティング・ファンクション ............................................................... 5–62
チェイニング DMA デザイン固有のプロシージャおよびファンクション ........................... 5–68
付録 A.
コンフィギュレーション信号
X1 および x4 MegaCore
ファンクションのコンフィギュレーション信号 ............................................................................. A–1
X8 MegaCore ファンクションのコンフィギュレーション信号 .................................................... A–7
付録 B.
トランザクション・レイヤ・パケットのヘッダ・フォーマット
データ・ペイロードを含まないコンテンツ ..................................................................................... B–1
データ・ペイロードを含むコンテンツ ............................................................................................. B–2
付録 C.
テスト・ポート・インタフェース信号
x1 & x4 MegaCore
ファンクション用テスト・アウト・インタフェース信号 ............................................................. C–2
x8 MegaCore ファンクション用テスト・アウト・インタフェース信号 .................................. C–20
テスト・イン・インタフェース ....................................................................................................... C–23
Altera Corporation
2006 年 12 月
PCI Express Compiler Version 6.1
v
PCI Express コンパイラ・ユーザガイド
目次
vi
PCI Express Compiler Version 6.1
PCI Express コンパイラ・ユーザガイド
Altera Corporation
2006 年 12 月
このユーザガイド
について
以下の表に、このユーザガイドの章の改訂履歴を示します。
改訂履歴
章
1
日付
バージョン
2006 年 12 月
6.1
変更内容
●
●
2006 年 4 月
2.1.0
●
●
2005 年 10 月
2.0.0
内容を再編
性能情報を更新
●
2005 年 6 月
1.0.0
●
初回リリース
12 月
6.1
●
スクリーン・ショットおよびバージョン番号を更新
新しいMegaWizard® インタフェースに対応するためにテキスト
を変更
インストール図を更新
新しいMegaWizardインタフェースに対応するために実習を更新
●
●
●
2006 年 4 月
2.1.0
●
スクリーン・ショットおよびバージョン番号を更新
コンパイル中に、2–16 ページの「デザインのコンパイル」の項
にある実習に Tcl 制約ファイルを供給するためのステップを追
加
インストール情報をリリース・ノートに移動
●
●
3
デバイス・ファミリのサポートを追加
バージョンおよび性能情報を更新
×8 サポートを追加
Stratix II GX および Cyclone® II デバイスのサポートを追加
性能情報を更新
●
●
2
Stratix® III
2005 年 10 月
2.0.0
●
スクリーン・ショットおよびバージョン番号を更新
2005 年 6 月
1.0.0
●
初回リリース
2006 年 12 月
6.1
●
新しい MegaWizard インタフェースのスクリーン・ショットと
パラメータを更新
タイミング図を修正
2006 年 4 月
2.1.0
●
●
●
●
●
3–12 ページの「スループットの解析」の項を追加
スクリーン・ショットおよびバージョン番号を更新
System Settings、Capabilities、Buffer Setup、および Power
Management ページとそれらのパラメータを更新
以下の 3 つの波形図を追加
シングル・ライトのための転送
パケットを受け入れる状態にないトランザクション・レイヤ
シングル DWORD に挿入されるウェイト・ステート付き転送
2005 年 10 月
2.0.0
●
スクリーン・ショットおよびバージョン番号を更新
2005 年 6 月
1.0.0
●
初回リリース
Altera Corporation
2006 年 12 月
PCI Express Compiler Version 6.1
vii
PCI Express コンパイラ・ユーザガイド
アルテラへのお問い合わせ
章
4
5
日付
バージョン
2006 年 12 月
6.1
変更内容
●
新しいプロジェクト・ディレクトリ構造に対応するためにファ
イル名を変更
高性能チェインド DMA 例の参考情報を追加
2006 年 4 月
2.1.0
●
外部 PHY サポートのために、新しい章「外部 PHY」を追加
2006 年 12 月
6.1
●
高性能チェインド DMA 設計例を追加
2006 年 4 月
2.1.0
●
●
章の番号を 5 章に更新
項を追加
以下の 2 つの BFM 読み出し / 書き込み手順を追加
ebfm_start_perf_sample 手順
ebfm_disp_perf_sample 手順
●
●
付録 A
付録 B
付録 C
2005 年 10 月
2.0.0
●
スクリーン・ショットおよびバージョン番号を更新
2005 年 6 月
1.0.0
●
初回リリース
2006 年 4 月
2.1.0
●
×8 ECRC の制約を削除
2005 年 6 月
1.0.0
●
初回リリース
2005 年 10 月
2.1.0
●
小さな修正
2005 年 6 月
1.0.0
●
初回リリース
4月
2.1.0
●
×8 に対する ECRC サポートを含めるように ECRC を更新
2005 年 10 月
1.0.0
●
×8 に対するサポートがないことを示すように ECRC を更新
●
初回リリース
●
ユーザガイド全体での小さな書式変更
2005 年 6 月
すべて
2006 年 4 月
アルテラへの
お問い合わせ
2.1.0 rev 2
ア ル テ ラ 製 品 に 関 す る 最 新 情 報 は、ア ル テ ラ の ウ ェ ブ サ イ ト、
www.altera.co.jp をご覧ください。テクニカル・サポートについては、
www.altera.co.jp/mysupport にアクセスしてください。また、アルテラ
の販売代理店にもお問い合わせいただけます。
viii
PCI Express Compiler Version 6.1
PCI Express コンパイラ・ユーザガイド
Altera Corporation
2006 年 12 月
このユーザガイド について
表記規則
書体
本資料では以下の表記規則を使用しています。
意味
太字かつ文頭が大文字
コマンド名、ダイアログ・ボックス・タイトル、チェックボックス・オプショ
ン、およびダイアログ・ボックス・オプションは、太字かつ文頭が大文字で表
記されています。例 : Save As ダイアログ・ボックス
太字
外部タイミング・パラメータ、ディレクトリ名、プロジェクト名、ディスク・
ドライブ名、ファイル名、ファイルの拡張子、およびソフトウェア・ユーティ
リティ名は、太字で表記されています。
例 : fMAX, \qdesigns ディレクトリ、d: ドライブ、chiptrip.gdf ファイル
斜体かつ文頭が大文字
資料のタイトルは、斜体かつ文頭が大文字で表記されています。
例 : AN 75: High-Speed Board Design
斜体
内部タイミング・パラメータおよび変数は、斜体で表記されています。
例 : tPIA, n + 1
変数は、山括弧景 (< >) で囲み、斜体で表記されています。
例 : < ファイル名 >、< プロジェクト名 >.pof ファイル
文頭が大文字
キーボード・キーおよびメニュー名は、文頭が大文字で表記されています。
例 : Delete キー、Options メニュー
「小見出しタイトル」
資料内の小見出しおよびオンライン・ヘルプ・トピックのタイトルは、鉤括弧
で囲んでいます。例 :「表記規則」
Courier フォント
信号およびポート名は、Courier フォントで表記されています。
例 : data1、 tdi、 input。アクティブ Low 信号は、サフィックス n で表示
されています ( 例 : resetn)。
表示されているとおりに入力する必要があるものは、Courier フォントで表記
されています ( 例 : c:\qdesigns\tutorial\chiptrip.gdf)。また、
Report ファイルのような実際のファイル、ファイルの構成要素 ( 例 : AHDL
キーワードの SUBDESIGN)、ロジック・ファンクション名 ( 例 : TRI) も
Courier フォントで表記されています。
1.、2.、3. および
a.、b.、c. など
手順など項目の順序が重要なものは、番号が付けられリスト形式で表記されて
います。
■
箇条書きの黒点などは、項目の順序が重要ではないものに付いています。
●
•
9
チェックマークは、1 ステップしかない手順を表します。
指差しマークは、要注意箇所を表しています。
CAUTION マークは、特別な配慮および理解が必要であり、手順またはプロセ
スを始める前、または続ける際に確認すべき情報を示しています。
注意マークは、手順またはプロセスを始める前、または続ける際に確認すべき
情報を示しています。
矢印は、Enter キーを押すことを示しています。
足跡マークは、詳細情報の参照先を示しています。
Altera Corporation
2006 年 12 月
PCI Express Compiler Version 6.1
ix
PCI Express コンパイラ・ユーザガイド
表記規則
x
PCI Express Compiler Version 6.1
PCI Express コンパイラ・ユーザガイド
Altera Corporation
2006 年 12 月
1. このコンパイラ
について
リリース情報
表 1–1 に、アルテラの PCI Express コンパイラのリリースに関する情報
を示します。
表 1–1. PCI Express コンパイラのリリース情報
項目
サポートされ
るデバイス・
ファミリ
Altera Corporation
2006 年 12 月
説明
バージョン
6.1
リリース月
2006 年 12 月
製品コード
IP-PCIE/1
IP-PCIE/4
IP-PCIE/8
プロダクト ID
00A9
00AA
00AB
ベンダ ID
6A66
MegaCore® ファンクションは、ターゲットのアルテラ・デバイス・ファ
ミリに対し、フル・サポートあるいは暫定サポートを提供しています。
■
フル・サポートとは、MegaCore ファンクションがデバイス・ファミ
リのすべての機能要件およびタイミング要求値を満たし、生産デザ
インで使用できることを意味します。
■ 暫定サポートとは、MegaCore ファンクションがすべての機能要件を
満たすが、デバイス・ファミリに対するタイミング解析の実行中で
あるため、生産デザインでの使用は注意が必要な場合があることを
意味します。
PCI Express Compiler Version 6.1
1–1
Compiler バージョン 6.1 の新機能
表 1–2 に、PCI Express Compiler による各アルテラ・デバイス・ファミ
リへのサポートのレベルを示します。
表 1–2. サポートされるデバイス・ファミリ
デバイス・ファミリ
Cyclone®
II
HardCopy®
サポートの種類
フル・サポート
II
暫定サポート
Stratix® II
フル・サポート
Stratix II GX
暫定サポート
Stratix III
暫定サポート
Stratix GX
フル・サポート
その他のデバイス・ファミリ
サポートなし
Compiler バー
ジョン 6.1 の
新機能
このバージョンには、以下の機能が追加されています。
機能
■
■
■
■
■
Stratix III デバイスのサポート
新しい MegaWizard® インタフェース
チェインニング DMA による高性能デザイン例
共通クロック・アプリケーションのためのレイテンシの低減
非透過ブリッジ・アプリケーションを含む ×1、×4、および ×8 エンド
ポイント・アプリケーションのサポート
●
Cyclone II、HardCopy II、Stratix II、Stratix II GX、Stratix III、
および Stratix GX のサポート
●
×1、×4、および ×8 アプリケーションに対するエンベデッド・ト
ランシーバのサポート
• Stratix II GX デバイスでの ×8 のサポート
●
×1 および ×4 MegaCore ファンクションに対する包括的な外部
PHY のサポート
■ PCI Express Base Specification 1.1 に準拠
■ カスタマ・デザインへの統合が容易
●
アルテラでサポートしている VHDL、Verilog HDL シミュレー
タ上で使用可能な機能シュミレーション・モデル
●
シンプル DMA デザイン例
●
高性能チェインニング DMA デザイン例
■ 柔軟性が高くコンフィギュレーション可能なMegaCoreファンクション
●
最大 4 本のバーチャル・チャネル
●
2K バイトまで(128、256、512、1,024、または 2,048 バイト)の
ペイロード
●
最大 16K バイト(256 バイト∼ 16K バイト)のリトライ・バッ
ファ・サイズ
1–2
PCI Express Compiler Version 6.1
PCI Express コンパイラ・ユーザガイド
Altera Corporation
2006 年 12 月
このコンパイラ について
■
高信頼性機能へのアクセス
●
×1、×4、および ×8 レーンに対するオプションの ECRC (end-toend cyclic redundancy code)/AER (advanced error reporting)の
サポート
■ OpenCore Plus を使用した無償の評価
概要
PCI Express コンパイラは、ユーザが PCI Express エンドポイントを設計
するのに使用するカスタマイズされた PCI Express MegaCore ファンク
ション(非透過ブリッジを含む)、または 1 個のアルテラ・デバイスに複
数の PCI Express コンポーネントを組み合わせて搭載した真にユニーク
なデザインを生成します。PCI Express MegaCore ファンクションは、PCI
Express Base Specification Revision 1.1 または PCI Express™ Base
Specification Revision 1.0a に準拠し、トランザクション、データ・リンク、
および物理層の仕様のうちすべての必須機能と大部分のオプション機能
を実装します。
PCI Express コンパイラを使用すれば、×1、×4、または ×8 動作の 3 つの
機能からエンドポイント・アプリケーションに最適な動作を選択するこ
とができます。図 1-1 に、あるシステム例での PCI Express MegaCore
ファンクションの使用方法を示します。Stratix GX または Stratix II GX
デバイス用の MegaCore ファンクションをターゲットにする場合、
MegaCore ファンクションには、MAC、PCS、PMA レイヤをはじめと
して、完全な PHY レイヤが含まれています。他のデバイス・アーキテ
クチャをターゲットにする場合、PCI Express コンパイラはインテル仕
様の PIPE インタフェースを備えた MegaCore ファンクションを生成す
るため、この MegaCore ファンクションは PIPE 準拠の外部 PHY デバイ
スで使用できます。
外部 PHY を選択する際に、PCI Express MegaCore ファンクションは、
8 ビット DDR モードまたは 16 ビット SDR モードの TI XIO1100 PHY、8
ビット SDR モードの Philips PX1011A、Stratix II GX および Stratix GX
デバイス用の シリアル PHY、およびソース同期送信クロック・モード
付きまたはなしの 8 ビット /16 ビット SDR およびソース同期送信クロッ
ク・モード付きまたはなしの 8 ビット DDR を使用した多様なカスタム
PHY をはじめとする、多種多様な PHY をサポートします。
Altera Corporation
2006 年 12 月
PCI Express Compiler Version 6.1
1–3
PCI Express コンパイラ・ユーザガイド
概要
図 1-1. PCI Express システムの例
Root
Complex
PCI Express Link
PCI Express Link
Switch
External PHY
PIPE Interface
Stratix GX or Stratix II GX Device
Stratix II or Cyclone II Device
Endpoint
Endpoint
PCI Express
MegaCore Function
PCI Express
MegaCore Function
User Application
Logic
User Application
Logic
PCI Express コンパイラはアルテラ・デバイスに対して最適化されてお
り、すべてのメモリ、I/O、コンフィギュレーション、およびメッセー
ジ・トランザクションをサポートしています。MegaCore ファンクショ
ンは、最大有効スループットを達成する高度に最適化されたアプリケー
ション・インタフェースを備えています。このコンパイラはパラメータ
化が可能なので、Quartus® II ソフトウェアで MegaWizard インタフェー
スを使用することによって、デザイン要件に適合するように MegaCore
ファンクションをカスタマイズできます。たとえば、MegaCore ファン
クションは、×1 または ×4 コンフィギュレーションでは最大 4 本のバー
チャル・チャネル、または ×8 コンフィギュレーションでは最大 2 本の
バーチャル・チャネルをサポートできます。また、ペイロード・サイズ、
バッファ・サイズ、およびコンフィギュレーション・スペース(ベース・
アドレス・レジスタのサポートおよび他のレジスタ)をカスタマイズす
ることも可能です。さらに PCI Express コンパイラは、×1、×4、および
×8 コ ン フ ィ ギ ュ レ ー ションに対しては、ECRC (end-to-end cyclic
redundancy code) と AER (advanced error reporting) もサポートしてい
ます。
PCI Express MegaCore ファンクションには、MegaCore ファンクション
の監視と制御が可能なデバッグ機能も含まれています。これらの追加の
入力および出力は、システム・レベルの問題をより迅速にデバッギング
するのに役立ちます。
1–4
PCI Express Compiler Version 6.1
PCI Express コンパイラ・ユーザガイド
Altera Corporation
2006 年 12 月
このコンパイラ について
テストベンチおよびデザイン例 : シンプル DMA および
チェインニング DMA
PCI Express コンパイラには、ベーシック・ルート・ポート BFM (bus
functional model) およびシンプル DMA とチェインニング DMA の 2 つ
のエンドポイント・デザイン例に対応するエンドポイント・テストベン
チが含まれています。両方のエンドポイント・デザイン例は、PCI Express
MegaCore ファンクションへのアプリケーション・インタフェースを示
し、シミュレーションと合成の両方、およびハードウェアでの MegaCore
ファンクションの OpenCore Plus 評価に適したクリア・テキスト・ソー
ス・コード(VHDL および Verilog HDL)として供給されます。ベーシッ
ク・ルート・ポート BFM には、ルート・ポートのドライバと IP 機能シ
ミュレーション・モデルが組み込まれています。図 1-2 に、シンプル DMA
例に対するエンドポイント・テストベンチ・セットアップを示します。
図 1-3 に、チェインニング DMA 例に対するテストベンチを示します。
図 1-2. シンプル DMA 例のテストベンチ
Root Port BFM
Root Port Driver
User Interface
x8 Root Port Model
PCI Express Link
Endpoint Simple DMA Example
PCI Express
MegaCore Function
User Interface
Endpoint Application
Layer Example
Traffic Control/Virtual Channel Mapping
Request/Completion Routing
Target
Control
Target
Memory
(32 KBytes)
Altera Corporation
2006 年 12 月
DMA
Control
Registers
DMA
Control
DMA
Memory
(32 KBytes)
PCI Express Compiler Version 6.1
1–5
PCI Express コンパイラ・ユーザガイド
概要
図 1-2 または図 1-3 に示すエンドポイント・アプリケーション・レイヤ
例をユーザ独自のアプリケーション・レイヤ・デザインに置き換え、BFM
ドライバを変更して、アプリケーション・レイヤをテストするのに必要
なトランザクションを生成することができます。
図 1-3. チェインニング DMA 例のテストベンチ
Root Port BFM
Root Port Driver
User Interface
x8 Root Port Model
PCI Express Link
Endpoint Example
PCI Express
MegaCore Function
User Interface
Endpoint Application
Layer Example
Traffic Control/Virtual Channel Mapping
Request/Completion Routing
RC
Slave
(Optional)
DMA
Write
DMA
Read
Endpoint
Memory
(32 KBytes)
OpenCore Plus 評価機能
アルテラの無償 OpenCore Plus 評価機能により、以下の操作を実行でき
ます。
■
■
システム内の MegaCore ファンクションの動作のシミュレーション
デザインの機能を検証したり、サイズやスピードを素早く簡単に評
価可能
1–6
PCI Express Compiler Version 6.1
PCI Express コンパイラ・ユーザガイド
Altera Corporation
2006 年 12 月
このコンパイラ について
■
MegaCore ファンクションを含んだ期限付きデバイス・プログラミン
グ・ファイルの生成
■ デバイスをプログラムし、デザインをハードウェアで検証
MegaCore を製品に組み込む場合にのみ、ライセンスを購入していただ
く必要があります。
PCI Express コンパイラを使用した OpenCore Plus ハードウェア評価に
ついて詳しくは、3–34 ページの「OpenCore Plus タイム・アウト動作」
および「AN 320: IP メガファンクション評価のための OpenCore Plus」
機能を参照してください。
パフォーマン
ス
この項の表には、記載したデバイス・ファミリに対して Quartus II ソフ
トウェア・バージョン 6.1 を使用した場合の各種パラメータの標準的な
期待性能を示します。
表 1–3 から表 1–7 までの性能データに対しては、以下のパラメータが設
定されています。
■
Buffer Setup ページでは、×1、×4、および ×8 コンフィギュレーション
に対しては、以下の値が設定されていました。
●
最大ペイロード・サイズは、特に記述がない限り 256 バイトに
設定されていました。
●
Desired performance for received requests(受信要求に対する
希望性能)および Desired performance for completions(完了
に対する希望性能)は、いずれも特に記述がない限り Medium
に設定されていました。
Buffer Setup ページ設定の説明については、3–45 ページの表 3–20 を
参照してください。
■
Capabilities ページでは、Tags supported(サポートされているタグ)
数は、特に記述がない限り、すべてのコンフィギュレーションに対
して 16 に設定されていました。
Capabilities ページ設定の説明については、3–42 ページの表 3–19 を
参照してください。
Altera Corporation
2006 年 12 月
PCI Express Compiler Version 6.1
1–7
PCI Express コンパイラ・ユーザガイド
パフォーマンス
表 1–3 に、Cyclone II (EP2C35F484C6) デバイスをターゲットとし
Quartus II ソフトウェア・バージョン 6.1 を使用した場合の各種パラメー
タの標準的な期待性能を示します。
表 1–3. パフォーマンス - Cyclone II デバイス
パラメータ
メモリ・ブロック数
×1/×4
内部クロック
MHz
バーチャル・
チャネル数
ロジック・
エレメント数
M4K
×1
125
1
9500
10
×1
125
2
12400
15
×1(1)
62.5
1
7800
11
×1
62.5
2
10500
18
×4
125
1
12100
18
×4
125
2
15200
27
表 1–3 の注 :
(1) Max payload(最大ペイロード)は 128B、Tags supported(サポートされているタグ)数は 4、そ
して Desired performance for received requests(受信要求に対する希望性能)および Desired
performance for completions(完了に対する希望性能)は、両方とも Low に設定されていました。
1–8
PCI Express Compiler Version 6.1
PCI Express コンパイラ・ユーザガイド
Altera Corporation
2006 年 12 月
このコンパイラ について
6.1 表 1–4 に、Stratix II (EP2S130GF1508C3) デバイスをターゲットとし
Quartus II ソフトウェア・バージョン 6.1 を使用した場合の各種パラメー
タの標準的な期待性能を示します。
表 1–4. パフォーマンス - Stratix II デバイス
パラメータ
メモリ・ブロック数
×1/×4
内部クロック
MHz
バーチャル・
チャネル数
組み合わせ
ALUT 数
専用
レジスタ
M512
M4K
×1
125
1
6600
3400
2
8
×1
125
2
8900
4500
3
12
×4
125
1
8700
4400
6
12
×4
125
2
11000
5600
7
20
表 1–5 に、Stratix II GX (EP2SGX130GF1508C3) デバイスをターゲットと
し Quartus II ソフトウェア・バージョン 6.1 を使用した場合の各種パラ
メータの標準的な期待性能を示します。
表 1–5. パフォーマンス - Stratix II GX デバイス
メモリ・
ブロック数
パラメータ
×1/×4/×8
内部クロック
MHz
バーチャル・
チャネル数
組み合わせ
ALUT 数
専用
レジスタ
M512
M4K
×1
125
1
6600
3400
2
8
×1
125
2
8900
4500
3
12
×4
125
1
8700
4400
6
12
×4
125
2
11000
5600
7
20
×8
250
1
8300
5800
10
12
×8
250
2
10200
6900
11
20
Altera Corporation
2006 年 12 月
PCI Express Compiler Version 6.1
1–9
PCI Express コンパイラ・ユーザガイド
パフォーマンス
表 1–6 に、Stratix III (EP3SL200F1152C3) デバイスをターゲットとし
Quartus II ソフトウェア・バージョン 6.1 を使用した場合の各種パラメー
タの標準的な期待性能を示します。
表 1–6. パフォーマンス - Stratix III デバイス
メモリ・
ブロック数
パラメータ
×1/×4
内部
クロック
MHz
最大
ペイロード・
バイト
バーチャル・
チャネル数
組み合わせ
ALUT 数
専用
レジスタ
M9K
×1
125
256
1
6500
3400
5
×1
125
256
2
8700
4500
9
×4
125
256
1
8500
4500
7
×4
125
256
2
10900
5600
12
表 1–7 に、Stratix GX (EP1SGX25CF672C5) デバイスをターゲットとし
Quartus II ソフトウェア・バージョン 6.1 を使用した場合の各種パラメー
タの標準的な期待性能を示します。.
表 1–7. パフォーマンス - Stratix GX
パラメータ
メモリ・ブロック数
×1/×4
内部クロック
MHz
バーチャル・
チャネル数
ロジック・エレメント
M512
M4K
×1
125
1
9500
2
9
×1
125
2
12300
2
14
×4
125
1
14500
6
16
×4
125
2
17100
7
24
以下の表に、サポートされるリンク幅および内部クロック周波数に対す
る推奨デバイス・ファミリのスピード・グレードを示します。内部クロッ
ク周波数が 125 MHz または 250 MHz のときの 推奨設定値は、Quartus II
Analysis & Synthesis Optimization Technique を Speed にすることです。
1–10
PCI Express Compiler Version 6.1
PCI Express コンパイラ・ユーザガイド
Altera Corporation
2006 年 12 月
このコンパイラ について
この設定方法について詳しくは、
「Quartus II 開発ソフトウェア・ハンド
ブック」を参照してください。
表 1–8. 推奨デバイス・ファミリとスピード・グレード
デバイス・ファミリ
リンク幅
内部クロック周波数
推奨スピード・グレード
Cyclone II
×1, ×4
125MHz
-6
×1
62.5MHz
-6, -7, -8(4)
×1,×4
125MHz
-3, -4, -5 (1)
×8
250MHz
-3(1), -4(2),(3)
×1, ×4
125MHz
-3, -4, -5 (1)
×1
62.5Mhz
-3, -4, -5
×1,×4
125MHz
-2,-3,-4
×1
62.5MHz
-2,-3,-4
×1, ×4
125MHz
-5(1)
×1
62.5MHz
-5,-6
Stratix II GX
Stratix II
Stratix III
Stratix GX
注:
(1) これらのスピード・グレードおよびバリエーションのタイミング・クロージャを達成するに
は、Perform physical synthesis for combinational logic(組み合わせロジックに対してフィジ
カル・シンセシスを実行する)、perform register duplication(レジスタの複製を実行する)、
および perform register retiming(レジスタのリ・タイミングを実行する)のオプションをイ
ネーブルにして、Quartus II フィッタ設定でフィジカル・シンセシスをイネーブルにする必要
があります。これらのオプションの設定方法について詳しくは、「Quartus II 開発ソフトウェ
ア・ハンドブック」を参照してください。
(2) Stratix II GX -4 で ×8 に対するタイミング・クロージャを達成するには、複数のシードを持つ
Quartus Design Space Explorer を使用する必要があります。
(3) Stratix II GX -4 の ×8 バリエーションに対しては、複数の VC、ECRC サポート、および 16 を
超えるタグは推奨されません。
(4) -8スピード・グレードでは、外部 PHYの 16ビット SDRまたは 8ビット SDRモードが推奨されます。
Altera Corporation
2006 年 12 月
PCI Express Compiler Version 6.1
1–11
PCI Express コンパイラ・ユーザガイド
パフォーマンス
1–12
PCI Express Compiler Version 6.1
PCI Express コンパイラ・ユーザガイド
Altera Corporation
2006 年 12 月
2. 使用法
デザイン・
フロー
OpenCore Plus 機能を使用した Compiler を評価するには、デザイン・
フローで以下のステップを実行します。
1. Compiler を取得してインストールします。
Compiler は、MegaCore® IP ライブラリの一部で、Quartus II ソフト
ウェアに同梱して配布され、アルテラ・ウェブサイト www.altera.com
からダウンロードできます。
システム要件とインストール方法については、以下のアルテラのウェブ・
サイトにある「Quartus II Installation & Licensing for Windows」または
「Quartus II Installation & Licensing for UNIX & Linux」を参照してくだ
さい。
www.altera.com/literature/lit-qts.jsp
図 2-1 に Compiler をインストールした後のディレクトリ構造を示しま
す。ここで、< パス > は、インストール・ディレクトリです。Windows
のデフォルト・インストール・ディレクトリは、c:\altera\61 です。UNIX
および Linux では、/opt/altera/61 です。
図 2-1. ディレクトリ構造
<path>
Installation directory
ip
Contains the MegaCore IP Library
common
Contains shared components.
pci_express_compiler
Contains the PCI Express Compiler files and documentation.
doc
Contains documentation for the MegaCore function.
lib
Contains encrypted lower-level design files and other support files.
Altera Corporation
2006 年 12 月
PCI Express Compiler Version 6.1
2–1
PCI Express の実習
2. PCI Express Compiler を使用し、カスタム・バリエーションを作成
します。
3. 選択したデザイン入力方法を使用してデザインの残りを実装します。
4. IP 機能シミュレーション・モデルを使用して、デザインの動作を検
証します。
IP 機能シュミレーション・モデルについて詳しくは、
「Quartus II 開発ソ
フトウェア・ハンドブック Volume 3」の「サードパーティ・シミュレー
ション・ツールによるアルテラ IP のシミュレーション」の章を参照して
ください。
5. Quartus II ソフトウェアを使用してデザインをコンパイルします。
実行時間等に制限はありますが、OpenCore Plus プログラミ
ング・ファイルを生成して、ハードウェアでデザインの動作
を検証することもできます。
6. PCI Express Compiler のライセンスを購入します。
PCI Express コンパイラ・ユーザガイド Compiler のライセンス購入後
は、以下の追加のステップに従ってください。
1. ライセンスをセットアップします。
2. ボード上のアルテラ・デバイス用プログラミング・ファイルを生成
します。
3. 完成したデザインでアルテラ・デバイスをプログラムします。
PCI Express
の実習
PCI Express コンパイラには 2 つのデザイン例が付属しています。この
実習では、MegaWizard Plug-in Manager を使用して MegaWizard イン
タフェースを起動し、MegaCore をパラメータ化し、提供される 2 つの
デザイン例を選択して MegaCore をシミュレートするプロセスを通じて
実習を行います。PCI Express MegaCore ファンクションのカスタム・バ
リエーションを生成した後、それをプロジェクト全体に組み入れること
ができます。
この実習は、以下のステップで構成されています。
■
■
MegaWizard Plug-In Manager の起動
Parameterize
■ シミュレーションのセットアップ
■ ファイルの生成
2–2
PCI Express Compiler Version 6.1
PCI Express コンパイラ・ユーザガイド
Altera Corporation
2006 年 12 月
使用法
PCI Express コンパイラ MegaWizard インタフェースは、作成した PCI
Express MegaCore ファンクション・バリエーションに接続する 2 つの
トップレベル・デザインを作成します。トップレベル・デザイン例は、
Quartus II ソフトウェアでアルテラ・デバイス用にコンパイルできます。
シンプル DMA トップレベル・デザイン例には、< バリエーション
名 >_example_top が付けられています。この実習では、pex をバリエー
ション名、そして pex_example_top をシンプル DMA のトップレベル・
デザイン例として使用しています。
チェインニング DMA のトップレベル・デザイン例には、
pex_example_chaining_top という名前が付けられます。
MegaWizard Plug-In Manager の起動
Quartus II ソフトウェアの MegaWizard® Plug-In Manager を起動するに
は、以下のステップに従います。
1. MegaWizard Plug-In Manager(Tools メ ニ ュ ー)を 選 択 し て、
MegaWizard Plug-In Manager を起動します。MegaWizard Plug-In
Manager ダイアログ・ボックスが表示されます(図 2-2 を参照)。
MegaWizard Plug-In Manager の使用方法について詳しくは、
Quartus II ヘルプを参照してください。
図 2-2. MegaWizard Plug-In Manager
2. 作成する新しいカスタム・メガファンクション・バリエーションを
指定し、Next をクリックします。
Altera Corporation
2006 年 12 月
PCI Express Compiler Version 6.1
2–3
PCI Express コンパイラ・ユーザガイド
PCI Express の実習
3. ディレクトリ名の左の + アイコンをクリックして、Installed Plug-Ins
の下の Interfaces ディレクトリを拡張し、PCI Express Compiler v6.1
をクリックします。
4. この MegaCore ファンクション・バリエーションに使用するデバイ
ス・ファミリを選択します。例 : Stratix II GX
5. デザインの出力ファイル・タイプを選択します。MegaWizard PlugIn Manager は VHDL および Verilog HDL をサポートします。この
例では、Verilog HDL を選択します。
6. MegaWizard Plug-In Manager は、ユーザが指定したプロジェクト・
パスを表示します。MegaCore ファンクションの出力ファイルのバリ
エーション名 < プロジェクト・パス >\< バリエーション名 > を付加
します。この実習では、以下のように MegaCore ファンクション・
ファイルの名前に、pex を指定します。
c:\altera\pcie_project\pex.vhd
図 2-3 に、これらの設定を行った後の MegaWizard Plug-In Manager
を示します。
図 2-3. MegaCore ファンクションの選択
2–4
PCI Express Compiler Version 6.1
PCI Express コンパイラ・ユーザガイド
Altera Corporation
2006 年 12 月
使用法
7. Next をクリックして、PCI Express コンパイラ・ユーザガイドの
Parameter Settings ページを表示します(図 2-4 を参照)。
ダイアログ・ボックスの下で Next または Back をクリックし
て、MegaWizard Plug-In Manager が表示するページを変更で
き ま す。Parameter Settings、Simulation Model、または
Summary タブをクリックすると、それらの名前のページに直
接移動することができます。
また、特定のパラメータ・ページ上のオプションをクリックし
て、個々のパラメータ設定を直接表示することができます。
パラメータ設定
MegaCore ファンクションをパラメータ設定するには、以下のステップ
に従います。
このセクションでは、図に示すパラメータ設定またはユーザ
独自の設定を使用できます。デザイン例は大部分の設定に対
応するように生成されていますが、特定の設定では動作しな
いテストもいくつかあります。各 MegaWizard ページに、テ
ストベンチをフルに使用するのに必要なパラメータ設定が記
載されています。
1. MegaWizard インタフェース(図 2-4 を参照)の Parameter Settings
タブをクリックします。
System Settings ページが最初に表示されます。このページでは、実
装する MegaCore ファンクションのインスタンスに適切なパラメー
タを設定します。図 2-4 を参照してください。
Altera Corporation
2006 年 12 月
PCI Express Compiler Version 6.1
2–5
PCI Express コンパイラ・ユーザガイド
PCI Express の実習
図 2-4. System Settings ページ
提供されたテストベンチおよびシンプル DMA デザイン例でのテスト
をすべてイネーブルするには、以下の表 2–1 に示す BAR アサインメ
ントを行います。
表 2–1. BAR アサインメント
BAR
BAR タイプ
BAR サイズ
1:0
64 ビット・プリフェッチ可能メモリ
16M バイト - 24 ビット
2
32 ビット・プリフェッチ不能メモリ
256K バイト - 18 ビット
2–6
PCI Express Compiler Version 6.1
PCI Express コンパイラ・ユーザガイド
Altera Corporation
2006 年 12 月
使用法
他の多くの BAR 設定では、シンプル DMA デザイン例のフル・
テストが可能です。テスト・モジュールが使用する設定の説明に
ついては、5–23 ページの「シンプル DMA デザイン例用の BFM
テスト・ドライバ・モジュール」を参照してください。
利用可能なパラメータの詳しい説明については、3–36 ページの
「パラメータ 設定」を参照してください。
2. Next をクリックして、Capabilities ページを表示します。
3. Capabilities ページを開いた状態で、適切な設定を行い、Next をク
リックして、Buffer Setup ページを表示します。図 2-5 を参照してく
ださい。
図 2-5. Capabilities ページ
Altera Corporation
2006 年 12 月
PCI Express Compiler Version 6.1
2–7
PCI Express コンパイラ・ユーザガイド
PCI Express の実習
4. Buffer Setup ページが開きます。適切な設定を行い、Next をクリッ
クします。図 2-6 を参照してください。
図 2-6. Buffer Setup ページ
Desired performance for received requests(受信要求に対する要求性
能)and Desired performance for received completions(受信完了に対
する要求性能)パラメータの適切な設定を決定するには、3–45 ページの
表 3–20 を参照してください。データ・クレジットに関して詳しくは、
3–16 ページの表 3–2 を参照してください。
2–8
PCI Express Compiler Version 6.1
PCI Express コンパイラ・ユーザガイド
Altera Corporation
2006 年 12 月
使用法
5. Power Management ページが開きます。適切な設定を行います。図 27 を参照してください。
図 2-7. 電源管理ページ
6. 設定を適用するには、Finish をクリックします。
7. Next(または Simulation Model ページ)をクリックしてシミュレー
ション・セットアップ・ページ(図 2-8 を参照)を表示します。
シミュレーションのセットアップ
IP 機能シミュレーション・モデルは、Quartus II ソフトウェアで作成す
るサイクル単位の正確な VHDL または Verilog HDL モデルです。この
モデルにより、業界標準の VHDL および Verilog HDL シミュレータを
使用した IP の高速機能シミュレーションが可能になります。
Altera Corporation
2006 年 12 月
PCI Express Compiler Version 6.1
2–9
PCI Express コンパイラ・ユーザガイド
PCI Express の実習
これらのシミュレーション・モデル出力ファイルは、シミュレー
ション目的にのみ使用し、合成やその他の目的には使用しない
でください。合成のためにこれらのモデルを使用すると、機能
しないデザインが作成されます。
MegaCore ファンクション用の IP 機能シミュレーション・モデルを生成
するには、以下のステップに従います。
1. Simulation Model タブ(図 2-8 を参照)をクリックします。
図 2-8. シミュレーションのセットアップ
2. チェックボックスをクリックして、Generate Simulation Model(図 28 を参照)をイネーブルにします。
3. Language リスト・プルダウンで言語を選択します。
2–10
PCI Express Compiler Version 6.1
PCI Express コンパイラ・ユーザガイド
Altera Corporation
2006 年 12 月
使用法
4. Next(または Summary タブ)をクリックして、サマリ・ページ
(図 2-9 を参照)を表示します。
図 2-9. Summary
Altera Corporation
2006 年 12 月
PCI Express Compiler Version 6.1
2–11
PCI Express コンパイラ・ユーザガイド
PCI Express の実習
ファイルの生成
ファイルを生成するには、以下のステップに従います。
1. 生成したいファイルをオンにします。Summary ページのチェック・
ボックスを使用して、指定されたファイルの生成をイネーブルまた
はディセーブルにします。グレイのチェックマークは、自動的に生
成されるファイルを示し、その他のチェックマークはオプションの
ファイルを示します。
どれかパラメータを変更したい場合は、このステージでBack、
または Parameters Setting、Simulation Model、Summary の
い ず れ か の タ ブ を ク リ ッ ク し て、MegaWizard Plug-In
Manager の他のページを表示することができます。
2. 指定されたファイルを生成し、MegaWizard Plug-In Manager を閉じ
るには、Finish をクリックします。
Generation パネルにファイル生成の状況が表示されます。すべての
ファイルが生成されると、Generation パネルは Generation Successful
ステータス・メッセージを返します。Exit をクリックしてパネルを閉
じます。生成フェーズは完了するまでに数分かかることがあります。
プロジェクト・ディレクトリに書き込まれ、<バリエーション名>.html
という名前が付けられた生成レポートには、生成されたファイルと
ポートがリストされます。
図 2-10. Generation パネル
2–12
PCI Express Compiler Version 6.1
PCI Express コンパイラ・ユーザガイド
Altera Corporation
2006 年 12 月
使用法
表 2–2 に、生成されたファイルとユーザのプロジェクト・ディレクトリ
に格納される可能性があるその他のファイルを示します。サマリに指定
されるファイルの名前とタイプは、デザインを VHDL または Verilog
HDL を使用して作成しているかどうかによって異なります。
表 2–2. 生成されるファイル
注 (1)& (2)(1 / 2)
ファイル名
説明
< バリエーション名 >.ppf
この XML ファイルは、Quartus II Pin Planner に対し
て MegaCore ピン属性を記述します。MegaCore ピン
属性には、ピンの方向、位置、標準 I/O 規格のアサイ
ンメント、ドライブ能力があります。Pin Planner アプ
リケーションの外側で MegaWizard を起動する場合、
Pin Planner を使用するにはこのファイルを明示的に
ロードする必要があります。
< バリエーション名 >.ppx
この XML ファイルは、Pin Planner が自動的に使用す
る Pin Planner サポート・ファイルです。このファイ
ルは、pex.ppf ファイルと同じディレクトリになけれ
ばなりません。
< バリエーション名 >.html
MegaCore ファンクション・レポート・ファイル。
< バリエーション名 >.vhd または
< バリエーション名 >.v
このファイルは、この表の随所に記述されている < バ
リエーション名 >_core モジュール(またはエンティ
ティ)をインスタンス化し、ユーザ・バリエーション
に選択した特定の外部または内部 PHY をサポートす
るのに必要な追加ロジックが含まれています。この
ファイルはデザインの内部でインスタンス化する必
要があります。Quartus II ソフトウェアおよびユーザ
のシミュレーション・プロジェクトでデザインをコン
パイルするときには、このファイルを含める必要があ
ります。
< バリエーション名 >_core.vhd または
< バリエーション名 >_core.v
このファイルは PCI Express トランザクション、デー
タ・リンク、および物理層をインスタンス化します。
これは、< バリエーション名 > モジュール(またはエ
ンティティ)内部でインスタンス化されます。Quartus
II ソフトウェアでデザインをコンパイルするときに
は、このファイルを含めます。
Altera Corporation
2006 年 12 月
PCI Express Compiler Version 6.1
2–13
PCI Express コンパイラ・ユーザガイド
PCI Express の実習
表 2–2. 生成されるファイル
注 (1)& (2)(2 / 2)
ファイル名
< バリエーション名 >_core.vho または
< バリエーション名 >_core.vo
説明
このファイルには、< バリエーション名 >_core エン
ティティ(またはモジュール)
の VHDL または Verilog
HDL IP 機能シミュレーション・モデルが含まれてい
ます。デザインをシミュレートするときには、この
ファイルを含めます。
表 2–1 の注 :
(1) これらのファイルはバリエーションに依存し、一部は存在しないか、または名前が変更される可能性があ
ります。
(2) < バリエーション名 > は、MegaWizard Plug-In Manager によって自動的に供給されるプリフィックス・バ
リエーション名です。
ここで、ユーザのカスタム MegaCore ファンクション・バリエーション
をデザインに統合し、シミュレートしてコンパイルすることができます。
Quartus II ソフトウェアは、< バリエーション名 >_examples という名
前のプロジェクト・ディレクトリに、3 レベルのサブディレクトリも作
成します。図 2-11 にこのディレクトリ構造を示します。このサブディレ
クトリには、シンプル DMA デザイン例およびチェインニング DMA デ
ザイン例の両方をテストするための PCI Express BFM およびテストベン
チが含まれています。このディレクトリには、ModelSim シミュレータ
でテストベンチを実行するためのスクリプトも含まれています。テスト
ベンチ用に作成されたファイルのリストと簡単な説明については、第 5
章 テストベンチおよび デザイン例を参照してください。
2–14
PCI Express Compiler Version 6.1
PCI Express コンパイラ・ユーザガイド
Altera Corporation
2006 年 12 月
使用法
図 2-11. ディレクトリ例が格納されている PCI Express ディレクトリ
<user_project directory>
<variation_name>.v or <variation_name>.vhd
<Quartus II project>.qpf
<PCI Express variation_name>_examples
chaining_dma
directory contains the files:
<PCIe variation_name>_example_chaining_top>.v or
<PCIe variation_name>_example_chaining_top>.vhd,
<PCIe variation_name>_example_chaining_pipen1b>.v or
<PCIe variation_name>_example_chaining_pipen1b>.vhd, a
<PCIe variation_name>_example_chaining_top.qpf
testbench
altpcietb_bfm_driver_chaining.v
top_chaining_testbench.v
common
testbench
simple_dma
contains the files:
<PCIe variation_name>_example_top.v or
<PCIe variation_name>_example_top.vhd,
<PCIe variation_name>_example_pipen1b.v or
<PCIe variation_name>_example_pipen1b.vhd, and
<PCIe variation_name>_example_top.qpf
testbench
デザインの
シミュレー
ション
MegaWizard で生成された VHDL および Verilog HDL IP 機能シミュレー
ション・モデルを使用して、デザインをシミュレートすることができます。
IP 機能シュミレーション・モデルについて詳しくは、
「Quartus II 開発ソ
フトウェア・ハンドブック Volume 3」の「サードパーティ・シミュレー
ション・ツールによるアルテラ IP のシミュレーション」の章を参照して
ください。
IP 機能シミュレーション・モデル
ModelSim シミュレータでテストベンチを実行するには、以下のステッ
プに従います。
1. ModelSim シミュレータを開始する。
2. ModelSim File メニューから、Change Directory を使用して作業ディ
レクトリを適切なデザイン例のディレクトリに変更します。
Altera Corporation
2006 年 12 月
PCI Express Compiler Version 6.1
2–15
PCI Express コンパイラ・ユーザガイド
デザインのコンパイル
シンプル DMA デザイン例の場合は、以下のディレクトリに変更しま
す。
< ユーザのプロジェクト・ディレクトリ >/< バリエーション名 >
_examples/simple_dma
または
チェインニング DMA デザイン例の場合は、以下のディレクトリに変
更します。
< バリエーション名 >_examples/chaining_dma
OK をクリックします。
3. ModelSim Transcript ウィンドウで、do runtb.do コマンドを実行
します。これは必要なライブラリをセットアップし、ネットリスト・
ファイルをコンパイルし、テストベンチを実行するコマンドです。
ModelSim Transcript ウィンドウは、BFM からのメッセージを表示
し、バリエーション・ファイルのコンフィギュレーション・スペー
スから読み出したさまざまな値を反映します。これらのメッセージ
は、実習のパラメータ設定ステップ中に入力された値を反映します。
アルテラは、ModelSim コマンドライン・モードでテストベ
ンチを実行するための DOS コマンド・ウィンドウのバッチ・
ファイル runtb.bat およびシェル・スクリプト runtb.sh を提
供しています。
テストベンチ、BFM、および付属のアプリケーション例について詳しく
は、第 5 章 テストベンチおよび デザイン例を参照してください。
デザインのコ
ンパイル
Quartus II ソフトウェアを使用してデザイン例をコンパイルすることが
できます。デザインのコンパイルに関するインストラクションについて
は、Quartus II Help を参照してください。Quartus II ソフトウェアで、
2–2 ページの「PCI Express の実習」で作成したシンプル DMA デザイン
例のプロジェクトを開きます。
c:\altera\pcie_project\pex_examples\simple_dma\pex_example_top
この Quartus II プロジェクト例には、このデザイン例で使用されるバリ
エーションで選択されたパラメータに対して推奨される合成、フィッタ、
およびタイミング解析設定があります。
2–16
PCI Express Compiler Version 6.1
PCI Express コンパイラ・ユーザガイド
Altera Corporation
2006 年 12 月
使用法
ユーザ・プロジェクトの PCI Express アサインメントを検証するには、
以下のステップに従います。
1.
Quartus IIソフトウェアで、Start Compilation(Processingメニュー)
を選択します。
2. コンパイル後、フォルダ名の隣にある + アイコンをクリックして、
Compilation Report パネルの Timing Analyzer または TimeQuest
Timing Analyzer フォルダを展開します。Compilation Report のこの
セクションからタイミング制約が正しく満足されたかどうかに注意
してください。
デ ザ イ ン が 最 初 に タ イ ミ ン グ 制 約 を 満 足 し な い 場 合 は、
Quartus II ソフトウェアの Design Space Explorer を使用し
て、デザ イン がタ イミ ング 制約 に適 合す る ため の最適 な
フィッタ設定を見つけるよう試みてください。Design Space
Explorer を 使用するには、Launch Design Space Explorer
(Tools メニュー)を選択します。
Program a
Device
デザインをコンパイルした後、ターゲットのアルテラ・デバイスをプロ
グラムしてハードウェアでデザインを検証します。
アルテラの無償 OpenCore Plus 評価機能では、ライセンスを購入する前
に PCI Express MegaCore ファンクションを評価することができます。
OpenCore Plus 評価機能により、ユーザは IP 機能シミュレーション・モ
デルを生成し、実行時間に制限のあるプログラミング・ファイルを生成
することができます。
IP 機能シュミレーション・モデルについて詳しくは、
「Quartus II 開発ソ
フトウェア・ハンドブック Volume 3」の「サードパーティ・シミュレー
ション・ツールによるアルテラ IP のシミュレーション」の章を参照して
ください。
デザインの PCI Express MegaCore ファンクションをシミュレートし、実
行時間に制限があるハードウェアでのデザイン評価を実行することがで
きます。
PCI Express MegaCore ファンクションを使用した OpenCore Plus ハー
ドウェア評価について詳しくは、3–34 ページの「OpenCore Plus タイ
ム・アウト動作」および「AN 320 : IP メガファンクション評価のための
OpenCore Plus」機能を参照してください。
Altera Corporation
2006 年 12 月
PCI Express Compiler Version 6.1
2–17
PCI Express コンパイラ・ユーザガイド
ライセンスのセットアップ
ライセンスの
セットアップ
MegaCore を製品に組み込む場合にのみ、ライセンスを購入していただ
く必要があります。
PCI Express MegaCore ファンクションのライセンスを購入してから、ア
ルテラ・ウェブサイトの www.altera.co.jp/licensing でライセンス・ファ
イルをリクエストして、取得したライセンス・ファイルをご使用のコン
ピュータにインストールすることができます。ライセンス・ファイルを
リスエストされたお客様には、アルテラから license.dat ファイルを電子
メールでお送りいたします。インターネットをご利用いただけないお客
様は、アルテラの販売代理店にお問い合わせください。
2–18
PCI Express Compiler Version 6.1
PCI Express コンパイラ・ユーザガイド
Altera Corporation
2006 年 12 月
3. 仕様
機能の説明
図 3-1 は、PCI Express MegaCore ファンクションの各レイヤの役割につ
いて説明しています。
図 3-1. MegaCore ファンクションの 3 つのレイヤ
Towards Application Layer
Towards Link
PCI Express MegaCore Function
tx_ d esc
tx _d ata
rx_ d esc
rx _d ata
With information sent
by the application
layer, the transaction
layer generates a TLP,
which includes a
header and, optionally,
a data payload.
The data link layer
ensures packet
integrity, and adds a
sequence number and
link cyclic redundancy
code (LCRC) check to
the packet.
The physical layer
encodes the packet
and transmits it to the
receiving device on the
other side of the link.
The transaction layer
disassembles the
transaction and
transfers data to the
application layer in a
form that it recognizes.
The data link layer
verifies the packet's
sequence number and
checks for errors.
The physical layer
decodes the packet
and transfers it to the
data link layer.
Transaction Layer
Data Link Layer
Tx
Rx
Physical Layer
PCI Express MegaCore ファンクションは、PCI Express Base Specification
1.1 または PCI Express Base Specification Revision 1.0a に準拠し、以下の仕
様の 3 つのレイヤすべてを実装しています。
■
トランザクション・レイヤ — トランザクション・レイヤには、アプ
リケーション・レイヤとの通信を管理するコンフィギュレーション
領域、つまり受信および送信チャネル、受信バッファ、およびフロー
制御クレジットが含まれています。
■ データ・リンク・レイヤ — データ・リンク・レイヤは、物理レイヤ
とトランザクション・レイヤの間に配置されており、パケット送信
を管理し、リンク・レベルでデータ・インテグリティを維持します。
具体的には、データ・リンク・レイヤは以下を行います。
●
データ・リンク・レイヤ・パケットの送信および受信を管理する
●
すべての送信 CRC(Cyclical Redundancy Code)チェックを生
成し、受信中にすべての CRC をチェックする
●
受信した ACK/NAK データ・リンク・レイヤ・パケットに応じ
てリトライ・バッファおよびリトライ・メカニズムを管理する
Altera Corporation
2006 年 12 月
PCI Express Compiler Version 6.1
3–1
機能の説明
●
■
データ・リンク・レイヤ・パケットのフロー制御メカニズムを
初期化し、フロー制御クレジットをトランザクション・レイヤ
との間で受け渡しする
物理レイヤ — 物理レイヤは、リンクから受信したパケットと上位の
レイヤから受信した指示に基づいて、PCI Express リンクの速度、レー
ン・ナンバリング、およびレーン幅を初期化します。
エンドポイントの種類
MegaCore ファンクションは、ネイティブ PCI Express エンドポイント
またはレガシー・エンドポイントのいずれかを実装できます。新しいア
プリケーションにはネイティブ PCI Express エンドポイントを使用する
ことをお勧めします。PCI Express エンドポイントは、メモリ・スペー
スのリード・トランザクションおよびライト・トランザクションのみを
サポートしています。レガシー・エンドポイントは、既存のアプリケー
ションと互換性があり、I/O スペースのリード・トランザクションおよ
びライト・トランザクションをサポートできます。
ネイティブ PCI Express エンドポイントとレガシー・エンドポイントの
違いについて詳しくは、PCI Express specification のエンドポイントの説
明を参照してください。
トランザクション・レイヤ
トランザクション・レイヤは、アプリケーション・レイヤとデータ・リ
ンク・レイヤの間にあります。トランザクション・レイヤは、トランザ
クション・レイヤ・パケットを生成し、受信します。図 3-2 に、初期化
された 2 つのバーチャル・チャネルを備えたコンポーネントのトランザ
クション・レイヤを示します。トランザクション・レイヤには、送信デー
タ・パス、コンフィギュレーション・スペース、および受信データ・パ
スの 3 つの汎用サブブロックがあり、これらを図 3-2 で縦向きのカッコ
内に示します。
3–2
PCI Express Compiler Version 6.1
PCI Express コンパイラ・ユーザガイド
Altera Corporation
2006 年 12 月
仕様
図 3-2. トランザクション・レイヤのアーキテクチャ : 各バーチャル・チャネルの専用受信バッファ
Towards Application Layer
Towards Data Link Layer
Interface Established per Virtual Channel
Interface Established per Component
Virtual Channel 1
Tx1 Data
Tx1 Descriptor
Tx1 Control
Tx1 Request
Sequencing
Flow Control
Check & Reordering
Tx Transaction Layer
Packet Description
& Data
Rx Flow
Control Credits
Virtual Channel 0
Transmit
Data Path
Tx0 Data
Tx0 Descriptor
Virtual Channel
Arbitration & Tx
Sequencing
Tx0 Control
Tx0 Request
Sequencing
Flow Control
Check & Reordering
Type 0 Configuration Space
Virtual Channel 0
Configuration
Space
Receive Buffer
Rx0 Data
Rx0 Descriptor
Posted & Completion
Non-Posted
Rx0 Control
& Status
Rx0 Sequencing
& Reordering
Transaction Layer
Packet FIFO
Flow Control Update
Receive
Data Path
Virtual Channel 1
Receive Buffer
Rx1 Data
Tx Flow
Control Credits
Rx1 Descriptor
Posted & Completion
Non-Posted
Rx1 Control
& Status
Altera Corporation
2006 年 12 月
Rx1 Sequencing
& Reordering
Transaction Layer
Packet FIFO
Flow Control Update
Rx Transaction
Layer Packet
PCI Express Compiler Version 6.1
3–3
PCI Express コンパイラ・ユーザガイド
機能の説明
受信データ・パスを介してトランザクションをトレースするには、以下
のステップが必要です。
1. トランザクション・レイヤがデータ・リンク・レイヤからトランザ
クション・レイヤ・パケットを受信します。
2. コンフィギュレーション・スペースによって、トランザクション・レ
イヤ・パケットが十分に形成されているかどうかが判断され、TC/
バーチャル・チャネル・マッピングに基づいて適切なバーチャル・
チャネルにパケットが送られます。
3. 各バーチャル・チャネル内で、トランザクション・レイヤ・パケッ
トが、トランザクションのタイプ(Posted、Non-Posted、およびコ
ンプリーション)に応じて、受信バッファの特定の部分に格納されます。
4. トランザクション・レイヤ・パケットの FIFO ブロックに、バッファ
されたトランザクション・レイヤ・パケットのアドレスが格納されます。
5. 受信シーケンスおよびリオーダリング・ブロックが、待機中のトラ
ンザクション・レイヤ・パケットの順序を必要に応じて入れ換えし、
トランザクション・レイヤ・パケットの FIFO ブロックから優先権が
あるトランザクション・レイヤ・パケットのアドレスをフェッチし、
トランザクション・レイヤ・パケットをアプリケーション・レイヤ
に送信し始めます。受信ロジックによって、トランザクション・レ
イヤ・パケットのデータからディスクリプタが分離され、それらが
受信ディスクリプタ・バス rx_desc[135:0]、および受信データ・
バス rx_data[63:0] を介してアプリケーション・レイヤに転送さ
れます。
送信データ・パスを介してトランザクションをトレースするには、以下
のステップが必要になります。
1. MegaCore ファンクションが、特定のタイプのトランザクションに対
して十分なフロー制御クレジットが存在することを送信クレジット
tx_cred[21:0] で、アプリケーション・レイヤに通知します。アプ
リケーション・レイヤは、この情報を無視することができます。
2. アプリケーション・レイヤが、トランザクション・レイヤ・パケッ
ト の 送 信 を 要 求 し ま す。ア プ リ ケ ー シ ョ ン・レ イ ヤ は、
tx_desc[127:0]バスにPCI Expressトランザクション・ヘッダを供
給し、tx_data[63:0] バスでデータ・ペイロード全体を連続した
サイクルで供給するよう準備しなければなりません。
3. MegaCore ファンクションが、十分なフロー制御クレジットが存在す
ることを確認し、要求を確認応答するかまたは延期します。
3–4
PCI Express Compiler Version 6.1
PCI Express コンパイラ・ユーザガイド
Altera Corporation
2006 年 12 月
仕様
4. トランザクション・レイヤ・パケットがアプリケーション・レイヤ
によって転送され、トランザクション・レイヤがバーチャル・チャ
ネル間でアービトレーションを行い、次に優先権のあるトランザク
ション・レイヤ・パケットをデータ・リンク・レイヤに転送します。
送信バーチャル・チャネルのアービトレーション
PCI Express MegaCore ファンクションを利用すると、PCI Express Base
Specification 1.1 の 6 章または PCI Express Base Specification Revision 1.0a で
規定されている高優先度のグループと低優先度のグループにバーチャ
ル・チャネルを分割することができます。
高優先度のバーチャル・チャネルのアービトレーションには、大きい番
号のバーチャル・チャネルが小さい番号のバーチャル・チャネルよりも
常に優先度が高くなるという、厳密な優先度アービトレーション機構が
使用されます。低優先度のバーチャル・チャネルでは、固定されたラウ
ンド・ロビン・アービトレーション機構が使用されます。
MegaWizard インタフェースの Parameter Settings タブからアクセス可
能な Buffer Setup ページの設定を使用して、バーチャル・チャネルの数
および低優先度グループのバーチャル・チャネルの数を指定できます。
3–44 ページの「Buffer Setup ページ」を参照してください。
コンフィギュレーション・スペース
コンフィギュレーション・スペースは、すべてのコンフィギュレーショ
ン・レジスタおよび関連する以下のファンクションを実装します。
■
■
■
■
■
タイプ 0 コンフィギュレーション・スペース
PCI パワー・マネージメント機能構造
MSI(Message Signaled Interrupt)機能構造
PCI Express 機能構造
バーチャル・チャネル機能
コンフィギュレーション・スペースはまた、PCI Express リンクの方向
にダウンストリーム・ポートによって生成されるパワー・スロット制限
メッセージを除き、Root Complex の方向に流れるコンフィギュレーショ
ン・リクエストから、すべてのメッセージ(PME#、INT、エラー、パ
ワー・スロット制限など)、MSI リクエスト、およびコンプリーション・
パケットを生成します。そのようなすべてのトランザクションは、PCI
Express™ Base Specification Revision 1.0a に記載されているように、PCI
Express コンフィギュレーション・スペースの内容に依存します。
Altera Corporation
2006 年 12 月
PCI Express Compiler Version 6.1
3–5
PCI Express コンパイラ・ユーザガイド
機能の説明
これらのレジスタの詳しい内容については、3–20 ページの「コンフィ
ギュレーション・スペース・レジスタの内容」または PCI Express Base
Specification 1.1 の 7 章、あるいは PCI Express Base Specification Revision
1.0a を参照してください。
トランザクション・レイヤのルーティング・ルール
トランザクションは、以下のルーティング・ルールに従います。
■
受信方向(すなわち PCI Express リンクから)では、定義済みの BAR
に適合するメモリおよび I/O リクエストは受信インタフェースに送
られます。アプリケーション・レイヤ・ロジックは、リクエストを
処理し、必要に応じてリード・コンプリーションを生成します。
■
受信したタイプ 0 コンフィギュレーション・リクエストは、内部コン
フィギュレーション・スペースに送られ、MegaCore ファンクション
はコンプリーションを生成および送信します。
■
MegaCore ファンクションは、サポートされている受信メッセージ・
トランザクション(パワー・マネージメントおよびスロット・パワー
制限)を内部で処理します。
■
トランザクション・レイヤは、受信したその他のすべてのトランザ
クション(定義済みの BAR に適合しないメモリまたは I/O リクエス
トを含む)をサポートされない要求として扱います。トランザクショ
ン・レイヤは適切なエラー・ビットを設定し、必要に応じてコンプ
リーションを送信します。サポートされていないこれらの要求は、ア
プリケーション・レイヤからは見えず、ヘッダおよびデータはドロッ
プされます。
■
トランザクション・レイヤは、すべてのメモリおよび I/O リクエス
ト、ならびにアプリケーション・レイヤによって生成され、送信イ
ンタフェースに渡されたコンプリーションを、PCI Express リンクに
送信します。
■
MegaCore ファンクションは、専用信号の制御下で、パワー・マネー
ジメント、割り込み、およびエラー信号メッセージを自動的に生成
および送信できます。さらに、MegaCore ファンクションは、専用信
号の制御下で、MSI リクエストを生成できます。
3–6
PCI Express Compiler Version 6.1
PCI Express コンパイラ・ユーザガイド
Altera Corporation
2006 年 12 月
仕様
受信バッファのバイパス・モード
受信バッファが空で、特定のバーチャル・チャネルの rx_descriptor
レジスタに有効なデータが含まれていない場合、MegaCore ファンク
ションは受信バッファをバイパスし、それによってレイテンシを減らし
ます。
実際には、ディスクリプタが受信バッファと rx_descriptor レジスタ
に同時に書き込まれるため、受信バッファが本当にバイパスされること
はありません。しかし、トランザクション・レイヤ・パケットの再送信
が必要なことを除けば、受信バッファ内のデータがアクセスされること
はありません。
受信バッファのリオーダリング
受信データ・パスは、受信バッファのリオーダリング機能を実装してお
り、このリオーダリング機能によって、アプリケーション・レイヤが新
たに Non-Posted トランザクションを受け入れることができないとき、
Posted およびコンプリーション・トランザクションを Non-Posted トラ
ンザクション(PCI Express オーダリング・ルールで許可される)を追
い越すことができます。
アプリケーション・レイヤは、rx_mask 信号をアサートすることによっ
て、Rx Buffer リオーダリングをダイナミックにイネーブルにします。
rx_mask は、Posted およびコンプリーション・トランザクションのみが
アプリケーションに渡されるように、アプリケーション・インタフェー
スに対して Non-Posted リクエストトランザクションをマスクします。
MegaCore ファンクションは、rx_mask がアサートされているときに
は、受信バッファ・バイパス・モードで動作します。ただし、マスクさ
れたリクエストが存在する場合、MegaCore ファンクションは、rx_mask
のデアサーションによって受信バッファ・バイパス・モードを抜けます。
Altera Corporation
2006 年 12 月
PCI Express Compiler Version 6.1
3–7
PCI Express コンパイラ・ユーザガイド
機能の説明
データ・リンク・レイヤ
データ・リンク・レイヤは、トランザクション・レイヤと物理レイヤの
間に配置されています。データ・リンク・レイヤは、パケット・インテ
グリティの維持、および PCI Express リンク・レベルにおける通信(デー
タ・リンク・レイヤ・パケット送信による)
(ファブリック内でのトラン
ザクション・レイヤ・パケット送信によるコンポーネント通信ではない)
を行います。具体的には、データ・リンク・レイヤは、以下を行います。
■
■
■
■
■
データ・リンク・レイヤ・パケットの受信および送信によるリンク
管理
●
バーチャル・チャネルごとにフロー制御クレジットを初期化お
よび更新する
●
パワー・マネージメントのためのデータ・リンク・レイヤ・パ
ケットの受信および送信
●
ACK/NACK パケットを送信および受信する
トランザクション・レイヤ・パケットおよびデータ・リンク・レイ
ヤ・パケットに対するCRCの生成と検査によるデータ・インテグリティ
リトライ・バッファを使用して NAK データ・リンク・レイヤ・パケッ
ト受信時のトランザクション・レイヤ・パケットの再送信
リトライ・バッファの管理
エラー発生時のリンク再トレーニング要求(物理レイヤの LTSSM に
よる)
3–8
PCI Express Compiler Version 6.1
PCI Express コンパイラ・ユーザガイド
Altera Corporation
2006 年 12 月
仕様
図 3-3 に、データ・リンク・レイヤのアーキテクチャを示します。
図 3-3. データ・リンク・レイヤ
Towards Transaction Layer
Towards Physical Layer
Tx Transaction Layer
Packet Description & Data
Transaction Layer
Packet Generator
Retry Buffer
Tx Packets
DLLP
Generator
Transmit
Data Path
Tx Arbitration
AckNack
Packets
Power
Management
Function
Configuration Space
Control
Data Link Control & Status
& Management
State Machine
Tx Flow Control Credits
DLLP
Checker
Rx Flow Control Credits
Rx Transaction Layer
Packet Description & Data
Transaction Layer
Packet Checker
Receive
Data Path
Rx Packets
データ・リンク・レイヤには以下のサブブロックがあります。
■
データ・リンクの制御および管理用のステート・マシン — このステー
ト・マシンは、物理レイヤの LTSSM ステート・マシンと同期され、
またコンフィギュレーション・スペース・レジスタにも接続されて
います。リンクおよびバーチャル・チャネルのフロー制御クレジッ
トを初期化し、コンフィギュレーション・スペースにステータスを
レポートします(バーチャル・チャネル 0 はデフォルトで初期化さ
れ、追加バーチャル・チャネルも物理的に有効化されており、また
ソフトウェアが許可する場合は、同様に初期化されます)。
■ パワー・マネージメント — この機能は、低消費電力モードに入るた
めのハンドシェイクを処理します。そのような移行は、コンフィギュ
レーション空間のレジスタ値および受信したPM DLLPに基づいてい
ます。
■ データ・リンク・レイヤ・パケット・ジェネレータおよびチェッカ
— このブロックは、データ・リンク・レイヤ・パケットの 16 ビット
CRC に関連し、送信されたパケットのインテグリティを維持します。
Altera Corporation
2006 年 12 月
PCI Express Compiler Version 6.1
3–9
PCI Express コンパイラ・ユーザガイド
機能の説明
■
■
■
■
■
トランザクション・レイヤ・パケット・ジェネレータ — このブロッ
クは、トランザクション・レイヤから受信されたディスクリプタお
よびデータに応じて送信パケットを生成し、シーケンス番号および
32 ビット CRC を生成します。これらのパケットはまた、内部保存の
ためにリトライ・バッファに送られます。リトライ・モードでは、ト
ランザクション・レイヤ・パケット・ジェネレータは、リトライ・
バッファからパケットを受信し、送信パケットの CRC を生成します。
リトライ・バッファ — リトライ・バッファは、トランザクション・レ
イヤ・パケットを格納し、NAK DLLP を受信した場合は確認応答さ
れなかったすべてのパケットを再送信します。ACK DLLP を受信し
た場合、リトライ・バッファは確認応答されたすべてのパケットを
破棄します。
ACK/NACK パケット —ACK/NACK ブロックは、
ACK/NACK デー
タ・リンク・レイヤ・パケットを処理し、送信されるパケットのシー
ケンス番号を生成します。
トランザクション・レイヤ・パケット・チェッカ — このブロックは、
受信したトランザクション・レイヤ・パケットのインテグリティを
チェックし、ACK/NACK データ・リンク・レイヤ・パケットの送
信要求を生成します。
TX アービトレーション — このブロックは、以下の優先度順序に基づ
いて、トランザクションのアービトレーションを行います。
a. FC データ・リンク・レイヤ・パケットの初期化
b.
ACK/NAK データ・リンク・レイヤ・パケット(高優先度)
c.
FC データ・リンク・レイヤ・パケットのアップデート(高優先度)
d.
PM データ・リンク・レイヤ・パケット
e.
リトライ・バッファ・トランザクション・レイヤ・パケット
f.
トランザクション・レイヤ・パケット
g.
FC データ・リンク・レイヤ・パケットのアップデート(低優先度)
h.
ACK/NAK データ・リンク・レイヤ・パケット(低優先度)
3–10
PCI Express Compiler Version 6.1
PCI Express コンパイラ・ユーザガイド
Altera Corporation
2006 年 12 月
仕様
物理レイヤ
物理レイヤは、MegaCore ファンクションの最下位レベルに配置されて
おり、リンクに最も近いレイヤです。リンクを通してパケットをエンコー
ドして送信し、受信したパケットを受け入れてデコードします。物理レ
イヤは、2.5 Gbps で動作する高速 SERDES を介してリンクに接続しま
す。物理レイヤは以下の処理を担当します。
■
■
■
リンクの初期化
レーンあたり 2.5 Gbps のスクランブル / デスクランブルおよび
8b/10b エンコーディング / デコーディング
データのシリアライジングおよびデシリアライジング
物理レイヤ・アーキテクチャ
図 3-4 に、物理レイヤ・アーキテクチャを示します。
図 3-4. 物理レイヤ
Towards Data Link Layer
Towards Link
MAC Layer
PIPE
Interface
PHY layer
Lane n
Lane 0
8B/10B
Encoder
Scrambler
SKIP
Generation
PIPE
Emulation Logic
LTSSM
State Machine
Lane n
8B/10B
Decoder
Descrambler
Multilane Deskew
Rx Packets
Link Serializer for an x8 Link
Control & Status
Elastic
Buffer
Rx MAC
Lane
Lane 0
8B/10B
Decoder
Descrambler
Elastic
Buffer
Stratix GX Transceiver (per Lane) with 2.5 Gbps SERDES & PLL
Link Serializer
for an x8 Link
Tx Packets
Tx+ / Tx-
8B/10B
Encoder
Scrambler
Transmit
Data Path
Tx+ / Tx-
Rx+ / Rx-
Receive
Data Path
Rx+ / Rx-
Rx MAC
Lane
Altera Corporation
2006 年 12 月
PCI Express Compiler Version 6.1
3–11
PCI Express コンパイラ・ユーザガイド
機能の説明
物理レイヤは、PIPE インタフェース規格によってそれ自体が次の 2 つの
レイヤに分割されています(図 3-4 の水平方向向きの括弧内)。
■
MAC(Media Access Control)レイヤ —MAC レイヤには、リンク・
トレーニングおよびステータス・ステート・マシン、ならびにスク
ランブル / デスクランブルおよびマルチレーン・デスキュー機能が
含まれています。
■
PHY レイヤ — PHY レイヤには、8B/10B エンコード / デコード機能、
エラスティック・バッファリング、およびシリアライゼーション /
デシリアライゼーション機能が含まれています。
物理レイヤは、デジタル・エレメントとアナログ・エレメントの両方を
統合します。Intel は、MAC を PHY から分離するために PIPE インタ
フェースを設計しています。MegaCore ファンクションは、PIPE インタ
フェースに準拠しており、他の PIPE 準拠の外部 PHY デバイスとの統合
を可能にしています。
MegaCore ファンクションは、Stratix GX/Stratix II GX デバイス・ファ
ミリをターゲットとするとき、完全な PHY レイヤを自動的にインスタ
ンス化します。
レーンの初期化
接続された PCI Express コンポーネントが、同じ数のレーンをサポート
していない場合があります。×4 MegaCore ファンクションは、1、2、ま
たは 4 レーンのコンポーネントによる初期化および動作をサポートして
います。
×8 MegaCore ファンクションは、1、4、または 8 レーンのコンポーネント
での初期化および動作をサポートしています。2 レーンを持つコンポー
ネントは 1 レーンで動作します。
スループットの解析
スループット解析には、フロー制御ループを理解していることが必要で
す(3–14 ページの図 3-5 参照)。この項では、フロー制御ループについ
て、またスループットの改善に役立つ事項について説明します。
3–12
PCI Express Compiler Version 6.1
PCI Express コンパイラ・ユーザガイド
Altera Corporation
2006 年 12 月
仕様
Posted 書き込みのスループット
Posted 書き込みのスループットは、主に 3–14 ページの図 3-5 に示すフ
ロー制御アップデート・ループによって制限されます。ライト・リクエ
スタが可能な限り素早くデータを提供し、ライト・コンプリータが可能
な限り素早くそのデータを消費する場合、フロー制御アップデート・ルー
プは、リンクの実際の帯域幅の他に、書き込みスループットにおける最
大の決定的要因となります。
図 3-5 のフロー制御アップデート・ループは、フロー制御アップデート・
ループの主なコンポーネントを示しています。図 3-5 には、通信する以
下の 2 つの PCI Express ポートがあります。
■
■
ライト・リクエスタ
ライト・コンプリータ
PCI Express specification に記載されているように、各トランスミッタ、
この場合はライト・リクエスタは、Credit Limit レジスタおよび Credit
Consumed レジスタを備えます。Credit Limit レジスタは、受信側、こ
の場合はライト・コンプリータによって発行されたすべてのクレジット
の合計となります。Credit Limit レジスタは、リンク初期化のフロー制
御初期化段階の間に初期化され、フロー制御(FC)アップデート DLLP
によって動作中にアップデートされます。Credits Consumed レジスタ
は、送信されたパケットによって消費されたすべてのクレジットの合計
となります。以下の 6 種類のフロー制御それぞれに対して、Separate
Credit Limit および Credigts Consumed レジスタが各々存在します。
■
■
■
■
■
■
Posted ヘッダ
Posted データ
Non-Posted ヘッダ
Non-Posted データ
コンプリーション・ヘッダ
コンプリーション・データ
各レシーバはまた、Credit Allocated カウンタを保持し、このカウンタ
は、Rx Buffer(特定のフロー制御クラス用)の使用可能な全スペースに
初期化され、アプリケーション・レイヤによって Rx Buffer からパケッ
トが取り出されるとインクリメントされます。このレジスタの値は、FC
Update DLLP 値として送信されます。
Altera Corporation
2006 年 12 月
PCI Express Compiler Version 6.1
3–13
PCI Express コンパイラ・ユーザガイド
機能の説明
図 3-5. フロー制御アップデート・ループ
Flow
Control
Gating
Logic
(Credit
Check)
1
Allow
FC
Update
DLLP
Decode
Credit
Limit
Credits
Consumed
Counter
2
FC Update DLLP
6
7
FC
Update
DLLP
Generate
Credit
Allocated
Incr
5
4
3
Incr
Rx
Buffer
Data Packet
App
Layer
Transaction
Layer
Data Link
Layer
Physical
Layer
PCI
Express
Link
Physical
Layer
Data Source
Data Link
Layer
Transaction
Layer
Data Packet
App
Layer
Data Sink
以下の番号付けしたステップで、フロー制御アップデート・ループにお
ける各ステップを説明します。上の図の対応する番号は、対応する一般
的な領域を示しています。
1. アプリケーション・レイヤに送信するパケットがあるとき、必要な
クレジットの数が計算されます。Credit Limit から Credits Consumed
を引いた現在の値が、必要なクレジット以上の場合、パケットは直
ちに送信できます。しかし、Credit Limit から Credits Consumed を
引いた値が、必要なクレジットよりも小さい場合、FC アップデート
DLLP によって Credit Limit が十分な値に引き上げられるまで、パ
ケットを保持しなければなりません。このチェックは、ヘッダおよ
びデータ・クレジットの両方に対して個別に実行され、1 個のパケッ
トは単一ヘッダ・クレジットのみ消費します。
2. 送信するためにパケットが選択されると、Credits Consumed レジス
タは、そのパケットが消費したクレジット数だけインクリメントさ
れます。これは、ヘッダとデータ両方の Credit Consumed レジスタ
に対して発生します。
3. パケットはリンクの他端で受信され、Rx Buffer に置かれます。
4. ある時点で、パケットはアプリケーション・レイヤによって Rx Buffer
から読み出されます。パケット全体が Rx Buffer から読み出されると、
Credit Allocated レジスタは、パケットが使用したクレジットの数だ
けインクリメントできます。ヘッダおよびデータ・クレジットに対
して、個別の Credit Allocated レジスタがあります。
3–14
PCI Express Compiler Version 6.1
PCI Express コンパイラ・ユーザガイド
Altera Corporation
2006 年 12 月
仕様
5. Credit Allocated レジスタの値は、FC アップデート DLLP を作成す
るために使用されます。
6. FC アップデート DLLP が作成されると、FC アップデート DLLP は
PCI Express リンクにアクセスするためにアービトレーションを行い
ます。FC アップデート DLLP は通常、低優先度でスケジュールされ
ます。つまり、アプリケーション・レイヤ TLP または他の DLLP
(ACK など)の連続的なストリームが、長期間にわたって FC Update
DLLP を遅延させる可能性があります。トランスミッタ側の欠乏を防
止するため、FC アップデート DLLP は、以下の 3 つの状況で高優先
度に格上げされます。
a.
受信したデータ量を Last Sent Credit Allocated カウンタから引
い た 値 が Max Sized Payload よりも小さく、現在の Credit
Allocated カウンタが Last Sent Credit Counter よりも大きい場
合。基本的に、これは、Data Source が全 Max Payload 相当分
のクレジットよりも小さく、したがって不足が生じることを
Data Sink が認識することを意味します。
b.
FC ア ッ プ デ ー ト DLLP を 再 送 信 す る た め に PCI Express
specification を満たすように 30 us にコンフィギュレーション
された最後の FC アップデート DLLP が送信されたときから、
内部タイマが満了になった場合。
c.
Credit Allocated カウンタから Last Sent Credit Allocated カウ
ンタを引いた値が、Rx Buffer で使用可能な全クレジットの 25%
以上のとき、FC アップデート DLLP リクエストは高優先度に
格上げされます。
ワースト・ケースにおいて、FC アップデート DLLP を次の送信ア
イテムとなるようにアービトレーションを行うと、FC アップデー
ト DLLP は、現在送信されている最大サイズの TLP が完了するまで
待たなければ、送信できないことがあります。
7. FC アップデート DLLP は元のライト・リクエスタで受信され、Credit
Limit 値がアップデートされます。クレジットを待つ停止中のパケッ
トがある場合、それらは直ちに送信できます。
上記のライト・リクエスタが連続してパケットを送信できるようにする
には、Credit Allocated カウンタおよび Credit Limit カウンタを十分なク
レジットで初期化して、最初に送信された TLP からのクレジット解放に
対応した FC アップデート DLLP の待機中に、複数の TLP を送信できる
ようにしなければなりません。
Altera Corporation
2006 年 12 月
PCI Express Compiler Version 6.1
3–15
PCI Express コンパイラ・ユーザガイド
機能の説明
表 3–1「Stratix II GX 用の FC アップデート・ループ遅延要素」は、PCI
Express MegaCore ファンクションが Stratix II GX デバイスと共に使用さ
れる FC アップデートに対する遅延要素を示しています。これらの遅延
要素は、パケット長とは無関係の遅延です。ループの全遅延はパケット
長によって増大します。
表 3–1. Stratix II GX 用の FC アップデート・ループ遅延要素
×8
×4
×1
ファンクション ファンクション ファンクション
遅延
最小
最大
最小
最大
最小
最大
Transmit Credit Consumed カウンタのデクリメン 60
トから PCI Express リンクまで(ns)
。
68
104
120
272
288
PCI Express リンクから、アプリケーション・レイ 124
ヤ・インタフェースでパケットが利用可能になる
まで(ns)。
168
200
248
488
536
アプリケーション・レイヤがパケットを取り込ん 60
でから、PCI Express リンクでの FC アップデート
DLLP の生成および送信まで(アービトレーション
遅延がないと仮定)(ns)
。
68
120
136
216
232
PCI Express リンクで FC アップデート DLLP を受 116
信してから、トランスミッタの Credit Limit レジ
スタをアップデートするまで(ns)
。
160
184
232
424
472
上記の FC アップデート・ループ遅延、付加的なアービトレーション、
およびパケット長遅延に基づいて、表 3–2 に、遅延を補うために通知が
必要なフロー制御クレジットの数を示します。Rx Buffer は、全帯域幅を
維持するために、このクレジット数に対応するサイズが必要です。
表 3–2. パケット・サイズごとの必要なデータ・クレジット
×8 ファンクション
×4 ファンクション
×1 ファンクション
最大パケット・サイズ
最小
最大
最小
最大
最小
最大
128
64
96
56
80
40
48
256
80
112
80
96
64
64
512
128
160
128
128
96
96
1024
192
256
192
192
192
192
2048
384
384
384
384
384
384
3–16
PCI Express Compiler Version 6.1
PCI Express コンパイラ・ユーザガイド
Altera Corporation
2006 年 12 月
仕様
上記のクレジットは、PCI Express リンクの両端にPCI Express MegaCore
ファンクションおよび Stratix II GX 遅延を持つデバイスがあることを仮
定しています。リンクの他端にあるデバイスによっては、より小さなま
たはより大きな遅延を持つ場合があり、これは必要なクレジットの最小
数に影響する可能性があります。アプリケーション・レイヤが、いずれ
のケースでも受信したパケットを直ちに取り込めない場合は、追加クレ
ジットを供給してこの遅延を補う必要があることもあります。
MegaWizard インタフェースの Parameter Settings タブで、Buffer Setup
ページの Desired performance for received requests を High に設定す
ると、上記の必要なクレジットを満たすだけの十分なスペースを持つ Rx
Buffer がコンフィギュレーションされます。Desired performance for
received requests を High 設定から上下に調整して、遅延および必要な
性能に合わせて Rx Buffer サイズを調整できます。
Non-Posted 読み出しのスループット
リード・データの高スループットをサポートするには、すべてのコンプ
リーション・データが戻されるまで、リード・リクエストを発行するア
プリケーション・レイヤからの全体的な遅延を解析する必要があります。
アプリケーションは、十分なリード・リクエストを発行でき、またリー
ド・コンプリータは、この遅延を補う処理が可能な(または少なくとも
十分な Non-Posted ヘッダ・クレジットを提供できる)ことが必要です。
しかし、このループで発生する遅延の大部分は、PCI Express MegaCore
ファンクションからかなり外側にあり、推定が非常に困難です。PCI
Express スイッチがこのループに挿入されることがあり、それによって
遅延の境界を判断することがより困難になります。
ただし、コンプリーション・データ・パケットの最大スループットを維
持することは重要です。PCI Express Endpoints は、無制限数のコンプ
リーション・クレジットを提供しなければなりません。ただし、PCI
Express MegaCore ファンクションは、アプリケーションが処理できる
ようになるまで、このデータを Rx Buffer にバッファする必要がありま
す。違いは、PCI Express MegaCore ファンクションが、フロー制御メカ
ニズムを用いて Rx Buffer を管理しなくなることです。代わりに、アプ
リケーションがリード・リクエストを発行する速度で Rx Buffer を管理
します。
Rx Buffer でコンプリーションに対して確保するスペース容量に対する
適切な設定を決定するには、リード・コンプリーションが戻されるまで
の時間を推定しなければなりません。これは、3–13 ページの「Posted 書
き込みのスループット」の項で説明した FC アップデート・ループ遅延
を上回る追加遅延から推定できます。リード・リクエストおよびコンプ
Altera Corporation
2006 年 12 月
PCI Express Compiler Version 6.1
3–17
PCI Express コンパイラ・ユーザガイド
機能の説明
リーションのパスは、PCI Express Logic 内の Posted 書き込みおよび FC
アップデートのパスとは厳密に同じではありません。しかし、遅延の差
は、外部読み出しからコンプリーションまでの遅延の内容を推測する際
の不正確さと比較すれば、おそらく小さなものです。
リード・リクエスタとリード・コンプリータとの間のパスに PCI Express
スイッチが存在すると仮定し、ルート・ポートの標準的なリード・コン
プリーション時間を推定して、表 3–3 に、リード・ラウンド・トリップ
遅延を補うのに必要な推定コンプリーション・スペースを示します。
表 3–3. リード・ラウンド・トリップ遅延を補うための
コンプリーション・データ・スペース(クレジット単位)
×8
最大パケット・
ファンクション
サイズ
標準
×4
ファンクション
標準
×1
ファンクション
標準
128
120
96
56
256
144
112
80
512
192
160
128
1024
256
256
192
2048
384
384
384
4096
768
768
768
コンプリーションは、最大パケット・サイズ未満の複数のコンプリーショ
ンに分割できることに注意してください。分割するためには、最大パケッ
ト・サイズで割ったコンプリーション・データ・スペースよりも多くの
コンプリーション・ヘッダ用の空きが必要です。代わりに、ヘッダ用の
空きはコンプリーション・データ・スペース(バイト単位)÷ 64 になる
必要があります。その理由は 64 が可能な最小のリード・コンプリーショ
ン境界であるためです。MegaCore ファンクションの Parameter Settings
を 使 用 す る と き、Buffer Setup ページの Desired performance for
received completions を High に設定すると、上記の要件を満たす十分
な ス ペー ス を も つ Rx Buffer がコンフィギュレーションされます。
Desired performance for received completions を High 設定から上下に
調整して、遅延および必要な性能に合わせて Rx Buffer サイズを調整で
きます。
その他の制約は、一度に保留状態にできるリード・リクエストの量です。
これは、アプリケーションが発行できるヘッダ・タグ数の値、および発
行できる最大リード・リクエストのサイズによって制限されます。使用
できるヘッダ・タグ数の値もまた、PCI Express MegaCore ファンクショ
ンによって制限されます。×1 および ×4 ファンクションの場合、最大で
3–18
PCI Express Compiler Version 6.1
PCI Express コンパイラ・ユーザガイド
Altera Corporation
2006 年 12 月
仕様
256 のタグを使用するように指定できますが、コンフィギュレーション・
ソフトウェアは32のタグのみを使用するようにアプリケーションを制限
することがあります。ただし、32 のタグで十分なはずです。
×8コアの場合、MegaCoreファンクションは最大8つのタグを提供してい
ます。しかし、今日の PCI Express システムでは、Max Payload Size が
128 バイトに制限されている場合でも、512 以上の最大リード・リクエス
ト・サイズを許可しています。512 バイトのリード・リクエストは、32
クレジットの読み出しと同等です。したがって、512 バイトのリード・
リクエストを 8 つ(タグの制限)発行すると、256 データ・クレジット
が消費されますが、これはリード・リクエスト・ループをフルに維持し、
スループットを最大化するのに十分です。
Altera Corporation
2006 年 12 月
PCI Express Compiler Version 6.1
3–19
PCI Express コンパイラ・ユーザガイド
機能の説明
コンフィギュレーション・スペース・レジスタの内容
この項では、コンフィギュレーション・スペース・レジスタについて説
明します。詳しくは、PCI Express Base Specification Revision 1.0a の 7 章を
参照してください。
表 3–4 に、共通コンフィギュレーション・スペース・ヘッダを示します。
以下の表にさらに詳しく示します。
表 3–4. 共通コンフィギュレーション・スペース・ヘッダ
31:24
23:16
15:8
7:0
バイト・
オフセット
タイプ 0 コンフィギュレーション・レジスタ(詳しくは、表 3–5 を参照)
。
000h..03Ch
Reserved
040h..04Ch
MSI 機能構造(詳しくは、表 3–6 を参照)
050..05Ch
Reserved
060h..074h
パワー・マネージメント機能構造(詳しくは、表 3–7 を参照)
078..07Ch
PCI Express 機能構造(詳しくは、表 3–8 を参照)
080h..0A0h
Reserved
0A4h..0FCh
バーチャル・チャネル機能構造(詳しくは、表 3–9 を参照)
100h..16Ch
Reserved
170h..17Ch
バーチャル・チャネル・アービトレーション・テーブル
180h..1FCh
ポート VC0 アービトレーション・テーブル(Reserved)
200h..23Ch
ポート VC1 アービトレーション・テーブル(Reserved)
240h..27Ch
ポート VC2 アービトレーション・テーブル(Reserved)
280h..2BCh
ポート VC3 アービトレーション・テーブル(Reserved)
2C0h..2FCh
ポート VC4 アービトレーション・テーブル(Reserved)
300h..33Ch
ポート VC5 アービトレーション・テーブル(Reserved)
340h..37Ch
ポート VC6 アービトレーション・テーブル(Reserved)
380h..3BCh
ポート VC7 アービトレーション・テーブル(Reserved)
3C0h..3FCh
Reserved
400h..7FCh
AER(オプション)
800..834
Reserved
838..FFF
3–20
PCI Express Compiler Version 6.1
PCI Express コンパイラ・ユーザガイド
Altera Corporation
2006 年 12 月
仕様
表 3–5 に、タイプ 0 コンフィギュレーション設定を示します。
表 3–5. タイプ 0 コンフィギュレーション設定
31:24
23:16
15:8
デバイス ID
ベンダ ID
ステータス
コマンド
クラス・コード
0x00
ヘッダ・タイプ
0x00
7:0
バイト・
オフセット
000h
004h
リビジョン ID
008h
キャッシュ・
ライン・サイズ
00Ch
ベース・アドレス 0
010h
ベース・アドレス 1
014h
ベース・アドレス 2
018h
ベース・アドレス 3
01Ch
ベース・アドレス 4
020h
ベース・アドレス 5
024h
Reserved
028h
サブシステム ID
02Ch
サブシステム・ベンダ ID
030h
拡張 ROM ベース・アドレス
Reserved
機能 PTR
Reserved
0x00
034h
038h
0x00
割り込みピン
割り込みライン
03Ch
表 3–6 に、MSI 機能構造を示します。
表 3–6. MSI 機能構造
31:24
メッセージ・コントロール
23:16
15:8
ネクスト・
ポインタ
7:0
機能 ID
バイト・
オフセット
050h
メッセージ・アドレス
054h
メッセージ上位アドレス
058h
Reserved
Altera Corporation
2006 年 12 月
メッセージ・データ
05Ch
PCI Express Compiler Version 6.1
3–21
PCI Express コンパイラ・ユーザガイド
機能の説明
表 3–7 に、パワー・マネージメント機能構造を示します。
表 3–7. パワー・マネージメント機能構造
31:24
23:16
機能レジスタ
15:8
ネクスト・
機能 PTR
7:0
バイト・
オフセット
078h
機能 ID
PMコントロール/ス パワー・マネージメント・ステータスとコ 07Ch
ントロール
テータス・
ブリッジ拡張
データ
表 3–8 に、PCI Express 機能構造を示します。
表 3–8. PCI Express 機能構造
31:24
パワー・マネージメント機能
23:16
15:8
ネクスト・
機能 PTR
7:0
機能 ID
デバイス・コントロール
088h
08Ch
リンク機能
リンク・ステータス
080h
084h
デバイス機能
デバイス・ステータス
バイト・
オフセット
リンク・コントロール
090h
094h
スロット機能
スロット・ステータス
スロット・コントロール
098h
RsvdP
ルート・コントロール
09Ch
ルート・ステータス
3–22
PCI Express Compiler Version 6.1
PCI Express コンパイラ・ユーザガイド
0A0h
Altera Corporation
2006 年 12 月
仕様
表 3–9 に、バーチャル・チャネル機能構造を示します。
表 3–9. バーチャル・チャネル機能構造
31:24
23:16
ネクスト機能 PTR
7:0
104h
ポート VC 機能 1
RsvdP
ポート VC ステータス
VC アービトレー
ション機能
ポート VC コントロール
PAT オ フ セッ ト 0 VC リソース機能レジスタ(0)
(31:24)
バイト・
オフセット
100h
バージョン 拡張機能 ID
RsvdP
VAT オフセット
15:8
108h
10Ch
110h
VC リソース・コントロール・レジスタ(0)
114h
VC リソース・ステータス・レジスタ(0) RsvdP
118h
PAT オ フ セッ ト 1 VC リソース機能レジスタ(1)
(31:24)
11Ch
VC リソース・コントロール・レジスタ(1)
120h
VC リソース・ステータス・レジスタ(1) RsvdP
124h
...
PAT オ フ セッ ト 7 VC リソース機能レジスタ(7)
(31:24)
164h
VC リソース・コントロール・レジスタ(7)
168h
VC リソース・ステータス・レジスタ(7) RsvdP
16Ch
Altera Corporation
2006 年 12 月
PCI Express Compiler Version 6.1
3–23
PCI Express コンパイラ・ユーザガイド
機能の説明
表 3–10 に、PCI Express アドバンスド・エラー・レポーティング拡張機
能構造を示します。
表 3–10. PCI Express アドバンスド・エラー・レポーティング拡張機能構造
31:24
23:16
15:8
7:0
バイト・
オフセット
PCI Express 拡張機能ヘッダ
800h
訂正不能エラー・ステータス・レジスタ
804h
訂正不能エラー・マスク・レジスタ
808h
訂正不能エラー重大度レジスタ
80Ch
訂正可能エラー・ステータス・レジスタ
810h
訂正可能エラー・マスク・レジスタ
814h
アドバンスド・エラー機能およびコントロール・レジスタ
818h
ヘッダ・ログ・レジスタ
81Ch
ルート・エラー・コマンド
82Ch
ルート・エラー・ステータス
830h
エラー・ソース ID レジスタ
訂正可能エラー・ソース ID レジスタ
834h
アクティブ・ステート・パワー・マネージメント(ASPM)
PCI Express プロトコルは、デバイスがソフトウェアによって低消費電
力ステートに置かれていない場合でも、リンク消費電力の節約を指示し
ます。ASPM はソフトウェアによって開始されますが、それ以降はハー
ドウェアによって処理されます。MegaCore ファンクションは、以下の
2 つの低消費電力ステートのうちの 1 つに自動的にシフトして、消費電
力を節約します。
■
L0s ASPM — PCI Express プロトコルは、L0s への自動遷移をに指定
します。このステートでは、MegaCore ファンクションは電気的アイ
ドルに移行しますが、アクティブな受信インタフェースを維持でき
ます(すなわち、リンク全体で 1 つのコンポーネントのみが低消費
電力ステートに移行します)。メイン・パワーとリファレンス・ク
ロックは維持されます。
L0s ASPM は、Stratix GX の内部 PHY を使用するときにはサポー
トされません。Stratix II GX の内部 PHY を使用しているときに
は、オプションでイネーブルにできます。取り付けられた外部
PHY デバイスで許可される範囲で、他のデバイス・ファミリに対
してサポートされています。
3–24
PCI Express Compiler Version 6.1
PCI Express コンパイラ・ユーザガイド
Altera Corporation
2006 年 12 月
仕様
■
L1 ASPM — L1 への遷移はオプションで、L0s よりも多くの電力を節
約します。この状態では、リンクの両側が共にパワー・ダウンしま
す。すなわちいずれの側も、最初に L0 に戻らなければ、送信も受信
もできません。
L1 ASPM は、Stratix GX または Stratix II GX の内部 PHY を使用
するときにはサポートされません。取り付けられた外部 PHY デ
バイスで許可される範囲で、他のデバイス・ファミリに対してサ
ポートされています。
L0 または L1 からの脱出
コンポーネントが低消費電力ステートからいかに速く回復するかは、ま
ず第一に、コンポーネントが低消費電力ステートに遷移する権利を持っ
ているかどうかは、脱出レイテンシおよび許容レイテンシによって決ま
ります。
脱出レイテンシ
コンポーネントの脱出レイテンシは、コンポーネントが低消費電力ス
テートから L0 に回復するのに要する時間として定義されており、
SERDES PLL 同期時間およびソフトウェアでプログラムされた共通ク
ロック・コンフィギュレーションに依存します。SERDES には一般に、
全レーンに対して 1 つの送信 PLL があり、またレーンごとに 1 つの受信
PLL があります。
■
送信 PLL — 送信時には、送信 PLL はロックしなければなりません。
■
受信 PLL — 受信 PLL はリファレンス・クロックでトレーニングしま
す。レーンが電気的アイドルから脱出すると、各受信 PLL は受信デー
タに同期します(クロック・データ・リカバリ動作)。受信データが
スロットのリファレンス・クロックで生成されている場合、および
各受信 PLL がこの同じリファレンス・クロックでトレーニングする
場合、受信 PLL の同期時間は、リファレンス・クロックが両方のコ
ンポーネントに対して同じでない場合よりも短くなります。
各コンポーネントは、スロットのリファレンス・クロックを使用する場
合は、コンフィギュレーション・スペースでレポートしなければなりま
せん。その場合、ソフトウェアは各コンポーネントのリファレンス・ク
ロックに応じて、共通クロック・レジスタをプログラムします。ソフト
ウェアはまた、共通クロック・レジスタ値を変更した後、リンクを再ト
レーニングして各脱出レイテンシをアップデートします。表 3–11 に、L0s
および L1 脱出レイテンシを示します。各コンポーネントは、L0s および
Altera Corporation
2006 年 12 月
PCI Express Compiler Version 6.1
3–25
PCI Express コンパイラ・ユーザガイド
機能の説明
L1 脱出レイテンシに対する 2 つの値、つまり共通クロック・コンフィ
ギュレーションの値と分離クロック・コンフィギュレーションの値を維
持します。
表 3–11. L0s および L1 脱出レイテンシ
パワー・
ステート
L0s
説明
L0s 脱出レイテンシは、MegaWizard インタフェースの Power Management ページに指定された
高速トレーニング・シーケンスの値に基づいて MegaCore ファンクションによって計算され、コ
ンフィギュレーション・スペース・レジストリで維持されます。メイン・パワーおよびリファレ
ンス・クロックはなお存在し、PHY は受信データに対して素早く同期します。
再同期は高速トレーニング順序セットによって実行され、このセットは反対側のコンポーネント
によって送信されます。初期化処理によって、コンポーネントは送信するセット数を知ることが
でき、このとき必要なセット数は TS1 および TS2 によって決定されます。
L1
L1 脱出レイテンシは、MegaWizard インタフェースの Power Management ページで指定され、コ
ンフィギュレーション・スペース・レジストリで維持されます。リンクの両方のコンポーネント
は、L1 低消費電力ステートに共に遷移しなければなりません。L1 のとき、コンポーネントの PHY
もさらに電力を節約するために P1 低消費電力ステートにあります。メイン・パワーおよびリファ
レンス・クロックは依然存在しますが、PHY はすべての PLL をシャット・ダウンして余分な電力
を節約できます。ただし、PLL をシャット・ダウンすると、L0 への遷移時間がより長くなります。
L1 脱出レイテンシは、L0s 脱出レイテンシよりも大きくなります。送信 PLL がロックされると、
両方のコンポーネントがリカバリ・ステートを正しくネゴシエートすると、LTSSM は L0 に戻り
ます。このように、厳密な L1 脱出レイテンシは、各コンポーネントの脱出レイテンシ(すなわち、
2 つのコンポーネントのうちの大きい方の値)に依存します。すべての計算はソフトウェアによっ
て実行されますが、各コンポーネントは自身の L1 脱出レイテンシをレポートします。
許容レイテンシ
許容レイテンシは、システム性能に妥協することなく、コンポーネント
が低消費電力ステートから L0 に遷移するために許容される最大レイテ
ンシとして定義されています。許容レイテンシ値は、コンポーネントの
内部バッファリングに依存し、コンフィギュレーション・スペース・レ
ジストリに維持されます。ソフトウェアは、リンク脱出レイテンシをエ
ンドポイントの許容レイテンシと比較して、そのコンポーネントが特定
の電力ステートの使用を許可されているかどうかを判断します。
■
L0s の場合、反対側のコンポーネントおよびルート・ポートとエンド
ポイント間の各コンポーネントの脱出レイテンシが、エンドポイン
トの許容レイテンシと比較されます。例えば、ルート・ポートに接
続されたエンドポイントでは、ルート・ポートの L0s 脱出レイテン
シが 1 µs、エンドポイントの L0s 許容レイテンシが 512 ns の場合、
ソフトウェアはそのエンドポイントの L0s へのエントリをおそらく
イネーブルできません。
3–26
PCI Express Compiler Version 6.1
PCI Express コンパイラ・ユーザガイド
Altera Corporation
2006 年 12 月
仕様
■
L1 の場合、ソフトウェアは、エンドポイントとルート・ポート間の
各リンクの L1 脱出レイテンシを計算し、その最大値をエンドポイン
トの許容レイテンシと比較します。例えば、ルート・ポートに接続
されたエンドポイントでは、ルート・ポートの L1 脱出レイテンシが
1.5 µs、エンドポイントの L1 脱出レイテンシが 4 µs、エンドポイン
トの許容レイテンシが 2 µs である場合、リンクの厳密な L1 脱出レイ
テンシは 4 µs となり、ソフトウェアはおそらく L1 へのエントリをイ
ネーブルにしません。
1 つまたは複数のスイッチがエンドポイントとルート・ポートの間に配
置されている場合、何らかの時間調整が必要になることがあります。
性能を最大にするために、L0s および L1 許容レイテンシ値をそ
れらの最小値に設定することをお勧めします。
エラー処理
各 PCI Express 準拠のデバイスは、基本レベルのエラー・マネージメン
トを実装する必要があり、オプションでアドバンスト・エラー・マネー
ジメントを実装できます。MegaCore ファンクションは、この項で説明
するように両方を行います。ルート・ポートのエラー処理は、ファブリッ
ク内での位置と役割を考慮すれば、エンドポイントのエラー処理よりも
複雑になります。
PCI Express specification では 3 つのタイプのエラーが定義されており、
それらの概要を表 3–12 に示します。
表 3–12. エラーの分類
タイプ
処理すべき
エージェント
説明
訂正可能
ハードウェア
訂正可能なエラーはシステム性能に影響することがありますが、データ・イン
テグリティは維持されます。
訂正不能、
非致命的
デバイス・
ソフトウェア
訂正不能な非致命的エラーは、データは失われるがシステム・インテグリティ
は維持される、すなわちファブリックが特定の TLP を失うことがあるが、依
然として問題なく動作するエラーとして定義されています。
訂正不能、
致命的
システム・
ソフトウェア
データの損失およびシステム障害によって発生するエラーは、訂正不能かつ致
命的とみなされます。ソフトウェアはそのようなエラーの処理方法、すなわち
リンクをリセットするか、または他の手段を実装して問題を最小化するかを決
定しなければなりません。
Altera Corporation
2006 年 12 月
PCI Express Compiler Version 6.1
3–27
PCI Express コンパイラ・ユーザガイド
機能の説明
物理レイヤ
表 3–13 に、物理レイヤで検出されるエラーを示します。
表 3–13. 物理レイヤで検出されるエラー
エラー
受信ポート・
エラー
タイプ
訂正可能
説明
このエラーの原因には、以下の 3 つが考えられます。
●
●
●
トレーニング・
エラー (1)
訂正不能
(致命的)
レーンが L0 ステートにあるときのフィジカル・コーディング・サブ
レイヤ・エラー。このエラーはレーンごとに rx_status[2:0] で
レポートされます。
100: 8B/10B デコード・エラー
101: エラスティック・バッファ・オーバフロー
110: エラスティック・バッファ・アンダフロー
111: ディスパリティ・エラー
マルチレーン・デスキュー FIFO のオーバフローに起因するデス
キュー・エラー
誤ったレーンで受信されたコントロール・シンボル
トレーニング・エラーは、MegaCore ファンクションが、ホット・リセッ
ト、ディセーブル、ループバック、L2 以外のステートを抜けて LTSSM
検出ステートに移行すると発生します。
表 3–13 の注 :
(1) PCI Express specification ではオプションとみなされます。
データ・リンク・レイヤ
表 3–14 に、データ・リンク・レイヤで検出されるエラーを示します。
表 3–14. データ・リンク・レイヤで検出されるエラー
エラー
タイプ
説明
不正な TLP
訂正可能
このエラーは LCRC 検証が失敗するとき、またはシーケンス番号エラーと
共に発生します。
不正な DLLP
訂正可能
このエラーは CRC 検証が失敗すると発生します。
リプレイ・
タイマ
訂正可能
このエラーはリプレイ・タイマがタイム・アウトすると発生します。
リ プ レ イ 番 号 訂正可能
ロールオーバ
このエラーはリプレイ・番号がロールオーバすると発生します。
データ・リンク・ 訂正不能
レイヤ・
(致命的)
プロトコル
このエラーは、AckNak_Seq_Num で指定されたシーケンス番号が、認証
されなかった TLP に対応しないときに発生します。
3–28
PCI Express Compiler Version 6.1
PCI Express コンパイラ・ユーザガイド
Altera Corporation
2006 年 12 月
仕様
トランザクション・レイヤ
表 3–15 に、トランザクション・レイヤで検出されるエラーを示します。
表 3–15. トランザクション・レイヤで検出されるエラー (1 / 3)
エラー
タイプ
説明
ポイズンド TLP の 訂正不能
(非致命的)
受信
このエラーは、受信したトランザクション・レイヤ・パケットの EP ポイ
ズンド・ビットがセットされている場合に発生します。
受信した TLP は、rx_desc および rx_data バスに表われ、アプリケー
ション・レイヤ・ロジックはポイズンド TLP に応じて、適切なアプリ
ケーション・アクションをとらなければなりません。
ECRC チェックの 訂正不能
(非致命的)
失敗 (1)
このエラーは、トランザクション・レイヤ・パケットが不正に形成され
ておらず、また LCRC チェックが有効であるにもかかわらず、ECRC
チェックが失敗したことが原因で発生します。
MegaCore ファンクションは、このトランザクション・レイヤ・パケッ
ト を 自動 的 に処 理 しま す。TLP が Non-Posted リ クエ ス トの 場 合、
MegaCore ファンクションは、Completer Abort ステータスでコンプリー
ションを生成します。すべてのケースで、TLP は MegaCore ファンクショ
ンに対して内部的に削除され、アプリケーション・レイヤには提示され
ません。
サポートされてい 訂正不能
ないリクエスト
(非致命的)
このエラーは、コンポーネントが次のいずれかを含めて、サポートされ
ていないリクエストを受信すると発生します。
●
●
●
●
●
●
●
RID がバス / デバイスに適合しないコンプリーション・トランザク
ション。
サポートされていないメッセージ。
タイプ 1 コンフィギュレーション・リクエスト・トランザクション・
レイヤ・パケット。
ネ イ テ ィ ブ・エ ン ド ポ イ ン ト で の ロ ッ ク さ れ た メ モ リ 読 み 出 し
(MEMRDLK)。
ロックされたコンプリーション・トランザクション。
アドレスの 32 MSB が 0 に設定されている 64 ビット・メモリ・トランザ
クション。
BAR マッチが存在しないメモリまたは I/O トランザクション。
TLP が Non-Posted リクエストの場合、MegaCore ファンクションはサ
ポートされていないリクエスト・ステータスでコンプリーションを生成
します。すべてのケースで、TLP は MegaCore ファンクションに対して
内部的に削除され、アプリケーション・レイヤには提示されません。
コンプリーション・ 訂正不能
タイム・アウト
(非致命的)
Altera Corporation
2006 年 12 月
このエラーは、アプリケーション・レイヤから発生したリクエストが、確
立された時間内に対応するコンプリーション・トランザクション・レイ
ヤ・パケットを生成しない場合に発生します。コンプリーション・タイ
ム・アウト・メカニズムを提供するのは、アプリケーション・レイヤ・
ロ ジ ッ ク の 役 割 で す。コ ン プ リ ー シ ョ ン・タ イ ム・ア ウ ト は、
cpl_err[0] 信号によってトランザクション・レイヤにレポートされな
ければなりません。
PCI Express Compiler Version 6.1
3–29
PCI Express コンパイラ・ユーザガイド
機能の説明
表 3–15. トランザクション・レイヤで検出されるエラー (2 / 3)
エラー
コンプリータ・
アボート (1)
タイプ
説明
訂正不能
(非致命的)
アプリケーション・レイヤは、トランザクション・レイヤ・パケットの
受信を中止するとき、cpl_err[1] 信号によってこのエラーをレポート
します。
予期しないコンプ 訂正不能
リーション
(非致命的)
このエラーは、cpl_err[2] 信号によってアプリケーション・レイヤか
ら入力された予期しないコンプリーション・トランザクション、または
リクエスタ ID がエンドポイントのコンフィギュレーションされた ID に
一致しないときのコンプリーション・トランザクションによって発生し
ます。
レシーバ・
オーバフロー (1)
このエラーは、このタイプのトランザクション・レイヤ・パケットに割
り当てられた FC クレジットに違反するトランザクション・レイヤ・パ
ケットをコンポーネントが受信すると発生します。すべてのケースで、
TLP は MegaCore ファンクションに対して内部的に削除され、アプリケー
ション・レイヤには提示されません。
訂正不能
(致命的)
フロー制御プロト 訂正不能
コル・エラー(FCPE)(致命的)
(1)
このエラーは、200µs の制限内にコンポーネントがアップデート・フロー
制御クレジットを受信しないと発生します。
3–30
PCI Express Compiler Version 6.1
PCI Express コンパイラ・ユーザガイド
Altera Corporation
2006 年 12 月
仕様
表 3–15. トランザクション・レイヤで検出されるエラー (3 / 3)
エラー
タイプ
不正に形成された 訂正不能
TLP
(致命的)
説明
このエラーは、以下の条件のいずれかによって発生します。
●
●
●
●
●
●
●
●
受信したトランザクション・レイヤ・パケットのデータ・ペイロード
が最大ペイロード・サイズを超えている。
TD フィールドがアサートされているが、トランザクション・レイヤ・
パケット・ダイジェストが存在しない、あるいはトランザクション・
レイヤ・パケット・ダイジェストが存在するが、TD フィールドがア
サートされていない。
トランザクション・レイヤ・パケットがバイト・イネーブル・ルール
に 違 反 し て い る。MegaCore フ ァ ン ク シ ョ ン は、PCI Express
specification ではオプションとみなされるこの違反をチェックしま
す。
タイプおよび長さのフィールドがトランザクション・レイヤ・パケッ
トの全長と一致しないトランザクション・レイヤ・パケット。
フォーマットとタイプの組み合わせが PCI Express specification で規
定されていないトランザクション・レイヤ・パケット。
メモリ・スペース・アクセスが 4K バイト境界を越えるアドレス / 長さ
の組み合わせのリクエスト。MegaCore ファンクションはこの違反を
チェックします。これは PCI Express specification ではオプションと
みなされます。
Assert_INTx、パワー・マネージメント、エラー・シグナリング、
アンロック、 Set_Slot_power_limit などのメッセージは、デ
フォルトのトラフィック・クラスで送信しなければなりません。
初期化されていないバーチャル・チャネルを使用するトランザクショ
ン・レイヤ・パケット。
不正に形成された TLP は MegaCore ファンクションに対して内部的に削
除され、アプリケーション・レイヤには提示されません。
表 3–15 の注 :
(1) PCI Express specification ではオプションとみなされます。
エラー・ロギングおよびレポーティング
エンドポイントが特定のエラーを処理する方法は、デバイスのコンフィ
ギュレーション・レジスタによって異なります。図 3-6 は、エンドポイ
ントのデバイス・エラー・シグナリングおよびロギングのフローチャー
トです。
Altera Corporation
2006 年 12 月
PCI Express Compiler Version 6.1
3–31
PCI Express コンパイラ・ユーザガイド
機能の説明
図 3-6. エンドポイントのデバイス・エラー・ロギングおよびレポーティング
Start
No
Is the detected
error correctable?
Yes
Adjust severity according
to uncorrectable error
severity register.
Set correctable error
detected bit in device
status register.
Set fatal/nonfatal error
detected bit in device
status register.
Set corresponding bit
in correctable error
status register.
Advanced Error
Management Only
Set corresponding bit
in uncorrectable error
status register.
Yes
Masked in
correctable error mask
register?
End
Masked in
uncorrectable error mask
register?
Yes
No
End
No
If first error pointer is not
valid, update first error
pointer and header registers.
Uncorrectable error
reporting enabled in device
control register?
No
End
Send ERR_FATAL
Message
End
Fatal?
Correctable error
reporting enabled in device
control register?
End
Yes
No
No
Yes
Yes
Send ERR_NONFATAL
Message
End
3–32
PCI Express Compiler Version 6.1
PCI Express コンパイラ・ユーザガイド
Send ERR_CORR
Message
End
Altera Corporation
2006 年 12 月
仕様
データのポイズニング
MegaCore ファンクションは、データのポイズニング、すなわちトラン
ザクションに関連するデータが破壊されていることを示すメカニズムを
実装しています。ポイズンド・トランザクション・レイヤ・パケットは、
ヘッダのエラー / ポイズンド・ビットが 1 に設定されており、次のルー
ルに従います。
■
受信したポイズンド・トランザクション・レイヤ・パケットがアプ
リケーション・レイヤに送信され、ステータス・ビットがコンフィ
ギュレーション・スペース内で自動的にアップデートされます。
■ 受信した有害コンフィギュレーション・ライト・トランザクション・
レイヤ・パケットは、コンフィギュレーション・スペースに書き込
まれません。
■ コンフィギュレーション・スペースがポイズンド・トランザクショ
ン・レイヤ・パケットを生成することはなく、ヘッダのエラー / ポ
イズンド・ビットは常に 0 に設定されます。
ポイズンド・トランザクション・レイヤ・パケットは、PCI コンフィギュ
レーション・スペース・ステータス・レジスタのパリティ・エラー・ビッ
トも設定することがあります。パリティ・エラーは、表 3–16 に規定され
た条件によって発生します。
表 3–16. パリティ・エラー条件
ステータス・ビット
条件
パリティ・エラーの検出 受信したいずれかのトランザクション・レイヤ・パケットが有害であるときに設定。
(ステータス・レジスタ・
ビット 15)
マ ス タ・デ ー タ・パ リ このビットは、コマンド・レジスタのパリティ・イネーブル・ビットが設定されて
ティ・エラー
おり、次の条件のいずれかに該当するときに設定されます。
(ステータス・レジスタ・
● ポイズンド・ビットが設定されたライト・リクエスト・トランザクション・レイ
ビット 8)
ヤ・パケットの送信。
● ポイズンド・ビットが設定されたコンプリーション・トランザクション・レイ
ヤ・パケットの受信。
MegaCore ファンクションによって受信されたポイズンド・パケットは、
アプリケーション・レイヤに渡されます。ポイズンド送信トランザクショ
ン・レイヤ・パケットが、同様にリンクに送信されます。
Altera Corporation
2006 年 12 月
PCI Express Compiler Version 6.1
3–33
PCI Express コンパイラ・ユーザガイド
機能の説明
Stratix GX PCI Express の互換性
いくつかの PCI Express デバイスは、Stratix GX レシーバを検出できま
せん。PCI Express レシーバ検出シーケンスの間に、他の PCI Express デ
バイスが Stratix GX レシーバを検出できない場合、他のデバイスは
LTSSM Detect ステートのまま、Stratix GX デバイスは Compliance ス
テートのままとなり、リンクは初期化されません。これはレシーバ入力
が電気的アイドルにあるときに、Stratix GX デバイスが正しいレシーバ・
インピーダンス特性を示さないことにより発生します。Stratix GX デバ
イスは、PCI Express specification が開発される前に設計されました。
Stratix II GX デバイスは、PCI Express プロトコルを満たすように設計さ
れており、この問題はありません。ただし、Stratix II GX は Stratix GX
を検出できない PCI Express デバイスの 1 つです。
結果として設計に影響する点は、Stratix GX が他の一部の PCI Express
デバイスと同時に動作しないということです。しかし、この問題は以下
のいずれかの対策をとることによって解決できます。
■
可能であれば、他の PCI Express デバイスが Rx Detect プロトコルの結
果を無視し、リンクのトレーニングを試みるようにします。
■ Stratix GX PCI Express デザインから Stratix II GX に移行します。
OpenCore Plus タイム・アウト動作
OpenCore® Plus ハードウェア評価機能は、次の 2 つのモードの動作をサ
ポートできます。
■
■
アンテザード — デザインは一定時間のみ動作します。
テザード — ボードとホスト・コンピュータを接続する必要がありま
す。テザード・モードがすべてのデザイン内 MegaCore ファンクショ
ンでサポートされている場合、デバイスはより長時間または無期限
に動作できます。
デバイスのすべての MegaCore ファンクションは、最も制限的な評価時
間に達すると同時にタイム・アウトします。デザインに複数の MegaCore
ファンクションが存在する場合、特定の MegaCore ファンクションのタ
イム・アウト動作は、他の MegaCore ファンクションのタイム・アウト
動作によってマスクされることがあります。
MegaCore ファンクションの場合、アンテザード・タイム・アウ
トは 1 時間、テザード・タイム・アウト値は無限です。
ハードウェア評価時間が期限切れとなったとき、MegaCore ファンク
ションは以下のことを行います。
3–34
PCI Express Compiler Version 6.1
PCI Express コンパイラ・ユーザガイド
Altera Corporation
2006 年 12 月
仕様
1. リンク・トレーニングおよびステータス・ステート・マシンがクワィ
エット・ステートを検出するよう強制され、そこに保持されます。こ
れによって、PCI Express リンクがディセーブルされ、追加のデータ
転送が防止されます。
2. コンフィギュレーション・スペース内の PCI Express 機能レジスタ
は、リセット状態に保持されます。
OpenCore Plus ハードウェア評価機能について詳しくは、1–6 ページの
「OpenCore Plus 評価機能」および「AN 320 : OpenCore Plus Evaluation
of Megafunctions」を参照してください。
Altera Corporation
2006 年 12 月
PCI Express Compiler Version 6.1
3–35
PCI Express コンパイラ・ユーザガイド
パラメータ 設定
パラメータ
設定
この項では、MegaWizard インタフェースの Parameter Settings タブを
使用してのみ設定できる PCI Express ファンクション・パラメータにつ
いて説明します。
System Settings ページ
MegaWizard インタフェースの最初のページには、システム全体の設定
およびベース・アドレス・レジスタに対するパラメータが含まれていま
す。図 3-7 を参照してください。
図 3-7. System Settings ページ
3–36
PCI Express Compiler Version 6.1
PCI Express コンパイラ・ユーザガイド
Altera Corporation
2006 年 12 月
仕様
表 3–17 に、このページで設定できるパラメータを示します。
表 3–17. System Settings ページ・パラメータ (1 / 2)
パラメータ
PHY type
値
説明
Custom
すべての PHY インタフェース(シリアルを除く)を許可、×1 お
よび ×4 レーンを許可
Stratix GX
Stratix GX は、Stratix GX デバイス・ファミリの内蔵 altgxb トラ
ンシーバを使用します。この PHY インタフェースを選択すると、
シリアル PHY インタフェースのみ許可され、Number of Lanes
は ×1 または ×4 に制限されます。
Stratix II GX
Stratix II GX は、Stratix II GX デバイス・ファミリの内蔵 alt2gxb
トランシーバを使用します。この PHY インタフェースを選択す
ると、シリアル PHY インタフェースのみ許可され、Number of
Lanes は ×1、×4、または ×8 にすることできます。
TI XIO1100
TI XIO1100 は、送信クロック(txclk)付き 8 ビット DDR また
は送信クロック PHY インタフェース付き 16 ビット SDR を許可
します。これらはいずらも、Number of Lanesを×1に制限します。
Philips PX1011A
Philips PX1011A は、8 ビット TxClk 付き SDR の PHY インタ
フェースを使用します。このオプションを指定すると、レーン
数が ×1 に制限されます。
PHY interface
Serial、
これによって、データパス幅およびクロッキング・モードに基
づいて、特定のタイプの外部 PHY インタフェースを選択します。
16-bit SDR、
16-bit SDR w/TxClk、 具体的な PHY モードについて詳しくは、4 章 外部 PHY を参照
してください。
8-bit DDR、
8-bit DDR w/TxClk、 Stratix II GX および Stratix GX はシリアル専用の PHY インタ
フェースであり、使用可能な唯一のシリアル・インタフェース
8-bit SDR、
です。
8-bit SDR w/TxClk
Lanes
×1、×4、×8
サポートされるレーンの最大数を指定します。
×8 値は、Stratix II GX PHY に対してのみサポートされています。
Port type
Native Endpoint、
Legacy Endpoint
ポート・タイプを指定します。アルテラでは、すべての新しい
デザインに対してネイティブ・エンドポイントを推奨していま
す。互換性のために I/O トランザクションのサポートが必要な
場合にのみ、Legacy Endpoint を選択します。詳しくは、3–2 ペー
ジの「エンドポイントの種類」を参照してください。
Xcvr ref_clk
100 MHz、125 MHz、 Stratix GX PHY を使用する場合は、 refclk 入力クロック信号
156.25 MHz
の周波数を指定します。Stratix GX PHY は、125 MHz または
156.25 MHz クロックのいずれかを直接使用できます。100 MHz
を選択した場合、MegaCore ファンクションは Stratix GX PLL を
使用して、100 MHz 入力から 125 MHz クロックを生成します。
汎用 PIPE を使用する場合、 refclk は必要ありません。
Stratix II GX PHY は 100 MHz クロックを必要とします。
Altera Corporation
2006 年 12 月
PCI Express Compiler Version 6.1
3–37
PCI Express コンパイラ・ユーザガイド
パラメータ 設定
表 3–17. System Settings ページ・パラメータ (2 / 2)
パラメータ
値
説明
PCI Express version
1.0A または 1.1
バリエーションが互換性を持つ PCI Express specification を選択
します。
Configure
transceiver block
Enable fast recovery
mode または Enable
rate match fifo
トランシーバ・ブロックをコンフィギュレーションするための
ダイアログが表示されます。このオプションは、Stratix II GX
PHY を選択した場合にのみ有効です。これらの使用可能なオプ
ションについて詳しくは、表 3–18 および図 3-8 を参照してくだ
さい。
Internal clock
62.5、125、250 MHz
レーン数および選択された PHY タイプに基づく内部クロックの
周波数を指定します。これはコアのアプリケーション・レイヤ・
インタフェースが動作する周波数でもあります。
×8 コンフィギュレーションでは、内部クロックは 250 MHz で固
定されます。×4 コンフィギュレーションでは、内部クロックは
125 MHz で固定されます。Stratix II GX の ×1 コンフィギュレー
ションでは、内部クロックは 125 MHz で固定されます。他の ×1
コンフィギュレーションでは、Internal Clock は 62.5 MHz か
125 MHz のいずれかに選択できます。
BAR Table (BAR0)
BAR タイプおよび
サイズ
BAR0 サイズおよびタイプ・マッピング(I/O スペース、メモ
リ・スペース、プリフェッチ可能)。BAR0 と BAR1 を組み合わ
せて 64 ビット BAR を形成できます。
BAR Table (BAR1)
BAR タイプおよび
サイズ
BAR1 サイズおよびタイプ・マッピング(I/O スペース、メモ
リ・スペース、プリフェッチ可能)。
BAR Table (BAR2)
BAR タイプおよび
サイズ
BAR2 サイズおよびタイプ・マッピング(I/O スペース、メモ
リ・スペース、プリフェッチ可能)。BAR2 と BAR3 を組み合わ
せて 64 ビット BAR を形成できます。
BAR Table (BAR3)
BAR タイプおよび
サイズ
BAR3 サイズおよびタイプ・マッピング(I/O スペース、メモ
リ・スペース、プリフェッチ可能)。
BAR Table (BAR4)
BAR タイプおよび
サイズ
BAR4 サイズおよびタイプ・マッピング(I/O スペース、メモ
リ・スペース、プリフェッチ可能)。
BAR Table (BAR5)
BAR タイプおよび
サイズ
BAR5 サイズおよびタイプ・マッピング(I/O スペース、メモ
リ・スペース、プリフェッチ可能)。BAR4 と BAR5 を組み合わ
せて 64 ビット BAR を形成できます。
BAR Table
(EXP-ROM)
BAR タイプおよび
サイズ
Expansion ROM BAR サイズおよびタイプ・マッピング(I/O ス
ペース、メモリ・スペース、プリフェッチ可能)。
3–38
PCI Express Compiler Version 6.1
PCI Express コンパイラ・ユーザガイド
Altera Corporation
2006 年 12 月
仕様
MegaCore ファンクション BAR サポート
×1 および ×4 MegaCore ファンクションは、
128 バイトから、32 ビットまた
は 64 ビット BAR で許可される最大のサイズの範囲の Memory Space
BAR をサポートします。×8 MegaCore ファンクションは、4 K バイトか
ら、32 ビットまたは 64 ビット BAR で許可される最大バイト数の Memory
Space BAR をサポートします。
Legacy Endpoint モードでの ×1 および ×4 MegaCore ファンクションは、
サイズが 16 バイトから 4 K バイトまでの I/O Space BAR をサポートし
ます。×8 MegaCore ファンクションは、4 K バイトの I/O Space BAR の
みサポートします。
Stratix II GX PHY のトランシーバ・ブロックの
コンフィギュレーション
Stratix II GX PHY を使用する場合、System Settings ページの Configure
transceiver block から利用できるダイアログで設定を変更することに
よって、トランシーバ・ブロックをコンフィギュレーションできます。
表 3–18. トランシーバ・ブロック・パラメータの
コンフィギュレーション
パラメータ
説明
Enable fast recovery
mode
このオプションをイネーブルにすると、
Rx ASPM L0s
ステートをより高速に脱出するための付加的なロ
ジックが追加されます。ディセーブルにすると、Rx
ASPM L0s の脱出には通常、リンク・リカバリの起動
が必要となります。
Enable rate match fifo
こ の オ プ シ ョ ン を イ ネ ー ブ ル に す る と、Rate
Matching FIFO がイネーブルされ、PCI Express リン
クの各端で PPM が異なる各種クロックが許可されま
す。
ディセーブルにすると、レート・マッチ FIFO がバイ
パスされ、より低いレイテンシが可能になりますが、
PCI Express リンクの両端のポートが同じクロック・
ソースを使用することが必要です。各端のクロックの
間に PPM の違いはありません。
Altera Corporation
2006 年 12 月
PCI Express Compiler Version 6.1
3–39
PCI Express コンパイラ・ユーザガイド
パラメータ 設定
図 3-8. Configure Transceiver ダイアログ
3–40
PCI Express Compiler Version 6.1
PCI Express コンパイラ・ユーザガイド
Altera Corporation
2006 年 12 月
仕様
Capabilities ページのパラメータ
Capabilities ページには、PCI 読み出し専用レジスタおよびメイン機能設
定に対するパラメータが含まれています。図 3-9 を参照してください。
図 3-9. Capabilities ページ
Altera Corporation
2006 年 12 月
PCI Express Compiler Version 6.1
3–41
PCI Express コンパイラ・ユーザガイド
パラメータ 設定
表 3–19 に、このページで設定できるパラメータを示します。
表 3–19. Capabilities ページのパラメータ (1 / 2)
パラメータ
値
説明
Device ID
16 ビット
16 進数
デバイス ID レジスタの読み出し専用値を設定します。
Vendor ID
16 ビット
16 進数
ベンダ ID レジスタの読み出し専用値を設定します。このパラメー
タを、PCI Express specification に従って 0xFFFF に設定することは
できません。
Class code
24 ビット
16 進数
クラス・コード・レジスタの読み出し専用値を設定します。
Revision ID
8 ビット
16 進数
リビジョン ID レジスタの読み出し専用値を設定します。
Subsystem ID
16 ビット
16 進数
サブシステム・デバイス ID レジスタの読み出し専用値を設定しま
す。
Subsystem vendor ID
16 ビット
16 進数
サブシステム・ベンダ ID レジスタの読み出し専用値を設定します。
このパラメータを、PCI Express specification に従って 0xFFFF に設
定することはできません。
Link common clock
オン / オフ
システムで供給される共通リファレンス・クロックを PHY のリファ
レンス・クロックとして使用するかどうかを示します。このパラメー
タは、リンク・ステータス・レジスタ内のスロット・クロック・コ
ンフィギュレーション・ビットの読み出し専用値を設定します。
Implement advanced
error reporting
オン / オフ
アドバンスト・エラー・レポート機能を設定します。
Implement ECRC check
オン / オフ
ECRC チェック機能をイネーブルにします。アドバンスト・エラー
機能およびコントロール・レジスタにおける ECRC チェック可能
ビットの読み出し専用値を設定します。このパラメータを使用する
には、ユーザがアドバンスト・エラー・レポーティング機能を実装
する必要があります。
Implement ECRC
generation
オン / オフ
ECRC 生成機能をイネーブルにします。アドバンスト・エラー機能
およびコントロール・レジスタにおける ECRC 生成可能ビットの読
み出し専用値を設定します。このパラメータを使用するには、ユー
ザがアドバンスト・エラー・レポーティング機能を実装する必要が
あります。
Link port number
8 ビット
16 進数
リンク機能レジスタにおけるポート番号フィールドの読み出し専用
値を設定します。
3–42
PCI Express Compiler Version 6.1
PCI Express コンパイラ・ユーザガイド
Altera Corporation
2006 年 12 月
仕様
表 3–19. Capabilities ページのパラメータ (2 / 2)
パラメータ
値
説明
Tags supported
4、8、16、
アプリケーション・レイヤが送信する Non-Posted リクエストに対
32、64、128、 してサポートされるタグ数を示します。トランザクション・レイヤ
256
は、アプリケーションが作成した Non-Posted リクエストに対する
すべての未処理のコンプリーションを追跡します。このパラメータ
は、トランザクション・レイヤに追跡すべき最大数を知らせます。
アプリケーション・レイヤは、すべての Non-Posted PCI Express
ヘッダの Tag 値をこの値よりも小さく設定しなければなりません。
また、32 よりも大きい値を指定すると、コンフィギュレーション空
間デバイス機能レジスタの Extended Tag Field Supported ビットも
セットされます。コンフィギュレーション・ソフトウェアがデバイ
ス・コントロール・レジスタの Extended Tag Field Enable ビットを
セットする場合、アプリケーションは 31 よりも大きいタグ数しか使
用 で き ま せ ん。こ の ビ ッ ト は、ア プ リ ケ ー シ ョ ン か ら
cfg_devcsr[8] として使用できます。この値は、×8 MegaCore
ファンクションに対しては最大 8 に制限されます。
MSI messages requested
1、 2、 4、 8、 アプリケーションが要求するメッセージ数を示します。メッセージ・
コントロール・レジスタのマルチプル・メッセージ可能フィールド
16、32
の値を設定します。詳しくは、3–92 ページの「MSI および INTx 割
り込み信号」を参照してください。
MSI message 64-bit
capable
オン / オフ
Altera Corporation
2006 年 12 月
MSI 機能メッセージ・コントロール・レジスタが 64 ビット・アド
レッシングが可能かどうかを示します。PCI Express ネイティブ・エ
ンドポイントは常に MSI 64 ビット・アドレッシングをサポートし
ます。
PCI Express Compiler Version 6.1
3–43
PCI Express コンパイラ・ユーザガイド
パラメータ 設定
Buffer Setup ページ
Buffer Setup ページには、受信バッファおよびリトライ・バッファのパ
ラメータが含まれています。図 3-10 を参照してください。
図 3-10. Buffer Setup ページ
3–44
PCI Express Compiler Version 6.1
PCI Express コンパイラ・ユーザガイド
Altera Corporation
2006 年 12 月
仕様
表 3–20 に、このページで設定できるパラメータを示します。
表 3–20. Buffer Setup ページ・パラメータ (1 / 4)
パラメータ
値
説明
Maximum payload 128 Bytes、
size
256 Bytes、
512 Bytes、
1 KByte、
2 KBytes
サポートされる最大ペイロード・サイズを指定します。このパラメータ
は、デバイス機能レジスタの最大ペイロード・サイズ・サポート・フィー
ルドの読み出し専用値を設定し、このサイズのペイロードに対して
MegaCore ファンクションを最適化します。
Number of virtual
channels
1-4
サポートされるバーチャル・チャネル数を指定します。このパラメータ
は、ポート・バーチャル・チャネル機能レジスタ 1 の読み出し専用拡張
バーチャル・チャネル・カウント・フィールドを設定し、実装される
バーチャル・チャネル・トランザクション・レイヤ・インタフェース数
を制御します。
Number of low
priority VCs
None、2、3、4
低優先度アービトレーション・グループのバーチャル・チャネル数を指
定します。この値よりも小さい番号が付けられたバーチャル・チャネル
は、低優先度です。この値以上の番号が付けられたバーチャル・チャネ
ルは、高優先度です。詳しくは、3–5 ページの「送信バーチャル・チャ
ネルのアービトレーション」を参照してください。このパラメータは、
ポート・バーチャル・チャネル機能レジスタ 1 の読み出し専用低優先度
拡張バーチャル・チャネル・カウント・フィールドを設定します。
Auto configure
retry buffer size
オン / オフ
最大ペイロード・サイズに基づいてリトライ・バッファの自動コンフィ
ギュレーションを制御します。
Retry buffer size
512 バイトから 送信された PCI Express パケットが確認応答されるまで格納するための
16 K バイト
リトライ・バッファのサイズを設定します。
(2 のべき乗)
Maximum retry
packets
4 から 256
(2 のべき乗)
Altera Corporation
2006 年 12 月
リトライ・バッファに格納できるパケットの最大数を設定します。
PCI Express Compiler Version 6.1
3–45
PCI Express コンパイラ・ユーザガイド
パラメータ 設定
表 3–20. Buffer Setup ページ・パラメータ (2 / 4)
パラメータ
Desired
performance for
received requests
値
Low、
Medium、
High、
Maximum
説明
Rx Buffer サイズおよびフロー制御クレジットをコンフィギュレーショ
ンする方法を指定します。
●
●
●
●
Low — 希望のトラフィックに対して最小量のスペースを用意しま
す。受信したリクエストのスループットがシステム・デザインにとっ
て重要でないときは、このオプションを選択します。これにより、
デバイスのリソース使用量が最小になります。
Medium — 受信したリクエストに対して中容量のスペースを用意
します。受信したリクエストのトラフィックが全リンク帯域幅を使
用する必要がなくても、ときどき最大サイズの 2、3 倍のペイロー
ド・パケット・バーストを使用することが予測される場合には、こ
のオプションを選択します。
High — 取り付けられた PCI Express ポートによって、標準外部リン
ク遅延および FC Update 処理遅延を持ち、受信したリクエストの全
リンク帯域幅を維持するのに十分なバッファ・スペースを用意しま
す。この設定は全リンク帯域幅が必要となる大部分の状況で使用し
ます。これはデフォルトの設定です。
Maximum — 付加的な外部遅延(リンク側およびアプリケーション
側)があっても最大スループットを可能とするための付加的なス
ペースを用意します。
このパラメータが供給するよりも多くのバッファ・スペースが必要
な場合は、より大きなペイロード・サイズとこの設定を選択します。
これにより、バッファ・サイズが増加し、またロジック・エレメン
ト(LE)の数もわずかに増加しますが、より大きなペイロード・サ
イズをサポートします。
詳しくは、3–12 ページの「スループットの解析」の項のデータ・ク
レジットを参照してください。
3–46
PCI Express Compiler Version 6.1
PCI Express コンパイラ・ユーザガイド
Altera Corporation
2006 年 12 月
仕様
表 3–20. Buffer Setup ページ・パラメータ (3 / 4)
パラメータ
Desired
performance for
received
completions
値
Low、
Medium、
High、
Maximum
説明
Rx Buffer サイズおよびフロー制御クレジットをコンフィギュレーショ
ンする方法を指定します。
●
●
●
●
Low — 受信したコンプリーションに対して最小量のスペースを用
意します。受信したコンプリーションのスループットがシステム・
デザインにとって重要でないときは、このオプションを選択します。
このオプションはまた、アプリケーションが PCI Express リンク上
でリード・リクエストを開始することがないと予測される場合にも
使用されます。このオプションを選択すると、デバイスのリソース
使用量が最小になります。
Medium — 受信したコンプリーションに対して中容量のスペース
を用意します。受信したコンプリーションのトラフィックが全リン
ク帯域幅を使用する必要がなくても、ときどき最大サイズの 2、3 倍
のペイロード・パケット・バーストを使用することが予測される場
合には、このオプションを選択します。
High — 取り付けられた PCI Express ポートによって、標準的な外部
リンク遅延および FC Update 処理遅延を持ち、受信したリクエスト
の全リンク帯域幅を維持するのに十分なバッファ・スペースを用意
します。この設定は全リンク帯域幅が必要となる大部分の状況で使
用します。これはデフォルトの設定です。
Maximum — 付加的な外部遅延(リンク側およびアプリケーション
側)があっても最大スループットを可能とするための付加的なス
ペースを用意します。
このパラメータが供給するよりも多くのバッファ・スペースが必要
な場合は、より大きなペイロード・サイズとこの設定を選択します。
これにより、バッファ・サイズが増加し、またロジック・エレメン
ト(LE)の数もわずかに増加しますが、より大きなペイロード・サ
イズをサポートします。
詳しくは、3–12 ページの「スループットの解析」の項のデータ・クレ
ジットを参照してください。
Altera Corporation
2006 年 12 月
PCI Express Compiler Version 6.1
3–47
PCI Express コンパイラ・ユーザガイド
パラメータ 設定
表 3–20. Buffer Setup ページ・パラメータ (4 / 4)
パラメータ
RX Buffer Space
Allocation
値
説明
読 み 出 し 専 用 Rx Buffer Space Allocation テーブルには、Rx Buffer Size 設定に基づ
テーブル
いて各フロー制御可能なタイプに割り当てられたクレジットとスペー
スが表示されます。すべてのバーチャル・チャネルは同じ Rx Buffer ス
ペース・アロケーションを使用します。
このテーブルには Non-Posted データ・クレジットは表示されません。
これは、MegaCore ファンクションが常に無限の Non-Posted データ・
クレジットを通知し、各 Non-Posted ヘッダに関連付けることができる
最大 1 DWORD のデータに対する空きを持つからです。
コンプリーション・ヘッダおよびコンプリーション・データに対して表
示される数は、コンプリーション用の Rx Buffer に確保されるスペース
容量を示します。ただし、無限のコンプリーション・クレジットは、エ
ンドポイントに対して要求されるため、PCI Express リンク上で通知さ
れます。Rx Buffer コンプリーション・スペースがオーバフローしない
ようにするために行われる Non-Posted リクエストのレートは、アプリ
ケーション・レイヤが管理します。
3–48
PCI Express Compiler Version 6.1
PCI Express コンパイラ・ユーザガイド
Altera Corporation
2006 年 12 月
仕様
Power Management ページ
Power Management ページには、MegaCore ファンクションのさまざま
なパワー・マネージメント特性を設定するためのパラメータがあります。
図 3-11 を参照してください。
図 3-11. Power Management ページ
Altera Corporation
2006 年 12 月
PCI Express Compiler Version 6.1
3–49
PCI Express コンパイラ・ユーザガイド
パラメータ 設定
表 3–21 に、このページで設定できるパラメータを示します。
表 3–21. Power Management ページ・パラメータ (1 / 2)
パラメータ
値
説明
Idle threshold for L0s 256 ns から 8,192 ns L0s エントリのアイドル・スレッショルドを示します。このパラ
entry
(256 ns 単位)
メータは、トランスミッタが L0s ステートに遷移するまでリンク
が ア イ ド ル で な け れ ば な ら な い 合 計 時 間 を 指 定 し ま す。
PCI Express specification では、この時間は 7 µs より小さくなけ
ればならないと記載されていますが、正確な値は実装によって異
なります。Stratix GX PHY または Stratix II GX PHY を選択する
場合、このパラメータはディセーブルされ、外部 PHY を使用し
ている場合は、その最大値に設定されます。PHY ベンダのドキュ
メントを参照して、このパラメータに対する正しい値を決定して
ください。
Endpoint L0s
acceptable latency
< 64 ns to > 4 µs
デバイス機能レジスタの許容エンドポイント L0s レイテンシを示
します。デバイス機能レジスタのエンドポイント L0s 許容レイテ
ンシ・フィールドの読み出し専用値を設定します。この値はアプ
リケーション・レイヤが許容可能なレイテンシに基づく必要があ
ります。
Number of Fast
Training
Sequences
共通クロック
0 - 255
共通クロック・モードで必要な高速トレーニング・シーケンス
数を示します。必要な高速トレーニング・シーケンス数は、リ
ンク初期化中にリンクの他端に送信され、デバイス機能レジス
タの L0s 脱出レイテンシ・フィールドの計算にも使用されます。
Stratix GX PHY または Stratix II GX PHY を選択する場合、この
パラメータはディセーブルされ、その最大値に設定されます。外
部 PHY を使用している場合は、PHY ベンダのドキュメントを
参照して、このパラメータの正しい値を決定してください。
Number of Fast
Training
Sequences
Separate clock
0 - 255
個別クロック・モードで必要な高速トレーニング・シーケンス
数を示します。必要な高速トレーニング・シーケンス数は、リ
ンク初期化中にリンクの他端に送信され、デバイス機能レジス
タの L0s 脱出レイテンシ・フィールドの計算にも使用されます。
Stratix GX PHY または Stratix II GX PHY を選択する場合、この
パラメータはディセーブルされ、その最大値に設定されます。外
部 PHY を使用している場合は、PHY ベンダのドキュメントを参
照して、このパラメータの正しい値を決定してください。
Enable L1 ASPM
オン / オフ
リンク機能レジスタの L1 アクティブ・ステート・パワー・マネー
ジメント・サポート・ビットを設定します。Stratix GX PHY また
は Stratix II GX PHY を選択する場合、このオプションはオフに
され、ディセーブルされます。
Endpoint L1
acceptable latency
< 1µs から > 64 µs
エンドポイント L1 許容レイテンシを示します。デバイス機能レ
ジスタのエンドポイント L1 許容レイテンシ・フィールドの読み
出し専用値を設定します。この値はアプリケーション・レイヤが
許容可能なレイテンシに基づく必要があります。
3–50
PCI Express Compiler Version 6.1
PCI Express コンパイラ・ユーザガイド
Altera Corporation
2006 年 12 月
仕様
表 3–21. Power Management ページ・パラメータ (2 / 2)
パラメータ
値
説明
L1 Exit Latency
Common clock
< 1µs から > 64 µs
個別クロックの L1 脱出レイテンシを示します。デバイス機能レ
ジスタの L1 脱出レイテンシ・フィールドの値を計算するために
使用されます。Stratix GX PHY または Stratix II GX PHY を選択
する場合、このパラメータはディセーブルされ、その最大値に設
定されます。外部 PHY を使用している場合は、PHY ベンダのド
キュメントを参照して、このパラメータの正しい値を決定してく
ださい。
L1 Exit Latency
Separate clock
< 1µs から > 64 µs
共通クロックの L1 脱出レイテンシを示します。デバイス機能レ
ジスタの L1 脱出レイテンシ・フィールドの値を計算するために
使用されます。Stratix GX PHY または Stratix II GX PHY を選択
する場合、このパラメータはディセーブルされ、その最大値に設
定されます。外部 PHY を使用している場合は、PHY ベンダのド
キュメントを参照して、このパラメータの正しい値を決定してく
ださい。
信号
アプリケーション・インタフェースの信号は、以下の 4 つのカテゴリに
分類されます。
■
■
■
■
送信データ・パス・インタフェース信号
受信データ・パス・インタフェース信号
コンフィギュレーション・インタフェース信号
グローバル信号
図 3-12 に、すべての PCI Express MegaCore ファンクションの信号を示
します。
送信および受信信号は実装された各バーチャル・チャネルに適用されま
す。他方、コンフィギュレーションおよびグローバル信号はリンク上の
すべてのバーチャル・チャネルに共通です。
Altera Corporation
2006 年 12 月
PCI Express Compiler Version 6.1
3–51
PCI Express コンパイラ・ユーザガイド
信号
図 3-12. MegaCore ファンクションの I/O 信号
Transmit Data
Path (for VC0)
tx_req0
tx_desc0
tx_ack0
tx_dfr0
tx_dv0
PCI Express
MegaCore Function
tx_data0[63:0]
tx_ws0
tx_cred0[21:0]
rx_req0
rx_desc0[135:0]
rx_ack0
rx_abort0
Receive Data
Path (for VC0)
rx_retry0
rx_mask0
rx_dfr0
rx_dv0
rx_data0[63:0]
rx_be0[7:0]
rx_ws0
Power Management
pme_to_cr
pme_to_sr
cfg_pmcsr[31:0]
app_msi_req
Interrupt
app_msi_ack
ack_msi_tc[2:0]
msi_num[4:0]
cfg_msicsr[15:0]
pex_msi_num[4:0]
app_int_sts
tx[7:0]
rx[7:0]
pipe_mode
1-Bit Serial
txdata0_ext[15:0]
txdatak0_ext[1:0]
txdetectrx0_ext
txelecidle0_ext
txcompliance0_ext
rxpolarity0_ext
powerdown0_ext[1:0]
rxdata0_ext[15:0]
rxdatak0_ext[1:0]
rxvalid0_ext
16-Bit PIPE for x1 and x4
(Repeated for Lanes 1 - 3
in the x4 MegaCore Function)
phystatus0_ext
rxelecidle0_ext
rxstatus0_ext[2:0]
txdata0_ext[7:0]
txdatak0_ext
txdetectrx0_ext
txelecidle0_ext
txcompliance0_ext
rxpolarity0_ext
powerdown0_ext[1:0]
rxdata0_ext[7:0]
rxdatak0_ext
rxvalid0_ext
phystatus0_ext
rxelecidle0_ext
8-Bit PIPE for x8
(Repeated for Lanes 1 - 7
in the x8 MegaCore Function)
rxstatus0_ext[2:0]
refclk
clk125_in (1)
clk125_out (2)
Global
npor
srst (3)
crst (3)
12_exit
hotrst_exit
dlup_exit
Configuration
cfg_tcvcmap[23:0]
cfg_busdev[12:0]
cfg_prmcfr[31:0]
cfg_devcsr[31:0]
Notes SignalChanges for x 8 MegaCore Functions:
(1) clk125_in for the x1, x4 MegaCore function
is changed to clk250_in for a x8 MegaCore function
(2) clk125_out for the x1 or x4 MegaCore function
is changed to clk250_out for the x8 MegaCore function
(3) srst & crst are removed for the x8 MegaCore function
(4) test_out[511:0] for the x1 or x4 MegaCore function is changed
to test_out[127:0] for the x8 MegaCore function.
cfg_linkcsr[31:0]
Completion Interface
Test Interface
cpl_err[2:0]
cpl_pending
test_in[31:0]
test_out[511:0] (4)
3–52
PCI Express Compiler Version 6.1
PCI Express コンパイラ・ユーザガイド
Altera Corporation
2006 年 12 月
仕様
送信インタフェース動作信号
送信インタフェースは、初期化されたバーチャル・チャネルごとに確立
され、2 本の独立したバスに基づいています。これらのバスのうち、1 本
はディスクリプタ・フェーズ用(tx_desc[127:0])、もう 1 本はデー
タ・フェーズ用(tx_data[63:0])です。すべてのトランザクション
にディスクリプタが含まれています。ディスクリプタは、次の項で説明
する例外のビット 126 および 127(これらはトランザクション・レイヤ
の パ ケ ッ ト・グ ル ー プを示すものです)を含む、PCI Express Base
Specification Revision 1.0a に定義される標準的なトランザクション・レイ
ヤ・パケット・ヘッダです。通常のデータ・ペイロードを持つトランザ
クション・レイヤ・パケットにのみ、1 つまたは複数のデータ・フェー
ズが含まれます。
送信データ・パス信号
MegaCore ファンクションは、アプリケーション・レイヤによって送信
されるトランザクション・レイヤ・パケットが適切に形成されているこ
とを前提としています。すなわち、MegaCore ファンクションは、アプ
リケーション・レイヤから送信されるトランザクション・レイヤ・パケッ
トの形成が不正かどうかは検出しません。
送信データ・パス信号は以下の 2 つのグループに分類することができま
す。
■
■
ディスクリプタ・フェーズ信号
データ・フェーズ信号
以下の表で 0 のサフィックスが付けられた送信インタフェース信
号名はバーチャル・チャネル 0 に対するものです。MegaCore ファ
ンクションに追加バーチャル・チャネルが実装されている場合、
そのバーチャル・チャネル番号がサフィックスとして付けられた
追加信号セットが存在します。
Altera Corporation
2006 年 12 月
PCI Express Compiler Version 6.1
3–53
PCI Express コンパイラ・ユーザガイド
信号
表 3–22 では、標準ディスクリプタ・フェーズ信号について説明します。
表 3–22. 標準ディスクリプタ・フェーズ信号 (1 / 2)
信号
tx_reqn (1)、(2)
I/O
I
tx_descn[127:0] I
(1)、(2)
説明
送信要求。この信号は各リクエストごとにアサートしなければなりません。送信
要求信号は、常に tx_desc[127:0] と一緒にアサートされ、tx_ack がアサー
トされるまでアサートされたままでなければなりません。連続するディスクリプ
タ・パケットの間でこの信号をデアサートする必要はありません。
送信ディスクリプタ・バス。送信ディスクリプタ・バスである、トランザクショ
ンのビット 127:0 には、3 または 4 DWORD の PCI Express トランザクション・
ヘッダを含めることができます。これらのビットは、PCI Express Base Specification
Revision 1.0a. で定義されている標準的なトランザクション・レイヤ・パケット・
ヘッダと同じ意味を持っています。ヘッダのバイト 0 は tx_desc バスのビット
127:120 を占有し、ヘッダのバイト 1 はビット 119:112 を占有するというように
なり、ビット 7:0 のバイト 15 まで同様です。ヘッダのフォーマットについては、
付録 B. トランザクション・レイヤ・ パケットのヘッダ・フォーマットを参照し
てください。
以下のビットは特別な意味を持っています。
●
●
●
●
●
tx_desc[2] または tx_desc[34] は tx_data 上のデータのアラインメン
トを表します。
0 に設定された tx_desc[2](64 ビット・アドレス): 最初の DWORD は
tx_data[31:0] ビットにあります。
0 に設定された tx_desc[34](32 ビット・アドレス): 最初の DWORD は
tx_data[31:0] ビットにあります。
1 に設定された tx_desc[2](64 ビット・アドレス): 最初の DWORD は
tx_data[63:32] ビットにあります。
1 に設定された tx_desc[34](32 ビット・アドレス): 最初の DWORD は
tx_data[63:32] ビットにあります。
ディスクリプタのビット 126 は通過中のトランザクション・レイヤ・パケットの
タイプを示します。
●
●
0に設定された tx_desc[126]:データを含まないトランザクション・レイヤ・
パケット
1 に設定された tx_desc[126]: データを含むトランザクション・レイヤ・パ
ケット
以下に、このバスでのビット配置の例をいくつか示します。
●
●
●
tx_desc[105:96]: length[9:0]
tx_desc[126:125]: fmt[1:0]
tx_desc[126:120]: type[4:0]
3–54
PCI Express Compiler Version 6.1
PCI Express コンパイラ・ユーザガイド
Altera Corporation
2006 年 12 月
仕様
表 3–22. 標準ディスクリプタ・フェーズ信号 (2 / 2)
信号
tx_ackn
I/O
O
(1)、(2)
説明
送信確認。この信号は、アプリケーションが tx_req 信号で要求したディスクリ
プタ・フェーズを MegaCore ファンクションが確認応答するときに 1 クロック・
サイクル間アサートされます。次のクロック・サイクルで、 tx_req 信号(ア
サートを維持)と tx_desc によって、新しいディスクリプタの送信を要求する
ことができます。
表 3–22 の注 :
(1) ただし、n はバーチャル・チャネル番号とします。×1 および ×4 の場合、n は 0 ∼ 3 です。
(2) ×8n は 0 または 1 です。
表 3–23 では、標準データ・フェーズ信号について説明します。
表 3–23. 標準データ・フェーズ信号 (1 / 2)
信号
tx_dfrn
I/O
送信データ・フェーズ・フレーミング。この信号は、データ・フェーズを要求
するために(データ・フェーズが必要と仮定)、tx_req と同じクロック・サイ
クルでアサートされます。この信号は、最後のデータ・フェーズの前のクロッ
ク・サイクルまでアサートしたままでなければなりません。
I
送信データ有効。この信号はユーザ・アプリケーション・インタフェースによっ
てアサートされ、tx_data[63:0] 信号が有効であることを知らせます。この
信号は、tx_dfr のアサーションに続くクロック・サイクルでアサートされ、送
信 の 最 後 の デ ー タ・フ ェ ー ズ ま で ア サ ー ト さ れ て い な け れ ば な り ま せ ん。
MegaCore ファンクションは、 tx_ws がアサートされていない限り、この信号
がアサートされたときにのみデータを受け入れます。
(1)、(2)
tx_dvn
説明
I
(1)、(2)
アプリケーション・インタフェースは、ディスクリプタ・フェーズが確認応答
される(tx_ack のアサーションにより)前は、最初のデータ・フェーズが発
生しないという事実を利用することができます。ただし、トランザクション・レ
イヤ・パケット・ヘッダが 3 DWORD のみ場合は、 tx_ack のアサーションと
同時に最初のデータ・フェーズが現れることがあります。
tx_wsn
(1)、(2)
O
送信ウェイト・ステート。MegaCore ファンクションは、この信号を使用して
ウェイト・ステートを挿入し、データ損失を防止します。この信号は以下の状
況で使用される可能性があります。
●
●
DLLP に送信優先度を与えるため
リンクが許容レーン数よりも少ないレーン数で初期化されている場合に、高
優先度バーチャル・チャネルまたはリトライ・バッファに送信優先度を与え
るため
MegaCoreファンクションがディスクリプタ・フェーズを確認応答する(tx_ack
のアサーションにより)準備が整っていない場合は、自動的に tx_ws をアサー
トして送信速度を制限します。 tx_dv がアサートされていない場合、 tx_ws
は無視すべきです。
Altera Corporation
2006 年 12 月
PCI Express Compiler Version 6.1
3–55
PCI Express コンパイラ・ユーザガイド
信号
表 3–23. 標準データ・フェーズ信号 (2 / 2)
信号
tx_datan[63:0]
(1)、(2)
I/O
I
説明
送信データ・バス。この信号によって、アプリケーション・インタフェースか
らリンクにデータが転送されます。この信号は 2 DWORD 幅であり、tx_desc
のビット 2 または 34(tx_desc 信号のトランザクション・レイヤ・パケット・
ヘッダ・ビット 125 が 3 DWORD か 4 DWORD かによって決まる)に位置する
トランザクション・レイヤ・パケット・アドレスのビット 2 に応じて、2 つの方
法のいずれかで自然にアドレスに揃えられます。
●
●
●
●
0 に設定された tx_desc[2](64 ビット・アドレス): 最初の DWORD は
tx_data[31:0] ビットにあります。
0 に設定された tx_desc[34](32 ビット・アドレス): 最初の DWORD は
tx_data[31:0] ビットにあります。
1 に設定された tx_desc[2](64 ビット・アドレス): 最初の DWORD は
tx_data[63:32] ビットにあります。
1 に設定された tx_desc[34](32 ビット・アドレス): 最初の DWORD は
tx_data[63:32] ビットにあります。
このナチュラル・アラインメントによって、1 QWORD アドレス(リトル・エ
ンディアン方式)に揃えられた 64 ビット・データ・パスに tx_data[63:0]
を直接接続することができます。
ビット 2 が 1 に設定された場合(5 DWORD トランザクション)
Clock Cycles
1
2
tx_data[63:32]
X
tx_data[31:0]
X
3
4
DW 0
5
6
DW 2
DW 4
X
DW 1
DW 3
X
ビット 2 が 0 に設定された場合(5 DWORD トランザクション)
Clock Cycles
1
2
3
4
5
tx_data[63:32]
X
DW 1
DW 3
tx_data[31:0]
X
DW 0
DW 2
6
X
DW 4
X
表 3–23 の注 :
(1) ここで、n はバーチャル・チャネルの番号。×1 および ×4 の場合、n は 0 ∼ 3 です。
(2) ×8 の場合、n は 0 または 1 です。
表 3–24 では、アドバンスド・データ・フェーズ信号について説明します。
3–56
PCI Express Compiler Version 6.1
PCI Express コンパイラ・ユーザガイド
Altera Corporation
2006 年 12 月
仕様
表 3–24. アドバンスド・データ・フェーズ信号
信号
I/O
tx_credn[65:0] O
(1)、 (2)
説明
送信クレジット。この信号は、アプリケーション・レイヤに使用可能なフロー制御
クレジットに基づいて、特定のタイプのトランザクション・レイヤ・パケットを送
信できるかどうかを通知するのに使用されます。MegaCore ファンクションは要求
を確認応答する前に、常に十分なクレジットがあるかどうかをチェックするため、
この信号はオプションです。しかし、この信号で使用可能なクレジットをチェック
することによって、アプリケーションは使用可能なクレジットに基づき大きなトラ
ンザクション・レイヤ・パケットを小さなトランザクション・レイヤ・パケットに
分割するか、使用可能なクレジットを通知するバーチャル・チャネルで特定のトラ
ンザクション・レイヤ・パケットを送信して、異なるタイプのトランザクション・
レイヤ・パケット間でアービトレーションを行い、システム性能を向上させること
ができます。ビットの詳細については、表 3–25 を参照してください。
トランザクション・レイヤ・パケットが MegaCore ファンクションによって確認応
答されると、対応するフロー制御クレジットが消費され、この信号は tx_ack の
アサーションの 1 クロック・サイクル後に更新されます。
初期化時に無限のクレジットを受け取ったコンポーネントの場合、この信号の各
フィールドは可能な最高値に設定されます。
×1 および ×4 MegaCore ファンクションの場合、この信号は 22 ビット幅で、アプリ
ケーション・レイヤが使用可能なクレジットを簡単にチェックできるよう、使用可
能なクレジットのエンコーディングが行われます。詳しくは、表 3–22 を参照して
ください。
×8 MegaCore ファンクションでは、
この信号は 66 ビット幅で、
各フロー制御タイプ
で使用可能な正確なクレジット数を提供します。詳しくは、表 3–26 を参照してく
ださい。
tx_errn
(1)
I
送信エラー。この信号は、トランザクション・レイヤ・パケットを破棄または無効
にするために使用され、データ・フェーズ中に 1 クロック・サイクル間アサートさ
れます。MegaCore ファンクションは、自動的にイベントをメモリにコミットし、
データ・フェーズの終了を待ちます。
tx_err がアサートされたら、アプリケーション・インタフェースは、tx_dfr と
tx_dv をデアサートして、トランザクション・レイヤ・パケットの送信を中止し
なければなりません。
この信号は、リンクに送信されたトランザクション・レイヤ・パケット(コンフィ
ギュレーション・スペースに送信されたトランザクション・レイヤ・パケットでは
なく)のみに適用されます。この信号は使用しない場合は 0 レベルに接続すること
ができます。×8 MegaCore ファンクションでは、この信号は使用できません。
表 3–24 の注 :
(1) ここで、n はバーチャル・チャネルの番号で、×1 および ×4 の場合、n は 0 ∼ 3 です。
(2) ×8 の場合、n は 0 または 1 です。
Altera Corporation
2006 年 12 月
PCI Express Compiler Version 6.1
3–57
PCI Express コンパイラ・ユーザガイド
信号
表 3–25に、
×1および×4 MegaCoreファンクション用のtx_cred0[21:0]
に関するビット情報を示します。
表 3–25. ×1 および ×4 MegaCore ファンクション用 tx_cred0[21:0] ビット
ビット
0
値
●
●
9:1
●
●
●
10
●
●
11
●
●
12
●
●
21:13
説明
Posted ヘッダ
0: 使用可能なクレジットがない
1: 少なくとも1つのトランザクション・レ
イヤ・パケットに対して十分なクレジッ
トが使用可能
0: 使用可能なクレジットがない
1-256: 使用可能なクレジットの数
257-511: Reserved
Posted データ : 9 ビットで最大ペイロード・サイズであ
る 4KB に相当する 256 クレジットの通知を許可します。
Non-Posted ヘッダ
0: 使用可能なクレジットがない
1: 少なくとも1つのトランザクション・レ
イヤ・パケットに対して十分なクレジッ
トが使用可能
Non-Posted データ
0: 使用可能なクレジットがない
1: 少なくとも1つのトランザクション・レ
イヤ・パケットに対して十分なクレジッ
トが使用可能
コンプリーション・ヘッダ
0: 使用可能なクレジットがない
1: 少なくとも1つのトランザクション・レ
イヤ・パケットに対して十分なクレジッ
トが使用可能
9 ビットで最大ペイロード・サイズである コンプリーション・データ、Posted データ
4KBに相当する256クレジットの通知を許可
3–58
PCI Express Compiler Version 6.1
PCI Express コンパイラ・ユーザガイド
Altera Corporation
2006 年 12 月
仕様
表 3–26 に、×8 MegaCore ファンクション用の tx_credn[65:0] に関
するビット情報を示します。.
表 3–26. ×8 MegaCore ファンクション用 tx_cred[65:0] ビット (1 / 2)
ビット
tx_cred[7:0]
値
●
●
tx_cred[19:8]
●
●
●
●
tx_cred[27:20]
●
●
tx_cred[39:28]
●
●
tx_cred[47:40]
●
●
tx_cred[59:48]
●
●
tx_cred[60]
●
●
tx_cred[61]
●
●
tx_cred[62]
●
●
tx_cred[63]
●
●
Altera Corporation
2006 年 12 月
説明
Posted ヘッダ
0: 使用可能なクレジットがない
1: 少なくとも1 つの TLP に対して十分なク Posted ヘッダのクレジット、
レジットが使用可能
tx_cred[60] の値が 1 に設定されてい
る場合は、このフィールドを無視しま
す。
0: 使用可能なクレジットがない
1-256: 使用可能なクレジットの数
257-511: Reserved
Posted データ : 9 ビットで最大ペイロー
ド・サイズである 4KB に相当する 256 ク
レ ジ ッ ト の 通 知 を 許 可 し ま す。
Posted デ ー タ の ク レ ジ ッ ト
tx_cred[61] の値が 1 に設定されてい
る場合、このフィールドを無視します。
Non-Posted ヘッダ
0: 使用可能なクレジットがない
1: 少なくとも1 つの TLP に対して十分なク Non-Posted ヘ ッ ダ の ク レ ジ ッ ト
レジットが使用可能
tx_cred[62] の値が 1 に設定されてい
る場合、このフィールドを無視します。
Non-Posted データ
0: 使用可能なクレジットがない
1: 少なくとも1 つの TLP に対して十分なク Non-Posted デ ー タ の ク レ ジ ッ ト
レジットが使用可能
tx_cred[63] の値が 1 に設定されてい
る場合、このフィールドを無視します。
0: 使用可能なクレジットがない
コンプリーション・ヘッダ
1: 少なくとも1 つの TLP に対して十分なク
レジットが使用可能
0: 使用可能なクレジットがない
1-256: 使用可能なクレジットの数
257-511: Reserved
コンプリーション・データ Posted データ
: 9 ビットで最大ペイロード・サイズであ
る 4KB に相当する 256 クレジットの通知
を許可します。
0: Posted ヘッダのクレジットは有限
1: Posted ヘッダのクレジットは無限
1 に設定されている場合、Posted ヘッダ
のクレジットは無限です。
0: Posted データのクレジットは有限
1: Posted データのクレジットは無限
1 に設定されている場合、Posted データ
のクレジットは無限です。
0: Non-Posted ヘッダのクレジットは有限 1 に設定されている場合、Posted ヘッダ
1: Non-Posted ヘッダのクレジットは無限 のクレジットは無限です。
0: Non-Posted データのクレジットは有限 1 に 設 定 さ れ て い る 場 合、Non-Posted
1: Non-Posted データのクレジットは無限 データのクレジットは無限です。
PCI Express Compiler Version 6.1
3–59
PCI Express コンパイラ・ユーザガイド
信号
表 3–26. ×8 MegaCore ファンクション用 tx_cred[65:0] ビット (2 / 2)
ビット
tx_cred[64]
値
●
●
tx_cred[65]
●
●
0: コンプリーション・クレジットは有限
1: コンプリーション・クレジットは無限
説明
1 に設定されている場合、コンプリーショ
ン・ヘッダのクレジットは無限です。
0: コンプリーション・データのクレジット 1 に設定されている場合、コンプリーショ
は有限
ン・データのクレジットは無限です。
1: コンプリーション・データのクレジット
は無限
送信信号を使用したトランザクションの例
この項では、トランザクション信号の相互作用の様子を示す例を紹介し
ます。
■
■
■
■
■
理想的なケースでの送信
トランザクション・レイヤがパケット受け入れ不可の場合
ウェイト・ステート・インサーションが可能な場合
優先度が他の場所で与えられている場合
トランザクション・レイヤ・パケット間で送信要求をアサートした
ままにできる場合
■ ヘッダが 4 DWORD なので、トランザクション・レイヤがウェイト・
ステートを挿入する場合
■ 複数のウェイト・ステートによってデータ送信が制限される場合
■ エラーがアサートされ、送信が無効化される場合
各波形では、水平方向の目立つ線によって、ディスクリプタ信号とデー
タ信号が区分されています。
理想的なケースでの送信
理想的なケースでは、ディスクリプタの転送とデータの転送が互いに独
立しており、同時に起こることもあります。図 3-13 を参照してくださ
い。MegaCore ファンクションは、8 DWORD のコンプリーション・ト
ランザクションを送信します。アドレス・ビット 2 は 0 に設定されます。
クロック・サイクル 4 では、最初のデータ・フェーズがディスクリプタ
の転送と同時に確認応答されます。
3–60
PCI Express Compiler Version 6.1
PCI Express コンパイラ・ユーザガイド
Altera Corporation
2006 年 12 月
仕様
図 3-13. 8 DWORD の 64 ビット・データ付きコンプリーションのトランザクション波形
Clock Cycles
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
tx_req
Descriptor
Signals
tx_ack
tx_desc[127:0]
CPLD
tx_dfr
tx_dv
Data
Signals
tx_data[63:32]
X
DW1
DW3
DW5
DW7
X
tx_data[31:0]
X
DW0
DW2
DW4
DW6
X
tx_ws
tx_err
図 3-14 に、MegaCore ファンクションによる 1 DWORD のメモリ・ライ
トの送信を示します。
図 3-14. 1 DWORD ライト転送
2
1
3
4
5
6
7
Clock Cycles
8
9
10
11
12
13
14
15
tx_req
Descriptor
Signals
tx_ack
tx_desc[127:0]
MEMWR32
tx_dfr
tx_dv
Data
Signals
tx_data[63:32]
X
tx_data[31:0]
X
X
DW0
X
tx_ws
tx_err
Altera Corporation
2006 年 12 月
PCI Express Compiler Version 6.1
3–61
PCI Express コンパイラ・ユーザガイド
信号
トランザクション・レイヤがパケット受け入れ不可の場合
この例では、アプリケーションが 6 DWORD の 64 ビット・メモリ・リー
ド・トランザクションを送信します。アドレス・ビット 2 は 0 に設定さ
れます。図 3-15 を参照してください。
この例のケースのように、MegaCore ファンクションのトランザクショ
ン・レイヤのステート・マシンが前のパケットの送信中でビジー状態に
ある場合は、データ送信を開始することができません。
図 3-15. ステート・マシンが前のトランザクション・レイヤ・パケットでビジー状態になっている
波形
Clock Cycles
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
tx_req
Descriptor
Signals
tx_ack
tx_desc[127:0]
MEMRD64
tx_dfr
tx_dv
Data
Signals
tx_data[63:32]
tx_data[31:0]
tx_ws
tx_err
3–62
PCI Express Compiler Version 6.1
PCI Express コンパイラ・ユーザガイド
Altera Corporation
2006 年 12 月
仕様
図 3-16 は、アプリケーション・レイヤが確認応答を受け取るまで待ち、
その後でライト・データの転送が可能になることを示しています。
図 3-16. トランザクション・レイヤがパケット受け入れ不可の場合
2
1
3
4
5
6
7
Clock Cycles
8
9
10
11
12
13
14
15
tx_req
Descriptor
Signals
tx_ack
tx_desc[127:0]
MEMWR32
tx_dfr
tx_dv
Data
Signals
tx_data[63:32]
X
tx_data[31:0]
X
X
DW0
X
tx_ws
tx_err
ウェイト・ステート・インサーションが可能な場合
MegaCore ファンクションが可能な最大レーンに初期化されていない場
合、必然的にデータ転送が遅延します。図 3-18 を参照してください。ア
プリケーションは、8 DWORD の 32 ビット・メモリ・ライト・トランザ
クションを送信します。アドレス・ビット 2 は 0 に設定されます。
クロック・サイクル 3 では、転送バッファがフルでない限り、すぐにデー
タ転送を開始できます。
クロック・サイクル 5 では、バッファがフルになり、MegaCore ファン
クションがウェイト・ステートを挿入して転送速度を制限すると、1 回
の転送ごとに 1 クロック・サイクルではなく 4 クロック・サイクルが必
要になります。これは、MegaCore ファンクションが実装されたレーン
で可能な最大数でコンフィギュレーションされていないためです。
図 3-17 に、トランザクション・レイヤがウェイト・ステート信号のア
サートによってデータ・フェーズを拡張する様子を示します。
Altera Corporation
2006 年 12 月
PCI Express Compiler Version 6.1
3–63
PCI Express コンパイラ・ユーザガイド
信号
図 3-17. ウェイト・ステートが挿入された、1 DWORD ライト転送
2
1
3
4
5
6
7
Clock Cycles
8
9
10
11
12
13
14
15
tx_req
Descriptor
Signals
tx_ack
tx_desc[127:0]
MEMWR32
tx_dfr
tx_dv
Data
Signals
tx_data[63:32]
X
tx_data[31:0]
X
X
DW0
X
tx_ws
tx_err
図 3-18. MegaCore ファンクションのレーンが可能な最大レーンよりも少ない場合の信号動作の
波形
Clock Cycles
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
tx_req
Descriptor
Signals
tx_ack
tx_desc[127:0]
MEMW32
tx_dfr
tx_dv
Data
Signals
tx_data[63:32]
X
DW1
DW3
DW5
DW7
X
tx_data[31:0]
X
DW0
DW2
DW4
DW6
X
tx_ws
tx_err
3–64
PCI Express Compiler Version 6.1
PCI Express コンパイラ・ユーザガイド
Altera Corporation
2006 年 12 月
仕様
ヘッダが 4 DWORD のため、トランザクション・レイヤがウェイト・
ステートを挿入する場合
この例では、アプリケーションが 64 ビット・メモリ・ライト・トランザ
クションを送信します。アドレス・ビット 2 は 1 に設定されます。図 319 を参照してください。MegaCore ファンクションは連続するトランザ
クション・レイヤ・パケットの送信時に最大性能が得られるように小さ
なバッファを実装しているので、最初の 2 データ・フェーズでウェイト・
ステートが挿入されることはありません。
クロック・サイクル 3 では、メモリ・ライト 64 ビット・トランザクショ
ン・レイヤ・パケット・リクエストに 4 DWORD ヘッダがあるため、
MegaCore ファンクションは 1 ウェイト・ステートを挿入します。この
場合、tx_dv はその 1 クロック・サイクル後に送信することも可能です。
図 3-19. ヘッダが 4 DWORD のため、ウェイト・ステートが挿入されるときの波形
Clock Cycles
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
tx_req
Descriptor
Signals
tx_ack
tx_desc[127:0]
MEMWR64
tx_dfr
tx_dv
Data
Signals
tx_data[63:32]
X
tx_data[31:0]
X
DW0
DW2
DW4
DW6
DW1
DW3
DW5
X
DW7
X
tx_ws
tx_err
Altera Corporation
2006 年 12 月
PCI Express Compiler Version 6.1
3–65
PCI Express コンパイラ・ユーザガイド
信号
優先度が他の場所で与えられている場合
この例では、アプリケーションが 8 DWORD の 64 ビット・メモリ・ラ
イト・トランザクションを送信します。アドレス・ビット 2 は 0 に設定
されます。送信パスには、連続するトランザクション・レイヤ・パケッ
トをできるだけ高速に処理できるように深さ 3 の 64 ビット・バッファが
あり、tx_desc と最初の tx_data を遅延なく受け入れます。図 3-20 を
参照してください。
クロック・サイクル 5 では、このバーチャル・チャネルにはすぐに優先
度が与えられなかったので、MegaCore ファンクションは、tx_ws の 2
回目のアサーションを行って、データ・フローを制限します。優先度は、
送信待ちデータ・リンク・レイヤ・パケット、コンフィギュレーション・
コンプリーション、または別のバーチャル・チャネルに与えられていま
す。×8 の MegaCore ファンクションでは、tx_err は使用できません。
図 3-20. 64 ビット・メモリ・ライト・リクエストの波形
Clock Cycles
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
tx_req
Descriptor
Signals
tx_ack
tx_desc[127:0]
MEMWR64
tx_dfr
tx_dv
Data
Signals
tx_data[63:32]
X
DW1
DW3
DW5
DW7
X
tx_data[31:0]
X
DW0
DW2
DW4
DW6
X
tx_ws
tx_err
3–66
PCI Express Compiler Version 6.1
PCI Express コンパイラ・ユーザガイド
Altera Corporation
2006 年 12 月
仕様
トランザクション・レイヤ・パケット間で送信要求をアサートしたまま
にできる場合
この例では、アプリケーションが 64 ビット・メモリ・リード・トランザ
クションを送信し、続いて 64 ビット・メモリ・ライト・トランザクショ
ンを送信します。アドレス・ビット 2 は 0 に設定されます。図 3-21 を参
照してください。
クロック・サイクル 4 では、トランザクション・レイヤ・パケット間で
tx_req がデアサートされません。
クロック・サイクル 5 では、別々の番地や LCRC など、64 ビット・アド
レスに伴う追加オーバヘッドのために、2 番目のトランザクション・レ
イヤ・パケットはすぐには確認応答されません。この状況では、2 つの
連続するトランザクション・レイヤ・パケット間にクロック・サイクル
が 1 つ追加されます。
図 3-21. 64 ビット・メモリ・リード・リクエストの波形
Clock Cycles
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
tx_req
Descriptor
Signals
tx_ack
tx_desc[127:0]
MEMRD64
MEMWR64
tx_dfr
tx_dv
Data
Signals
tx_data[63:32]
X
DW1
DW3
DW5
DW7
X
tx_data[31:0]
X
DW0
DW2
DW4
DW6
X
tx_ws
tx_err
Altera Corporation
2006 年 12 月
PCI Express Compiler Version 6.1
3–67
PCI Express コンパイラ・ユーザガイド
信号
複数のウェイト・ステートによってデータ送信が制限される場合
この例では、アプリケーションが 32 ビット・メモリ・ライト・トランザ
クションを送信します。アドレス・ビット 2 は 0 に設定されます。図 322 を参照してください。MegaCore ファンクションは連続するトランザ
クション・レイヤ・パケットの送信時に最大性能が得られるように小さ
なバッファを実装しているので、最初の 2 データ・フェーズでウェイト・
ステートが挿入されることはありません。
クロック・サイクル 5、7、9、11 では、MegaCore ファンクションはウェ
イト・ステートを挿入して、送信フローを制限します。
図 3-22. データ送信速度を制限する複数のウェイト・ステートの波形
Clock Cycles
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
tx_req
Descriptor
Signals
tx_ack
tx_desc[127:0]
MEMWR64
tx_dfr
tx_dv
Data
Signals
tx_data[63:32]
X
DW1
DW3
DW5
DW7
DW9
DW11
X
tx_data[31:0]
X
DW0
DW2
DW4
DW6
DW8
DW10
X
tx_ws
tx_err
エラーがアサートされ、送信が無効化される場合
この例では、アプリケーションが 14 DWORD の 64 ビット・メモリ・ラ
イト・トランザクションを送信します。アドレス・ビット 2 は 0 に設定
されます。図 3-23 を参照してください。
クロック・サイクル 12 では、tx_err がアサートされ、それによってリ
ンク上のトランザクション・レイヤ・パケットの送信が無効化されます。
無効化されたパケットには、計算された値から反転した LCRC があり、
通常の END コントロール・キャラクタの代わりに end bad パケット
(EDB)が使用されます。
3–68
PCI Express Compiler Version 6.1
PCI Express コンパイラ・ユーザガイド
Altera Corporation
2006 年 12 月
仕様
図 3-23. エラー・アサーション波形
Clock Cycles
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
tx_req
Descriptor
Signals
tx_ack
tx_desc[127:0]
MEMWR64
tx_dfr
tx_dv
Data
Signals
tx_data[63:32]
DW1
DW3
DW5
DW7
DW9
DWB
DWD
DWF
tx_data[31:0]
DW0
DW2
DW4
DW6
DW8
DWA
DWC
DWE
tx_ws
tx_err
受信インタフェース動作信号
受信インタフェースは、送信インタフェースと同様に、2 つの独立した
バスに基づいており、そのうち 1 つはディスクリプタ・フェーズ用
(rx_desc[135:0])、もう 1 つはデータ・フェーズ用(rx_data[63:0])
です。すべてのトランザクションにディスクリプタが含まれています。
ディスクリプタは、PCI Express Base Specification Revision 1.0a. で定義さ
れる標準トランザクション・レイヤ・パケット・ヘッダで 2 つの例外を
含みます。ビット 126 および 127 はトランザクション・レイヤ・パケッ
ト・グループを示し、ビット 135:128 は BAR およびアドレス・デコー
ディング情報を記述します(詳しくは、以下の rx_desc[135:0] を参
照)。
受信データ・パス信号
受信データ・パス信号は、以下の 2 つのグループに分類することができ
ます。
■
■
ディスクリプタ・フェーズ信号
データ・フェーズ信号
以下の表で、0 のサフィックスが付けられた受信インタフェース
信号名はバーチャル・チャネル 0 に対応しています。MegaCore
ファンクションが追加のバーチャル・チャネルを実装する場合、
そのバーチャル・チャネル番号がサフィックスとして付けられた
追加信号セットが存在します。
Altera Corporation
2006 年 12 月
PCI Express Compiler Version 6.1
3–69
PCI Express コンパイラ・ユーザガイド
信号
表 3–27 で、標準ディスクリプタ・フェーズ信号について説明します。
表 3–27. 標準ディスクリプタ・フェーズ信号 (1 / 2)
信号
rx_req0
I/O
受信要求。この信号は MegaCore ファンクションによってアサートされ、アプリケーショ
ン・インタフェースへのパケット転送を要求します。この信号は、トランザクション・レ
イヤ・パケット・ヘッダの最初の 2 DWORD が有効な場合にアサートされます。この信号
は最小 2 クロック・サイクル間アサートされ、rx_abort、rx_retry、および rx_ack
をこの信号と同時にアサートすることはできません。完全なディスクリプタは、この信号
がアサートされる 2 番目のクロック・サイクルで有効です。
O
受信ディスクリプタ・バス。ビット(125:0)は、PCI Express Base Specification Revision 1.0a.
で定義される標準トランザクション・レイヤ・パケット・ヘッダと同じ意味を持っていま
す。ヘッダのバイト 0 は rx_desc バスのビット 127:120 を占有し、ヘッダのバイト 1 は
ビット 119:112 を占有するというように、ビット 7:0 のバイト 15 まで同様です。ヘッダ・
フォーマットについては、付録 B. トランザクション・レイヤ・パケットのヘッダ・フォー
マットを参照してください。
(1)、 (2)
rx_descn
[135:0]
(1)、 (2)
説明
O
ビット 135:128(ディスクリプタおよび BAR デコーディング)については、表 3–28 を参
照してください。エンドポイントで受信したコンプリーション・トランザクションにはア
サートされたビットがなく、アプリケーション・レイヤのマスタ・ブロックに転送しなけ
ればなりません。
rx_desc[127:64] は、rx_req がアサートされるのと同一クロックで送信を開始し、で
きるだけ迅速にプリコーディングとアービトレーションを開始できるようにします。以下
の図に示すように、rx_desc のその他のビットは、次のクロック・サイクルまで有効にな
りません。
Clock Cycles
1
2
3
4
5
6
rx_req
rx_ack
rx_desc[135:128]
X
rx_desc[127:64]
X
rx_desc[63:0]
X
Valid
Valid
Valid
X
X
X
ディスクリプタのビット 126 は通過中のトランザクション・レイヤ・パケットのタイプを
示します。
●
●
0 に設定された rx_desc[126]: データを含まないトランザクション・レイヤ・パケッ
ト
1 に設定された rx_desc[126]: データを含むトランザクション・レイヤ・パケット
3–70
PCI Express Compiler Version 6.1
PCI Express コンパイラ・ユーザガイド
Altera Corporation
2006 年 12 月
仕様
表 3–27. 標準ディスクリプタ・フェーズ信号 (2 / 2)
信号
rx_ackn
(1)、 (2)
I/O
I
説明
受信確認。この信号は、アプリケーション・インタフェースがディスクリプタ・フェーズ
を確認応答し、データ・フェーズがあればそれを開始するときに 1 クロック・サイクルの
rx_req 信号は次のクロック・サイクルでデアサートされ、rx_desc
間アサートされます。
は次の送信を行える状態になります。
rx_abortn I
(1)、 (2)
受信アボート。この信号は、アプリケーションが要求されるディスクリプタを受け入れる
ことができない場合に、アプリケーション・インタフェースによってアサートされます。
この場合、受信バッファ・スペースからディスクリプタが削除され、フロー制御クレジッ
トが更新され、また必要に応じて、アプリケーション・レイヤは送信側の unsupported 要
求(UR)状態を用いてコンプリーション・トランザクションを生成します。
rx_retryn I
(1)、 (2)
受信リトライ。アプリケーション・インタフェースは、Non-Posted リクエストを受け入
れることができない場合に、この信号をアサートします。この場合、アプリケーション・
レイヤは、 rx_mask0 の持続中に、受信インタフェースに Posted トランザクションとコ
ンプリーション・トランザクションのみ現れるように、 rx_mask0 を rx_retry0 と共
にアサートしなければなりません。
rx_maskn
(1)、 (2)
受信マスク(Non-Posted リクエスト)。この信号は、Posted トランザクションとコンプ
リーション・トランザクションのみが現れるように、アプリケーション・インタフェース
に対して行われたすべての Non-Posted リクエスト・トランザクションをマスクするのに
使用されます。この信号は、 rx_retry0 と一緒にアサートし、MegaCore ファンクショ
ンが再び Non-Posted リクエストを受け入れることができるようになった時点でデアサー
トしなければなりません。
I
表 3–27 の注 :
(1) ここで、n はバーチャル・チャネルの番号で、×1 および ×4 の場合、n は 0 ∼ 3 です。
(2) ×8 の場合、n は 0 または 1 です。
MegaCore ファンクションは、BAR のデコーディング情報によって、こ
の信号の 8 つの MSB を生成します。表 3–28 を参照してください。
表 3–28. rx_desc[135:128]: ディスクリプタ、および
BAR のデコーディング
タイプ 0 コンポーネント
ビット
Altera Corporation
2006 年 12 月
128
= 1: BAR 0 がデコードされた。
129
= 1: BAR 1 がデコードされた。
130
= 1: BAR 2 がデコードされた。
131
= 1: BAR 3 がデコードされた。
132
= 1: BAR 4 がデコードされた。
133
= 1: BAR 5 がデコードされた。
134
= 1: 拡張 ROM がデコードされた。
135
Reserved
PCI Express Compiler Version 6.1
3–71
PCI Express コンパイラ・ユーザガイド
信号
表 3–29 では、データ・フェーズ信号について説明します。
表 3–29. データ・フェーズ信号 (1 / 2)
信号
I/O
説明
rx_ben[7:0]
(1)、 (2)
O
受信バイト・イネーブル。これらの信号は、 rx_data[63:0] 上のデータを有
効にします。信号の各ビットは、 rx_data[63:0] 上のデータの対応するバイ
トが有効かどうかを示します。×8 MegaCore ファンクションには、これらの信号
はありません。
rx_dfrn
(1)、 (2))
O
受信データ・フェーズ・フレーミング。この信号は、rx_req と同じまたはそれ
以降のクロック・サイクルでアサートされ、データ・フェーズを要求します(デー
タ・フェーズが必要と仮定)。この信号は最後のデータ・フェーズの前のクロッ
ク・サイクルでデアサートされ、アプリケーション・レイヤにデータ・フェーズ
の終了を知らせます。アプリケーション・レイヤがデータ・フェーズ・カウンタ
を実装する必要はありません。
rx_dvn
(1)、 (2)
O
受信データ有効。この信号は、MegaCore ファンクションによってアサートされ、
rx_data[63:0] にデータが含まれていることを知らせます。
3–72
PCI Express Compiler Version 6.1
PCI Express コンパイラ・ユーザガイド
Altera Corporation
2006 年 12 月
仕様
表 3–29. データ・フェーズ信号 (2 / 2)
信号
rx_datan[63:0]
(1)、 (2)
I/O
O
説明
受信データ・バス。このバスはリンクからアプリケーション・レイヤにデータを
転送します。この信号は 2 DWORD 幅であり、 rx_desc のビット 2 に応じて、
2 つの方法のいずれかで自然にアドレスに揃えられます。
●
●
●
●
0 に設定された rx_desc[2](64 ビット・アドレス): 最初の DWORD は
rx_data[31:0] ビットにあります。
0 に設定された rx_desc[34](32 ビット・アドレス): 最初の DWORD は
rx_data[31:0] ビットにあります。
1 に設定された rx_desc[2](64 ビット・アドレス): 最初の DWORD は
rx_data[63:32] ビットにあります。
1 に設定された rx_desc[34](32 ビット・アドレス): 最初の DWORD は
rx_data[63:32] にあります。
このナチュラル・アラインメントによって、1 QWORD アドレス(リトル・エン
ディアン方式)に揃えられた 64 ビット・データ・パスに rx_data[63:0] を
直接接続することができます。
ビット 2 が 1 に設定された場合(5 DWORD トランザクション)
Clock Cycles
1
2
rx_data[63:32]
X
rx_data[31:0]
X
3
4
DW 0
5
6
DW 2
DW 4
X
DW 1
DW 3
X
ビット 2 が 0 に設定された場合(5 DWORD トランザクション)
Clock Cycles
1
rx_wsn
(1)、 (2)
I
2
3
4
5
rx_data[63:32]
X
DW 1
DW 3
rx_data[31:0]
X
DW 0
DW 2
6
X
DW 4
X
受信ウェイト・ステート。アプリケーション・レイヤは、この信号を使用して
ウェイト・ステートを挿入し、データ転送を制限することができます。
表 3–29 の注 :
(1) ここで、n はバーチャル・チャネルの番号で、×1 および ×4 の場合、n は 0 ∼ 3 です。
(2) ×8 の場合、n は 0 または 1 です。
Altera Corporation
2006 年 12 月
PCI Express Compiler Version 6.1
3–73
PCI Express コンパイラ・ユーザガイド
信号
受信信号を使用したトランザクションの例
この項では、トランザクション信号の相互作用の様子を示す別の例を紹
介します。
■
■
データ・ペイロードを伴わないトランザクション
リトライされたトランザクションおよびマスクされた Non-Posted
トランザクション
■ アボートされたトランザクション
■ データ・ペイロードを伴うトランザクション
■ データ・ペイロードおよびウェイト・ステートを伴う
トランザクション
各波形では、水平方向の目立つ線によって、ディスクリプタ信号とデー
タ信号が区分されています。
データ・ペイロードを伴わないトランザクション
図 3-24 では、MegaCore ファンクションは以下の 3 つの連続するトラン
ザクションを受け取りますが、いずれにもデータ・ペイロードはありま
せん。
■
■
■
メモリ・リード・リクエスト(64 ビット・アドレッシング・モード)
メモリ・リード・リクエスト(32 ビット・アドレッシング・モード)
I/O リード・リクエスト
クロック・サイクル 4、7、12 では、MegaCore ファンクションは、各ト
ランザクション・レイヤ・パケットが確認応答あるいはアボートされた
後で、フロー制御クレジットを更新します。MegaCore ファンクション
は、必要に応じてフロー制御 DLLP を生成して、フロー制御クレジット
のレベルを通知します。
クロック・サイクル 8 では、クロック・サイクル 8 で開始された I/O
リード・リクエストは、rx_ack がアサートされるクロック・サイクル
11 まで確認応答されません。輻輳のため確認応答が比較的遅くなってい
る可能性があります。
3–74
PCI Express Compiler Version 6.1
PCI Express コンパイラ・ユーザガイド
Altera Corporation
2006 年 12 月
仕様
図 3-24. データ・ペイロードを伴わない 3 つのトランザクションの波形
Clock Cycles
1
2
3
4
5
6
7
8
9
10
11
12
13
14
rx_req
rx_ack
Descriptor
Signals
rx_desc[135:128]
X
rx_desc[127:64]
X
rx_desc[63:0]
X
Valid
MEMRD64
Valid
X
Valid
X
Valid
X
X
MEMRD32
X
I/O RD
X
X
Valid
X
Valid
X
rx_abort
rx_retry
rx_mask
rx_dfr
rx_dv
Data
Signals
rx_ws
rx_data[63:32]
X
rx_data[31:0]
X
rx_be[7:0]
X
リトライされたトランザクションおよびマスクされた Non-Posted
トランザクション
アプリケーション・レイヤは、Non-Posted リクエストを受け入れるこ
とができなくなると、パケットの再送信を要求するか、rx_mask をア
サートします。rx_mask の持続中は、MegaCore ファンクションはすべ
ての Non-Posted トランザクションをマスクし、Posted トランザクショ
ンとコンプリーション・トランザクションが優先されるように、送信待
ちのトランザクションの優先度を再設定します。アプリケーション・レ
イヤが再度 Non-Posted トランザクションを受け入れることができるよ
うになると、rx_mask がデアサートされ、受信バッファに蓄積されたす
べての Non-Posted トランザクションに優先度が与えられます。
各バーチャル・チャネルは専用データ・パスと関連のバッファを備えて
おり、バーチャル・チャネル間にオーダリング関係は存在しません。1
本のバーチャル・チャネルが一時的に閉塞しても、他のバーチャル・チャ
ネルには影響なくデータ・フローが継続します。バーチャル・チャネル
では、Non-Posted トランザクションに対してのみデッドロックを防止
するためにリオーダリングが必要です。以下のケースでは、リオーダリ
ングは実装されません。
Altera Corporation
2006 年 12 月
PCI Express Compiler Version 6.1
3–75
PCI Express コンパイラ・ユーザガイド
信号
■
■
■
同一バーチャル・チャネル内にマップされたトラフィック・クラスの間
Posted トランザクションとコンプリーション・トランザクションの間
同一タイプのトランザクションの間(トランザクション・レイヤ・パ
ケットのリラックス・オーダリング・ビットとは無関係)
図 3-25 では、MegaCore ファンクションは、すぐに受け入れることので
きない 4 DWORD のメモリ・リード・リクエスト・トランザクションを
受け取ります。2 番目のトランザクション(1 DWORD のメモリ・ライ
ト・トランザクション)は、受信バッファ内で送信待ちの状態にありま
す。メモリ・ライト・リクエストのための rx_data[63:0] のビット 2 は 1
に設定されます。
クロック・サイクル 3 では、rx_mask がアサートされている限り、NonPosted トランザクションの送信は許可されません。
トランザクション・レイヤ・パケットが受信バッファから抽出され、ディ
スクリプタ・フェーズとデータ・フェーズ(ある場合)の両方が終了し
た後にのみ、フロー制御クレジットが更新されます。この更新は、図 325 のクロック・サイクル 8 および 12 で行われます。
図 3-25. リトライされたトランザクションおよびマスクされた Non-Posted トランザクションの
波形
Clock Cycles
1
2
3
4
5
6
7
8
9
10
11
12
13
14
rx_req
rx_ack
Descriptor
Signals
rx_desc[135:128]
X
Valid
X
Valid
rx_desc[127:64]
X
MEMRD 4DW
X
rx_desc[63:0]
X
Valid
X
X
Valid
X
MEMWR 1DW
X
MEMRD 4DW
X
Valid
X
Valid
X
rx_abort
rx_retry
rx_mask
rx_dfr
rx_dv
Data
Signals
rx_ws
rx_data[63:32]
X
X
X
rx_data[31:0]
rx_be[7:0]
DW 0
00h
F0h
3–76
PCI Express Compiler Version 6.1
PCI Express コンパイラ・ユーザガイド
00h
Altera Corporation
2006 年 12 月
仕様
アボートされたトランザクション
図 3-26 では、16 DWORD のメモリ・リードがアプリケーション・レイ
ヤに送られます。アプリケーション・レイヤは、トランザクション・レ
イ ヤ・パ ケ ッ ト を 受 け 入 れ る こ と が で き な く な る と 判 断 す る と、
rx_abort をアサートしてそのパケットを破棄します。また、アプリケー
ション・レイヤがすべてのトランザクション・レイヤ・パケットを受け
入れ、検証後に拒否できるロジックを実装するデザインも考えられます。
rx_abort をアサートする利点は、データ・ペイロードを伴うトランザ
クション・レイヤ・パケットを 1 クロック・サイクルで破棄できること
です。
MegaCore ファンクションは、最初のトランザクション・レイヤ・パケッ
トをアボートした後、2 番目のパケット(この場合は 3 DWORD コンプ
リーション)を送信することができます。MegaCore ファンクションは、
アボートされたトランザクション・レイヤ・パケットをエラーとして処
理せず、そのトランザクションが確認応答されたかのように、フロー制
御クレジットを更新します。この場合、アプリケーション・レイヤは、
Completer Abort ステータスでコンプリーションを生成して送信し、
cpl_errのアサーションによってMegaCoreファンクションのコンフィ
ギュレーション・スペースに Completer Abort イベントを知らせなけれ
ばなりません。
クロック・サイクル 6 で、rx_abort がアサートされ、クロック・サイ
クル 8 で次のトランザクションの送信が開始されます。
Altera Corporation
2006 年 12 月
PCI Express Compiler Version 6.1
3–77
PCI Express コンパイラ・ユーザガイド
信号
図 3-26. アボートされたトランザクションの波形
Clock Cycles
1
2
3
4
5
6
7
8
9
10
11
12
13
14
rx_req
rx_ack
rx_desc[135:128]
Descriptor
Signals
rx_desc[127:64]
rx_desc[63:0]
Valid
X
MEMRD 16DW
X
Valid
X
Valid
X
CPL 3DW
X
Valid
X
rx_abort
rx_retry
rx_mask
rx_dfr
rx_dv
Data
Signals
rx_ws
rx_data[63:32]
X
DW 1
rx_data[31:0]
X
DW 0
DW 2
X
rx_be[7:0]
X
FFh
0Fh
X
X
データ・ペイロードを伴うトランザクション
図 3-27 では、MegaCore ファンクションは、8 DWORD のコンプリー
ション・トランザクションと、2 番目の 3 DWORD のメモリ・ライト・
リクエストを受け取ります。rx_data[63:0] のビット 2 は、コンプ
リーション・トランザクションの場合は 0 に設定され、メモリ・ライト・
リクエスト・トランザクションの場合は 1 に設定されます。
rx_dfr は通常、rx_req と同じクロック・サイクルまたは次のクロッ
ク・サイクルでアサートされます。ただし、このケースでは、この信号
はすでにアサートされており、最初のトランザクションの送信終了を知
らせるクロック・サイクル 7 までアサートされたままです。この信号は
クロック・サイクル 8 ですぐに再アサートされ、2 番目のトランザクショ
ンのデータ・フェーズを要求します。
3–78
PCI Express Compiler Version 6.1
PCI Express コンパイラ・ユーザガイド
Altera Corporation
2006 年 12 月
仕様
図 3-27. データ・ペイロードを伴うトランザクションの波形
Clock Cycles
1
2
3
4
5
6
7
8
9
10
11
12
13
14
rx_req
rx_ack
Descriptor
Signals
rx_desc[135:128]
X
Valid
X
rx_desc[127:64]
X
CPLD 8DW
X
rx_desc[63:0]
X
Valid
X
X
Valid
X
MEMWR AD1 3DW
X
Valid
rx_abort
rx_retry
rx_mask
rx_dfr
rx_dv
Data
Signals
rx_ws
rx_data[63:32]
X
DW 1
DW 3
DW 5
rx_data[31:0]
X
DW 0
DW 2
DW 4 DW 6
rx_be[7:0]
X
FFh
DW 7
DW 0
X
X
F0h
DW 2
X
DW 1
X
FFh
X
データ・ペイロードとウェイト・ステートを伴うトランザクション
アプリケーション・レイヤは、何回でも必要なだけ rx_ws をアサートす
ることができます。図 3-28では、MegaCoreファンクションは、4 DWORD
のコンプリーション・トランザクションを受信します。rx_data[63:0]
のビット 2 は 1 に設定されます。アプリケーション・レイヤと MegaCore
フ ァン クシ ョ ンの 両 方が ウ ェイ ト・ステ ー トを 挿入 し ます。通 常、
rx_data[63:0] はクロック・サイクル 4 でデータを出力しますが、
MegaCore ファンクションは、rx_dv をデアサートしてウェイト・ス
テートを挿入しています。
クロック・サイクル 11 では、以下の両方の条件が満足されるまでデータ
送信は再開されません。
■
MegaCore ファンクションがクロック・サイクル 10 で rx_dv をアサー
トし、それによって MegaCore ファンクションが挿入したウェイト・
ステートが終了する。
■ クロック・サイクル 11 でアプリケーション・レイヤが rx_ws をデア
サートし、それによってアプリケーション・レイヤが挿入したウェ
イト・ステートが終了する。
Altera Corporation
2006 年 12 月
PCI Express Compiler Version 6.1
3–79
PCI Express コンパイラ・ユーザガイド
信号
図 3-28. データ・ペイロードとウェイト・ステートを伴うトランザクションの波形
Clock Cycles
1
2
3
4
5
6
7
8
9
10
11
12
13
14
rx_req
rx_ack
Descriptor
Signals
rx_desc[135:128]
X
Valid
X
rx_desc[127:64]
X
CPLD 4DW
X
rx_desc[63:0]
X
Valid
X
rx_abort
rx_retry
rx_mask
rx_dfr
rx_dv
rx_ws
Data
Signals
rx_data[63:32]
X
rx_data[31:0]
X
rx_be[7:0]
X
DW 0
F0h
DW 2
X
DW 1
X
DW 3
X
FFh
X
0Fh
X
受信信号間の依存性
表 3–30 に、さまざまな受信信号間の最小および最大レイテンシ値をク
ロック・サイクルで示します。
表 3–30. 受信信号間のクロック・サイクルにおける最小および最大レイテンシ値
信号 1
信号 2
最小
標準
最大
注
rx_req
rx_ack
1
1
N
rx_req
rx_dfr
0
0
0
データ・ペイロードが存在する場合、前のデータ転送が
進行中の場合を除いて、常に同じクロック・サイクルで
アサートされます。3–79 ページの図 3-27 を参照してくだ
さい。
rx_req
rx_dv
1
1-2
N
データが送信されることを仮定しています。
rx_retry
rx_req
1
2
N
rx_req は次のトランザクション要求です。
3–80
PCI Express Compiler Version 6.1
PCI Express コンパイラ・ユーザガイド
Altera Corporation
2006 年 12 月
仕様
クロック
アルテラの PCI Express MegaCore ファンクションは、PHY(汎用 PIPE
または Stratix GX)とリファレンス・クロック周波数に応じて、可能な
複数のクロック・コンフィギュレーションのうちの 1 つを使用します。
このファンクションには、refclk および clk125_in の 2 つのクロッ
ク入力信号があります。
このファンクションには、125 MHz のトランシーバ・クロックである出
力クロック clk125_out もあります。Stratix GX PHY の実装では、
clk125_out がトランシーバ・リファレンス・クロックの 125 MHz バー
ジョンであり、これを使用して clk125_in を生成しなければなりませ
ん。汎用 PIPE PHY 実装では、この信号は refclk 入力からドライブさ
れます。
■
refclk – この信号は Stratix GX PHY 実装に、トランシーバ用のリ
ファレンス・クロックを供給します。汎用 PIPE PHY 実装の場合、
refclk は clk125_out に直接ドライブされます。
■
clk125_in – この信号は、このファンクションのすべてのレジス
タに対するクロックですが、受信 PCS レイヤのわずかな部分は例外
的に、Stratix GX PHY 実装では復元クロックによってクロックされ
ます。同期アプリケーション・レイヤ・インタフェース信号はすべ
て、このクロックに同期して動作します。clk125_in は 125 MHz
でなければならず、Stratix GX PHY 実装では、clk125_out とまっ
たく同じ周波数でなければなりません。汎用 PIPE PHY 実装では、こ
の信号は PHY からの pclk 信号に接続する必要があります。
×4 MegaCore ファンクションを Stratix GX デバイスに実装するに
は、1 レーンごとに 4 つの追加クロック・リソースが復元クロッ
クのために使用されます。PHY レイヤのエラスティック・バッ
ファはこれらのクロックを使用します。
汎用 PIPE PHY クロッキング・コンフィギュレーション
汎 用 PIPE PHY を MegaCore ファンクションに実装する場合は、
clk125_in入力に125 MHzクロックを供給しなければなりません。一般
に、汎用 PIPE PHY は、125 MHz クロックを PIPE インタフェース全体
に供給します。
このファンクションのユーザ・アプリケーション・インタフェースと
PIPE インタフェースを含むすべてのインタフェースが clk125_in 入力
に 同 期 し て 動 作 し ま す。こ の ケ ー ス で は、refclk 信 号 お よ び
clk125_out 信号を使用する必要はありません。図 3-29 を参照してくだ
さい。
Altera Corporation
2006 年 12 月
PCI Express Compiler Version 6.1
3–81
PCI Express コンパイラ・ユーザガイド
信号
図 3-29. 汎用 PIPE PHY クロック・コンフィギュレーション (1)
altpcie_64b_x4_pipen1b: External PHY
Not Required
refclk
clk125_out
Not Required
All Logic in
MegaCore Function
125-MHz pclk
from PIPE PHY
clk125_in
clk
図 3-29 の注 :
(1)
ユーザおよび PIPE インタフェース信号は、clk125_in に同期して動作します。
Stratix GX PHY の 100 MHz リファレンス・クロック
Stratix GX PHY を 100 MHz リファレンス・クロックで実装する場合、
refclk 入力に 100 MHz クロックを供給しなければなりません。一般に、
このクロックは、Card Electro-Mechanical(CEM)Specification で規定
される 100 MHz PCI Express のリファレンス・クロックです。
このコンフィギュレーションでは、100 MHz の refclk が MegaCore
ファンクション内の enhanced PLL に接続され、Stratix GX トランシー
バで使用したり、clk125_out 信号として使用する 125 MHz クロック
を生成します。125 MHz クロックは clk125_out 信号に基づいて供給
されます。
clk125_out は、例えばアプリケーションで必要な分配回路を介して、
clk125_in 入力に接続しなければなりません。このファンクションの
ユーザ・アプリケーション・インタフェースと PIPE インタフェースを
含むすべてのインタフェースがclk125_in入力に同期して動作します。
図 3-30 を参照してください。
3–82
PCI Express Compiler Version 6.1
PCI Express コンパイラ・ユーザガイド
Altera Corporation
2006 年 12 月
仕様
図 3-30. Stratix GX PHY の 100 MHz リファレンス・クロックの
コンフィギュレーション (1)
altpcie_64b_x4_pipen1b: Stratix GX 100 MHz
100-MHz
Clock Source
refclk
clk125_out
PLL
100 -> 125
ALTGXB Transceiver
inclk
rx_cruclk
tx_coreclk
All Logic in
MegaCore Function
clk125_in
clk
図 3-30 の注 :
(1)
ユーザおよび PIPE インタフェース信号は、clk125_in に同期して動作します。
enhanced PLL の他の出力を他の目的のため、あるいは異なる位相また
は周波数と共に使用する場合は、125 MHz のリファレンス・クロック・
モードを使用し、MegaCore ファンクションへの外部 100 ∼ 125 MHz
PLL を使用する必要があります。
Stratix GX PHY、125 MHz リファレンス・クロック
Stratix GX PHY を 125 MHz リファレンス・クロックと共に実装する場
合は、refclk 入力に 125 MHz クロックを供給しなければなりません。
同じクロックが遅延なく clk125_out 信号に供給されます。
clk125_out は、例えばアプリケーションで必要な分配回路を介して、
clk125_in 入力に接続しなければなりません。このファンクションの
ユーザ・アプリケーション・インタフェースと PIPE インタフェースを
含むすべてのインタフェースがclk125_in入力に同期して動作します。
図 3-31 を参照してください。
Altera Corporation
2006 年 12 月
PCI Express Compiler Version 6.1
3–83
PCI Express コンパイラ・ユーザガイド
信号
図 3-31. Stratix GX PHY、125 MHz リファレンス・クロックの
コンフィギュレーション (1)
altpcie_64b_x4_pipen1b: Stratix GX 125 MHz
125-MHz
Clock Source
refclk
clk125_out
ALTGXB Transceiver
inclk
rx_cruclk
tx_coreclk
All Logic in
MegaCore Function
clk125_in
clk
図 3-31 の注 :
(1)
ユーザおよび PIPE インタフェース信号は、clk125_in に同期して動作します。
Stratix GX PHY、156.25 MHz リファレンス・クロック
Stratix GX PHY を 156.25 MHz リファレンス・クロックで実装する場合、
refclk 入力に 156.25 MHz クロックを供給しなければなりません。
156.25 MHz クロックは Stratix GX トランシーバに直接入ります。トラ
ンシーバの coreclk_out 出力は、ファンクションの 125 MHz の
clk125_out 出力になります。
clk125_out は、例えばアプリケーションで必要な分配回路を介して、
clk125_in 入力に接続しなければなりません。このファンクションの
ユーザ・アプリケーション・インタフェースと PIPE インタフェースを
含むすべてのインタフェースがclk125_in入力に同期して動作します。
図 3-32 を参照してください。
3–84
PCI Express Compiler Version 6.1
PCI Express コンパイラ・ユーザガイド
Altera Corporation
2006 年 12 月
仕様
図 3-32. Stratix GX PHY、156.25 MHz リファレンス・クロックの
コンフィギュレーション (1)
altpcie_64b_x4_pipen1b: Stratix GX 156.25 MHz
ALTGXB Transceiver
156.25-MHz
Clock Source
refclk
inclk
rx_cruclk
coreclk_out
clk125_out
tx_coreclk
All Logic in
MegaCore Function
clk125_in
clk
図 3-32 の注 :
(1)
ユーザおよび PIPE インタフェース信号は、clk125_in に同期して動作します。
Stratix II GX PHYの ×1 および ×4 100 MHz リファレンス・クロック
Stratix II GX PHY を ×1 または ×4 コンフィギュレーションで実装する場
合、100 MHz クロックが ALT2GXB トランシーバに直接接続されます。
clk125_outはALT2GXBトランシーバの出力によってドライブされます。
clk125_out は、できるだけ特定のアプリケーションで必要な分配回路を
通じて、clk125_in 入力に接続しなければなりません。ファンクションの
ユーザ・アプリケーション・インタフェースと PIPE インタフェースを
含むすべてのインタフェースが clk125_in 入力に同期して動作します。こ
のクロッキング・コンフィギュレーションについては、3–87 ページの
図 3-34 を参照してください。
Altera Corporation
2006 年 12 月
PCI Express Compiler Version 6.1
3–85
PCI Express コンパイラ・ユーザガイド
信号
図 3-33. Stratix II GX PHY の ×1 および ×4 100 MHz リファレンス・クロック
altpcie_64b_x4_pipen1b: Stratix II GX (or x1)
100-MHz
Clock Source
refclk
clk125_out
ALTGXB Transceiver
pll_inclk
coreclkout
User and PIPE
interface signals
are synchronous
to clk125_in
All Logic in
MegaCore Function
clk125_in
clk
Stratix II GX PHY の ×8 100 MHz リファレンス・クロック
Stratix II GX PHY が ×8 コンフィギュレーションで使用される場合、
100 MHz クロックが ALT2GXB トランシーバに直接接続されます。
clk250_outはALT2GXBトランシーバの出力によってドライブされます。
clk250_out は、できるだけ特定のアプリケーションで必要な分配回路を
通じて、clk250_in 入力に接続しなければなりません。ファンクションの
ユーザ・アプリケーション・インタフェースと PIPE インタフェースを
含むすべてのインタフェースが clk250_in 入力に同期して動作します。こ
のクロッキング・コンフィギュレーションについては、3–87 ページの
図 3-34 を参照してください。
3–86
PCI Express Compiler Version 6.1
PCI Express コンパイラ・ユーザガイド
Altera Corporation
2006 年 12 月
仕様
図 3-34. Stratix II GX PHY の ×8 100 MHz リファレンス・クロック
altpcie_64b_x8_pipen1b: Stratix II GX
100-MHz
Clock Source
refclk
clk250_out
ALTGXB Transceiver
pll_inclk
coreclkout
User and PIPE
interface signals
are synchronous
to clk250_in
All Logic in
MegaCore Function
clk250_in
clk
ユーティリティ信号
すべての PCI Express MegaCore ファンクションの信号の図については、
3–52 ページの図 3-12 を参照してください。
表 3–31 では、ファンクションのグローバル信号について説明します。
表 3–31. グローバル信号 (1 / 2)
信号
I/O
説明
refclk
I
MegaCore ファンクション用リファレンス・クロック。この信号の周波数は、MegaWizard
インタフェースの Parameter Settings タブからアクセスできる System Settings ページで
指定しなければなりません。この信号は Stratix GX および Stratix II GX PHY 実装で必要
です。汎用 PIPE 実装の場合、この信号は clk125_out 信号を直接ドライブします。
clk125_in
I
×1 および ×4 MegaCore ファンクション用入力クロック。
MegaCore ファンクションのす
べての I/O 信号(refclk、 clk125_out、および npor を除く)がこのクロック信
号に同期して動作します。この信号は 125 MHz のクロック信号でなければなりません。
Stratix GX PHY 実装では、必要に応じて、clk125_out 信号でこの信号をドライブす
ることができます。125 MHz リファレンス・クロックを使用する Stratix GX PHY 実装
では、リファレンス・クロックでこの信号をドライブすることもできます。汎用 PIPE
PHY 実装では、PIPE PHY デバイスが供給する pclk は、通常 clk125_in をドライ
ブします。この信号は ×8 MegaCore ファンクションにはありません。
clk125_out
O
×1 および ×4 MegaCore ファンクション用出力クロック。Stratix GX PHY 実装の refclk
入力から派生した 125 MHz クロック出力。汎用 PIPE PHY 実装では、refclk 入力が
この信号をドライブします。この信号は ×8 MegaCore ファンクションにはありません。
Altera Corporation
2006 年 12 月
PCI Express Compiler Version 6.1
3–87
PCI Express コンパイラ・ユーザガイド
信号
表 3–31. グローバル信号 (2 / 2)
信号
I/O
説明
clk250_in
I
×8 MegaCore ファンクション用入力クロック。MegaCore ファンクションのすべての
I/O 信号(refclk、 clk250_out、および npor を除く)がこのクロック信号に同
期して動作します。この信号の周波数は clk250_out クロック信号と同じでなければ
なりません。この信号は ×8 MegaCore ファンクションにしかありません。
clk250_out
O
×8 MegaCoreファンクションからの出力。refclk入力から派生した250MHzクロック
出力。この信号は ×8 MegaCore ファンクションにしかありません。
rstn
I
コンフィギュレーション・スペースおよびデータ・パス・ロジックの非同期リセット。
アクティブ Low。この信号は ×8 MegaCore ファンクションにしかありません。
npor
I
パワー・オン・リセット。この信号は非同期、アクティブ Low のパワー・オン・リセッ
ト信号です。このリセット信号は、すべてのコンフィギュレーション・スペースのス
テッキー・レジスタ、PLL、および SERDES 回路の初期化に使用されます。100 または
156.25 MHz リファレンス・クロック実装では、clk125_out は、npor がアサートさ
れている間 Low に保持されます。
srst
I
同期データ・パス・リセット。この信号は、MegaCore ファンクションのデータ・パ
ス・ステート・マシンの同期リセットです。これはアクティブ High です。この信号は
×1 および ×4 MegaCore ファンクションにしかありません。
crst
I
同期コンフィギュレーション・リセット。この信号は、MegaCore ファンクションの非
ステッキー・コンフィギュレーション・スペース・レジスタの同期リセットです。これ
はアクティブ High です。この信号は ×1 および ×4 MegaCore ファンクションにしかあ
りません。
app_clk
O
×1 MegaCore ファンクションからアプリケーション・レイヤへの出力クロック。このク
ロックは 125 MHz または 62.5 MHz のいずれかで、refclk から派生します。この信
号は ×1 MegaCore ファンクションにしかありません。
l2_exit
O
L2 終了。PCI Express specification では、基本的なホット、ウォーム、およびコールド
の各リセット・ステートが定義されています。コールド・リセット(crst および srst
のアサーション)は、LTSSM が L2 ステートを終了する(この信号のアサーションに
よって通知される)ときに実行しなければなりません。この信号はアクティブ Low で
あり、アクティブでない場合は High に留まります。
hotrst_exit O
ホット・リセット脱出。この信号は、LTSSM がホット・リセット・ステートを抜ける
と、1 クロック・サイクルの間アサートされます。この信号は、アプリケーション・レ
イヤに、グローバル・リセット(crst および srst)をアサートする必要があること
を知らせます。この信号はアクティブ Low であり、アクティブでない場合は High に
留まります。
dlup_exit
DL アップ脱出。この信号は DL_UP から DL_DOWN への遷移を示します。この信号
は内部リセットのもう 1 つのソースであり、crst および srst 同期リセットのアサー
ションを引き起こす必要があります。この信号はアクティブ Low です。
O
3–88
PCI Express Compiler Version 6.1
PCI Express コンパイラ・ユーザガイド
Altera Corporation
2006 年 12 月
仕様
図 3-35 に、ファンクションのグローバル・リセット信号を示します。
図 3-35. ×1 および ×4 MegaCore ファンクション用グローバル・
リセット信号
Other Power
On Reset
npor
perst#
PCI Express
x1 or x4 MegaCore
Function
srst
crst
l2_exit
hotrst_exit
dlup_exit
×1 および ×4 MegaCore ファンクションには、npor、srst、および crst
の 3 つのリセット入力があります。npor は、内部ですべてのステッ
キー・レジスタ(L2 低消費電力モードまたは基本的なリセットでリセッ
トできないレジスタ)に使用されます。npor は通常、パワー・オン・
リ セ ッ ト・ジ ェ ネ レ ー タ と PCI Express Card Electromechanical
Specification で規定される perst 信号との論理和で生成されます。
srst 信号は、データ・パス・ステート・マシンの同期リセットです。
crst 信号は、非ステッキー・コンフィギュレーション・スペース・レジ
スタの同期リセットです。srst および crst は、l2_exit、hotrst_exit、
またはdlup_exit信号がアサートされるたびにアサートしなければなり
ません。
図 3-36 に示すリセット・ブロックは、MegaCore ファンクションの一部
として含まれておらず、実装固有のリセット生成方法にある程度の柔軟
性を持たせています。
図 3-36 に、ファンクションのグローバル・リセット信号を示します。
Altera Corporation
2006 年 12 月
PCI Express Compiler Version 6.1
3–89
PCI Express コンパイラ・ユーザガイド
信号
図 3-36. ×8 MegaCore ファンクション用グローバル・リセット信号
Other Power
On Reset
npor
perst#
PCI Express
x8 MegaCore
Function
rstn
l2_exit
hotrst_exit
dlup_exit
×8 MegaCoreファンクションには、nporおよびrstnの2つのリセット入
力があります。npor リセットは、内部ですべてのステッキー・レジス
タ(L2 低消費電力モードでまたは基本的なリセットでリセットできない
レジスタ)に使用されます。npor は通常、パワー・オン・リセット・
ジェネレータと PCI Express Card Electromechanical Specification で規定
される perst 信号との論理和で生成されます。
rstn 信号は、データ・パス・ステート・マシンと非ステッキー・コン
フィギュレーション・スペース・レジスタの非同期リセットです。rstn
は、l2_exit、hotrst_exit、または dlup_exit 信号がアサートさ
れるたびにアサートしなければなりません。
図 3-36 に示すリセット・ブロックは、MegaCore ファンクションの一部
として含まれておらず、実装固有のリセット生成方法にある程度の柔軟
性を持たせています。
3–90
PCI Express Compiler Version 6.1
PCI Express コンパイラ・ユーザガイド
Altera Corporation
2006 年 12 月
仕様
表 3–32 に、ファンクションのパワー・マネージメント信号を示します。
表 3–32. パワー・マネージメント信号
信号
I/O
説明
pme_to_cr
I
パワー・マネージメント・ターン・オフ・コントロール・レジスタ。この信号が
ア サ ート さ れ ると、 pme_to_ack をル ー ト・ポ ー トに 送 るこ と に よっ て
PME_turn_off メッセージを確認応答します。
pme_to_sr
O
パワー・マネージメント・ターン・オフ・ステータス・レジスタ。この信号は、
エンドポイントがルート・ポートから PME_turn_off メッセージを受け取っ
たときにアサートされます。この信号は、pme_to_cr がアサートされるまでア
サートされたままです。
cfg_pmcsr[31:0]
O
パワー・マネージメント機能レジスタ。このレジスタは読み出し専用で、特定の
ファンクションのパワー・マネージメントに関する情報を提供します。
31
24 23
16 15 14 13 12
Data Register
Reserved
Data_scale PME_EN
Data_select
PME_status
●
●
●
●
●
●
●
●
Altera Corporation
2006 年 12 月
9 8 7
21
0
PM_state
Reserved
cfg_pmcsr[31:24]: データ・レジスタ : このフィールドは、ファンクショ
ンがどのパワー・ステートに対して PME# をアサートできるかを示します。
cfg_pmcsr[23:16]: Reserved
cfg_pmcsr[15]: PME_status: この信号が 1 に設定されていると、ファン
クションが通常、PME_en ビットの状態に関係なく、 PME# 信号をアサート
することを意味します。
cfg_pmcsr[14:13]: Data_scale: このフィールドは、データ・レジスタ
から取り出した値を解釈するときのスケーリング・ファクタを示します。こ
のフィールドは読み出し専用です。
cfg_pmcsr[12:9]: Data_select: このフィールドは、データ・レジスタ
と Data_scale フィールドによってどのデータをレポートすべきかを示しま
す。
cfg_pmcsr[8]: PME_EN:
1: ファンクションが PME# をアサートできることを示す。
0: ファンクションが PME# をアサートできないことを示す。
cfg_pmcsr[7:2]: Reserved
cfg_pmcsr[1:0]: PM_STATE
PCI Express Compiler Version 6.1
3–91
PCI Express コンパイラ・ユーザガイド
信号
図 3-37 に、エンドポイントにおける pme_to_sr と pme_to_cr の動作
を示します。最初に、MegaCore ファンクションが PME_turn_off を
メッセージを受信します。次に、アプリケーションはルート・ポートへ
の PME_to_ack メッセージの送信を試みます。
図 3-37. エンドポイントにおける pme_to_sr および pme_to_cr の波形
Clock Cycles
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
pme_to_sr
pme_to_cr
MSI および INTx 割り込み信号
MegaCore ファンクションは、MSI(Message Signaled Interrupt)およ
び INTx 割り込みの両方をサポートします。MSI トランザクションはラ
イト・トランザクション・レイヤ・パケットです。
表 3–33 では、MegaCore ファンクションの割り込み信号について説明し
ます。
表 3–33. 割り込み信号 (1 / 2)
信号
I/O
説明
app_msi_req
I
アプリケーション MSI リクエスト。この信号はアプリケーションが MSI を要求
するのに使用されます。
app_msi_ack
O
アプリケーション MSI 確認応答。この信号は、MegaCore ファンクションがア
プリケーションの MSI リクエストを確認応答するために送信されます。
app_msi_tc[2:0]
I
アプリケーション MSI トラフィック・クラス。この信号は MSI を送信するため
に使用されるトラフィック・クラスを示します(INTx 割り込みとは異なり、任
意のトラフィック・クラスを使用して MSI を送信できます)。
app_msi_num[4:0] I
アプリケーション MSI オフセット数。この信号は、アプリケーションがベー
ス・メッセージ・データと送信する MSI との間のオフセットを示すのに使用さ
れます。
3–92
PCI Express Compiler Version 6.1
PCI Express コンパイラ・ユーザガイド
Altera Corporation
2006 年 12 月
仕様
表 3–33. 割り込み信号 (2 / 2)
信号
I/O
説明
cfg_msicsr[15:0] O
コンフィギュレーション MSI コントロール・ステータス・レジスタ。このバス
は MSI ソフトウェア・コントロールを提供します。
● cfg_msicsr[15:9]: Reserved
● cfg_msicsr[8]: ベクターごとのマスキングが可能
1: ファンクションは MSI のベクターごとのマスキングをサポートします。
0: ファンクションは MSI のベクターごとのマスキングをサポートしません。
● cfg_msicsr[7]: 64 ビット・アドレスが可能
1: ファンクションは 64 ビット・メッセージ・アドレスを送信することがで
きます。
0: ファンクションは 64 ビット・メッセージ・アドレスを送信できません。
● cfg_msicsr[6:4]: 複数のメッセージがイネーブル : このフィールドは
MSI 信号の許容値を示します。例えば、このフィールドに「100」が書き込
まれた場合、16 の MSI 信号が割り当てられます。
000: 1 つの MSI が割り当てられる。
001: 2 つの MSI が割り当てられる。
010: 4 つの MSI が割り当てられる。
011: 8 つの MSI が割り当てられる。
100: 16 の MSI が割り当てられる。
101: 32 の MSI が割り当てられる。
110: Reserved
111: Reserved
● cfg_msicsr[3:1]: 複数のメッセージが可能 : このフィールドは、要求さ
れた MSI メッセージの数を判断するためにシステム・ソフトウェアによっ
て読み出されます。
000: 1 つの MSI が要求された。
001: 2 つの MSI が要求された。
010: 4 つの MSI が要求された。
011: 8 つの MSI が要求された。
100: 16 の MSI が要求された。
101: 32 の MSI が要求された。
110: Reserved
111: Reserved
● cfg_msicsr[0]: MSI がイネーブル : 0 に設定されている場合、このコン
ポーネントは MSI を使用できません。
pex_msi_num[4:0] I
パワー・マネージメント MSI 番号。この信号はパワー・マネージメントおよび
/ またはホット・プラグで使用され、ベース・メッセージ割り込み番号と、MSI
を通じて送信するメッセージ割り込み番号との間のオフセットを決定します。
app_int_sts
アプリケーション割り込みステータス。この信号は、アプリケーション割り込
みのステータスを示します。この信号がアサートされると、 INT# メッセージ
が生成され、 int_status レジスタ内でそのステータスが維持されます。
Altera Corporation
2006 年 12 月
I
PCI Express Compiler Version 6.1
3–93
PCI Express コンパイラ・ユーザガイド
信号
図 3-38 に、MSI ハンドラ・ブロックのアーキテクチャを示します。
図 3-38. MSI ハンドラ・ブロック
app_msi_req
app_msi_ack
app_msi_tc
app_msi_num
pex_msi_num
app_int_sts
MSI Handler
Block
cfg_msicsr[31:0]
図 3-39 に、ベクターごとのイネーブル・ビットを備えた MSI ハンドラ・
ブロックで可能な実装を示します。このベクターごとの MSI の代わり
に、グローバル・アプリケーション割り込みイネーブルも実装できます。
図 3-39. MSI ハンドラ・ブロックの実装例
app_int_sts
Vector 0
app_int_en0
msi_enable & Master Enable
app_msi_req0
R/W
app_int_sts0
MSI
Arbitration
app_msi_req
app_msi_ack
Vector 1
app_int_en1
app_msi_req1
R/W
app_int_sts1
3–94
PCI Express Compiler Version 6.1
PCI Express コンパイラ・ユーザガイド
Altera Corporation
2006 年 12 月
仕様
32 の可能な MSI メッセージがあります。特定のコンポーネントが要求
したメッセージ数と割り当てられたメッセージ数が必ずしも一致すると
は限りません。例えば、図 3-40 では、エンドポイントは 8 つの MSI を
要求していますが、割り当てられるメッセージは 2 つだけです。この場
合、アプリケーション・レイヤは、割り当てられた 2 つのメッセージの
みを使用するように設計しなければなりません。
図 3-40. MSI リクエストの例
Root Complex
CPU
Root
Port
Endpoint
8 Requested
2 Allocated
Interrupt
Block
Interrupt Register
図 3-41 に、図 3-40 のルート・ポート用 MSI 割り込み信号間のやりとり
を示します。app_msi_req と app_msi_ack 間で可能な最小レイテン
シは 1 クロック・サイクルです。
図 3-41. MSI 割り込み信号の波形
Clock Cycles
1
2
3
4
5
6
7
8
9
10
11
12
13
app_msi_req
app_msi_tc[2:0]
Valid
app_msi_num[4:0]
Valid
app_msi_ack
Altera Corporation
2006 年 12 月
PCI Express Compiler Version 6.1
3–95
PCI Express コンパイラ・ユーザガイド
信号
表 3–34 では 3 つの実装例について説明します。1 つの実装例では 32 の
すべての MSI メッセージが割り当てられ、2 つの実装例では 4 つのメッ
セージのみ割り当てられています。
表 3–34. 要求され、割り当てられ、マッピングされる MSI メッセージ
MSI
割り当て
32
4
4
システム・エラー
31
3
3
ホット・プラグおよびパワー・
マネージメント・イベント
30
2
3
29:0
1:0
2:0
アプリケーション
ホット・プラグ、パワー・マネージメント・イベント、およびシステム・
エラーに対して生成される MSI は、常に TC0 を使用します。アプリケー
ション・レイヤで生成される MSI は、どのトラフィック・クラスでも使
用できます。例えば、送信終了時に MSI を生成する DMA は、データ転
送に使用されたのと同じトラフィック・コントロールを使用することが
できます。
3–96
PCI Express Compiler Version 6.1
PCI Express コンパイラ・ユーザガイド
Altera Corporation
2006 年 12 月
仕様
コンフィギュレーション・スペース信号
表 3–35 の信号は、アプリケーション・レイヤがアクセスする必要がある
複数のコンフィギュレーション・スペース・レジスタの現在の値を反映
しています。
表 3–35. コンフィギュレーション・スペース信号
信号
I/O
cfg_tcvcmap[23:0] O
説明
コンフィギュレーション・トラフィック・クラス / バーチャル・チャネル・マッ
ピング : アプリケーション・レイヤは、この信号を使用して、パケットのトラ
フィック・クラスに基づいて適切なバーチャル・チャネルにマップされるトラ
ンザクション・レイヤ・パケットを生成します。
●
●
●
●
●
●
●
●
cfg_busdev[12:0]
O
cfg_tcvcmap[2:0]: TC0 に対するマッピング(常に 0)
cfg_tcvcmap[5:3]: TC1 に対するマッピング
cfg_tcvcmap[8:6]: TC2 に対するマッピング
cfg_tcvcmap[11:9]: TC3 に対するマッピング
cfg_tcvcmap[14:12]: TC4 に対するマッピング
cfg_tcvcmap[17:15]: TC5 に対するマッピング
cfg_tcvcmap[20:18]: TC6 に対するマッピング
cfg_tcvcmap[23:21]: TC7 に対するマッピング
コンフィギュレーション・バス・デバイス : この信号は、各トランザクション・
レイヤ・パケットのトランザクション ID を生成し、MegaCore ファンクショ
ンのバス番号とデバイス番号を示します。MegaCore ファンクションは 1 つの
ファンクションしか実装しないので、トランザクション ID のファンクション
番号は 000b に設定しなければなりません。
●
●
cfg_busdev[12:5]: バス番号
cfg_busdev[4:0]: デバイス番号
cfg_prmcsr[31:0]
O
コンフィギュレーション・プライマリ・コントロール・ステータス・レジス
タ。このレジスタの内容で PCI ステータスを制御します。
cfg_devcsr[31:0]
O
コンフィギュレーション・デバイス・コントロール・ステータス・レジスタ。
詳しくは、PCI Express Specifications を参照してください。
cfg_linkcsr[31:0] O
Altera Corporation
2006 年 12 月
コンフィギュレーション・リンク・コントロール・ステータス・レジスタ。詳
しくは、PCI Express Specifications を参照してください。
PCI Express Compiler Version 6.1
3–97
PCI Express コンパイラ・ユーザガイド
信号
コンプリーション・インタフェース信号
表 3–36 に、ファンクションのコンプリーション・インタフェース信号を
示します。
表 3–36. コンプリーション・インタフェース信号
信号
cpl_err[2:0]
I/O
I
説明
コンプリーション・エラー : この信号はコンフィギュレーション・スペースにコンプ
リーション・エラーをレポートします。アプリケーション・レイヤがレポートしなけ
ればならないエラーのタイプは以下の 3 つです。
●
●
●
cpl_pending
I
コンプリーション・タイム・アウト・エラー : cpl_err[0]: この信号は、マスタ
のようなインタフェースが Non-Posted リクエストを実行し、50ms のタイム・ア
ウト期間を過ぎても対応するコンプリーション・トランザクションを受け取らな
かった時、アサートしなければなりません。MegaCore ファンクションは自動的
にエラー・メッセージを生成し、このエラー・メッセージは Root Complex に送
られます。
Completer Abort エラー : cpl_err[1]: この信号は、ターゲット・ブロックが
Non-Posted リクエストを処理できない場合にアサートしなければなりません。こ
の場合、ターゲット・ブロックは、Completer Abort(CA)ステータスと共にコ
ンプリーション・パケットを生成してリクエスタに送信し、次に MegaCore ファ
ンクションに対してこのエラー信号をアサートします。ブロックは自動的にエ
ラー・メッセージを生成し、それを Root Complex に送ります。
予期しないコンプリーション・エラー : cpl_err[2]: この信号はマスタ・ブロッ
クが予期しないコンプリーション・トランザクション(すなわち、特定のパケッ
トを待っているコンプリーション・リソースがない)を検出した場合にアサート
しなければなりません。
コンプリーション・ペンディング : アプリケーション・レイヤは、マスタ・ブロック
がコンプリーションを待っている(すなわち、トランザクションが待ち状態にある)
場合にこの信号をアサートしなければなりません。この信号がアサートされ、低消費
電力モードが要求された場合、MegaCore ファンクションは、ロー・パワー・ステー
トに移行する前に、この信号がデアサートされるのを待ちます。
3–98
PCI Express Compiler Version 6.1
PCI Express コンパイラ・ユーザガイド
Altera Corporation
2006 年 12 月
仕様
最大コンプリーション・スペース信号
表 3–37 に、最大コンプリーション・スペース信号を示します。
表 3–37. 最大コンプリーション・スペース信号
信号
I/O
ko_cpl_spc_vcn[19:0] O
ここで、n は ×1 および ×4 コ
アの場合は 0 ∼ 3、×8 コアの
場合は 0 ∼ 1。
説明
このスタティック信号は、コンプリーション・ヘッダおよびデータのため
に予約された Rx バッファ・スペースの量を反映します。この信号は、ウィ
ザードの Buffer Setup ページ(3–44 ページの「Buffer Setup ページ」参
照)の Rx バッファ・スペース・アロケーション・テーブルに記載したも
のと同じ情報を示します。この信号のビット・フィールド割り当ては以下
のとおりです。
●
ko_cpl_spc_vcn[7:0] : Rxバッファに格納できるコンプリーショ
ン・ヘッダの数
●
ko_cpl_spc_vcn[19:8] : Rx バッファに格納できる 16 バイト・コ
ンプリーション・データ・セグメントの数
アプリケーション・レイヤのロジックは、コンプリーション・バッファ・
スペースがオーバフローしないようにしなければなりません。これを確実
にするために未処理の Non-Posted リクエストの数とサイズを制限する必
要があります。
alt2gxb サポート信号
この項では、Stratix II GX 統合型 PHY である ALT2GXB を使用するバリ
アントにのみ存在する alt2gxb サポート信号について説明します。これ
らの信号は ALT2GXB インスタンスに直接接続されます。多くの場合、
これらの信号は、同じデバイスに実装される ALT2GXB インスタンスと
共有する必要があります。以下の信号があります。
■
■
■
■
Altera Corporation
2006 年 12 月
cal_blk_clk
reconfig_clk
reconfig_togxb
reconfig_fromgxb
PCI Express Compiler Version 6.1
3–99
PCI Express コンパイラ・ユーザガイド
信号
表 3–38 では、これらの alt2gxb サポート信号について説明します。
表 3–38. alt2gxb サポート信号
信号
cal_blk_clk
I/O
I
説明
cal_blk_clk 入力信号は、ALT2GXB キャリブレーション・ブロック・ク
ロック(cal_blk_clk)入力に接続されます。1 個のデバイスに 1 つのキャリ
ブレーション・ブロックしかないので、同一デバイス内の ALT2GXB のすべ
てのインスタンスでは、cal_blk_clk 入力が同じ信号に接続されていなければ
なりません。この入力は、
「Stratix II GX デバイス・ハンドブック」で推奨さ
れているとおり動作するクロックに接続する必要があります。
reconfig_clk
I
reconfig_clk 入力信号は、ALT2GXB ダイナミック・リコンフィギュレー
ション・クロックです。ALT2GXB ダイナミック・リコンフィギュレーショ
ンは、PCI Express に対してはサポートされていません。したがって、この信
号は通常、デザインで Low に接続することができます。この信号は、PCI
Express インスタンスが Stratix II GX トランシーバのクワッドを、ダイナミッ
ク・リコンフィギュレーションをサポートする別のプロトコルと共有する場
合に提供されます。これらのケースでは、この信号は「Stratix II GX デバイ
ス・ハンドブック」に記載されているとおり接続しなければなりません。
reconfig_togxb
I
reconfig_togxb[2:0] 入力バスは、ALT2GXB ダイナミック・リコンフィ
ギュレーション・データ入力です。ALT2GXB ダイナミック・リコンフィギュ
レーションは、PCI Express に対してはサポートされていません。したがっ
て、このバスは通常、デザインで「010」に接続することができます。このバ
スは、PCI Express インスタンスが Stratix II GX トランシーバのクワッドを、
ダイナミック・リコンフィギュレーションをサポートする別のプロトコルと
共有する場合に提供されます。これらのケースでは、この信号は「Stratix II
GX デバイス・ハンドブック」に記載されているとおり接続しなければなりま
せん。
reconfig_fromgxb
O
reconfig_fromgxb 出力信号は、ALT2GXB ダイナミック・リコンフィギュ
レーション・データ出力です。ALT2GXB ダイナミック・リコンフィギュレー
ションは、PCI Express に対してはサポートされていません。したがって、こ
の出力信号はデザインでは未接続のままにしておくことができます。この信
号は、PCI Express インスタンスが Stratix II GX トランシーバのクワッドを、
ダイナミック・リコンフィギュレーションをサポートする別のプロトコルと
共有する場合に提供されます。これらのケースでは、この信号は「Stratix II
GX デバイス・ハンドブック」に記載されているとおり接続しなければなりま
せん。
3–100
PCI Express Compiler Version 6.1
PCI Express コンパイラ・ユーザガイド
Altera Corporation
2006 年 12 月
仕様
物理レイヤ・インタフェース信号
この項では、可能な 3 種類の物理的インタフェース(1 ビット、20 ビッ
ト、または PIPE)用の信号について説明します。すべての PCI Express
MegaCore ファンクションの信号の図については、3–52 ページの図 3-12
を参照してください。
シリアル・インタフェース信号
表 3–39 では、シリアル・インタフェース信号について説明します。表に
示したように、レーン 1 ∼ 7 用の信号もあります。これらの信号は、
Stratix GX PHY または Stratix II GX PHY を使用している場合に利用可能
です。
表 3–39. 1 ビット・インタフェース信号
信号
tx_outn
I/O
説明
O
送信入力 0。この信号はレーン 0 のシリアル出力です(差動信号で 2.5 Gpbs)。
I
受信入力 0。この信号はレーン 0 のシリアル入力です(差動信号で 2.5 Gpbs)。
I
pipe_mode は、MegaCoreファンクションがPIPEインタフェースまたは1ビッ
ト・インタフェースのいずれを使用するかを選択します。pipe_mode を 1 に
ここで、n は 0 ∼ 7 の
レーン番号です。
rx_inn
ここで、n は 0 ∼ 7 の
レーン番号です。
pipe_mode
設定すると PIPE インタフェースが選択され、0 に設定すると 1 ビット・イン
タフェースが選択されます。シミュレーション時に、この信号を設定してどち
らのインタフェースをシミュレーションに使用するかを示すことができます。
デザインをアルテラのデバイス用にコンパイルするときには、この信号を 0 に
設定します。
Altera Corporation
2006 年 12 月
PCI Express Compiler Version 6.1
3–101
PCI Express コンパイラ・ユーザガイド
信号
PIPE インタフェース信号
×1および×4 MegaCoreファンクションは、PIPEインタフェースの16ビッ
ト・バ ー ジ ョ ン に 準 拠しており、外部 PHY の使用が可能です。×8
MegaCore ファンクションは、PIPE インタフェースの 8 ビット・バー
ジョンに準拠しています。これらの信号は、Stratix GX PHY または
Stratix II GX PHY を選択しているときでも使用可能であり、1 ビットお
よび PIPE インタフェースの両方を使用してシミュレートすることがで
きます。一般に、シミュレーションの速度は、PIPE インタフェースを使
用する方が速くなります。表 3–40 を参照してください。表に示したよう
に、レーン番号 0 に存在する信号は、レーン 1 ∼ 7 にも存在します。
表 3–40. PIPE インタフェース信号 (1 / 2)
信号
I/O
説明
txdatan_extn[15:0](1) O
送信データ 0(レーン 0 で 2 つのシンボル)このバスはレーン 0 でデータ
を送信します。最初に送信されるシンボルは txdata_ext[7:0] で、
2 番目 に 送信 さ れる シ ンボ ル は txdata0_ext[15:8] です。×8
MegaCore フ ァン ク シ ョン ま たは 8 ビ ット PIPE モー ド の場 合、
txdata0_ext[7:0] のみ使用できます。
txdatakn_ext[1:0]
O
送信データ・コントロール 0(レーン 0 で 2 つのシンボル)この信号は、
txdatan_ext(最初に送信されるシンボル用の txdatakn_ext[0] お
よび 2 番目送信されるシンボル(8b/10b エンコーディング)用の
txdatakn_ext[1])のコントロール・ビットとして機能します。×8
MegaCore ファンクションまたは 8 ビット PIPE モードの場合、シング
ル・ビット信号 txdatakn_ext のみ使用できます。
O
送信検出受信 0。この信号は、PHY レイヤに受信検出動作またはループ
バックの開始を指示するのに使用されます。
O
送信電気的アイドル 0。この信号は、送信出力を強制的に電気的アイド
ルにします。
O
送信コンプライアンス 0。この信号は、コンプライアンス・モードでの
ランニング・ディスパリティを強制的に負にします(負の COM キャラ
クタ)。
O
受信極性 0。この信号は PHY レイヤに、8b/10b レシーバ・デコーディ
ング・ブロックでの極性反転の実行を指示します。
O
パワーダウン 0。この信号は、PHY にそのパワー・ステートを指定され
たステート(P0、P0s、P1、または P2 に変更するよう要求します。
I
受信データ 0(レーン 0 の 2 つのシンボル)このバスはレーン 0 でデータ
を受信します。最初に受信したシンボルは rxdatan_ext[7:0] で、
2 番目に受信したシンボルは rxdatan_ext[15:8]です。
×8 MegaCore
ファンクションまたは 8 ビット PIPE モードでは、rxdatan_ext[7:0]
のみ使用可能です。
(1)
txdetectrxn_ext
(1)
txelecidlen_ext
(1)
txcompln_ext
(1)
rxpolarityn_ext
(1)
powerdownn_ext[1:0]
(1)
rxdatan_ext[15:0]
(1)
3–102
PCI Express Compiler Version 6.1
PCI Express コンパイラ・ユーザガイド
Altera Corporation
2006 年 12 月
仕様
表 3–40. PIPE インタフェース信号 (2 / 2)
信号
rxdatakn_ext[1:0]
I/O
説明
I
受信データ・コントロール 0(レーン 0 の 2 つのシンボル)この信号は、
コントロール・シンボルとデータ・シンボルを区別するために使用され
ます。最初に受信したシンボルは rxdatakn_ext[0] に揃えられ、2
番目に受信したシンボルは rxdatan_ext[1] に揃えられます。×8
MegaCore ファンクションまたは 8 ビット PIPE モードの場合、シング
ル・ビット信号 rxdatakn_ext のみ使用できます。
I
受信有効 0。このシンボルは、 rxdatan_ext および rxdatakn_ext
でのシンボル・ロックおよび有効データを示します。
I
PHY ステータス 0。この信号は複数の PHY 要求のコンプリーションを
伝えるのに使用されます。
I
受信電気的アイドル 0。この信号は、受信出力を強制的に電気的アイド
ルにします。
I
受信ステータス 0: この信号は受信データ・ストリームおよびレシーバ検
出に対する受信ステータスとエラー・コードをエンコードします。
pipe_rstn
O
外部 PHY への非同期リセット。これは High に接続され、ボードにプル
ダウン抵抗が必要です。FPGA のコンフィギュレーション時に、プルダ
ウン抵抗が PHY をリセットし、その後 FPGA が PHY をリセットからド
ライブ・アウトします。この信号は外部 PHY にコンフィギュレーション
された MegaCore ファンクションにのみ存在します。
pipe_txclk
O
外部 PHY への送信データ・パス・クロック。このクロックは refclk
から派生し、PHY の送信データ用ソース・シンクロナス・クロックを供
給します。
(1)
rxvalidn_ext
(1)
phystatusn_ext
(1)
rxelecidlen_ext
(1)
rxstatusn_ext[2:0]
(1)
表 3–40 の注 :
(1) ここで、n は 0 ∼ 7 のレーン番号です。
Altera Corporation
2006 年 12 月
PCI Express Compiler Version 6.1
3–103
PCI Express コンパイラ・ユーザガイド
信号
テスト信号
表 3–40 では、使用できるテスト信号について説明します。
表 3–41. テスト・インタフェース信号
信号
test_in[31:0]
I/O
I
説明
test_in バスは、特定の MegaCore 機能とエラー・インジェクション機
能用のランタイム・コントロールを提供します。このバスの個々のビッ
トについて詳しくは、付録 C. テスト・ポート・インタフェース信号を
参照してください。通常動作の場合、このバスはすべての 0 にドライ
ブすることができます。
×1 または ×4 の場合は
test_out[511:0]、
×8 の場合は
test_out[127:0]
O
test_out バスでは、MegaCore ファンクションの内部ステートを幅
広くモニタリングすることができます。このバスの個々のビットにつ
いて詳しくは、付録 C. テスト・ポート・インタフェース信号を参照し
てください。通常動作の場合、このバスは未接続のままにしておくこ
とができます。
3–104
PCI Express Compiler Version 6.1
PCI Express コンパイラ・ユーザガイド
Altera Corporation
2006 年 12 月
仕様
MegaCore
検証
アルテラは、PCI Express への準拠を確実にするために、PCI Express
MegaCore ファンクションの徹底した妥当性検査を実行しました。検査
にはシミュレーションおよびハードウェア・テストの両方が含まれます。
シミュレーション環境
アルテラの PCI Express MegaCore ファンクション用検証シミュレー
ション環境では、PCI Express リンク・インタフェースをドライブする
業界標準のバス・ファンクション・モデルで構成される複数のテストベ
ンチを使用します。カスタムのバス・ファンクション・モデルは、アプ
リケーション側インタフェースに接続します。
アルテラはシミュレーション環境で以下のテストを実施しました。
■
トランザクション・レイヤ・パケットのすべてのタイプとサイズ、お
よびコンフィギュレーション・スペースの全ビットをテストする指
定テスト
■ リンク、トランザクション・レイヤ・パケット、データ・リンク・レ
イヤ・パケットのエラー・インジェクション・テスト。MegaCore
ファンクションからの正しい応答をチェックするエラー・インジェ
クション・テスト
■ チ ェ ッ ク リ ス ト の 項 目 を 特 に テ ス ト す る PCI-SIG Compliance
Checklist テスト
■ 1 本または複数のバーチャル・チャネルでの広範なトラフィック・パ
ターンをテストするランダム・テスト
互換性テストの環境
ア ルテ ラ は、信頼 性 の高いソリューションを実現するために、PCI
Express MegaCore ファンクションについて膨大なハードウェア・テス
トを実行しました。MegaCore ファンクションは、2005 年と 2006 年の
PCI-SIG の PCI Express Specificationに準拠したさまざまなワークショッ
プで、Stratix II GX および多様な外部 PHY と共にテストされ、すべての
PCI-SIG ゴールド・テストと幅広いマザーボードおよびテスト装置との
相互運用性テストに合格しました。さらに、アルテラはさまざまなメー
カのマザーボードとスイッチ・チップにより、すべてのリリース製品の
自社テストを行っています。各リリースで PCI-SIG 準拠テストも実施し
ています。
Altera Corporation
2006 年 12 月
PCI Express Compiler Version 6.1
3–105
PCI Express コンパイラ・ユーザガイド
MegaCore 検証
3–106
PCI Express Compiler Version 6.1
PCI Express コンパイラ・ユーザガイド
Altera Corporation
2006 年 12 月
4. 外部 PHY
外部 PHY の
サポート
この章では、表 4–1 に示す新しい外部 PHY とインタフェース・モードを
含む外部 PHY のサポートについて説明します。
表 4–1. 外部 PHY インタフェース・モード
PHY インタフェース・モード
16 ビット SDR
クロック周波数
125 MHz
16 ビット SDR モード(ソース・シン 125 MHz
クロナス送信クロック付き)
注
この汎用 16 ビット PIPE インタフェースでは、 Tx
および Rx データが PHY からの pclk でクロック
されます。
この汎用 PIPE インタフェースへの拡張機能は、
TxData ソースを同期的にクロックするための
TxClk を外部 PHY に追加します。TIXIO1100 PHY
はこのモードを使用します。
125 MHz
このダブル・データ・レート・バージョンは、ク
ロック周波数を上げないで I/O ピンを節約します。
PHY からの 1 つの pclk を使用して、データを双
方向にクロックします。
8 ビット DDR モード(8 ビット DDR 125 MHz
ソース・シンクロナス送信クロック付
き)
このダブル・データ・レート・バージョンは、ク
ロック周波数を上げないで I/O ピンを節約します。
TxClk は、データ・ソースを送信方向に同期的に
クロックします。TIXIO1100 Phy はこのモードを使
用します。
8 ビット DDR
8 ビット SDR
250 MHz
8 ビット SDR モード(ソース・シン 250 MHz
クロナス送信クロック付き)
これは汎用 8 ビット PIPE インタフェースです。Tx
データと Rx データの両方が PHY からの pclk で
クロックされます。Philips 社の PX1011APHY はこ
のモードを使用しています。
この汎用 PIPE インタフェースへの拡張機能は、
TxData ソースを同期的にクロックするための
TxClk を外部 PHY に追加します。
外部 PHY を選択すると、外部 PHY に直接接続するのに必要な追加ロジッ
クが < バリエーション名 > モジュールまたはエンティティに含まれます。
ユーザ・ロジックは、このモジュールまたはエンティティをデザイン内
でインスタンス化しなければなりません。これらのモードのそれぞれの
実装の詳細については、以下の項で説明します。
Altera Corporation
2006 年 12 月
PCI Express Compiler Version 6.1
4–1
外部 PHY のサポート
16 ビット SDR モード
この 16 ビット SDR モード PHY サポートの実装は、図 4–1 に示してあ
り、ファイル < バリエーション名 >.v または < バリエーション名 >.vhd
に含まれており、PLL を含みます。PLL の inclock は、refclk によっ
てドライブされ、以下の 3 つの出力を備えています。
refclk は、外部 PHY から供給されるパラレル・クロック pclk と
同じです。この資料では、refclk と pclk という用語を区別な
く使用しています。
■
clk125_outは、refclk と同じ位相オフセットを有する125 MHz出
力です。clk125_out は、図 4–1 に示すように、ユーザ・ロジック
内のclk125_in入力をドライブしなければなりません。clk125_in
は、着信データをキャプチャするのに使用され、また MegaCore の
clk125_in 入力をドライブするのにも使用されます。
■
clk125_early は、位相シフトされた 125 MHz 出力です。この位相
シフトされた出力は、送信データの出力レジスタをクロックします。
ボード遅延に基づいて、この出力の位相シフトを調整する必要があ
る場合もあります。位相シフトを変更するには、ユーザのバリエー
ション・ファイルで参照する PLL ソース・ファイルを < パス >/ip/PCI
Express Compiler/lib ディレクトリからユーザのプロジェクト・ディ
レ ク ト リ に コ ピ ー し ま す。次 に、Quartus II ソ フ ト ウ ェ ア の
MegaWizard Plug In Manger を使用して PLL ソース・ファイルを編
集し、必要な位相シフトを設定します。次に、変更された PLL ソー
ス・ファイルをユーザの Quartus II プロジェクトに追加します。
■
tlp_clk62p5 は、MegaCore の内部クロック周波数が 62.5 MHz のと
きに MegaCore ファンクションの tlp_clk 入力をドライブする
62.5 MHz 出力です。
4–2
PCI Express Compiler Version 6.1
PCI Express コンパイラ・ユーザガイド
Altera Corporation
2006 年 12 月
外部 PHY
図 4-1. 16 ビット SDR モード
125Mhz SDR Mode without txclk
rxdata
A
Q1
A
Q1
D
Q4
D
Q4
clk125_in
ENB
txdata
ENB
Q
Q1
A
A
Q 44
Q
D
D
PCIe IP MegaCore
ENB
ENB
clk125_out
refclk
clk125_in
Mode 1
PLL
clk125_early
tlp_clk_62p5
tlp_clk
refclk
clk125_out
External connection in user logic
ソース・シンクロナス TxClk 付き 16 ビット SDR モード
ソース・シンクロナス TxClk 付き 16 ビット SDR モードの実装は、図 4–2
に示してあり、ファイル < バリエーション名 >.v または < バリエーショ
ン名 >.vhd に含まれています。このモードでは、以下のクロッキング方
式が使用されます。
Altera Corporation
2006 年 12 月
■
refclk は、コア用の clk125_in として使用されます。
■
refclk は、着信データ用のシングル・データ・レート・レジスタを
クロックします。
■
refclk は、送信データ・レジスタ(txdata)を直接クロックします。
PCI Express Compiler Version 6.1
4–3
PCI Express コンパイラ・ユーザガイド
外部 PHY のサポート
■
refclkは、中央に揃ったTxClkを作成するのに使用されるDDRレジ
スタをクロックするためにも使用されます。
これは、PLL を必要としない唯一の外部 PHY モードです。ただし、こ
の PIPE インタフェース・モードで低速 tlp_clk 機能を使用する場合
は、低速 tlp_clk を作成するために PLL が必要です。低速 tlp_clk
の場合、回路は先に図 4-1 に示した 16 ビット SDR の回路と似ています
が、TxClk 出力が追加されます。
図 4-2. ソース・シンクロナス TxClk 付き 16 ビット SDR モード
125Mhz 16-bit SDR Mode with txclk
tlp_clk @ 125Mhz
rxdata
A
Q1
D
Q4
ck125_in
ENB
txdata
Q 11
Q
A
A
Q
Q 44
D
D
ENB
ENB
PCIe IP MegaCore
clk125_in
DDIO
txclk (~refclk)
Q1
A
Q4
D
tlp_clk
ENB
refclk
refclk
clk125_out
clk125_out
External connection in user logic
4–4
PCI Express Compiler Version 6.1
PCI Express コンパイラ・ユーザガイド
Altera Corporation
2006 年 12 月
外部 PHY
8 ビット DDR モード
図 4-3 に示す 8 ビット DDR モードの実装は、ファイル < バリエーショ
ン名 >.v または < バリエーション名 >.vhd に含まれており、PLL を含み
ます。PLL の inclock は、refclk(外部 PHY からの pclk)によって
ドライブされ、以下の 3 つの出力を備えています。
■
125 MHz refclk のゼロ遅延コピー。ゼロ遅延 PLL 出力は、コア用の
clk125_in として使用され、着信データ用ダブル・データ・レート・
レジスタをクロックします。
■
125 MHz の refclk から逓倍された 250 MHz の「早期」出力は、
refclk よりも早い出力です。250 MHz の早期クロック PLL 出力は、
8 ビット SDR 送信データ出力レジスタをクロックするのに使用され
ます。250 MHz シングル・データ・レート・レジスタを 125 MHz
DDR 出力に使用すると、Cyclone II IOB 内で SDR 出力レジスタが使
用可能になるので、125 MHz DDR 出力には 250 MHz シングル・デー
タ・レート・レジスタが使用されます。PHY 用の共通 refclk に必
要なクロック - 出力時間に適合させるために、早期クロックが必要で
す。ユーザ固有の PHY およびボード遅延に対する位相シフトを調整
する必要がある場合もあります。位相シフトを変更するには、ユー
ザのバリエーション・ファイルで参照する PLL ソース・ファイルを
< パス >/ip/PCI Express Compiler/lib ディレクトリからユーザのプ
ロジェクト・ディレクトリにコピーします。次に、Quartus II ソフト
ウェアの MegaWizard Plug In Manger を使用して PLL ソース・ファ
イルを編集し、必要な位相シフトを設定します。次に、変更された
PLL ソース・ファイルをユーザの Quartus II プロジェクトに追加し
ます。
■
×1 の実装のために、オプションの 62.5 MHz TLP 低速クロックが提供
されます。
エッジ検出回路を使用して 125 MHz クロックと 250 MHz の立ち上がり
エッジの関係が検出され、16 ビット・データが 8 ビット出力レジスタ内
に正しく順序付けされます。
Altera Corporation
2006 年 12 月
PCI Express Compiler Version 6.1
4–5
PCI Express コンパイラ・ユーザガイド
外部 PHY のサポート
図 4-3. 8 ビット DDR モード
8-bit DDR without txclk
DDIO
rxdata
A
Q1
D
Q4
out txclk
clk125_in
ENB
0
0
0
0
0
Edge Detect and Sync
clk125_out
clk125_in
refclk
clk250_early
Mode 3
PLL
tlp_clk
Tlp_clkt
PCIe IP MegaCore
txdata_h
txdata
Q1
A
Q1
A
Q4
D
Q4
D
txdata_l
ENB
ENB
refclk
External connection in user logic
clk125_out
Clk125_pll_in
ソース・シンクロナス TxClk 付き 8 ビット DDR
ソース・シンクロナス送信クロック(TxClk)付き 8 ビット DDR モー
ドの実装を図 4-4 に示します。これはファイル < バリエーション名 >.v
または < バリエーション名 >.vhd に含まれており、PLL を含みます。PLL
の inclock は、refclk(外部 PHY からの pclk)によってドライブさ
れ、以下の 3 つの出力を備えています。
■
MegaCore ファンクション用の clk125_in として使用され、Rx デー
タおよびステータス信号用の DDR 入力レジスタをクロックするのに
も使用される 125 MHz refclk のゼロ遅延コピー。
4–6
PCI Express Compiler Version 6.1
PCI Express コンパイラ・ユーザガイド
Altera Corporation
2006 年 12 月
外部 PHY
■
250 MHz の「早期」クロック PLL 出力は、8 ビット SDR 送信データ出
力レジスタをクロックします。250 MHz の早期出力は、125 MHz の
refclk から逓倍され、refclk よりも早い出力です。125 MHz DDR
出力用の 250 MHz シングル・データ・レート・レジスタによって、
Cyclone II IOB で SDR 出力レジスタを使用できるようになります。
■
×1 の実装のために、オプションの 62.5 MHz TLP 低速クロックが提供
されます。
エッジ検出回路を使用して 125 MHz クロックと 250 MHz の立ち上がり
エッジの関係が検出され、16 ビット・データが 8 ビット出力レジスタ内
に正しく順序付けされます。
図 4-4. ソース・シンクロナス送信クロック付き 8 ビット DDR モード
8-bit DDR Mode with txclk
DDIO
rxdata
A
Q1
D
Q4
clk125_in
ENB
0
0
0
0
0
Edge Detect and Sync
clk125_out
clk125_in
pclk
Mode 3
PLL
clk250_early
tlp_clk
tlp_clk
PCIe IP MegaCore
txdata
txdata_h
Q1
A
Q1
A
Q4
D
Q4
D
txdata_l
ENB
txclk
ENB
Q1
A
Q4
D
refclk
clk125_out
ENB
External connection in user logic
Altera Corporation
2006 年 12 月
PCI Express Compiler Version 6.1
4–7
PCI Express コンパイラ・ユーザガイド
外部 PHY のサポート
8 ビット SDR モード
8 ビット SDR モードの実装は、図 4-5 に示してあり、ファイル < バリ
エーション名 >.v または < バリエーション名 >.vhd に含まれており、PLL
を含みます。PLL の inclock は、refclk(外部 PHY からの pclk)に
よってドライブされ、以下の 3 つの出力を備えています。
■
コア用のclk125_inとして使用され、また8 ビット着信データをロジッ
クの残りの部分の 16 ビット・レジスタに転送するのにも使用される、
250 MHz refclk から派生した 125 MHz 出力
■
8 ビット SDR 送信データ出力レジスタをクロックするために使用さ
れる refclk よりも早くスキューされた 250 MHz の「早期」クロック
出力。早期クロック PLL 出力は、送信データ出力レジスタをクロッ
クするのに使用されます。早期クロックは、共通クロックに必要な
クロック - 出力時間に適合させるために必要です。ユーザ固有の PHY
およびボード遅延に対する位相シフトを調整する必要がある場合も
あります。位相シフトを変更するには、ユーザのバリエーション・
ファイルで参照する PLL ソース・ファイルを < パス >/ip/PCI Express
Compiler/lib ディレクトリからユーザのプロジェクト・ディレクト
リにコピーします。次に、Quartus II ソフトウェアの MegaWizard
Plug In Manger を使用して PLL ソース・ファイルを編集し、必要な
位相シフトを設定します。次に、変更された PLL ソース・ファイル
をユーザの Quartus II プロジェクトに追加します。
■
×1 の実装のために、オプションの 62.5 MHz TLP 低速クロックが提供
されます。
エッジ検出回路を使用して 125 MHz クロックと 250 MHz の立ち上がり
エッジの関係が検出され、16 ビット・データが 8 ビット出力レジスタ内
に正しく順序付けされます。
4–8
PCI Express Compiler Version 6.1
PCI Express コンパイラ・ユーザガイド
Altera Corporation
2006 年 12 月
外部 PHY
図 4-5. 8 ビット SDR モード
250Mhz SDR Mode
rxdata
A
Q1
A
Q1
A
Q1
D
Q4
D
Q4
D
Q4
rxdata_h
refclk (250 Mhz)
ENB
ENB
ENB
0
0
0
A
Q1
A
Q1
0
0
D
Q4
D
Q4
rxdata_l
Edge Detect and Sync
clk125_in
ENB
ENB
clk125_in
Mode 4
PLL
clk250_early
PCIe IP MegaCore
clk125_out
txdata_h
txdata
Q1
A
Q1
A
Q4
D
Q4
D
ENB
txdata_l
ENB
tlp_clk
tlp_clk
External connection in user logic
refclk
ソース・シンクロナス TxClk 付き 8 ビット SDR
ソース・シンクロナス TxClk 付き 16 ビット SDR モードの実装は、図 46 に示してあり、ファイル < バリエーション名 >.v または < バリエーショ
ン名 >.vhd に含まれており、
PLL を含みます。PLL の inclock は、refclk
(外部 PHY からの pclk)によってドライブされ、以下の 3 つの出力を
備えています。
Altera Corporation
2006 年 12 月
■
250 MHz refclkから派生した125 MHzの出力。この125 MHzのPLL
出力は、MegaCore ファンクション用の clk125_in として使用され
ます。
■
refclk よりも早くスキューされた 250 MHz の「早期」クロック出力。
250 MHz の早期クロック PLL 出力は、8 ビット SDR 送信データ出力
レジスタをクロックするために使用されます。
PCI Express Compiler Version 6.1
4–9
PCI Express コンパイラ・ユーザガイド
外部 PHY のサポート
×1 の実装のために、オプションの 62.5 MHz TLP 低速クロックが提供
されます。
■
エッジ検出回路を使用して 125 MHz クロックと 250 MHz の立ち上がり
エッジの関係が検出され、16 ビット・データが 8 ビット出力レジスタ内
に正しく順序付けされます。
図 4-6. ソース・シンクロナス送信クロック付き 8 ビット SDR モード
250Mhz SDR Mode with txclk
rxdata
A
Q1
A
Q1
A
Q1
D
Q4
D
Q4
D
Q4
rxdata_h
refclk (250 Mhz)
ENB
ENB
ENB
0
0
0
A
Q1
A
Q1
0
0
D
Q4
D
Q4
rxdata_l
Edge Detect and Sync
ENB
ENB
clk125_in
Mode 4
PLL
PCIe IP MegaCore
clk125_out
txdata_h
txdata
Q1
A
Q1
A
Q4
D
Q4
D
ENB
txdata_l
ENB
txclk
clk250_early
tlp_clk
clk125_zero
External connection in user logic
4–10
PCI Express Compiler Version 6.1
PCI Express コンパイラ・ユーザガイド
tlp_clk
refclk
Altera Corporation
2006 年 12 月
外部 PHY
16 ビット PHY インタフェース信号
表 4–2 に、16 ビット PIPE インタフェース・モード用の外部 I/O 信号を
要約します。選択されたレーンの数および PHY モードが TxClk を備え
ているか否かによって、一部信号が存在しないことがあります。
表 4–2. 16 ビット PHY インタフェース信号 (1 / 2)
信号名
方向
説明
可用性
pcie_rstn
入力
PCI Express Reset 信号、アクティブ Low
phystatus_ext
入力
PIPE インタフェース PhyStatus 信号。PHY が要求され 常に
た動作の完了を通知する。
powerdown_ext[1:0]
出力
PIPE インタフェース・パワーダウン信号。PHY に指定 常に
されたパワー状態に入ることを要求する。
refclk
入力
PHY からの PIPE インタフェース pclk 信号に接続さ 常に
れるクロック入力。すべてのステータスおよびデータ
信号をクロックするのに使用される 125 MHz のクロッ
ク
pipe_txclk
出力
Tx データおよび PHY に送られるコントロール信号を TxClk を持つモード
クロックするためのソース・シンクロナス送信クロッ のみ
ク信号
rxdata0_ext[15:0]
入力
PIPE インタフェース・レーン 0 Rx データ信号。受信し 常に
たパラレル・データを転送する。
rxdatak0_ext[1:0]
入力
PIPE インタフェース・レーン 0 Rx データ K 記号フラグ 常に
rxelecidle0_ext
入力
PIPE インタフェース・レーン 0 Rx 電気的アイドル表示 常に
常に
rxpolarity0_ext
出力
PIPE インタフェース・レーン 0 Rx 極性反転制御
rxstatus0_ext[1:0]
入力
PIPE インタフェース・レーン 0 Rx ステータス・フラグ 常に
rxvalid0_ext
入力
PIPE インタフェース・レーン 0 Rx データ有効表示
txcompl0_ext
出力
PIPE インタフェース・レーン 0 Tx コンプライアンス制 常に
御
txdata0_ext[15:0]
出力
PIPE インタフェース・レーン 0 Tx データ信号。パラレ 常に
ル送信データを転送する。
常に
常に
txdatak0_ext[1:0]
出力
PIPE インタフェース・レーン 0 Tx データ K 記号フラグ 常に
txelecidle0_ext
出力
PIPE インタフェース・レーン 0 Tx 電気的アイドル制御 常に
rxdata1_ext[15:0]
入力
PIPE インタフェース・レーン 1 の Rx データ信号。受 ×4 のみ
信したパラレル・データを転送する。
rxdatak1_ext[1:0]
入力
PIPE インタフェース・レーン 1 Rx データ K 記号フラグ ×4 のみ
rxelecidle1_ext
入力
PIPE インタフェース・レーン 1 Rx 電気的アイドル表示 ×4 のみ
rxpolarity1_ext
出力
PIPE インタフェース・レーン 1 Rx 極性反転制御
rxstatus1_ext[1:0]
入力
PIPE インタフェース・レーン 1 Rx ステータス・フラグ ×4 のみ
Altera Corporation
2006 年 12 月
×4 のみ
PCI Express Compiler Version 6.1
4–11
PCI Express コンパイラ・ユーザガイド
外部 PHY のサポート
表 4–2. 16 ビット PHY インタフェース信号 (2 / 2)
信号名
方向
説明
可用性
×4 のみ
rxvalid1_ext
入力
PIPE インタフェース・レーン 1 Rx データ有効表示
txcompl1_ext
出力
PIPE インタフェース・レーン 1 Tx コンプライアンス制 ×4 のみ
御
txdata1_ext[15:0]
出力
PIPE インタフェース・レーン 1 Tx データ信号。パラレ ×4 のみ
ル送信データを転送する。
txdatak1_ext[1:0]
出力
PIPE インタフェース・レーン 1 Tx データ K 記号フラグ ×4 のみ
txelecidle1_ext
出力
PIPE インタフェース・レーン 1 Tx 電気的アイドル制御 ×4 のみ
rxdata2_ext[15:0]
入力
PIPE インタフェース・レーン 2 Rx データ信号。受信し ×4 のみ
たパラレル・データを転送する。
rxdatak2_ext[1:0]
入力
PIPE インタフェース・レーン 2 Rx データ K 記号フラグ ×4 のみ
rxelecidle2_ext
入力
PIPE インタフェース・レーン 2 Rx 電気的アイドル表示 ×4 のみ
×4 のみ
rxpolarity2_ext
出力
PIPE インタフェース・レーン 2 Rx 極性反転制御
rxstatus2_ext[1:0]
入力
PIPE インタフェース・レーン 2 Rx ステータス・フラグ ×4 のみ
rxvalid2_ext
入力
PIPE インタフェース・レーン 2 Rx データ有効表示
txcompl2_ext
出力
PIPE インタフェース・レーン 2 Tx コンプライアンス制 ×4 のみ
御
txdata2_ext[15:0]
出力
PIPE インタフェース・レーン 2 Tx データ信号。パラレ ×4 のみ
ル送信データを転送する。
txdatak2_ext[1:0]
出力
PIPE インタフェース・レーン 2 Tx データ K 記号フラグ ×4 のみ
txelecidle2_ext
出力
PIPE インタフェース・レーン 2 Tx 電気的アイドル制御 ×4 のみ
rxdata3_ext[15:0]
入力
PIPE インタフェース・レーン 3 Rx データ信号。受信し ×4 のみ
たパラレル・データを転送する。
rxdatak3_ext[1:0]
入力
PIPE インタフェース・レーン 3 Rx データ K 記号フラグ ×4 のみ
rxelecidle3_ext
入力
PIPE インタフェース・レーン 3 Rx 電気的アイドル表示 ×4 のみ
×4 のみ
×4 のみ
rxpolarity3_ext
出力
PIPE インタフェース・レーン 3 Rx 極性反転制御
rxstatus3_ext[1:0]
入力
PIPE インタフェース・レーン 3 Rx ステータス・フラグ ×4 のみ
rxvalid3_ext
入力
PIPE インタフェース・レーン 3 Rx データ有効表示
txcompl3_ext
出力
PIPE インタフェース・レーン 3 Tx コンプライアンス制 ×4 のみ
御
txdata3_ext[15:0]
出力
PIPE インタフェース・レーン 3 Tx データ信号。パラレ ×4 のみ
ル送信データを転送する。
txdatak3_ext[1:0]
出力
PIPE インタフェース・レーン 3 Tx データ K 記号フラグ ×4 のみ
txelecidle3_ext
出力
PIPE インタフェース・レーン 3 Tx 電気的アイドル制御 ×4 のみ
4–12
PCI Express Compiler Version 6.1
PCI Express コンパイラ・ユーザガイド
×4 のみ
Altera Corporation
2006 年 12 月
外部 PHY
8 ビット PHY インタフェース信号
表 4–3 に、8 ビット PIPE インタフェース・モード用の外部 I/O 信号を
要約します。選択されたレーンの数および PHY モードが TxClk を備え
ているか否かによって、一部信号が存在しないことがあります。
表 4–3. 8 ビット PHY インタフェース信号 (1 / 2)
信号名
方向
説明
可用性
pcie_rstn
入力
PCI Express Reset 信号、アクティブ Low
phystatus_ext
入力
PIPE インタフェース PhyStatus 信号。PHY が要求され 常に
た動作の完了を通知する。
powerdown_ext[1:0]
出力
PIPE インタフェース・パワーダウン信号。PHY に指定 常に
されたパワー状態に入ることを要求する。
refclk
入力
PHY からの PIPE インタフェース pclk 信号に接続され 常に
るクロック入力。すべてのステータスおよびデータ信号
をクロックするのに使用される。これが SDR インタ
フェースか DDR インタフェースかによって、このクロッ
クは 250 MHz または 125 MHz になる。
pipe_txclk
出力
Tx データおよび PHY に送られるコントロール信号をク TxClk を持つモー
ロックするためのソース・シンクロナス送信クロック信 ドのみ
号
rxdata0_ext[7:0]
入力
PIPE インタフェース・レーン 0 Rx データ信号。受信し 常に
たパラレル・データを転送する。
rxdatak0_ext
入力
PIPE インタフェース・レーン 0 Rx データ K 記号フラグ 常に
rxelecidle0_ext
入力
PIPE インタフェース・レーン 0 Rx 電気的アイドル表示
常に
rxpolarity0_ext
出力
PIPE インタフェース・レーン 0 Rx 極性反転制御
常に
常に
rxstatus0_ext[1:0]
入力
PIPE インタフェース・レーン 0 Rx ステータス・フラグ
常に
rxvalid0_ext
入力
PIPE インタフェース・レーン 0 Rx データ有効表示
常に
txcompl0_ext
出力
PIPE インタフェース・レーン 0 Tx コンプライアンス制御 常に
txdata0_ext[7:0]
出力
PIPE インタフェース・レーン 0 Tx データ信号。パラレ 常に
ル送信データを転送する。
txdatak0_ext
出力
PIPE インタフェース・レーン 0 Tx データ K 記号フラグ 常に
txelecidle0_ext
出力
PIPE インタフェース・レーン 0 Tx 電気的アイドル制御
rxdata1_ext[7:0]
入力
PIPE インタフェース・レーン 1 Rx データ信号。受信し ×4 のみ
たパラレル・データを転送する。
rxdatak1_ext
入力
PIPE インタフェース・レーン 1 Rx データ K 記号フラグ ×4 のみ
rxelecidle1_ext
入力
PIPE インタフェース・レーン 1 Rx 電気的アイドル表示
×4 のみ
rxpolarity1_ext
出力
PIPE インタフェース・レーン 1 Rx 極性反転制御
×4 のみ
Altera Corporation
2006 年 12 月
常に
PCI Express Compiler Version 6.1
4–13
PCI Express コンパイラ・ユーザガイド
外部 PHY のサポート
表 4–3. 8 ビット PHY インタフェース信号 (2 / 2)
信号名
rxstatus1_ext[1:0]
方向
説明
可用性
PIPE インタフェース・レーン 1 Rx ステータス・フラグ
×4 のみ
入力
PIPE インタフェース・レーン 1 Rx データ有効表示
×4 のみ
出力
PIPE インタフェース・レーン 1 Tx コンプライアンス制御 ×4 のみ
入力
rxvalid1_ext
txcompl1_ext
txdata1_ext[7:0]
出力
PIPE インタフェース・レーン 1 Tx データ信号。パラレ ×4 のみ
ル送信データを転送する。
txdatak1_ext
出力
PIPE インタフェース・レーン 1 Tx データ K 記号フラグ ×4 のみ
txelecidle1_ext
出力
PIPE インタフェース・レーン 1 Tx 電気的アイドル制御
rxdata2_ext[7:0]
入力
PIPE インタフェース・レーン 2 Rx データ信号。受信し ×4 のみ
たパラレル・データを転送する。
rxdatak2_ext
入力
PIPE インタフェース・レーン 2 Rx データ K 記号フラグ ×4 のみ
rxelecidle2_ext
入力
PIPE インタフェース・レーン 2 Rx 電気的アイドル表示
×4 のみ
rxpolarity2_ext
出力
PIPE インタフェース・レーン 2 Rx 極性反転制御
×4 のみ
×4 のみ
rxstatus2_ext[1:0]
入力
PIPE インタフェース・レーン 2 Rx ステータス・フラグ
×4 のみ
rxvalid2_ext
入力
PIPE インタフェース・レーン 2 Rx データ有効表示
×4 のみ
txcompl2_ext
出力
PIPE インタフェース・レーン 2 Tx コンプライアンス制御 ×4 のみ
txdata2_ext[7:0]
出力
PIPE インタフェース・レーン 2 Tx データ信号。パラレ ×4 のみ
ル送信データを転送する。
txdatak2_ext
出力
PIPE インタフェース・レーン 2 Tx データ K 記号フラグ ×4 のみ
×4 のみ
txelecidle2_ext
出力
PIPE インタフェース・レーン 2 Tx 電気的アイドル制御
rxdata3_ext[7:0]
入力
PIPE インタフェース・レーン 3 Rx データ信号。受信し ×4 のみ
たパラレル・データを転送する。
rxdatak3_ext
入力
PIPE インタフェース・レーン 3 Rx データ K 記号フラグ ×4 のみ
rxelecidle3_ext
入力
PIPE インタフェース・レーン 3 Rx 電気的アイドル表示
×4 のみ
rxpolarity3_ext
出力
PIPE インタフェース・レーン 3 Rx 極性反転制御
×4 のみ
rxstatus3_ext[1:0]
入力
PIPE インタフェース・レーン 3 Rx ステータス・フラグ
×4 のみ
×4 のみ
rxvalid3_ext
入力
PIPE インタフェース・レーン 3 Rx データ有効表示
txcompl3_ext
出力
PIPE インタフェース・レーン 3 Tx コンプライアンス制御 ×4 のみ
txdata3_ext[7:0]
出力
PIPE インタフェース・レーン 3 Tx データ信号。パラレ ×4 のみ
ル送信データを転送する。
txdatak3_ext
出力
PIPE インタフェース・レーン 3 Tx データ K 記号フラグ ×4 のみ
txelecidle3_ext
出力
PIPE インタフェース・レーン 3 Tx 電気的アイドル制御
4–14
PCI Express Compiler Version 6.1
PCI Express コンパイラ・ユーザガイド
×4 のみ
Altera Corporation
2006 年 12 月
外部 PHY
外部 PHY の
選択
パラメータ設定のプロセスで表示される Systems Setting ページから、外
部 PHY を選択します。次の 2 つの選択肢が用意されています。
■
■
的確な PHY を選択します。
PHY へのインタフェースのタイプを選択します。いくつかの PHY は
複数のインタフェース・モードを備えています。
Custom オプションを選択することにより、サポートされている任意の
インタフェースを選択できます。図 4–4 に、外部 PHY を選択するため
の Systems Setting ページを示します。
図 4-7. パラメータ化時の外部 PHY の選択
Altera Corporation
2006 年 12 月
PCI Express Compiler Version 6.1
4–15
PCI Express コンパイラ・ユーザガイド
外部 PHY 制約のサポート
表 4–4 に PHY サポート・マトリックスを示します。サポートされてい
るすべての PHY タイプとインタフェースについて、この表には許容さ
れるレーン幅が記載されています。
表 4–4. 外部 PHY のサポート・マトリックス
PHY
タイプ
許容されるインタフェースおよびレーン
16 ビット 16 ビット
8 ビット
8 ビット
8 ビット
8 ビット
シリアル
SDR
SDR
DDR
DDR
SDR
SDR
インタフェース
(pclkのみ)(w/TxClk)(pclk のみ)(w/TxClk)(pclk のみ)(w/TxClk)
-
-
-
-
-
-
×1, ×4
Stratix II GX -
-
-
-
-
-
×1, ×4, ×8
TI XIO1100
-
×1
-
×1
-
-
-
Philips
PX1011A
-
-
-
-
-
×1
-
カスタム
×1, ×4
×1, ×4
×1, ×4
×1, ×4
×1, ×4
×1, ×4
-
Stratix GX
TI XIO1100 デバイスは、ユーザ・デザインによってドライブされる必要
があるいくつかの追加コントロール信号があります。デザインでさらに
柔軟性が必要な場合やアルテラ・デバイスからドライブする場合を除い
て、これらはボード・デザイン内で High または Low にスタティックに
プルできます。これらの信号は、以下のとおりです。
■
P1_SLEEP は Low にしなければなりません。PCI Express MegaCore
ファンクションは、P1パワーダウン状態のときにはrefclk(XIO1100
からの RX_CLK)がアクティブ状態を保持することを要求します。
■ PCI Express MegaCore ファンクションのバリエーションが 8 ビット
DDR(w/TxClk)モードを使用している場合は、DDR_EN を High
にしなければなりません。16 ビット SDR(w/TxClk)モードが使用
されている場合は、Low にプルしなければなりません。
■ CLK_SEL は、XIO1100 に供給されるリファレンス・クロックに基づ
いて、正しく設定する必要があります。具体的な推奨事項について
は、XIO1100 データシートを参照してください。
外部 PHY 制約
のサポート
PCI Express コンパイラは制約をサポートします。MegaCore をパラメー
タ設定して生成するときに、Quartus II ソフトウェアは、デザインをコ
ンパイルする際に実行する Tcl ファイルを作成します。
Tcl ファイルには、
MegaCore ファンクションのパラメータ設定および生成時に指定され
る、以下の制約が含まれています。
■
■
■
pclk 周波数制約(125 MHz または 250 MHz)
入力信号に対するセットアップおよびホールド制約
出力信号に対するクロック−出力制約
4–16
PCI Express Compiler Version 6.1
PCI Express コンパイラ・ユーザガイド
Altera Corporation
2006 年 12 月
外部 PHY
■
I/O インタフェース標準規格
デザインをコンパイルする際の制約ファイルの使用と追加につい
て詳しくは、2–16 ページの「デザインのコンパイル」を参照して
ください。
外部 PHY と Stratix GX デバイス・ファミリの使用
外部 PHY を Stratix GX デバイス・ファミリに実装されるデザインと共
に使用する場合は、一部の外部 PHY が Stratix GX ファミリで動作する
ために必要なPLLインスタンスを変更しなければなりません。Stratix GX
の内部 PHY を使用している場合、これは不要です。
PLL インスタンスを変更するには、以下のステップに従います。
1. バリエーション・ファイルで参照した PLL ソース・ファイルを < パ
ス >/ip/PCI Express Compiler/lib ディレクトリからユーザのプロ
ジェクト・ディレクトリにコピーします。
2. Quartus II ソフトウェアの MegaWizard Plug In Manger を使用して、
Stratix GX デバイス・ファミリを使用するように PLL を編集します。
3. 変更された PLL ソース・ファイルをユーザの Quartus II プロジェク
トに追加します。
Altera Corporation
2006 年 12 月
PCI Express Compiler Version 6.1
4–17
PCI Express コンパイラ・ユーザガイド
外部 PHY 制約のサポート
4–18
PCI Express Compiler Version 6.1
PCI Express コンパイラ・ユーザガイド
Altera Corporation
2006 年 12 月
5. テストベンチおよび
デザイン例
この章では、PCI Express MegaCore ファンクション・テストベンチ、
BFM テスト・ドライバ・モジュール、および以下の 2 つのデザイン例を
紹介します。
■
シンプル DMA デザイン例
■
チェイニング DMA デザイン例
この章のコンポーネントと概念を再検討した後、BFM テスト・ドライ
バ・モジュールを変更して、ユーザ独自のアプリケーション・レイヤ・
デザインを動作させ、テストするのに必要な情報を得ることができます。
2–12 ページの「ファイルの生成」で説明した MegaCore ファンクショ
ン・バリエーションを作成すると、ユーザのバリエーションに合わせて
カスタマイズされたデザイン例およびテストベンチも生成されます。
テストベンチはデザイン例とルート・ポート BFM をインスタンス化し、
以下のコンフィギュレーション・ルーチンとインタフェースを提供しま
す。
■
エンドポイントですべての基本コンフィギュレーション・レジスタ
をセットアップするコンフィギュレーション・ルーチン。このルー
チンにより、エンドポイント・アプリケーションをターゲットとし
て、PCI Express トランザクションを開始することができます。
■
エンドポイントに対してPCI Expressトランザクションを開始するた
めの VHDL/Verilog HDL プロシージャ・インタフェース
このテストベンチはテスト・ドライバ・モジュール(シンプル DMA デ
ザイン用の altpcietb_bfm_driver およびチェイニング DMA デザイン用
の altpcietb_bfm_driver_chaining)を使用して、デザイン例のターゲッ
ト・メモリと DMA チャネルを試験します。このテスト・ドライバ・モ
ジュールは、エンドポイントのコンフィギュレーション・スペース・レ
ジスタからの情報も表示します。これにより、ユーザは MegaWizard イ
ンタフェースに指定したパラメータを検証することができます。
提供されるデザイン例の 1 つをサンプルとして使用し、テストベンチの
テスト・ドライバ・モジュールを簡単に変更して、提供されたデザイン
例のアプリケーション・レイヤ・ロジックの代わりに、ユーザ独自のア
プリケーション・レイヤ・デザインを使用することができます。テスト
Altera Corporation
2006 年 12 月
PCI Express Compiler Version 6.1
5–1
ベンチとルート・ポート BFM デザインは、MegaCore ファンクションの
エンドポイント・バリエーションにインタフェースするアプリケーショ
ン・レイヤ・ロジックを試験するプロセスを簡素化します。PCI Express
のリンク監視およびエラー・インジェクション機能は、MegaCore ファ
ンクションの test_in および test_out 信号に制限されています。以
降の項では、テストベンチ、2 つのデザイン例、およびルート BFM を詳
細に説明します。
アルテラのテストベンチとルート・ポート BFM は、MegaCore ファンク
ションのエンドポイント・バリエーションにインタフェースするアプリ
ケーション・レイヤ・ロジックの基本テストを行う単純な方法を提供し
ます。ただし、テストベンチおよびルート・ポート BFM は、完全な検
証環境の代わりになること意図したものではありません。アプリケー
ションを徹底的にテストするために、アルテラでは市販されている PCI
Express 検証 IP およびツールを取得するか、ユーザ独自の包括的なハー
ドウェア・テストを実行する(あるいはその両方を行う)ことを推奨し
ています。
ユーザのアプリケーション・レイヤ・デザインは、アルテラのテストベ
ンチやルート・ポート BFM では作成できない以下のシナリオに対処し
なければならない場合があります。アルテラのルート・ポート BFM に
は、以下の制限があります。
■
■
■
■
■
ベンダが定義したメッセージを生成または受信することはできませ
ん。一部のシステムはベンダが定義したメッセージを生成し、アプ
リケーション・レイヤはそれらを処理するように設計できなければ
なりません。MegaCore ファンクションはこれらのメッセージをアプ
リケーション・レイヤに渡します。アプリケーション・レイヤはほ
とんどの場合、それらを無視しなければなりませんが、すべてのケー
スで rx_ack を発行して、Rx バッファからのメッセージをクリアする
必要があります。
受信した読み出し要求のうち、現在設定されている最大ペイロード・
サイズ以下の要求しか処理できません。多くのシステムはより大き
な読み出し要求を処理でき、それらは複数のコンプリーションで返
されます。
読み出し要求ごとに常に 1 つのコンプリーションを返します。一部の
システムは 64 バイト・アドレス境界ごとにコンプリーションを分割
します。
コンプリーションは常に読み出し要求が発行されたのと同じ順序で
返されます。コンプリーションを順不同で生成するシステムもあり
ます。
一部のシステムがいくつかのライト・トランザクションに続くフ
ラッシュ要求として生成する、長さゼロの読み出し要求を生成する
ことはできません。アプリケーション・レイヤは、長さゼロの読み
出し要求に対してコンプリーションを生成できなければなりませ
ん。
5–2
PCI Express Compiler Version 6.1
PCI Express コンパイラ・ユーザガイド
Altera Corporation
2006 年 12 月
テストベンチおよび デザイン例
コアと共に提供されるシンプルおよびチェイニングDMAデザイン例は、
提供されたテストベンチがそれらをテストできない場合でも、上記のす
べての動作を扱うように設計されています。
さらに、PCI Express のリンク監視およびエラー・インジェクション能
力は、MegaCore ファンクションの test_in および test_out 信号に
制限されています。テストベンチおよびルート・ポート BFM は、どの
トランザクションも NAK しません。
テストベンチ
MegaWizard インタフェースは、ユーザのプロジェクト・ディレクトリ
内のシンプル DMA デザイン例用のサブディレクトリ < バリエーション
名 >_examples/simple_dma/testbench およびチェイニング DMA デザイ
ン例用の < バリエーション名 >_examples/chaining_dma/testbench にテ
ストベンチを提供します。テストベンチのトップ・レベルには、シンプ
ル DMA デザイン例に対しては < バリエーション名 >_testbench、そし
て チ ェ イ ニ ン グ DMA デザイン例に対しては < バリエーション
名 >_chaining_testbench の名前が付けられます。
このテストベンチにより、ルート・ポートおよびエンドポイントの PIPE
インタフェースまたはシリアル PCI Express インタフェースのいずれか
を使用して、最大 8 レーンの PCI Express リンクのシミュレーションが
可能です。テストベンチのハイ・レベル・ビューについては、図 5-1 を
参照してください。
図 5-1. テストベンチのトップ・レベル・モジュール : < バリエーション名 >_testbench
Testbench Top Level (<variation name>_testbench)
Endpoint Example Design
<variation name>_example_pipen1b
Altera Corporation
2006 年 12 月
PIPE Interconnection
Module (x8)
(altpcierd_pipe_phy)
Root Port BFM
(altpcierd_bfm_rp_top_x8_pipen1b)
Chaining DMA
Simple DMA
Test Driver Module
(altpcietb_bfm_driver_chaining)
Test Driver Module
(altpcietb_bfm_driver)
PCI Express Compiler Version 6.1
5–3
PCI Express コンパイラ・ユーザガイド
テストベンチ
テストベンチのトップ・レベルは、以下の 4 つのメイン・モジュールを
インスタンス化します。
■
< バリエーション名 >_example_pipen1b — これは MegaCore ファン
クションのバリエーションを含むエンドポイント・デザイン例です。
このモジュールについて詳しくは、5–6 ページの「シンプル DMA デ
ザイン例」を参照してください。
■
altpcietb_bfm_rp_top_x8_pipen1b — こ れ は ル ー ト・ポ ー ト PCI
Express バス機能モデル (BFM) です。このモジュールについて詳し
くは、5–32 ページの「ルート・ポート BFM」を参照してください。
■
altpcietb_pipe_phy — このモジュールには各レーンに 1 つずつ、8 つ
のインスタンスがあります。これらのモジュールは、ルート・ポー
トおよびエンドポイントの PIPE MAC レイヤ・インタフェースを相
互接続します。このモジュールは、両方の MAC インタフェースに
対する PIPE PHY レイヤの動作を模倣します。
■
altpcietb_bfm_driver — このモジュールはトランザクションをルー
ト・ポート BFM にドライブします。これはエンドポイント・デザイ
ン例またはユーザ独自のデザインに送信されたトランザクションを
変更するように修正するモジュールです。このモジュールについて
詳しくは、5–23 ページの「シンプル DMA デザイン例用の BFM テス
ト・ドライバ・モジュール」を参照してください。
さらに、テストベンチは以下のタスクを実行するルーチンを持っていま
す。
●
●
要求される周波数でエンドポイント用基準クロックを生成。
起動時に PCI Express リセットを提供。
5–4
PCI Express Compiler Version 6.1
PCI Express コンパイラ・ユーザガイド
Altera Corporation
2006 年 12 月
テストベンチおよび デザイン例
テストベンチは、テストベンチの全体的な動作を制御するいくつかの
VHDL generic/Verilog HDL parameter を備えています。これらの汎用
パラメータは、表 5–1 に説明されています。
表 5–1. テストベンチ VHDL generic/Verilog HDL parameter
Generic/Parameter
許容値
デフォルト値
説明
PIPE_MODE
0 または 1 1
PIPE インタフェース (PIPE_MODE = 1) また
はシリアル・インタフェース (PIPE_MODE =
0) がシミュレーションに使用されるかどうかを
制御します。PIPE インタフェースは、一般にシ
リアル・インタフェースよりもはるかに高速でシ
ミュレーションされます。バリエーション名ファ
イルが PIPE インタフェースのみ実装する場合
は、PIPE_MODE を 0 に設定しても影響はなく、
PIPE インタフェースが常に使用されます。
NUM_CONNECTED_LANES
1,2,4,8
これにより、テストベンチで相互接続されるレー
ン数が制御されます。この generic 値をより小さ
な値 に 設定 す ると、最 大値 よ りも 狭 い
PCI
Express インタフェースで動作するエンドポイン
トがシミュレーションされます。
8
ユーザのバリエーションで ×1 MegaCore ファン
クションしか実装しない場合、この設定は無効で
あり 1 レーンしか使用されません。
FAST_COUNTERS
Altera Corporation
2006 年 12 月
0 または 1 1
このパラメータを 1 に設定すると、PCI Express
MegaCore ファンクションのタイミング・カウン
タの多くを PCI Express 仕様で規定される以上の
速度で動作させることによって、シミュレーショ
ンがスピードアップされます。これは通常は 1 に
設定すべきであるが、真のタイムアウト値をシ
ミュレーションする必要がある場合は0に設定で
きます。
PCI Express Compiler Version 6.1
5–5
PCI Express コンパイラ・ユーザガイド
シンプル DMA デザイン例
シンプル DMA
デザイン例
このデザイン例は、PCI Express MegaCore ファンクションにインタ
フェースするエンドポイントアプリケーション・レイヤ・デザインの作
成方法を示します。デザインには以下が含まれています。
■
PCI Express メモリ・リードおよびライト・トランザクションをター
ゲットにすることができるメモリ
■
PCI Express リンク上で、メモリ・リードおよびライト・トランザク
ションを開始できる DMA チャネル
エンドポイント・デザイン例は、サポートされているアルテラ・デバイ
ス内に完全に内蔵することが可能で、PCI Express リンク以外のハード
ウェア・インタフェースには依存していません。これにより、ユーザは
ユーザ・システムの初期ハードウェア妥当性検証にこのデザイン例を使
用できます。
Quartus II ソフトウェアは、ユーザがバリエーション(バリエーション
名ファイルで生成される)に使用しているのと同じ言語でデザイン例を
生成します。デザイン例は Verilog HDL または VHDL のいずれかです。
MegaWizard インタフェースが MegaCore バリアントを生成すると、
MegaCore ファンクション・バリエーションでエンドポイント・デザイ
ン例が作成されます。5–7 ページの「シミュレーションのためのトップ・
レベル・シンプル DMA デザイン例」に示すとおり、デザイン例には
MegaCore ファンクション・バリエーションとアプリケーション・レイ
ヤ・デザイン例の 2 つの主要コンポーネントが含まれています。
エンドポイント・デザイン例のアプリケーション・レイヤは、以下の特
長を備えています。
■
■
■
■
■
■
PCI Express MegaCore ファンクションへのインタフェース方法を示
す。
PCI Express メモリ書き込みおよびリード・トランザクションに対し
て読み書き可能なターゲット・メモリ。
PCI Express リンク上で、メモリ・リードおよびライト・トランザク
ションを開始するのに使用できる DMA チャネル。
DMA 開始メモリ・トランザクション用データをソースおよびシンク
するのに使用できるマスタ・メモリ・ブロック。
DMA 開始メモリ・ライト・トランザクション用データをソースする
のに使用可能なデータ・パターン・ジェネレータ。
2 本のバーチャル・チャネル(VC)のサポート。
5–6
PCI Express Compiler Version 6.1
PCI Express コンパイラ・ユーザガイド
Altera Corporation
2006 年 12 月
テストベンチおよび デザイン例
エンドポイント・デザイン例はテストベンチ・シミュレーションで使用
して、アルテラ・デバイス用の完全なデザインとしてコンパイルするこ
とができます。バリエーション・ファイルでデザイン例を実装するのに
必要なすべてのモジュールが、使用する言語に基づいて以下の個別ファ
イルに含まれています。
< バリエーション名 >_example_top.vhd
< バリエーション名 >_example_top.v
altpcierd_dprambe.v または altpcierd_dprambe.vhd
altpcierd_example_app.v または altpcierd_example_app.vhd
altpcierd_master.v または altpcierd_master.vhd
altpcierd_slave.v または altpcierd_slave.vhd
< バリエーション名 >_example_pipen1b.v または
< バリエーション名 >_example_pipen1b.vhd
< バリエーション名 >_example_top.v または
< バリエーション名 >_example_top.vhd
このファイルは生成された MegaCore ファンクションのプロジェクト・
ディレクトリに作成されます。詳しくは、2–12 ページの「ファイルの生
成」を参照してください。
図 5-2 に、シンプル DMA エンドポイント・デザイン例のハイ・レベル・
ブロック図を示します。
図 5-2. シミュレーションのためのトップ・レベル・シンプル DMA デザイン例
Simple DMA Example Design Simulation Top Level (<variation name>_example_pipenb)
Simple DMA Example Application Layer (altpcierd_example_app)
VC0 Tx
Master Module
(altpcierd_master)
PHY Support Module
(<variation name>)
VC0 Rx
Includes DMA, Memory
& Data Generator
Traffic Class to
Virtual Channel
Mapping
VC1 Tx
VC1 Rx
PCI Express MegaCore
Function Variation
Slave Module
(altpcierd_slave)
Includes Memory &
Control Registers
Altera Corporation
2006 年 12 月
PCI Express Compiler Version 6.1
5–7
PCI Express コンパイラ・ユーザガイド
シンプル DMA デザイン例
このデザイン例には、以下のモジュールが含まれています。
■
<バリエーション名>_example_pipen1bこのモジュールは、ユーザが
シミュレーションに使用するエンドポイント・デザイン例のトップ・
レベルです。
このモジュールは、シミュレーション環境に PIPE とシリアル・イン
タフェースの両方を提供します。このモジュールは、test_out と
test_in(付録 C 参照)という名前の 2 つのデバッグ・ポートを備え
ています。これによりユーザは MegaCore ファンクションの内部状
態を監視および制御することができます。
合成する場合、トップ・レベル・モジュールは < バリエーション
名 >_example_top です。このモジュールは、モジュール < バリエー
ション名 >_example_pipen1b をインスタンス化し、テスト・ポート
の小さなサブセットのみを外部 I/O に接続します。ユーザ・デザイ
ンでこれらのテスト・ポートを使用できます。
■
< バリエーション名 >.vhd または
< バリエーション名 >.v — このファイルは、この項の随所に記載され
ている < バリエーション名 >_core エンティティ(またはモジュール)
をインスタンス化し、ユーザのバリエーションに選択した特定の
PHY をサポートするのに必要な追加ロジックが含まれています。
Quartus II ソフトウェアでデザインをコンパイルするときには、この
ファイルを含めなければなりません。
■
<バリエーション名>_core.vまたは<バリエーション名>_core.vhd —
このバリエーション名モジュールは生成フェーズ中に MegaCore
ファンクションをパラメータ化するとき、ユーザが設定したパラ
メータに基づいて、MegaWizard インタフェースによって作成され
ます(2–5 ページの「パラメータ設定」参照)。シミュレーション目
的で、Quartus II ソフトウェアによって作成された IP 機能シミュレー
ション・モデルが使用されます。IP 機能シミュレーション・モデル
は、< バリ エー シ ョン名 >_core.vho また は < バリエーション
名 >_core.vo ファイルのいずれかです。関連する < バリエーション
名 >_core.vhd または < バリエーション名 >_core.v ファイルは、コン
パイル中に Quartus II ソフトウェアによって使用されます。機能シ
ミュレーション・モデルの生成について詳しくは、2–9 ページの「シ
ミュレーションのセットアップ」を参照してください。
5–8
PCI Express Compiler Version 6.1
PCI Express コンパイラ・ユーザガイド
Altera Corporation
2006 年 12 月
テストベンチおよび デザイン例
■
altpcierd_example_app — このアプリケーション・レイヤ・デザイン
例には、マスタおよびスレーブ・モジュールが含まれています。ま
た、MegaCore ファンクション・コンフィギュレーション・スペース
のマッピング・テーブルに基づいてリクエストのトラフィック・ク
ラス (TC) をバーチャル・チャネル (VC) へマッピングするロジック
も含まれています。詳しくは、3–97 ページの表 3–35 を参照してくだ
さい。
■
altpcierd_slave — スレーブ・モジュールは、PCI Express リンクから
受信したすべてのメモリ・リードおよびライト・トランザクション
を扱います。トランザクションがどのベース・アドレス・レジスタ
(BAR) に一致したかによって、トランザクションはターゲット・メ
モリまたはコントロール・レジスタ領域のいずれかに送られます。
BAR およびアドレス・マッピングについて詳しくは、
「デザイン例の
BAR/ アドレス・マップ」を参照してください。どのリード・トラン
ザクションを受信しても、スレーブ・モジュールは必要なコンプリー
ションを生成し、それを送信のために MegaCore ファンクションに
渡します。
■
altpcierd_master — これは以下のファンクションを含むマスタ・モ
ジュールです。
●
PCI Express リンク上で、メモリ・リードおよびライト・トラン
ザクションを生成する DMA チャネル。
●
DMA チャネルによって開始されたメモリ・ライト・トランザク
ションのデータのソースおよびメモリ・リード・トランザクショ
ンのデータのシンクになることができるマスタ・メモリ・ブロッ
ク。
●
DMA チャネルによって開始されたメモリ・ライト・トランザク
ションのための代わりのデータのソースとなることができる
データ・ジェネレータ・ファンクション。
DMA チャネルおよび DMA チャネルを制御するためのベース・アドレ
ス・レジスタ(BAR)を含むレジスタのセットアップについて詳しくは、
次の「デザイン例の BAR/ アドレス・マップ」の項を参照してください。
Altera Corporation
2006 年 12 月
PCI Express Compiler Version 6.1
5–9
PCI Express コンパイラ・ユーザガイド
シンプル DMA デザイン例
デザイン例の BAR/ アドレス・マップ
このデザイン例は、受信したメモリ・トランザクションがどの BAR に
一致したかに基づいて、そのトランザクションをターゲット・メモリ・
ブロックまたはコントロール・レジスタ・ブロックのいずれかにマップ
します。異なるバリエーション・ファイルとの相互運用性を最大化する
ために、これらの各ブロックにマップする複数のBARがあります。表 5–2
にマッピングを示します。
表 5–2. デザイン例の BAR マップ
メモリ BAR
マッピング
32 ビット BAR0
32 ビット BAR1
64 ビット BAR1:0
32 K バイトのターゲット・メモリ・ブロックにマップ。下位アドレス・ビットは、読
み書きする RAM 位置を選択します。アドレス・ビット 15 以上は無視されます。
32 ビット BAR2
32 ビット BAR3
64 ビット BAR3:2
コントロール・レジスタ・ブロックへのマップ。詳しくは、表 5–3 コントロール・レ
ジスタのデザイン例を参照してください。
32 ビット BAR4
32 ビット BAR5
64 ビット BAR5:4
32 K バイトのターゲット・メモリ・ブロックにマップ。下位アドレス・ビットは、読
み書きする RAM 位置を選択します。アドレス・ビット 15 以上は無視されます。
拡張 ROM BAR
デザイン例では実装されておらず、動作は予測不能です。
I/O 領域 BAR
(いずれか)
デザイン例では実装されておらず、動作は予測不能です。
デザイン例のコントロール・レジスタ・ブロックは、主に DMA チャネ
ル動作をセットアップするのに使用されます。コントロール・レジスタ・
ブロックは、DMA チャネル動作のアドレス、サイズ、および属性を設
定します。DMAチャネル動作の実行は、以下のステップで構成されます。
1. オフセット 0x00 および 0x04 にあるレジスタへの PCI Express アドレ
スの書き込み
2. オフセット 0x14 にあるレジスタへのマスタ・メモリ・ブロック・ア
ドレスの書き込み
3. オフセット 0x08 にあるレジスタへの要求動作の長さの書き込み
4. オフセット 0x0C にあるレジスタへの要求動作の属性(PCI Express
メモリの書き込みまたは読み出し方向を含む)の書き込み。このレ
ジスタに書き込むと DMA チャネル動作の実行が開始されます。
5–10
PCI Express Compiler Version 6.1
PCI Express コンパイラ・ユーザガイド
Altera Corporation
2006 年 12 月
テストベンチおよび デザイン例
5. オフセット 0x0C にある DMA チャネル動作実行中ビットの読み出
し。これによりDMAチャネル動作のコンプリーションを判断します。
表 5–3. デザイン例のコントロール・レジスタ (1 / 3)
レジスタのバイト・
アドレス
ビット・
(BAR2、3 からの フィールド
オフセット)
説明
0x00
31:0
DMA チャネル PCI Express アドレス [31:0] — これらは DMA チャネル
によって作成されたメモリ・トランザクションに使用される開始アドレ
スの下位 32 ビットです。
0x04
31:0
DMA チャネル PCI Express アドレス [63:32] — これらは DMA チャネル
によって作成されたメモリ・トランザクションに使用される開始アドレ
スの上位 32 ビットです。
0x08
31:0
DMA チャネル動作サイズ — このレジスタは実行する DMA 動作の長さ
をバイト数で指定します。
0x0C
すべて
DMA チャネル・コントロール・レジスタ。このレジスタのいずれかの
バイトに書き込むと、DMA 動作が開始されます。
31
DMA チャネル動作実行中 — これは読み出し専用ビットです。このビッ
トが 1 に設定されているときは、DMA 動作を実行中です。
30:23
Reserved
22
DMA チャネルは、メモリ・ライト・トランザクションに対してインク
リメント DWORD パターンを使用します。
21
DMA チャネルは、メモリ・ライト・トランザクションに対してインク
リメント・バイト・パターンを使用します。
20
DMA チャネルは、メモリ・ライト・トランザクションに対してオール・
ゼロをデータとして使用します。
19
Reserved
18:16
DMA チャネル・トランザクションの最大ペイロード・サイズを指定 —
これは DMA チャネルをコンフィギュレーション領域 Max Payload Size
および Max Read Request Size で許容される値より小さいトランザク
ションを使用するように制限するのに使用できます。トランザクショ
ン・サイズは許容される最小値です。これは以下のフィールドと同じエ
ンコーディングを使用します。
0x0C
000—128 バイト
001—256 バイト
010—512 バイト
011—1 K バイト
100—2 K バイト
Altera Corporation
2006 年 12 月
PCI Express Compiler Version 6.1
5–11
PCI Express コンパイラ・ユーザガイド
シンプル DMA デザイン例
表 5–3. デザイン例のコントロール・レジスタ (2 / 3)
レジスタのバイト・
アドレス
ビット・
(BAR2、3 からの フィールド
オフセット)
0x0C
説明
15
この DMA チャネル動作で生成されるすべての PCI Express リクエス
ト・ヘッダの TD ビットの値を設定します。TD ビットは TLP ダイジェ
スト・フィールド・プレゼント・ビットです。
14
この DMA チャネル動作で生成されるすべての PCI Express リクエス
ト・ヘッダの EP ビットの値を設定します。EP ビットはデータがポイ
ズンドであることを示すビットです。
13
この DMA チャネル動作で生成されるすべての PCI Express リクエス
ト・ヘッダの Relaxed Ordering Attribute ビットの値を設定します。
12
この DMA チャネル動作で生成されるすべての PCI Express リクエス
ト・ヘッダの No Snoop Attribute ビットの値を設定します。
11
Reserved
10:8
この DMA チャネル動作で生成されるすべての PCI Express リクエス
ト・ヘッダの Traffic Class フィールドの値を設定します。
7
Reserved
6:5
この DMA チャネル動作で生成されるすべての PCI Express リクエス
ト・ヘッダの Packet Format フィールドの値を設定します。エンコー
ディングは次のとおりです。
00b— メモリ読み出し(データなし 3DW)
01b— メモリ読み出し(データなし 4DW)
10b— メモリ書き込み(データ付き 3DW)
11b— メモリ書き込み(データ付き 4DW)
4:0
この DMA チャネル動作で生成されるすべての PCI Express リクエス
ト・ヘッダの Type フィールドの値を設定します。サポートされている
エンコーディングは、以下のとおりです。
00000b— メモリ読み出しまたは書き込み
5–12
PCI Express Compiler Version 6.1
PCI Express コンパイラ・ユーザガイド
Altera Corporation
2006 年 12 月
テストベンチおよび デザイン例
表 5–3. デザイン例のコントロール・レジスタ (3 / 3)
レジスタのバイト・
アドレス
ビット・
(BAR2、3 からの フィールド
オフセット)
0x10
0x14
Altera Corporation
2006 年 12 月
説明
31:15
Reserved
14:12
MSI 要求時の MSI トラフィック・クラス。このフィールドに書き込ん
で、どの PCI-Express Traffic Class が MSI メモリ・ライト・パケットを
送信するかを指定します。
11:9
Reserved
8:4
MSI 要求時の MSI 番号。このフィールドに書き込んで、どの MSI を送
信するかを指定します。
3:1
Reserved
0
割り込み要求。MSI がエンドポイント (EP) デザインでイネーブルにさ
れた場合、このビットに書き込むと Message Signaled Interrupt (MSI)
が送信されます。そうでない場合、MSI は EP でディセーブルされ、
Legacy Interrupt メッセージが送信されます。
31:15
Reserved
14:3
DMA チャネル動作のための開始マスタ・メモリ・ブロック・アドレス。
2:0
開始マスタ・メモリ・ブロック・アドレスのビット 2:0 は、開始 PCI
Express アドレスからコピーされます。
PCI Express Compiler Version 6.1
5–13
PCI Express コンパイラ・ユーザガイド
チェイニング DMA デザイン例
チェイニング
DMA デザイン
例
このデザイン例では、同時 DMA リードおよびライト・トランザクショ
ンをサポートする 2 つの DMA モジュールを持つチェイニング DMA エ
ンドポイントを作成する方法を示します。1 つの DMA モジュールはエ
ンドポイント (EP) メモリからルート・コンプレックス (RC) メモリへの
アップストリーム・フローでの書き込み動作を実装し、もう 1 つの DMA
は RC メモリから EP メモリへのダウンストリーム・フローでの読み出
し動作を実装しています。
チェイニング DMA デザイン例のエンドポイント・デザインは、サポー
トされているアルテラ・デバイス内に完全に搭載可能で、PCI Express リ
ンク以外のハードウェア・インタフェースには依存しません。これによ
り、ユーザはユーザ・システムの初期ハードウェア妥当性検証にこのデ
ザイン例を使用できます。
MegaWizard インタフェースは、ユーザがバリエーション(バリエーショ
ン名ファイルで生成される)に使用しているのと同じ言語でデザイン例
を生成します。デザイン例は Verilog HDL または VHDL のいずれかで
す。チェイニング DMA デザイン例では、BAR 2 または BAR 3 が最小
256 バイトに設定されている必要があります。
生成ステップ中は、MegaCore ファンクション・バリエーションでエン
ドポイント・デザイン例が作成されます。このデザイン例には、以下の
2 つの主要コンポーネントが含まれています。
■
MegaCore ファンクション・バリエーション
■
アプリケーション・レイヤのデザイン例
シンプル DMA デザイン例では、ソフトウェア・アプリケーション(ルー
ト・ポート側)は、メモリ・ブロックの転送ごとにエンドポイント DMA
レジスタをプログラムする必要があります。これによって、BFM 共有メ
モリとエンドポイント・バッファ・メモリ間で大量の非連続メモリを転
送するときに、性能が制限される可能性があります。チェイニング DMA
デザイン例は、メモリ・ブロックごとに DMA レジスタを再プログラム
することなく、大量の断片化されたメモリを転送可能なアーキテクチャ
を示します。
チェイニング DMA デザイン例は、転送する各メモリ・ブロックにディ
スクリプタ・テーブルを使用します。各ディスクリプタ・テーブルには、
以下の情報が含まれています。
■
■
■
転送の長さ
転送元のアドレス
転送先のアドレス
5–14
PCI Express Compiler Version 6.1
PCI Express コンパイラ・ユーザガイド
Altera Corporation
2006 年 12 月
テストベンチおよび デザイン例
■
ソフトウェア・アプリケーションとチェイニング DMA モジュール間
のハンドシェイク動作を設定するコントロール・ビット
ソフトウェア・アプリケーションは、これらのディスクリプタ・テーブ
ルを BFM 共有メモリに書き込みます。チェイニング DMA デザイン・エ
ンジンは、DMA リードおよび / または DMA ライトのために、連続し
てこれらのディスクリプタ・テーブルを収集します。転送の開始時に、
ソフトウェア・アプリケーションは DMA エンジン・レジスタにディス
クリプタ・テーブル・ヘッダをプログラムします。ディスクリプタ・テー
ブル・ヘッダには、記述子の総数や最初のディスクリプタ・テーブルの
BFM 共有メモリ・アドレスなどの情報が含まれています。ディスクリプ
タ・ヘッダが設定されると、チェイニング DMA エンジンは、DMA リー
ドおよび DMA ライトの両方のために、BFM 共有メモリから継続的に記
述子をフェッチして、各記述子のためのデータ転送を実行します。
図 5-3 の左側にデザイン例のブロック図を示し、右側に外部 RC CPU を
示します。ブロック図には以下のエレメントが含まれています。
Altera Corporation
2006 年 12 月
■
EP DMA ライトおよびリード・リクエスタ・モジュール(上記)
■
Avalon®-MMバス上でEPメモリへのアクセスを調停するEPリード/
ライト MUX
■
EP TLP (Transaction Layer Packet) トランスレータ・モジュール - 適切
なサブモジュールに対する TLP フォーマッティングおよびトラ
フィック管理の実行に使用(DMA リードまたはライト・コンフィ
ギュレーション)。
■
2 つのルート・コンプレックス(RC)メモリディスクリプタ・テーブ
ル - 各 DMA モジュールに 1 つずつ。これらについては、以下の項で
説明しています。
■
EP デザイン例への RC CPU および関連の PCI Express PHY リンク ルート・ポートおよび North/South ブリッジを使用
PCI Express Compiler Version 6.1
5–15
PCI Express コンパイラ・ユーザガイド
チェイニング DMA デザイン例
図 5-3. チェイニング DMA デザイン例のシミュレーション用トップ・レベル
Chaining DMA Example
Root Complex
Endpoint Memory
Memory
S
S
M
M
Read
Descriptor
Table
Avalon-MM
buses
DMA Write
Data
DMA Read
Requester
Requester
Descriptor
Descriptor
Header Register
Write
Descriptor
Table
PCI Express
MegaCore Function
Variation (DUT)
Root Port
Header Register
CPU
RC Slave
エンドポイント・デザイン例のアプリケーション・レイヤには、以下の
機能があります。
■
PCI Express MegaCore ファンクションへのインタフェース方法を示
す。
■
PCI Express リンク上で、メモリ・リードおよびライト・トランザク
ションを開始するのに使用可能なチェイニング DMA チャネルを提
供。
エンドポイント・デザイン例でテストベンチ・シミュレーションを使用
することができ、またアルテラ・デバイス用の完全なデザインをコンパ
イルできます。バリエーション・ファイルでデザイン例を実装するのに
必要なすべてのモジュールは、使用する言語に基づき、以下のファイル
の 1 つに含まれています。
< バリエーション名 >_examples/chaining_dma/
< バリエーション名 >_example_chaining.vhd
または
< バリエーション名 >_examples/chaining_dma/
< バリエーション名 >_example_chaining.v
5–16
PCI Express Compiler Version 6.1
PCI Express コンパイラ・ユーザガイド
Altera Corporation
2006 年 12 月
テストベンチおよび デザイン例
このファイルは、ファイルの生成時にプロジェクト・ディレクトリ内に
作成されます。
以下のモジュールは、デザイン例に含まれ、サブディレクトリ < バリ
エーション名 >_example/chaining_dma に置かれます。
■
< バリエーション名 >_example_pipen1b — このモジュールは、シ
ミュレーションに使用するエンドポイント・デザイン例のトップ・レ
ベルです。このモジュールは、MegaWizard インタフェースによっ
て作成される以下のファイルに含まれています。
< バリエーション名 >_example_chaining_top.vhd
< バリエーション名 >_example_chaining_top.v
このモジュールは、シミュレーション環境のための PIPE とシリア
ル・イ ン タ フ ェ ー ス の 両 方 を 提 供 し ま す。こ の モ ジ ュ ー ル は、
test_out と test_in(付録 C 参照)という名前の 2 個のデバッグ・
ポートを備えています。これによりユーザは MegaCore ファンクショ
ンの内部状態を監視および制御することができます。
合成の場合、トップ・レベル・モジュールは < バリエーション
名 >_example_chaining_top です。このモジュールは、モジュール
< バリエーション名 >_example_pipen1b をインスタンス化して、テ
スト・ポートの小さなサブセットのみが外部 I/O につながっていま
す。これらのテスト・ポートはユーザ・デザインで使用できます。
■
< バリエーション名 >.v または < バリエーション名 >.vhd — このバリ
エーション名モジュールは、ユーザが設定したパラメータに基づき、
ファイル生成時に MegaWizard インタフェースによって作成されま
す。シュミレーション目的で、MegaWizard インタフェースによっ
て作成された IP 機能シミュレーション・モデルが使用されます。IP
機能シミュレーション・モデルは、< バリエーション名 >.vho また
は < バリエーション名 >.vo ファイルのいずれかです。関連する < バ
リエーション名 >.vhd または < バリエーション名 >.v ファイルは、コ
ンパイル中に Quartus II ソフトウェアによって使用されます。機能
シミュレーション・モデルの生成については、
「使用法」の章を参照
してください。
チェイニング DMA デザイン例の階層は、以下のコンポーネントで構成
されています。
Altera Corporation
2006 年 12 月
●
DMA リードおよび DMA ライト・モジュール
●
各エンジンで2つのAvalon-MMバスを使用するオン・チップEP
メモリ(Avalon スレーブ)
PCI Express Compiler Version 6.1
5–17
PCI Express コンパイラ・ユーザガイド
チェイニング DMA デザイン例
●
性 能 監 視 用 RC ス レ ー ブ・モ ジ ュ ー ル お よ び 単 一 DWORD
Mrd/Mwr
各 DMA モジュールは、以下のコンポーネントで構成されています。
●
ヘッダ・レジスタ・モジュール : RC は、DMA の初めにディスク
リプタ・ヘッダ(4 DWORD)をプログラムします。
●
ディスクリプタ・モジュール : DMA エンジンは、EP メモリから
チェイニング・ディスクリプタを収集します。
●
リクエスタ・モジュール : 与えられたディスクリプタに対して、
DMA エンジンは EP メモリと BFM 共有メモリの間でメモリ転
送を実行します。
以下のモジュールは、各階層レベルを反映します。
●
altpcierd_example_app_chaining — こ の モ ジ ュ ー ル は モ
ジュール altpcie_dma_dt(読み出しまたは書き込み)および
altpcie_rc_slave 用の PCI Express パケットを調停するトップ・
レベルです。altpcierd_example_app_chaining は、DMA リー
ドおよびライト転送に使用されるエンドポイント・メモリをイ
ンスタンス化します。
altpcie_rc_slave — は、ソフトウェア・アプリケーション(ルート・ポー
ト)で使用され、DMA パフォーマンス・カウンタ値を取り出し、DMA
エンジンをバイパスすることによって、エンドポイント・メモリに対す
るシングル DWORD 読み出しおよび書き込みを実行します。デフォルト
では、このモジュールはディセーブルされています。
●
altpcie_dma_dt — は、サ ブ モ ジ ュ ー ル で あ る モ ジ ュ ー ル
altpcie_dma_prg_reg、altpcie_read_dma_requester、
altpcie_write_dma_requesterおよびaltpcie_dma_descriptorに
よって発行された PCI Express パケットを調停します。
●
altpcie_dma_prg_reg — には、ソフトウェア・アプリケーショ
ンによってプログラムされるディスクリプタ・ヘッダ・テーブ
ル・レジスタが含まれています。このモジュールは、BAR 2 ま
たは 3 上の tlp タイプ MWr の PCI Express TL パケットをソフ
トウェア・アプリケーションから収集します。
●
altpcie_dma_descriptor —は、ルート・ポート・メモリからDMA
リードまたはライト・ディスクリプタを取り出して、ディスク
リプタ FIFO に保存します。このモジュールは、tlp タイプ MRd
の PCI Express TL パケットを BFM 共有メモリに発行します。
5–18
PCI Express Compiler Version 6.1
PCI Express コンパイラ・ユーザガイド
Altera Corporation
2006 年 12 月
テストベンチおよび デザイン例
●
altpcie_read_dma_requester — altpcie_descriptor FIFO にある
各 デ ィ ス ク リ プタのために、このモジュールは MRd PCI
Express TL パケットを発行することによって、BFM 共有メモ
リからエンドポイント・メモリにデータを転送します。
●
altpcie_write_dma_requester — altpcie_descriptor FIFO にあ
る各ディスクリプタに対して、このモジュールは MWr PCI
Express TL パケットを発行することによって、エンドポイン
ト・メモリから BFM 共有メモリにデータを転送します。
デザイン例の BAR/ アドレス・マップ
このデザイン例は、受信したメモリ・トランザクションがどの BAR に
一致したかに基づいて、そのトランザクションをターゲット・メモリ・
ブロックまたはコントロール・レジスタ・ブロックのいずれかにマップ
します。異なるバリエーション・ファイルとの相互運用性を最大化する
ために、これらの各ブロックにマップする複数のBARがあります。表 5–4
にマッピングを示します。
表 5–4. デザイン例の BAR マップ
メモリ BAR
マッピング
32 ビット BAR0
32 ビット BAR1
64 ビット BAR1:0
32 K バイト・ターゲット・メモリ・ブロックにマップします。
rc_slave モジュールを使用して、チェイニング DMA をバイパス
します。
32 ビット BAR2
32 ビット BAR3
64 ビット BAR3:2
DMA リードおよび DMA ライト・レジスタ・ヘッダを制御する
ためにマップし、最小 256 バイトを必要とします。
32 ビット BAR4
32 ビット BAR5
64 ビット BAR5:4
32 K バイト・ターゲット・メモリ・ブロックにマップします。
rc_slave モジュールを使用して、チェイニング DMA をバイパス
します。
拡張 ROM BAR
デザイン例では実装されておらず、動作は予測不能です。
I/O 領域 BAR
(いずれか)
デザイン例では実装されておらず、動作は予測不能です。
デザイン例のコントロール・レジスタ・ブロックは、主に DMA チャネ
ル動作をセットアップするのに使用されます。コントロール・レジスタ・
ブロックは、DMA チャネル動作のアドレス、サイズ、および属性を設
定します。DMAチャネル動作の実行は、以下のステップで構成されます。
1. オフセット 0x00 および 0x04 にあるレジスタへの PCI Express アドレ
スの書き込み
Altera Corporation
2006 年 12 月
PCI Express Compiler Version 6.1
5–19
PCI Express コンパイラ・ユーザガイド
チェイニング DMA デザイン例
2. オフセット 0x14 にあるレジスタへのマスタ・メモリ・ブロック・ア
ドレスの書き込み
3. オフセット 0x08 にあるレジスタへの要求動作の長さの書き込み
4. オフセット 0x0C にあるレジスタへの要求動作の属性(PCI Express
メモリの書き込みまたは読み出し方向を含む)の書き込み。このレ
ジスタに書き込むと DMA チャネル動作の実行が開始されます。
5. オフセット 0x0C にある DMA チャネル動作実行中ビットの読み出
し。これによりDMAチャネル動作のコンプリーションを判断します。
チェイニング DMA ディスクリプタ・テーブル
各ディスクリプタ・テーブルは、ベース・アドレスにあるディスクリプ
タ・ヘッダとそれに続く連続したディスクリプタ・リストで構成されま
す。後続の各ディスクリプタは、最低 4 つの DWORD(PCI-Express 32
ビット・ダブル・ワード)のデータで構成され、1 回の DMA 転送に対
応しています。ソフトウェア・アプリケーションは、EP ポイント・ヘッ
ダ・ディスクリプタ・レジスタにディスクリプタ・ヘッダを書き込みま
す。表 5–5、5–6 およびは、このヘッダの各フィールドを記述します。
表 5–5. チェイニング DMA ディスクリプタ・ヘッダ・フォーマットのアドレス・マップ
31
16 15
0
コントロール・フィールド(表 5–6 を参照)
サイズ
BDT 上位 DWORD
BDT 下位 DWORD
Reserved
RCLAST
表 5–6. チェイニング DMA ディスクリプタ・ヘッダ・フォーマット(コントロール・フィールド)
31
Reserved
30
28 27
MSI トラフィック・クラス Reserved
25 24
MSI 番号
20
17
16
Reserved EPLAST_ENA MSI
19
方向
5–20
PCI Express Compiler Version 6.1
PCI Express コンパイラ・ユーザガイド
18
Altera Corporation
2006 年 12 月
テストベンチおよび デザイン例
表 5–7. チェイニング DMA ディスクリプタ・ヘッダ・フィールド (1 / 2)
EP
RC
ディスクリプタ・
ヘッダ・フィールド アクセス アクセス
EP
アドレス
説明
サイズ
R
R/W
0x00(DMA)
0x10(DMA)
ディスクリプタ・テーブルに記述子の番号 n
を指定します。
方向
R
R/W
0x00(DMA)
0x10(DMA)
ディスクリプタ・テーブルのマッピング・ルー
ルに DMA モジュールを指定します。このビッ
トがセットされていると、ディスクリプタ・
テーブルは DMA ライト・ロジックを参照し
ます。このビットがクリアされていると、ディ
スクリプタ・テーブルは DMA リード・ロジッ
クを参照します。
メッセージ通知割り込 R
み (MSI)
R/W
0x00(DMA)
0x10(DMA)
すべてのディスクリプタに対する割り込みを
イネーブルにします。このビットがセットさ
れていると、EP DMA モジュールは MSI を使
用して RC に割り込みを発行します。ユーザ・
ソフトウェア・アプリケーションは、この割
り込みを使用して DMA 転送ステータスを監
視することができます。
MSI 番号
R
R/W
0x00(DMA)
0x10(DMA)
RC が EP の MSI 機能を読み出すと、これらの
レジスタ・ビットは PCI Express バックエン
ド MSI 信号 app_msi_num [4:0] にマップし
ます。
MSI が 2 つ以上あり、すべての MSI が使用可
能な場合、デフォルトのマッピングは以下の
ようになります。
MSI 0 = リード
MSI 1 = ライト
MSI
トラフィック・
クラス
R
R/W
0x00(DMA)
0x10(DMA)
RC アプリケーション・ソフトウェアが EP の
MSI 機能を読み出すと、この値はデフォルト
により MSI トラフィック・クラス 0 に割り当
てられます。これらのレジスタ・ビットは、
PCI
Express バ ック エ ンド MSI 信 号
app_msi_tc [2:0] にマップします。
BDT 上位 DWORD
R
R/W
0x04(DMA)
0x14(DMA)
ベース・アドレスのディスクリプタ・テーブ
ル・アドレス
BDT 下位 DWORD
R
R/W
0x08(DMA)
0x18(DMA)
ベース・アドレスのディスクリプタ・テーブ
ル・アドレス
Altera Corporation
2006 年 12 月
PCI Express Compiler Version 6.1
5–21
PCI Express コンパイラ・ユーザガイド
チェイニング DMA デザイン例
表 5–7. チェイニング DMA ディスクリプタ・ヘッダ・フィールド (2 / 2)
EP
RC
ディスクリプタ・
ヘッダ・フィールド アクセス アクセス
EP
アドレス
説明
EPLAST_ENA
R
R/W
0x00(DMA)
0x10(DMA)
すべてのディスクリプタで EPLAST ロジック
をイネーブルにします。すべてのディスクリ
プタでメモリ・ポーリングをイネーブルにし
ます。このビットがセットされると、EP DMA
モジュールは BFM 共有メモリへのメモリ・ラ
イトを発行し、完了した DMA ディスクリプ
タの数をレポートします。ソフトウェア・ア
プリケーションは、このメモリ位置をポーリ
ングして、DMA 転送ステータスを監視する
ことができます。
RCLAST
R
R/W
0x0C(DMA)
0x1C(DMA)
RCLAST は転送可能なディスクリプタの数を
反映します。ソフトウェア・アプリケーショ
ンは、システム・レベルのメモリ・スケジュー
リング制約に基づいて、このレジスタを周期
的に更新できます。
ディスクリプタ・ヘッダに続くディスクリプタ・フィールドのフォーマッ
トについては、表 5–8 を参照してください。各記述子は 1 回の DMA 転
送に関するハードウェア情報を提供します。表 5–10 に、各ディスクリプ
タ・フィールドを説明しています。
表 5–8、5–9 は、BFM 共有メモリに置かれているディスクリプタ・テー
ブルのリストに関連しています。
表 5–8. チェイニング DMA ディスクリプタ・フォーマット・マップ
31
22 21
Reserved
16 15
コントロール・フィールド
(表 5–9 を参照)
0
DMA の長さ
EP アドレス
RC アドレス上位 DWORD
RC アドレス下位 DWORD
表 5–9. チェイニング DMA ディスクリプタ・フォーマット・マップ(コントロール・フィールド)
21
Reserved
20
Reserved
19
Reserved
18
17
MSI
5–22
PCI Express Compiler Version 6.1
PCI Express コンパイラ・ユーザガイド
16
EPLAST_ENA
Altera Corporation
2006 年 12 月
テストベンチおよび デザイン例
表 5–10. チェイニング DMA ディスクリプタ・フィールド
EP
RC
ディスクリプタ・
フィールド
アクセス アクセス
説明
EP アドレス
R
R/W
EP サイトでのメモリ転送のベース・アドレスを指定する 32 ビッ
ト・フィールド。
RC アドレス
上位 DWORD
R
R/W
RC サイトでのメモリ転送の上位ベース・アドレスを指定しま
す。
RC アドレス
下位 DWORD
R
R/W
RC サイトでのメモリ転送の下位ベース・アドレスを指定しま
す。
DMA の長さ
R
R/W
転送する DMA バイト数を指定します。
EPLAST_ENA
R
R/W
このビットはディスクリプタ・ヘッダの EPLAST_ENA ビット
と OR されます。EPLAST_ENA がセットされると、EP DMA
モジュールは EPLast RC メモリ・レジスタをフォーム 0 – n で
最後に完了したディスクリプタの値で更新します。
MSI
R
R/W
このビットはディスクリプタ・ヘッダの MSI ビットと OR され
ます。このビットがセットされると、EP モジュールは各チャネ
ルの DMA 転送の終了時に割り込み完了メッセージを送信しま
す。
テスト・
ドライバ・
モジュール
この項では、デザイン例のテストに使用されるテスト・ドライバ・モ
ジュールについて説明します。
■ 「シンプル DMA デザイン例用の BFM テスト・ドライバ・モジュール」
■ 「チェイニング DMA デザイン例用の BFM テスト・ドライバ・モジュー
ル」
シンプル DMA デザイン例用の BFM テスト・ドライバ・モ
ジュール
生成ステップ中にMega Wizardインタフェースによって生成されるBFM
ドライバ・モジュールは、シンプル DMA エンドポイント・デザイン例
をテストするためにコンフィギュレーションされます。BFM ドライバ・
モジュールは、エンドポイント・コンフィギュレーション・スペース・
レジスタをコンフィギュレーションし、エンドポイント・デザイン例の
ターゲット・メモリおよび DMA チャネルをテストします。
このファイルのVHDLバージョンについては、以下を参照してください。
< バリエーション名 >_example_simple_dma/altpcietb_bfm_driver.vhd
または
Altera Corporation
2006 年 12 月
PCI Express Compiler Version 6.1
5–23
PCI Express コンパイラ・ユーザガイド
テスト・ ドライバ・モジュール
Verilog HDL ファイルについては、以下を参照してください。
< バリエーション名 >_example_simple_dma/altpcietb_bfm_driver.v
BFM テスト・ドライバ・モジュールは、以下のステップを順に実行しま
す。
1. ルート・ポートおよびエンドポイント・コンフィギュレーション・ス
ペースのコンフィギュレーションは、BFM テスト・ドライバ・モ
ジ ュ ー ル が、altpcierd_bfm_configure の 一 部 で あ る
ebfm_cfg_rp_epプロシージャを呼び出すことによって実行されま
す。
2. エンドポイント・デザイン例のターゲット・メモリ領域へのアクセ
スに使用するのに適した BAR を検索します。ターゲット・メモリ・
テストを実行するには、BAR 0、1、4、または 5 の 1 つは最低 4KB
のメモリ BAR でなければなりません。altpcietb_bfm_driver に含ま
れる find_mem_bar プロシージャがこれを行います。
3. 前のステップで、適した BAR が見つかった場合、altpcietb_bfm_driver
の target_mem_test プロシージャは、エンドポイント・デザイン
例のターゲット・メモリ領域をテストします。このプロシージャは、
以下のサブ・ステップを実行します。
a.
BFM 共有メモリで 4,096 バイトのデータ・パターンをセット
アップします。これは altpcietb_bfm_shmem の shemem_fill
プロシージャを呼び出すことによって行われます。
b.
これらの 4,096 バイトをエンドポイント・デザイン例のターゲッ
ト・メモリに書き込みます。これは altpcietb_bfm_rdwr の
ebfm_barwr プロシージャを呼び出すことによって行われま
す。
c.
ターゲット・メモリから同じ 4,096 バイトを BFM 共有メモリ内
の別の位置に読み込みます。これは altpcietb_bfm_rdwr の
ebfm_barrd_wait プロシージャを呼び出すことによって行わ
れます。このプロシージャは、読み出しに対するコンプリーショ
ンが受信されるまでブロック(待機)します。
d.
ターゲット・メモリから読み戻したデータをチェックして、最
初 に 書 き 込 ん だ 内 容 と 同 じ か ど う か 確 認 し ま す。こ れ は、
altpcietb_bfm_shmem の shmem_chk_ok プロシージャを呼び
出すことによって行われます。
5–24
PCI Express Compiler Version 6.1
PCI Express コンパイラ・ユーザガイド
Altera Corporation
2006 年 12 月
テストベンチおよび デザイン例
4. エンドポイント・デザイン例のコントロール・レジスタ領域へのア
クセスに適した BAR を検索します。DMA チャネル・テストを実行
するには、BAR 2 または 3 の 1 つが最低 128 バイトのメモリ BAR で
なければなりません。altpcietb_bfm_driver の find_mem_bar プロ
シージャがこれを行います。
5. 前のステップで適した BAR が見つかった場合、エンドポイント・デザ
イン例のDMAチャネルはaltpcietb_bfm_driverのtarget_dma_test
プロシージャでテストされます。このプロシージャは、以下のサブ・
ステップを実行します。
Altera Corporation
2006 年 12 月
a.
BFM 共有メモリで 4,096 バイトのデータ・パターンをセット
アップします。これは altpcietb_bfm_shmem の shemem_fill
プロシージャを呼び出すことによって行われます。
b.
DMA チャネル・コントロール・レジスタをセットアップし、
DMA チャネルを開始して BFM 共有メモリからデザイン例のマ
スタ・メモリにデータを転送します。これは altpcietb_bfm_rdwr
の ebfm_barwr_imm プロシージャを連続して呼び出すことに
よって行われます。これらの ebfm_barwr_imm 呼び出しの最
後で、DMA チャネルを開始します。
c.
コントロール・レジスタ領域でDMAチャネルの実行中ビットが
クリアされるまでチェックして、DMA チャネルが終了するのを
待ちます。これは、altpcietb_bfm_rdwr の ebfm_barrd_wait
プロシージャの呼び出し周辺のループによって行われます。
d.
DMA チャネル・コントロール・レジスタをセットアップし、
DMA チャネルを開始してデータをデザイン例のマスタ・メモリ
から BFM 共有メモリに転送します。
これは altpcietb_bfm_rdwr
の ebfm_barwr_imm プロシージャを連続して呼び出すことに
よって行われます。これらの ebfm_barwr_imm 呼び出しの最
後で、DMA チャネルを開始します。
e.
コントロール・レジスタ領域でDMAチャネルの実行中ビットが
クリアされるまでチェックして、DMA チャネルが終了するのを
待ちます。これは、altpcietb_bfm_rdwr の ebfm_barrd_wait
プロシージャの呼び出し周辺のループによって行われます。
f.
DMAチャネルによってマスタ・メモリから転送されるデータを
チェックし、それが最初に書き込まれた内容と同じであること
を確認します。これは altpcietb_bfm_shmemの shmem_chk_ok
プロシージャの呼び出しによって行われます。
PCI Express Compiler Version 6.1
5–25
PCI Express コンパイラ・ユーザガイド
テスト・ ドライバ・モジュール
6. DMA チャネル・テストに適した BAR が見つかった場合、BFM はレ
ガシー割り込みテストを試みます。
a.
エンドポイントがレガシー割り込みをサポートしているかどう
かをチェックして確認します。サポートしている場合はテスト
が続行され、そうでない場合、テストは終了します。
b.
MSI メッセージ・コントロール・レジスタをチェックして、MSI
がディセーブルされているかどうかを確認します。MSI がイ
ネーブルされている場合、テストは MSI をディセーブルにしま
す。
c.
ウォッチドッグ・タイマを設定し、エンドポイント・レジスタ
に書き込んでレガシー割り込みをトリガします。
d.
レガシー割り込みを受け取るまで、またはウォッチドッグ・タ
イマが満了するまで待機します。
e.
テストの結果をレポートし、MSI メッセージ・コントロール・
レジスタの値を復元して、EP の割り込みビットをクリアしま
す。
7. レガシー割り込みテストに適した BAR が見つかった場合、BFM は
MSI の割り込みテストを試みます。
a.
MSI 対応レジスタをチェックして、サポートされている MSI レ
ジスタ数を確認します。
b.
MSI 対応構造を EP に付与されるターゲット MSI アドレス、デー
タ、およびメッセージ数で初期化します。
c.
エンドポイントの MSI をトリガし、EP からの割り込みのため
の BFM 共有メモリをポーリングして、各 MSI 番号をチェック
します。ここで、テストは EP がサポートするすべての MSI を
ループします。テストは次に、ウォッチドッグ・タイマが満了
する前に各 MSI が受信されていること、受信された MSI デー
タが正しいことをチェックします。
d.
MSI コントロール・レジスタをテスト前の状態に復元し、テス
トの結果をレポートします。
e.
altpcieb_bfm_log の ebfm_log_stop_sim プロシージャの呼
び出しによってシミュレーションが停止します。
5–26
PCI Express Compiler Version 6.1
PCI Express コンパイラ・ユーザガイド
Altera Corporation
2006 年 12 月
テストベンチおよび デザイン例
チェイニング DMA デザイン例用の BFM テスト・ドライ
バ・モジュール
生成ステップ中にMega Wizardインタフェースによって生成されるBFM
ドライバ・モジュールは、チェイン DMA エンドポイント・デザイン例
をテストするためにコンフィギュレーションされます。BFM ドライバ・
モジュールは、エンドポイント・コンフィギュレーション・スペース・
レジスタをコンフィギュレーションし、エンドポイント・チェイニング
DMA チャネル例をテストします。
このファイルのVHDLバージョンについては、以下を参照してください。
< バリエーション名 >_example_chaining_dma/testbench/
< バリエーション名 >_altpcietb_bfm_driver_chaining.vhd
Verilog HDL ファイルについては、以下を参照してください。
< バリエーション名 >_example_chaining_dma/testbench/
< バリエーション名 >_altpcietb_bfm_driver_chaining.v
BFM テスト・ドライバ・モジュールは、以下のステップを順に実行しま
す。
1. ルート・ポートおよびエンドポイント・コンフィギュレーション・ス
ペースをコンフィギュレーションします。これは BFM テスト・ドラ
イ バ・モ ジ ュ ー ル が、altpcierd_bfm_configure の 一 部 で あ る
ebfm_cfg_rp_ep プロシージャを呼び出して行います。
2. エンドポイント・デザイン例のコントロール・レジスタ領域へのアク
セスに適した BAR を検索します。DMA チャネル・テストを実行す
るには、BAR 2 または 3 の 1 つは最低 128 バイトのメモリ BAR でな
ければなりません。
altpcietb_bfm_driver_chaining のfind_mem_bar
プロシージャがこれを行います。
3. 前のステップで適した BAR が見つかった場合、エンドポイント・
デ ザ イ ン 例 の チ ェ イ ニ ン グ DMA は altpcietb_bfm_driver の
chained_dma_test プロシージャでテストされます。このプロシー
ジャは、方向引数の値に基づいて、それぞれ DMA ライトおよび DMA
リードに対する dma_wr_test および dma_rd_test プロシージャ
を呼び出すラッパです。
DMA ライト・サイクル
DMA ライトに使用される dma_wr_test プロシージャでは、以下のス
テップを使用しています。
Altera Corporation
2006 年 12 月
PCI Express Compiler Version 6.1
5–27
PCI Express コンパイラ・ユーザガイド
テスト・ ドライバ・モジュール
1.
BFM 共有メモリのコンフィギュレーション。これは、以下に示す
内容を持つ 3 つのディスクリプタ・テーブルによって行われます。
表 5–11. ライト・ディスクリプタ 0
ライト・ディスクリプタ 0
BFM 共有メモリ内の
オフセット
値
説明
DW0
0x810
64
DW1
0x814
0
エンドポイント・アドレス値
DW2
0x818
0
BFM 共有メモリの上位アドレス値
DW3
0x81c
0x1800
BFM 共有メモリの下位アドレス値
データ
0x1800
0xAAA0_FFFF から アドレス範囲 0x01800Æ0x1840 の BFM 共有メモリ
のインクリメント
のデータ内容
DWORD およびコントロール・ビットの転送長
(表 5–7 で説明)
表 5–12. ライト・ディスクリプタ 1
ライト・ディスクリプタ 1
BFM 共有メモリ内の
オフセット
値
説明
DW0
0x820
32
DWORD およびコントロール・ビットの転送長(5–23
ページの表 5–10 で説明)
DW1
0x824
0
エンドポイント・アドレス値
DW2
0x828
0
BFM 共有メモリの上位アドレス値
DW3
0x82c
0x2800
BFM 共有メモリの下位アドレス値
データ
0x02800
0xBBB0_FFFF から アドレス範囲 0x02800Æ0x2820 の BFM 共有メモリの
のインクリメント データ内容
5–28
PCI Express Compiler Version 6.1
PCI Express コンパイラ・ユーザガイド
Altera Corporation
2006 年 12 月
テストベンチおよび デザイン例
表 5–13. ライト・ディスクリプタ 2
ライト・ディスクリプタ 2
BFM 共有メモリ内の
オフセット
値
説明
DW0
0x830
96
DW1
0x834
0
エンドポイント・アドレス値
DW2
0x838
0
BFM 共有メモリの上位アドレス値
DW3
0x83c
0x04800
BFM 共有メモリの下位アドレス値
データ
0x04800
0xCCC0_FFFFから アドレス範囲 0x04800Æ0x4860 の BFM 共有メモリ
のインクリメント のデータ内容
DWORD およびコントロール・ビットの転送長
(表 5–7 で説明)
2. チェイニング DMA ディスクリプタ・ヘッダをセットアップし、EP メ
モリから BFM 共有メモリへのデータ転送を開始します。これは、以
下の 4 つの DWORD を DMA ライト・レジスタ・モジュールに書き
込むdma_set_headerプロシージャの呼び出しによって行われます。
表 5–14. DMA ライトのディスクリプタ・ヘッダ
DMA ライトのディスクリプタ・ヘッダ
EP メモリ内の
オフセット
値
説明
DW0
0x0
3
DW1
0x4
0
BFM 共有メモリの上位アドレス値
DW2
0x8
0x800
BFM 共有メモリの下位アドレス値
DW3
0xc
2
最後に書き込まれたディスクリプタ
ディスクリプタおよびコントロール・ビットの数(5–20ページの表 5–5
で説明)
ディスクリプタ・ヘッダの最後の DWARD(DW3)を書き込んだ後、
DMA ライトはそれに続く 3 つのデータ転送を開始します。
3. DMA ライト・エンジンが完了した DMA 数の値を更新する BFM 共
有メモリ位置 0x80c をポーリングすることによって、DMA ライトが
完了するのを待機します。これは rcmem_poll プロシージャの呼び
出しによって行われます。
Altera Corporation
2006 年 12 月
PCI Express Compiler Version 6.1
5–29
PCI Express コンパイラ・ユーザガイド
テスト・ ドライバ・モジュール
DMA リード・サイクル
DMA リードに使用される dma_rd_test プロシージャは、以下の 3 つ
のステップを使用します。
1. BFM 共有メモリのコンフィギュレーション。これは、以下に示す
内 容 の 3 つ の デ ィ ス ク リ プ タ・テ ー ブ ル を 設 定 す る
dma_set_rd_desc_dataプロシージャの呼び出しによって行われ
ます。
2. チェイニング DMA ディスクリプタ・ヘッダをセットアップし、EP
メモリから BFM 共有メモリへのデータ転送を開始します。これは、
以下の 4 つの DWORD を DMA ライト・レジスタ・モジュールに書
き込むdma_set_headerプロシージャの呼び出しによって行われま
す。
ディスクリプタ・ヘッダの最後の DWARD(DW3)を書き込んだ後、
DMA ライトはそれに続く 3 つのデータ転送を開始します。
3. DMA ライト・エンジンが完了した DMA 数の値を更新する BFM 共
有メモリ位置 0x90c をポーリングすることによって、DMA ライトが
完了するのを待機します。これは rcmem_poll プロシージャの呼び
出しによって行われます。
表 5–15. リード・ディスクリプタ 0
a.
リード・ディスクリプタ 0
BFM 共有メモリ内の
オフセット
値
説明
DW0
0x910
64
DW1
0x914
0
エンドポイント・アドレス値
DW2
0x918
0
BFM 共有メモリの上位アドレス値
DW3
0x91c
0x8900
BFM 共有メモリの下位アドレス値
データ
0x8900
0xAAA0_FFFFから アドレス範囲 0x8900Æ0x8940 の BFM 共有メモリ
のインクリメント のデータ内容
DWORD およびコントロール・ビットの転送長
(5–23 ページの表 5–10 で説明)
5–30
PCI Express Compiler Version 6.1
PCI Express コンパイラ・ユーザガイド
Altera Corporation
2006 年 12 月
テストベンチおよび デザイン例
表 5–16. リード・ディスクリプタ 1
リード・ディスクリプタ 1
BFM 共有メモリ内の
オフセット
値
説明
DW0
0x920
32
DW1
0x924
0
エンドポイント・アドレス値
DWORD およびコントロール・ビットの転送長
(5–23 ページの表 5–10 で説明)
DW2
0x928
10
BFM 共有メモリの上位アドレス値
DW3
0x92c
0x10900
BFM 共有メモリの下位アドレス値
データ
0x10900
0xBBB0_FFFF から アドレス範囲 0x10900Æ0x10920 の BFM 共有メモ
のインクリメント リのデータ内容
表 5–17. リード・ディスクリプタ 2
リード・ディスクリプタ 2
BFM 共有メモリ内の
オフセット
(BRC、ベース BFM 共有
メモリ・アドレス)
値
説明
DW0
0x930
96
DW1
0x934
0
エンドポイント・アドレス値
DW2
0x938
0
BFM 共有メモリの上位アドレス値
DW3
0x93c
0x20900
BFM 共有メモリの下位アドレス値
データ
0x20900
0xCCC0_FFFFから アドレス範囲 0x20900Æ0x20960 の BFM 共有メモ
のインクリメント リのデータ内容
Altera Corporation
2006 年 12 月
DWORD およびコントロール・ビットの転送長
(5–23 ページの表 5–10 で説明)
PCI Express Compiler Version 6.1
5–31
PCI Express コンパイラ・ユーザガイド
ルート・ ポート BFM
ルート・
ポート BFM
基本ルート・ポート BFM は、PCI Express リンクに発行されるトランザ
クション・リクエストのための VHDL プロシージャまたは Verilog HDL
タスクに基づくインタフェースを提供します。また、ルート・ポート
BFMもPCI Expressリンクから受け取ったリクエストも処理します。ルー
ト・ポート BFM のハイ・レベル・ビューについては、図 5-4 を参照して
ください。
図 5-4. ルート・ポート BFM のハイ・レベル・ビュー
Root Port BFM
BFM Shared Memory
(altpcietb_bfm_shmem)
BFM Read/Write Shared
Request Procedures
(altpcietb_bfm_rdwr)
BFM Configuration
Procedures
(altpcietb_bfm_configure)
BFM Log Interface
(altpcietb_bfm_log)
BFM Request Interface
(altpcietb_bfm_req_intf)
Root Port RTL Model (altpcietb_bfm_rp_top_x8_pipen1b)
VC0 Interface
(altpcietb_bfm_vcintf)
IP Functional Simulation
Model of the Root
Port Interface
(altpcietb_bfm_rpvar_64b_x8_pipen1b)
VC1 Interface
(altpcietb_bfm_vcintf)
VC2 Interface
(altpcietb_bfm_vcintf)
VC3 Interface
(altpcietb_bfm_vcintf)
ルート・ポート BFM は、以下の主要なコンポーネントで構成されてい
ます。
■
BFM 共有メモリ(altpcietb_bfm_shmem VHDL パッケージまたは
Verilog HDL インクルード・ファイル)— ルート・ポート BFM は、
以下の用途に使用される BFM メモリに基づきます。
●
PCI Express リンクからのすべてのコンプリーションで受信し
たデータの保存
●
PCI Express リンクから受け取ったすべてのライト・トランザク
ションで受信したデータの保存
5–32
PCI Express Compiler Version 6.1
PCI Express コンパイラ・ユーザガイド
Altera Corporation
2006 年 12 月
テストベンチおよび デザイン例
●
PCI Express リンクから受け取ったリード・トランザクションに
応答するすべてのコンプリーションに対するデータの供給。
●
PCI Express リンクに発行される大部分のライト・トランザク
ションに対するデータの供給。唯一の例外は、呼び出しで渡さ
れるライト・データの 4 バイト・フィールドを持つ特定の BFM
ライト・プロシージャです。
●
エンドポイントの BAR にプログラムされたサイズと値を含む
データ構造の保存
プロシージャ・セットは読み出し、書き込み、埋め込みに提供され、
BFM ドライバからの共有メモリをチェックします。これらのプロ
シージャについて詳しくは、5–52 ページの「BFM 共有メモリ・アク
セス・プロシージャ」を参照してください。
■
BFM リ ー ド / ラ イ ト 要 求 プ ロ シ ー ジ ャ / フ ァ ン ク シ ョ ン
(altpcietb_bfm_rdwr VHDL パッケージまたは Verilog HDL インク
ルード・ファイル)— このパッケージは PCI Express の読み出しおよ
び書き込みリクエストを呼び出す基本的な BFM プロシージャを提供
します。これらのプロシージャについて詳しくは、5–48 ページの
「BFM リード / ライト要求プロシージャ」を参照してください。
■
BFM コンフィギュレーション・プロシージャ / ファンクション
(altpcietb_bfm_configure VHDL パッケージまたは Verilog HDL イ
ンクルード・ファイル)— これらのプロシージャおよびファンクショ
ンは、PCI Express リンクおよびエンドポイント・コンフィギュレー
ション・スペース・レジスタのコンフィギュレーションを要求する
BFM 呼び出しを提供します。これらのプロシージャおよびファンク
ションについて詳しくは、5–50 ページの「BFM コンフィギュレー
ション・プロシージャ」を参照してください。
■
Altera Corporation
2006 年 12 月
BFM ログ・インタフェース(altpcietb_bfm_log VHDL パッケージま
たは Verilog HDL インクルード・ファイル)— BFM ログ・インタ
フェースは一般的な書式のメッセージを、シミュレータ標準出力お
よびログ・ファイル(オプション)に書き込むルーチンを提供しま
す。また、エラー時にシミュレーションを停止するコントロールも
提供します。これらのプロシージャについて詳しくは、5–56 ページ
の「BFM ログおよびメッセージ・プロシージャ」を参照してください。
PCI Express Compiler Version 6.1
5–33
PCI Express コンパイラ・ユーザガイド
ルート・ ポート BFM
■
BFM リクエスト・インタフェース(altpcietb_bfm_req_intf VHDL
パッケージまたは Verilog HDL インクルード・ファイル)— このイ
ン タ フ ェ ー ス は、altpcietb_bfm_rdwr プ ロ シ ー ジ ャ と
altpcietb_bfm_configureプロシージャとルート・ポートRTLモ
デルの間にロー・レベル・インタフェースを提供します。このイン
タフェースは、エンドポイントの BAR レジスタにプログラムされた
サイズと値を保有する書き込み保護されたデータ構造、および内部
BFM 管理に使用されるその他のクリティカル・データを保存します。
エンドポイント・アプリケーションをテストするためには、これら
のファイルを直接アクセスする必要はありません。
■
ル ー ト・ポ ー ト RTL モ デ ル(altpcietb_bfm_rp_top_x8_pipen1b
VHDL エントリまたは Verilog HDL モジュール)— これは、モデル
の RTL (Register Transfer Level) 部分です。上記のモジュールからの
要求を取り込み、それらを RTL レベルで処理して、PCI Express リ
ンクにインタフェースします。エンドポイント・アプリケーション
をテストするためには、このモジュールに直接アクセスして適合さ
せる必要はありません。
■
VC0:3 インタフェース(altpcietb_bfm_vc_intf)— これらのインタ
フェース・モジュールは、ルート・ポート・インタフェース・モデ
ル上で VC 固有のインタフェースを処理します。BFM リクエスト・
インタフェースからのリクエストを取り込み、必要な PCI Express ト
ランザクションを生成します。これらは PCI Express リンクから受け
取ったコンプリーションを処理し、リクエストが完了したら BFM リ
クエスト・インタフェースに通知します。さらに、PCI Express リン
クから受け取ったすべてのリクエストを処理し、要求されるコンプ
リーションが生成される前に、共有メモリからのデータを保存また
はフェッチします。
■
ルート・ポート・インタフェース・モデル(altpcietb_bfm_rpvar_64b_
x8_pipen1b)— これはルート・ポート動作をサポートするため特別
に変更された MegaCore ファンクションのバージョンの IP 機能シ
ミュレーション・モデルです。このモデルのアプリケーション・レ
イヤ・インタフェースは、エンドポイント・モードに使用される
MegaCore ファンクションのアプリケーション・レイヤ・インタ
フェースと非常によく似ています。
BFM 用のすべてのファイルは、MegaWizard インタフェースによって
testbench/< バリエーション名 > ディレクトリに生成されます。
5–34
PCI Express Compiler Version 6.1
PCI Express コンパイラ・ユーザガイド
Altera Corporation
2006 年 12 月
テストベンチおよび デザイン例
BFM メモリ・マップ
BFM 共有メモリは 2MB のサイズにコンフィギュレーションされます。
BFM 共有メモリは、I/O 領域の最初の 2MB にマップされており、また
最初の 2MB のメモリ領域にもなっています。エンドポイント・アプリ
ケーションがこの範囲で I/O またはメモリ・トランザクションを生成す
ると、BFM は共有メモリを読み出しまたは書き込みます。
コンフィギュレーション・スペース・バスおよびデバイス
の番号付与
ルート・ポート・インタフェースは、内部バス番号 0 上でデバイス番号
0 が割り当てられています。
エンドポイントには、ebfm_cfg_rp_ep プロシージャの呼び出しを通
じて、任意のバス番号(0 以上)上に任意のデバイス番号を割り当てる
ことができます。指定されたバス番号は、ルート・ポート・コンフィギュ
レーション領域でセカンダリ・バスになるように割り当てられます。
ルート・ポートおよびエンド・ポイントのコンフィギュレー
ション
エンドポイントにトランザクションを発行する前に、ルート・ポートお
よびエンドポイント・コンフィギュレーション・スペース・レジスタを
コンフィギュレーションしなければなりません。これらのレジスタをコ
ンフィギュレーションするには、altpcierd_bfm_configure の一部であ
る ebfm_cfg_rp_ep プロシージャを呼び出します。
コンフィギュレーション・プロシージャおよびファンクションは、
VHDL パッケージ・ファイル altpcierd_bfm_configure.vhd、ま
たは altpcierd_bfm_configure_common.v を使用する Verilog
HDL インクルード・ファイル altpcierd_bfm_configure.v にあり
ます。
ebfm_cfg_rp_ep は、以下のステップを実行して、コンフィギュレー
ション領域を初期化します。
1. ルート・ポート・コンフィギュレーション領域を設定して、ルート・
ポートがPCI Expressリンク上でトランザクションを送信できるよう
にします。
2. ルート・ポートおよびエンドポイント PCI Express 対応デバイス・コ
ントロール・レジスタを、以下のように設定します。
Altera Corporation
2006 年 12 月
PCI Express Compiler Version 6.1
5–35
PCI Express コンパイラ・ユーザガイド
ルート・ ポート BFM
a.
ル ー ト・ポ ー ト お よ び エ ン ド ポ イ ン ト の 両 方 で、Error
Reporting をディセーブルにします。BFM にはエラー処理機
能はありません。
b.
ル ー ト・ポ ー トおよびエン ドポイントの両方で、Relaxed
Ordering をイネーブルにします。
c.
エンドポイントで可能な場合は、エンドポイントの Extended
Tags をイネーブルにします。
d.
ル ー ト・ポ ー ト と エ ン ド ポ イ ン ト の 両 方 で、Phantom
Functions、Aux Power PM、および No Snoop をディセーブル
にします。
e.
ルート・ポートは最大ペイロード・サイズをサポートしている
ため、Max Payload Size に、エンドポイントがサポートする
最大値を設定します。
f.
エンドポイント・デザイン例は、読み出しを必要なだけ多くの
コンプリーション数に分割することをサポートしているため、
ルート・ポート Max Read Request Size を 4KB に設定します。
g.
ルート・ポートは読み出しリクエストを複数のコンプリーショ
ンに分割することをサポートしていないため、エンドポイント
Max Read Request Size を Max Payload Size に設定しま
す。
3. すべてのエンドポイント BAR レジスタに値を割り当てます。BAR ア
ドレスは、以下に概説するアルゴリズムによって割り当てられます。
a.
I/O BAR には、I/O 領域内の BFM 共有メモリの終了アドレス
のすぐ上から開始し、必要に応じて 32 ビット I/O 領域全体に
わたって継続する、最小値から最大値までのアドレスが割り当
てられます。
b.
32 ビット・プリフェッチ不能メモリ BAR には、メモリ領域内
の BFM 共有メモリの終了アドレスのすぐ上から開始し、必要
に応じて 32 ビット・メモリ領域全体にわたって継続する、最小
値から最大値までのアドレスが割り当てられます。
c.
32 ビットのプリフェッチ可能なメモリ BAR および 64 ビットの
プ リ フ ェ ッ チ 可 能 な メ モ リ BAR の 割 り 当 て は、
ebfm_cfg_rp_ep への addr_map_4GB_limit 入力の値に基
づきます。addr_map_4GB_limit のデフォルト値は、0 です。
5–36
PCI Express Compiler Version 6.1
PCI Express コンパイラ・ユーザガイド
Altera Corporation
2006 年 12 月
テストベンチおよび デザイン例
ebfm_cfg_rp_epへのaddr_map_4GB_limit入力が0に設定
されている場合、32 ビットのプリフェッチ可能なメモリ BAR
には、32 ビット・メモリ領域の最大アドレスから開始し、必要
に応じて最後の 32 ビットのプリフェッチ不能な BAR の終了ア
ドレスまで継続する、最大値から最小値までのアドレスが割り
当てられます。
ただし、addr_map_4GB_limit 入力が 1 に設定されている場
合、アドレス・マップは 4GB に制限され、32 ビットおよび 64
ビットのプリフェッチ可能なメモリ BAR には、32 ビット・メ
モリ領域の最大アドレスから開始し、必要に応じて最後の 32
ビットのプリフェッチ不能の BAR の最小アドレスまで継続す
る、最大値から最小値までのアドレスが割り当てられます。
d.
addr_map_4GB_limit の ebfm_cfg_rp_ep への入力が 0 に
設定されている場合、64 ビットのプリフェッチ可能なメモリ
BAR には、4GB のアドレスから開始し、64 ビットのメモリ領
域全体にわたって、4GB の制限より上位アドレス方向にメモリ
を割り当てながら、最小値から最大値までのアドレスが割り当
てられます。
ebfm_cfg_rp_epへのaddr_map_4GB_limit入力が1に設定
されている場合、32 ビットおよび 64 ビットのプリフェッチ可
能なメモリ BAR には、4GB のアドレスから開始し、4GB アド
レスの下位方向に最後の 32 ビットのプリフェッチ不能な BAR
の終了アドレスまで、必要に応じて最大値から最小値までのア
ドレスが割り当てられます。
上記のアルゴリズムでは、いくつかの非常に大きな(1GB 以上)の
32 ビット BAR があるときには、常にすべての BAR に値を割り当て
られるとは限りません。すべての BAR にアドレスを割り当てること
は可能ですが、これらのアドレスを効果的に割り当てるには、より
複雑なアルゴリズムが必要です。ただし、このようなコンフィギュ
レーションが実際のシステムで役立つ可能性はほとんどありませ
ん。プロシージャで BAR を割り当てることができない場合、エラー・
メッセージが表示され、シミュレーションが停止します。
4. 上記の BAR 割り当てに基づき、有効な BAR アドレス範囲をカバー
するためにルート・ポート・コンフィギュレーション・スペース・ア
ドレス・ウィンドウが割り当てられます。
5. エンドポイント PCI コントロール・レジスタは、マスタ・トランザ
クション、メモリ・アドレス・デコーディング、および I/O アドレ
ス・デコーディングをイネーブルにするよう設定されます。
Altera Corporation
2006 年 12 月
PCI Express Compiler Version 6.1
5–37
PCI Express コンパイラ・ユーザガイド
ルート・ ポート BFM
ebfm_cfg_rp_epプロシージャは、すべてのエンドポイントBARのサイ
ズと割り当てアドレスをリストする BFM 共有メモリ内の bar_table
データ構造もセットアップします。この BFM 共有メモリの領域は書き
込み保護されており、この領域にユーザが書き込みアクセスを行うと致
命的なシミュレーション・エラーが発生します。このデータ構造は、後
続の BFM プロシージャ・コールによって使用され、BAR からの特定の
オフセットへの読み出しおよび書き込みリクエストを生成します。
コンフィギュレーション・ルーチンは、バーチャル・チャネル機能また
はアドバンスド・エラー・レポート機能などの高度な PCI Expresss 機能
はコンフィギュレーションしません。
altpcietb_bfm_configure の ebfm_cfg_rp_ep プロシージャの他に、
altpcietb_bfm_rdwr VHDL パッケージまたは Verilog HDL インクルー
ド・ファイルには、エンドポイント・コンフィギュレーション・スペー
ス・レジスタを直接読み書きするルーチンが収められています。
アプリケーション・レイヤへのリード&ライト・トランザ
クションの発行
リードおよびライト・トランザクションは、altpcietb_bfm_rdwr の
ebfm_bar プロシージャの 1 つを呼び出すことによって、エンドポイン
ト・アプリケーション・レイヤに発行されます。以下にリストするプロ
シ ー ジ ャ と フ ァ ン ク シ ョ ン は、VHDL パ ッ ケ ー ジ・フ ァ イ ル
altpcietb_bfm_rdwr.vhd または Verilog HDL インクルード・ファイル
altpcietb_bfm_rdwr.v に収められています。使用可能なプロシージャお
よびファンクションの完全なリストは、以下のとおりです。
■
ebfm_barwr — BFM 共有メモリからのデータを特定のエンドポイ
ント BAR からのオフセットに書き込みます。このプロシージャは、
送信のために VC インタフェース・モジュールにリクエストが渡さ
れるとすぐに戻ります。
■
ebfm_barwr_imm — 最大 4 バイトの即値データ(プロシージャ・コー
ルに渡される)を特定のエンドポイント BAR からのオフセットに書
き込みます。このプロシージャは、送信のために VC インタフェー
ス・モジュールにリクエストが渡されるとすぐに戻ります。
■
ebfm_barrd_wait — データを特定のエンドポイント BAR のオフ
セットから読み出し、BFM 共有メモリに保存します。このプロシー
ジャ・ブロックは、コンプリーション・データが返されるのを待っ
てから呼び出し側にコントロールを返します。
5–38
PCI Express Compiler Version 6.1
PCI Express コンパイラ・ユーザガイド
Altera Corporation
2006 年 12 月
テストベンチおよび デザイン例
■
ebfm_barrd_nowt — 特定のエンドポイントBARのオフセットから
データを読み出し、それを BFM 共有メモリに保存します。このプロ
シージャは、送信のために VC インタフェース・モジュールにリク
エストが渡されるとすぐに戻ります。これにより、後に続く読み出
しをすぐに発行できます。
これらのルーチンは、BAR 番号をパラメータとして取り込んで、メモリ
領 域 お よ び ebfm_cfg_rp_ep プロシージャでセットアップした
bar_table データ構造の BFM 共有メモリ・アドレスにアクセスします
(5–35 ページの「ルート・ポートおよびエンド・ポイントのコンフィギュ
レーション」参照)。これらのパラメータを使用すると、特定の BAR か
らのオフセットにアクセスする BFM テスト・ドライバ・ルーチンが簡
素化され、特定の BAR に割り当てられるアドレスを計算する必要がな
くなります。
ルート・ポート BFM は、エンドポイント I/O 領域 BAR へのアクセスを
サポートしません。
これらのプロシージャ・コールについて詳しくは、5–48 ページの「BFM
リード / ライト要求プロシージャ」の項を参照してください。
BFM
プロシージャ
およびファン
クション
この項では、BFM ドライバがエンドポイント・アプリケーション・テス
トをドライブするために使用するすべての BFM プロシージャ、ファン
クション、およびタスクへのインタフェースについて説明します。
最後の項では、チェイニング DMA デザイン例に固有のプロシー
ジャについて説明します。
この項では、VHDL プロシージャおよびファンクションと Verilog HDL
ファンクションおよびタスクについて説明します。VHDL プロシージャ
の大部分は Verilog HDL タスクとして実装されますが、Verilog HDL タ
スクではなく Verilog ファンクションとして実装されるものもあり、こ
れらのファンクションは他の Verilog HDL ファンクションによって呼び
出すことができます。明示的に指定していない限り、以下の項に示すプ
ロシージャもすべて Verilog HDL タスクとして実装されます。
Verilog HDL ユーザは、通常 VHDL パッケージでは隠されてい
るその他のプロシージャによって呼び出されるいくつかの基礎的
なプロシージャおよびファンクションを表示することができます。
これら非表示のプロシージャは、ユーザが呼び出すものではあり
ません。
Altera Corporation
2006 年 12 月
PCI Express Compiler Version 6.1
5–39
PCI Express コンパイラ・ユーザガイド
BFM プロシージャおよびファンクション
以 下 の プ ロ シ ー ジ ャ お よびファンクションは、VHDL パッケージ
altpcietb_bfm_rdwr.vhd または Verilog HDL インクルード・ファイル
altpcietb_bfm_rdwr.v に収められています。これらのプロシージャおよ
びファンクションは、PCI Express リンク上のメモリおよびコンフィギュ
レーション・トランザクションの発行をサポートします。
すべての VHDL 引数は、特に記述がない限りサブタイプ NATURAL で
入力専用です。すべての Verilog HDL 引数は、特に記述がない限り
INTEGER 型で入力専用です。
BFM リードおよびライト・プロシージャ
この項では、BFM 共有メモリ、エンドポイント BAR、および指定され
たコンフィギュレーション・レジスタのデータを読み書きするために使
用するプロシージャについて説明します。
ebfm_barwr プロシージャ
ebfm_barwr プロシージャは、BFM 共有メモリのデータ・ブロックを指
定されたエンドポイント BAR からのオフセットに書き込みます。長さ
はコンフィギュレーションされた Maximum Payload Size より長くな
る場合があるため、プロシージャは必要に応じてリクエストを複数のト
ランザクションに分割します。このルーチンは、最後のトランザクショ
ンが VC インタフェース・モジュールに受け入れられるとすぐに戻りま
す。
表 5–18. ebfm_barwr プロシージャ
構文
ebfm_barwr(bar_table, bar_num, pcie_offset, lcladdr, byte_len, tclass)
引数
bar_table
BFM 共有メモリのエンドポイント bar_table 構造のアドレス
bar_num
PCI Express アドレスを決定するために pcie_offset で使用される BAR の番号
pcie_offset
BAR ベースからのアドレス・オフセット
lcladdr
書き込まれるデータの BFM 共有メモリ・アドレス
byte_len
書き込まれるデータの長さ(バイト数)。BAR 領域または BFM 共有メモリ内の残
りの最小バイト数は 1 からになります。
tclass
PCI Express トランザクションに使用するトラフィック・クラス
5–40
PCI Express Compiler Version 6.1
PCI Express コンパイラ・ユーザガイド
Altera Corporation
2006 年 12 月
テストベンチおよび デザイン例
ebfm_barwr_imm プロシージャ
ebfm_barwr_immプロシージャは、指定されたエンドポイントBARから
のオフセットに最大 4 バイトのデータを書き込みます。
表 5–19. ebfm_barwr_imm プロシージャ
構文
ebfm_barwr_imm(bar_table, bar_num, pcie_offset, imm_data, byte_len,
tclass)
引数
bar_table
BFM 共有メモリのエンドポイント bar_table 構造のアドレス
bar_num
PCI Express アドレスを決定するために pcie_offset で使用される BAR の
番号
pcie_offset
BAR ベースからのアドレス・オフセット
imm_data
書き込まれるデータ。
VHDL では、この引数は std_logic_vector(31 downto 0) です。
Verilog HDL では、この引数は reg [31:0] です。
両言語とも、書き込まれるビット数は以下のように長さによって異なります。
長さ
4
3
2
1
書き込まれるビット数
31 downto 0
23 downto 0
15 downto 0
7 downto 0
byte_len
書き込まれるデータの長さ(バイト数)
。長さは最大 4 バイトです。
tclass
PCI Express トランザクションに使用するトラフィック・クラス
Altera Corporation
2006 年 12 月
PCI Express Compiler Version 6.1
5–41
PCI Express コンパイラ・ユーザガイド
BFM プロシージャおよびファンクション
ebfm_barrd_wait プロシージャ
ebfm_barrd_wait プロシージャは、指定したエンドポイント BAR のオ
フセットからデータ・ブロックを読み出して、BFM 共有メモリに保存し
ます。長さはコンフィギュレーションされた最大読み出し要求サイズよ
り長くなる場合があるため、プロシージャは必要に応じて要求を複数の
トランザクションに分割します。このプロシージャは、すべてのコンプ
リーション・データが返され共有メモリに置かれるまで待機します。
表 5–20. ebfm_barrd_wait プロシージャ
構文
ebfm_barrd_wait(bar_table, bar_num, pcie_offset, lcladdr, byte_len,
tclass)
引数
bar_table
BFM 共有メモリのエンドポイント bar_table 構造のアドレス
bar_num
PCI Express アドレスを決定するために pcie_offset で使用される BAR
の番号
pcie_offset
BAR ベースからのアドレス・オフセット
lcladdr
リード・データが保存される BFM 共有メモリ・アドレス
byte_len
読み出されるデータの長さ(バイト数)。BAR 領域または BFM 共有メモリ
内の残りの最小バイト数は 1 からになります。
tclass
PCI Express トランザクションに使用するトラフィック・クラス
5–42
PCI Express Compiler Version 6.1
PCI Express コンパイラ・ユーザガイド
Altera Corporation
2006 年 12 月
テストベンチおよび デザイン例
ebfm_barrd_nowt プロシージャ
ebfm_barrd_nowt プロシージャは、指定したエンドポイント BAR のオ
フセットからデータ・ブロックを読み出して、BFM 共有メモリに保存し
ます。長さはコンフィギュレーションされた最大読み出し要求サイズよ
り長くなる場合があるため、プロシージャは必要に応じて要求を複数の
トランザクションに分割します。このルーチンは、最後のリード・トラ
ンザクションが VC インタフェース・モジュールに受け入れられるとす
ぐに戻ります。これにより、後に続く読み出しをすぐに発行できます。
表 5–21. ebfm_barrd_nowt プロシージャ
構文
ebfm_barrd_nowt(bar_table, bar_num, pcie_offset, lcladdr, byte_len,
tclass)
引数
bar_table
BFM 共有メモリのエンドポイント bar_table 構造のアドレス
bar_num
PCI Express アドレスを決定するために pcie_offset で使用される BAR
の番号
pcie_offset
BAR ベースからのアドレス・オフセット
lcladdr
リード・データが保存される BFM 共有メモリ・アドレス
byte_len
読み出されるデータの長さ(バイト数)
。BAR 領域または BFM 共有メモリ
内の残りの最小バイト数は 1 からになります。
tclass
PCI Express トランザクションに使用するトラフィック・クラス
Altera Corporation
2006 年 12 月
PCI Express Compiler Version 6.1
5–43
PCI Express コンパイラ・ユーザガイド
BFM プロシージャおよびファンクション
ebfm_cfgwr_imm_wait プロシージャ
ebfm_cfgwr_imm_wait プロシージャは、指定されたコンフィギュレー
ション・レジスタに最大 4 バイトのデータを書き込みます。このプロシー
ジャは書き込みコンプリーションが返されるまで待機します。
表 5–22. ebfm_cfgwr_imm_wait プロシージャ
構文
ebfm_cfgwr_imm_wait(bus_num, dev_num, fnc_num, imm_regb_ad, regb_ln,
imm_data, compl_status)
引数
bus_num
ターゲット・デバイスの PCI Express バス番号
dev_num
ターゲット・デバイスの PCI Express デバイス番号
fnc_num
アクセスするターゲット・デバイスのファンクション番号
regb_ad
書き込まれるレジスタのバイト固有アドレス
regb_ln
書き込まれるデータの長さ(バイト数)
。長さは最大 4 バイトです。regb_ln
および regb_ad 引数は、DWORD 境界を越えることはできません。
imm_data
書き込まれるデータ。
VHDL では、この引数は std_logic_vector(31 downto 0) です。
Verilog HDL では、この引数は reg [31:0] です。
両言語とも、書き込まれるビット数は長さによって異なります。
長さ
4
3
2
1
compl_status
書き込まれるビット数
31 downto 0
23 downto 0
5 downto 0
7 downto 0
VHDL では、この引数は std_logic_vector(2 downto 0) であり、プロ
シージャによって戻り時に設定されます。
Verilog HDL では、この引数は re [2:0] です。
両言語とも、この引数は PCI Express 仕様で指定されるコンプリーション・
ステータスです。
compl_status
000
001
010
100
定義
SC — 正常完了
UR — サポートされていない要求
CRS — コンフィギュレーション要求リトライ・ス
テータス
CA — コンプリータ・アボート
5–44
PCI Express Compiler Version 6.1
PCI Express コンパイラ・ユーザガイド
Altera Corporation
2006 年 12 月
テストベンチおよび デザイン例
ebfm_cfgwr_imm_nowt プロシージャ
ebfm_cfgwr_imm_nowt プロシージャは、指定されたコンフィギュレー
ション・レジスタに最大 4 バイトのデータを書き込みます。このプロシー
ジャは、VC インタフェース・モジュールがトランザクションを受け入
れるとすぐに戻るため、その間に他の書き込みの発行ができます。この
プロシージャは、正常なコンプリーション・ステータスが期待できる場
合にのみ使用してください。
表 5–23. ebfm_cfgwr_imm_nowt プロシージャ
構文
ebfm_cfgwr_imm_nowt(bus_num, dev_num, fnc_num, imm_regb_adr, regb_len,
imm_data)
引数
bus_num
ターゲット・デバイスの PCI Express バス番号
dev_num
ターゲット・デバイスの PCI Express デバイス番号
fnc_num
アクセスするターゲット・デバイスのファンクション番号
regb_ad
書き込まれるレジスタのバイト固有アドレス
regb_ln
書き込まれるデータの長さ(バイト数)
。長さは最大 4 バイトで、 regb_ln および
regb_ad 引数は、DWORD 境界を越えることはできません。
imm_data
書き込まれるデータ
VHDL では、この引数は std_logic_vector(31 downto 0) です。
Verilog HDL では、この引数は reg [31:0] です。
両言語とも、書き込まれるビットは長さによって異なります。
長さ
4
3
2
1
Altera Corporation
2006 年 12 月
書き込まれるビット数
31 downto 0
23 downto 0
5 downto 0
7 downto 0
PCI Express Compiler Version 6.1
5–45
PCI Express コンパイラ・ユーザガイド
BFM プロシージャおよびファンクション
ebfm_cfgrd_wait プロシージャ
ebfm_cfgrd_wait プロシージャは、指定されたコンフィギュレーショ
ン・レジスタから最大 4 バイトのデータ・ブロックを読み出して、BFM
共有メモリに保存します。このプロシージャは、読み出しコンプリーショ
ンが返されるまで待機します。
表 5–24. ebfm_cfgrd_wait プロシージャ
構文
ebfm_cfgrd_wait(bus_num, dev_num, fnc_num, regb_ad, regb_ln, lcladdr,
compl_status)
引数
bus_num
ターゲット・デバイスの PCI Express バス番号
dev_num
ターゲット・デバイスの PCI Express デバイス番号
fnc_num
アクセスするターゲット・デバイスのファンクション番号
regb_ad
書き込まれるレジスタのバイト固有アドレス
regb_ln
読み出されるデータの長さ(バイト数)。長さは最大 4 バイトです。regb_ln
および regb_ad 引数は、DWORD 境界を越えることはできません。
lcladdr
リード・データを格納する BFM 共有メモリ・アドレス
compl_status
コンフィギュレーション・トランザクションのコンプリーション・ステータ
ス。
VHDL では、この引数は std_logic_vector(2 downto 0)であり、プロ
シージャによって戻り時に設定されます。
Verilog HDL では、この引数は reg [2:0] です。
両言語とも、この引数は PCI Express 仕様で指定されるコンプリーション・ス
テータスです。
compl_status
000
001
010
100
定義
SC — 正常完了
UR — サポートされていない要求
CRS — コンフィギュレーション要求リトライ・ス
テータス
CA — コンプリータ・アボート
5–46
PCI Express Compiler Version 6.1
PCI Express コンパイラ・ユーザガイド
Altera Corporation
2006 年 12 月
テストベンチおよび デザイン例
ebfm_cfgrd_nowt プロシージャ
ebfm_cfgrd_nowt プロシージャは、指定されたコンフィギュレーショ
ン・レジスタから最大 4 バイトのデータを読み出し、BFM 共有メモリに
保存します。このプロシージャは、VC インタフェース・モジュールが
トランザクションを受け入れるとすぐに戻るため、その間に他の読み出
しの発行ができます。このプロシージャは、正常なコンプリーション・
ステータスが期待される場合にのみ使用し、後に続くウェイトを伴った
読み出しまたは書き込みを使用して、動作の完了を保証することができ
ます。
表 5–25. ebfm_cfgrd_nowt プロシージャ
構文
ebfm_cfgrd_nowt(bus_num, dev_num, fnc_num, regb_ad, regb_ln, lcladdr)
引数
bus_num
ターゲット・デバイスの PCI Express バス番号
bus_num
ターゲット・デバイスの PCI Express バス番号
dev_num
ターゲット・デバイスの PCI Express デバイス番号
fnc_num
アクセスするターゲット・デバイスのファンクション番号
regb_ad
書き込まれるレジスタのバイト固有アドレス
regb_ln
書き込まれるデータの長さ(バイト数)。長さは最大 4 バイトです。regb_ln およ
び regb_ad 引数は、DWORD 境界を越えることはできません。
lcladdr
リード・データを格納する BFM 共有メモリ・アドレス
BFM パフォーマンス・カウント
この項では性能データにアクセスするための BFM ルーチンについて説
明します。ルート・ポート BFM は、ルート・ポートを通じて送受信す
るパケットのパフォーマンス・カウンタ・セットを保持します。カウン
タは以下のパケットごとに存在します。
■
■
送信されたパケット
ペイロード・データの送信された QWORD(すべてのバイトがイネー
ブルされていなくてもフル QWORD がカウントされます)
■ 受信されたパケット
■ ペイロード・データの受信された QWORD(すべてのバイトがイネー
ブルされていなくてもフル QWORD がカウントされます)
上記のカウンタは、シミュレーションの開始時より継続してカウントさ
れます。プロシージャ ebfm_start_perf_sample は、すべてのカウ
ンタを 0 にリセットします。
Altera Corporation
2006 年 12 月
PCI Express Compiler Version 6.1
5–47
PCI Express コンパイラ・ユーザガイド
BFM プロシージャおよびファンクション
ebfm_disp_perf_sample プロシージャは、これらのカウンタの拡張
バージョンを標準出力に表示します。これらの値はすべてのバーチャル・
チャネルの和として表示されます。また、ebfm_disp_perf_sample
はカウンタを 0 にリセットし、それによって効果的に次の性能サンプル
を開始します。
■
一般に、性能測定ルーチンは性能解析の開始時に ebfm_start_perf_
sample を呼び出します。ebfm_disp_perf_sample は性能解析の
終了時に呼び出すことができます。性能解析全体時間の総数が与え
られます。あるいは、性能をより正確に表示するために、性能解析
ウィンドウ中に ebfm_disp_perf_sample を複数回呼び出すこと
ができます。総合的な性能値は、シミュレータ標準出力の後処理に
よって計算する必要があります。
BFM リード / ライト要求プロシージャ
ebfm_start_perf_sample プロシージャ
このプロシージャはパフォーマンス・カウンタをリセットするだけです。
カウンタが同期的にリセットされるように、プロシージャは次の Root
Port BFM クロック・エッジまで待機します。このルーチンを呼び出す
と、性能サンプリング・ウィンドウが開始されます。
5–48
PCI Express Compiler Version 6.1
PCI Express コンパイラ・ユーザガイド
Altera Corporation
2006 年 12 月
テストベンチおよび デザイン例
ebfm_disp_perf_sample プロシージャ
このプロシージャは標準出力に性能情報を表示します。また、次の Root
Port BFM クロック・エッジでパフォーマンス・カウンタをリセットしま
す。このルーチンを呼び出すと、新しい性能サンプリング・ウィンドウ
が開始されます。あるサンプル・ウィンドウから次のサンプル・ウィン
ドウに移行する間に、パフォーマンス・カウント情報が失われることは
ありません。
以下の図にこのルーチンからの出力例を示します。
図 5-5. ebfm_disp_perf_sample プロシージャからの出力
# INFO:
ns
# INFO:
# INFO:
# INFO:
# INFO:
# INFO:
# INFO:
# INFO:
# INFO:
92850 ns PERF: Sample Duration: 5008
92850
92850
92850
92850
92850
92850
92850
92850
ns
ns
ns
ns
ns
ns
ns
ns
PERF:
PERF:
PERF:
PERF:
PERF:
PERF:
PERF:
PERF:
Tx Packets:
Tx Bytes:
Tx MByte/sec:
Tx Mbit/sec:
Rx Packets:
Rx Bytes:
Rx MByte/sec:
Rx Mbit/sec:
33
8848
1767
14134
34
8832
1764
14109
上記の例はテストベンチの VHDL バージョンから抜粋したものです。
Verilog バージョンのフォーマッティングは多少異なる場合があります。
Altera Corporation
2006 年 12 月
PCI Express Compiler Version 6.1
5–49
PCI Express コンパイラ・ユーザガイド
BFM プロシージャおよびファンクション
表 5–26 に図 5-5 についての情報を示します。
表 5–26. サンプル持続時間および Tx パケットの説明
ラベル
説明
サンプル持続
時間
サンプリング・ウィンドウ開始からの経過時間、 ebfm_start_perf_sample および
ebfm_disp_perf_sample が最後に呼び出された時間。
Tx Packets
サンプル・ウィンドウ中にルート・ポート BFM によって送信されるパケット・ヘッダの総数
Tx Bytes
サンプル・ウィンドウ中にルート・ポート BFM によって送信されるペイロード・データ・
バイトの総数。これは転送される QWORD 数に 8 を乗算した値です。部分 QWORD はパ
ケットが QWORD 境界で開始または終了しないため調整は行われません。
Tx MByte/sec
サンプル・ウィンドウ中に、1 秒あたりに送信されるメガバイト数。これは、 Tx Bytes サ
ンプル持続時間で除算した値です。
Tx Mbit/sec
サンプル・ウィンドウ中に、1 秒あたりに送信されるメガビット数。これは Tx MByte/sec
に 8 を乗算した値です。
Rx Packets
サンプル・ウィンドウ中にルート・ポート BFM によって受信されるパケット・ヘッダの総数
Rx Bytes
サンプル・ウィンドウ中にルート・ポート BFM によって受信されるペイロード・データ・
バイトの総数。これは転送される QWORD 数に 8 を乗算した値です。部分 QWORD はパ
ケットが QWORD 境界で開始または終了しないため調整は行われません。
Rx MByte/sec
サンプル・ウィンドウ中に、1 秒あたりに受信されるメガバイト数。これは Rx Bytes をサ
ンプル持続時間で除算した値です。
Rx Mbit/sec
サンプル・ウィンドウ中に、1 秒あたりに受信されるメガビット数。これは Rx MByte/sec
に 8 を乗算した値です。
BFM コンフィギュレーション・プロシージャ
次のプロシージャは、altpcietb_bfm_configure で使用できます。これ
らのプロシージャは、ルート・ポートとエンドポイントのコンフィギュ
レーション空間レジスタのコンフィギュレーションをサポートします。
すべての VHDL 引数は、特に記述がない限りサブタイプ NATURAL で、
入力専用です。すべての Verilog HDL 引数は、特に記述がない限り
INTEGER 型で入力専用です。
5–50
PCI Express Compiler Version 6.1
PCI Express コンパイラ・ユーザガイド
Altera Corporation
2006 年 12 月
テストベンチおよび デザイン例
ebfm_cfg_rp_ep プロシージャ
ebfm_cfg_rp_ep プロシージャは、ルート・ポートおよびエンドポイン
ト・コンフィギュレーション・スペース・レジスタをコンフィギュレー
ションします。このプロシージャの引数の説明については、表 5–27 を参
照してください。
表 5–27. ebfm_cfg_rp_ep プロシージャ
構文
ebfm_cfg_rp_ep(bar_table, ep_bus_num, ep_dev_num, rp_max_rd_req_size,
display_ep_config, addr_map_4GB_limit)
引数
bar_table
BFM 共有 メモ リのエ ンドポ イン ト bar_table 構 造のア ドレ ス
bar_table 構造には、このルーチンによってデータが投入されます。
ep_bus_num
ターゲット・デバイスの PCI Express バス番号。0 以上の任意の値を付
与できます。ルート・ポートをコンフィギュレーションして、この値
をセカンダリ・バス番号として使用します。
ep_dev_num
ターゲット・デバイスの PCI Express デバイス番号。任意の値を付与
できます。エンドポイントが最初のコンフィギュレーション・トラン
ザクションを受信したとき、この値が自動的に割り当てられます。
rp_max_rd_req_size
ルート・ポートで発行される読み出しのための最大読み出し要求サイ
ズ(バイト数)。この値はエンドポイント・アプリケーション・レイヤ
でサポートされる最大値に設定する必要があります。アプリケーショ
ン・レイヤが Maximum Payload Size の読み出しのみサポートす
る場合は、この値を 0 に設定することができ、読み出し要求サイズは
最大ペイロード・サイズに設定されます。この引数に有効な値は、0、
128、256、512、1024、2048、および 4096 です。
display_ep_config
この引数を 1 に設定すると、エンドポイント・コンフィギュレーショ
ン・スペース・レジスタの多くが初期化後に表示されます。これによ
り、コンフィギュレーション・プロセス中には通常アクセスされない
レジスタの読み出しがいくつか追加されます。
addr_map_4GB_limit
この引数を 1 にすると、シミュレーション・システムのアドレス・マッ
プは 4GB に制限されます。64 ビット BAR は、4GB 制限の下に割り当
てられます。
Altera Corporation
2006 年 12 月
PCI Express Compiler Version 6.1
5–51
PCI Express コンパイラ・ユーザガイド
BFM プロシージャおよびファンクション
eebfm_cfg_decode_bar プロシージャ
ebfm_cfg_decode_bar プロシージャは、指定された BAR に対する
BAR テーブルの情報を解析し、BAR 属性に関する詳細を返します。
表 5–28. ebfm_cfg_decode_bar プロシージャ
構文
ebfm_cfg_decode_bar(bar_table, bar_num, log2_size, is_mem, is_pref,
is_64b)
引数
bar_table
BFM 共有メモリのエンドポイント bar_table 構造のアドレス
bar_num
解析する BAR 番号
log2_size
この引数はプロシージャによって BAR の Log Base 2 サイズに設定されます。BAR
がイネーブルされていない場合は、0 に設定されます。
is_mem
この std_logic 引数はプロシージャによって設定され、BAR がメモリ領域 BAR (1)
または I/O 領域 BAR (0) のいずれであるかを示します。
is_pref
この std_logic 引数はプロシージャによって設定され、BAR がプリフェッチ可
能な BAR (1) またはプリフェッチ不能な BAR (0) のいずれであるかを示します。
is_64b
この std_logic引数はプロシージャによって設定され、BARが64 ビットBAR (1)
または 32 ビット BAR (0) のいずれであるかを示します。これはペアのうち小さい
番号の BAR にのみ 1 に設定されます。
BFM 共有メモリ・アクセス・プロシージャ
以 下 の プ ロ シ ー ジ ャ お よ び フ ァ ン ク シ ョ ン は、VHDL フ ァ イ ル
altpcietb_bfm_shmem.vhd またはテストベンチのトップ・レベルでイン
スタンス化される altpcietb_bfm_shmem_common.v モジュールを使用
する Verilog HDL インクルード・ファイル altpcietb_bfm_shmem.v に
収められています。これらのプロシージャおよびファンクションは、
BFM 共有メモリへのアクセスをサポートします。
すべての VHDL 引数は、特に記述がない限りサブタイプ NATURAL で
入力専用です。すべての Verilog HDL 引数は、特に記述がない限り
INTEGER 型で入力専用です。
5–52
PCI Express Compiler Version 6.1
PCI Express コンパイラ・ユーザガイド
Altera Corporation
2006 年 12 月
テストベンチおよび デザイン例
共有メモリ定数
以下の定数は、BFM 共有メモリ・パッケージで定義されています。これ
らの定数は、shmem_fill および shmem_chk_ok ルーチンでデータ・
パターンを選択します。これらの共有メモリ定数は、すべて VHDL のサ
ブタイプ NATURAL または Verilog HDL の INTEGER 型です。
表 5–29. 定数 :VHDL サブタイプ NATURAL または Verilog HDLINTEGER
定数
説明
SHMEM_FILL_ZEROS
すべて 0 のデータ・パターンを指定します
SHMEM_FILL_BYTE_INC
インクリメント 8 ビット・バイト(0x00、0x01、0x02 など)のデータ・パ
ターンを指定します。
SHMEM_FILL_WORD_INC
インクリメント 16 ビット・ワード(0x0000、0x0001、0x0002 など)のデー
タ・パターンを指定します。
SHMEM_FILL_DWORD_INC
イン ク リメ ン ト 32 ビ ット・ダ ブル・ワ ード(0x00000000、0x00000001、
0x00000002 など)のデータ・パターンを指定します。
SHMEM_FILL_QWORD_INC
イン ク リメ ン ト 64
ビ ット・ク ワッ ド・ワー ド(0x0000000000000000、
0x0000000000000001、0x0000000000000002 など)のデータ・パターンを指定
します。
SHMEM_FILL_ONE
すべて 1 のデータ・パターンを指定します。
shmem_write
shmem_write プロシージャは、データを BFM 共有メモリに書き込みま
す。
表 5–30. shmem_write VHDL プロシージャまたは Verilog HDL タスク
構文
shmem_write(addr, data, leng)
引数
addr
データ書き込みのための BFM 共有メモリ開始アドレス
data
BFM 共有メモリに書き込むデータ
VHDL では、この引数は制約条件が与えられていない std_logic_vector
です。このベクタは leng 長の 8 倍でなければなりません。
Verilog では、このパラメータは 64 ビット・ベクタとして実装されます。
leng は 1 ∼ 8 バイトです。
両言語とも、ビット 7 ∼ 0 は addr で指定される位置に書き込まれ、ビット
15 ∼ 8 は addr+1 で指定される位置に書き込まれる(以下同様)、というよ
うになります。
leng
Altera Corporation
2006 年 12 月
書き込まれるデータの長さ(バイト数)
PCI Express Compiler Version 6.1
5–53
PCI Express コンパイラ・ユーザガイド
BFM プロシージャおよびファンクション
shmem_read ファンクション
shmem_read ファンクションはデータを BFM 共有メモリに読み込みま
す。
表 5–31. shmem_read ファンクション
構文
data:= shmem_read(addr, leng)
引数
addr
データ読み出しのための BFM 共有メモリ開始アドレス
leng
読み出されるデータの長さ(バイト数)
data
BFM 共有メモリから読み出したデータ。
VHDL では、これは制約条件のない std_logic_vector であり、ベクタは leng
長の 8 倍です。
Verilog では、このパラメータは 64 ビット・ベクタとして実装されます。
leng は1∼8バイトです。leng が8バイト未満の場合、返されるデータの対応する最下
位ビットのみ有効です。
戻り値
両言語とも、ビット 7 ∼ 0 は addr で指定される位置から読み込まれ、ビット 15 ∼ 8
は addr+1 で指定される位置から読み込まれる(以下同様)
、というようになります。
shmem_display VHDL プロシージャまたは Verilog HDL ファンク
ション
shmem_display VHDL プロシージャまたは Verilog HDL ファンクショ
ンは、BFM 共有メモリのデータ・ブロックを表示します。
表 5–32. shmem_display VHDL プロシージャまたは Verilog HDL ファンクション
構文
VHDL: shmem_display(addr, leng, word_size, flag_addr, msg_type)
Verilog HDL: dummy_return:=shmem_display(addr, leng, word_size, flag_addr,
msg_type);
引数
addr
データ表示のための BFM 共有メモリ開始アドレス
leng
表示されるデータの長さ(バイト数)
word_size 表示されるワードのサイズ。個別バイトをグループにまとめてワードにします。有効
な値は 1、2、4、および 8 です。
flag_addr このアドレスを含む表示ラインの最後に <== フラグを追加します。特定のデータを
マーキングするのに役立ちます。2**21(BFM 共有メモリのサイズ)以上の値に設定し
てフラグを抑制します。
msg_type
各ラインの先頭に表示するメッセージ・タイプを指定します。メッセージ・タイプに
ついて詳しくは、5–56 ページの「BFM ログおよびメッセージ・プロシージャ」を参照
してください。メッセージ・タイプは、5–58 ページの表 5–35 で定義されている定数
のいずれかでなければなりません。
5–54
PCI Express Compiler Version 6.1
PCI Express コンパイラ・ユーザガイド
Altera Corporation
2006 年 12 月
テストベンチおよび デザイン例
shmem_fill プロシージャ
shmem_fill プロシージャは、BFM 共有メモリのブロックに指定された
データ・パターンを埋め込みます。
表 5–33. shmem_fill プロシージャ
構文
shmem_fill(addr, mode, leng, init)
引数
addr
データ埋め込みのための BFM 共有メモリ開始アドレス
mode
データの埋め込みに使用するデータ・パターン。データ・パターンは、5–53
ページの「共有メモリ定数」で定義されている定数のいずれかでなければなり
ません。
leng
埋め込むデータの長さ(バイト数)長さがインクリメント・データ・パターン
幅の倍数でない場合、最後のデータ・パターンは切り捨てて格納されます。
init
インクリメント・データ・パターン・モードに使用する最初のデータ値
VHDL では、
この引数はタイプ std_logic_vector(63 downto 0) です。
Verilog HDL では、この引数は reg [63:0] です。
両言語とも、必要な最下位ビットは 64 ビットより小さいデータ・パターンに
使用されます。
Altera Corporation
2006 年 12 月
PCI Express Compiler Version 6.1
5–55
PCI Express コンパイラ・ユーザガイド
BFM プロシージャおよびファンクション
shmem_chk_ok ファンクション
shmem_chk_ok ファンクションは、BFM 共有メモリのブロックを指定さ
れたデータ・パターンと照合します。
表 5–34. shmem_chk_ok ファンクション
構文
result:= shmem_chk_ok(addr, mode, leng, init, display_error)
引数
addr
データをチェックするための BFM 共有メモリ開始アドレス
mode
データのチェックに使用するデータ・パターン。データ・パターンは、
5–53 ページの「共有メモリ定数」で定義されている定数のいずれかでな
ければなりません。
leng
チェックするデータの長さ(バイト数)
init
VHDL では、この引数はタイプ std_logic_vector(63 downto 0)
です。
Verilog HDL では、この引数は reg [63:0] です。
両言語とも、必要な最下位ビットは 64 ビットより小さいデータ・パター
ンに使用されます。
display_error この引数を 1 に設定すると、シミュレータ標準出力に比較が一致しない
データが表示されます。
戻り値
Result
Result は VHDL ブール型です。
TRUE — データ・パターンの比較が一致したことを示します。
FALSE — データ・パターンの比較が正常でなかったことを示します。
Verilog HDL では Result は 1 ビットです。
1’b1 — データ・パターンの比較が一致したことを示します。
1’b0 — データ・パターンの比較が一致しなかったことを示します
BFM ログおよびメッセージ・プロシージャ
以下のプロシージャおよびファンクションは、VHDL パッケージ・ファ
イル altpcietb_bfm_log.vhd またはテストベンチのトップ・レベルでイ
ンスタンス化される altpcietb_bfm_log_common.v モジュールを使用す
る Verilog HDL インクルード・ファイル altpcietb_bfm_log.v に収めら
れています。
これらのプロシージャは、一般的な書式でのメッセージの表示、情報メッ
セージの抑制、および特定のメッセージ・タイプでのシミュレーション
の停止をサポートします。
5–56
PCI Express Compiler Version 6.1
PCI Express コンパイラ・ユーザガイド
Altera Corporation
2006 年 12 月
テストベンチおよび デザイン例
ログ定数
以下の定数は、BFM ログ・パッケージで定義されています。これらの定
数は、メッセージ・タイプを定義し、それらの値によりメッセージを表
示するかどうか、また特定のメッセージの後でシミュレーションを停止
するかどうかを決定します。表示される各メッセージには、表 5–35 に示
すメッセージ・タイプに基づく特定のプリフィックスがあります。
特定のメッセージ・タイプの表示を抑制することができます。メッセー
ジ・タイプを表示するかどうかを決定するデフォルト値について詳しく
は、表 5–35 を参照してください。デフォルトのメッセージ表示を変更す
るには、ebfm_log_set_suppressed_msg_mask へのプロシージャ・コー
ルで表示のデフォルト値を修正します。
また、特定のメッセージ・タイプではメッセージが表示されるとシミュ
レーションが停止します。表 5–35 にシミュレーションを停止するかどう
か を 決 定 す る メ ッ セ ー ジ・タ イ プ の デ フ ォ ル ト 値 を 示 し ま す。
ebfm_log_set_stop_on_msg_mask プロシージャで、特定のメッセー
ジのシミュレーションを停止するかどうかを指定できます。
これらのログ・メッセージ定数はすべて VHDL サブタイプ NATURAL
または Verilog HDL の INTEGER です。
ebfm_display VHDL プロシージャまたは Verilog HDL ファンク
ション
ebfm_display プロシージャまたはファンクションは、シミュレーショ
ン 標 準 出 力 に 指 定 さ れ た タ イ プ の メ ッ セ ー ジ を 表 示 し、
ebfm_log_open() が呼び出された場合はログ・ファイルにも出力しま
す。
以下の各プロシージャが呼び出されるごとに、各プロシージャのメッ
セージ・タイプおよびビット・マスクの値のデフォルト設定に応じて、
メッセージの抑制またはシミュレーションの停止あるいはその両方を実
行できます。表示するメッセージおよび特定のメッセージのシミュレー
ションを停止するかどうかに基づき、これらのプロシージャのいずれか
または両方を呼び出すことができます。
Altera Corporation
2006 年 12 月
■
ebfm_log_set_suppressed_msg_mask()を呼び出すと、ビット・
マスクの値に基づいてメッセージの表示が抑制される場合がありま
す。
■
ebfm_log_set_stop_on_msg_mask() を呼び出すと、ビット・マ
スクの値に基づいてメッセージが表示された後でシミュレーション
が停止する場合があります。
PCI Express Compiler Version 6.1
5–57
PCI Express コンパイラ・ユーザガイド
BFM プロシージャおよびファンクション
表 5–35. VHDL 定数を使用したログ・メッセージ - サブタイプ NATURAL(1 / 2)
定数
(メッセージ・
タイプ)
説明
マスク・
シミュレーション
表示
メッセージ・
ビット
の停止
(デフォルト)
プリフィックス
番号
(デフォルト)
EBFM_MSG_DEBUG デ バ ッ グ・メ ッ 0
N
N
DEBUG:
セージを指定しま
す。
EBFM_MSG_INFO
コンフィギュレー 1
ション・レジスタ
値、テストの開始
および終了などの
情報メッセージを
指定します。
Y
N
INFO:
EBFM_MSG
_WARNING
特定のコンフィ 2
ギュレーションな
どによりテストが
スキップされたこ
となどへの警告
メッセージを指定
します。
Y
N
WARNING:
EBFM_MSG_ERROR エラーに関する追 3
_INFO
加情報を指定しま
Y
N
ERROR:
Y
N
ERROR:
Y
抑制不可
Y
抑制不可
FATAL:
す。このメッセー
ジを使用して、シ
ミュレーションを
停 止 す る エ ラ ー・
メッセージの前に
暫定情報を表示し
ます。
EBFM_MSG_ERROR シミュレーション 4
_CONTINUE
の継続を可能にす
る復元可能なエ
ラーを指定しま
す。エ ラ ー に は
データの不一致な
どがあります。
EBFM_MSG_ERROR テストベンチがシ N/A
_FATAL
ミュレーションを
継続できない状態
を引き起こし、シ
ミュレーションを
停止するエラーを
指定します。
5–58
PCI Express Compiler Version 6.1
PCI Express コンパイラ・ユーザガイド
Altera Corporation
2006 年 12 月
テストベンチおよび デザイン例
表 5–35. VHDL 定数を使用したログ・メッセージ - サブタイプ NATURAL(2 / 2)
定数
(メッセージ・
タイプ)
マスク・
シミュレーション
表示
メッセージ・
ビット
の停止
(デフォルト)
プリフィックス
番号
(デフォルト)
説明
EBFM_MSG_ERROR BFM テスト・ドラ N/A
_FATAL_TB_ERR
イバまたはルー
Y
抑制不可
Y
抑制不可
FATAL:
ト・ポート BFM の
致命的エラーに使
用します。テスト
ベンチがシミュ
レーションを継続
できない状態を引
き起こし、シミュ
レーションを停止
するエラーを指定
し ま す。こ の エ
ラー・メッセージ
は、テスト中のエ
ンドポイント・ア
プ リ ケ ー シ ョ ン・
レ イ ヤ で は な く、
BFM テスト・ドラ
イバ・モジュール
ま た は ル ー ト・
ポート BFM での問
題に起因するエ
ラーに対して使用
します。
表 5–36. ebfm_display プロシージャ
構文
VHDL: ebfm_display(msg_type, message)
Verilog HDL: dummy_return:=ebfm_display(msg_type, message);
引数
msg_type
メッセージのメッセージ・タイプを表します。5–58 ページの表 5–35
で定義されている定数のいずれかでなければなりません。
message
VHDL では、この引数は VHDL 文字列型であり、表示するメッ
セージ・テキストが含まれています。
Verilog HDL では、メッセージ文字列は最大 100 文字に制限されて
います。また、Verilog HDL は可変長文字列を許可していません。
このルーチンは、メッセージを表示する前に先頭の 8’h00 文字を剥
奪します。
戻り値
Altera Corporation
2006 年 12 月
always 0
これは Verilog HDL ルーチンにのみ適用されます。
PCI Express Compiler Version 6.1
5–59
PCI Express コンパイラ・ユーザガイド
BFM プロシージャおよびファンクション
ebfm_log_stop_sim VHDL プロシージャまたは Verilog HDL ファ
ンクション
ebfm_log_stop_sim プロシージャは、シミュレーションを停止します。
表 5–37. ebfm_log_stop_sim プロシージャ
構文
VHDL: ebfm_log_stop_sim(success)
Verilog VHDL: return:=ebfm_log_stop_sim(success);
引数
success
このプロセスを 1 に設定すると、シミュレーションが正常に完了したこと
を示すメッセージを表示して、シミュレーションを停止します。メッセー
ジには SUCCESS のプリフィックスが付加されます。
それ以外の場合、このプロセスはシミュレーションが完了していないこと
を示すメッセージを表示して、シミュレーションを停止します。メッセー
ジには FAILURE のプリフィックスが付加されます。
戻り値
Always 0
この値は Verilog HDL ファンクションにのみ適用されます。
ebfm_log_set_suppressed_msg_mask プロシージャ
ebfm_log_set_suppressed_msg_mask プロシージャは、抑制する
メッセージ・タイプを制御します。これにより 5–58 ページの表 5–35 に
示す Displayed by Default 設定が変更されます。
表 5–38. ebfm_log_set_suppressed_msg_mask プロシージャ
構文
bfm_log_set_suppressed_msg_mask (msg_mask)
引数
msg_mask
VHDL では、この引数は std_logic_vector、EBFM_MSG_MASK のサブタ
イプです。このベクタの範囲は、 EBFM_MSG_ERROR_CONTINUE から
EBFM_MSG_DEBUG までです。
Verilog HDL では、この引数は reg [EBFM_MSG_ERROR_CONTINUE:
EBFM_MSG_DEBUG] です。
両言語とも、msg_mask の特定のビット位置が 1 の場合、そのビット位
置に対応するタイプのメッセージが抑制されます。
5–60
PCI Express Compiler Version 6.1
PCI Express コンパイラ・ユーザガイド
Altera Corporation
2006 年 12 月
テストベンチおよび デザイン例
ebfm_log_set_stop_on_msg_mask プロシージャ
ebfm_log_set_stop_on_msg_mask プロシージャは、どのメッセー
ジ・タイプでシミュレーションを停止するかを制御します。これにより
5–58 ページの表 5–35 に示す Stop Sim by Default 設定が変更されます。
表 5–39. ebfm_log_set_stop_on_msg_mask プロシージャ
構文
ebfm_log_set_stop_on_msg_mask (msg_mask)
引数
msg_mask
VHDL では、この引数は std_logic_vector、 EBFM_MSG_MASK のサブ
タイプです。このベクタの範囲は、 EBFM_MSG_ERROR_CONTINUE
から EBFM_MSG_DEBUG までです。
Verilog HDLでは、
この引数はreg [EBFM_MSG_ERROR_CONTINUE:
EBFM_MSG_DEBUG] です。
両言語とも、msg_mask の特定のビット位置が 1 の場合、そのビット
位置に対応するタイプのメッセージが表示された後、シミュレーション
が停止します。
ebfm_log_open プロシージャ
ebfm_log_open プロシージャは、指定された名前のログ・ファイルを
開きます。表示されるメッセージはすべて ebfm_display によって呼
び出され、シミュレータ標準出力としてこのログ・ファイルに書き出さ
れます。
表 5–40. ebfm_log_open プロシージャ
構文
ebfm_log_open (fn)
引数
fn
この引数のタイプは文字列型です。
開くログ・ファイルのファイル名です。
ebfm_log_close プロシージャ
ebfm_log_close プロシージャは、以前 ebfm_log_open を呼び出すこ
とによって開かれたログ・ファイルを閉じます。
表 5–41. ebfm_log_close プロシージャ
Altera Corporation
2006 年 12 月
構文
ebfm_log_close
引数
なし
PCI Express Compiler Version 6.1
5–61
PCI Express コンパイラ・ユーザガイド
BFM プロシージャおよびファンクション
himage (std_logic_vector) ファンクション
himage ファンクションは、std_logic_vector 引数を 16 進文字列形
式 で 返 す ユ ー テ ィ リ テ ィ・ル ー チ ン で す。文 字 列 の 長 さ は、
std_logic_vector を 4 で除算(切り上げ)した値です。必要に応じて
引数に文字を埋め込んだり引数を切り捨てることによって、文字列の長
さを制御できます。
表 5–42. himage (std_logic_vector) ファンクション
構文
string:= himage(vec)
引数
vec
この引数は、16 進文字列に変換される std_logic_vector です。
戻り値
文字列
引数を 16 進文字列形式で表したものです。
himage (integer) ファンクション
himage ファンクションは、整数引数を 16 進文字列形式で返すユーティ
リティ・ルーチンです。この文字列の長さは、hlen 引数で指定されます。
表 5–43. himage (integer) ファンクション
構文
string:= himage(num, hlen)
引数
num
16 進文字列に変換される整数型の引数です
hlen
返される文字列の長さです。文字列は必要に応じて、切り捨てたり右
に 0 を埋め込みます。
文字列
引数を 16 進文字列形式で表したものです。
戻り値
Verilog HDL フォーマッティング・ファンクション
この項では、Verilog HDL でのみ使用するフォーマッティング・ファン
クションの概要を示します。これらのファンクションはすべて指定され
た長さの引数を 1 つ取り込み、指定された長さのベクタを返します。
5–62
PCI Express Compiler Version 6.1
PCI Express コンパイラ・ユーザガイド
Altera Corporation
2006 年 12 月
テストベンチおよび デザイン例
himage1
このファンクションは、より大きなサイズのメッセージ文字列に連結し、
ebfm_displayに渡すことができる入力引数の1 桁の16進文字列を作成
します。
表 5–44. himage1
構文
string:= himage(vec)
引数
vec
範囲が 3 ∼ 0 の reg 型入力データ
戻り値の範囲
文字列
入力引数の 1 桁の 16 進数を返します。戻りデータは範囲が 8 ∼ 1 の reg 型です
himage2
このファンクションは、より大きなサイズのメッセージ文字列に連結し、
ebfm_displayに渡すことができる入力引数の2 桁の16進文字列を作成
します。
表 5–45. himage2
構文
string:= himage(vec)
引数の範囲
vec
範囲が 7 ∼ 0 の reg 型入力データ
戻り値の範囲
文字列
入力引数を 2 桁の 16 進数形式で返します。必要に応じて先頭に 0 が埋め込
まれます。戻りデータは範囲が 16 ∼ 1 の reg 型です。
himage4
このファンクションは、より大きなサイズのメッセージ文字列に連結し、
ebfm_displayに渡すことができる入力引数の4 桁の16進文字列を作成
します。
表 5–46. himage4
構文
string:= himage(vec)
引数の範囲
vec
範囲が 15 ∼ 0 の reg 型入力データ
戻り値の範囲
文字列
入力引数を 4 桁の 16 進数形式で返します。必要に応じて先頭に 0 が埋め込ま
れます。戻りデータは範囲が 32 ∼ 1 の reg 型です。
Altera Corporation
2006 年 12 月
PCI Express Compiler Version 6.1
5–63
PCI Express コンパイラ・ユーザガイド
BFM プロシージャおよびファンクション
himage8
このファンクションは、より大きなサイズのメッセージ文字列に連結し、
ebfm_displayに渡すことができる入力引数の8 桁の16進文字列を作成
します。
表 5–47. himage8
構文
string:= himage(vec)
引数の範囲
vec
戻り値の範囲
文 字 入力引数を 8 桁の 16 進数形式で返します。必要に応じて先頭に 0 が埋め込まれま
列
す。戻りデータは範囲が 64 ∼ 1 の reg 型です。
範囲が 31 ∼ 0 の reg 型入力データ
himage16
このファンクションは、より大きなサイズのメッセージ文字列に連結し、
ebfm_display に渡すことができる入力引数の 16 桁の 16 進文字列を作
成します。
表 5–48. himage16
構文
string:= himage(vec)
引数の範囲
vec
戻り値の範囲
文字列 入力引数を 16 桁の 16 進数形式で返します。必要に応じて先頭に 0 が埋め込まれ
ます。戻りデータは範囲が 128 ∼ 1 の reg 型です。
範囲が 63 ∼ 0 の reg 型入力データ
dimage1
このファンクションは、より大きなサイズのメッセージ文字列に連結し、
ebfm_displayに渡すことができる入力引数の1 桁の16進文字列を作成
します。
表 5–49. dimage1
構文
string:= dimage(vec)
引数の範囲
vec
戻り値の範囲
文字列 入力引数を 1 桁の 10 進数形式で返します。必要に応じて先頭に 0 が埋め込まれ
ます。戻りデータは範囲が 8 ∼ 1 の reg 型です。
範囲が 31 ∼ 0 の reg 型入力データ
値を表現できない場合は、文字 U が返されます。
5–64
PCI Express Compiler Version 6.1
PCI Express コンパイラ・ユーザガイド
Altera Corporation
2006 年 12 月
テストベンチおよび デザイン例
dimage2
このファンクションは、より大きなサイズのメッセージ文字列に連結し、
ebfm_displayに渡すことができる入力引数の2 桁の16進文字列を作成
します。
表 5–50. dimage2
構文
string:= dimage(vec)
引数の範囲
vec
範囲が 31 ∼ 0 の reg 型入力データ
戻り値の範囲
文字列
入力引数を 2 桁の 10 進数形式で返します。必要に応じて先頭に 0 が埋め込まれ
ます。戻りデータは範囲 16 ∼ 1 の reg 型です。
値を表現できない場合は、文字 U が返されます。
dimage3
このファンクションは、より大きなサイズのメッセージ文字列に連結し、
ebfm_displayに渡すことができる入力引数の3 桁の16進文字列を作成
します。
表 5–51. dimage3
構文
string:= dimage(vec)
引数の範囲
vec
戻り値の範囲
文字列 入力引数を 3 桁の 10 進数形式で返します。必要に応じて先頭に 0 が埋め込まれ
ます。戻りデータは範囲が 24 ∼ 1 の reg 型です。
範囲が 31 ∼ 0 の reg 型入力データ
値を表現できない場合は、文字 U が返されます。
Altera Corporation
2006 年 12 月
PCI Express Compiler Version 6.1
5–65
PCI Express コンパイラ・ユーザガイド
BFM プロシージャおよびファンクション
dimage4
このファンクションは、より大きなサイズのメッセージ文字列に連結し、
ebfm_displayに渡すことができる入力引数の4 桁の16進文字列を作成
します。
表 5–52. dimage4
構文
string:= dimage(vec)
引数の範囲
vec
戻り値の範囲
文字列 入力引数を 4 桁の 10 進数形式で返します。必要に応じて先頭に 0 が埋め込まれ
ます。戻りデータは範囲が 32 ∼ 1 の reg 型です。
範囲が 31 ∼ 0 の reg 型入力データ
値を表現できない場合は、文字 U が返されます。
dimage5
このファンクションは、より大きなサイズのメッセージ文字列に連結し、
ebfm_displayに渡すことができる入力引数の5 桁の16進文字列を作成
します。
表 5–53. dimage5
構文
string:= dimage(vec)
引数の範囲
vec
戻り値の範囲
文字列 入力引数を 5 桁の 10 進数形式で返します。必要に応じて先頭に 0 が埋め込まれ
ます。戻りデータは範囲が 40 ∼ 1 の reg 型です。
範囲が 31 ∼ 0 の reg 型入力データ
値を表現できない場合は、文字 U が返されます。
5–66
PCI Express Compiler Version 6.1
PCI Express コンパイラ・ユーザガイド
Altera Corporation
2006 年 12 月
テストベンチおよび デザイン例
dimage6
このファンクションは、より大きなサイズのメッセージ文字列に連結し、
ebfm_displayに渡すことができる入力引数の6 桁の16進文字列を作成
します。
表 5–54. dimage6
構文
string:= dimage(vec)
引数の範囲
vec
戻り値の範囲
文字列 入力引数を 6 桁の 10 進数形式で返します。必要に応じて先頭に 0 が埋め込まれ
ます。戻りデータは範囲 48 ∼ 1 の reg 型です。
範囲が 31 ∼ 0 の reg 型入力データ
値を表現できない場合は、文字 U が返されます。
dimage7
このファンクションは、より大きなサイズのメッセージ文字列に連結し、
ebfm_displayに渡すことができる入力引数の7 桁の16進文字列を作成
します。
表 5–55. dimage7
構文
string:= dimage(vec)
引数の範囲
vec
戻り値の範囲
文字列 入力引数を 7 桁の 10 進数形式で返します。必要に応じて先頭に 0 が埋め込まれ
ます。戻りデータは範囲が 56 ∼ 1 の reg 型です。
範囲が 31 ∼ 0 の reg 型入力データ
値を表現できない場合は、文字 U が返されます。
Altera Corporation
2006 年 12 月
PCI Express Compiler Version 6.1
5–67
PCI Express コンパイラ・ユーザガイド
BFM プロシージャおよびファンクション
チェイニングDMAデザイン固有のプロシージャおよびファ
ンクション
この項では、チェイニング DMA のデザイン例に固有のプロシージャに
ついて説明します。
chained_dma_test プロシージャ
chained_dma_test プロシージャは、チェイニング DMA リードおよび
チェイニングDMAライトを実行するトップ・レベル・プロシージャです。
表 5–56. chained_dma_test プロシージャ
構文
chained_dma_test (bar_table, bar_num, direction, use_msi, use_eplast)
引数
bar_table
BFM 共有メモリのエンドポイント bar_table 構造のアドレス
bar_num
解析する BAR 番号
direction
0 の場合 Æ 読み出し
1 の場合 Æ 書き込み
2 の場合 Æ 読み出してから書き込み
3 の場合 Æ 書き込んでから読み出し
Use_msi
この引数が設定されると、ルート・ポートはネイティブ PCI express MSI を使
用して DMA 完了を検出します。
Use_eplast
この引数が設定されると、ルート・ポートは BFM 共有メモリ・ポーリングを
使用して DMA 完了を検出します。
dma_rd_test プロシージャ
dma_rd_test プロシージャは、エンドポイント・メモリから BFM 共有
メモリへの DMA リードに使用します。
表 5–57. dma_rd_test プロシージャ
構文
dma_rd_test (bar_table, bar_num, use_msi, use_eplast)
引数
bar_table
BFM 共有メモリのエンドポイント bar_table 構造のアドレス
bar_num
解析する BAR 番号
Use_msi
この引数が設定されると、ルート・ポートはネイティブ PCI express MSI
を使用して DMA 完了を検出します。
Use_eplast
この引数が設定されると、ルート・ポートは BFM 共有メモリ・ポーリン
グを使用して DMA 完了を検出します。
5–68
PCI Express Compiler Version 6.1
PCI Express コンパイラ・ユーザガイド
Altera Corporation
2006 年 12 月
テストベンチおよび デザイン例
dma_wr_test プロシージャ
dma_wr_test プロシージャは、BFM 共有メモリからエンドポイント・
メモリへの DMA ライトに使用します。
表 5–58. dma_wr_test プロシージャ
構文
dma_wr_test (bar_table, bar_num, use_msi, use_eplast)
引数
bar_table
BFM 共有メモリのエンドポイント bar_table 構造のアドレス
bar_num
解析する BAR 番号
Use_msi
この引数が設定されると、ルート・ポートはネイティブ PCI express
MSI を使用して DMA 完了を検出します。
Use_eplast
この引数が設定されると、ルート・ポートは BFM 共有メモリ・ポーリ
ングを使用して DMA 完了を検出します。
dma_set_rd_desc_data プロシージャ
dma_set_rd_desc_data プロシージャは、BFM 共有メモリを DMA
リード用にコンフィギュレーションするのに使用します。
表 5–59. dma_set_rd_desc_data プロシージャ
構文
dma_set_rd_desc_data (bar_table, bar_num)
引数
bar_table
BFM 共有メモリのエンドポイント bar_table 構造のアドレス
bar_num
解析する BAR 番号
dma_set_wr_desc_data プロシージャ
dma_set_wr_desc_data プロシージャは、BFM 共有メモリを DMA ラ
イト用にコンフィギュレーションするのに使用します。
表 5–60. dma_set_wr_desc_data プロシージャ
構文
dma_set_wr_desc_data (bar_table, bar_num)
引数
bar_table
BFM 共有メモリのエンドポイント bar_table 構造のアドレス
bar_num
解析する BAR 番号
Altera Corporation
2006 年 12 月
PCI Express Compiler Version 6.1
5–69
PCI Express コンパイラ・ユーザガイド
BFM プロシージャおよびファンクション
dma_set_header プロシージャ
dma_set_header プロシージャは、DMA リードまたは DMA ライト用
DMA ディスクリプタ・テーブルをコンフィギュレーションするのに使
用します。
表 5–61. dma_set_wr_desc_data プロシージャ
構文
dma_set_wr_desc_data (bar_table, bar_num)
引数
bar_table
BFM 共有メモリのエンドポイント bar_table 構造のアドレス
bar_num
解析する BAR 番号
Descriptor_size
ディスクリプタ数
direction
0 の場合 Æ 読み出し
1 の場合 Æ 書き込み
Use_msi
この引数が設定されると、ルート・ポートはネイティブ PCI
express MSI を使用して DMA 完了を検出します。
Use_eplast
この引数が設定されると、ルート・ポートは BFM 共有メモリ・
ポーリングを使用して DMA 完了を検出します。
Bdt_msb
BFM 共有メモリの上位アドレス値
Bdt_lsb
BFM 共有メモリの下位アドレス値
Msi number
use_msi が設定されている場合、この引数により dma_set_msi
プロシージャで設定する msi 番号を指定します。
Msi_traffic_class
use_msi が設定されている場合、この引数により dma_set_msi
プロシージャで設定する MSI トラフィック・クラスを指定しま
す。
msi_expected_dmawr
use_msi が設定されている場合、この引数により dma_set_msi
プロシージャで設定する MSI データの期待値を指定します。
Multi_message_enable
use_msi が設定されている場合、この引数により dma_set_msi
プロシージャで設定する MSI トラフィック・クラスを指定しま
す。
5–70
PCI Express Compiler Version 6.1
PCI Express コンパイラ・ユーザガイド
Altera Corporation
2006 年 12 月
テストベンチおよび デザイン例
rc_poll プロシージャ
rc_pollプロシージャは、与えられたBFM共有メモリ位置のDWORDを
ポーリングするのに使用します。
表 5–62. rc_poll プロシージャ
構文
rc_poll (rc_addr, rc_data)
引数
rc_addr
ポーリングする BFM 共有メモリのアドレス
rc_data
ポーリングするデータの期待値
msi_poll プロシージャ
msi_poll プロシージャは、エンドポイントから MSI コンプリーション
を追跡します。
表 5–63. msi_poll プロシージャ
構文
dma_set_wr_desc_data (bar_table, bar_num)
引数
Dma_read
この引数が設定されると、DMA リード・モジュールからの
MSI をポーリングします。
Dma_write
この引数が設定されると、DMA ライト・モジュールからの
MSI をポーリングします。
Msi number
use_msi が設定されている場合、この引数により dma_set_msi
プロシージャで設定する msi 番号を指定します。
Msi_traffic_class
use_msi が設定されている場合、この引数により dma_set_msi
プロシージャで設定する MSI トラフィック・クラスを指定し
ます。
msi_expected_dmawr
use_msi が設定されている場合、この引数により dma_set_msi
プロシージャで設定する MSI データの期待値を指定します。
Multi_message_enable
use_msi が設定されている場合、この引数により dma_set_msi
プロシージャで設定する MSI トラフィック・クラスを指定し
ます。
Altera Corporation
2006 年 12 月
PCI Express Compiler Version 6.1
5–71
PCI Express コンパイラ・ユーザガイド
BFM プロシージャおよびファンクション
dma_set_msi プロシージャ
dma_set_msiプロシージャは、PCI ExpressネイティブMSIをDMAリー
ドまたは DMA ライト用に設定します。.
表 5–64. dma_set_msi プロシージャ
構文
et_msi (bar_table, bar_num)
引数
bar_table
BFM 共有メモリのエンドポイント bar_table 構造のアドレス
bar_num
解析する BAR 番号
Bus_num
コンフィギュレーション・バス番号を設定します
dev_num
コンフィギュレーション・デバイス番号を設定します
Fun_num
コンフィギュレーション・ファンクション番号を設定します
Direction
0 の場合 Æ 読み出し
1 の場合 Æ 書き込み
Msi number
msi 番号を返します
Msi_traffic_class
MSI トラフィック・クラス値を返します。
msi_expected_dmawr
MSI データの期待値を返します。
Multi_message_enable
MSI マルチ・メッセージ・イネーブル・ステータスを返します。
5–72
PCI Express Compiler Version 6.1
PCI Express コンパイラ・ユーザガイド
Altera Corporation
2006 年 12 月
付録 A.
コンフィギュレーション信号
X1 および x4
MegaCore
ファンクション
のコンフィギュ
レーション信号
表 A–1に、x1およびx4 MegaCoreファンクションに使用できるMegaCore
ファンクションのすべてのコンフィギュレーション信号を示します。こ
れらの信号は、Quartus II ソフトウェアで作成されるバリエーション・
ファイルの内部で設定されます。MegaWizard インタフェースを使用す
る場合を除き、これらの信号を変更してはなりません。ここに示すコン
フィギュレーション信号は参照用です。
表 A–1. X1 および x4 MegaCore ファンクションのコンフィギュレーション信号 (1 / 6)
信号
値またはウィザード・
ページ / ラベル
説明
k_gbl[0]
0 に固定
PCI Express 仕様準拠の設定。値を 1 に設定すると、
MegaCore ファンクションは PCI Express 1.1 仕様準拠
として設定されます。
値を 0 に設定すると、MegaCore ファンクションは PCI
Express 1.0a 仕様準拠として設定されます。
k_gbl[9:1]
0 に固定
Reserved
k_gbl[10]
Capabilities: Link
Common Clock
クロック・コンフィギュレーション、0 = システム・リ
ファレンス・クロック不使用、1 = PHY にシステム・
リファレンス・クロックを使用。
k_gbl[11]
0 に固定
Reserved
k_gbl[15:12]
System: Interface Type
ポート・タイプ : 0 = ネイティブ EP、1 = レガシー EP。
k_gbl[25:16]
0 に固定
Reserved
k_gbl[26]
1 に固定
受信パスにリオーダリングを実装。
k_gbl[31:27]
0 に固定
Reserved
k_conf[15:0]
Capabilities: Vendor ID
ベンダ ID レジスタ。
k_conf[31:16]
Capabilities: Device ID
デバイス ID レジスタ。
k_conf[39:32]
Capabilities: Revision ID
リビジョン ID レジスタ。
k_conf[63:40]
Capabilities: Class Code
クラス・コード・レジスタ。
k_conf[79:64]
Capabilities: Subsystem
Vendor ID
サブシステム・ベンダ ID レジスタ。
k_conf[95:80]
Capabilities: Subsystem
Device ID
サブシステム・デバイス ID レジスタ。
Altera Corporation
2006 年 12 月
PCI Express Compiler Version 6.1
A–1
X1 および x4 MegaCore ファンクションのコンフィギュレーション信号
表 A–1. X1 および x4 MegaCore ファンクションのコンフィギュレーション信号 (2 / 6)
信号
値またはウィザード・
ページ / ラベル
説明
k_conf[98:96]
0b010 に固定
パワー・マネージメント機能レジスタのバージョン・
フィールド(010 に設定)。
k_conf[99]
0 に固定
パワー・マネージメント機能レジスタのPME クロッ
ク・フィールド
k_conf[100]
0 に固定
Reserved
k_conf[101]
0 に固定
パワー・マネージメント機能レジスタのデバイス固有
の初期化(DSI)フィールド。
k_conf[104:102]
0 に固定
パワー・マネージメント機能レジスタの d3cold での
PME サポート時に必要な最大補助電流。
k_conf[105]
0 に固定
パワー・マネージメント機能レジスタ D1 サポート・
ビット。
k_conf[106]
0 に固定
パワー・マネージメント機能レジスタ D2 サポート・
ビット。
k_conf[107]
0 に固定
パワー・マネージメント機能レジスタの PME メッセー
ジは、D0 ステート・ビットで送信できます。
k_conf[108]
0 に固定
パワー・マネージメント機能レジスタの PME メッセー
ジは、D1 ステート・ビットで送信できます。
k_conf[109]
0 に固定
パワー・マネージメント機能レジスタの PME メッセー
ジは、D2 ステート・ビットで送信できます。
k_conf[110]
0 に固定
パワー・マネージメント機能レジスタの PME メッセー
ジは、D3 ホット・ステート・ビットで送信できます。
k_conf[111]
0 に固定
パワー・マネージメント機能レジスタの PME メッセー
ジは、D3 コールド・ステート・ビットで送信できます。
k_conf[112]
Capabilities: Implement
AER
アドバンスト・エラー報告機能をサポート。
k_conf[115:113]
Buffer Setup: Low Priority ポート VC 機能レジスタ 1 低優先度 VC フィールド。
Virtual Channels
k_conf[119:116]
0b0001 に固定
ポート VC 機能レジスタ 2 の VC アービトレーション
機能フィールド。
k_conf[127:120]
0 に固定
Reserved
k_conf[130:128]
0 に固定
Reserved
k_conf[132:131]
0 に固定
Reserved
k_conf[133]
Calculated
デバイス機能レジスタ : 拡張タグ・フィールドをサポー
ト。タグ数が > 32 のとき 1 に設定。
A–2
PCI Express Compiler Version 6.1
PCI Express コンパイラ・ユーザガイド
Altera Corporation
2006 年 12 月
表 A–1. X1 および x4 MegaCore ファンクションのコンフィギュレーション信号 (3 / 6)
信号
値またはウィザード・
ページ / ラベル
説明
k_conf[136:134]
Power Management:
Endpoint L0s Acceptable
Latency
デバイス機能レジスタ : エンドポイント L0s 許容レイ
テンシ。0 = < 64 ns、1 = 64 - 128 ns、2 = 128 - 256 ns、
3 = 256 - 512 ns、4 = 512 ns - 1 µs、5 = 1 - 2 µs、6 = 2 4 µs、7 => 4 µs
k_conf[139:137]
Power Management:
Endpoint L1 Acceptable
Latency
デバイス機能レジスタ : エンドポイント L1 許容レイテ
ンシ。0 =< 1 µs、1 = 1 - 2 µs、2 = 2 - 4 µs、3 = 4 - 8 µs、
4 = 8 - 16 µs、5 = 16 - 32 µs、6 = 32 - 64 µs、7 => 64 µs
k_conf[143:140]
0 に固定
Reserved
k_conf[145:144]
0 に固定
Reserved
k_conf[151:146]
レーン数から計算
リンク機能レジスタ : 最大リンク幅。1=x1、4 = x4、そ
の他 = reserved。
k_conf[153:152]
Power Management:
Enable L1 ASPM
リンク機能レジスタ : アクティブ・ステート・パワー・
マネージメント・サポート。01 = L0s、11 = L1 と L0s。
k_conf[156:154]
Power Management: L1
Exit Latency Common
Clock
リンク機能レジスタ : L1 終了レイテンシ – 個別クロッ
ク。0 =< 1 µs、1 = 1 - 2 µs、2 = 2 - 4 µs、3 = 4 - 8 µs、4 =
8 - 16 µs、5 = 16 - 32 µs、6 = 32 - 64 µs、7 => 64 µs
k_conf[159:157]
Power Management: L1
Exit Latency Separate
Clock
リンク機能レジスタ : L1 終了レイテンシ – 共通クロッ
ク。0 =< 1 µs、1 = 1 - 2 µs、2 = 2 - 4 µs、3 = 4 - 8 µs、4 =
8 - 16 µs、5 = 16 - 32 µs、6 = 32 - 64 µs、7 => 64 µs
k_conf[166:160]
0 に固定
Reserved
k_conf[169:167]
Capabilities: Tags
Supported
送信された Non-Posted リクエストにサポートされる
タグ数。
k_conf[191:170]
0 に固定
Reserved
k_conf[199:192]
Power Management:
N_FTS Separate
個別クロック・モードで必要となる高速トレーニング・
シーケンスの数(N_FTS)。
k_conf[207:200]
Power Management:
N_FTS Common
共通クロック・モードで必要となる高速トレーニング・
シーケンスの数(N_FTS)。
k_conf[215:208]
Capabilities: Link Port
Number
リンク機能レジスタ : ポート番号。
k_conf[216]
Capabilities: Implement
ECRC Check
アドバンスド・エラー機能レジスタ : ECRC 検査イネー
ブル。
k_conf[217]
Capabilities: Implement
ECRC Generation
アドバンスド・エラー機能レジスタ : ECRC 生成イネー
ブル。
k_conf[218]
0 に固定
Reserved
Altera Corporation
2006 年 12 月
PCI Express Compiler Version 6.1
A–3
PCI Express コンパイラ・ユーザガイド
X1 および x4 MegaCore ファンクションのコンフィギュレーション信号
表 A–1. X1 および x4 MegaCore ファンクションのコンフィギュレーション信号 (4 / 6)
信号
値またはウィザード・
ページ / ラベル
説明
k_conf[221:219]
Capabilities: MSI
Messages Requested
k_conf[222]
Capabilities: MSI Message MSI 機能メッセージ・コントロール・レジスタ : 64 ビッ
64 bit Capable
ト機能。0 = 32b、1 = 64b または 32b。
k_conf[223]
Capabilities: MSI Per
Vector Masking
k_bar[31:0]
System: BAR Table (BAR0) BAR0 サイズ・マスクと読み出し専用フィールド(I/O
スペース、メモリ・スペース、プリフェッチ可能)
。ビッ
ト 31-4 = サイズ・マスク、ビット 3 = プリフェッチ可
能、ビット 2 = 64 ビット、ビット 1 = 0、ビット 0 = I/O。
k_bar[63:32]
System: BAR Table (BAR1) BAR1 サイズ・マスクと読み出し専用フィールド(I/O
スペース、メモリ・スペース、プリフェッチ可能)
。ビッ
ト 31-4 = サイズ・マスク、ビット 3 = プリフェッチ可
能、ビット 2 = 64 ビット、ビット 1 = 0、ビット 0 = I/O
(または旧 64 ビットの場合は、ビット 31-0 = サイズ・
マスク)
。
k_bar[95:64]
System: BAR Table (BAR2) BAR2 サイズ・マスクと読み出し専用フィールド(I/O
スペース、メモリ・スペース、プリフェッチ可能)
。ビッ
ト 31-4 = サイズ・マスク、ビット 3 = プリフェッチ可
能、ビット 2 = 64 ビット、ビット 1 = 0、ビット 0 = I/O。
k_bar[127:96]
System: BAR Table (BAR3) BAR3 サイズ・マスクと読み出し専用フィールド(I/O
スペース、メモリ・スペース、プリフェッチ可能)
。ビッ
ト 31-4 = サイズ・マスク、ビット 3 = プリフェッチ可
能、ビット 2 = 64 ビット、ビット 1 = 0、ビット 0 = I/O
(または旧 64 ビットの場合は、ビット 31-0 = サイズ・
マスク)
。
k_bar[159:128]
System: BAR Table (BAR4) BAR4 サイズ・マスクと読み出し専用フィールド(I/O
スペース、メモリ・スペース、プリフェッチ可能)
。ビッ
ト 31-4 = サイズ・マスク、ビット 3 = プリフェッチ可
能、ビット 2 = 64 ビット、ビット 1 = 0、ビット 0 = I/O。
k_bar[191:160]
System: BAR Table (BAR5) BAR5 サイズ・マスクと読み出し専用フィールド(I/O
スペース、メモリ・スペース、プリフェッチ可能)
。ビッ
ト 31-4 = サイズ・マスク、ビット 3 = プリフェッチ可
能、ビット 2 = 64 ビット、ビット 1 = 0、ビット 0 = I/O
(または旧 64 ビットの場合は、ビット 31-0 = サイズ・
マスク)
。
k_bar[223:192]
System: BAR Table (Exp
ROM)
MSI 機能メッセージ・コントロール・レジスタ : 複数
のメッセージが可能な要求フィールド。0 = 1 メッセー
ジ、1 = 2 メッセージ、2 = 4 メッセージ、3 = 8 メッセー
ジ、4 = 16 メッセージ、5 = 32 メッセージ。
ビット別ベクター・マスキング(RO フィールド)
。
拡張 ROM BAR サイズ・マスク。ビット 31-11 = サイ
ズ・マスク、ビット 10-1 = 0、ビット 0 = イネーブル。
A–4
PCI Express Compiler Version 6.1
PCI Express コンパイラ・ユーザガイド
Altera Corporation
2006 年 12 月
表 A–1. X1 および x4 MegaCore ファンクションのコンフィギュレーション信号 (5 / 6)
信号
値またはウィザード・
ページ / ラベル
説明
k_cnt[95:0]
0 に固定
Reserved
k_cnt[106:96]
17 に固定
フロー制御初期化タイマ(単位 µs)。サイクル数。
k_cnt[111:107]
Power Management: Idle
Threshold for L0s Entry
L0s エントリのアイドル・スレッショルド値(256ns ス
テップ)
k_cnt[116:112]
30 に固定
k_cnt[119:117]
0 に固定
Reserved
k_cnt[127:120]
200 に固定
フロー制御タイムアウト検査(単位 µs)
。
k_vc0[7:0]
Calculated: VC Table
Posted Header Credit
VC0 Posted ヘッダの受信フロー制御クレジット。
k_vc0[19:8]
Calculated: VC Table
Posted Data Credit
VC0 Posted データの受信フロー制御クレジット。
k_vc0[27:20]
Calculated: VC Table Non- VC0 Non-Posted ヘッダの受信フロー制御クレジット。
Posted Header Credit
k_vc0[35:28]
0 に固定
VC0 Non-Posted データの受信フロー制御クレジット。
Rx バッファは常に、Non-Posted ライト(コンフィギュ
レーション・ライトまたは I/O ライト)に対して送信
できる最大 1 DWORD のデータのスペースを備えてい
ます。
k_vc0[43:36]
0 に固定
VC0 コンプリーション・ヘッダの受信フロー制御クレ
ジット。エンドポイントで無限のコンプリーション・
クレジットをアドバタイズする必要があります。
k_vc0[55:44]
0 に固定
VC0 コンプリーション・データの受信フロー制御クレ
ジット。エンドポイントで無限のコンプリーション・
クレジットをアドバタイズする必要があります。
k_vc1[7:0]
Calculated: VC Table
Posted Header Credit
VC1 Posted ヘッダの受信フロー制御クレジット。
k_vc1[19:8]
Calculated: VC Table
Posted Data Credit
VC1 Posted データの受信フロー制御クレジット。
k_vc1[27:20]
Calculated: VC Table Non- VC1 Non-Posted ヘッダの受信フロー制御クレジット。
Posted Header Credit
k_vc1[35:28]
0 に固定
VC1 Non-Posted データの受信フロー制御クレジット。
Non-Posted ライト(コンフィギュレーションおよび
I/O ライト)は VC0 のみ使用します。
k_vc1[43:36]
0 に固定
VC1 コンプリーション・ヘッダの受信フロー制御クレ
ジット。エンドポイントで無限のコンプリーション・
クレジットをアドバタイズする必要があります。
Altera Corporation
2006 年 12 月
アップデート・フロー制御クレジット・タイマ
(単位 µs)
。
PCI Express Compiler Version 6.1
A–5
PCI Express コンパイラ・ユーザガイド
X1 および x4 MegaCore ファンクションのコンフィギュレーション信号
表 A–1. X1 および x4 MegaCore ファンクションのコンフィギュレーション信号 (6 / 6)
信号
値またはウィザード・
ページ / ラベル
説明
k_vc1[55:44]
0 に固定
VC1 コンプリーション・データの受信フロー制御クレ
ジット。エンドポイントで無限のコンプリーション・
クレジットをアドバタイズする必要があります。
k_vc2[7:0]
Calculated: VC Table
Posted Header Credit
VC2 Posted ヘッダの受信フロー制御クレジット。
k_vc2[19:8]
Calculated: VC Table
Posted Data Credit
VC2 Posted データの受信フロー制御クレジット。
k_vc2[27:20]
Calculated: VC Table Non- VC2 Non-Posted ヘッダの受信フロー制御クレジット。
Posted Header Credit
k_vc2[35:28]
0 に固定
VC2 Non-Posted データの受信フロー制御クレジット。
Non-Posted ライト(コンフィギュレーションおよび
I/O ライト)は VC0 のみ使用します。
k_vc2[43:36]
0 に固定
VC2 コンプリーション・ヘッダの受信フロー制御クレ
ジット。エンドポイントで無限のコンプリーション・
クレジットをアドバタイズする必要があります。
k_vc2[55:44]
0 に固定
VC2 コンプリーション・データの受信フロー制御クレ
ジット。エンドポイントで無限のコンプリーション・
クレジットをアドバタイズする必要があります。
k_vc3[7:0]
Calculated: VC Table
Posted Header Credit
VC3 Posted ヘッダの受信フロー制御クレジット。
k_vc3[19:8]
Calculated: VC Table
Posted Data Credit
VC3 Posted データの受信フロー制御クレジット。
k_vc3[27:20]
Calculated: VC Table Non- VC3 Non-Posted ヘッダの受信フロー制御クレジット。
Posted Header Credit
k_vc3[35:28]
0 に固定
VC3 Non-Posted データの受信フロー制御クレジット。
Non-Posted ライト(コンフィギュレーションおよび
I/O ライト)は VC0 のみ使用します。
k_vc3[43:36]
0 に固定
VC3 コンプリーション・ヘッダの受信フロー制御クレ
ジット。エンドポイントで無限のコンプリーション・
クレジットをアドバタイズする必要があります。
k_vc3[55:44]
0 に固定
VC3 コンプリーション・データの受信フロー制御クレ
ジット。エンドポイントで無限のコンプリーション・
クレジットをアドバタイズする必要があります。
A–6
PCI Express Compiler Version 6.1
PCI Express コンパイラ・ユーザガイド
Altera Corporation
2006 年 12 月
X8 MegaCore
ファンクション
のコンフィギュ
レーション信号
表 A–2 に、x8 MegaCore ファンクションのコンフィギュレーション信号
をリストし、簡単に説明します。これらの信号は、MegaWizard インタ
フェースで作成されるバリエーション・ファイルの内部で設定されます。
MegaWizard インタフェースを使用する場合を除き、これらの信号を変
更してはなりません。ここに示すコンフィギュレーション信号は参照用
です。
表 A–2. X8 MegaCore ファンクションのコンフィギュレーション信号 (1 / 4)
信号
値またはウィザード・
ページ / ラベル
説明
k_gbl[0]
0 に固定
PCI Express 仕様準拠の設定。値を 1 に設定すると、MegaCore
ファンクションはPCI Express 1.1仕様準拠として設定されます。
値を 0 に設定すると、
MegaCore ファンクションは PCI Express
1.0a 仕様準拠として設定されます。
k_gbl[9:1]
0 に固定
Reserved
k_epleg
System: Interface Type Endpoint Type:この信号はコアをレガシーまたはネイティブ・
エンドポイントとして設定します。
0: ネイティブ・エンドポイント
1: レガシー・エンドポイント
k_rxro
1 に固定
Receive Reordering: この信号は受信パス上にリオーダリング
機能を実装します。
0: 受信リオーダリングを実装しない
1: 受信リオーダリングを実装する
k_conf[15:0]
Capabilities: Vendor ID
ベンダ ID レジスタ。
k_conf[31:16]
Capabilities: Device ID
デバイス ID レジスタ。
k_conf[39:32]
Capabilities: Revision ID リビジョン ID レジスタ。
k_conf[63:40]
Capabilities: Class Code クラス・コード・レジスタ。
k_conf[79:64]
Capabilities: Subsystem
Vendor ID
サブシステム・ベンダ ID レジスタ。
k_conf[95:80]
Capabilities:
Subsystem Device ID
サブシステム・デバイス ID レジスタ。
k_conf[98:96]
0b010 に固定
パワー・マネージメント機能レジスタのバージョン・フィー
ルド(010 に設定)。
k_conf[99]
0 に固定
パワー・マネージメント機能レジスタのPMEクロック・フィー
ルド
k_conf[100]
0 に固定
Reserved
k_conf[101]
0 に固定
パワー・マネージメント機能レジスタのデバイス固有の初期
化(DSI)フィールド。
k_conf[104:102] 0 に固定
パワー・マネージメント機能レジスタの d3cold での PME サ
ポート時に必要な最大補助電流。
Altera Corporation
2006 年 12 月
PCI Express Compiler Version 6.1
A–7
PCI Express コンパイラ・ユーザガイド
X8 MegaCore ファンクションのコンフィギュレーション信号
表 A–2. X8 MegaCore ファンクションのコンフィギュレーション信号 (2 / 4)
信号
値またはウィザード・
ページ / ラベル
説明
k_conf[105]
0 に固定
パワー・マネージメント機能レジスタの D1 サポート・ビット。
k_conf[106]
0 に固定
パワー・マネージメント機能レジスタの D2 サポート・ビット。
k_conf[107]
0 に固定
パワー・マネージメント機能レジスタの PME メッセージは、
D0 ステート・ビットで送信できます。
k_conf[108]
0 に固定
パワー・マネージメント機能レジスタの PME メッセージは、
D1 ステート・ビットで送信できます。
k_conf[109]
0 に固定
パワー・マネージメント機能レジスタの PME メッセージは、
D2 ステート・ビットで送信できます。
k_conf[110]
0 に固定
パワー・マネージメント機能レジスタの PME メッセージは、
D3 ホット・ステート・ビットで送信できます。
k_conf[111]
0 に固定
パワー・マネージメント機能レジスタの PME メッセージは、
D3 コールド・ステート・ビットで送信できます。
k_conf[112]
0 に固定
Reserved
k_conf[115:113] Buffer Setup: Low
ポート VC 機能レジスタ 1 の低優先度 VC フィールド。
Priority Virtual
Channels
k_conf[119:116] 0b0001 に固定
ポート VC 機能レジスタ 2 の VC アービトレーション機能
フィールド。
k_conf[127:120] 0 に固定
Reserved
k_conf[130:128] 0 に固定
Reserved
k_conf[132:131] 0 に固定
Reserved
k_conf[133]
Reserved
0 に固定
k_conf[136:134] Power Management:
Endpoint L0s
Acceptable Latency
デバイス機能レジスタ : エンドポイント L0s 許容レイテンシ。
0 = < 64 ns、1 = 64 - 128 ns、2 = 128 - 256 ns、3 = 256 - 512 ns、
4 = 512 ns - 1 µs、5 = 1 - 2 µs、6 = 2 - 4 µs、7 => 4 µs
k_conf[139:137] Power Management:
デバイス機能レジスタ : エンドポイント L1 許容レイテンシ。
0 =< 1 µs、1 = 1 - 2 µs、2 = 2 - 4 µs、3 = 4 - 8 µs、4 = 8 - 16 µs、
5 = 16 - 32 µs、6 = 32 - 64 µs、7 => 64 µs
Endpoint L1
Acceptable Latency
k_conf[143:140] 0 に固定
Reserved
k_conf[145:144] 0 に固定
Reserved
k_conf[151:146] レーン数から計算
リンク機能レジスタ : 最大リンク幅。1 = x1、4 = x4、その他 =
Reserved。
k_conf[153:152] Power Management:
リンク機能レジスタ : アクティブ・ステート・パワー・マネー
ジメント・サポート。01 = L0s、11 = L1 と L0s。
Enable L1 ASPM
A–8
PCI Express Compiler Version 6.1
PCI Express コンパイラ・ユーザガイド
Altera Corporation
2006 年 12 月
表 A–2. X8 MegaCore ファンクションのコンフィギュレーション信号 (3 / 4)
信号
値またはウィザード・
ページ / ラベル
k_conf[156:154] Power Management:
L1 Exit Latency
Common Clock
k_conf[159:157] Power Management:
L1 Exit Latency
Separate Clock
説明
リンク機能レジスタ :L1 終了レイテンシ – 個別クロック。0 =<
1 µs、1 = 1 - 2 µs、2 = 2 - 4 µs、3 = 4 - 8 µs、4 = 8 - 16 µs、5 =
16 - 32 µs、6 = 32 - 64 µs、7 => 64 µs
リンク機能レジスタ :L1 終了レイテンシ – 共通クロック。0 =<
1 µs、1 = 1 - 2 µs、2 = 2 - 4 µs、3 = 4 - 8 µs、4 = 8 - 16 µs、5 =
16 - 32 µs、6 = 32 - 64 µs、7 => 64 µs
k_conf[166:160] 0 に固定
Reserved
k_conf[169:167] Capabilities: Tags
送信された Non-Posted リクエストにサポートされるタグ数。
Supported
k_conf[191:170] 0 に固定
Reserved
k_conf[199:192] Power Management:
個別クロック・モードで必要となる高速トレーニング・シー
ケンスの数(N_FTS)。
N_FTS Separate
k_conf[207:200] Power Management:
N_FTS Common
共通クロック・モードで必要となる高速トレーニング・シー
ケンスの数(N_FTS)。
k_conf[215:208] Capabilities: Link Port リンク機能レジスタ : ポート番号。
Number
k_conf[216]
0 に固定
Reserved
k_conf[217]
0 に固定
Reserved
k_conf[218]
0 に固定
Reserved
k_conf[221:219] Capabilities: MSI
Messages Requested
MSI 機能メッセージ・コントロール・レジスタ : 複数のメッ
セージが可能な要求フィールド。0 = 1 メッセージ、1 = 2 メッ
セージ、2 = 4 メッセージ、3 = 8 メッセージ、4 = 16 メッセー
ジ、5 = 32 メッセージ。
k_conf[222]
Capabilities: MSI
MSI 機能メッセージ・コントロール・レジスタ :64 ビット機
Message 64 bit Capable 能。0 = 32b、1 = 64b または 32b。
k_conf[223]
Capabilities: MSI Per
Vector Masking
ビット別ベクター・マスキング(RO フィールド)
。
k_bar[31:0]
System: BAR Table
(BAR0)
BAR0 サイズ・マスクと読み出し専用フィールド(I/O スペー
ス、メモリ・スペース、プリフェッチ可能)。ビット 31-4 = サ
イズ・マスク、ビット 3 = プリフェッチ可能、ビット 2 = 64
ビット、ビット 1 = 0、ビット 0 = I/O。
k_bar[63:32]
System: BAR Table
(BAR1)
BAR1 サイズ・マスクと読み出し専用フィールド(I/O スペー
ス、メモリ・スペース、プリフェッチ可能)。ビット 31-4 = サ
イズ・マスク、ビット 3 = プリフェッチ可能、ビット 2 = 64
ビット、ビット 1 = 0、ビット 0 = I/O(または旧 64 ビットの
場合は、ビット 31-0 = サイズ・マスク)。
Altera Corporation
2006 年 12 月
PCI Express Compiler Version 6.1
A–9
PCI Express コンパイラ・ユーザガイド
X8 MegaCore ファンクションのコンフィギュレーション信号
表 A–2. X8 MegaCore ファンクションのコンフィギュレーション信号 (4 / 4)
信号
値またはウィザード・
ページ / ラベル
説明
k_bar[95:64]
System: BAR Table
(BAR2)
BAR2 サイズ・マスクと読み出し専用フィールド(I/O スペー
ス、メモリ・スペース、プリフェッチ可能)。ビット 31-4 = サ
イズ・マスク、ビット 3 = プリフェッチ可能、ビット 2 = 64
ビット、ビット 1 = 0、ビット 0 = I/O。
k_bar[127:96]
System: BAR Table
(BAR3)
BAR3 サイズ・マスクと読み出し専用フィールド(I/O スペー
ス、メモリ・スペース、プリフェッチ可能)。ビット 31-4 = サ
イズ・マスク、ビット 3 = プリフェッチ可能、ビット 2 = 64
ビット、ビット 1 = 0、ビット 0 = I/O(または旧 64 ビットの
場合は、ビット 31-0 = サイズ・マスク)。
k_bar[159:128]
System: BAR Table
(BAR4)
BAR4 サイズ・マスクと読み出し専用フィールド(I/O スペー
ス、メモリ・スペース、プリフェッチ可能)。ビット 31-4 = サ
イズ・マスク、ビット 3 = プリフェッチ可能、ビット 2 = 64
ビット、ビット 1 = 0、ビット 0 = I/O。
k_bar[191:160]
System: BAR Table
(BAR5)
BAR5 サイズ・マスクと読み出し専用フィールド(I/O スペー
ス、メモリ・スペース、プリフェッチ可能)。ビット 31-4 = サ
イズ・マスク、ビット 3 = プリフェッチ可能、ビット 2 = 64
ビット、ビット 1 = 0、ビット 0 = I/O(または旧 64 ビットの
場合は、ビット 31-0 = サイズ・マスク)。
k_bar[223:192]
System: BAR Table
(Exp ROM)
拡張 ROM BAR サイズ・マスク。ビット 31-11 = サイズ・マ
スク、ビット 10-1 = 0、ビット 0 = イネーブル。
k_cnt[10:0]
17 に固定
フロー制御初期化タイマ(単位 µs)。サイクル数。
k_cnt[15:11]
Power Management:
Idle Threshold for L0s
Entry
L0s エントリのアイドル・スレッショルド値
(256 ns ステップ)
k_cnt[20:12]
30 に固定
アップデート・フロー制御クレジット・タイマ(単位 µs)。
k_cnt[23:21]
0 に固定
Reserved
k_cnt[35:24]
200 に固定
フロー制御タイムアウト検査(単位 µs)
。
k_cred0[7:0]
Calculated: VC Table
Posted Header Credit
VC0 Posted ヘッダの受信フロー制御クレジット。
k_cred0[19:8]
Calculated: VC Table
Posted Data Credit
VC0 Posted データの受信フロー制御クレジット。
k_cred0[27:20]
Calculated: VC Table
Non-Posted Header
Credit
VC0 Non-Posted ヘッダの受信フロー制御クレジット。
k_cred0[35:28]
0 に固定
VC0 Non-Posted データの受信フロー制御クレジット。Rx バッ
ファは常に、Non-Posted ライト(コンフィギュレーションま
たは I/O ライト)に対して送信できる最大 1 DWORD のデー
タのスペースを備えています。
A–10
PCI Express Compiler Version 6.1
PCI Express コンパイラ・ユーザガイド
Altera Corporation
2006 年 12 月
付録 B.
トランザクション・レイヤ・
パケットのヘッダ・フォーマット
データ・ペイ
ロードを含まな
いコンテンツ
表 B–2 から B–9 に、データ・ペイロードを含まないトランザクション・
レイヤ・パケットのヘッダ・フォーマットを示します。これらのヘッダ
が tx_desc および rx_desc として MegaCore ファンクションとの間で
転送される場合、表 B–1 に示すマッピングが使用されます。
表 B–1. ヘッダのマッピング
tx_desc/rx_desc ビット
ヘッダ・バイト
Altera Corporation
2006 年 12 月
バイト 0
127:120
バイト 1
119:112
バイト 2
111:104
バイト 3
103:96
バイト 4
95:88
バイト 5
87:80
バイト 6
79:72
バイト 7
71:64
バイト 8
63:56
バイト 9
55:48
バイト 10
47:40
バイト 11
39:32
バイト 12
31:24
バイト 13
23:16
バイト 14
15:8
バイト 15
7:0
PCI Express Compiler Version 6.1
B–1
データ・ペイロードを含むコンテンツ
データ・ペイ
ロードを含む
コンテンツ
表 B–2 から B–9 に、データ・ペイロードを含むトランザクション・レイ
ヤ・パケットのヘッダ定義内容を示します。
表 B–2. メモリ・ライト・リクエスト、32 ビット・アドレッシング
+0
+1
+2
+3
7 6 5 4 3 2 1 0 7 6 5 4 3 2 1 0 7
バイト 0 0 1 0 0 0 0 0 0 0 TC
バイト 4 リクエスタ ID
6
5 4 3 2 1 0 7 6 5 4 3 2 1 0
0 0 0 0 TD EP Attr 0 0 長さ
タグ
末尾 BE
先頭 BE
0 0
バイト 8 アドレス [31:2]
バイト12 R
表 B–3. メモリ・ライト・リクエスト、64 ビット・アドレッシング
+0
+1
+2
7 6 5 4 3 2 1 0 7 6 5 4 3 2 1 0 7
バイト 0 0 1 1 0 0 0 0 0 0 TC
バイト 4 リクエスタ ID
+3
6
0 0 0 0 TD EP
5 4 3 2 1 0 7 6 5 4 3 2 1 0
Attr
タグ
0 0 長さ
末尾 BE
先頭 BE
バイト 8 アドレス [63:32]
0 0
バイト12 アドレス [31:2]
表 B–4. I/O 書き込みリクエスト
+0
+1
+2
7 6 5 4 3 2 1 0 7 6 5 4 3 2 1 0 7
バイト 0 0 1 0 0 0 0 1 0 0 0 0 0 0 0 0 0 TD
バイト 4 リクエスタ ID
+3
6
5 4 3 2 1 0 7 6 5 4 3 2 1 0
EP 0 0 0 0 0 0 0 0 0 0 0 0 0 1
タグ
バイト 8 アドレス [31:2]
0 0 0 0 先頭 BE
0 0
バイト12 R
B–2
PCI Express Compiler Version 6.1
PCI Express コンパイラ・ユーザガイド
Altera Corporation
2006 年 12 月
表 B–5. タイプ 0 コンフィギュレーション書き込みリクエスト
+0
+1
+2
7 6 5 4 3 2 1 0 7 6 5 4 3 2 1 0 7
+3
6
5 4 3 2 1 0 7 6 5 4 3 2 1 0
バイト 0 0 1 0 0 0 1 0 0 0 0 0 0 0 0 0 0 TD EP 0 0 0 0 0 0 0 0 0 0 0 0 0 1
バイト 4 リクエスタ ID
バイト 8 バス番号
0 0 0 0 先頭 BE
タグ
デバイス番号 Func
0
0
0 0 Ext.Reg.
レジスタ番号
0 0
バイト12 R
表 B–6. タイプ 1 コンフィギュレーション書き込みリクエスト
+0
+1
+2
7 6 5 4 3 2 1 0 7 6 5 4 3 2 1 0 7
+3
6
5 4 3 2 1 0 7 6 5 4 3 2 1 0
バイト 0 0 1 0 0 0 1 0 1 0 0 0 0 0 0 0 0 TD EP 0 0 0 0 0 0 0 0 0 0 0 0 0 1
バイト 4 リクエスタ ID
バイト 8 バス番号
0 0 0 0 先頭 BE
タグ
デバイス番号 Func
0
0
0 0 Ext.Reg.
6
5 4 3 2 1 0 7 6 5 4 3 2 1 0
レジスタ番号
0 0
バイト12 R
表 B–7. コンプリーション・ウィズ・データ
+0
+1
+2
7 6 5 4 3 2 1 0 7 6 5 4 3 2 1 0 7
バイト 0 0 1 0 0 1 0 1 0 0 TC
+3
0 0 0 0 TD EP Attr
0 0 長さ
バイト 4 コンプリータ ID
ステータス B バイト数
バイト 8 リクエスタ ID
タグ
0 下位アドレス
バイト12 R
表 B–8. コンプリーション・ロックド・ウィズ・データ
+0
+1
+2
7 6 5 4 3 2 1 0 7 6 5 4 3 2 1 0 7
バイト 0 0 1 0 0 1 0 1 1 0 TC
+3
6
5 4 3 2 1 0 7 6 5 4 3 2 1 0
0 0 0 0 TD EP Attr
0 0 長さ
バイト 4 コンプリータ ID
ステータス B バイト数
バイト 8 リクエスタ ID
タグ
0 下位アドレス
バイト12
Altera Corporation
2006 年 12 月
PCI Express Compiler Version 6.1
B–3
PCI Express コンパイラ・ユーザガイド
データ・ペイロードを含むコンテンツ
表 B–9. メッセージ・ウィズ・データ
+0
+1
+2
7 6 5 4 3 2 1 0 7 6 5 4 3 2 1 0 7
バイト 0 0 1 1 1 0 r
r
r
2
1
0
バイト 4 リクエスタ ID
0 TC
+3
6
5 4 3 2 1 0 7 6 5 4 3 2 1 0
0 0 0 0 TD EP 0 0 0 0 長さ
タグ
メッセージ・コード
バイト 8 スロット電力制限のためのベンダ定義またはオール・ゼロ
バイト12 スロット電力制限のためのベンダ定義またはオール・ゼロ
B–4
PCI Express Compiler Version 6.1
PCI Express コンパイラ・ユーザガイド
Altera Corporation
2006 年 12 月
付録 C.
テスト・ポート・
インタフェース信号
テスト・ポートにはテスト・アウト信号とテスト・イン信号があり、PCI
Express MegaCore ファンクションに観測機能および制御機能を追加し
ます。
Altera Corporation
2006 年 12 月
■
出力ポートは MegaCore ファンクションの内部ノードを表示し、ス
テート・マシンの状態や各エラー・タイプに対するエラー・カウン
タなどの情報を提供します。
■
入力ポートはMegaCoreファンクションを標準以外の方法でコンフィ
ギュレーションするのに使用できます。例えば、自動テストのために
エラーを注入したり、リモート・ブートおよびコンプライアンス・
モードのディセーブルまたは強制などの機能を追加するのに使用で
きます。
PCI Express Compiler Version 6.1
C–1
x1 & x4 MegaCore ファンクション用テスト・アウト・インタフェース 信号
x1 & x4 MegaCore
ファンクション用
テスト・アウト・
インタフェース
信号
表 C–1 に x1 および x4 MegaCore ファンクション用テスト・アウト信号
を示します。
表 C–1. x1 および x4 MegaCore ファンクション用 test_out 信号 (1 / 18)
信号
rx_fval_tlp
rx_hval_tlp
rx_dval_tlp
サブ
ビット
ブロック
TRN rxtl
2:0
説明
受信トランザクション・レイヤ・パケットの受信状態。これらの
信号はトランザクション・レイヤ・パケットの受信シーケンスを
通知します。
●
●
●
TRN rxtl
rx_check_tlp
rx_discard_tlp
rx_mlf_tlp
tlp_err
rxfc_ovf
rx_ecrcerr_tlp
rx_uns_tlp
rx_sup_tlp
10:3
ビット 0: ヘッダの DW0 および DW1 は有効です
ビット 1: ヘッダの DW2 および DW3 は有効です。
ビット 2: データ・ペイロードは有効です
受信トランザクション・レイヤ・パケット・チェック・ステート。
これらの信号はトランザクション・レイヤ・パケット受信シーケ
ンスを通知します。
●
●
●
●
●
●
●
●
ビット 0: LCRC をチェックします
ビット 1: LCRC エラーまたはシーケンス番号エラーを示します
ビット 2: END/ 長さフィールドのミスマッチによる不正なト
ランザクション・レイヤ・パケットを示します
ビット 3: 形成ルールに準拠しない不正なトランザクション・レ
イヤ・パケットを示します。
ビット 4: フロー制御ルールの違反を示します。
ビット 5: ECRC エラーを示します(フロー制御クレジットは更
新されます)
ビット 6: サポートされていないトランザクション・レイヤ・パ
ケットの受信を示します(フロー制御クレジットは更新されま
す)
ビット 7: コンフィギュレーション領域に送られるトランザク
ション・レイヤ・パケットを示します(フロー制クレジットは
更新されます)。
ビット 1、2、3、または 4 が設定されている場合、受信バッファ
からトランザクション・レイヤ・パケットが削除されるため、フ
ロー制御クレジットは消費されません。ビット 5、6、または 7 が
設定されている場合、トランザクション・レイヤ・パケットは受
信バッファに書き込まれた後でコンフィギュレーション領域に送
信され、フロー制御クレジットが更新されます。
C–2
PCI Express Compiler Version 6.1
PCI Express コンパイラ・ユーザガイド
Altera Corporation
2006 年 12 月
表 C–1. x1 および x4 MegaCore ファンクション用 test_out 信号 (2 / 18)
信号
サブ
ビット
ブロック
説明
rx_vc_tlp
TRN rxtl
13:11
トランザクション・レイヤ・パケットバーチャル・チャネル・マッ
ピングの受信。この信号は(トラフィック・クラスに応じて)ト
ランザクション・レイヤ・パケットがマップされるバーチャル・
チャネル・リソースを通知します。
rx_reqid_tlp
TRN rxtl
37:14
Receive ReqID. この 24 ビット信号は、rx_hval_tlp および
rx_ok_tlp がアサートされるとコンプリーション・トランザク
ション・レイヤ・パケットのリクエスタ ID を通知します。
また、この信号の 8 MSB は rx_fval_tlp および rx_ok_tlp
が有効な場合に、トランザクションのタイプとフォーマットを通
知します。
rx_ok_tlp
TRN rxtl
38
受信シーケンス有効。これはシーケンス信号パルスです。前述し
た信号(test_out[37:0])はすべてこの信号がアサートされ
ているときにのみ有効です。
tx_req_tlp
TRN txtl
39
データ・リンク層へのリクエストの送信。この信号は、トランザ
クション・レイヤ・パケットをデータ・リンク層に送信するため
のグローバルバーチャル・チャネル・リクエストです。
tx_ack_tlp
TRN txtl
40
データ・リンク層からのリクエスト送信に対する確認応答。この
信号は、データ・リンク層からトランザクション・レイヤ・パケッ
トを受け入れ時に、トランザクション・レイヤからのグローバル・
リクエストに対する確認応答信号として機能します。
tx_dreq_tlp
TRN txtl
41
データ・リンク層から要求されたデータの送信。この信号はトラ
ンザクション・レイヤからの次のデータを要求するシーケンス信
号です。
tx_err_tlp
TRN txtl
42
トランザクション・レイヤ・パケット無効化リクエストの送信。
この信号は送信されたトランザクション・レイヤ・パケットを破
棄するために、トランザクション・レイヤでアサートされます。
gnt_vc
TRN txtl
50:43
バーチャル・チャネル・アービトレーション結果の送信。この信
号は現在送信中のトランザクション・レイヤ・パケットのアービ
トレーション結果を通知します。
tx_ok_tlp
TRN txtl
51
送信シーケンス有効。この信号はリンク上の初期化されたレーン
数に応じて変化するシーケンス信号パルスで、トランザクション・
レイヤからデータ・リンク層へのデータ転送をイネーブルします。
Altera Corporation
2006 年 12 月
PCI Express Compiler Version 6.1
C–3
PCI Express コンパイラ・ユーザガイド
x1 & x4 MegaCore ファンクション用テスト・アウト・インタフェース 信号
表 C–1. x1 および x4 MegaCore ファンクション用 test_out 信号 (3 / 18)
信号
lpm_sm
サブ
ビット
ブロック
CFG pmgt 55:52
説明
パワー・マネージメント・ステート・マシン。この信号は、レガ
シー低消費電力への遷移をスケジューリングするパワー・マネー
ジメント・ステート・マシン・エンコーディングを示します。
●
●
●
●
●
●
●
●
●
●
0000b: l0_rst
0001b: l0
0010b: l1_in0
0011b: l1_in1
0100b: l0_in
0101b: l0_in_wt
0110b: l2l3_in0
0111b: l2l3_in1
1000b: l2l3_rdy
その他 : Reserved
pme_sent
CFG pmgt 56
PME 送信フラグ。この信号は MegaCore ファンクションによっ
て、PM_PME メッセージが送信されたことをを通知します(エン
ドポイント・モード時のみ)。
pme_resent
CFG pmgt 57
PME 再送信フラグ。この信号は、MegaCore ファンクションがレ
イテンシ・タイマによりタイム・アウトした PM_PME メッセー
ジの再送信を要求したことを通知します(エンドポイント・モー
ド時のみ)。
inh_dllp
CFG pmgt 58
PM による DLLP/ トランザクション・レイヤ・パケットの送信停
止リクエスト。これは低消費電力状態に移行するために、DLLP
の送信を禁止するパワー・マネージメント機能です。
req_phypm
CFG pmgt 62:59
PM による LTSSM の低消費電力への移行指示。LTSSM に低消費
電力状態に移行するよう要求するパワー・マネージメント機能で
す。
●
●
●
●
ack_phypm
CFG pmgt 64:63
●
CFG pcie
65
0:
1:
2:
3:
exit any
requests
requests
requests
low-power state to L0
transition to L0s
transition to L1
transition to L2
LTSSM は PM 遷移イベントを通知します。これは、以下のように
LTTSM が低消費電力状態に移行したことを通知するパワー・マ
ネージメント機能です。
●
pme_status3
rx_pm_pme
bit
bit
bit
bit
bit 0: receiver detects low-power exit
bit 1: indicates that the transition to
low-power state is complete
受信した PM_PME メッセージの破棄。この信号は、ストレージ
容量の不足のため受信した PM_PME メッセージがルート・ポー
トで破棄されたことを通知します。
C–4
PCI Express Compiler Version 6.1
PCI Express コンパイラ・ユーザガイド
Altera Corporation
2006 年 12 月
表 C–1. x1 および x4 MegaCore ファンクション用 test_out 信号 (4 / 18)
信号
サブ
ビット
ブロック
説明
link_up
CFG pcie
66
リンク・アップ。この信号は LTSSM から見てリンクが起動して
いることを通知します。
dl_up
CFG pcie
67
DL Up. この信号は DLCMSM から見てデータ・リンクが起動して
いることを通知します。
vc_en
CFG
vcreg
74:68
バーチャル・チャネル・イネーブル。この信号はソフトウェアに
よってどのバーチャル・チャネルがイネーブルされるかを通知し
ます(VC0 は常にイネーブルされているため、VC0 ビットは通知
されません)
。
vc_status
CFG
vcreg
82:75
バーチャル・チャネル・ステータス。この信号は正常に初期化を
完了したバーチャル・チャネルを通知します。
err_phy
CFG
errmgt
84:83
PHY エラー。以下のような物理層エラーです。
●
●
err_dll
CFG
errmgt
89:85
データ・リンク層エラー。以下のようなデータ・リンク層のエラー
です。
●
●
●
●
●
err_trn
CFG
errmgt
98:90
bit
bit
bit
bit
bit
0:
1:
2:
3:
4:
Transaction layer packet error
Data link layerP error
Replay timer error
Replay counter rollover
Data link layer protocol error
TRNエラー。以下のようなトランザクション・レイヤ・エラーです。
●
●
●
●
●
●
●
●
●
Altera Corporation
2006 年 12 月
bit 0: Receiver port error
bit 1: Training error
bit 0: Poisoned transaction layer packet
received
bit 1: ECRC check failed
bit 2: Unsupported request
bit 3: Completion timeout
bit 4: Completer abort
bit 5: Unexpected Completion
bit 6: Receiver overflow
bit 7: Flow control protocol error
bit 8: Malformed transaction layer packet
PCI Express Compiler Version 6.1
C–5
PCI Express コンパイラ・ユーザガイド
x1 & x4 MegaCore ファンクション用テスト・アウト・インタフェース 信号
表 C–1. x1 および x4 MegaCore ファンクション用 test_out 信号 (5 / 18)
信号
r2c_ack
c2r_ack
rxbuf_busy
rxfc_updated
サブ
ビット
ブロック
TRN
rxvc0
102:99
説明
受信 VC0 ステータス。以下のとおり、VC0 に関連するイベントを
通知します。
●
●
●
●
r2c_ack
c2r_ack
rxbuf_busy
rxfc_updated
TRN
rxvc1
106:013
受信 VC1 ステータス。以下のとおり、VC1 に関連するイベントを
通知します。
●
●
●
●
r2c_ack
c2r_ack
rxbuf_busy
rxfc_updated
TRN
rxvc2
110:107
●
●
●
TRN
rxvc3
114:111
bit 0: transaction layer packet sent to the
configuration space
bit 1: transaction layer packet received
from configuration space
bit 2: Receive buffer not empty
bit 3: Receive flow control credits updated
受信 VC3 ステータス。以下のとおり、VC3 に関連するイベ
ントを通知します。
●
●
●
●
Reserved
bit 0: transaction layer packet sent to the
configuration space
bit 1: transaction layer packet received
from configuration space
bit 2: Receive buffer not empty
bit 3: Receive flow control credits updated
受信 VC2 ステータス。以下のとおり、VC2 に関連するイベントを
通知します。
●
r2c_ack
c2r_ack
rxbuf_busy
rxfc_updated
bit 0: Transaction layer packet sent to the
configuration space
bit 1: Transaction layer packet received
from configuration space
bit 2: Receive buffer not empty
bit 3: Receive flow control credits updated
bit 0: Transaction layer packet sent to the
configuration space
bit 1: Transaction layer packet received
from configuration space
bit 2: Receive buffer not empty
bit 3: Receive flow control credits updated
ビット 131 ∼ 255 の間の連続するすべての信号は、test_in[31:29]
入力で選択されるバーチャル・チャネルによって決まります。
C–6
PCI Express Compiler Version 6.1
PCI Express コンパイラ・ユーザガイド
Altera Corporation
2006 年 12 月
表 C–1. x1 および x4 MegaCore ファンクション用 test_out 信号 (6 / 18)
信号
desc_sm
サブ
ビット
ブロック
TRN rxvc
133:131
説明
受信ディスクリプタ・ステート・マシン。以下のとおり、記述子
ステート・マシン・エンコーディングを受信します。
●
●
●
●
●
●
000: idle
001: desc0
010: desc1
011: desc2
100: desc_wt
others: reserved
desc_val
TRN rxvc
134
受信バイパス・モード有効。この信号は受信したトランザクショ
ン・レイヤ・パケットでパイパス・モードが有効であることを通
知します。
data_sm
TRN rxvc
136:135
受信データ・ステート・マシン。データ・ステート・マシン・エ
ンコーディングを受信します。
●
●
●
●
00:
01:
10:
11:
idle
data_first
data_next
data_last
req_ro
TRN rxvc
137
受信リオーダリング・キュー・ビジー。この信号はトランザクショ
ン・レイヤ・パケット(トランザクション・レイヤ・パケット
FIFO から抽出された情報)が現在リオーダリング・キューで再組
み立て中であることを通知します。
tlp_emp
TRN rxvc
138
受信トランザクション・レイヤ・パケット FIFO エンプティ・フ
ラグ。この信号はトランザクション・レイヤ・パケット FIFO が
空であることを通知します。
tlp_val
TRN rxvc
139
受信トランザクション・レイヤ・パケットがノーマル・キューで
待機中。この信号は、トランザクション・レイヤ・パケット FIFO
から抽出されたトランザクション・レイヤ・パケットがアプリケー
ション層への送信待ち状態であることを通知します。
txbk_sm
TRN txvc
143:140
送信ステート・マシン。ステート・マシン・エンコーディングは
以下のとおりです。
●
●
●
●
●
●
●
●
●
●
Altera Corporation
2006 年 12 月
0000: idle
0001: desc4dw
0010: desc3dw_norm
0011: desc3dw_shft
0100: data_norm
0101: data_shft
0110: data_last
0111: config0
1000: config1
others: reserved
PCI Express Compiler Version 6.1
C–7
PCI Express コンパイラ・ユーザガイド
x1 & x4 MegaCore ファンクション用テスト・アウト・インタフェース 信号
表 C–1. x1 および x4 MegaCore ファンクション用 test_out 信号 (7 / 18)
信号
rx_sub
サブ
ビット
ブロック
TRN rxfc
199:144
説明
受信フロー制御クレジット。利用可能な受信バッファ現行クレ
ジット。
●
●
●
●
●
●
bit
bit
bit
bit
bit
bit
[7:0]: Posted Header (PH)
[19:8]: Posted Data (PD)
[27:20]: Non-Posted Header (NPH)
[35:28]: Non-Posted Data (NPD)
[43:36]: Completion Header (CPLH)
[55:44]: Completion Data (CPLD)
NPH クレジットを上回る NPD クレジットは無意味なため、NPD
に対するフロー制御クレジットは 8 ビットに制限されています。
tx_sub
TRN txfc
255:200
送信フロー制御クレジット。利用可能な送信バッファ現行クレ
ジット。
●
●
●
●
●
●
bit
bit
bit
bit
bit
bit
[7:0]: Posted Header (PH)
[19:8]: Posted Data (PD)
[27:20]: Non-Posted Header (NPH)
[35:28]: Non-Posted Data (NPD)
[43:36]: Completion Header (CPLH)
[55:44]: Completion Data (CPLD)
NPH クレジットを上回る NPD クレジットは無意味なため、NPD
に対するフロー制御クレジットは 8 ビットに制限されています。
dlcm_sm
DLL
dlcmsm
257:256
DLCM ステート・マシン。DLCM ステート・マシン・エンコー
ディング。
●
●
●
●
fcip_sm
DLL
dlcmsm
260:258
00:
01:
10:
11:
dl_inactive
dl_init
dl_active
reserved
Transmit InitFC ステート・マシン。Transmit Init フロー
制御ステート・エンコーディング :
●
●
●
●
●
●
●
●
000:
001:
010:
011:
100:
101:
110:
111:
idle
prep0
prep1
initfc_p
initfc_np
initfc_cpl
initfc_wt
reserved
C–8
PCI Express Compiler Version 6.1
PCI Express コンパイラ・ユーザガイド
Altera Corporation
2006 年 12 月
表 C–1. x1 および x4 MegaCore ファンクション用 test_out 信号 (8 / 18)
信号
rxfc_sm
サブ
ビット
ブロック
DLL
dlcmsm
263:261
説明
Receive InitFC ステート・マシン。Receive Init フロー制
御ステート・マシン :
●
●
●
●
●
●
000:
001:
010:
011:
100:
111:
idle
ifc1_p
ifc1_np
ifc1_cpl
ifc2
reserved
flag_fi1
DLL
dlcmsm
264
Flag_fi1FI1 フラグについては、PCI Express™ ベース仕様 Revision
1.0a で詳細に説明されています。
flag_fi2
DLL
dlcmsm
265
Flag_fi2。FI2 フラグについては、
PCI Express™ ベース仕様 Revision
1.0a で詳細に説明されています。
rxfc_sm
DLL rtry
268:266
リトライ・ステート・マシン。リトライ・ステート・マシン・エ
ンコーディング
●
●
●
●
●
●
●
●
storebuf_sm
DLL rtry
270:269
000:
001:
010:
011:
100:
101:
110:
111:
idle
rtry_ini
rtry_wt0
rtry_wt1
rtry_req
rtry_tlp
rtry_end
reserved
リトライ・バッファ・ストレージ・ステート・マシン。リトライ・
バッファ・ストレージ・ステート・マシン・エンコーディング :
●
●
●
●
00:
01:
10:
11:
idle
rtry
str_tlp
reserved
mem_replay
DLL rtry
271
リトライ・バッファ動作中。この信号は、送信後に受信確認が行
われていないトランザクション・レイヤ・パケットを追跡します。
また、このビットがセットされていると、リプレイ実行中の場合
を除いてリプレイ・タイマも動作しています。
mem_rtry
DLL rtry
272
リプレイ・リクエストの記憶。この信号はリプレイ・タイム・ア
ウト・イベントの発生または NAK DLLP が受信されたことを示
します。
replay_num
DLL rtry
274:273
番号カウンタのリプレイ。この信号は MegaCore ファンクション
による特定のトランザクション・レイヤ・パケットのリプレイ実
行回数をカウントします(PCI Express™ ベース仕様 Revision 1.0a
で詳細に説明されています)。
Altera Corporation
2006 年 12 月
PCI Express Compiler Version 6.1
C–9
PCI Express コンパイラ・ユーザガイド
x1 & x4 MegaCore ファンクション用テスト・アウト・インタフェース 信号
表 C–1. x1 および x4 MegaCore ファンクション用 test_out 信号 (9 / 18)
信号
サブ
ビット
ブロック
説明
val_nak_r
DLL rtry
275
ACK/NAK DLLP の受信。この信号は ACK または NAK DLLP を
受信したことを通知します。 res_nak_r、 tlp_ack、 err_dl
および no_rtry 信号は受信した ACK/NAK DLLP のタイプを詳
細に示します。
res_nak_r
DLL rtry
276
NAK DLLP パラメータ。この信号は受信した ACK/NAK DLLP
が NAK であることを通知します。
tlp_ack
DLL rtry
277
Real ACK DLLP パラメータ。この信号は、受信した ACK DLLP
がリトライ・バッファで 1 つまたは複数のトランザクション・レ
イヤ・パケットの受信を確認したことを通知します。
err_dl
DLL rtry
278
エラー ACK/NAK DLLP パラメータ。この信号は、受信した
ACK/NAK DLLP のシーケンス番号が最後に送信したトランザク
ション・レイヤ・パケットのシーケンス番号より大きいことを通
知します。
no_rtry
DLL rtry
279
リトライなし NAK DLLP パラメータ。この信号は、受信した NAK
DLLP のシーケンス番号が最後に受信確認を行ったトランザク
ション・レイヤ・パケットに対応していることを通知します。
txdl_sm
DLL txdl
282:280
送信トランザクション・レイヤ・パケット・ステート・マシン。
トランザクション・レイヤ・パケット・ステート・マシン・エン
コーディングは以下のとおりです。
●
●
●
●
●
●
●
000:
001:
010:
011:
100:
101:
111:
idle
tlp1
tlp2
tlp3a
tlp5a (ECRC only)
tlp6a (ECRC only)
reserved
この信号を使用して LCRC または ECRC エラーを注入することが
できます。
tx3b
tx4
tx5b
DLL txdl
283
トランザクション・レイヤ・パケットの送信。この信号は LCRC
を付加するパケットの最後の DWORD で設定されます。この信号
を使用してLCRCまたはECRCエラーを注入することができます。
tx0
DLL txdl
284
DLLP の送信。この信号は DLLP が物理層に送信されたときに設
定されます。この信号を使用して CRC または DLLP を注入する
ことができます。
C–10
PCI Express Compiler Version 6.1
PCI Express コンパイラ・ユーザガイド
Altera Corporation
2006 年 12 月
表 C–1. x1 および x4 MegaCore ファンクション用 test_out 信号 (10 / 18)
信号
gnt
サブ
ビット
ブロック
DLL txdl
292:285
説明
送信データ・リンク層のアービトレーション結果。この信号は、
以下のとおり DLLP とトランザクション・レイヤ・パケット間の
アービトレーションの結果を通知します。
●
●
●
●
●
●
●
●
bit
bit
bit
bit
bit
bit
bit
bit
0:
1:
2:
3:
4:
5:
6:
7:
InitFC DLLP
ACK DLLP (high priority)
UFC DLLP (high priority)
PM DLLP
TXN transaction layer packet
RPL transaction layer packet
UFC DLLP (low priority)
ACK DLLP (low priority)
sop
DLL txdl
293
データ・リンク層から PHY への sop(パケットの開始)。この信
号は、SDP/STP シンボルが物理層に送信中であることを通知しま
す。
eop
DLL txdl
294
データ・リンク層から PHY への eop(パケットの終わり)。この
信号は EDB/END シンボルが物理層に送信中であることを通知し
ます。
sop と eop が同時に送信される場合、パケットは DLLP であるこ
とを示します。そうでない場合、パケットはトランザクション・
レイヤ・パケットです。
eot
DLL txdl
295
データ・リンク層から PHY への送信終了。この信号はデータ・リ
ンク層が前の送信を終了し、物理層が低消費電力状態への移行ま
たはリカバリが可能であることを示します。
init_lat_timer DLL rxdl
296
ACK レイテンシ・タイマのイネーブル。この信号は ACK レイテ
ンシ・タイマが動作中であることを通知します。
req_lat
DLL rxdl
297
ACK レイテンシ・タイムアウト。この信号は、ACK レイテンシ・
タイマの満了によるACK/NAK DLLPの再送信がスケジュールさ
れたことを通知します。
tx_req_nak or
tx_snd_nak
DLL rxdl
298
ACK/NAK DLLP への送信要求。この信号は ACK/NAK DLLP
に現在送信が要求されていることを通知します。
tx_res_nak
DLL rxdl
299
ACK/NAK DLLP タイプへの送信要求。この信号は ACK/NAK
DLLP のタイプに送信がスケジュールされていることを通知しま
す。
●
●
Altera Corporation
2006 年 12 月
0: ACK
1: NAK
PCI Express Compiler Version 6.1
C–11
PCI Express コンパイラ・ユーザガイド
x1 & x4 MegaCore ファンクション用テスト・アウト・インタフェース 信号
表 C–1. x1 および x4 MegaCore ファンクション用 test_out 信号 (11 / 18)
信号
rx_val_pm
サブ
ビット
ブロック
DLL rxdl
300
説明
PM DLLP の受信。この信号は PM DLLP が受信されたことを通知
します(タイプは rx_vcid_fc で示されます)。
●
●
●
●
000:
001:
011:
100:
PM_Enter_L1
PM_Enter_L23
PM_AS_Request_L1
PM_Request_ACK
rx_val_fc
DLL rxdl
301
フロー制御 DLLP の受信。この信号は PM DLLP が受信されたこ
とを通知します。フロー制御 DLLP のタイプは rx_typ_fc およ
び rx_vcid_fc で示されます。
rx_typ_fc
DLL rxdl
305:302
受信したフロー制御 DLLP タイプのパラメータ。この信号は受信
したフロー制御 DLLP のタイプを以下のとおり通知します。
●
●
●
●
●
●
●
●
●
rx_vcid_fc
DLL rxdl
308:306
0100:
0101:
0110:
1100:
1101:
1110:
1000:
1001:
1010:
InitFC1_P
InitFC1_NP
InitFC1_CPL
InitFC2_P
InitFC2_NP
InitFC2_CPL
UpdateFC_P
UpdateFC_NP
UpdateFC_CPL
受信したフロー制御 DLLP バーチャル・チャネル ID パラメータ。
この信号は受信したフロー制御 DLLP のバーチャル・チャネル ID
を以下のとおり通知します。
●
●
●
●
000: VCID 0
001: VCID 1
…
111: VCID 7
この信号はまた、受信した PM DLLP のタイプも示します。
crcinv
DLL rxdl
309
無効化されたトランザクション・レイヤ・パケットの受信。この
信号は無効化されたトランザクション・レイヤ・パケットを受信
したことを示します。
crcerr
DLL rxdl
310
LCRC エラーを含むトランザクション・レイヤ・パケットの受信。
この信号は LCRC エラーを含むトランザクション・レイヤ・パ
ケットを受信したことを通知します。
crcval
eqseq_r
DLL rxdl
311
有効なトランザクション・レイヤ・パケットの受信。この信号は、
正しいシーケンス番号を含む有効なトランザクション・レイヤ・
パケットを受信したことを通知します。有効なトランザクション・
レイヤ・パケットはアプリケーション層に送信されます。
C–12
PCI Express Compiler Version 6.1
PCI Express コンパイラ・ユーザガイド
Altera Corporation
2006 年 12 月
表 C–1. x1 および x4 MegaCore ファンクション用 test_out 信号 (12 / 18)
信号
サブ
ビット
ブロック
説明
crcval
!eqseq_r
infseq_r
DLL rxdl
312
重複トランザクション・レイヤ・パケットの受信。この信号はす
でに正常に受信したトランザクション・レイヤ・パケットを再度
受信したことを示します。このようなトランザクション・レイヤ・
パケットは確認なしで破棄されます。
crcval
!eqseq_r
!infseq_r
DLL rxdl
313
エラーのあるトランザクション・レイヤ・パケットの受信。この
信号は、LCRC は有効であるがシーケンス番号が連続しない(現
在のシーケンス番号より大きい)トランザクション・レイヤ・パ
ケットを受信したことを示します。
rx_err_frame
DLL dlink 314
データ・リンク層フレーミング・エラーの検出。この信号は、受
信したデータが DLLP またはトランザクション・レイヤ・パケッ
トと判断できないことを示します。この場合、受信ポート・エラー
が生成され、リンク・リトレーニングが開始されます。
tlp_count
DLL rtry
319:315
リトライ・バッファのトランザクション・レイヤ・パケット数。
この信号は、リトライ・バッファに格納されているトランザクショ
ン・レイヤ・パケット数を示します(飽和限界は 31 です)。
ltssm_r
MAC
ltssm
324:320
LTSSM ステート。LTSSM ステート・エンコーディング :
●
●
●
●
●
●
●
●
●
●
●
●
●
●
●
●
●
●
●
●
●
●
●
●
●
●
Altera Corporation
2006 年 12 月
00000:
00001:
00010:
00011:
00100:
00101:
00110:
00111:
01000:
01001:
01010:
01011:
01100:
01101:
01110:
01111:
10000:
10001:
10010:
10011:
10100:
10101:
10110:
10111:
11000:
11001:
detect.quiet
detect.active
polling.active
polling.compliance
polling.configuration
reserved (polling.speed)
config.linkwidthstart
config.linkaccept
config:disable
config.loopback.entry
config.loopback.active
config.loopback.exit
recovery.rcvlock
recovery.rcvconfig
recovery.idle
L0
disable
loopback.entry
loopback.active
loopback.exit
hot.reset
L0s (transmit only)
L1.entry
L1.idle
L2.idle
L2.transmit.wake
PCI Express Compiler Version 6.1
C–13
PCI Express コンパイラ・ユーザガイド
x1 & x4 MegaCore ファンクション用テスト・アウト・インタフェース 信号
表 C–1. x1 および x4 MegaCore ファンクション用 test_out 信号 (13 / 18)
信号
rxl0s_sm
サブ
ビット
ブロック
MAC
ltssm
326:325
説明
L0 ステートの受信。L0 ステート・マシンの受信。
●
●
●
●
txl0s_sm
MAC
ltssm
329:327
00:
01:
10:
11:
inact
idle
fts
out.recovery
TX L0s ステート。L0 ステート・マシンの送信。
●
●
●
●
●
000b:
001b:
010b:
011b:
100b:
inact
entry
idle
fts
out.l0
timeout
MAC
ltssm
330
LTSSM タイムアウト。この信号は、現在の LTSSM ステートが
LTSSM タイムアウト条件を満足したことを示すフラグとして機
能します。
txos_end
MAC
ltssm
331
LTSSM 終了条件の送信。この信号は、次のステート(L0)へ移行
するための LTSSM 終了条件を満たしていることを示すフラグと
して機能します。次のステートにタイムリに達しない場合は、レ
シーバに問題があります。
tx_ack
MAC
ltssm
332
PLP 受信確認の送信。この信号は、要求した PLP(physical layer
packet)がリンクに送信された場合、1 クロック・サイクルの間
アクティブになります。パケットのタイプは tx_ctrl 信号で定
義されます。
tx_ctrl
MAC
ltssm
335:333
送信 PLP タイプ。この信号は送信した PLP のタイプを以下のと
おり示します。
●
●
●
●
●
●
●
●
txrx_det
MAC
ltssm
343:336
000:
001:
010:
011:
100:
101:
110:
111:
Electrical Idle
Receiver detect during Electrical Idle
TS1 OS
TS2 OS
D0.0 idle data
FTS OS
IDL OS
Compliance pattern
レシーバ検出結果。この信号は各レーンでレシーバ検出結果を通
知するフラグとして機能します。4 MSB は常に 0 です。
C–14
PCI Express Compiler Version 6.1
PCI Express コンパイラ・ユーザガイド
Altera Corporation
2006 年 12 月
表 C–1. x1 および x4 MegaCore ファンクション用 test_out 信号 (14 / 18)
信号
tx_pad
サブ
ビット
ブロック
MAC
ltssm
351:344
説明
送信する TS パターン上での PAD の強制。これはリンク上および
送信される TS1/TS2 OS のレーン・フィールドで PAD 送信を強制
するレーンごとの内部信号です。MegaCore ファンクションは、初
期化プロセス中にこの信号で示すレーンを初期化してはならない
ものと判断します。
4 MSB は常に 0 です。
rx_ts1
MAC
ltssm
359:352
TSI の受信 : この信号は指定されたレーンで TS1 を受信したことを
示します。この信号は LTSSM ステート・マシンによって新しい
ステートに達するとクリアされます。
rx_ts2
MAC
ltssm
367:360
TS2 の受信。この信号は指定されたレーンで TS2 を受信したこと
を示します。この信号は LTSSM ステート・マシンによって新し
いステートに達するとクリアされます。
4 MSB は常に 0 です。
4 MSB は常に 0 です。
rx_8d00
MAC
ltssm
375:368
8 D0.0 シンボルの受信。この信号は、8 個の連続するアイドル・
デ ー タ・シ ン ボ ル を 受 信 し た こ と を 示 し ま す。こ の 信 号 は
config.idle および recovery.idle ステートで有効です。
4 MSB は常に 0 です。
rx_idl
MAC
ltssm
383:376
rx_linkpad
MAC
ltssm
391:384
IDL OS の受信。この信号はレーン単位で IDL OS を受信したこと
を示します。
4 MSB は常に 0 です。
リンク・パッド TS の受信。この信号は、受信した TS1/TS2 のリ
ンク・フィールドが指定したレーンに対して PAD に設定されて
いることを示します。
4 MSB は常に 0 です。
rx_lanepad
MAC
ltssm
399:392
レーン・パッド TS の受信。この信号は、受信した TS1/TS2 のレー
ン・フィールドが指定したレーンに対して PAD に設定されてい
ることを示します。
4 MSB は常に 0 です。
Altera Corporation
2006 年 12 月
PCI Express Compiler Version 6.1
C–15
PCI Express コンパイラ・ユーザガイド
x1 & x4 MegaCore ファンクション用テスト・アウト・インタフェース 信号
表 C–1. x1 および x4 MegaCore ファンクション用 test_out 信号 (15 / 18)
信号
rx_tsnum
サブ
ビット
ブロック
MAC
ltssm
407:400
説明
連続する同一 TS 番号の受信。この信号は、このステートに移行
してから完全に同じパラメータで受信した連続する同一 TS1/TS2
の数を通知します。最大数に達すると、信号は 0 から再開します。
この信号は論理レーン 0 としてコンフィギュレーションされる
レーンに対応しています(レーンの反転によって変化する場合が
あります)。
lane_act
MAC
ltssm
411:408
レーン・アクティブ・モード。この信号は以下のとおりトレーニ
ング中にコンフィギュレーションされたレーン数を示します。
●
●
●
0001: 1 レーン
0010: 2 レーン
0100: 4 レーン
lane_rev
MAC
ltssm
415:412
Reserved
count0
MAC
deskew
418:416
デスキュー FIFO カウント・レーン 0。この信号は物理レーン 0 の
デスキュー FIFO のワード数を示します。
count1
MAC
deskew
421:419
デスキュー FIFO カウント・レーン 1。この信号は物理レーン 1 の
デスキュー FIFO のワード数を示します。
count2
MAC
deskew
424:422
デスキュー FIFO カウント・レーン 2。この信号は物理レーン 2 の
デスキュー FIFO のワード数を示します。
count3
MAC
deskew
427:425
デスキュー FIFO カウント・レーン 3。この信号は物理レーン 3 の
デスキュー FIFO のワード数を示します。
Reserved
N/A
439:428
Reserved
err_deskew
MAC
deskew
447:440
デスキュー FIFO エラー。この信号は、特定の物理レーンでデス
キュー・エラー(デスキュー FIFO オーバフロー)が検出された
かどうかを示します。検出された場合、受信ポート・エラーと見
なされ、リンクのリトレーニングが開始されます。
4MSB は 0 にハード・ワイヤされています。
rdusedw0
PCS0
451:448
エラスティック・バッファ・カウンタ 0。この信号はエラスティッ
ク・バッファのシンボル数を示します。
各レーンのエラスティック・バッファ・カウンタをモニタするこ
とで、受信クロックと送信クロック間の PPM およびレーン間の
スキューを検出できます。汎用 PIPE PHY インタフェースを使
用している場合は無意味です。
C–16
PCI Express Compiler Version 6.1
PCI Express コンパイラ・ユーザガイド
Altera Corporation
2006 年 12 月
表 C–1. x1 および x4 MegaCore ファンクション用 test_out 信号 (16 / 18)
信号
rxstatus0
サブ
ビット
ブロック
PCS0
454:452
説明
PIPE rxstatus 0。この信号はレーン単位で検出および通知さ
れたエラーをモニタするために使用します。例 :
●
●
●
●
●
●
●
●
000:
001:
010:
011:
100:
101:
110:
111:
Receive data OK
1 SKP added
1 SKP removed
Receiver detected
8B/10B decode error
Elastic buffer overflow
Elastic buffer underflow
Running disparity error
汎用PIPE PHYインタフェースを使用している場合は無意味です。
rxpolarity0
PCS0
455
PIPE 極性反転 0。この信号がアサートされると、LTSSM は PCS サ
ブブロックに対して、トレーニング時に受信した 10 ビット・デー
タの極性変転を要求します。
rdusedw1
PCS1
459:456
エラスティック・バッファ・カウンタ 1。この信号はエラスティッ
ク・バッファのシンボル数を示します。
各レーンのエラスティック・バッファ・カウンタをモニタするこ
とで、受信クロックと送信クロック間の PPM およびレーン間の
スキューを検出できます。汎用 PIPE PHY インタフェースを使用
している場合は無意味です。
rxstatus1
PCS1
462:460
PIPE rxstatus 1。この信号はレーン単位で検出および通知さ
れたエラーをモニタするために使用します。例 :
●
●
●
●
●
●
●
●
000:
001:
010:
011:
100:
101:
110:
111:
Receive data OK
1 SKP added
1 SKP removed
Receiver detected
8B/10B decode error
Elastic buffer overflow
Elastic buffer underflow
Running disparity error
汎用PIPE PHYインタフェースを使用している場合は無意味です。
rxpolarity1
Altera Corporation
2006 年 12 月
PCS1
463
PIPE 極性反転 1。この信号がアサートされると、LTSSM は PCS サ
ブブロックに対して、トレーニング時に受信した10 ビット・デー
タの極性変転を要求します。汎用 PIPE PHY インタフェースを使
用している場合は無意味です。
PCI Express Compiler Version 6.1
C–17
PCI Express コンパイラ・ユーザガイド
x1 & x4 MegaCore ファンクション用テスト・アウト・インタフェース 信号
表 C–1. x1 および x4 MegaCore ファンクション用 test_out 信号 (17 / 18)
信号
rdusedw2
サブ
ビット
ブロック
PCS2
467:464
説明
エラスティック・バッファ・カウンタ 2。この信号はエラスティッ
ク・バッファのシンボル数を通知します。
各レーンのエラスティック・バッファ・カウンタをモニタするこ
とで、受信クロックと送信クロック間の PPM およびレーン間の
スキューを検出できます。汎用 PIPE PHY インタフェースを使用
している場合は無意味です。
rxstatus2
PCS2
470:468
PIPE rxstatus 2。この信号はレーン単位で検出および通知され
たエラーをモニタするために使用します。例 :
●
●
●
●
●
●
●
●
000:
001:
010:
011:
100:
101:
110:
111:
receive data OK
1 SKP added
1 SKP removed
Receiver detected
8B/10B decode error
Elastic buffer overflow
Elastic buffer underflow
Running disparity error
汎用PIPE PHYインタフェースを使用している場合は無意味です。
rxpolarity2
PCS2
471
PIPE 極性反転 2。この信号がアサートされると、LTSSM は PCS サ
ブブロックに対して、トレーニング時に受信した 10 ビット・デー
タの極性変転を要求します。汎用 PIPE PHY インタフェースを使
用している場合は無意味です。
rdusedw3
PCS3
475:472
エラスティック・バッファ・カウンタ 3。この信号はエラスティッ
ク・バッファのシンボル数を通知します。
各レーンのエラスティック・バッファ・カウンタをモニタするこ
とで、受信クロックと送信クロック間の PPM およびレーン間の
スキューを検出できます。汎用 PIPE PHY インタフェースを使用
している場合は無意味です。
C–18
PCI Express Compiler Version 6.1
PCI Express コンパイラ・ユーザガイド
Altera Corporation
2006 年 12 月
表 C–1. x1 および x4 MegaCore ファンクション用 test_out 信号 (18 / 18)
信号
rxstatus3
サブ
ビット
ブロック
PCS3
478:476
説明
PIPE rxstatus 3。この信号はレーン単位で検出および通知さ
れたエラーをモニタするために使用します。例 :
●
●
●
●
●
●
●
●
000:
001:
010:
011:
100:
101:
110:
111:
receive data OK
1 SKP added
1 SKP removed
Receiver detected
8B/10B decode error
Elastic buffer overflow
Elastic buffer underflow
Running disparity error
汎用PIPE PHYインタフェースを使用している場合は無意味です。
rxpolarity3
PCS3
479
PIPE 極性反転 3。この信号がアサートされると、LTSSM は PCS サ
ブブロックに対して、トレーニング時に受信した 10 ビット・デー
タの極性変転を要求します。汎用 PIPE PHY インタフェースを使
用している場合は無意味です。
Reserved
PCS4
511:480
Reserved
Altera Corporation
2006 年 12 月
PCI Express Compiler Version 6.1
C–19
PCI Express コンパイラ・ユーザガイド
x8 MegaCore ファンクション用テスト・ アウト・インタフェース信号
x8 MegaCore
ファンクション
用テスト・
アウト・インタ
フェース信号
表 C–2 に x8 MegaCore ファンクション用 test-out 信号を示します。
表 C–2. x8 MegaCore ファンクション用 test_out 信号 (1 / 4)
信号
ltssm_r
rxl0s_sm
サブ
ブロック
ビット
MAC
ltssm
4:0
MAC
ltssm
6:5
説明
LTSSM ステート :LTSSM ステート・エンコーディング :
00000:
00001:
00010:
00011:
00100:
00110:
00111:
01000:
01001:
01010:
01011:
01100:
01101:
01110:
01111:
10000:
10001:
10010:
10011:
10100:
10101:
10110:
10111:
11000:
11001:
detect.quiet
detect.active
polling.active
polling.compliance
polling.configuration
config.linkwidthstart
config.linkaccept
config.lanenumaccept
config.lanenumwait
config.complete
config.idle
recovery.rcvlock
recovery.rcvconfig
recovery.idle
L0
disable
loopback.entry
loopback.active
loopback.exit
Hot reset
L0s
L1.entry
L1.idle
L2.idle
L2 transmit.wake
Rx L0s ステート : 受信 L0s ステート・マシン
00:
01:
10:
11:
inact
idle
fts
out.recovery
C–20
PCI Express Compiler Version 6.1
PCI Express コンパイラ・ユーザガイド
Altera Corporation
2006 年 12 月
表 C–2. x8 MegaCore ファンクション用 test_out 信号 (2 / 4)
信号
txl0s_sm
サブ
ブロック
ビット
説明
MAC
ltssm
9:7
timeout
MAC
ltssm
10
LTSSM のタイムアウト : この信号は、現在の LTSSM ス
テートがLTSSMタイムアウト条件を満足したことを示す
フラグとして機能します。
txos_end
MAC
ltssm
11
送信 LTSSM 終了条件 : この信号は、次のステート(L0)
へ移行するためのLTSSM終了条件を満たしていることを
示すフラグとして機能します。次のステートにタイムリ
に達しない場合は、レシーバに問題があります。
tx_ack
MAC
ltssm
12
送信 PLP 受信確認 : この信号は、要求した PLP(physical
layer packet)がリンクに送信された場合、1 クロック・
サイクルの間アクティブになります。パケットのタイプ
は TX_CTRL で定義されます。
tx_ctrl
MAC
ltssm
15:13
送信 PLP タイプ : この信号は以下のとおりです。
txrx_det
MAC
ltssm
23:16
レシーバ検出結果:この信号は各レーンでレシーバ検出結
果を通知するフラグとして機能します。
tx_pad
MAC
ltssm
31:24
送信する TS パターン上での PAD の強制 : これはリンク
上および送信される TS1/TS2 OS のレーン・フィールド
で PAD 送信を強制するレーンごとの内部信号です。この
コアは、初期化プロセス中にこの信号で示すレーンを初
期化してはならないものと判断します。
rx_ts1
MAC
ltssm
39:32
TSI の受信 : この信号は指定されたレーンで TS1 を受信し
たことを示します。この信号は LTSSM ステート・マシン
によって新しいステートに達するとクリアされます。
rx_ts2
MAC
ltssm
47:40
TS2 の受信 : この信号は指定されたレーンで TS2 を受信
したことを示します。この信号は LTSSM ステート・マシ
ンによって新しいステートに達するとクリアされます。
Altera Corporation
2006 年 12 月
TX L0s ステート : 送信 L0s ステート・マシン
000b:
001b:
010b:
011b:
100b:
000:
001:
010:
011:
100:
101:
110:
111:
inact
entry
idle
fts
out.l0
Electrical Idle
Receiver detect during
TS1 OS
TS2 OS
D0.0 idle data
FTS OS
IDL OS
Compliance pattern
PCI Express Compiler Version 6.1
C–21
PCI Express コンパイラ・ユーザガイド
x8 MegaCore ファンクション用テスト・ アウト・インタフェース信号
表 C–2. x8 MegaCore ファンクション用 test_out 信号 (3 / 4)
信号
サブ
ブロック
ビット
説明
rx_8d00
MAC
ltssm
55:48
8 D0.0 シンボルの受信 : この信号は、8 個の連続するアイ
ドル・データ・シンボルを受信したことを示します。こ
の信号は config.idle および recovery.idle ステートで有効
です。
rx_idl
MAC
ltssm
63:56
8 D0.0 シンボルの受信 : この信号は、8 個の連続するアイ
ドル・データ・シンボルを受信したことを示します。こ
の信号は config.idle および recovery.idle ステートで有効
です。
rx_linkpad
MAC
ltssm
71:64
リンク・パッド TS の受信 : この信号は受信した TS1/TS2
のリンク・フィールドが指定したレーンの PAD に設定さ
れます。
rx_lanepad
MAC
ltssm
79:72
レーン・パッド TS の受信 : この信号は受信した TS1/TS2
のレーン・フィールドが指定したレーンの PAD に設定さ
れます。
rx_tsnum
MAC
ltssm
87:80
連続する同一 TS 番号の受信 : この信号は、このステート
に移行してから完全に同じパラメータで受信した連続す
る同一 TS1/TS2 の数を通知します。最大数に達すると、
信号は 0 から再開します。この信号は論理レーン 0 とし
てコンフィギュレーションされたレーンに対応していま
す。
lane_act
MAC
ltssm
91:88
レーン・アクティブ・モード : この信号は以下のとおりト
レーニング中にコンフィギュレーションされたレーン数
を示します。
0001:
0010:
0100:
1000:
1
2
4
8
lane
lanes
lanes
lanes
lane_rev
MAC
ltssm
95:92
Reserved
count0
MAC
deskew
98:96
デスキューFIFO カウント・レーン 0: この信号は物理レー
ン 0 のデスキュー FIFO のワード数を示します。
count1
MAC
deskew
101:99
デスキューFIFO カウント・レーン 1: この信号は物理レー
ン 1 のデスキュー FIFO のワード数を示します。
count2
MAC
deskew
104:102
デスキューFIFO カウント・レーン 2: この信号は物理レー
ン 2 のデスキュー FIFO のワード数を示します。
count3
MAC
deskew
107:105
デスキューFIFO カウント・レーン 3: この信号は物理レー
ン 3 のデスキュー FIFO のワード数を示します。
count4
MAC
deskew
110:108
デスキューFIFO カウント・レーン 4: この信号は物理レー
ン 4 のデスキュー FIFO のワード数を示します。
C–22
PCI Express Compiler Version 6.1
PCI Express コンパイラ・ユーザガイド
Altera Corporation
2006 年 12 月
表 C–2. x8 MegaCore ファンクション用 test_out 信号 (4 / 4)
信号
サブ
ブロック
ビット
説明
count5
MAC
deskew
113:111
デスキューFIFO カウント・レーン 5: この信号は物理レー
ン 5 のデスキュー FIFO のワード数を示します。
count6
MAC
deskew
116:114
デスキューFIFO カウント・レーン 6: この信号は物理レー
ン 6 のデスキュー FIFO のワード数を示します。
count7
MAC
deskew
119:117
デスキューFIFO カウント・レーン 7: この信号は物理レー
ン 7 のデスキュー FIFO のワード数を示します。
err_deskew
MAC
deskew
127:120
デスキュー FIFO エラー : この信号は、特定の物理レーン
でデスキュー・エラー(デスキュー FIFO オーバフロー)
が検出されたかどうかを示します。検出された場合、受
信ポート・エラーと見なされ、リンクのリトレーニング
が開始されます。
テスト・イン・
インタフェース
test_in ポートのエラー注入機能を使用するには、特定のロジックを実
装する必要があります。例えば、次に送信するトランザクション・レイ
ヤ・パケットで LCRC エラーを強制するには、transmit txdl_sm、
(test_out[282:280])が非アイドル状態の時に、test_in[21] を 1
クロック・サイクルの間アサートする必要があります。
表 C–3 に test_in 信号を示します。
表 C–3. test_in 信号 (1 / 6)
信号
サブ
ビット
ブロック
説明
test_sim
MAC ltssm 0
シミュレーション・モード。この信号は MegaCore ファンクショ
ンの初期化を高速化するには、1 に設定しなければなりません。
test_lpbk
MAC ltssm 1
ループバック・マスタ。この信号はリンクにループバックを指示
するには(マスタ・モードで)1 に設定しなければなりません。
このビットはx8 MegaCoreファンクションで予約されています。
test_discr
MAC ltssm 2
デスクランブル・モード。この信号はデータ・スクランブリング
をディセーブルするには、初期化中 1 に設定しなければなりませ
ん。
test_nonc_phy
MAC ltssm 3
Force_rxdet モード。この信号は PHY の実装が Rx Detect 機能を
サポートしない場合は、1 に設定することができます。MegaCore
ファンクションは検出ステート中には常に最大受信数を検出し、
少なくとも 1 つのレーンに正しいパターンがある場合、コンプラ
イアンス・ステートに移行します。この信号は Stratix GX PHY
実装の場合、MegaCore ファンクション内部で強制されます。
Altera Corporation
2006 年 12 月
PCI Express Compiler Version 6.1
C–23
PCI Express コンパイラ・ユーザガイド
テスト・イン・インタフェース
表 C–3. test_in 信号 (2 / 6)
信号
test_boot
サブ
ビット
ブロック
CFGcfgchk 4
test_compliance MAC ltssm 6:5
説明
リモート・ブート・モード。この信号は、リンクが初期化されて
おらず、ブートがコンポーネントの後ろにある場合にアサートさ
れると、BAR チェックをディセーブルします。
コンプライアンス・テスト・モード。コンプライアンス・モード
のディセーブル / 強制。
●
●
ビット0はコンプライアンス・モードを完全にディセーブルし
ます。
ビット 1 はコンプライアンス・モードを強制します。
test_pwr
CFG
PMGT
7
低消費電力ステート・ネゴシエーションのディセーブル。この信
号をアサートすると、すべての低消費電力ステート・ネゴシエー
ションおよびエントリをディセールします。このモードは、ア
タッチされた PHY が低消費電力リンク・ステートで使用される
電気的アイドル機能をサポートしない場合に使用できます。
MegaCore ファンクションはこのビットがアサートされている
ときには、リンクを Tx L0s ステートまたは L1 ステートにしま
せん。Stratix GX PHY 実装の場合、このビットは MegaCore ファ
ンクションの内部で 1 に強制されます。
test_pcserror
PCS
13:8
レーン・エラーの注入。コンプライアンス・モードのディセーブ
ル / 強制。最初の 3 ビットは以下のモードを示します。
●
●
●
●
●
●
●
●
test_pcserror[2:0]:
test_pcserror[2:0]:
test_pcserror[2:0]:
error
test_pcserror[2:0]:
data
test_pcserror[2:0]:
of END
test_pcserror[2:0]:
of END
test_pcserror[2:0]:
of data
test_pcserror[2:0]:
of END
000: normal mode
001: inject data error
010: inject disparity
011: inject different
100: inject SDP instead
101: inject STP instead
110: inject END instead
111: inject EDB instead
最後の 3 ビットは以下のとおりレーンを示します。
●
●
●
●
test_pcserror[5:3]:
test_pcserror[5:3]:
test_pcserror[5:3]:
test_pcserror[5:3]:
C–24
PCI Express Compiler Version 6.1
PCI Express コンパイラ・ユーザガイド
000:
001:
010:
011:
on
on
on
on
lane
lane
lane
lane
0
1
2
3
Altera Corporation
2006 年 12 月
表 C–3. test_in 信号 (3 / 6)
信号
サブ
ビット
ブロック
説明
test_rxerrtlp
DLL
14
トランザクション・レイヤ・パケット LCRC エラー検出の強制。
この信号がアサートされると、MegaCore ファンクションは次に
受信するトランザクション・レイヤ・パケットを LCRC エラー
があるかのように処理します。これらのビットは x8 MegaCore
ファンクションで予約されています。
test_rxerrdllp
DLL
16:15
DLLP CRC エラー検出の強制。この信号は、MegaCore ファン
クションに次の DLLP の CRC エラーがないかチェックするよう
強制します。
●
●
●
●
00:
01:
10:
11:
the
normal mode
ACK/NAK
PM
flow control These bits are reserved on
x8 MegaCore function.
test_replay
DLL
17
リトライ・バッファの強制。この信号がアサートされると、リト
ライ・バッファはリトライを開始します。これらのビットは x8
MegaCore ファンクションで予約されています。
test_acknak
DLL
19:18
ACK を NAK に置き換え。この信号は ACK を以下のシーケン
ス番号を持つ NAK に置き換えます。
●
●
●
●
00:
01:
10:
11:
normal mode
Same sequence number as the ACK
Sequence number incremented
Sequence number decremented
これらのビットが未使用の場合は、0 にハード・ワイヤして未使
用ロジックを取り除きます。これらのビットは x8 MegaCore ファ
ンクションで予約されています。
test_ecrcerr
DLL
20
送信時の ECRC エラーの注入。この信号をアサートすると、送
信時に ECRC エラーが生成されます。
test_lcrcerr
DLL
21
送信時の LCRC エラーの注入。この信号をアサートすると、送
信時に LCRC エラーが生成されます。これらのビットは x8
MegaCore ファンクションで予約されています。
Altera Corporation
2006 年 12 月
PCI Express Compiler Version 6.1
C–25
PCI Express コンパイラ・ユーザガイド
テスト・イン・インタフェース
表 C–3. test_in 信号 (4 / 6)
信号
test_crcerr
サブ
ビット
ブロック
DLL
23:22
説明
送信時の DLLP CRC エラーの注入。DLLP の送信時に CRC エ
ラーを生成します。
●
●
●
●
00:
01:
10:
11:
normal
PM error
flow control error
ACK error
これらのビットが未使用の場合は、0 にハード・ワイヤして未使
用ロジックを取り除きます。これらのビットは x8 MegaCore ファ
ンクションで予約されています。
C–26
PCI Express Compiler Version 6.1
PCI Express コンパイラ・ユーザガイド
Altera Corporation
2006 年 12 月
表 C–3. test_in 信号 (5 / 6)
信号
test_ufcvalue
サブ
ビット
ブロック
TRN
28:24
説明
アップデート・フロー制御用不正値の生成。この信号はフロー制
御クレジットのアップデート時に不正値を強制します。これは、
トランザクション・レイヤ・パケットが受信バッファから抽出さ
れ、アプリケーション層に送信されるときに、クレジット割り当
てフィールドに1クレジットを追加または削除することによって
行います。
●
●
●
●
●
●
●
●
●
●
●
●
●
●
●
●
●
●
●
●
●
●
●
●
●
00000:
00001:
00010:
00011:
00100:
00101:
00110:
00111:
01000:
01001:
01010:
01011:
01100:
01101:
01110:
01111:
10000:
10001:
10010:
10011:
10100:
10101:
10110:
10111:
11000:
normal mode
UFC_P error on header (+1/0)
UFC_P error on data (0/+1)
UFC_P error on header/data (+1/+1)
UFC_NP error on header (+1/0)
UFC_NP error on data (0/+1)
UFC_NP error on header/data (+1/+1)
UFC_CPL error on header (+1/0)
UFC_CPL error on data (0/+1)
UFC_CPL error header/data (+1/+1)
UFC_P error on header (-1/0)
UFC_P error on data (0/-1)
UFC_P error on header/data (-1/-1)
UFC_NP error on header (-1/0)
UFC_NP error on data (0/-1)
UFC_NP error on header/data (-1/-1)
UFC_CPL error on header (-1/0)
UFC_CPL error on data (0/-1)
UFC_CPL error header/data (-1/-1)
UFC_P error on header/data (+1/-1)
UFC_P error on header/data (-1/+1)
UFC_NP error on header/data (+1/-1)
UFC_NP error on header/data (-1/+1)
UFC_CPL error header/data (+1/-1)
UFC_CPL error header/data (-1/+1)
これらのビットが未使用の場合は、0 にハード・ワイヤして未使
用ロジックを取り除きます。これらのビットは x8 MegaCore ファ
ンクションで予約されています。
Altera Corporation
2006 年 12 月
PCI Express Compiler Version 6.1
C–27
PCI Express コンパイラ・ユーザガイド
テスト・イン・インタフェース
表 C–3. test_in 信号 (6 / 6)
信号
test_vcselect
サブ
ビット
ブロック
TRN
31:29
説明
バーチャル・チャネル・テストの選択。この信号はテスト・アウ
ト・インタフェースで現在検討されているバーチャル・チャネル
を示します(test_out[255:131])。このバーチャル・チャ
ネルのテスト選択は、 test_out バスの一部を、別のバーチャ
ル・チャネル(VC)からの出力デバッグ信号に切り替える mux
の選択入力です。例 :
●
●
●
●
test_vcselect[31:29]:000:test_out[255:131]
describes activity for VC0
test_vcselect[31:29]:001:test_out[255:131]
describes activity for VC1
test_vcselect[31:29]:010:test_out[255:131]
describes activity for VC2
...
未使用ロジックを取り除くには、この信号の特定ビットを 0 に設
定しなければなりません。
●
●
●
1 本のバーチャル・チャネル(またはまったく未使用の信号)
: 3 ビットすべてを 000 に設定します。
2 本のバーチャル・チャネル : 2 MSB を 00 に設定します。
3 本または 4 本のバーチャル・チャネル : MSB を 0 に設定しま
す。これらのビットは x8 MegaCore ファンクションで予約さ
れています。
C–28
PCI Express Compiler Version 6.1
PCI Express コンパイラ・ユーザガイド
Altera Corporation
2006 年 12 月