
第7章 いよいよ免許皆伝!?実践回路設計
7.4 モジュール作成 ledout
次にledoutモジュールの回路設計をしてみます。
このモジュールでの主な処理はスイッチタイマ・カウンタ値を7セグメントLEDの表示
パターンに変換して出力することです。
単独での7セグメントLEDの点灯制御に関してはこれまでの例題実習で
理解していただけたかと思いますが今回のポイントは複数(2つの)7セグメント
LEDを点灯させることです。
第6章で若干は触れましたが本講座で使用するFPGAボードには4つの
7セグメントLEDがありますが各セグメントの制御信号は共通となっているため
一度に点灯できるのは1つです。
それでは4つばらばらの表示はできないのでしょうか?
実はLEDはオフにしてもすぐに表示が消えません。(少なくとも人間の目では
わからない。)そこで、時間を分割して点灯するLEDを高速に切り換えていくことに
より同時に表示しているように見せかけることができます。(図7−3−1、図7−3−2)

図7−3−1
図7−3−2
これをダイナミック点灯方式といいます。
この例題では10m秒ごとに表示を切り換えます。切り換えの制御信号は
sysctrlモジュールで生成します。
そして、refという入力信号がその切り換え信号になります。
Hi期間とLo期間がそれぞれ10m秒でHi期間で一番右端の7セグメントLED
(AN0)をLo期間でその左隣の7セグメントLED(AN1)の点灯を行います。
lptregというDフリップフロップにタイマーカウンタ値から変換(dec)した表示
パターンを、またlenregというDフリップフロップに点灯する7セグメントLEDの
選択パターン(’01’と’10’)をセットしそれぞれの制御信号として出力します。
ledoutモジュールで必要な入出力ポートは以下のようになります。
1. tin タイマーカウンタ信号入力
2. ref LED点灯切り換え制御信号入力
3. lpt LED表示パターン信号出力
4. len 点灯LED選択信号出力
5. clk クロック信号入力
こちらがledoutモジュールのHDL記述になります。(リスト7−3−1)
リスト7−3−1
先程のkeyinモジュールと同様にISEの「Processes」サブウィンドウの
「Create new Source」をダブルクリックして「New Source Wizard」ウィンドウで
ledout.vというソースファイル名を指定してデザインエントリーしてください。
またブロック図も更新するとこのようになります。(図7−3−3)
図7−3−3
TOP NEXT(7.5 モジュール作成 sysctrl) INDEX(第7章)