Let's fill out my diary in english!
I will try to fill out my diary in eiglish starting today for myself.
I will find topic and write diary about that.
It's ok to tell me mymistake a sentence,spell and so on.
I don't afraid to mistake and express my mind and idea.
but,I appreciate if someone teach me my err.
複数のプログラムファイルでvelirog HDL
DE0-nanoに内蔵されている発振器をつかって1秒ごとにLEDを点消灯させるプログラムを作りました。
くっそ簡単なことなのですが、自分にとってはこれだけで苦労して取り組みました。悲しいです。
Quartus ii でFPGAプログラム作成はいままでやってきましたが複数ファイルでの論理合成というかプロセスのコンポーネント化ができなかったので出来るようになって一安心です。これができないとプログラムの流用もできないので。(コピペすれば良いですがスマートじゃないので)
詰まったポイントを以下に
- 宣言のミス
- top-level entityの設定
- ピンアサイン
まず、構成の仕方としては以下のイメージですね。
信号反転のプログラムの中で1Hz信号生成のモジュールを呼び出し、処理結果を戻してLEDに反映させるという流れです。
ONOFFとCNT1HZというVelirogを作成しました。ここで注意したいのは外部モジュールとの接続です。Cで言うところのプロトタイプ宣言でしょうか。この感覚がセンスなさそうですが。外部モジュール内で使う信号はwireを使って宣言するようです。また、ONOFF中で定義したinput,output信号は宣言無しで使っています。
ここで詰まったというかコンパイルが引っ掛かったポイントがありました。
- 宣言のミス
ONOFF内で扱う信号paraの宣言をwireにしていました。このあたりの扱いがまだ拙いですが、どうやらwireはモジュール間の接続だけに使うようです。
次に
- top-level entityの設定
ですが、階層の上位中で下位の階層モジュールを接続するという感じなのでtop-level entityを定義する必要があるようです。以下のようにentityを選択できます。
最後に
- ピンアサイン
ですが、これはCLKはどこにつなげれば良いのか考えましたが公式リファレンスに書いてありました。R8みたいですね。
以上。Quartus iiの初歩の初歩の初歩でした。