送料無料 純国産 ユニット置き畳 新品 天竜 ブラウン 82×82×1.7cm 軽量タイプ CMLF-1287268 8607530 6枚1セット 納期目安:1週間 11321円 【送料無料】 純国産 ユニット置き畳 『天竜』 ブラウン 82×82×1.7cm(6枚1セット) 軽量タイプ 8607530 CMLF-1287268【納期目安:1週間】 インテリア・寝具・収納 カーテン・ブラインド スタイルカーテン 送料無料 純国産 ユニット置き畳 新品 天竜 ブラウン 82×82×1.7cm 軽量タイプ CMLF-1287268 8607530 6枚1セット 納期目安:1週間 8607530,imprentaonline.cevagraf.coop,82×82×1.7cm(6枚1セット),ユニット置き畳,『天竜』,【送料無料】,軽量タイプ,純国産,CMLF-1287268【納期目安:1週間】,11321円,ブラウン,/lepidodendraceous10048708.html,インテリア・寝具・収納 , カーテン・ブラインド , スタイルカーテン 8607530,imprentaonline.cevagraf.coop,82×82×1.7cm(6枚1セット),ユニット置き畳,『天竜』,【送料無料】,軽量タイプ,純国産,CMLF-1287268【納期目安:1週間】,11321円,ブラウン,/lepidodendraceous10048708.html,インテリア・寝具・収納 , カーテン・ブラインド , スタイルカーテン 11321円 【送料無料】 純国産 ユニット置き畳 『天竜』 ブラウン 82×82×1.7cm(6枚1セット) 軽量タイプ 8607530 CMLF-1287268【納期目安:1週間】 インテリア・寝具・収納 カーテン・ブラインド スタイルカーテン

送料無料 純国産 ユニット置き畳 新品 天竜 ブラウン 82×82×1.7cm 流行 軽量タイプ CMLF-1287268 8607530 6枚1セット 納期目安:1週間

【送料無料】 純国産 ユニット置き畳 『天竜』 ブラウン 82×82×1.7cm(6枚1セット) 軽量タイプ 8607530 CMLF-1287268【納期目安:1週間】

11321円

【送料無料】 純国産 ユニット置き畳 『天竜』 ブラウン 82×82×1.7cm(6枚1セット) 軽量タイプ 8607530 CMLF-1287268【納期目安:1週間】



●軽量タイプで簡単設置。
●ユニット畳のセットです。床に置くだけで和のスペースが出来上がります。
●サイズ:82×82×1.7cm(1枚)
●個装サイズ:83×83×12cm
●重量:個装重量:10000g
●素材・材質:表地:い草
●中材:ヒバ固綿15mm
●縁:PP・PE
●付属品:連結用ジョイント×12
●生産国:日本
●こちらの商品はメーカー・取引先からの直送品となります。【代金引換払い】【お届け時間指定】【店頭引き渡し】はご利用になれませんので、あらかじめご了承ください。
●ご注意:掲載している商品がオプション品の場合でも、本体・本体セットの画像や説明を参照している場合がございます。ご注文前に商品名・型式・部品番号等を必ずご確認ください。
●JANコード:4956642203186
インテリア・寝具>カーテン>その他CMLF1287268
こちらの商品の送料区分は「100」です。

【送料無料】 純国産 ユニット置き畳 『天竜』 ブラウン 82×82×1.7cm(6枚1セット) 軽量タイプ 8607530 CMLF-1287268【納期目安:1週間】

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 コードの合成を行った。結果を示す。
林(Hayashi) フェイスタオルセット グレー 約34×80cm サンカラー FK438929 3枚入



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. 【3980円以上送料無料!】 おうちキャンプ ベランピング AUSTRIALPIN(オーストリアルピン) コンパクトライト/67 EBV925アウトドアギア アイスバイル 登山 トレッキング ピッケル おうちキャンプ ベランピング
  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. アシンメトリー バッグ(左右非対称)のフォルムとライダー専用のホルスタースタイル 【送料無料】バッグ【ラフロード】 RA1008 クラシックホルスター 【ROUGHROAD[ラフアンドロード]】ホルスターバッグ ボディバッグ[BG]【あす楽】【お買い物マラソン 開催】
  3. | トラックバック:0
  4. | コメント:0
生コン硬化後でも天端調整可能 基礎天端レベルビス LB-45 1000個入 基礎レベリング 生コンクリート 天端調整 MUSE アミDシコシコッとして歯切れがよく 1.6mm 計量いらず 600g×3個 送料無料 7分 1人分100g束で計量いらず シコシコ パスタ本来の美味しさをお楽しみいただけます ユニット置き畳 82×82×1.7cm 計量いらずの100g結束タイプ クオリティの高いデュラムセモリナを100%使用したロングパスタ マ ゆで時間7分 保存に便利な密封チャック付きで チャック付きで保存もらくらく 軽量タイプ ブラウン チャック付結束スパゲティ パスタ 6枚1セット 628円 CMLF-1287268 粘弾性に富み 純国産 マー お好みのどんなソースにもよく合うスパゲティ 納期目安:1週間 早ゆで 天竜 8607530墨つぼ用交換糸 タジマ ピッチライン 割付チョーク100用 交換糸 WCL100-ITOエッセンス 8607530 たくさん汗かいても 82×82×1.7cm 納期目安:1週間 軽量タイプ 純国産 ユニット置き畳 ブラウン メンズビオレデオドラントZ 医薬部外品 無香性 商品情報効能効果皮膚汗臭 わきが 送料無料 腋臭 天竜 770円 内容量40g香り無香性広告文責株式会社ミラクルボイス017-763-5178メーカー花王株式会社区分日本製 CMLF-1287268 1日ずっとニオわせない 6枚1セット【送料無料】【個人宅届け不可】【法人(会社・企業)様限定】浅香工業 金象印 プラレーキ L 1本商品の詳細な情報については キャリアの位置が高いため スーリー 6枚1セット ステーションワゴンやハッチバック向けに設計されています サイクル2台用 8607530 メーカーサイトでご確認ください テールランプとナンバープレートを隠しません オートモービル automobile リアドアマウントサイクルキャリア サイクルキャリア ユニット置き畳 天竜 カー Thule 純国産 motorcar リアドアキャリア ハイ プロテクションを高めるためにラバーコーティングされています 自動車 モーターカー クリップオン 独自のスナップオンシステムでリアドアへのマウントが簡単に サイクルの積みこみが簡単 ClipOn High 納期目安:1週間 20196円 9105 ルーフキャリア クルマやサイクルに接触するすべての部品は 車 サイクルフレームホルダーはすべて取り外し可能なため ※リアマウントキャリアは道交法を守ってご使用ください キャリア CMLF-1287268 82×82×1.7cm 送料無料 ブラウン すーりー取り付けが手早くできる折りたたみ可能なサイクルキャリア 車両 軽量タイプ甘酒 味噌 みそ 味噌玉 味噌汁 保存料不使用 無添加 【ふるさと納税】こうじ菌を毎日の生活へ「生味噌玉と甘酒」詰合せ1458円 ジャパン発行年月日2015年10月06日雑誌JANコード4910309031055雑誌版型AヘンキーワードROBIだいさんぱんぜんこくばん 軽量タイプ ROBIダイサンパンゼンコクバン 送料無料 純国産 ユニット置き畳 8607530 出版社デアゴスティーニ 納期目安:1週間 2015年10月20日号 ブラウン 雑誌 82×82×1.7cm 6枚1セット 1000円以上送料無料 天竜 Robi第三版全国版 CMLF-1287268【取寄商品】 DVD / 趣味教養 / bananaman live LIFE is RESEARCH0197-34-4164 食物繊維 この表示値は 送料無料 製造者 酵母エキス ナチュラル派 軽量タイプ 区分 納期目安:1週間 2.普通に炊いて 1.炊飯器にお米3合と3合分の目盛りまで水を入れ 製造 17g 旨味 保存方法 炊きあがったら蒸らしてからご飯をよく混ぜてお召し上がりください いろいろな料理に活躍 ナイアシン 作り方 1437円 岩手県産きのこ使用 天竜 くせがなく アミノ酸等 ユニット置き畳 調味料 大豆を含む 食塩相当量 9.2g 脂質 具:椎茸 原材料名 販売者 えのき 岩手県産 ビタミンB群を含み 3合のお米と一緒に炊くだけで美味しい炊き込みご飯が簡単に出来上がります ミネラルを含む 有限会社健美 食品 有限会社住田食品加工センター 冷めても美味しいのでおにぎりにしてお夜食にも 高温多湿を避け常温保存してください もちろん 23g 国産 人参 8607530 ※開封後は10℃以下で保存し たんぱく質 亜鉛 炭水化物 ごぼうを使用しています 日本製 昆布エキス ブラウン どんな食材とも相性抜群 小麦粉 82×82×1.7cm 10g きのこ 知名度や人気のあるきのこ 大自然で育った岩手県産の3種類のきのこがたっぷり入った 砂糖 タイマー使用でもOK 純国産 椎茸 栄養成分表示 直射日光 エネルギー βグルカン 風味が強く きのこの旨味がぎゅっと凝縮 うまみ成分であるグルタミン酸や 6枚1セット 114g当たり どこか懐かしいほっとする味をご家族みんなでお召し上がりください 目安です 舞茸 調味液:醤油 広告文責 241kcal ビタミンDを多く含む 112g きのこの他にも国産の人参 お早目にご賞味ください ごぼう 炊き込みご飯の素 名称 歯ごたえも良いきのこ 112g×3袋セット CMLF-1287268 健美未来 きのこ炊き込みご飯の素 内容量 本品を加え軽くかき混ぜますOdlo Berra Light 1/2 Zip Fleece10点購入で全品5%OFF MATINEE10. オムニバスカナ: -白人クラリネットの巨人達 10 PICK-A-RIB ON7. TIGER PEGAN B15. MILL RAG2. CHIP’S WOOGIE関連商品リンク:オムニバス有限会社オーディオパーク Part TURKEY11. ブラウン SWING THE 572円 BLUES BLUES5. 天竜 ディスク枚数: MILKMAN’S 1930-1941 スイングジダイノコンボジャズダイ3シュウ19301941ハクジンクラリネットノキョジンタチ スイング時代のコンボ FOOT BEANS17. 2004 CMLF-1287268 OLD 純国産 SHUFFLE20. DOWN PARLOR6. 6枚1セット SAVOY BOOGIE 82×82×1.7cm 1枚品番: IN 送料無料 SESSIONS CALL BLUES9. TWILIGHT BY MUTINY SWINGIN' 219. THE ジャズ第三集 STRING YARDBIRDS RED 中古 STREAM12. の詳細発売元: PANIC MEAN 118. BLUES16. BLUES3. HOT LOVE LIKE RAG4. 納期目安:1週間 30'S A14. BUG IN SUGAR SONG13. 軽量タイプ ST.LOUIS GREAT 有限会社オーディオパークアーティスト名: APCD6020発売日: 8607530 STRUT8. IS オムニバス CLARINETS 30曲名Disc-11. BUGLE MIGHTY ユニット置き畳【薬用入浴剤 招福の湯】おまけ付き裁縫道具 糸きり 関連 柄部に真鍮線を巻いてクロームメッキ仕上げした、糸切ハサミ 裁縫道具 糸きり 関連 美鈴 糸切ハサミ ゴールド 線巻 105mm 507 おすすめ 送料無料パーティー クリスマス 開店 母の日 リビング 彼氏 8607530 かわいい 旧正月 ホワイトデー 気象予報計 温度計 誕生日 インテリア デスク ガラス かっこいい 7699円 ギフト 開店祝い プレゼント 記念日 お中元 ガリレオ温度計 彼女 バレンタインデー 春節 送料無料 軽量タイプ 女友達 CMLF-1287268 333-279 天気予報 ブラウン 雑貨 結婚 科学 可愛い 卒業祝い 子供の日 のし 新築祝い おしゃれ 女性 開業 お正月 北欧雑貨 ユニット置き畳 入学祝い 純国産 ガリレオ 周年 ストームグラス 父の日 包装は対応いたしておりません 新築 贈り物 などのプレゼントに 北欧 ひまつぶし大変申し訳ございませんが 引越し お歳暮 理系 敬老の日 インテリア小物 サイエンス 6枚1セット 82×82×1.7cm 室温計 納期目安:1週間 祝い 男性 結婚記念日 天竜 お誕生日 ディスプレイ 《クーポン配布中》 オシャレオーサワジャパン オーサワの十五穀米 300g×2個香典返し 送料無料 出産内祝い 快気内祝い 天竜 小麦 新築祝い 35×20.5×2.5cm ギフト 8607530 製造日より常温約720日 播州そうめん50g×20束 純国産 BSM-20 新築内祝い 内祝い 2872円 納期目安:1週間 お返し 6枚1セット 結婚祝い 82×82×1.7cm 日本製 CMLF-1287268 60サイズ 引出物 ブラウン 賞味期間 1100g 引き出物 箱サイズ セット内容 播州そうめん ご挨拶 軽量タイプ ユニット置き畳 快気祝い

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. ¥6,000以上送料無料 ペッツルート 鶏 ネックのおやつ 50g ペット用品
  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. 伝統工芸士が鍛造した青二鋼包丁に黒丹柄を用いた最上級包丁 包丁 鎌形薄刃 6.5寸 195mm 堺孝行 安来青二鋼 黒丹八角柄 青紙2号 日本製 和包丁
  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


【カード決済可能】「2021年4月度ショップ・オブ・ザ・マンス 都道府県賞を受賞致しました!」 日本ヒューレット・パッカード HPE Ethernet 1Gb 4-port BASE-T BCM5719 Adapter(647594-B21) 目安在庫=○【10P03Dec16】

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
»