”
Zybot に超音波距離センサを搭載する6(ZYBO_0_162_7 に usonic_sensor_inf IP を追加)”の続き。
(2016/12/16 : 追記)この回路で距離の測定をすることができたのですが、たまに動作を停止してしまいました。原因はsensor_in にシンクロナイザが入っていないことでした。詳しくは、”Zybot に超音波距離センサを搭載する8(ZYBO_0_162_7 に 2 つのIP を追加2)”をご覧ください。
前回はうまく行ったと思ったのだが、SDKで Vivado HLS 2016.3 の Ultrasorinc_sensor_inf IP のドライバがどうしても使えなかった。それで今回は順当に
Vivado HLS 2016.3 の Ultrasorinc_sensor_inf IP と
ussensor_iobuf IP をZYBO_0_162_7 フォルダのプロジェクトのブロックデザインに追加して、論理合成、インプリメント、ビットストリームの生成を行う。
前回も書いたが、”
Vivadoを使用してZYBO_0_163_6フォルダのプロジェクトにRGB2HSV IPを追加5(Ubuntuでの動作)”のZYBO_0_163_6フォルダのプロジェクトをコピー&ペーストして、ZYBO_0_163_7 フォルダとした。
ZYBO_0_163_7 フォルダに ultrasonic_sensor_inf フォルダと ussensor_iobuf フォルダを新規作成した。

IP Catalog に ultrasonic_sensor_inf と ussensor_iobuf を追加した。

ZYBO_0 ブロックデザインで、 ultrasonic_sensor_inf と ussensor_iobuf 、Constant を追加した。配線済みの状態だ。
次に、その3個のIP を選択して、Create Hiearchy... を選択して階層モジュールにした。名前はusoinc_sensor_inf とした。
階層モジュール usoinc_sensor_inf の中身を示す。
(2016/12/16 : 追記)この回路で距離の測定をすることができたのですが、たまに動作を停止してしまいました。原因はsensor_in にシンクロナイザが入っていないことでした。詳しくは、”
Zybot に超音波距離センサを搭載する8(ZYBO_0_162_7 に 2 つのIP を追加2)”をご覧ください。
ZYBO_0 ブロックデザインでどのようなIP が使われているかを示す。
Address Editor の画面を示す。 ultrasonic_sensor_inf_0 が 0x43CD_0000 にマップされている。

1つポートを追加したので、Create HDLWapper... を実行して再度トップのVerilog HDL コードを更新した。
論理合成を行い、Synthesized Design を開いて、Layout メニューからI/O planning を選択した。
”ZYBO™ FPGA Board Reference Manual”の25 ページの”Table 9. Pmod pinout.”を参考に、まだ使用していないJB の7 番 Y18 に ussensor_inout を割り当てた。

インプリメント、ビットストリームの生成を行った。

レポートを示す。

ハードウェアをエクスポートして、SDK を立ち上げると、ZYBO_0_wrapper_hw_platform_1 のdrivers フォルダの下に ultrasonic_sensor_inf_v1_0 が入って、ドライバが見えている。
ultrasonic_sensor アプリケーション・プロジェクトを作成して、超音波距離センサから距離を取得して表示する ultrasonic_sensor.c を書いた。ビルドも成功した。

なお、最初は以前のハードウェア・プラットフォームが残っていると、SDKのハードウェアのインポートがうまく行かないことがあった。そのような場合は、SDK のフォルダ(ZYBO_0_153.sdk)を一旦削除してから、Vivado でハードウェアを再度エクスポートして、SDKを立ち上げるとうまく行った。
- 2016年12月15日 04:41 |
- Zybot
-
| トラックバック:0
-
| コメント:0