FC2カウンター FPGAの部屋 Vivado HLS 2019.1 のprintf() の振る舞い
FC2ブログ

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

FPGAの部屋

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

Vivado HLS 2019.1 のprintf() の振る舞い

Ubuntu 18.04 上の Vivado HLS 2019.1 でソースコードを修正している時に printf() で ap_int<32> 型の変数を見ようとした。
通常は int にキャストして値を表示するが、それを忘れると ap_int<32> 型の変数の値が変化しているのにもかかわらずに値が一定で変化しなかった。

printf("val.data = %x\n", val.data);


bmp_header_file_21_190614.png

ap_int<32> 型の変数を int でキャストすると正常な値が表示された。

printf("val.data = %x\n", (int)val.data);


bmp_header_file_22_190614.png

しかし、int でキャストしていない ap_int<32> 型の変数の値を printf() で表示しようとすると、以前はC シミュレーションのコンパイル時にエラーになったはず?
試しに、Windows 10 のVivado HLS 2017.4 でやってみると、 int でキャストしていない ap_int<32> 型の変数の値を printf() で表示しようとするとエラーになった。
bmp_header_file_23_190614.png

これを int でキャストするとエラー無く表示できた。
bmp_header_file_24_190614.png

Vivado HLS 2017.4 のエラー表示されたほうが、Vivado HLS 2019.1 でエラー無く一定の値を表示するより、よほど良いと思う。
値が変化しないのか?を思ってびっくりしてしまった。
  1. 2019年06月14日 04:13 |
  2. Vivado HLS
  3. | トラックバック:0
  4. | コメント:0

コメント

コメントの投稿


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

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