CPLDという言葉をご存知でしょうか。
コンプレックス・プログラマブル・ロジック・デバイスの略語で、ユーザー自身が何度でもプログラムの書き換えや消去を行うことができるデジタルICのことです。
CPLDを始めとしたプログラマブル・デバイスの出現により、製品開発がよりスピーディーに、より低コストで行えるようになりました。
この記事では、CPLD及びPLD(プログラマブル・ロジック・デバイス)について解説いたします。
1. CPLDとは?
冒頭でもご紹介したように、CPLDとはComplex Programmable Logic Deviceの略語です。
このデバイスがどのようなものかは、まずPLDについて理解を深めなくてはなりません。
① PLDとは?
PLDはプログラマブル・ロジック・デバイスのことで、「ユーザー自身がプログラムできる論理回路」という意味です。
従来、デジタル回路は専用のICやLSIを用いて構築していました。
専用チップは既に決まったゲートが搭載された状態で製品化されており、便利な一方で仕様変更やカスタマイズには対応していませんでした。
つまり、製品開発のある段階で何らかの問題が発生して仕様変更しようと思った時、新たな専用チップを再度購入しなくてはならない、ということを意味します。
コストがかかってしまう上に、そこまでにかかった時間が無駄になってしまいますね。
そこで1970年代頃から、製品購入後でもユーザー自身でプログラムの書き換えが可能な汎用デバイスが出回るようになりました。
それが、PLDとなります。
PLDは開発のどの段階でも外部からプログラムの書き込みや消去ができるため、中途の仕様変更やカスタマイズにも即座に対応できます。
そのため製品開発速度が格段にスピーディーになり、多くのメーカーで重宝されるようになってきました。
なお、PLDには回路規模や構造によっていくつかの種類に分かれます。
数百ゲートを搭載したPAL(Programmable Array Logic)やGAL(Generic Array Logic)、数万ゲート以上というきわめて高い集積度を誇るFPGA(Field Programmable Gate Array)などがこれに当たります。
そして、今回ご紹介するCPLDも、そんなPLDのうちの一つとなります。
② CPLDとは?
CPLDは前述の通り、購入後にプログラムの書き換えが可能な汎用チップのことです。
先ほど「ゲート」という用語を使いましたが、これは簡単に言うとデジタル回路の最も基本的な単位を指します。
そもそもデジタル回路は本当にシンプルで、ゲートを構成するAND回路、OR回路、NOT回路でオンオフ制御や入出力制御を行います。
CPLDにおいては、このゲートを任意に書き換えられる、ということです。
具体的なプログラミングの流れとしては、まずハードウェア記述言語(HDL:Hardware Description Language)にて、デザインを記述(デザイン・エントリ)します。
このハードウェア記述言語というのは、CPLDだけではなくデジタル回路の設計において非常によく用いられる言語です。Verilog HDLやVHDL(Very High Speed IC DHL)などがありますね。
この設計に従って、PLDは仕様変更などを行っていくこととなります。
ここでデザインされた回路は、シミュレーションされます。
実際に製品化する前段階で動作が設計通りになっているかどうかを確認できるのです。
これによって、製品化した後に「やっぱりこうしておけば良かった・・・」といったリスクがなくなることとなります。
その後のコンパイル(論理合成等、コンピュータが理解・実行できる言語変換を行うこと)はワンクリックでCPLDが一括実行してくれることがほとんどです。
こうして作り上げられた回路を任意の場所に配置・配線し、完成となります。
なお、配置・配線は製品によって対応するピンが異なる場合があるので、データシート等で事前に確認しておきましょう。
③ CPLDとFPGAの違い
PLDとして、よくFPGAという用語を目にするかと思います。
これはField Programmable Gate Arrayの略語で、現場(フィールド)で回路の書き換えが可能な集積回路」と訳される通り、CPLDと同様のデバイスであることがお分かり頂けるでしょう。
ただ、大きな違いは「規模」です。
前述の通りFPGAは数万ゲート以上もの巨大な規模を持つPLDで、対してCPLDは数千ゲートほどの集積度です。
また、FPGAはプログラミングされたデザインをSRAM等の揮発性メモリに保存しますが、CPLDは不揮発性メモリで保存します。
もっとも、FPGAの中にも不揮発性メモリを用いている製品も存在します。
さらに言うと一般的なFPGAはきわめて柔軟性が高く、自由なデザイン設計を行うことに優れています。そのため複雑なデジタル回路設計にも向いていると言えます。
一方でCPLDが低スペックというわけではありません。
CPLDもきわめて高度なプログラミングが可能で、さらにFPGAに比べると低価格というメリットがあります。
そのため回路規模等、使用条件でどちらが適しているかは変わってきます。
★FPGAについての詳しい解説はこちら
2. CPLDの用途
CPLDの用途は、繰り返しになりますが製品開発をよりスピーディーに、よりスムーズにするためにという点が大きくなります。
仕様変更やカスタマイズが可能であるのみならず、開発途中でシミュレーションができるので、開発リスクを最小限に抑えることが可能です。
また、多くのPLDに言えることですが、ハードウェア記述言語を用いることで物理的に回路を作成することなく、容易にデザイン設計を行えるようになりました。
現代の製品開発スピードは、日に日に速くなっていっております。私たちの身の回りを見ても、新しいモノが溢れかえっていますね。
そんな現代の各社の製品開発において、なくてはならない存在がCPLDであると言えます。
3. まとめ
CPLDについて解説いたしました。
CPLDとはPLDの一種で、ユーザーが製品開発段階でプログラムの設計変更や消去を行えるデジタルICチップであること。ハードウェア記述言語によってデザイン設計することで、物理的な回路作成が不要であること。
また、設計変更後にシミュレーションを行えるため、開発スピードを上げるだけでなく、開発リスクも低減できることなどをご理解頂けたでしょうか。
市場で日に日に存在感を高めていくCPLD。製品開発に関わる全ての方に、知っておいてほしい素子と言えます。
半導体・電子部品・モジュール製品の購入はコアスタッフオンラインへ