[新連載]CPLD入門!
〜〜〜〜〜〜〜〜〜〜〜〜〜〜〜〜〜〜〜〜〜〜〜〜〜〜〜〜〜〜〜〜〜〜〜〜〜〜〜〜〜〜〜
いつか使うことになるだろうと思ってはいたのですが。
何を今頃になって、というようなものですが。
ようやく本気で、CPLDと四つに取り組みます。
〜〜〜〜〜〜〜〜〜〜〜〜〜〜〜〜〜〜〜〜〜〜〜〜〜〜〜〜〜〜〜〜〜〜〜〜〜〜〜〜〜〜〜
[第29回]
●7セグメントLED+5×5キーボード回路(2)
前回の回路をもとにして、とりあえず作ってしまった試作基板です。
できるだけローコストになるようにというコンセプトから、7セグメントLEDは小型の4桁表示タイプを使い、キーも小型のタクトスイッチを使いました。
キーは大型でキートップにアクリルキャップがついていてシールが入れられるものが使い易いのですが、コストが全然違います。
ND80Z3.5に使っているキーは高いのです。
そういうキーに比べると使いにくいのは事実ですが、このキーとLEDを使ってデータなどを入力したり、マシン語モニタ機能を使うというような使い方はそれほど頻繁ではないと思いますから、ここはコストを優先に考えました。
VHDLプログラムはプリント基板が出来上がってくるよりも前に作ってしまいました。
行番号26〜33で8桁分のLEDセグメントバッファを定義しています。
ND80Z3.5ではRAM上に置いている8バイトのバッファです。
行番号40〜69では555からのパルスを入力するごとに桁カウンタをインクリメントして、その値をもとにして8桁のLEDをダイナミックドライブ表示するための信号出力を行なっています。
これだけでも少なくとも8×16+4=100個のラッチ(FF、フリップフロップ)を消費してしまうはずなので、この時点でこれはかなりきびしいことになりそうという予想は当然していました。
でもまあここまできたからには、やってみるしかありません。
ままよと思ってコンパイルしてみました。
結果はぎりぎりセーフでありました。
MacroCellの使用率は98%です。
もっともこれだけで終わりではありません。
実際に外部入出力信号をEPM7128SLC84の入出力端子に割り当てる必要があります。
QuartusUではPin Plannerというツールを使います。
とりあえずざっと割り当てました。
ピンを割り当てたらもう一度コンパイルします。
で。
もう一度コンパイルしましたら。
なんじゃ、こりゃあ!!
びっくり仰天とはこのことです。
ピンを割り当てる前にはエラーなくコンパイルが完了したのに、ピンを割り当ててから再コンパイルしたところ、なんと、ぶわぁっとご覧の通り意味不明のエラーメッセージが山ほど出てしまいました。
CPLD入門![第29回]
2019.4.2upload
前へ
次へ
ホームページトップへ戻る