FC2カウンター FPGAの部屋 2018年01月29日
FC2ブログ

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

FPGAの部屋

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

Windows 10 からUbuntu 16.04 LTSをVNC で使う

Ubuntu 専用のマシンが来たので、メインのマシンのWindows 10 から、今度購入したUbuntu 16.04 LTS のマシンを使いたいということでやってみた。

初めにWindows 10 のリモートデスクトップでUbuntu 16.04 LTS を制御できれば良いな?と思って、Ubuntu に xdrp をインストールしたのだが、足掛け 2 日やってもうまく行かなかった。
そこで、VNC はどうかということで調べてみると、Ubuntu 16.04 LTS にはVino というVNC サーバーがインストールされているということなので、さっそく使ってみることにした。

日本語だと「デスクトップ共有の設定」という名前だ。下の図のように設定した。
UltraVNC_1_180129.png

Windows 10 側では、窓の杜からUltraVNC をダウンロードしてインストールした。
UltraVNC を起動する。
VNC Server のIP を指定して、Connect ボタンをクリックする。
UltraVNC_3_180129.png

その前に、Options... ボタンをクリックすると設定することができる。
UltraVNC_4_180129.png

Connect ボタンをクリックすると、Password を入力する。これは、「デスクトップ共有の設定」で設定したパスワードを入れる。
UltraVNC_5_180129.png

すると、Ubuntu 16.04 LTS のデスクトップが表示される。
UltraVNC_2_180129.png

これで、Ubuntu をWindows から使うことができるが、やはり、VNC なので、カーネルの移動やキー入力が遅い。もし遅さが気になるようだったら、ネイティブに接続されているマウスとキーボードを使えば良さそうだ。
上の画面は、SDxをインストールしたところだ。
  1. 2018年01月29日 20:14 |
  2. パソコン関連
  3. | トラックバック:0
  4. | コメント:0

Vivado HLS 2017.4 で片方が定数の場合の乗算の検討3(C コードの合成2)

Vivado HLS 2017.4 で片方が定数の場合の乗算の検討2(C コードの合成1)”の続き。

前回は、乗数が定数の場合の乗算のC コードの合成を行って、2 つの量子化モードとオーバーフローモードでの演算の比較を行った。今回は、片方が定数なので、乗算をシフト+加算に置き換えた演算で、2 つの量子化モードとオーバーフローモードでの演算の比較を行う。

まずは、任意精度固定小数点データ型の ap_fixed の量子化モードは 0 への切り捨て(AP_TRN_ZERO)で、オーバーフローモードは飽和(AP_SAT)に設定した。つまり、multi_test.h で上の 2 行のコメントを外して、下の 2 行をコメントアウトした。
multi_test_9_180128.png

そして、multi_test.cpp はout1 を out2 からコピーして、本来の out1 をコメントアウトした。これは、out2 のリソース使用量を見るためだ。
multi_test_17_180128.png

これで C コードの合成を行った。結果を示す。
multi_test_18_180129.png

Latency が 2 クロックになって、更にレイテンシが増えている。これだと、入力したクロックの 2 クロック後が出力のクロックになる。
リソース使用量は、FF が 25 個、LUT が 269 個となっている。今までで一番リソース使用量が多い。

Analysis 画面を示す。
multi_test_19_180129.png

3 個のステートがある。

次に、multi_test.h の下の 2 行を生かして、任意精度固定小数点データ型の ap_fixed の量子化モードが負の無限大への切り捨て(AP_TRN)で、オーバーフローモードが折り返し(AP_WRAP)に変更してみよう。
multi_test_5_180127.png

これで、C コードの合成を行った。結果を示す。
multi_test_20_180129.png

Latency は 0 クロックになったので、組み合わせ回路になっている。
リソース使用量は、LUT が 53 個だ。

Analysis 画面を示す。
multi_test_21_180129.png

今度は、乗数が定数の乗算で C コードの合成結果の in1 を 2 倍して、in1 の 1/4 の数を引く方法をやってみようと思う。
multi_test_22_180129.png

この時に C シミュレーションを行ったところ、小数部のビット幅を 1 ビットずつ増やす必要があった。
multi_test.h を示す。
multi_test_23_180129.png

C コードの合成を行った。結果を示す。
multi_test_24_180129.png

Latency が 1 クロックで、FF は 12 個、LUT は 227 個使用している。
これは、”Vivado HLS 2017.4 で片方が定数の場合の乗算の検討2(C コードの合成1)”の時の乗数が定数の時と同じ合成レポートになった。

Analysis 画面を示す。
multi_test_25_180129.png

multi_test.h の下の 2 行を生かして、任意精度固定小数点データ型の ap_fixed の量子化モードが負の無限大への切り捨て(AP_TRN)で、オーバーフローモードが折り返し(AP_WRAP)に変更した。
multi_test_26_180129.png

C コードの合成を行った。結果を示す。
multi_test_28_180129.png

これも、”Vivado HLS 2017.4 で片方が定数の場合の乗算の検討2(C コードの合成1)”の時の乗数が定数の時と同じ合成レポートになった。

Analysis 画面を示す。
multi_test_29_180129.png

結論としては、片方が定数の乗算を使用して、任意精度固定小数点データ型の ap_fixed の量子化モードが負の無限大への切り捨て(AP_TRN)で、オーバーフローモードが折り返し(AP_WRAP)を使用したほうが良さそうだ。
  1. 2018年01月29日 05:02 |
  2. Vivado HLS
  3. | トラックバック:0
  4. | コメント:0