FC2カウンター FPGAの部屋 Zybot に超音波距離センサを搭載する7(ZYBO_0_162_7 に 2 つのIP を追加)

FPGAやCPLDの話題やFPGA用のツールの話題などです。 マニアックです。 日記も書きます。

FPGAの部屋

FPGAの部屋の有用と思われるコンテンツのまとめサイトを作りました。Xilinx ISEの初心者の方には、FPGAリテラシーおよびチュートリアルのページをお勧めいたします。

Zybot に超音波距離センサを搭載する7(ZYBO_0_162_7 に 2 つのIP を追加)

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 IPussensor_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 フォルダを新規作成した。
Ultrasonic_senser_inf_44_161215.png

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

ZYBO_0 ブロックデザインで、 ultrasonic_sensor_inf と ussensor_iobuf 、Constant を追加した。配線済みの状態だ。

次に、その3個のIP を選択して、Create Hiearchy... を選択して階層モジュールにした。名前はusoinc_sensor_inf とした。
Ultrasonic_senser_inf_55_161215s.png 

階層モジュール usoinc_sensor_inf の中身を示す。(2016/12/16 : 追記)この回路で距離の測定をすることができたのですが、たまに動作を停止してしまいました。原因はsensor_in にシンクロナイザが入っていないことでした。詳しくは、”Zybot に超音波距離センサを搭載する8(ZYBO_0_162_7 に 2 つのIP を追加2)”をご覧ください。
Ultrasonic_senser_inf_53_161215s.png 

ZYBO_0 ブロックデザインでどのようなIP が使われているかを示す。
Ultrasonic_senser_inf_54_161215s.png 

Address Editor の画面を示す。 ultrasonic_sensor_inf_0 が 0x43CD_0000 にマップされている。
Ultrasonic_senser_inf_48_161215.png

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 を割り当てた。
Ultrasonic_senser_inf_41_161213.png

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

レポートを示す。
Ultrasonic_senser_inf_56_161215s.png

ハードウェアをエクスポートして、SDK を立ち上げると、ZYBO_0_wrapper_hw_platform_1 のdrivers フォルダの下に ultrasonic_sensor_inf_v1_0 が入って、ドライバが見えている。

ultrasonic_sensor アプリケーション・プロジェクトを作成して、超音波距離センサから距離を取得して表示する ultrasonic_sensor.c を書いた。ビルドも成功した。
Ultrasonic_senser_inf_57_161215s.png

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

コメント

コメントの投稿


管理者にだけ表示を許可する

トラックバック URL
http://marsee101.blog19.fc2.com/tb.php/3662-9a9607da
この記事にトラックバックする(FC2ブログユーザー)