• 検索結果がありません。

PCI Express Compiler ユーザガイド ~シミュレーション編・SOPC Builder フロー~

N/A
N/A
Protected

Academic year: 2021

シェア "PCI Express Compiler ユーザガイド ~シミュレーション編・SOPC Builder フロー~"

Copied!
24
0
0

読み込み中.... (全文を見る)

全文

(1)

2010 年 6 月

PCI Express Compiler ユーザガイド

~シミュレーション編・

SOPC Builder フロー~

(2)

PCI Express Compiler ユーザガイド ~シミュレーション編・SOPC Builder フロー~

目次

1. はじめに ... 3 2. 操作方法 ... 4 2-1. Quartus II プロジェクトの作成...4 2-2. SOPC Builder の起動...8

2-3. PCI Express MegaCore Function のパラメータ設定 ...9

2-4. SOPC Builder システムにコンポーネントを追加 ...11

2-5. SOPC Builder でのコンポーネント接続 ...13

2-6. SOPC Builder システムの生成 ...15

(3)

1. はじめに

この資料では PCI Express Compiler MegaCore® Function において、以下のコンポーネントを含むような システム構成を SOPC Builder フローを使用して作成およびシミュレーションを実行する手順についてご案 内します。

図 1-1 にシステムの構成例を示します。 „ PCI Express x4 MegaCore Function „ On-Chip memory „ DMA controller 図 1-1 : SOPC Builder で生成した場合のエンド・ポイント・システム 上図サンプル・デザインは、以下の手順で作成することができます。 1. Quartus® II プロジェクトの作成 2. SOPC Builder の起動

3. PCI Express MegaCore Function のパラメータ設定 4. SOPC Builder システムにコンポーネントを追加 5. SOPC Builder でのコンポーネント接続

6. SOPC Builder システムの生成

7. SOPC Builder システムのシミュレーション

このデザイン例で使用する作業環境は以下のとおりです。

‹ ツール : Quartus II v9.1Service Pack 2、PCI Express Compiler v9.1、ModelSim®-Altera® 6.5b

‹ デバイス : Stratix® IV GX (EP4SGX230KF40C2)

本資料は、メーカ資料 『PCI Express Compiler User Guide』 の補助資料としてご利用ください。 URL : http://www.altera.co.jp/literature/ug/ug_pci_express.pdf

(4)

2. 操作方法

2-1. Quartus II プロジェクトの作成

1. Quartus II を起動し、File メニュー ⇒ New Project Wizard をクリックします。

2. New Project Wizard の Introduction 画面が表示される場合には、Next ボタンをクリックし次へ進み ます。

3. Directory, Name, Top-Level Entity [ page 1 of 5 ]

プロジェクト・ディレクトリ、プロジェクト名、トップ・レベル・デザイン名を入力して Next ボタンをクリック。 (例)プロジェクト・ディレクトリ : C:¥sopc_pcie – プロジェクト名 : pcie_top – トップ・レベル・デザイン名 : pcie_top ※ 入力の際には半角英数字を用いてください。全角やスペースなどが含まれている場合、エラー が表示されることがあります。プロジェクト名とトップ・レベル・デザイン名は、プロジェクトの管 理をし易くするためにも同じにすることを推奨します。

(5)

4. Add Files [ page 2 of 5 ]

User Libraries をクリックし、ブラウズボタンから PCI Express Compiler がインストールされているディ レクトリのパスを入力します。Add ボタンをクリックし IP Library の登録を行い、OK ボタン ⇒ Next ボタンをクリックします。

(6)

5. Family & Devices Settings [ page 3 of 5 ]

ターゲット・デバイスを Stratix IV GX (EP4SGX230KF40C2) に設定し、Next ボタンをクリックしま す。

6. EDA Tool Settings [ page 4 of 5 ]

(7)

7. Summary [ page 5 of 5 ]

今までに設定した内容を確認し、問題がなければ Finish ボタンをクリックします。

(8)

2-2. SOPC Builder の起動

1. Quartus II の Tools メニュー ⇒ SOPC Builder を選択します。

Create New System ウィンドウが起動したら、System Name と Target HDL を入力して OK ボタン をクリックします。

(例) System Name : pcie_top Target HDL : Verilog

(9)

2. System Contentst タブから Interface Protocols ⇒ PCI ⇒ PCI Express Compiler を選択してダブル クリックまたは Add ボタンをクリックし、PCI Express Compiler の設定ウィザードを起動させます。

2-3. PCI Express MegaCore Function のパラメータ設定

1. System Settings タブを選択し、以下のようにパラメータの設定を行います。

・ PCIe Core Type : PCI Express hard IP ・ PHY type : Stratix IV GX

・ Lanes : x4

(10)

2. PCI Registers タブを選択し、以下のようにパラメータの設定を行います。

・ PCI Base Address Register :

64-bit Prefetchable Memory with Auto BAR Size, Auto Avalon Base Address 32-bit Non-Prefetchable Memory with Auto BAR Size, Auto Avalon Base Address

3. Avalon Configuration タブを選択し、以下のようにパラメータの設定を行います。

Avalon Clock Domain : Use separate clock PCIe Peripheral Mode : Requester / Completer

Address Translation Table Configuration : Dynamic translation table Address Translation Table Size : Number of Address pages : 2

Size of address pages : 1 MByte – 20 bits 4. Finish ボタンをクリックし、SOPC Builder の設定画面に戻ります。

(11)

2-4. SOPC Builder システムにコンポーネントを追加

システムに DMA Controller と On-Chip Memory を追加します。

1. System Contents タブ ⇒ Memories and Memory Controllers ⇒ DMA ⇒ DMA Controller を選

択します。Add ボタンをクリックし、表示された画面から以下のようにパラメータ設定を行います。

・ Transfer size : Width of the DMA length register : 13 bits

・ Burst Transactions : Enable burst transfers, Maximum burst size : 1024 words ・ FIFO Implementation : Construct FIFO from embedded memory blocks

2. Finish ボタンをクリックすると、SOPC Builder システムの中に DMA Controller モジュールが追加さ れます。

(12)

3. System Contents タブ ⇒ Memories and Memory Controllers ⇒ On-Chip ⇒ On-Chip Memory (RAM or ROM) を選択し、以下のようにパラメータの設定を行います。

Memory type : RAM (Writable), Block type : Auto Size : Data width 64-bit, Total memory size 4096 Bytes

4. Finish ボタンをクリックすると On-Chip Memory モジュールが追加され、PCI Express Compiler, DMA Controller, On-Chip Memory の 3 つのコンポーネントが SOPC Builder システムの中に構築さ れます。

(13)

2-5. SOPC Builder でのコンポーネント接続 SOPC Builder 上でのコンポーネントの接続は、表示されているポートの交差点をクリックすることで行う ことができます。“○” はポートが接続されていない状態を表します。 “●” はポートが接続されている状態 を表しています。 図 1-2 : SOPC Builder のコンポーネント接続例 1. 図 1-2 に示すように SOPC Builder 上でコンポーネントの接続を行います。

2. Clock Settings の MHz の項目をダブルクリックして 125.0 を入力し、pcie_compiler_0 のクロック (avalon_clock) と clk_0 を接続します。

※ clk_0 が表示されていない場合は、Filters ボタンを押し、Filter を All に設定します。 3. 次にキャリブレーションを行うための cal_clk を以下の手順で追加します。

Clock Settings の Add ボタンを押して clk_1 信号を追加し、cal_clk にリネームします。 MHz の項目をダブルクリックして 10 – 125 MHz のレンジで周波数を設定します(本資料で

は 125 MHz に設定します)。

pcie_compiler_0 の キャリブレーション・クロック (cal_blk_clk) と cal_clk を接続します。 4. System ⇒ Auto-Assign IRQs を実行し、IRQ の優先度を自動的に設定します(通常は任意に設定し

ます)。

5. スレイブ・ポートの Base Address を以下の表に合わせて設定します。

6. 以上の設定により SOPC Builder システムへのコンポーネント接続は完了します。

未接続

(14)
(15)

2-6. SOPC Builder システムの生成

1. Next ボタンをクリックし、System Generation タブに切り替えます。

2. Options ⇒ Simulation. Create project simulator files にチェックを入れ、Generate ボタンをクリックし ます。

3. Generate が成功すると、“Info: System generation was successful.” と表示されます。Exit ボタンをク リックしてシステムの保存を行い、SOPC Builder を閉じます。

(16)

2-7. SOPC Builder システムのシミュレーション SOPC Builder は構成したシステムのために、自動的にシミュレーション環境を作成します。プロジェク ト・ディレクトリの中に、“pcie_top_sim” というサブ・ディレクトリが作成されていることを確認してください。 このサブ・ディレクトリの中には、ユーザが構成した PCI Express システムのシミュレーションに必要なファ イルとモデルが生成されています。 今回のデザイン例のシミュレーションには以下の環境が必要となります。 ・ SOPC Builder で構成した PCI Express のデザイン

“プロジェクト・ディレクトリ¥pcie_top_sim” の中に生成されているシミュレーション・スクリプト ・ ModelSim-Altera Edition 6.5b

※ ModelSim SE / PE や 3rd Party のシミュレータ・ツールを使用することも可能です。以下 URL の資 料をご覧ください。

URL: http://www.altera.com/literature/hb/qts/qts_qii53014.pdf

SOPC Builder で構成した PCI Express のファンクション・シミュレーション・モデルは、プロジェクト・ディレク トリの中に “.vo” または“.vho” ファイルとして生成されます。また、PCI Express のテストベンチ・ファイルは、 “プロジェクト・ディレクトリ¥pci_express_compiler_0_examples¥sopc¥testbench” の中に格納されています。

このテストベンチの詳細については、PCI Express Compiler User Guide “Chapter 7 : Testbench and Example Designs” をご確認ください。

注意 : Quartus II ver9.1 以降を使用する場合、シミュレーションにおいて DMA 転送テストが失敗する可能 性があります。これは、PCI Express Core と DMAC の IRQ 信号が正しく接続されていないためです。 これを回避するため、以下のように <sopc variation>.v ファイルの記述を変更してください。

【変更前】

// pcie_compiler_0_Rx_Interface_irq of type irq does not connect to anything so wire it to default (0) assign pcie_compiler_0_Rx_Interface_irq = 0;

【変更後】

// pcie_compiler_0_Rx_Interface_irq of type irq does not connect to anything so wire it to default (0) assign pcie_compiler_0_Rx_Interface_irq = dma_0_control_port_slave_irq;

(17)

下記に今回のデザイン例のシミュレーション方法を示します。

1. まず、ターゲット・メモリと DMA メモリのテストを行うために、シミュレーション・ファイルの編集を行いま す。

“プロジェクト・ディレクトリ¥pci_express_compiler_0_examples¥sopc¥testbench” に生成されている “altpcietb_bfm_driver.v” を開き、下記の項目の値に編集を加えます。

parameter RUN_TGT_MEM_TST = 0; ⇒ parameter RUN_TGT_MEM_TST = 1; parameter RUN_DMA_MEM_TST = 0; ⇒ parameter RUN_DMA_MEM_TST = 1;

デザインに VHDL を使用している場合には、“altpcietb_bfm_driver.vhd” を開き、下記のように編集 します。

RUN_TGT_MEM_TST : std_logic := ‘0’ ⇒ RUN_TGT_MEM_TST : std_logic := ‘1’ ; RUN_DMA_MEM_TST : std_logic := ‘0’ ⇒ RUN_DMA_MEM_TST : std_logic := ‘1’ ;

2. ModelSim-Altera 6.5b を起動し、ワーキング・ディレクトリ(シミュレーション・ファイルが含まれているディ レクトリ)を指定します。 (例) C:¥sopc_pcie¥pcie_top_sim 3. 下記のコマンドを入力し、シミュレーションのセットアップを実行します。 “source setup_sim.do” 4. 下記のコマンドを入力し、デザインのロードを行います。 “s”

(18)

5. 下記のコマンドを入力し、波形のセットアップを行います。 “do wave_presets.do”

ここで選択されている信号がシミュレーション実行時に表示されます。

6. 下記のコマンドを入力し、デザインのシミュレーションを実行します。 “run -all”

(19)

7. シミュレーションが終了すると、“# SUCCESS: Simulation stopped due to successful completion!” と表 示され、wave ウィンドウに波形が表示されます。

(20)

このデザイン例のテスト・ドライバは以下のトランザクションを実行して表示します。

„ リンクの初期化後、システム内に構成した PCI Express MegaCore Function への様々なコンフィギ ュレーション・アクセス

„ DMA コンポーネントから送信されるリクエストのための、アドレス変換テーブルのセットアップ „ ルート・ポート・BFM 共有メモリから 4 KBytes データの Read を行うための、DMA コントロー

ラのセットアップ

„ ルート・ポート・BFM 共有メモリへ 4 KBytes データの Write を行うための、 DMA コントロー ラのセットアップ

„ データの比較を行い、レポートを表示

上記のトランザクションの進行度はシミュレーション中、ModelSim 上の Transcript ウィンドウに表示されます。 以下にシミュレーション結果の概要を示します。

******************************************************************************************* # INFO: 464 ns Completed initial configuration of Root Port.

# INFO: 3644 ns EP LTSSM State: DETECT.ACTIVE # INFO: 3660 ns RP LTSSM State: DETECT.ACTIVE # INFO: 3692 ns EP LTSSM State: POLLING.ACTIVE # INFO: 6908 ns RP LTSSM State: POLLING.ACTIVE # INFO: 9036 ns RP LTSSM State: POLLING.CONFIG # INFO: 9356 ns EP LTSSM State: POLLING.CONFIG

# INFO: 10444 ns EP LTSSM State: CONFIG.LINKWIDTH.START # INFO: 10636 ns RP LTSSM State: CONFIG.LINKWIDTH.START # INFO: 11276 ns EP LTSSM State: CONFIG.LINKWIDTH.ACCEPT # INFO: 11804 ns RP LTSSM State: CONFIG.LINKWIDTH.ACCEPT # INFO: 12124 ns RP LTSSM State: CONFIG.LANENUM.WAIT # INFO: 12748 ns EP LTSSM State: CONFIG.LANENUM.WAIT # INFO: 12940 ns EP LTSSM State: CONFIG.LANENUM.ACCEPT # INFO: 13084 ns RP LTSSM State: CONFIG.LANENUM.ACCEPT # INFO: 13404 ns RP LTSSM State: CONFIG.COMPLETE

# INFO: 13852 ns EP LTSSM State: CONFIG.COMPLETE # INFO: 14940 ns EP LTSSM State: CONFIG.IDLE # INFO: 15132 ns RP LTSSM State: CONFIG.IDLE # INFO: 15212 ns RP LTSSM State: L0 # INFO: 15468 ns EP LTSSM State: L0 ******************************************************************************************* ※ L0 state : リンクがアクティブな状態で、制御パケットやデータ・パケットを送受信することが可能です。全 ての電力管理ステート(L0s/L1/L2) には L0 ステートから遷移します。 レシーバ検出 レーン極性検出、データ・レート確定 リンクのレーン構成を確立 L0 ステートに遷移 正常にリンク

(21)

******************************************************************************************* # INFO: 16840 ns Configuring Bus 001, Device 001, Function 00

# INFO: 16840 ns EP Read Only Configuration Registers: # INFO: 16840 ns Vendor ID: 1172 # INFO: 16840 ns Device ID: 0004 # INFO: 16840 ns Revision ID: 01 # INFO: 16840 ns Class Code: FF0000 # INFO: 16840 ns Subsystem Vendor ID: 1172 # INFO: 16840 ns Subsystem ID: 0004

# INFO: 16840 ns Interrupt Pin: INTA# used

******************************************************************************************* # INFO: 17680 ns PCI MSI Capability Register:

# INFO: 17680 ns 64-Bit Address Capable: Supported # INFO: 17680 ns Messages Requested: 1

******************************************************************************************* # INFO: 21880 ns EP PCI Express Link Status Register (1041):

# INFO: 21880 ns Negotiated Link Width: x4

# INFO: 21880 ns Slot Clock Config: System Reference Clock Used # INFO: 22772 ns RP LTSSM State: RECOVERY.RCVRLOCK

# INFO: 23180 ns EP LTSSM State: RECOVERY.RCVRLOCK # INFO: 23708 ns EP LTSSM State: RECOVERY.RCVRCFG # INFO: 23876 ns RP LTSSM State: RECOVERY.RCVRCFG # INFO: 25028 ns RP LTSSM State: RECOVERY.IDLE # INFO: 25308 ns EP LTSSM State: RECOVERY.IDLE # INFO: 25388 ns EP LTSSM State: L0

# INFO: 25540 ns RP LTSSM State: L0

# INFO: 26384 ns Current Link Speed: 2.5GT/s

******************************************************************************************* # INFO: 27224 ns EP PCI Express Link Control Register (0040):

# INFO: 27224 ns Common Clock Config: System Reference Clock Used

******************************************************************************************* # INFO: 28256 ns EP PCI Express Capabilities Register (0001):

# INFO: 28256 ns Capability Version: 1

# INFO: 28256 ns Port Type: Native Endpoint

******************************************************************************************* # INFO: 28256 ns EP PCI Express Device Capabilities Register (00008000):

# INFO: 28256 ns Max Payload Supported: 128 Bytes # INFO: 28256 ns Extended Tag: Not Supported # INFO: 28256 ns Acceptable L0s Latency: Less Than 64 ns # INFO: 28256 ns Acceptable L1 Latency: Less Than 1 us # INFO: 28256 ns Attention Button: Not Present # INFO: 28256 ns Attention Indicator: Not Present # INFO: 28256 ns Power Indicator: Not Present

******************************************************************************************* ※ L0s state : リンクは電気的にアイドル状態になりますが、クロックや PLL は安定して動作している状態で、 消費電力は L0 ステートの 30~40%程度が想定されています。L0 ステートへの復帰は、数 100ns から 数us 程度と非常に高速です。 読み取り専用レジスタ 64-bit アドレッシング可能 リンク幅 : x4 リンク復旧 リンク速度 : 2.5 GT/s コモン・クロック・モード構成 ポートタイプ : Native Endpoint

Max Payload Size : 128 Bytes

L0s 許容レイテンシ : 64 ns 未満

(22)

L1 state : リンクは電気的にアイドル状態になり、PLL も停止されて消費電力は L0 ステートの 10~20% 程度が想定されています。L0 ステートへの復帰には数 us から数 10us 程度が必要となります。

******************************************************************************************* # INFO: 28256 ns EP PCI Express Link Capabilities Register (0103F441):

# INFO: 28256 ns Maximum Link Width: x4 # INFO: 28256 ns Supported Link Speed: 2.5GT/s # INFO: 28256 ns L0s Entry: Supported # INFO: 28256 ns L1 Entry: Not Supported # INFO: 28256 ns L0s Exit Latency: More than 4 us # INFO: 28256 ns L1 Exit Latency: More than 64 us # INFO: 28256 ns Port Number: 01

# INFO: 28256 ns Surprise Dwn Err Report: Not Supported # INFO: 28256 ns DLL Link Active Report: Not Supported

******************************************************************************************* # INFO: 29136 ns EP PCI Express Device Control Register (0010):

# INFO: 29136 ns Error Reporting Enables: 0

# INFO: 29136 ns Relaxed Ordering: Enabled # INFO: 29136 ns Max Payload: 128 Bytes # INFO: 29136 ns Extended Tag: Disabled # INFO: 29136 ns Max Read Request: 128 Bytes

******************************************************************************************* ※ Relaxed Ordering : トランザクションの実行順序を入れ替えることが可能になります。

Extended Tag : アプリケーション・レイヤが送信する、Non-Posted リクエストに対してサポートされるタグ 数を32 以上にすると設定されます。

******************************************************************************************* # INFO: 29136 ns EP PCI Express Device Status Register (0000):

# INFO: 29136 ns

# INFO: 29976 ns EP PCI Express Virtual Channel Capability: # INFO: 29976 ns Virtual Channel: 1

# INFO: 29976 ns Low Priority VC: 0

******************************************************************************************* ※ Virtual Channel : バーチャル・チャネルとは、チャネルを仮想化することにより複数の独立したデータ・ス トリームを扱うことができる機能です。 ※ Low Priority VC : “0” は VC に優先順位がないことを意味し、”1” は VC に優先順位があることを意味 します。 バーチャル・チャネル機能 VC の優先順位 L0 state : サポート L1 state : 未サポート L0 脱出レイテンシ : 4 us 以上 Error Reporting 機能をディセーブル Relaxed Ordering 機能をイネーブル Extended Tag をディセーブル

(23)

******************************************************************************************* # INFO: 33008 ns BAR Address Assignments:

# INFO: 33008 ns BAR Size Assigned Address Type # INFO: 33008 ns --- --- --- # INFO: 33008 ns BAR1:0 4 KBytes 00000001 00000000 Prefetchable # INFO: 33008 ns BAR2 32 KBytes 00200000 Non-Prefetchable # INFO: 33008 ns BAR3 Disabled

# INFO: 33008 ns BAR4 Disabled # INFO: 33008 ns BAR5 Disabled # INFO: 33008 ns ExpROM Disabled

# INFO: 34104 ns Completed configuration of Endpoint BARs.

******************************************************************************************* Prefetchable Memory : 事前読み込みを行い、性能の向上を図ることができます。

******************************************************************************************* # INFO: 35064 ns Starting Target Write/Read Test.

# INFO: 35064 ns Target BAR = 0

# INFO: 35064 ns Length = 004096, Start Offset = 000000 # INFO: 47272 ns Target Write and Read compared okay! # INFO: 47272 ns

# INFO: 47272 ns Starting DMA Read/Write Test. # INFO: 47272 ns Setup BAR = 2

# INFO: 47272 ns Length = 004096, Start Offset = 000000 # INFO: 55772 ns Interrupt Monitor: Interrupt INTA Asserted # INFO: 55772 ns Clear Interrupt INTA

# INFO: 56748 ns Interrupt Monitor: Interrupt INTA Deasserted # INFO: 66164 ns MSI recieved!

# INFO: 66164 ns DMA Read and Write compared okay!

******************************************************************************************* # SUCCESS: Simulation stopped due to successful completion!

******************************************************************************************* 以上がModelSim を使用したシミュレーション結果の概要です。 ベース・アドレス・レジスタの割り当て BAR1:0 に 4 KBytes のプリフェッチ・メモリを割り当て BAR2 に 32KBytes のノン・プリフェッチ・メモリを割り当て Endpoint BAR の設定が完了

Target メモリの Write / Read テストを開始

DMA メモリの Read / Write テストを開始 転送長 : 4096 Bytes, オフセット : 000000

Write データと Read データが一致 ⇒ OK!

シミュレーション成功!

転送長 : 4096 Bytes, オフセット : 000000

Read データと Write データが一致 ⇒ OK! INTA のアサート & デアサートを行い、 データ転送の終了を通知

(24)

免責、及び、ご利用上の注意 弊社より資料を入手されましたお客様におかれましては、下記の使用上の注意を一読いただいた上でご使用ください。 1. 本資料は非売品です。許可無く転売することや無断複製することを禁じます。 2. 本資料は予告なく変更することがあります。 3. 本資料の作成には万全を期していますが、万一ご不明な点や誤り、記載漏れなどお気づきの点がありましたら、本資料を入手されました下記代理店までご 一報いただければ幸いです。 株式会社アルティマ : 〒222-8563 横浜市港区新横浜 1-5-5 マクニカ第二ビル TEL: 045-476-2155 HP: http://www.altima.co.jp 技術情報サイト EDISON : https://www.altima.jp/members/index.cfm 株式会社エルセナ : 〒163-0928 東京都新宿区西新宿 2-3-1 新宿モノリス 28F TEL: 03-3345-6205 HP: http://www.elsena.co.jp 技術情報サイト ETS : https://www.elsena.co.jp/elspear/members/index.cfm 4. 本資料で取り扱っている回路、技術、プログラムに関して運用した結果の影響については、責任を負いかねますのであらかじめご了承ください。 5. 本資料は製品を利用する際の補助的な資料です。製品をご使用になる場合は、英語版の資料もあわせてご利用ください。

図 1-1 にシステムの構成例を示します。

参照

関連したドキュメント

BC107 は、電源を入れて自動的に GPS 信号を受信します。GPS

(ページ 3)3 ページ目をご覧ください。これまでの委員会における河川環境への影響予測、評

この課題のパート 2 では、 Packet Tracer のシミュレーション モードを使用して、ローカル

船舶の航行に伴う生物の越境移動による海洋環境への影響を抑制するための国際的規則に関して

ダウンロードしたファイルを 解凍して自動作成ツール (StartPro2018.exe) を起動します。.

法制執務支援システム(データベース)のコンテンツの充実 平成 13

環境への影響を最小にし、持続可能な発展に貢

○水環境課長