平成26年9月 9日
どの製品を選択すれば良いか
現在、デジタル回路を実装することを前提にするなら、規模の大小はあってもCPLD(およびFPGA)を全く使用しないという選択肢は非常に限られた状況でないと成立しないのが実情です。
たとえゲート数が数個のデコード回路であっても7400シリーズのような標準ロジックを組み合わせるよるも(CPLDの中では最小ピン数である)44ピンのCPLDを一個乗せておく方が後々の回路変更への柔軟性や基板の実装面積などの点で勝ります。
では、どのCPLD製品を選択すれば良いか?
これに対する答えは一つにはならないのですが、下記のような前提をおくとして考えてみます。
- 5V電圧動作はあきらめて、現在の主流となっている3.3V電圧動作の製品のみを前提にする(5V電圧品は収束方向のため)
- 実装する論理規模はゲート数数個のものからCPLDの最大規模の範囲を想定する
- 実装する機能は以前に検討したようにデコード回路やN対1のデータセレクタを前提とする
比較的小規模な実装には
従来型のCPLDが向いています。ザイリンクス社ではXC9500XL, CoolRunnerが、アルテラ社にはMAX3000Aが該当します。
いずれも最小ピン数は44ピンのPLCC, TQFPなどのパッケージが使用できます。
論理規模が大きくなってくると
論理規模が大きくなり必要なIO数が増加してもCPLDの論理規模の範囲内であれば、それ程問題はなさそうです。パッケージの選択ではピン数が増加すると嫌でも面実装しか選択肢がなくなります。
例外はN対1のデータセレクタを実装するケースです。
先に
説明したケースでは直接の原因は開発ツールのバグであったものの、その後バグが修正される期待は出来そうにないのが実情です。また、それ以外のバグが残っている可能性も考えておいたほうが良いでしょう。
選択肢としては下記の二通りがあります。
- 従来型のCPLDを使用するが、プログラムの記述方法を工夫してN対1のデータセレクタを入力数の制限範囲に収める
- FPGA類似型のCPLDに切り替える。こちらは入力数の制限が非常にゆるい。アルテラ社のMAXUが該当する。
後はとりあえず実際に使ってみるしかないでしょう。どの選択をしても大きな差はないと思います。
私は最初に5V電圧仕様のXC9500を使用した関係で小規模なケースではXC9500XLを採用しています。
論理規模が大きくなった場合も当初はXC9500XLを使用していたのですが、現在はMAXUも使えるようにしてあります。
このようにした理由は開発ツールのバグを懸念してのことです。 国内メーカー並みのサポート体制は期待すべきでないので、両者を実際に使用してみて自分の使用方法に向いたデバイスおよびツールを優先的に使用できるようにしています。
ちなみに、知人に聞いたところでは、開発ツールの出来に関する比較ではザイリンクス社・アルテラ社であまり違いはないと言っています。両者共に多少のバグは残っており、それを如何に避けて使いこなすかが勝負の分かれ目ということでしょう。
今後は徐々にMAXUの使用頻度が増えていくだろうと見ています。その理由はMAXUの内部構造がFPGAを手本としているので、今後今以上の規模のデバイスも作られる期待が持てます。将来的な互換性も期待しやすいためです。従来型のCPLDでは、今以上の規模のデバイスは作られないでしょう。