CPLD早わかり一問一答
●そもそもCPLDって何なの? (^^;
1.1 CPLDって何ですか?
1.2 FPGAやGALとどう違うのでしょうか?
1.3 PLDとCPLDの違いは?
1.4 TTLやCMOSの標準ロジックICでじゃダメなのでしょうか?
1.5 PICなどのワンチップ・マイコンと比較したらどうなんでしょうか?
1.6 CPLDは,どんなときに使うのでしょうか?
1.7 マクロセルって何ですか
1.8 CPLDは,新しいデバイスなんでしょうか?
●CPLDを使いはじめるには,どうしたらいいの?
2.1 CPLDを使い始めるには,何を用意すればよいのでしょうか?
2.2 CPLDに自分が考えたロジックを書き込むには何が必要なんですか?
2.3 (準備中)
●入手先などを教えてください
3.1 CPLDは,どこで買えるのでしょうか?
3.2 CPLDって,いくらぐらいなのでしょうか?
●その他
4.1 回路図で設計できないのでしょうか?
4.2 VHDL,Verilog,AHDLなどがあるようですけど,どれを使えばよいのでしょうか?
4.3 CPLDの歴史を簡単に教えてください.
4.4 HDLの歴史を簡単に教えてください.
1.1 CPLDって何ですか?
プログラマブルなロジックICの一種です.「プログラマブル」といってもパソコンのソフトウェアと違って,SDカードやUSBフラッシュ・メモリのごとく,CPLDデバイスに電気的に書き込みます.TTLやC-MOSの標準ロジックICは,最初からICの機能が決まっていますが,PLDは自分でICのロジックを設計して書き込む必要があります.ですから,任意のロジックICを作ることができるICなのです.でも,FPGAのように高度で複雑ではありません.小規模〜中規模のロジックをワンチップ,つまり1個のICで実現できます.
CPLDとは,Complex Programmable Logic Deviceの頭文字であり,GALなどの小規模ロジックICよりちょっぴり複雑(complex)なものから,FPGAに匹敵するほどのものもあります.例えば本書で使っているXCR3064クラスの小さなCPLDは,だいたいTTLゲートICの数個〜十数個ぶん程度,GAL16V8の4〜8個ぶん程度のロジックを書き込むことができます.標準ロジックICやGALより,部品点数も減りますし,合計の部品代も安くできます.たとえば44ピンPLCCパッケージなら,1個250円ぐらいのソケットを使って,0.1インチ・ピッチのユニバーサル基板に簡単に実装できます.
下記のような外観をしています.

このページのトップへ戻る
1.2 FPGAやGALとどう違うのでしょうか?
FPGAはゲート・レベルに近いレベルで設計可能なプログラマブル・ロジック・デバイスです.おもに大規模なロジック機能を実現するのに使われます.GAL(Generic Array Logic)は,CPLDが登場する前に使われていた小規模なプログラマブル・ロジック・デバイスです.ゲート・レベルでなく,マクロセル単位で設計するところがCPLDと似ていますが,CPLDより小規模です.そういう意味で,CPLDはGALの後継デバイスともいえるでしょう.
FPGAとはField Programmable Gate Arrayのことです.Xilinx社は,かつて自社の商標である“LCA”(Logic Cell Array)という用語を使っていましたが,現在はFPGAと呼んでいます.まず「ゲート・アレイ」とは,セミカスタムICの一種です.カスタムICを設計・製造するのは費用と時間がかかるので,代わりに多数のゲート素子からなるブロック(アレイ)を用意しておき,それらゲート間の配線をユーザーの仕様通りに配線するものです.半導体工場では,配線のためのマスク・パターンを作って,それをシリコン・ウェハに転写して作ります.このため配線パターンは1種類であり,変更することはできません.ゲート・アレイは同一機能のICを大量生産するのに適しています.
さて,FPGAは,ゲート・アレイを現場(field)でプログラマブルにしたデバイスといえます.かつてはゲート・アレイをメーカーに発注する前の設計検証などに使うデバイスであり,量産製品に使うものではありませんでした.そのため設計現場でプログラマブルという用語が残ったのでしょう.
またFPGAは通常「SRAM(Static RAM)ベース」であり,中身のロジックを電源ONとともに,外付けの「コンフィギュレーションROM」から内部のSRAMへ読み込んでから動作をスタートします.また,電源をOFFすると中身のロジックは消えてしまいます.このためマイコン・システムのアドレス・デコーダのように,電源ON直後から動作する必要のある機能には使えないという制約があります.
一方CPLDは「フラッシュROMベース」であり,予め内部ロジックを書き込んでおくので,電源ONと同時にスタートしますし,コンフィギュレーションROMを外付けする必要はありません.また,電源をOFFにしても内部のロジックは記憶されたまま消えません.そういう意味でCPLDは,まさに自分の好みのロジックICをジャスト・ワンチップで実現できる点がFPGAと違います.
これらをまとめたのが以下の表です.
項目 | ゲート・アレイ | FPGA | CPLD | GAL |
ロジック規模 | 大規模 | 中〜大規模 | 中規模 | 小規模 |
プログラマブル | No | Yes | Yes | Yes |
ロジックの記憶方式 | マスクROM | SRAM | フラッシュROM | フラッシュROM |
電源ONですぐ動作 | 可能 | 時間がかかる | 可能 | 可能 |
電源OFF時の内部ロジック | 消えない | 消える | 消えない | 消えない |
外付けコンフィギュレーションROM | 不要 | 必要 | 不要 | 不要 |
価格 | 安価 | 高い | 中〜高い | 安価 |
次に内部構成に注目して説明すると,以下のようになります.
GALなどのSPLDは,下図のようにAND-OR構造またはAND-OR-FF(フリップフロップ)構造になっていて,ANDアレイをプログラミングするのが一般的です.一つのAND-OR(またはAND-OR-FF)ブロックの入力は複数ありますが,出力は一つです.
CPLDは,AND-OR-FF構造を少し機能拡張したセル(マクロセル)を複数集めて,PIA(Peripheral Inter-connect Array)という配線領域で相互接続できるようにしたのがCPLDの代表的な構造の一つです.マクロセルの入力は複数ですが,出力は一つです.CPLDはプログラマブルANDアレイの使用率が低かったり,あらかじめ用意したANDアレイの数を越えるとチップの使用効率が低下します.しかし,FPGAと比べて配線領域に割り当てるチップ面積が少なく,効率の良い配線が可能なので,一般に(同じプロセス・テクノロジで同じ設計ルールなら)FPGAより高速動作が可能といわれています.
FPGAは,マクロセルより機能が単純なCLB(Configurable Logic Block)を多数配置して,その間を配線するものです.CLBの入力は複数ですが,出力は一つです.CLBは,マクロセルより単純なので,CPLDより小回りの利く設計が可能で,ロジック素子の使用効率が高まります.しかし,CPLDよりも配線領域に割り当てるチップ面積が広く,CLBを相互に配線する長さが長いので,一般に(同じプロセス・テクノロジで同じ設計ルールなら)CPLDより低速だといわれています.

このページのトップへ戻る
1.3 PLDとCPLDの違いは?
“PLD”(Plogrammable Logic Device)という用語は,文字通り広義のプログラマブルなロジック・デバイスを意味します.狭義ではPALやGALなどのSPLD(Simple PLD, Small PLD,小規模PLD)を意味することもあります.
“CPLD”はComplex PLDのことで,SPLDより複雑なPLDを意味します.SPLDとCPLDの境目はマクロセル数で30個あたりにあります.たとえばGAL22V10(マクロセル数22)はSPLDですが,EPM7032(マクロセル数32)やXC9536(マクロセル数36)はCPLDに分類されます.
これらのおおざっぱな位置づけを下図に示します.

ではFPGAは,どうかというとPLDの一種です.FPGAは(AND-ORアレイを使わず)基本論理機能だけをもつCLB(Configurable Logic Block)と呼ばれる小さな回路ブロックを組み合わせて設計します.これはいうなれば「ゲート・アレイに近いプリミティブなレベルで設計可能」なのです.
一方,CPLDはAND-ORアレイとフリップフロップなどをモジュール化したマクロセルを組み合わせて設計します.つまり「マクロセル・レベルで設計可能」だが,「ゲート・アレイに近い設計はできない」という点が異なります.つまりFPGAのほうがCPLDより小回りが利く反面,その特徴を目一杯引き出して使いこなすにはCPLDより多くの知識やノウハウを必要とします.
上の図でCPLDとFPGAの領域が重なっていることに気づいたでしょうか?最近のCPLDは集積度が向上してロジック規模が大きくなり,FPGAの領域と重なるようになってきています.またFPGAも集積度が向上してゲート・アレイの領域と重なるようになってきます.
このページのトップへ戻る
1.4 TTLやCMOSの標準ロジックICじゃダメなのでしょうか?
かつては標準ロジックICを10個も20個も使うような回路を設計し,半田付けやワイヤ・ラッピングで配線したものです.しかし,これらはCPLDならワンチップで済みます.半田付けやワイヤ・ラッピングするとなると,配線量が多いと誤配線しないように配線するのは大変です.CPLDなら,入力と出力以外の配線はすべてチップ内にあり,チェックもパソコン上でできます.なによりコンパクトで楽チンなのです.もし,設計ミスがあっても,パソコン上で修正して書き込むだけのワンタッチです.
値段も標準ロジックICの数個分で済みます.しかも,標準ロジックだとNANDだのNORだの,カウンタだの,デコーダだの,ざっとひとそろいのロジックICを揃えていないと目的のものを作れません.もはやロジック回路を標準ロジックICで構成するメリットはほとんどないでしょう.
とはいえ2005年の現在でもFPGAやCPLDではカバーできない分野では,標準ロジックICが活躍しています.それは主にバス・インターフェース用のIC,すなわちバス・バッファやバス・トランシーバ,バス・スイッチなどです.バス・インターフェースは大電流駆動能力を必要とするので,FPGAやCPLDやゲート・アレイは苦手なのです.また,プリント基板上の実装面積が限られていて,ほんの1〜2ゲートだけ必要といった用途でも,シングル・ゲートやツイン・ゲートの小さな標準ロジックICが使われています.これらは携帯電話や携帯MP3プレーヤーのような高密度実装が必要な用途で使われています.
このページのトップへ戻る
1.5 PICなどのワンチップ・マイコンと比較したらどうなんでしょうか?
かなり強引ですが(^^; 比較してみたのが下記の表です.
型名 | XCR3064XL | PIC16F84A | H8/3069F |
メーカー | Xilinx | Microchip Technology | ルネサス テクノロジ |
デバイス種類 | CPLD | 8ビット・ワンチップ・マイコン | 16ビット・ワンチップ・マイコン |
パッケージ | 44ピンPLCC | 18ピンDIP | 100ピンQFP |
クロック周波数 | 192MHz(最大動作周波数) | 20MHz | 25MHz |
電源電圧 | 2.7〜3.6V | 4.0〜5.5V | 4.5〜5.5V |
ディジタルI/O数 | 35 | 13 | 79 |
アナログI/O数 | なし | なし | あり |
ROM | なし | 1Kバイト | 512Kバイト |
RAM | なし | 68バイト | 16Kバイト |
周辺機能 | 自分で書き込む | 少し内蔵 | たくさん内蔵 |
価格 | 800円〜 | 300円〜 | 1800円〜 |
CPLDのクロック周波数が192MHzとなっていますが,これは「動作可能な最大周波数」です.CPLDをポピュラーなワンチップ・マイコンと比較したときの特徴を一口でいうと,
(a)動作速度が高速
(b)I/O数が多い
に集約されるでしょう.
(a)の動作速度は文句なしに圧倒的に高速です.マイコンと違って並列処理も可能ですし,なんとならば1クロックで処理が完了します.高速さを逆手にとって,クロック速度を落とせば低消費電力化と低ノイズ化を図れます.XCR3064ならクロック1MHz時の消費電流は240μA,待機時の消費電流は17μAにすぎません.マイコンも動作クロックを下げれば消費電流とノイズを減らせますが,逐次処理ですから用途によっては実用的な速度を得られなくなります.
(b)のI/O数に関しては小型のXCR3064は無勢ですが,XC9572なら72,XC95108なら112,XC95288なら192個ものI/Oが得られます.これだけのI/O数をワンチップで得られるマイコンは少ないでしょう.
このページのトップへ戻る
1.6 CPLDは,どんなところに使われているのでしょうか?
小規模のものはグルー・ロジック(glue logic)として,中規模のものはサブシステムやマイコンのペリフェラル・デバイスとして使われます.ワンチップ・マイコンの多くがスタンド・アローン(stand alone; 単独)で使われるのに対して,CPLDやFPGAがスタンド・アローンで使われることは少なめです.
CPLDは,HDDビデオ・レコーダのようなハイエンドの家電製品とか,ハイエンドのパソコン周辺機器,産業用電子機器,医療用電子機器などに多く使われています.コスト・コンシャスな機器に使うには,まだ高い部品なせいか,低価格の製品にはあまり使われているのを見かけません.これはFPGAも同様です.
このページのトップへ戻る
1.7 マクロセルって何ですか?
(準備中です)
このページのトップへ戻る
1.8 CPLDは,新しいデバイスなんでしょうか?
CPLDの始まりは複数のSPLDをワンチップに搭載したものでした.そういう意味では例えばAlteraのMAX5000シリーズの登場が1988年ですから,FPGAより古いデバイスといえそうです.ただし“CPLD”の名を冠して発売された最初のデバイスは1991年に発売されたAltera社のMAX7000のようです.すでにワンチップで32マクロセルを超えるデバイスは市場にありましたから,最初のCPLDデバイスとはいえないかもしれません.とはいえ,CPLDという名称を普及させるきっかけを作ったデバイスでしょう.
一方,現在FPGAとして一般に知られるデバイスがXilinx社から“LCA”(Logic Cell Array)の商品名で発売されたのは1985年ですから,CPLDの名を冠したデバイスとしては,FPGAより後発なので,新しいデバイスといえるかもしれません.
FPGA登場の背景には,半導体製造技術の微細化があります.微細化によって,よりゲート利用効率の高い,CPLDより小回りの利くデバイスとして登場しました.しかし,当時は開発ツールが整備されておらず,開発の容易さでCPLDに一日の長がありました.今日では,どちらも開発ツールはVHDLやVerilogが主流で,FPGAとCPLDは両方とも適材適所で使われています.
このページのトップへ戻る
2.1 CPLDを使い始めるには,何を用意すればよいのでしょうか?
下記が必要です:
(a)Windowsベースのパソコン
Windows 2000またはWindows XPを搭載したパソコンが必要です.Windows 95/98/Meでも使えないことはありませんが,制約が多いのでオススメしません.
(b)開発用ソフトウェア・ツール
VHDLコンパイラ,シミュレータ,フィッタ,プログラマ(書き込み機)などです.
たいていCPLDメーカーがこれらのツールを統合化した開発ツール・セット(ISE webpackなど)を用意しており,ダウンロードしてユーザー登録すると無料で使えます.
(c)ターゲット・デバイス
自分がハードウェアを書き込みたいデバイスです.テスト用も含めて少なくとも2〜3個は用意しておくと良いでしょう.
(d)ターゲット・ボード
書き込んだCPLDを動かすハードウェアです.あなたの目的に合ったものを作るなり,買うなりして用意します.
(e)ダウンロード・ケーブル
デバイスへヒューズ・データを書き込むために必要です.メーカー純正品,サード・パーティー製の互換品がありますが,簡単な回路なので自作も可能です.回路図はCPLDメーカーのサイトで公開されています.
本書の図5.2(d)は,Xilinx用の回路図です.パラレル・ポート(プリンタ・ポート)を利用するので,パラレル・ポートの付いていないノートPCの場合はパラレル・ポートを増設するPCMCIAカードが別途必要になります.このカードは1万円以上しますし,必ずしもすべてのPCMCIAパラレル・ポート・カードが動作するわけではありませんので気を付けてください.本書ではPCMCIAパラレル・ポート・カードにSPP-100を使っています.
このページのトップへ戻る
2.2 CPLDに自分が考えたロジックを書き込むには何が必要なんですか?
上記の1.1と少し重複しますが,下記が必要です.
・ダウンロード・ケーブル
・書き込み用ソフトウェア
・(パラレル・ポートのないノートPCの場合は)PCMCIAパラレル・ポート・カード
このうち書き込み用ソフトウェアは,ISE webpackに含まれているiMPACTが該当します.
つまりパラレル・ポート付きのパソコンを使うなら,必要なハードウェアはダウンロード・ケーブルだけです.
詳しくは本書の第5章をご覧ください.
このページのトップへ戻る
2.3
(準備中です)
このページのトップへ戻る
3.1 CPLDは,どこで買えるのでしょうか?
会社で購入するなら商社経由で購入できます.
個人向けに1個単位で小売りしているお店もありますし,電子部品を販売しているお店で買うことができます.
最近ではインターネット通販を利用して購入することもできます.当サイトの関連リンクに店舗へのリンクをいくつか記しておきましたのでご参照ください.
このページのトップへ戻る
3.2 CPLDって,いくらぐらいなのでしょうか?
学習ボードで使っているXCR3064-10PC44(44ピンPLCCパッケージ)で1個800〜1,500円程度,本書の製作編で使っているXC95108-15PC84C(84ピンPLCCパッケージ)で1個2,400〜2,500円程度です.
このページのトップへ戻る
4.1 回路図で設計できないのでしょうか?
できます.しかし,CPLDやFPGAのロジック設計の主流は今やVHDLです.
回路図による設計とHDLなどの言語による設計は,一長一短があります.本書の第4章をご覧ください.
このページのトップへ戻る
4.2 VHDL,Verilog,AHDLなどがあるようですけど,どれを使えばよいのでしょうか?
当サイトではVHDLをオススメします.それぞれ下記のような特徴があります.
一般にVHDLはビヘビア記述(動作記述)やシステム・レベルの記述(構造記述)に適する反面,ゲート・レベルで記述しにくく,タイミング記述がしにくいといわれています.
Verilogは,VHDLと対照的にゲート・レベルで記述するので,タイミング記述がしやすい反面,システム・レベルの記述をしにくいといわれています.
AHDLはAltera社のデバイスにしか対応していないので,せっかくのHDLの特徴である,標準性を背景にした設計資産の継承,設計資産のポータビリティなどが活かせません.Altera社自身も1990年代後半には,AHDLからVHDLへシフトし,現在の主流はVHDLです.
項目 | VHDL | Verilog-HDL | AHDL |
商用版の発売開始年 | 1985 | 1985 | 1988 |
標準性 | IEEE1076,IEEE1164 | IEEE1364 | Altera社独自 |
ツールのバリエーション | 豊富 | 豊富 | MAX+PLUSのみ |
特徴 | ・動作記述に適する.すなわちビヘイビア・レベルの記述に適する. ・システム・レベルで記述する. |
・構造記述に適する.すなわちゲート・レベルの記述に適する. ・ゲート・レベルで記述するのでタイミングを記述しやすい. |
? |
備考 | | | ・Altera社のデバイスを設計するのに最適化されている. |
このページのトップへ戻る
4.3 CPLDの歴史を簡単に教えてください.
●最初のPLD誕生−−1975年
PLDがIC化される前,つまり1960年代〜1970年代前半には,ダイオード・マトリックスやバイポーラROMを使ってプログラマブルなロジックを実現していました.
最初のIC化されたPLDは,1975年に遡ります.Signetics社(現Philips Semiconductor傘下)のNapoleone Cavlanが考案したFPLA(Field Programmable Logic Array)である82S100です.82S100はPhilips社の傘下になってPLS100へ型名が変更されました.これはバイポーラPROMと同様のANDアレイ固定型でした.バイポーラPROMの技術をベースにしており,内部シリコン基板上の不要なヒューズに大電流を流して焼き切ることによってロジックをプログラミングしていました.
●PALの登場−−1978年
次に製品化されたPLDは,米国MMI(Monolithic Memories, Inc.)社のJohn BirknerとH. T. Chuaが考案したPAL(Programmable Array Logic)で,1978年に発表されました.組み合わせ論理しか実現できないデバイス(PAL16L8など)と,レジスタを内蔵して順序回路を実現できるデバイス(PAL16R8など)がありました.初期のPALは高価だったので試作や初期ロットはPALを使い,量産時はマスク・プログラムした安価なHAL(Hardware Array Logic)を使うこともできました.

PAL16L8A(MMI社)とHAL16L8A(MMI社)
PALやHALはバイポーラ・プロセスで製造されたICであり,消費電力が多く,ヒューズを焼き切るのに大電流を要し,専用書き込み機が必要でした.またヒューズを焼き切るため,再プログラミングは不可能,つまり1回しか書き込めない(ワンタイム・プログラマブルの)デバイスでした.
MMI社は1987年にAMD社に買収され,AMD時代にCMOS化した22V10シリーズを追加しました.AMD社は,SPLDとして旧MMIのシリーズ,CPLDは独自のMACHシリーズを製品化していましたが,PLD事業を1996年に分社してVantis社を設立しました.そのVantis社を1999年6月にLattice Semiconductor社が買収しました.これにともないLattice Semiconductor社は,CMOS化したPALとMACHシリーズのCPLDを自社の製品ラインナップに追加しました.
MMI社のPALの成功は,画期的な開発ツール“PALASM”に負うところが少なからずあります.これは「HDLの歴史」を参考にしてください.
●EPLDの登場−−1983年
一方で1983年になると,紫外線消去型EPROM(UV-EPROM)技術をベースにしたPLDのEP300がAltera社から発売されました.Intel社や(Alteraのファブだった)日本のリコー社からも発売されました.これらは消去再書き込みが可能だったので,EPLD(Erasable PLD)と名付けられました.“EPLD”は,最初に製品を発売したAltera社の商標です.
いずれもMOSプロセスで製造されており,低消費電力でした.またヒューズの代わりにフローティング・ゲートに電荷を蓄積することによって内部ロジックをプログラミングしていました.フローティング・ゲートに電荷を書き込むために25V程度の書き込み用電源が必要でした.なお消去時は,パッケージに開けられた石英ガラスの透明窓から紫外線を照射することによって,フローティング・ゲートに蓄えられた電荷を放電します.EPLDは何度でも消去&再書き込みが可能なので重宝でしたが,高価でした.また消去には数分から数十分間の長時間が必要でした.

初期の紫外線消去型EPLD EPL16P2(リコー)
●電気的消去型の登場−−1983年
同時期にEEPROM技術をベースにしたGAL(Generic Array Logic)がLattice Semiconductor社から発表されます.Lattice社のGAL16V8やGAL20V8,ICT社のPEEL18CV8などです.電気的消去型EPROM(EE-PROM)技術をベースにしており,PAL上位互換のAND-ORアレイをもつ点で,既存ユーザーにとってはPAL非互換のEP300(Altera)より親しみやすいデバイスでした.
GALにもPALにおけるHALと同様のマスク・プログラムドIC“ULC”(Universal Logic Circuit)がありました.ULCは,Lattice社ではなく,Matra Harris Semiconductor社(後にTemic傘下,後にVishay傘下,現在はAtmelの傘下)から発売されていました.

電気的消去型EPLD GAL16V8(旧ロゴ)とGAL16V8B(現ロゴ).いずれもLattice Semiconductor社

GAL互換のマスクプログラムドIC ULC24(Matra Harris Semiconductor社)
●FPGAの登場−−1985年
半導体技術が進展してくると,より細い線幅でパターンを形成することができるようになり,同じシリコン・チップ面積なら,より多くのゲートを作り込むことができます.1980年代半ばになると,CPLDのようにAND-ORアレイをもたない(4入力LUT+FFだけの)簡易な単位ロジック・セルをもつFPGA(商品名“LCA”)がXilinx社から発売されました.PLDを大規模化していく過程で,ロジック利用率を改善するために考案されたアーキテクチャでした.
これはロジックを記憶するのにSRAM(Static RAM)を使っており,外付けのコンフィギュレーションROMから内蔵SRAMへコンフィギュレーション・データを読み込んでから動作するものでした.
●ダイナミック・リコンフィギャブルFPGAの登場−−1989年
現在ダイナミック・リコンフィギャブルFPGAなどとして知られる,動作中にFPGA内部のプログラマブブル・ロジックを部分的に書き換えてしまう技術は,1989年にAlgotronix社が実用化した技術で,Atmel社のAT6000やXilinx社のXC6200として製品化されました.
●CPLDの登場−−1991年
一方,Altera社はPLDの集積度を上げた紫外線消去型PLDとしてMAXシリーズを発売します.1988年のMAX5000,1991年のMAX7000などがそうです.MAX7000は,おそらく初めて“Complex PLD”の名を冠した製品でした.これらが今日のCPLDの元祖といえるでしょう.GALは便利でしたが集積度の点で劣りました.その不満を解消したのが紫外線消去型CPLDでした. 1988年当時は,まだ“CPLD”という用語はなく,中規模EPLD(Medium EPLD)といった位置づけで,Altera社は当時“USIC”(User Configurable Integrated Circuit)という商品名で販売していました.
Xilinx社は1994年までは,いわばFPGA専業メーカーでしたが,Plus Logic社を買収して同社初のCPLDであるXC9500シリーズを商品化し,CPLD市場へ参入しました.

初期のCPLDの一つEPM5128(Altera社)
中央に縦に配置されたPIAとその左右にマクロセルの集合体であるLAB(Logic Array Block)が見える
●ISPの登場−−1991年
ISPとはインシステム・プログラミング(In-System Programming)のことで,Lattice Semiconductor社が1991年に発表した技術です.それまでのCPLDは専用書き込み機を使って書き込んでからターゲット・ボードに実装するのが普通でした.FPGAの外付けコンフィギュレーションROMも,基本的には専用書き込み機を使って書き込んでからソケットに差し込むものでした.
ISP対応のデバイスでは,プリント基板に実装したまま(In-systemで)デバイスを書き込むことができるようになりました.今日当たり前のように使われている技術ですが,PLDの世界へISPを持ち込んだのはLattice Semiconductor社でした.
ISPはさらに進化し,(本来はLSIの試験用だった)JTAGポートを使って書き込みと検証をできるようになったり,ダイナミック・リコンフィギャブルなPLDが製品化されています.
●PLDの年譜
1 1 1 1 1 1 1 2 2
9 9 9 9 9 9 9 0 0
6 7 7 8 8 9 9 0 0
5 0 5 0 5 0 5 0 5
----------+----+----+----+----+----+----+----+----+
EPLD
FPLA PAL GAL ispGAL
| | | |
SPLD *==*====*=======*===-----------
MAX7000
MAX5000|XC9500 XCR(CoolRunner)
| || |
CPLD *--**======*======
XC3000
XC2000 |XC4000
| | |
FPGA *=*===*=*============
|
FLEX8000
●主なPLDメーカーの年譜
1 1 1 1 1 1 1 2 2
9 9 9 9 9 9 9 0 0
6 7 7 8 8 9 9 0 0
5 0 5 0 5 0 5 0 5
----------+----+----+----+----+----+----+----+----+
Established
Altera *======================
Established
AMD *====================================
Established
Lattice *======================
Established
MMI *=================*Acq'd by AMD
Acq'd Signetics
Philips ----------*==============================
Established
Signetics *========*Acq'd by Philips
Established
Vantis *==*Acq'd by Lattice
Established
Xilinx *=====================
このページのトップへ戻る
4.4 HDLの歴史を簡単に教えてください.
(すみません.この項目は書きかけです.)
●PALASM登場−−1970年代(?)
PLDのための最初のHDLは,MMI社のPALASM(PAL Assembler)です.その登場が1970年代〜1980年代初頭のいつなのかはっきりしないのですが,MS-DOS上で動作するバージョンは1983年頃に登場しています.初期のPALASMはFORTLANで書かれており,大型計算機に接続したターミナルで操作していたようです.MMI社のPALデバイスの成功は,開発ツールとしてのPALASMに負うところも少なからずあったと思われます.
●ABEL,CUPL登場−−1983年
PALASMの成功に目を付けた各社から同様の言語が1983年に相次いで発表されました.一つはプログラマブル・デバイス書き込み機の当時最大手だったData I/O社のABEL(Advanced Boolian Expression Language)言語,もう一つはLogical Devices社のCUPL(Common Universal tool for Programmable Logic)言語コンパイラでした.これらの言語はブール代数式だけでなく数式も記述でき,ステート・ダイヤグラムによって順序回路を記述することもできました.
●Altera独自の言語AHDL−−
●Verilogの標準化−−
●VHDLの標準化−−
●HDLの年譜
1 1 1 1 1 1 1 2 2
9 9 9 9 9 9 9 0 0
6 7 7 8 8 9 9 0 0
5 0 5 0 5 0 5 0 5
----------+----+----+----+----+----+----+----+----+
v1.6 v2.3 v4.0
| | |
PALASM ???*=====*==*=============
v1.0
CUPL *=====-----------------
v1.0
ABEL *=====-----------------
MAX+PLUS1.0
AHDL *=================
Verilog OVI IEEE1364
| | |
Verilog *====*==*============
-HDL
IEEE1076 IEEE1164
VHSHC-HDL | |
VHDL *----*=====*============
このページのトップへ戻る
ホームへ戻る Copyright CPLD.designerz-net.com 2005