2019.3.8
前へ
次へ
ホームページトップへ戻る

[新連載]CPLD入門!
〜〜〜〜〜〜〜〜〜〜〜〜〜〜〜〜〜〜〜〜〜〜〜〜〜〜〜〜〜〜〜〜〜〜〜〜〜〜〜〜〜〜〜
いつか使うことになるだろうと思ってはいたのですが。
何を今頃になって、というようなものですが。
ようやく本気で、CPLDと四つに取り組みます。
〜〜〜〜〜〜〜〜〜〜〜〜〜〜〜〜〜〜〜〜〜〜〜〜〜〜〜〜〜〜〜〜〜〜〜〜〜〜〜〜〜〜〜



[第19回]


●VHDLプログラムのコンパイル

VHDLプログラムの作成が完了したら、いよいよCPLDに書き込むための準備にかかります。
今まで説明してきましたVHDLプログラムは人間が理解し易いようにということで作り出された高級言語で、ターゲットこそCPLD、FPGAかCPUかの違いはあるものの、BASICとかC言語とかというようなプログラム言語と同じようなものです。
C言語などは人間に分かり易い文法のもとで記述しますがそのままではCPUを実行させることができません。
コンパイラを通すことでCPUが実行できるマシンコードに置き換える作業が必要です。
BASICにもコンパイラ型がありますが、当社のZB3BASICはインタプリタです。
コンパイラは事前にマシン語コードに変換しますが、インタプリタは実行時にマシン語プログラムに置き換えます。
いずれにしても最終的にマシン語コードに置き換える点ではコンパイラもインタプリタも同じです。
VHDLプログラムも全く同じで、コンパイラによってCPLD、FPGAに書き込むことができる形の言語コードに置き換える必要があります。
ALTERAのCPLDの場合は総合開発環境QUARTUSUのもとでVHDLソースプログラムをコンパイルします。
本当はQUARTUSUを起動して、ターゲットにするCPLDの型名を設定するなどの初期的な手続きが必要なのですが、そのことについてはいずれ説明することにして、ここではVHDLソースプログラムが出来上がって、それをコンパイルするところから説明することにします。

Processingをクリックして開くメニューのStart Compilationをクリックすることでコンパイル作業が開始されます。

この画面は少し前に作成しましたので、[第14回]のプログラム変更前のプログラムリストが表示されています。
ま、しかし、基本的なところでの違いはありません。

コンパイルに成功すると下のメッセージが表示されます。

一度でSUCCESSすることはまず稀で大抵はいっぱいエラーメッセージが表示されて、そこでコンパイルは打ち切られてしまいます。
エラーメッセージを読んで何がどう間違っているのかを理解してそこを訂正して再びコンパイルします。
慣れないうちはエラーメッセージの意味するところすら理解できなくて悩むことになると思いますが、慣れてくるにつれてエラーメッセージの意味するところが理解できるようになります。
エラーメッセージのほかにも警告メッセージ(warning)がたくさん出されます。
warningは文法としては間違っていないけれどもそのままCPLDに書き込んだ場合に誤動作につながる可能性があるところなどを指摘するメッセージです。
これはエラーではないので、最終的なファイルは作成されます。

warningはFlow Messagesで確認することができます。

多くは意図しないヒゲなどによって誤ったラッチ動作が行なわれる可能性などを指摘するwarningですが、ロジック回路に間違いがないことがわかっていれば無視しても構わないでしょう。
意味不明のメッセージもありますが、あまりそこにこだわっていると先に進めません。
コンパイルがエラーメッセージなしで完了したなら、ターゲットに書き込むところまで進めますから、とにかくターゲットに書き込んでまずは動作させてみて、期待通りに働いてくれるかどうかを見てから、納得できないところがあれば、そこでメッセージをあらためて確認してみてもよいのでは、と思います。

ところで。
さきほどのコンパイル完了のところの画面ですが、そこではターゲットにしているCPLDの資源のうち何%を使用しているかが表示されています。
今回のプログラムの場合には以下の通りです。

Total macrocells 18/32(56%)
Total pins 29/36(81%)

pins(端子)は使っているだけの数値になりますから、その通りですが、今回程度の回路でmacrocellsを56%も消費してしまうのはなぜでしょうか?
それを理解するには、やっぱりCPLDの構造を知る必要がありそうです。

次回に続きます。

CPLD入門![第19回]
2019.3.8upload

前へ
次へ
ホームページトップへ戻る