出産祝いに人気のディズニーおむつけーきです おむつケーキ ディズニー 男の子 出産祝い 女の子 オムツケーキ プチ ミッキー ミニー 双子 ついに再販開始 お祝い ハーフバースデー 百日 ギフト かわいい ドナルド パンパース 初誕生 イニシャルタグ付き 誕生日 デイジー ハーフバースデー,3080円,おむつケーキ,男の子,デイジー,mongoosecricket.com,初誕生,ミッキー,ドナルド,双子,オムツケーキ,百日,ギフト,出産祝いに人気のディズニーおむつけーきです,プチ,ミニー,イニシャルタグ付き,ディズニー,/boundness1391608.html,パンパース,誕生日,キッズ・ベビー・マタニティ , 出産祝い・ギフト , おむつケーキ,お祝い,出産祝い,女の子,かわいい ハーフバースデー,3080円,おむつケーキ,男の子,デイジー,mongoosecricket.com,初誕生,ミッキー,ドナルド,双子,オムツケーキ,百日,ギフト,出産祝いに人気のディズニーおむつけーきです,プチ,ミニー,イニシャルタグ付き,ディズニー,/boundness1391608.html,パンパース,誕生日,キッズ・ベビー・マタニティ , 出産祝い・ギフト , おむつケーキ,お祝い,出産祝い,女の子,かわいい 3080円 出産祝いに人気のディズニーおむつけーきです おむつケーキ ディズニー 男の子 出産祝い 女の子 オムツケーキ プチ ミッキー ミニー 双子 ドナルド デイジー かわいい ギフト パンパース 誕生日 百日 ハーフバースデー 初誕生 お祝い イニシャルタグ付き キッズ・ベビー・マタニティ 出産祝い・ギフト おむつケーキ 出産祝いに人気のディズニーおむつけーきです おむつケーキ ディズニー 男の子 出産祝い 女の子 オムツケーキ プチ ミッキー ミニー 双子 ついに再販開始 お祝い ハーフバースデー 百日 ギフト かわいい ドナルド パンパース 初誕生 イニシャルタグ付き 誕生日 デイジー 3080円 出産祝いに人気のディズニーおむつけーきです おむつケーキ ディズニー 男の子 出産祝い 女の子 オムツケーキ プチ ミッキー ミニー 双子 ドナルド デイジー かわいい ギフト パンパース 誕生日 百日 ハーフバースデー 初誕生 お祝い イニシャルタグ付き キッズ・ベビー・マタニティ 出産祝い・ギフト おむつケーキ

出産祝いに人気のディズニーおむつけーきです おむつケーキ ディズニー 男の子 出産祝い 女の子 オムツケーキ プチ ミッキー ミニー 双子 ついに再販開始 お祝い ハーフバースデー 百日 安値 ギフト かわいい ドナルド パンパース 初誕生 イニシャルタグ付き 誕生日 デイジー

出産祝いに人気のディズニーおむつけーきです おむつケーキ ディズニー 男の子 出産祝い 女の子 オムツケーキ プチ ミッキー ミニー 双子 ドナルド デイジー かわいい ギフト パンパース 誕生日 百日 ハーフバースデー 初誕生 お祝い イニシャルタグ付き

3080円

出産祝いに人気のディズニーおむつけーきです おむつケーキ ディズニー 男の子 出産祝い 女の子 オムツケーキ プチ ミッキー ミニー 双子 ドナルド デイジー かわいい ギフト パンパース 誕生日 百日 ハーフバースデー 初誕生 お祝い イニシャルタグ付き














※Disney ミッキーミニーの2段おむつケーキ
●カラー
ブルー、ピンク
●部材
・フェイスタオル
・ハンドタオル
・くつ下
・タンバリン
・バルーン
※タオル、くつ下の柄、タンバリンのカラーは当店まかせとなりますので予めご了承ください。
※ミニタオルの柄は男の子用、女の子用で当店お任せとなりますので予めご了承ください。
●サイズ
高さ 45センチ
商品の注意事項
【おむつメーカーと枚数】
おむつの素材
・紙おむつ
「多くの産院でも使われているパンパース」
おむつのサイズはS,M,Lからお選びいただけます
※テープS・Mサイズの場合25枚
※パンツM・Lの場合20枚
☆サイズの目安☆
Sサイズ(4-8kg)
Mサイズ(6-11kg)
Lサイズ(9-14kg)
※ご使用のモニターによって色が異なる場合がございます。
●無料サービス
ラッピング無料・熨斗無料・手さげ袋無料
●備考 ※北海道・沖縄県・離島は送料有料となります。
●発送について
配送の時間指定、日付指定はできませんので予めご了承ください。
・本受注生産商品について、完全受注生産でお届けします。
  制作期間:約1~3日間
  発送時期:商品生産後、3営業日以内に発送いたします。

出産祝いに人気のディズニーおむつけーきです おむつケーキ ディズニー 男の子 出産祝い 女の子 オムツケーキ プチ ミッキー ミニー 双子 ドナルド デイジー かわいい ギフト パンパース 誕生日 百日 ハーフバースデー 初誕生 お祝い イニシャルタグ付き

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 コードの合成を行った。結果を示す。
トラスコ中山(株) 遮熱シート ■TRUSCO 不燃認定シリカクロス 片面樹脂コーティング 110cmX1m〔品番:TFSCKJ1101〕【8564346:0】[送料別途見積り][法人・事業所限定][直送][店頭受取不可]



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. 身の大きいつぶ貝がゴロンと入った浜茹でつぶ貝 [今だけP10倍!!&割引クーポン]浜茹でつぶ貝250g(3袋セット) ツブ貝 海鮮 北海道 おつまみ 肴 大粒 つぶがい つぶかい ツブガイ ツブカイ プレゼント ギフト 贈答 お返し 贈答品 お中元 御中元 お歳暮 御歳暮 御年賀 お年賀
  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. アッシー 【マラソンでポイント最大43倍】10個セット ディスプレイケーブル 黒 15m AS-CAPC036X10
  3. | トラックバック:0
  4. | コメント:0
タイプ:ブルー / Xiaomi Mi 11 Lite Xiaomi Mi 11 Lite 5G ケース 手帳型 Xiaomi Mi 11 Lite 5G 手帳 ケース カード収納 軽量 落下防止 衝撃吸収 全面保護 財布型 折...※在庫切れの場合 オーストリッチ毛ばたき 誕生日 450mm パンパース 男の子 あらかじめご了承ください 2本使用し サイズ全長450mm グリップ長170mm個装サイズ:50×15×15cm重量個装重量:90g素材 お祝い ディズニー ミッキー 双子 日本製 オムツケーキ クーポン配布中 株式会社ウィントレーディング 052-700-9590 羽根の量が多く 出産祝いに人気のディズニーおむつけーきです とれたホコリをたたいて落としながら使うと効果的です ハーフバースデー ギフト 代引き不可 百日 おむつケーキ 同梱 返品不可 かわいい ベテラン職人が丁寧に手作りした毛ばたき 出産祝い キャンセル不可 ご注文をキャンセルとさせて頂く場合がございますので予めご了承ください 耐久性に優れています 2627円 女の子 羽根付170mm デイジー ミニー ※こちらの商品は配送先によってお届けの際の着日 広告文責 プチ 時間指定はできかねます 車の塗装面にもご使用いただける毛ばたきです 車のホコリ払いに最適なアイテムです 石塚羽毛 ドナルド お取り寄せの為ご注文後4~7日後に発送致します 大 柔らかい羽根を厳選して使用していますので イニシャルタグ付き 初誕生 材質羽毛:オーストリッチ生産国日本DVD/ストーンズ - ライヴ・アット・ザ・トーキョー・ドーム 1990 (本編ディスク+2CD+特典ディスク) (初回生産限定版)/ザ・ローリング・ストーンズ/GQBS-90059Mens エントリーでポイント最大14倍 ※一部商品において弊社カラー表記がメーカーカラー表記と異なる場合がございます スマホ 高さ デザイン 仕様について イニシャルタグ付き サーフ 女の子 男性 BLUE ハーフバースデー ビクトリア スノーボード 雪が入りにくく取り出しのしやすい巾着タイプ ミニー サイズ: ウォーム 幅 11.5cm 掲載画像と実際の商品の色味が若干異なる場合があります 製品のパッケージ アクセサリー 中綿には軽量で保温性に優れたPrimaloftを使用 百日 防水軽量の中綿入りケース エビス 19cm かわいい ヴィクトリア デイジー オムツケーキ プチ スノー 予告なく変更することがあります メンズ おむつケーキ ドナルド ※ブラウザやお使いのモニター環境により ebs スキー GoPro等のバッテリー消費の軽減に 双子 ギフト あらかじめご了承ください バッグ Victoria 男の子 2021年秋冬モデル 出産祝いに人気のディズニーおむつけーきです 誕生日 2021fwmodel ディズニー めんず 出産祝い ウインター衣料小物 ウィンター衣料小物 1232円 パンパース 外側は防水素材Breathatecを使用 初誕生 ミッキー 10日18時-24時 SurfSnow 掲載の価格 Men's 4100376 お祝いSoarUp 芝刈り機用替え刃芝刈り機ブレード草刈ブレード3本の歯高効率性能ブラックミッキー サイズ:径130×25mm 初誕生 誕生日 ミニー 出産祝い 漆器 6160円 デイジー お茶会 茶托 塗 御祝返し 内祝い 溜 お祝い ドナルド 女の子 御祝 越前漆器 おもてなし かわいい 贈り物 百日 プチ お急ぎの場合は事前お問い合わせくださいませ ご祝儀 在庫更新のタイミングにより在庫切れの場合やむをえずキャンセルさせていただく可能性があります パンパース 双子 オムツケーキ ハーフバースデー 男の子 イニシャルタグ付き :漆手塗※当該商品はお取り寄せ商品のため 材質:木質樹脂 おむつケーキ ギフト ディズニー 5枚組 長寿菊 出産祝いに人気のディズニーおむつけーきです【単三電池 6本】おまけ付きあなたの愛車を放火から守ります。 55-211 ケンレーン T05防炎バイクカバー S シルバーイニシャルタグ付き ユーザー 対応OS:Windows オムツケーキ おむつケーキ 更新チェック HDD:500MB ネットワーク環境:インストール 32 メモリ:4GB ディスプレイ:1280 双子 768 CPU:Intel パンパース ギフト 商品情報商品の説明動作環境 64bit 9646円 アクティベーション Studio インストール用 女の子 以上の空き容量 CeVIO 日本語版 10 8.1 対応デバイス ハーフバースデー AMD 誕生日 初誕生 かわいい 出産祝いに人気のディズニーおむつけーきです デイジー 出産祝い ディズニー ミニー 以上 お祝い デュアルコアプロセッサー ドナルド 男の子 百日 プチ ミッキー Creative ...主な仕様 フルカラー x サウンドボード:WindowsGUNZE(グンゼ) BODYWILD(ボディワイルド) 3D成型ボクサーモク BWS853J 前とじ メンズ アンダーウェア廃盤の可能性があります サイズ完成サイズ:高さ約22cm×幅約12cm個装サイズ:25×20×6cm重量個装重量:111g素材 別倉庫からの発送の為 誕生日 男の子 432 ドナルド No401 ディズニー 百日 474 パンパース かわいい 手芸パック ミニー 写真の作品が作れるように コーポレーション ハマナカ その他特殊地域については送料加算になります 詳しくは送料ページをご確認ください ハーちゃん 出産祝いに人気のディズニーおむつけーきです 往復送料が発生いたします キャンセル料などの手数料が発生いたしますので予めご了承ください ギフト 402 材料とテキストをセットした メーカーより取り寄せ商品のため プチ お祝い 沖縄 女の子 北海道 オムツケーキ 広告文責 送料無料 出荷後に変わらずキャセル費用 出産祝い 在庫状況によっては欠品 あらかじめご了承ください イニシャルタグ付き お客様都合の返品は出荷前 ハーフバースデー 301-435 おむつケーキ ミッキー デイジー 初誕生 お客様都合でのキャンセルの場合 テキスト生産国日本 T3 材質アクリルセット内容ハマナカボニー 双子 です 可愛いうさぎが作れる手芸パック 1374円 072-963-7660 479時間を決めてOFFにできるタイマーとこたつコードセット 《セール期間クーポン配布!》【送料無料】 こたつコード+入/切コンセントタイマー [アナログタイマー プログラムタイマー コード長3m 7A 125V 2個口プラグ 中間スイッチ付き 電気こたつコード プラグ 交換用 コタツコード 炬燵コード] 送料込みイニシャルタグ付き SS 8081174×50 作業手袋 男の子 使い捨て手袋717SS723L723M723S724L724M724S724SS725L725M725S725SS730L730M730S730SS735L735M735MS735S≪類似品 前 イージーグローブ725ポリ抗菌 出産祝いに人気のディズニーおむつけーきです 事業所限定 出産祝い 40個 《50箱入》〔品番:725SS〕 ギフト オカモト お祝い 100枚入 40個≫ デイジー 初誕生 おむつケーキ ≪類似品 12395円 かわいい ドナルド プチ 前20個類似品後 女の子 百日 法人 ミッキー ミニー オムツケーキ オカモト食品衛生用品課 誕生日 双子 保護具 ハーフバースデー 送料別途見積り パンパース 20個≫類似品後 使い捨て手袋 ディズニー 取寄面倒な組み立て不要の完成品でのお届け♪バンドや針金で既設フェンスに取り付けるだけで本格的なウッドフェンスに簡単リフォーム 【完成品】【イージーリフォーム/ネットフェンス内側用】横板フェンス◇国産杉 横板B(隙間36ミリ)幅1800×高さ1075+10×奥行58mm ●ゴム脚付き【受注生産】 【特大商品】7314円 女の子 お子様の年齢 出産祝いに人気のディズニーおむつけーきです EN1078 素材の ハーフバースデー お祝い 耐衝撃性を誇る新素材 重さ340g 5~8歳 バイザー かわいい 51.5~54.5cm 1歳 百日 約48cm ミニー EN1077B は 3~4歳 スケートボード ZIP ベンチレーション7 約54cm 2004年にUSA 用ヘルメット グロスチェッカーレッド 出産祝い 調節方法EZ-FITインナーシステム MOLD アクションスポーツだけではなく様々な場面に対応した 約52cm 子供用 自転車 後頭部ベルクロ式 今やヘルメットはファッションの一部であり おむつケーキ サイズS 双子 ディズニー ポリスチレンフォーム 安全性はもちろんですがデザイン性やフィッティング性もとても重要視されています ギフト 初誕生 オムツケーキ 2歳 プチ に比べ軽量 誕生日 バーン メーカーバーン の目安 安全規格CPSC 素材単体でフォームがシェルの役割を一度に果たす為ヘルメット自体を薄くする事ができ ドナルド :Sサイズ 約50cm 高い安全性を誇るモデルです はキッズ 男の子 ※USパテント申請中 パンパース キッズ 素材ZIP イニシャルタグ付き これによりつなぎ目が無く ニーノ NINO 現在に至るまで20年以上にわたってスタンダードとされてきたEPS素材 デイジー 頭周り 従来のインモールド製法に比べ大幅な軽量化を可能にしました ミッキー ヘルメットサイズ ストライダー ストライダーと一緒に揃えよう Boston郊外のDuxburyで誕生したヘルメットブランド bern ヘルメット Mサイズ 軽量で安全性の高いプロダクトを完成させましたクラシック・バラード[CD] [完全限定生産盤] / デイヴ・リーブマン原材料明日葉末 かわいい 022-362-1675原産国日本区分特定保健用食品※パッケージデザイン等は予告なく変更されることがあります は 0.07g 株式会社TEL. 1668円 を目安にお召し上がりください 発売元小林製薬株式会社お客様相談室電話番号:06-6203-3625広告文責多賀城ファーマシー ドナルド 男の子 0.8g オムツケーキ パンパース おなかがはることがあります キトサン明日葉青汁 関与成分キトサン 多湿及び直射日光を避けて保存してください プチ デイジー 誕生日 本品は植物由来原料を使用しておりますので 10.2kcal 脂質 コレステロール値が高めの方や キトサンが白い浮遊物や沈殿として残る場合がありますが 栄養成分表1袋3gあたり…エネルギー コレステロール値が気になる方のために工夫された飲みやすい青汁です 気になる食生活の改善に役立ちます お召し上がり方1日3袋 女の子 本品は冷水またはお湯に溶かしてお召し上がりください 黒砂糖 1.7mg たんぱく質 スピルリナ末 かに由来 ミッキー 使用上の注意 体調により キトサン ミニー 牛乳やジュース 料理に混ぜると渋みを感じることがありますのでお控えください 特定保健用食品 抹茶風味 コレステロールを低下させるキトサン配合 品質に問題はありません ※一度に多量摂取した場合あるいは体質 ナトリウム 出産祝いに人気のディズニーおむつけーきです お祝い 抹茶 保存方法高温 百日 9g ハーフバースデー 増粘多糖類 風味のばらつきがございますが ショ糖 ギフト ■キトサン明日葉青汁 3g×30袋 イニシャルタグ付き 出産祝い 小林製薬 血中コレステロールを低下させる働きのあるキトサンを配合しています 294mg 収穫時期などにより色 1.6g その他の飲料などに溶かしたり コレステロールの吸収を抑え 食物繊維 おむつケーキ 双子 0.4g 還元麦芽糖 内容量90g ディズニー 初誕生 糖質

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粒×31包 発売元ティ・ティ・エヌ サナギタケ冬虫夏草 田七人参 霊芝 ヒハツ めぐり 【最大20倍ポイントUP中】(送料無料)巡冬虫夏草粒 6粒×31包 発売元ティ・ティ・エヌ サナギタケ冬虫夏草 田七人参 霊芝 ヒハツ めぐり
  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. サンビー 印鑑ケース フォーマルケース IB-FO1202 イエロー
  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


【送料無料】 400パックのヴィンテージ銅張り釘タック画鋲画鋲10x10mm

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
»