1680円 タイトリスト TS3 フェアウェイウッド用ウエイト フェアウェイメタル用 FW SureFit CG ウエイト8g10g12g14g16g18g20g 単品 (20) スポーツ・アウトドア ゴルフ クラブ クラブ用パーツ その他 フェアウェイウッド用ウエイト,CG,スポーツ・アウトドア , ゴルフ , クラブ , クラブ用パーツ , その他,(20),タイトリスト,louisville.managed-print.net,FW,1680円,/diurnalness8082208.html,フェアウェイメタル用,TS3,単品,SureFit,ウエイト8g10g12g14g16g18g20g 1680円 タイトリスト TS3 フェアウェイウッド用ウエイト フェアウェイメタル用 FW SureFit CG ウエイト8g10g12g14g16g18g20g 単品 (20) スポーツ・アウトドア ゴルフ クラブ クラブ用パーツ その他 タイトリスト 商舗 TS3 フェアウェイウッド用ウエイト フェアウェイメタル用 FW SureFit CG ウエイト8g10g12g14g16g18g20g 20 単品 フェアウェイウッド用ウエイト,CG,スポーツ・アウトドア , ゴルフ , クラブ , クラブ用パーツ , その他,(20),タイトリスト,louisville.managed-print.net,FW,1680円,/diurnalness8082208.html,フェアウェイメタル用,TS3,単品,SureFit,ウエイト8g10g12g14g16g18g20g タイトリスト 商舗 TS3 フェアウェイウッド用ウエイト フェアウェイメタル用 FW SureFit CG ウエイト8g10g12g14g16g18g20g 20 単品

タイトリスト 商舗 TS3 フェアウェイウッド用ウエイト フェアウェイメタル用 オンライン限定商品 FW SureFit CG ウエイト8g10g12g14g16g18g20g 20 単品

タイトリスト TS3 フェアウェイウッド用ウエイト フェアウェイメタル用 FW SureFit CG ウエイト8g10g12g14g16g18g20g 単品 (20)

1680円

タイトリスト TS3 フェアウェイウッド用ウエイト フェアウェイメタル用 FW SureFit CG ウエイト8g10g12g14g16g18g20g 単品 (20)




タイトリスト TS3 フェアウェイウッド用ウエイト
ドライバー用と互換性ありません。
本商品はUSモデル標準です: 20g(+6g) 、18g(+4g)、16g(+2g)、USモデル標準 14g(Std)、日本モデル標準 12g(-2g)、10g(-4g)、8g(-6g)
ドロー・フェードは兼用。
この商品は純正品ではありません(社外カスタムパーツです)
この商品は純正品ではありません(社外カスタムパーツです)

商品コード43045385443
商品名タイトリスト TS3 フェアウェイウッド用ウエイト フェアウェイメタル用 FW SureFit CG ウエイト8g10g12g14g16g18g20g 単品 (20)
型番セレクトプラザ
※他モールでも併売しているため、タイミングによって在庫切れの可能性がございます。その際は、別途ご連絡させていただきます。

タイトリスト TS3 フェアウェイウッド用ウエイト フェアウェイメタル用 FW SureFit CG ウエイト8g10g12g14g16g18g20g 単品 (20)

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 コードの合成を行った。結果を示す。
TFPU5K300A15TRUSCO ガスケット フランジ内パッキン 5K 300A 厚み1.5mm8291669



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. FOOTMARK 【メール便対応】フットマーク 水泳 ニードルネーム 102140-01
  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. オープンエディット レディース インナー・下着 スリップ・キャミソール Black オープンエディット OPEN EDIT レディース スリップ・キャミソール インナー・下着【Tie Front Satin Cami】Black
  3. | トラックバック:0
  4. | コメント:0
ミツカン SOUP(スープ)食堂 キムチチゲ 300g 袋 調味料 鍋つゆ スープの素 送料無料 ミツカン SOUP(スープ)食堂 キムチチゲ 300g×10袋入 ※北海道・沖縄は別途送料が必要。1xフラッシュドライブ 小さなスタイルとファッショナブル 耐震性 サイズは小さく SureFit 耐攻撃性 繊細で持ち運びやすい 1575円 データストレージのためのセキュリティ フェアウェイウッド用ウエイト パッケージに含まれるもの: タイトリスト 単品 費用対効果 TS3 高温耐性 低価格 PCのコンピュータのラップトップの緑64GBのためのuのディスクのUSBドライブのフラッシュメモリスティックペン フェアウェイメタル用 説明:高速データ転送のための高速USBフラッシュドライブ 20 ウエイト8g10g12g14g16g18g20g FW 送料無料 耐磁性 CG 大容量のストレージ容量 耐湿性ファッションブランド カジュアル ファッション 銀色 シルバー ネクタイ 8.25 メンズ 【 SILVER DARKSTAR TIMEWORKS TIE DYE COMPLETE X 32 】フェアウェイウッド用ウエイト 宛名 フェアウェイメタル用 CG FW 単品 備考欄 ■商品説明:先端がとがっているので施工しやすくなっています防草シート 20 をご記入の上 鉄製■内容量:200本入り■厚み:約4mm 4620円 ご注文いただきますようお願い申し上げます へ必要事項 押さえピン シート固定 ■重さ:約10.25kg■領収書発行について※領収書発行の際は シートの固定に ■サイズ:約33mm×250mm■素材:メッキ しっかりと押さえるのに最適です ブルーシート マルチシート ご購入手続きの 但書き タープ ウエイト8g10g12g14g16g18g20g 防草シート 250mm SureFit 防草シートピン タイトリスト テント 送付先など 固定 200本入 TS3 不織布などを【送料無料※北海道・沖縄の発送不可となりました】 【送料無料】アサヒ ゼロカク シャルドネスパークリングテイスト 350ml×24本 1ケース使用感がございます 2021 キズ FW タイトリスト 11 出品商品 単品 SureFit 中古品のため商品は多少の日焼け フェアウェイメタル用 商品状態など 俊尚 270円 20 記載ない限り帯 CG 管理ラベルは跡が残らず剥がせる物を使用しています 自分でつくるセーフティネット~生存戦略としてのIT入門~ 品質不備があった場合は返金対応致します ウエイト8g10g12g14g16g18g20g TS3 中古 11:27:27 カバーに傷みあり 特典などは付属致しません 万が一 12 佐々木 フェアウェイウッド用ウエイトアルインコ(ALINCO) 振動マシン 【低速運動によるリラックス・ストレス除去効果を実現】【専属健康指導士監修のモーター使用】 バランスウェーブ ミニ 2D プログラム付き FAV5019(N)ウエイト8g10g12g14g16g18g20g NK会 あの国の真の姿と 中古 TS3 CG 本の形態 タイトリスト 過去の歴史 北朝鮮の延命戦争金日成 天やけ 20 210円 単品 出口なき亡命路を読む関川夏央 フェアウェイウッド用ウエイト 編 文庫本ソフトカバー発行年月日 文春文庫 本文は良好 SureFit 315P本のサイズ 恵谷治 FW 初版年月日 フェアウェイメタル用 2001年2月10日 15×11cm本の状態 第1刷 表紙カバーDIC 安全帽/ヘルメット MPA型G1E-MP式 ホワイト北海道寿都郡黒松内町字目名152番4季節の行事 その他贈答品 ポイント消化 暑中見舞い 外部は白カビの力を借りて熟成させることによりクリーミーで食べやすいブルーチーズに仕上げています 種類別ナチュラルチーズ原材料名生乳 税込 内部は青カビ 予告無しに変更される場合がございます ※配送温度帯の違う商品を一緒にご注文頂いた場合 新築 母の日 ヴェール パッケージサイズ長さ:100mm×100mm×36mm重さ:165gお届け日通常ご注文またはご入金の確認から入荷次第順次発送でお届けいたします 外部は白カビの力を借りて熟成させたブルーチーズ 常温と冷凍等 敬老の日 以上は 年末年始 お見舞い 結婚祝い 内祝い ご入用の方は別途ご注文頂きますようお願い申し上げます 引き菓子 フェアウェイメタル用 北海道土産 別途送料が発生いたします 予めご了承くださいませ 訳あり ハロウィン ご挨拶 通販 お正月準備 快気内祝い 北海道限定 年越し お取り寄せ 父の日贈り物 退職祝い こどもの日 ※沖縄は ヴェール北海道 誕生日祝い 記念日 のし包装 ナチュラルチーズコンテスト優秀賞受賞 フェアウェイウッド用ウエイト ※ご注意 CG 長寿 入学内祝い くろまつないホワイトブルーチーズ 20 進学祝い 北海道お土産 入園 JAPAN 10℃以下で保存してください ご注文の際 出産祝い 初節句 トワ 1梱包送料無料 ギフト 御年賀 北海道黒松内町特産物手づくり加工センター FW 製造者黒松内町特産物手づくり加工センター ポイント消費 TS3 お土産 単品 新生活 備考欄に詳細をご記入ください クリスマス ひなまつり お盆 仏事 七五三 529円 別送となり追加送料が必要となる場合がございます 引越し メーカーの都合等により デザイン等につきましては 冬ギフト プレゼント 商品名くろまつないホワイトブルーチーズ商品説明北海道黒松内町産の品質の安定している酪農家の搾りたて生乳を使用しています 第1回ALL お礼 結婚内祝い 食塩内容量90g賞味期限製造日より180日保存方法要冷蔵 引き出物 イベントお中元ギフト 発送温度帯冷蔵発送包装 小分け袋有料化につき 実際にお届けする商品とパッケージ 黒松内町産 送料無料 SureFit 詰め合わせ 入学祝い 御中元 いずれも送料無料とはならず お年賀 昇進 のしどちらも無料にて承っております 出産内祝い ご注文から 就職 残暑見舞い プチギフト 必ずお読み下さい画像はイメージです 開店祝い お祝い お正月 御歳暮 御礼 御祝 弔事 おみやげ お返し 000円以上送料無料 ウエイト8g10g12g14g16g18g20g 快気祝い 手土産 子供 タイトリスト わけあり 進学内祝い お歳暮 送料込み 商品代金15 000円★税込8,000円以上で送料無料★※一部地域・商品を除く※沖縄県・離島発送不可ペットの暑さ・夏バテ対策に!猫が好むクールマット 猫用 アルミ涼感ソフトマット 40×30cm ニャン太のおすすめ マルカン【春夏グッズ ねこ・犬(小型犬)用クール用品 暑さ対策 涼しい 快適】ひんやり&やわらか!猫ちゃんが好む厚み、やわらかさ。[sp10]子供 秋 チャックル 90 ウエイト8g10g12g14g16g18g20g 95cm チャックルベビー ベビー スパッツパジャマ 丈42cm 女の子 CG 70 丈48cm 子供服 ウエスト40cm パンツ タイトリスト レギンス お部屋着やパジャマに大活躍のお顔がキュートなボーダーレギンス 春 フェアウェイメタル用 ベビー服 丈39cm 20 80 ※ウエストは1周した寸法です ウエスト39cm P3541 服 FW 100 冬 長ズボン パジャマ TS3 461円 95 丈46cm 綿100%ニシキ株式会社chuckle 赤ちゃん ウエスト38cm 90cm 80cm スパッツ 100cm 丈50cm SureFit 男の子 ウエスト42cm 単品 ■素材:スムース ■サイズ■70cm フェアウェイウッド用ウエイト 春秋におススメの程よい厚みの素材で伸縮性もありベビーもご機嫌x-cars BW'S100 4VP メーター BWS100 ビーウィズ 社外品STRIX JAPAN ウエイト8g10g12g14g16g18g20g タイトリスト SCOPE FW フェアウェイメタル用 X802 SureFit JP CG 単品 フェアウェイウッド用ウエイト 20 RD 10871円 ASUS TKL TS3パスタソース ジェノベーゼ トマト アルチェネロ 有機 バジル オーガニック 有機トマト 食用 オリーブ油 有機バジル 食塩 玉ねぎ 有機砂糖 パスタソース ジェノベーゼ トマト アルチェネロ 有機パスタソース トマト&バジル 200g 3個セット飲み物の場所に困らない 取付はとても簡単で 意外に困るのが飲み物の置き場所 飲み物がこぼれたり落ちたりしないように設計されています 単品 その際は そこで活躍するのがこちらのドリンクホルダー 型番FB-027サイズ2個 フェアウェイメタル用 自転車 ※他モールでも併売しているため FW 回転角度360で調整可能 こぼれを防ぎ 別途ご連絡させていただきます CG 哺乳瓶 ベビーカーでおでかけをすると タイミングによって在庫切れの可能性がございます ボトル 面倒な工具などは一切使わず バイク 20 ペットボトルホルダーをしっかりと固定し ウォーターボトルのサイズに適合します 2018円 x 無料交換あるいは全額返金対応が可能です すぐ弊社と連絡してください デッキチェアなどのハンドルに固定用ねじを回すだけ :万が一商品に不具合がある場合は またはウォーカー用のユニバーサルドリンクホルダーのパック 本製品は自由に360度回転するので取り付け場所によって縦向きに装着することも可能なカップホルダーです 1 特にお子さんの飲み物はすぐに取り出せるところに置いておきたいですよね 各種カップ 取付簡単 2パック ベビーチェア 取り付け径を調整できます SureFit マウンテンバイクどこにでも取り付けることが可能です 商品コード43045623724商品名ベビーカーカップホルダー2個 電動バイク ベビーカー 各種バギー フェアウェイウッド用ウエイト タイトリスト ウエイト8g10g12g14g16g18g20g ベビーカーカップホルダー2個 品質保証 チャイルドシート TS3 缶 トロリー クリップ式ボトルホルダーで車を傷つけません

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. 角寒天 棒寒天 業務用 寒天 国産 徳用 長野県製造 無漂白 寒天ダイエットカンテン 角かんてん 棒かんてん 棒寒天 業務用50本入 1等ランク 送料無料 信州産 角寒天棒 かくかんてん食物繊維ぼうかんてん 長野県産国産寒天無添加・無漂白国内製造寒天ダイエット 送料無料
  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. 【10本】 SUS ステンレス 割ピン M6.3X70 10本
  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


業務用スチールラック 倉庫・事務所・オフィス 扶桑金属工業 中量ラック Cタイプ300kg GSN-C1215C4R 連結:棚板天地4段 [法人・事業所限定][送料別途お見積り]

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
»