目次CPLD入門


XC9500のブロック図




手のマークのポインタになった部分をクリックするとその部分の説明のページにジャンプします。


より詳しい内容を知りたい場合には以下のPFDファイルを参照して下さい。

XC9500 ISP CPLD ファミリー





入出力ブロック ( I/O Blocks )


入出力ブロックは入力バッファー、出力バッファー、出力選択用のマルチプレクサおよび接地制御などで構成されています。
出力選択用のマルチプレクサ(OE MUX)は出力を可能にするか、停止するかを制御するのもで、マクロセルからの信号またはGTS(Global Three-State control) ピンにより制御されます。常に'1'または常に'0'にすることもできます。 GTSはXC95216およびXC95288では4本あり、他のデバイスでは2本です。
スルーレート制御は出力パルスの立ち上がり、立ち下がりをなめらかにするためのものです。ノイズの発生を抑える場合に使用します。
接地制御は入出力ピン(I/O)を接地端子とする場合に使用します。ノイズ条件の厳しい回路では通常に設けられている接地端子だけではノイズ軽減ができない場合があります。そのような場合に使用します。
実際の回路ではさらにプルアップ抵抗器が入出力ピンに接続されています。CPLDのプログラム中は入出力ピンを強制的に'1'状態にして入出力の状態がプログラム動作に影響を与えないようにするためです。通常の動作では切り離されています。

各入出力ピンは24mAまでの電流を流すことができます。




高速接続・スイッチ・マトリクス ( FastCONNECT Switch Matrix )


高速接続スイッチマトリクスは機能ブロックへの入力信号の制御を行います。
高速接続スイッチマトリクスには全てのI/Oポートからの入力信号と機能ブロックの出力信号が接続されています。これらの信号のうちプログラムで指定される信号が機能ブロックに伝えられます。機能ブロックからの出力信号はワイヤードANDバッファを通して機能ブロックに伝えられます。これにより機能ブロックの入力数(Fan-in)の向上が図られています。バッファを使用するか否かは開発ソフトで自動的に選択されます。




機能ブロック ( Function Block )


機能ブロックはプログラマブルANDアレイ、機能項目割付部(Product Term Allocator)およびマクロセルで構成されています。
Product Term は日本語で「積項」と訳されている場合があります。単語を訳しただけで意味が分かりません。

機能ブロックに入力される36本の入力はプログラマブルANDアレイにより真/偽の信号に分けられ、72種類の信号になります。
機能項目割付部ではこれらの信号を組み合わせて必要な論理信号をマクロセルに供給します。
マクロセルは一つのD/Tタイプのフリップフロップで構成されています。このフリップフロップのセット条件、リセット条件、クロック条件などの信号が機能項目割付部により供給されます。
フリップフロップを使用せずに論理出力を直接ピンに出すこともできます。

機能ブロックには独立した18個のマクロセルがあります。
機能ブロックには18本の出力があり、高速接続スイッチマトリクスおよび入出力ブロックに接続されています。
また、機能ブロックにはセット/リセット(GSR : Global Set/Reset)信号およびクロック(GCK : Global Clocks)信号が入力され、必要に応じてフリップフロップの条件に使用されます。

機能項目割付部からは出力制御信号(PTOE : Product Term Output Enable)信号が入出力ブロックに出されます。

機能ブロックの数はデバイスにより違います。XC9536は2ブロック、XC9572は4ブロック、XC95108は6ブロックが実装されています。
ピン数の制限で全てのマクロセルを使えない場合があります。詳しくはピン配置を確認して下さい。実際には全てのマクロセルをピンに接続するケースはあまりなく、内部のロジックだけで使用するものがあるのが通常です。





イン-システム・プログラム制御 ( In-System Programming )


XC9500シリーズのCPLDはIEEE1149.1で規定されているJTAG(Joint Test Action Group)プロトコルによりプログラムを書き込むことができます。
独立したJTAG用のピンを装備しているので、CPLDをプリント基板に実装したままプログラム変更をすることができます。

プログラムを書き込んでいる最中には入出力ブロックの全入力ポートは'H'レベルに設定されます。

JTAGで使用する信号線は以下の4本で、それぞれ以下のような用途です。
TMS(Test Mode Select):
この信号は書き込みモードを設定するために使用されます。
TCK(Test Clock):

この信号はバウンダリースキャンでのクロックを供給します。
TDI(Test Data In):

この信号は書き込みコマンドおよびデータ送出に使われます。
TDO(Read Data):

この信号はデバイスからデータを読み込むときに使用します。