【FPGA/HDL】Vivado HLS 高位合成体験記2日目:C++のソースコードの作成

投稿日:2019年5月12日
最終更新日:2019年5月12日

この日記でやること

Vivado HLSの高位合成を使って、ZYBOのLEDを点滅させてみる日記の2日目。前回はプロジェクトの作成をやったので、今回はC++のソースコードを作成していく。

 

環境

Windows 10
Vivado HLS 2018.3
ZYBO

 

C++のコードを作成

前回はVivado HLSのプロジェクトを作成したので、今回からC言語でコーディングをしていきたいと思う。まず、Projectから「New Source…」を選択する。

ファイル名は適当にblink_led.cppとして、OKを押す。

するとblink_led.cppが作成され、Vivado HLSの画面で開かれる。適当なエディタで編集しても良いが、今回はVivado HLSからコーディングしてみる。イメージとしては、外部のスイッチが押されたらLEDの点灯パターンを変えるような動作をさせたい。ということで、以下のようなコードを書いた。

ap_int.hは、ap_uint型を使うためにincludeしている。ap_uint型を使うと、任意のbit幅の符号なし整数を扱うことができ、verilogでinputやoutputのbit幅を指定するような感覚で信号を扱うことができる。また、関数blink_ledの引数で、値渡ししているi_led_switchは入力ポートに、ポインタ渡ししているo_ledは出力ポートになる。

※ポインタ渡しの場合、引数は入力ポートや出力ポートのどちらにもなる。このあたりは私もまだ勉強不足なので、おいおい触れる…かも?

これでコードは完成したので、File → Saveを選択してソースコードを保存する。

次回はC++でテストベンチを書いて動作を確認する。

 

参考文献

公式のドキュメントが以下にあるので、参照しながら進めていきます。

UG871:Vivado Design Suite Tutorial – Hi-Level Synthesis

UG902:Vivado Design Suite User Guide – Hi-Level Synthesis

以下の資料も参考にさせて頂きました。
https://www.slideshare.net/marsee101/vivado-hls1

 

ZYBOで遊ぼう日記まとめ

ZYBO関係の記事は、大まかな内容ごとに以下にまとめています。
https://wakky.tech/zybo/

 


投稿者: wakky

映画と旅行が大好きなエンジニア。お酒、ゲーム、読書も好き。

コメントを残す

メールアドレスが公開されることはありません。

このサイトはスパムを低減するために Akismet を使っています。コメントデータの処理方法の詳細はこちらをご覧ください