PCIe(Peripheral Component Interconnect Express)インタフェースは、システムの性能や機能を向上させ、柔軟性/拡張性に優れていることから、さまざまな電子機器で採用されている。FPGAベンダーはPCIeインタフェースをハードIPで実装した製品群と使いやすい開発ツールを充実させることで、PCIeベースのFPGA設計を支援する。

ハードIPコアでPCIe搭載

 PCIeは、大容量のデータを高速に伝送するためのI/Oシリアル・インタフェース規格で、ハイエンド・プロセッサ・システムの標準的なインタフェースの1つである。コンピュータ拡張規格として2002年にPCI-SIGが策定し、2003年にリリースされた。パラレル・バス方式のPCI規格が伝送速度の限界を迎える中で、PCIeは高速シリアル・インタフェース技術を採用することで、"高速データ伝送"という市場のニーズに応えていくこととなった。パラレル・バス方式に比べて、I/O数の削減にも寄与している。

 こうした動きに対して、デバイスメーカーはPCIeソリューションの提供にどのように関わってきたのだろうか。アルテラの場合、5年以上も前からPCIeソリューションを開発してきた。例えば、トランシーバを搭載していないFPGA向けのソフトIP(PIPEインタフェース)と、トランシーバを内蔵したFPGA「Stratix GX」用ソフトIPの2種類を第1弾として用意した。

 現在では、全ての40nm/28nm FPGAファミリでハードIPコアのPCIe搭載品を準備している。例えば、PCIe Gen1×1/×4/×8用のハードIPをサポートする低コスト40nm「Arria II GX FPGA」、PCIe Gen2のハードIPをサポートする「Stratix IV FPGA」、PCIe Gen3用のハードIPをサポートする「Stratix V GX FPGA」などがある(図1)。

図1 アルテラFPGAがサポートしているPCIeハードIP
図1 アルテラFPGAがサポートしているPCIeハードIP

 これらの製品は、PCI-SIGインテグレーターズ・リストに記載されており、さまざまなマザーボードやチップセットとの相互運用性を検証済みである。さらに、設計者が使いやすいようにPCIe IPコアをより使いやすくするため、さまざまなPCIeベースの開発キットやAvalon-MMインタフェース、Qsysといったソフトウェア・ツールが準備されている。

 前回の「『Qsys』で実現するシステム・レベル設計」でも述べたが、システム・レベルの設計効率を高めるには、設計資産を再利用することが有効な手段の1つである。例えば、アルテラが提供するPCIeハードIPを活用することで、設計者はさまざまなメリットを享受できる。まず、内蔵されたPCIeのIP自体が既に動作検証を終えている点だ。タイミング収束で苦労することもない。高性能なチップになればなるほど動作タイミングの問題は重要な要件となる。その動作が事前に保証されているため、検証作業を軽減することができる。

 次に、アルテラではハードIPでありながら、柔軟なソリューションを提供している。データ幅は1レーンから最大8レーンまで、データ・レートはデバイス・ファミリにもよるがGen1/2/3に対応している。また、ハードIPはルート・ポートおよびエンド・ポイント構成のいずれでも実装することができる。さらに、QsysはSOPC Builderに比べて広帯域幅の要件にも対応できるようになった(図2)。オプション設定を行うために使いやすいパラメータ入力ツールも用意されている。IPはハードマクロ化されているため、Gen3×8レーンの場合で最大10万ロジックエレメント(LE)相当を削減できるなど、コストの低減にも貢献している。

図2 PCIeの帯域幅とQsys
図2 PCIeの帯域幅とQsys

 PCIeとユーザー・ロジック部のインタフェースとしては「Avalon-ST」と「Avalon-MM」の2種類をサポートしており、いずれかを選択できる。Avalon-STインタフェースは、ユーザー・ロジックで作り込むこともできるため、用途に応じてPCIe帯域幅を最適化することができる。ただし、最適化するためには、PCIeプロトコルに関する十分な知識が設計者に必要となる。

 一方、Avalon-MMインタフェースは、シンプルなアドレスとデータ・インタフェースが提供されるため、PCIeプロトコルに関する詳細な知識はいらない。リードやライトといったコマンドやアドレス、データなどから成るTLP(トランザクション・レイヤ・パケット)のエンコーディングおよびデコーディングを自動化したことによって、PCIeの専門知識の必要性を大幅に軽減できる。さらに、帯域幅は少し犠牲となるが、PCIeとのインタフェースをユーザー・ロジックで作り込む場合に比べて、1カ月以上のエンジニアリング工数を削減することが可能となる。

 PCIeユーザーがシステム設計にQsysを利用するメリットはいくつかある。その1つはQsysがシステムの階層化設計をサポートしていることだ。この機能により、PCIeシステム自体をサブシステムとして登録しておけば、ほかのデザインに再利用することが容易となる。もう1つは、複数のクロック・ドメインが存在するPCIeにもQsysは柔軟に対応できることだ。一般的なPCIeシステムには、クロック要件が異なるコンポーネントやインタフェースが含まれることがある。そういうケースでも、Qsysが自動的にブリッジを挿入し、対応してくれる。動作周波数をさらに引き上げて、システム性能を向上させたい場合もこの機能は有効である。

 Qsysに関連するワークショップなども随時開催されている。ワークショップではQsysによる設計演習も予定されており、PCIe設計に興味のある技術者は、最新の情報を入手するため受講してみたらどうだろうか。

この記事は、アイティメディア社『FPGA Insights』に掲載されていたコンテンツを、アイティメディア/EDN Japanの許可を得て転載しています。

目次