複数のプログラムファイルでvelirog HDL

DE0-nanoに内蔵されている発振器をつかって1秒ごとにLEDを点消灯させるプログラムを作りました。

くっそ簡単なことなのですが、自分にとってはこれだけで苦労して取り組みました。悲しいです。

 

Quartus ii でFPGAプログラム作成はいままでやってきましたが複数ファイルでの論理合成というかプロセスのコンポーネント化ができなかったので出来るようになって一安心です。これができないとプログラムの流用もできないので。(コピペすれば良いですがスマートじゃないので)

 

詰まったポイントを以下に

 

  • 宣言のミス
  • top-level entityの設定
  • ピンアサイン

 

 

まず、構成の仕方としては以下のイメージですね。

信号反転のプログラムの中で1Hz信号生成のモジュールを呼び出し、処理結果を戻してLEDに反映させるという流れです。

 

f:id:ksy3939:20160728124705p:plain

ONOFFとCNT1HZというVelirogを作成しました。ここで注意したいのは外部モジュールとの接続です。Cで言うところのプロトタイプ宣言でしょうか。この感覚がセンスなさそうですが。外部モジュール内で使う信号はwireを使って宣言するようです。また、ONOFF中で定義したinput,output信号は宣言無しで使っています。

 

ここで詰まったというかコンパイルが引っ掛かったポイントがありました。

  • 宣言のミス

ONOFF内で扱う信号paraの宣言をwireにしていました。このあたりの扱いがまだ拙いですが、どうやらwireはモジュール間の接続だけに使うようです。

 

f:id:ksy3939:20160728125340p:plain

次に

  • top-level entityの設定

 

ですが、階層の上位中で下位の階層モジュールを接続するという感じなのでtop-level entityを定義する必要があるようです。以下のようにentityを選択できます。

f:id:ksy3939:20160728130314p:plain

最後に

  • ピンアサイン

ですが、これはCLKはどこにつなげれば良いのか考えましたが公式リファレンスに書いてありました。R8みたいですね。

 

以上。Quartus iiの初歩の初歩の初歩でした。

 

ポケモンgo

ポケモンgoが解禁となりました。

学校中が蜂の巣をつついたように、ポケモン一色に大騒ぎ。

周りの人間が必ずと言っていいほど話題はポケモンgo

f:id:ksy3939:20160722141639j:plain

 

f:id:ksy3939:20160722141712j:plainディスプレイ前でズバットをゲット。

新鮮味があって面白いと思う。

出不精な人が外を出歩くきっかけになりそう。

良くも悪くも社会現象になりそうですね。

初投稿

組み込みソリューション研究室で、マイコンなどを使った機器制御に取り組んでいます。初めて触る機器の備忘録も兼ねて記録を残していこうと思います。ほとんど素人同然ですので、そういった近しい境遇の人にとっては役立つかもしれません。