第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章)