スパイス  組み込み制御装置の受注製作

小規模組み込み装置に向いたCPLD
平成26年 8月 31日

 CPLDの主要な用途
 CPLDを組み込み装置の中でどのような用途で使用しているかを見てみると、私の用途では下記が大半です。
 ・アドレスなどのデコードを主とした単純な組み合わせ回路
 ・バス配線の引き回しを単純化するためにハスラインを複数に分割し切り替えるバスセレクタ
 ・IOポートの数を増やす。
 それ以外では使用頻度は大分少なくなりますが、小規模のラッチ情報を含む順序回路がこれに続きます。

    組み合わせ回路
 主として各デバイスのチップセレクト信号の作成です。
バスラインを分割した場合には、各バスの方向制御なども組み合わせ回路で実装することになります。
IOポートの増設では出力ポート単位での書き込みEN信号や入力ポートのデータセレクタなどを記述します。

    バス信号の分割
 データバスやアドレスバス信号を複数のデバイスに対して規則正しく配線するのは基板設計の負担が大きくなります。基板のレイアウトによってはバスを複数に分割してCPLDの内部で接続した方が配線しやすくなります。CPLDでは各信号のピン配置の自由度が高いので部品配置に合わせてCPLDのピン配置を決めるようにすれば、CPLDを中心に放射状に信号線を配置することが出来ます。
これは回路的にはCPLD内部でN対1の双方向データセレクタを実装することになります。



    IOポート数の確保
 例えば80系の周辺LSIであるPIOは8ビットのポートが3個で合計24ビット/個のIOを持っています。仮に100ピンパッケージのCPLDなら電源やデバイス用のピンを差し引いても60ビット以上のIOを確保できます。CPLDの内部回路は単純なデコード回路やN対1のデータセレクタになります。

 つまり、N対1のデータセレクタやデコード回路の実装が多くを占めています。ここで先のCPLDの内部構成が問題になります。特に従来型CPLDでは4対1を超えるデータセレクタの実装は苦手です。データバスの分割では、この値以上のセレクタにはなり難いのですが、IOポートの拡張では簡単に4を越えてしまいます。8ビット接続で64ビットのIOを実装するとデータセレクタは8対1になります。
 この理由は従来型CPLDを構成するマクロセルの入力数対出力数の比にあります。各デバイスによって多少の違いはあるものの、その比率は3対1〜4対1の間にあります。このため本来は3対1を超える比率のデータセレクタは作り難いのです。当然、隣のマクロセルの一部機能を借用することでそれ以上の実装が可能な作りにはなっています。しかし、その分複雑になり多くのリスクが伴います。これに関しては次に詳細を書くようにします。


目次へ  前へ  次へ