「プログラム可能な論理回路デバイス」というと、FPGAを思い浮かべる読者が多いかもしれないが、他にもCPLD(Complex PLD)があることをご存じだろうか? CPLDを理解してもらうために、前編ではその特徴やCPLDで実現できる機能の概要などについて紹介した。後編では、CPLDの代表的な用途について、より詳しく解説する。

第48回 こんなところにCPLD――産業用途でみるCPLD活用事例(前編)

 CPLDは1980年代半ばに登場した。フィールドプログラマブルなチップとしての革新性は、その後も回路設計者に大きなインパクトを与え続け、電子回路設計においてCPLDの用途もすそ野が広がっている。その大きな理由の1つは、図1に示すように、CPLDがさまざまな機能を実現することができるデバイスであるからだ。本稿では、アルテラのCPLD「MAX® V 」を1つの例として、CPLDの代表的な5つの用途について、その事例を紹介する。前編でも一部触れたが、その5つとは、「I/O拡張」、「インタフェース・ブリッジ」、「電源管理」、「コンフィギュレーションおよび初期化」、「アナログ制御」である。

図1:CPLDで実現できる機能
図1:CPLDで実現できる機能
[画像のクリックで拡大表示]

シリアル・バスを介してI/O拡張

 ある機能に特化した処理を実行させるための標準的な専用ICがASSPである。無駄な回路などを省いた設計となっているため、同等機能のカスタム品に比べて価格は安く、納期も短いなどの特徴がある。このため、仕様が固まった制御に適しており、さまざまな用途で使われている。

 しかし、電子機器のモデルチェンジなどに合わせて、機能の拡張や新機能を追加しようとするときに、これまで使ってきたASSPやMCUがそのままでは対応できないこともある。その理由の1つがI/O端子数の不足である。ASSPや組み込みマイコン(MCU)は、I/O端子の数がコストに大きく影響する。このため、回路設計者は、設計の初期段階で必要最小限のI/O端子数を備えたASSPやMCUを選択するのが一般的である。かといってモデルチェンジごとにASSPを再設計したり、I/O数の多いMCUに置き換えたりすると、開発期間や開発コストの問題が新たに生じてくる。

 このような課題を解決するのが低コストのCPLDである。MCUとアルテラのMAX Vを、2線式のシリアル・バスで接続することで、I/O端子数を拡張した事例を図2に示す。この例では、既存のMCUを再利用しつつ、MAX Vを介して外部のモータ・コントローラやA-D/D-Aコンバータと接続している。インテルが2010年11月に発表した「インテル○RAtomTME600Cプロセッサー・シリーズ」も、I/O拡張にFPGAを使った製品の一例である。E600Cプロセッサー・シリーズは、インテルAtomプロセッサーとアルテラFPGAのベアチップ同士をPCI Expressで接続し、ワンパッケージにしたもので、システム要件に基づきFPGA側でI/Oを拡張することができる柔軟性を備えている。

図2:MCUとMAX Vをシリアル・バスで接続し、I/Oを拡張した事例
図2:MCUとMAX Vをシリアル・バスで接続し、I/Oを拡張した事例
[画像のクリックで拡大表示]

インタフェース・ブリッジ

図3:MAX Vを使ったカスタマイズ可能なLCDコントローラ・インタフェース
図3:MAX Vを使ったカスタマイズ可能なLCDコントローラ・インタフェース
[画像のクリックで拡大表示]

 回路基板上には、さまざまな仕様のICや電子部品が実装されている。このためIC間を接続するときに、5Vあるいは3.3Vなど、それぞれのICで入出力信号の電圧レベルが異なる場合がある。また、接続するためのバス仕様もさまざまで、プロトコルあるいはシリアル/パラレルなどの変換が必要となることも少なくない。図3に、MAX Vを使って、低コスト・低消費電力のLCDコントローラとインタフェースをLCDディスプレイに実装する方法の一例を示す。

電源管理

図4:MAX Vを使った多電圧システムの電源管理の一例
図4:MAX Vを使った多電圧システムの電源管理の一例
[画像のクリックで拡大表示]

 複数の電源電圧を要するICや入出力信号の電圧レベルが異なるICが増加すると、回路基板上にさまざまな電源系統が混在し、電源の管理もそれだけ複雑となってくる。電源管理タスクとしては、多電圧システムの「電源投入」、「システム・リセット」、「チップ・セレクト生成」、「リアルタイム監視」などを挙げることができる。MAX Vでは、自チップを50ms以内に立ち上げた後に、他のICチップを立ち上げるシーケンスを管理する「インスタント・オン」機能や、設計者が3.3V/2.5V/1.8Vなど最適なI/O電圧を選択できる「MultiVolt」機能、各種のパワー・プレーンや関連する電源などのステータスを定期的に監視するために用いる「オシレ―タ」などを実装することができる。一例として、MAX Vによる代表的な電源管理の回路ブロックを図4に示す。

コンフィギュレーションおよび初期化

 FPGAやDSPチップ、ASSP、ASIC、フラッシュメモリなどは、コンフィギュレーションや初期化が必要となるICチップである。これらのICチップのコンフィギュレーションや初期化の用途にCPLDを用いることができる。

図5:MAX Vを用いたFPGAのコンフィギュレーション管理とフラッシュ・コントローラ
図5:MAX Vを用いたFPGAのコンフィギュレーション管理とフラッシュ・コントローラ
[画像のクリックで拡大表示]

 特にMAX Vは、コンフィギュレーションのプログラミングを簡素化するために、パラレル・フラッシュ・ローダーIPを提供している。MAX Vではまず、CPLDのJTAGピンを介して、フラッシュメモリをコンフィギュレーションする。JTAGに準拠していないフラッシュメモリも、パラレル・フラッシュ・ローダーIPを使ってコンフィギュレーションすることができる。次にこのフラッシュメモリを使って、1個またはそれ以上のFPGAをコンフィギュレーションすることが可能である。MAX Vによるコンフィギュレーションのステップを図5に示す。

PWM機能でアナログ回路を制御

 MAX Vは、パルス幅変調(PWM)インタフェースを介して、さまざまなアナログ製品と直接接続することができる。CPLDに内蔵したPWM機能により、外部に接続された標準的なアナログデバイス(照明、音声、モーターなど)を、D/Aコンバータなしでもデジタル制御することができる。現在、このような制御は一般的にマイコンで行われているケースが多い。それは、「CPLDが高価で使いづらい」といったイメージが設計者の中にあることや、これまでマイコンのみでも対応することができていたためでもある。MAX Vは、このような設計者のイメージを払しょくすることのできるCPLDである。

CPLD設計のヒントがここにある

 なお、CPLDに関する設計情報を掲載したアルテラのウェブページ「はじめてのCPLD設計」では、CPLDが利用される用途などを考慮しつつ、CPLDによるコプロセッシング機能やシステムの電源管理機能などを実現するための事例を、よりわかりやすく解説している。CPLDに関するアプリケーション・ノートやデザイン・サンプルなどの技術資料をダウンロードできる上、デザイン・サンプルの実装方法などもビデオ映像で確認することができる。CPLDの採用を検討している設計者は、CPLDを有効活用するためのヒントをつかむためにも、同サイトを利用してみたらどうだろうか。

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

目次