CPLDで遊ぼう!(8)
更新日:2004年1月24日

24時間時計表示にしてみよう
前回はなんとか数字を表示出来るところまで行きましたので、今回から本格的(?)な実用を目指して製作を進めて行きます。
最終的には時計表示をしたいのでまずは7セグメント表示を2桁追加します。
7セグメント基板とは30ピンのコネクタで接続していますので今回2桁を追加しても配線は可能になっています。
今回の製作の仕様概要を記します。
1)7セグメント表示は4桁とする。
2)24時間制の時計表示とする。
3)今回は時計表示の確認が目的なのでカウントアップ間隔は無視する。
ということで、CPLD側の回路図を眺めて下さい。
(CPLD基板側回路)
何も難しい部分はありません。7セグメント表示のための配線を追加しただけです。
24時間時計表示にしてみようの周辺回路
7セグメント表示を2桁追加しました。とりあえず回路図を見て下さい。
(7セグ表示基板側回路図)
(4桁になった7セグメント回路)
24時間時計表示にしてみようのCPLD内部設計
ではいきなりですが内部の回路図を見て下さい。
(CPLD内部回路)
24時間表示を短時間に確認するためにLPM_COUNTERの分周は少なくしています。
表示は高速で変化していきますが状況は確認出来るはずです。
もっとゆっくりカウントアップしたい方はビット数を大きくしてみて下さい。
(LPM_COUNTER)
私はビット数を17bitに設定しました。前回と同様使用するポートはclockとcoutのみです。
カウント方向は「UP」です。10進(BCD)カウンタは74162を使用します。クロック同期クリアタイプの同期式カウンタです。
(分の桁の10進カウンタ部)
カウンタがクロック同期式なので「59」の一致を判断してその次のクロックで実際のクリアを掛けるようにしています。
(時の桁の10進カウンタ部)
ここも同様に「23」の一致を判断します。同時に分の桁の「59」の一致も取り込み、時計としての24時間制を機能させます。意外に簡単でしたね。
7セグメントデコーダの部分は前回と同じです。端子の割付が本数が多くて大変ですががんばって入力しましょう。
既存のロジックICを用いて内部設計していますので、使用ゲー数が多いはずです。
力のある方はVHDLで設計してみて下さい。
どちらかというと私は電子工作出身(?)なのでこのロジックICを用いる以外に設計は出来ません。(VHDLの勉強をしていないだけかも・・・・)
24時間時計表示にしてみよううの大完成
では実際にコンパイルしたデータをダウンロードして動かしてみましょう。
(高速動作中の24時間表示)
(暗いところで見るとこんな様子です)
表示が高速で変わっているので分の表示が変になっていますが、正しい表示をしております。ご安心下さい。
なんとかここまで来ることが出来ました。次回はいよいよ実現的な時計を目指して製作に励むことにしましょう。こんな複雑なロジックがこんなに簡単に出来てしまうなんて、なんて素敵なことなのでしょう。
「CPLDで遊ぼう!」はこれからどんどん楽しくなります。これからもよろしくお願いします。

「CPLDで遊ぼう!」表紙へ戻る