別の検証オプションは、ソース コードを HLS math ライブラリを使用するように変換する方法です。このオプションを使用する場合、C シミュレーションと C/RTL 協調シミュレーション結果に差はなくなります。次の例では、上記のコードを hls_math.h
ライブラリを使用するように変更しています。
注記: このオプションは、C++ でのみ使用可能です。
-
hls_math.h
ヘッダー ファイルを含めます。 - 数学関数を同等の
hls::
関数に置き換えます。#include <cmath> #include "hls_math.h" #include <fstream> #include <iostream> #include <iomanip> #include <cstdlib> using namespace std; typedef float data_t; data_t cpp_math(data_t angle) { data_t s = hls::sinf(angle); data_t c = hls::cosf(angle); return hls::sqrtf(s*s+c*c); }