波形

課題3

上期の最終課題

上期の最終課題は、以下のVHDLのサンプル・コード参考文献を参照して、実際に動作する回路を自分で設計して、シュミレーションからシンセサイズまでを完了させる事です。

回路作成の手段は問いませんが、研究会で紹介したVHDLが取り組みやすいでしょう。
最終課題に取り組む前に、以下のVHDLで記述された課題用のファイル2つをダウンロードして取り組み、ウォーミング・アップしておく事をすすめます。

以下の条件を満たせば、HDLのXC95108-PC84のボードを使用して、実際に動作させて、確認する事が可能です。
  • 入力は、10MHzのクロック、3つのスイッチ(RESET, START, STOP)
  • 出力は、8個のLED
  • ターゲット・デバイスを 95108-PC84-7 / 10MHz として、Synthesis のオプションで、Edit Synthesis Constraintsを必ず指定してピン(P1-P51)のアサインを添付VHDLのソースのコメントの通りに指定する。
  • Synthesisが通ってもImplementationでエラーになる事があるので、必ずImplementationを完了させておく事。

サンプルコードについて

なお、以下のVHDLのサンプル・コードでは、乱数を発生させてLEDを約1秒に1回、クリスマスツリーのようにランダムに点灯させます。STARTボタンは働かず、STOPボタンで一時停止します。

ヒント

ほかに考えられる応用としては、LED 2進表示のタイマー(ストップウォッチ)や、プッシュした数を数えるカウンターなどがあると思います。半日もあれば何かできると思いますので、工夫してみて下さい。

さらにヒント

デバッグは、シミュレーションで行います。
時間系統の動作では、1秒という値は恐ろしく長くて追跡できないために、タイマーのカウントビットを24ビットから4ビットに減らしてデバッグします。
(ソース中コメントで埋めてあります。このタイマー部分は流用可能でしょう。)

バグフィックス

サンプル・コードには、実際には使用しない"START ボタン"のPORTを割り当てているため、Optimizeの結果、未使用PORTのピンアサインができず、ImplementationでWarningやエラーとなるケースが報告されています。そのような場合には、ソース上で未使用のSTARTポートの宣言をコメントにして、Edit ConstrainsのPad LocでのSTART PORTのピンアサイン(出てこない)をしないように下さい。

くれぐれもSynthesisのところで、Edit Synthesis/Implementation Constrain と その下の
View Essential Performance after Optimization をチェックして、ソースコードのコメントを解釈しながら、PORT定義で、ピンはちゃんとアサインするように。

IC
IC
ICVHDL_サンプル・コード    

トップ アイコン
トップ


波形