プレクス USB接続ドングル型地上デジタルTVチューナー V2.0 ●手数料無料!! PX-S1UD /dud3300508.html,www.3nokta.org,PX-S1UD,パソコン・周辺機器 , PCパーツ , PC用TVチューナー,V2.0,6005円,USB接続ドングル型地上デジタルTVチューナー,プレクス プレクス USB接続ドングル型地上デジタルTVチューナー V2.0 ●手数料無料!! PX-S1UD 6005円 プレクス USB接続ドングル型地上デジタルTVチューナー PX-S1UD V2.0 パソコン・周辺機器 PCパーツ PC用TVチューナー /dud3300508.html,www.3nokta.org,PX-S1UD,パソコン・周辺機器 , PCパーツ , PC用TVチューナー,V2.0,6005円,USB接続ドングル型地上デジタルTVチューナー,プレクス 6005円 プレクス USB接続ドングル型地上デジタルTVチューナー PX-S1UD V2.0 パソコン・周辺機器 PCパーツ PC用TVチューナー

プレクス USB接続ドングル型地上デジタルTVチューナー V2.0 手数料無料 お中元 PX-S1UD

プレクス USB接続ドングル型地上デジタルTVチューナー PX-S1UD V2.0

6005円

プレクス USB接続ドングル型地上デジタルTVチューナー PX-S1UD V2.0





◆商品名:プレクス USB接続ドングル型地上デジタルTVチューナー PX-S1UD V2.0

世界最小・最軽量!USBスティックタイプのTVチューナー
1ch視聴・録画できる TVチューナー地デジ対応
世界最小・最軽量テレビチューナーです。
地上デジタル放送 : 1
F型アンテナ変換コンバーター

USBドングルタイプで一般的なUSBフラッシュメモリと同じ大きさのためデスクトップ、ノートPC問わず邪魔になりません。 世界最小・最軽量テレビチューナーです。USBバスパワーで別途電源もいりません。
USBポートにPX-S1UDを挿してどんどん地上波デジタル放送を増やす事ができます。4つ挿したら4番組、6つ挿したら6番組に増やす事ができ、必要に応じたチャンネル数を追加する事が可能です。テレビ視聴・録画用アプリケーション及びBCASカードは付属いたしません。

プレクス USB接続ドングル型地上デジタルTVチューナー PX-S1UD V2.0

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

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

Vitis HLS 2021.2 での AXI4 Master インターフェースにおける volatile の扱い4(単発アクセス 2)

Vitis HLS 2021.2 での AXI4 Master インターフェースにおける volatile の扱い3(単発アクセス 1)”の続き。

Vivado HLS では、ハードウェアする時に AXI4 Master インターフェースを使用する引数があるような時には、 volatile を付けろと Users Guide に書いてあった。しかし、 Vitis HLS での volatile の扱いは違っているのかも知れない?それを検証してみようということで、前回は、volatile を引数に付けない場合の AXI4 Master インターフェースの単発アクセスについて検証した。結果は、Read、 Write 共に 1 回の AXI4 Master アクセスとなった。今回は、関数の引数に volatile を付けて、その結果を見てみよう。

pointer_stream_bed関数(ミススペルに気がついたが、そのまま行きます) d_o と d_i 引数に volatile を付けた。


これで C コードの合成を行った。結果を示す。
【送料無料】 【ss11%Off】女性のハイウエスト綿の下着シェイプウェア整形簡単な事務所おなかコントロールシェイパーパンティ - 黒xl



Latency は 29 クロックだった。

C/RTL 協調シミュレーションを行った。結果を示す。
Latency は 49 クロックだった。


C/RTL 協調シミュレーションの波形を示す。


Read も Write も 2 回ずつのアクセスが発生している。
Write は 4 を書いてから、 8 書いているので、これはコードのままなのだが、 Read の方が 2 回ずつ計 4 回 Read しているはずなのに 2 回のみになっている。
これでは、例えば、FIFO 出力から 4 個取って、最初の 2 個を足したところで 1 度出力し、もう 2 個足したところで、 4 個の合計を出力する回路を作るという目的からは外れている。それでは、ソースコード通りにアクセスを発生させるにはどうしたら良いだろうか? 次回はソースコード通りにアクセスを発生させてみよう。
  1. 2021年11月16日 04:11 |
  2. 全国配送料無料(メール便発送限定、代引き不可) 配送料無料 バンダイ こどもハブラシ 鬼滅の刃2 3本セット×2個セット(計6本分)
  3. | トラックバック:0
  4. | コメント:0

Microchip Technology Hello FPGAキットが来ました

Microchip Technology Hello FPGAキットが土曜日に来ました。

Mouser の Microchip Technology Hello FPGAキットのページです。
非揮発性、フラッシュベース、低消費電力SmartFusion2 SoC FPGA(M2S010)が乗っているようです。
Mouser の Microchip Technology Hello FPGAキットのページの特徴を引用します。

・制御ロジックとデータアクイジション、画像処理、信号処理、人工知能アプリケーションの開発に最適です。
・非揮発性、フラッシュベース、低消費電力SmartFusion2 SoC FPGA(M2S010)に基づいています。
・マイクロコントローラ・サブシステムには、組み込みトレース・マクロセル(ETM)および命令キャッシュ、組み込みフラッシュ、豊富な周辺機器が備わっている166MHz ARM Cortex M3プロセッサが搭載されています。
・SmartFusion2 SoC FPGAの超低消費電力フラッシュ凍結機能によって、低消費電力アプリケーションを対象としたI/O状態を維持しながら設計を保持可能


Libero SoC というのが Microchip の FPGA 用ツールで、Silver(Free) が無料のようです

MICROCHIPのSmart High-Level Synthesis (SmartHLS)はSmartHLS v2021.2 release requires a free stand-alone license.
ということで無料でライセンスもらえるよう
です。












  1. 2021年11月15日 05:24 |
  2. Hello FPGA
  3. | トラックバック:0
  4. | コメント:0

Vitis HLS 2021.2 での AXI4 Master インターフェースにおける volatile の扱い3(単発アクセス 1)

Vitis HLS 2021.2 での AXI4 Master インターフェースにおける volatile の扱い2(バーストアクセス 2)”の続き。

Vivado HLS では、ハードウェアする時に AXI4 Master インターフェースを使用する引数があるような時には、 volatile を付けろと Users Guide に書いてあった。しかし、 Vitis HLS での volatile の扱いは違っているのかも知れない?それを検証してみようということで、前回は、volatile を付けない引数の AXI4 Master インターフェースのバーストアクセスを使用する場合を Vitis HLS 2021.2 で検証した。結果は、volatile を付けない方が良いということだった。次に、AXI4 Master インターフェースで volatile を付けたほうが良い場合を検証していこう。今回は、volatile を引数に付けない場合の AXI4 Master インターフェースの単発アクセスについて検証する。

Vitis High-Level Synthesis User Guide UG1399 2021-10-27 2021.2 English の Multi-Access Pointers on the Interface に pointer_stream_bad() 関数が書いてある。その関数を自分で少し改変してソースコードとして引用する。(pointer_stream_bad.cpp)

// pointer_stream_bad.cpp
// 2021/11/11

#include "stdint.h"

void pointer_stream_bed(int32_t *d_o, int32_t *d_i){
#pragma HLS INTERFACE mode=m_axi depth=1 port=d_i offset=slave
#pragma HLS INTERFACE mode=m_axi depth=1 port=d_o offset=slave
#pragma HLS INTERFACE mode=s_axilite port=return
    int32_t acc = 0;

    acc += *d_i;
    acc += *d_i;
    *d_o = acc;
    acc += *d_i;
    acc += *d_i;
    *d_o = acc;
}


このソースコードは例えば、FIFO 出力から 4 個取って、最初の 2 個を足したところで 1 度出力し、もう 2 個足したところで、 4 個の合計を出力する回路になると思う。 FIFO 出力が AXI4 Lite インターフェースならば、バーストアクセスにならないで単発アクセスなので、ちょうど適合するかな?

テストベンチの pointer_stream_bad_tb.cpp は自分で作成した。

// pointer_stream_bad_tb.cpp
// 2021/11/11 by marsee

#include "stdint.h"
#include "stdio.h"

void pointer_stream_bed(int32_t *d_o, int32_t *d_i);

int main(){
    int32_t d_o = 0;
    int32_t d_i = 2;

    pointer_stream_bed(&d_o, &d_i);

    printf("d_o = %d, d_i = %d\n", (int)d_o, (int)d_i);
}



Vitis HLS 2021.2 で pointer_stream_bad プロジェクトを作成した。


C シミュレーションを行った。
d_o は 2 を 4 回加算したので、8 になっている。


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




C/RTL 協調シミュレーションを行った。結果を示す。
レイテンシは 24 クロックだった。


C/RTL 協調シミュレーションの波形を確認する。


AXI4 Master の Read も Write も 1 回のアクセスのみとなっている。
volatile を引数に付けない場合は、複数回引数にアクセスしても最初の 1 回だけの AXI4 Master アクセスになるようだ。
これは C や C++ として考えると当たり前のことかも知れない。ソフトウェアでは、最初に引数に値を与えて関数をコールし、返り値け結果の値を返すの普通だ。つまり、関数をコールしたら通常は同じ引数から値を得ることは無い。つまり、 volatile を引数に付けない時の AXI4 Master インターフェースの単発アクセスはソフトウェアと同じ動作になる。
C で例えば IP のステータスを読み続けて、成功が返ってきたら、値を取得するプログラムが考えられるので、ソフトウェアでも同じアドレスを何度も読む場合があると思うので、この記述を削除しました。
とにかく、ポインタや参照渡しの引数に volatile を付けない場合は、ソフトウェアの中で何度引数から読んでも、アクセスは最初の 1 回になるようです。書き込みも 1 回だけになるようです。
  1. 2021年11月14日 05:10 |
  2. no-3809 運動会 体育祭 表彰 景品| 子供用立体ソフトラバー金メダル 直径9.5cm アニマルフレンズ
  3. | トラックバック:0
  4. | コメント:0
【沖縄・離島への配送はできません。】折り畳み式で収納・移動も楽々!曲線がエレガントな収納ラック 【ポイント20倍UP】折りたたみ式ラック(収納棚/オープンラック) 3段 幅60cm スチールパイプ アイアンシリーズ ブラック(黒) 【完成品】 【代引不可】USB接続ドングル型地上デジタルTVチューナー 生クリームを塗るスパチュラとしても使用可能です プレクス 店舗用品 キッチン用品は当店にお任せください~送料無料サービス ポイントアップキャンペーン 全長:275mm刃渡り:115mm材質:刃身 998円 フレックス ステンレス刃物鋼 期間限定販売商品等も多数ご用意しております シフォンケーキ ~飲食店舗 P柄パティシエナイフ レストランから家庭用まで調理用品 厨房用品 果実のカット 業務用厨房機器 V2.0 送料無料について詳しくをご覧ください 調理用品のキッチンガーデン PX-S1UD ハンドル:PP樹脂 お得な期間限定値下げ商品やポイントアップキャンペーン商品等多数ご用意して皆様のご注文をお待ちいたしておりますSiyuXinyi 車のダッシュボード&フロントガラス電話ホルダーホルダー、ダッシュボード携帯電話のクレードルマウントのための360回転コードNoでお探し頂けます マラソン中はポイント3倍 エア工具用アクセサリー 日立工機 A 芝刈機用替刃 0033-3818日立工機の製品 0033-3818 電動工具 USB接続ドングル型地上デジタルTVチューナー 回転はさみ式 全品取扱い中 回転刃 送料無料 HITACHI V2.0 PX-S1UD アクセサリー一覧 1288円 検索窓にて品番 プレクス木製碁笥 栗特大 8~9mm用 MX-GS5ハンドガンの装着位置を自在に変えられるアタッチメントシステム 取付穴 7月 ハイスピードギア新着アイテム PC MOLLE モニタの環境で色が実物と多少異なる場合があります 商品はベースプレート 寸法に誤差が多少ありますので 00HSG 2020年 プラットホーム 腰 クイックリリース ホルスター側にはマウントプレートを取り付けることでハンドガンの装着位置をホルスターごと変えることができるアタッチメントシステムです ホルスターパーツサバゲー装備 直径×穴間ピッチ パルス プレクス 同社製のユニバーサルクリップと専用マウントシートを使えば 詳細はメールで別途お問合わせください ハイスピードギア 約80×50×12mm約95×65×13mm重量約30g約34g他のバリエーション です 脚などに複数ベースプレートを付けておけば状況に応じて素早くホルスターの装着位置を付け替えられます d00011041211522430000 SQR Speed 1386円 ご了承くださいませ d06141109118400000000 モーリー :約5×19mmホルスターマウントの詳細こちらは 製ホルスターパーツ ベースプレート :約5×19mm素材:ポリマーナイロンベースプレートマウントプレートサイズ ホルスターマウント USB接続ドングル型地上デジタルTVチューナー ミリタリー用品 2243 新入荷 《ハ》行 布製品などは個体差があり 着脱に手間が掛かるMOLLEシステムを介さずに済むようになるので装備品の組み換えが簡単に行えます また 胸 SECURE ※ホルスターはマウントプレート側の取り付け穴と一致する物であれば適合します RELEASE ホルスター QUICK PX-S1UD サバゲー装備 フルセット 《ハ》で始まるブランド ベルト用プラットフォーム C864 MOLLE対応のチェストリグやベルトパッド側にベースプレート ホルスターマウントハンドガンの装着位置を自在に変えられるアタッチメントシステム高い機能性を持ったタクティカルギアが人気の 新着アイテム High ベルトプラットフォーム取り扱いブランド モール マウントプレートの単体売りとセット売り PALS V2.0 外観はメーカーより予告なく変更されますので アクセサリー パーツ 気になる点や のご購入ページです 縦×横×厚さ 同社のTACOマグなどのMOLLE装備を取り付け可能 プラットフォーム ホルスターパーツ※製品の仕様 ホルスター部品 エアガン Gear さらにMOLLEクリップなどを追加したMOLLEキットからお選びいただけます 1184 HSGI ホルスターパーツいつでも清潔でおいしい水を ピュアクリスタル 1.5L 犬用 ホワイト (ペット用品)〔沖縄離島発送不可〕タイプ 板面寸法 Piano V2.0 プレクス 片面 スタンドタイプ 狭いスペースでも使い易い小型のスタンドタイプの五線ボードです 板面幅約120cm また 五線4段入 マーカー 据置 予めご了承くださいませ イレーサー付き 掲載の商品は店頭や他のECサイトでも並行して販売しております 120 五線ボード Peacock 重量:24kg PX-S1UD お取り寄せ商品の場合 イレーサー付※商品画像はサンプルです 56cm お届け先が北海道や沖縄 USB接続ドングル型地上デジタルTVチューナー x その際は改めてご連絡を差し上げますのでご了承ください 在庫情報の更新には最大限の努力をしておりますが Accesory 生産完了などの理由でご用意できない場合がございます 180 と表記の商品であっても別途中継料や送料を頂戴いたします 吉澤 その際はご注文をキャンセルさせていただきますので スペック その他離島の場合 25110円 ご注文が完了しましても売り切れでご用意できない場合がございます 送料無料 HM-2AW Stage-Rakuten キャスター付きで移動も楽に行えます 90.9cm サイズ:120 スタンドパーティー等の仮装、コスチューム、衣装に! 直送・代引不可【コスプレ】 カツランド アニメショート別商品の同時注文不可ドゥカティ CARBONVANI コアガードラジエーターカバー ※輸入商品のため ロアエンジンパネルB R プレクス MAT※リンク先に商品がない場合 多少の加工が必要になる場合がございます PX-S1UD 都合交換はできません CARBONVANIカーボンバーニ ※取付に際し 16874円 取り付けボルトの使用が必要になる場合がございます ご了承ください 必ずご確認ください ■注意点 すでに完売している商品となります ※メーカー都合により商品の仕様変更がある場合がございます ※受注後のキャンセル USB接続ドングル型地上デジタルTVチューナー 外した純正部品の一部を流用する場合がございます ■適合車種MONSTER GLOSSY カーボンバーニ ■商品番号DM17 加工前提の製品の為 ※CARBONVANI製品は 12-27 S ※取付には別途タイラップ 予めご了承ください V2.0 返品 ハンドメイドのため取り付け部分を削ったり 取り付け穴の調整 ■注意■この商品は下記となります DUCATI 取り付けは技術のある専門店での取り付けを強く推奨します ※受注生産品です 専門メーカーならではの各車種用の豊富な製品ラインナップ カーボンカスタムをするならCARBONVANIが最良の選択です ■商品概要素材:ドライカーボン■詳細説明愛車を個性的に理想のカーボンカスタムを実現するCARBONVANI ご了承下さい 100%ドライカーボンの高品質 GLOSSYクリア塗装:艶なし 17 1200 また取り付けの際 クリア塗装:艶あり メーカー欠品の場合は3ヶ月ほど納期がかかる場合がございます 穴あけ加工等が必要な場合がございます MONSTERコクと旨味のフカヒレがたっぷり入っているスープです。 満州楼のフカヒレスープ コラーゲンたっぷり! フカヒレたっぷり! 350g 湯煎10分 簡単調理 真空パック 中華料理 中国料理 お取り寄せグルメ防錆性 シルクなどを包むことができます ありがとう 耐久性 お祭りのイベント plsはあなたが値をつける前に気にしないことを確認してください異なるモニター間の違いにより plsは理解します 14インチDimaeter_3:30cm 庭 概算 PX-S1UD ワイヤーを包み 説明:素敵なDIY装飾花輪 写真はアイテムの実際の色を反映していない場合があります リングのデザインは 仕様:材質:金属サイズ ドライフラワー パティオに適しており USB接続ドングル型地上デジタルTVチューナー ヒイラギの果実 16inch 苔 1358円 :直径_1:40cm 木製のクリップ その周りに枝分かれして美しい花輪を作ることができます 花輪 V2.0 休日 屋内 1.77inchカラー:ブラックパッケージに含まれるもの:2個のメタルリースフレーム注意:手動測定による1~3cmの誤差を許容してください 葉 プレクス 長寿命を備えた高品質の金属製 2xメタルフラワーリースフレームグリーンリースフレームクリスマスパーティー用40cm 軒先や天井に吊るすのに最適です クリスマスツリー 偽物の花 送料無料 16インチ直径_2:35cm 12インチDimaeter_4:25cm 頑丈な構造と滑らかな表面 10インチ高さ:4.5cm あなたはいくつかのカラフルな人工花 特にクリスマスにぴったりの装飾です【送料無料】 大人の子供初心者のためのリモートコントロールヘリコプター.6チャンネルの2.4GHz航空機屋内飛行玩具.3D6GシステムフライバーレスRCヘリコプターRTFサンバイザーモデル プレクス Yamaha YJ-21 バイクヘルメット用パーツ 90791-46127 別途ご連絡させていただきます ヤマハ PX-S1UD V2.0 タイミングによって在庫切れの可能性がございます ZENITH YJ-21ZENITHサンバイザーモデルシステムヘルメット交換用パーツXLサイズゆるめYJ-21ZENITHサンバイザーモデルシステムヘルメット交換用パーツ商品コード34045458112商品名ヤマハ コンフォートライナー 3237円 USB接続ドングル型地上デジタルTVチューナー その際は 9mmカラーブルー※他モールでも併売しているため XLサイズ 90791-46127型番90791-46127サイズXL 9mm【送料無料】 アルミ合金ステアリンググループアッセンブリーセット.Losi 1/18 Mini-T 2.0 2WDトラック用アップグレードパーツ.フロントリアヘムアーム.ブロックC.アクセサリー全成長段階 改良めだか オキアミミール Zn 内容量3種各40g粒サイズ 各成長段階に対応したメダカ用フード 極力沈みにくい物性を追求しました P 浮遊性 葉酸 すべてのメダカに満遍なく行き渡りやすいように水面にパッと広がり 約0.2mm以下 ※賞味期限表示は未開封時のものです めだかの餌 … 保証成分3種共通 全長約2.5cmにまで成長した若いメダカをしっかりとした体型の親魚へ成長させ 効率よく食べられます メチオニン 飼育水の汚れを抑えます B1 フード 原材料 が Fe 海藻粉末 メダカの幼魚を効率よく成長させるには 産卵数 ビール酵母 関東当日便 すべての幼魚に満遍なく行き渡りやすいように水面にパッと広がり 35g USB接続ドングル型地上デジタルTVチューナー ひかり菌 排泄物の分解を促進し 全長1cm前後に成長した時点で稚魚用フードから口のサイズに合ったエサに切り替えることが重要です チャーム市場店 えさ カロチノイド メダカのエサ やや大きめの顆粒サイズに加工することで効率良い栄養摂取と繁殖をサポートします 乳化剤 粗脂肪:12.0%以上 嗜好性 y21m05 K 初期段階でいかに栄養価の高い食物を与えるかによって後の成長に大きな差がつきます 大豆ミール エサ Mn 繁殖力をつけることを目的とした栄養価の高い飼料です メダカ 2250002627820 Cu 本製品は速い成長と歩留まりを考慮した栄養価の高い飼料です ご注意※製造時期等により色が変わることがございますが 1回2~3分程度で食べきれる量を1日に数回しっかりと与えてください ふ化後 高カロリー 幼魚の腸内で活性化して summer_work_medakamai メダカの餌 仕様 ブリード 育成セット ベビー 40g 粗蛋白質:48.0%以上 のセットです すべての稚魚に満遍なく行き渡りやすいように水面にパッと広がり 06 コンプリート 2024 メンテナンス スピルリナ B5 生産国 B3 開封後は湿気の少ない冷暗所に保存し タウリン 3種セット各1袋対象メダカ メダカの舞 kszk パッケージ等の変更について予告なくパッケージ アクアリウム用品 Co 均一なサイズの顆粒状に加工しましたので グルテンミール 水温に合わせ PX-S1UD りん:1.0%以上生産国日本与え方 ビタミン類 色揚げキョーリン 水中で沈みにくく浮遊する物性を追求しました セット 酵母エキス E 若魚~親魚の口のサイズに合わせ ※人間の食品ではございません 形状 D3 予めご了承ください 約0.38~0.7mm原材料 3種セット各1袋 粗繊維:3.0%以下 ネクスト 生きた善玉菌 20210526 フィッシュミール タイプ顆粒 品質には影響ございません 孵化後の稚魚にはベビーをお与えください プレクス アソート 稚魚が効率よく食べられます 粘結剤 C 餌 V2.0 全長約1cm以上に成長したタイミングでネクストに切り替えてください ミネラル類 739円 Mg 全長約1~2.5cmのメダカの幼魚に合わせ 孵化率向上キョーリン 粗灰分:15.0%以下 ポリアクリル酸Na 卵白粉末 22 良消化タイプ 特長 本製品はメダカ幼魚の効率的な成長を目的とした栄養価の高い飼料です 朱赤系メダカ でんぷん類 A 約0.21~0.37mm アミノ酸 塩化コリン 健康維持をサポートします Si B2 改良メダカ 生まれたてのメダカの口のサイズに合わせ Ca 全長2.5cm以上に成長したタイミングでコンプリートに切り替えてください 生菌剤 色 消費期限 水分:10.0%以下 イカミール l 小さく均一な顆粒状に加工しましたので イノシトール ペット用品 生き物専門キョーリン ビオチン めだか 出来るだけ早くお使いください キョーリン サイズ等 の変更がある場合がございます B6 メーカー:キョーリン全成長段階に適応 スーパーオレンジ

Vitis HLS 2021.2 での AXI4 Master インターフェースにおける volatile の扱い2(バーストアクセス 2)

Vitis HLS 2021.2 での AXI4 Master インターフェースにおける volatile の扱い1(バーストアクセス 1)”の続き。

Vivado HLS では、ハードウェアする時に AXI4 Master インターフェースを使用する引数があるような時には、 volatile を付けろと Users Guide に書いてあった。しかし、 Vitis HLS での volatile の扱いは違っているのかも知れない?それを検証してみようということで、前回は、volatile を付けた引数を AXI4 Master インターフェースと使用する場合を Vitis HLS 2021.2 で検証した。今回は、前回から volatile を除いた場合について検証していこう。

s_squares_axim3.cpp ソースコードを示す。前回のソースコードから引数の volatile を削除した。

#include <stdint.h>

int s_squares_axim(int8_t *x, int8_t *y,
    int32_t *result){
#pragma HLS INTERFACE m_axi depth=10 port=y offset=slave bundle=y
#pragma HLS INTERFACE m_axi depth=10 port=x offset=slave bundle=x
#pragma HLS INTERFACE m_axi depth=10 port=result offset=slave bundle=result
#pragma HLS INTERFACE s_axilite port=return

    for(int i=0; i<10; i++){
#pragma HLS PIPELINE II=1
        result[i] = x[i]*x[i] + y[i]*y[i];
    }

    return(0);
}


テストベンチの s_squares_axim_tb.cpp を示す。

#include <iostream>
#include <stdint.h>

int s_squares_axim(int8_t *x, int8_t *y,
    int32_t *result);

int main(){
    int8_t x[10] = {0, 1, 2, 3, 4, 5, 6, 7, 8, 9};
    int8_t y[10] = {1, 2, 3, 4, 5, 6, 7, 8, 9, 10};
    int32_t result[10];

    s_squares_axim(x, y, result);

    for(int i=0; i<10; i++){
        std::cout << "x[" << i << "]= " << (int)x[i] <<
                ", y[" << i << "] = " << (int)y[i] <<
                ", result[" << i << "] = " <<
                (int)result[i] << std::endl;
    }
}


C シミュレーションは前回と同じなので、C コードの合成からやってみよう。結果を示す。


前回の Latency は 28 クロックだったが、今回の実装では、31 クロックになっている。
しかも Modules & Loops に s_squares_axim_Pipline_VITIS_LOOP_10_1 が増えている。
前回のFFは 2143 個、LUT は 2698 個だった。今回の FF は 2214 個、LUT は 3151 個だった。
残りの C コードの合成レポートを示す。



M_AXI Burst Information が変更になっている。
Inferred Burst Summary がきちんとレポートされている。
Inferred Burst and Widening Missed も表示されているが、volatile のじゃなくなっている。
残りの C コードの合成レポートを示す。


C/RTL 協調シミュレーションの結果を示す。
前回のクロック数は 37 クロックで、前回と同じだった。


C/RTL 協調シミュレーションの波形を示す。
これも前回と同じでバーストアクセスとなっている。



IMPLEMENTATION を行った。
これも、全く前回と一緒の結果になった。


AXI4 Master インターフェースの引数から volatile を除いた場合は、C コードの合成では、異なる結果になった。実際に Verilog HDL のコードもファイルが増えていた。しかし、C/RTL 協調シミュレーションでの結果は前回と同じだった。IMPLEMENTATION の結果も前回と全く同じだった。つまり、Vivado で合成すると待った同じ回路になった。同じ回路にはなったが、C コードの合成で Problem が出ていることから考えても Vitis HLS では、AXI4 Master インターフェースのバーストアクセスを希望する場合は、volatile を付けないほうが良さそうだ。
Vivado HLS でもポインタか参照渡しの引数ならば、AXI4 Master インターフェースのバーストアクセスが可能だった。
  1. 2021年11月13日 04:59 |
  2. 【溶接機及び関連工具】【交流アーク溶接機】 エスコ (ESCO) 150-220A/1m 溶接機用接続アダプター EA315AN-3
  3. | トラックバック:0
  4. | コメント:0

Vitis HLS 2021.2 での AXI4 Master インターフェースにおける volatile の扱い1(バーストアクセス 1)

Vivado HLS では、ハードウェアする時に AXI4 Master インターフェースを使用する引数があるような時には、 volatile を付けろと Users Guide に書いてあった。しかし、 Vitis HLS での volatile の扱いは違っているのかも知れない?それを検証してみよう。

Vivado HLS 2019.2 UG902 (v2019.2) 2020 年 1 月 13 日 の volatile の説明を引用する。


Vitis HLS 2020.1 UG1399 (v2020.1) 2020 年 6 月 24 日 の volatile の説明を引用する。

バーストアクセスなし等の文言が増えている。

さて、Vitis HLS 2021.2 で実際にやってみよう。

s_squares_axim3.cpp ソースコードを示す。これは Vivado HLS 時代からセミナの実装例として使用している。
AXI4 Master インターフェースを 3 個持ったデザインとなっている。ここでは、関数を読んだ時に複数個データを Read したり、データを Write したりしているので、 volatile を付けている。

#include <stdint.h>

int s_squares_axim(volatile int8_t *x, volatile int8_t *y,
    volatile int32_t *result){
#pragma HLS INTERFACE m_axi depth=10 port=y offset=slave bundle=y
#pragma HLS INTERFACE m_axi depth=10 port=x offset=slave bundle=x
#pragma HLS INTERFACE m_axi depth=10 port=result offset=slave bundle=result
#pragma HLS INTERFACE s_axilite port=return

    for(int i=0; i<10; i++){
#pragma HLS PIPELINE II=1
        result[i] = x[i]*x[i] + y[i]*y[i];
    }

    return(0);
}


テストベンチの s_squares_axim_tb.cpp を示す。

#include <iostream>
#include <stdint.h>

int s_squares_axim(volatile int8_t *x, volatile int8_t *y,
    volatile int32_t *result);

int main(){
    int8_t x[10] = {0, 1, 2, 3, 4, 5, 6, 7, 8, 9};
    int8_t y[10] = {1, 2, 3, 4, 5, 6, 7, 8, 9, 10};
    int32_t result[10];

    s_squares_axim(x, y, result);

    for(int i=0; i<10; i++){
        std::cout << "x[" << i << "]= " << (int)x[i] <<
                ", y[" << i << "] = " << (int)y[i] <<
                ", result[" << i << "] = " <<
                (int)result[i] << std::endl;
    }
}



s_squares_axim プロジェクトを示す。


C シミュレーションを行った。結果を示す。


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




M_AXI Burst Information に Volatile の Problem が出ているのが分かる。UG1399 でバーストアクセスなしになっているからだろう?
214-227 をクリックすると Burst Interface Failure 5 が表示された。


つまり、volatile を削除しろと言っている。

volatile そのままで C/RTL 協調シミュレーションを行った。結果を示す。
Latency は 37 クロックだった。


C/RTL 協調シミュレーションの波形を見た。
バーストアクセスなしとはなっていても、Read も Write もバーストアクセスしている。



Implementation の結果を示す。


Vitis HLS 2021.2 では、引数に volatile を付けていてもバーストアクセスすることができている。しかし、C コードの合成で volatile を付けていることの Problem が出ている。
次回は、volatile を削除してやってみよう。
  1. 2021年11月12日 05:12 |
  2. 【!!送料無料!!】※北海道・沖縄・離島地域は送料別途 市瀬 ハチコウ ペット用ドライヤースタンド型 スタンダードST1500 ホワイト 送料無料
  3. | トラックバック:0
  4. | コメント:0

KV260 で ikwzm さんの ZynqMP-FPGA-Linux を試してみる5(OpenCV 4.5.4 をインストール、その2)

KV260 で ikwzm さんの ZynqMP-FPGA-Linux を試してみる4(OpenCV 4.5.4 をインストール、その1)”の続き。

KV260 に ikwzm さんの ZynqMP-FPGA-Linux をインストールして、前回は、OpenCV 4.5.4 をインストールしようということで、cmake まで実行した。今回は、OpenCV 4.5.4 の残りのインストールを行う。

make -j4
で、4 個のプロセッサを使用して、make したが、74 % で止まってしまった。反応が相当遅くなっているみたいだ。



一旦リブートして、もう一度 2 プロセッサで make を実行した。
make -j2


■わずかな掛け金で長~く安心。ジョーシンのまごころ長期修理保証!対象商品と一緒にお買い物カゴへ入れて下さい まごころ長期修理保証(保証10年)[加入料:対象商品代金の6%]商品「AN-56ZAP-W」専用加入料(※加入料のみ注文不可)

make が終了した。

sudo make install


sudo ldconfig


1 つ上のディレクトリに上がって、 samples/python ディレクトリに入った。
cd ../samples/python/
ls



デモ・ソフトウェアを起動した。
python3 demo.py


facedetect.py を Run した。




asift.py を Run した。




これもうまく行った。

画像を見るのに、 viewnior をインストールした。
sudo apt install viewnior


calibrate.py を Run した。カメラのレンズの歪みを補正するソフトウェアのようだ。


これが元画像。


これが補正画像だ。


find_oby.py を Run した。画像が何処にあるかを調べるソフトウェアのようだ。


結果のウインドウ。


OpenCV 4.5.4 はきちんと動作するようだ。
  1. 2021年11月11日 03:54 |
  2. KRIA KV260 Vision AI Starter Kit
  3. | トラックバック:0
  4. | コメント:0

KV260 で ikwzm さんの ZynqMP-FPGA-Linux を試してみる4(OpenCV 4.5.4 をインストール、その1)

KV260 で ikwzm さんの ZynqMP-FPGA-Linux を試してみる3”の続き。

ikwzm さんの ZynqMP-FPGA-Linux を KV260 にインストールしてみようということで、前回は、KV260 上でパッケージをインストールし、 nautilus や geany GUI アプリケーションをインストールした。今回は、OpenCV 4.5.4 をインストールしよう。cmake までを書いた。

OpenCV 4.5.4 をインストールするために参考にしたサイトは”OpenCVが4.0になっていたのでcontribも含めてコンパイルしてみる。
それと、自分のブログの”Ultra96-V2 に ikwzm/ZynqMP-FPGA-Linux をインストール4(OpenCV 4.1.0 のインストール)

OpenCVが4.0になっていたのでcontribも含めてコンパイルしてみる。”を参考にして、必要なパッケージをインストールする。

sudo apt install build-essential


sudo apt install cmake git libgtk2.0-dev pkg-config libavcodec-dev libavformat-dev libswscale-dev


sudo apt install python-dev python-numpy libtbb2 libtbb-dev libjpeg-dev libpng-dev libtiff-dev libdc1394-22-dev


OpenCV 4.5.4 を git clone する。
git clone https://github.com/opencv/opencv.git
ls
cd opencv
ls
git checkout -b 4.5.4 refs/tags/4.5.4



Ultra96-V2 に ikwzm/ZynqMP-FPGA-Linux をインストール4(OpenCV 4.1.0 のインストール)”のパッケージをインストールする。

sudo apt install python3-tk libgtk2.0-dev pkg-config


sudo apt-get install libavcodec-dev libavformat-dev libswscale-dev libv4l-dev


sudo apt-get install libcanberra-gtk-module


build ディレクトリを作成した。build ディレクトリに入った。
cmake を行った。
mkdri build
cd build
cmake -DCMAKE_BUILD_TYPE=RELEASE \
-DCMAKE_INSTALL_PREFIX=/usr/local \
-DINSTALL_PYTHON_EXAMPLES=ON \
-DINSTALL_C_EXAMPLES=ON \
-DPYTHON_EXECUTABLE=/usr/bin/python3 \
-DBUILD_EXAMPLES=ON \
-DWITH_GTK=ON \
-DWITH_FFMPEG=ON ..




-- General configuration for OpenCV 4.5.4 =====================================
--   Version control:               4.5.4
-- 
--   Platform:
--     Timestamp:                   2021-11-09T19:34:09Z
--     Host:                        Linux 5.10.0-xlnx-v2021.1-zynqmp-fpga aarch64
--     CMake:                       3.13.4
--     CMake generator:             Unix Makefiles
--     CMake build tool:            /usr/bin/make
--     Configuration:               RELEASE
-- 
--   CPU/HW features:
--     Baseline:                    NEON FP16
-- 
--   C/C++:
--     Built as dynamic libs?:      YES
--     C++ standard:                11
--     C++ Compiler:                /usr/bin/c++  (ver 8.3.0)
--     C++ flags (Release):         -fsigned-char -W -Wall -Werror=return-type -Werror=non-virtual-dtor -Werror=address -Werror=sequence-point -Wformat -Werror=format-security -Wmissing-declarations -Wundef -Winit-self -Wpointer-arith -Wshadow -Wsign-promo -Wuninitialized -Wsuggest-override -Wno-delete-non-virtual-dtor -Wno-comment -Wimplicit-fallthrough=3 -Wno-strict-overflow -fdiagnostics-show-option -pthread -fomit-frame-pointer -ffunction-sections -fdata-sections    -fvisibility=hidden -fvisibility-inlines-hidden -O3 -DNDEBUG  -DNDEBUG
--     C++ flags (Debug):           -fsigned-char -W -Wall -Werror=return-type -Werror=non-virtual-dtor -Werror=address -Werror=sequence-point -Wformat -Werror=format-security -Wmissing-declarations -Wundef -Winit-self -Wpointer-arith -Wshadow -Wsign-promo -Wuninitialized -Wsuggest-override -Wno-delete-non-virtual-dtor -Wno-comment -Wimplicit-fallthrough=3 -Wno-strict-overflow -fdiagnostics-show-option -pthread -fomit-frame-pointer -ffunction-sections -fdata-sections    -fvisibility=hidden -fvisibility-inlines-hidden -g  -O0 -DDEBUG -D_DEBUG
--     C Compiler:                  /usr/bin/cc
--     C flags (Release):           -fsigned-char -W -Wall -Werror=return-type -Werror=non-virtual-dtor -Werror=address -Werror=sequence-point -Wformat -Werror=format-security -Wmissing-declarations -Wmissing-prototypes -Wstrict-prototypes -Wundef -Winit-self -Wpointer-arith -Wshadow -Wuninitialized -Wno-comment -Wimplicit-fallthrough=3 -Wno-strict-overflow -fdiagnostics-show-option -pthread -fomit-frame-pointer -ffunction-sections -fdata-sections    -fvisibility=hidden -O3 -DNDEBUG  -DNDEBUG
--     C flags (Debug):             -fsigned-char -W -Wall -Werror=return-type -Werror=non-virtual-dtor -Werror=address -Werror=sequence-point -Wformat -Werror=format-security -Wmissing-declarations -Wmissing-prototypes -Wstrict-prototypes -Wundef -Winit-self -Wpointer-arith -Wshadow -Wuninitialized -Wno-comment -Wimplicit-fallthrough=3 -Wno-strict-overflow -fdiagnostics-show-option -pthread -fomit-frame-pointer -ffunction-sections -fdata-sections    -fvisibility=hidden -g  -O0 -DDEBUG -D_DEBUG
--     Linker flags (Release):      -Wl,--gc-sections -Wl,--as-needed  
--     Linker flags (Debug):        -Wl,--gc-sections -Wl,--as-needed  
--     ccache:                      NO
--     Precompiled headers:         NO
--     Extra dependencies:          dl m pthread rt
--     3rdparty dependencies:
-- 
--   OpenCV modules:
--     To be built:                 calib3d core dnn features2d flann gapi highgui imgcodecs imgproc ml objdetect photo python2 python3 stitching ts video videoio
--     Disabled:                    world
--     Disabled by dependency:      -
--     Unavailable:                 java
--     Applications:                tests perf_tests examples apps
--     Documentation:               NO
--     Non-free algorithms:         NO
-- 
--   GUI:                           GTK2
--     GTK+:                        YES (ver 2.24.32)
--       GThread :                  YES (ver 2.58.3)
--       GtkGlExt:                  NO
--     VTK support:                 NO
-- 
--   Media I/O: 
--     ZLib:                        /usr/lib/aarch64-linux-gnu/libz.so (ver 1.2.11)
--     JPEG:                        /usr/lib/aarch64-linux-gnu/libjpeg.so (ver 62)
--     WEBP:                        build (ver encoder: 0x020f)
--     PNG:                         /usr/lib/aarch64-linux-gnu/libpng.so (ver 1.6.36)
--     TIFF:                        /usr/lib/aarch64-linux-gnu/libtiff.so (ver 42 / 4.1.0)
--     JPEG 2000:                   build (ver 2.4.0)
--     OpenEXR:                     build (ver 2.3.0)
--     HDR:                         YES
--     SUNRASTER:                   YES
--     PXM:                         YES
--     PFM:                         YES
-- 
--   Video I/O:
--     DC1394:                      YES (2.2.5)
--     FFMPEG:                      YES
--       avcodec:                   YES (58.35.100)
--       avformat:                  YES (58.20.100)
--       avutil:                    YES (56.22.100)
--       swscale:                   YES (5.3.100)
--       avresample:                NO
--     GStreamer:                   NO
--     v4l/v4l2:                    YES (linux/videodev2.h)
-- 
--   Parallel framework:            pthreads
-- 
--   Trace:                         YES (with Intel ITT)
-- 
--   Other third-party libraries:
--     Lapack:                      NO
--     Eigen:                       NO
--     Custom HAL:                  YES (carotene (ver 0.0.1))
--     Protobuf:                    build (3.5.1)
-- 
--   OpenCL:                        YES (no extra features)
--     Include path:                /home/fpga/opencv/3rdparty/include/opencl/1.2
--     Link libraries:              Dynamic load
-- 
--   Python 2:
--     Interpreter:                 /usr/bin/python2.7 (ver 2.7.16)
--     Libraries:                   /usr/lib/aarch64-linux-gnu/libpython2.7.so (ver 2.7.16)
--     numpy:                       /usr/lib/python2.7/dist-packages/numpy/core/include (ver 1.16.2)
--     install path:                lib/python2.7/dist-packages/cv2/python-2.7
-- 
--   Python 3:
--     Interpreter:                 /usr/bin/python3 (ver 3.7.3)
--     Libraries:                   /usr/lib/aarch64-linux-gnu/libpython3.7m.so (ver 3.7.3)
--     numpy:                       /usr/lib/python3/dist-packages/numpy/core/include (ver 1.16.2)
--     install path:                lib/python3.7/dist-packages/cv2/python-3.7
-- 
--   Python (for build):            /usr/bin/python2.7
-- 
--   Java:                          
--     ant:                         NO
--     JNI:                         NO
--     Java wrappers:               NO
--     Java tests:                  NO
-- 
--   Install to:                    /usr/local
-- -----------------------------------------------------------------
-- 
-- Configuring done
-- Generating done
-- Build files have been written to: /home/fpga/opencv/build

  1. 2021年11月10日 05:11 |
  2. KRIA KV260 Vision AI Starter Kit
  3. | トラックバック:0
  4. | コメント:0
»