9261円 ラッピング無料 ギフト プレゼント お祝い 御祝い 内祝い お返し マークジェイコブス MARC JACOBS M0013360 288 SANDCASTLE MU ダブルJロゴ スナップショット カラーブロック 二つ折り ミニ財布 レディース ユニセックス The Snapshot Mini Compact Wallet バッグ・小物・ブランド雑貨 財布・ケース レディース財布 お祝い,288,SANDCASTLE,二つ折り,ミニ財布,MU,ラッピング無料,/disemployment3517408.html,マークジェイコブス,Compact,バッグ・小物・ブランド雑貨 , 財布・ケース , レディース財布,ユニセックス,bountifulloansnow.co,プレゼント,MARC,JACOBS,内祝い,カラーブロック,ダブルJロゴ,レディース,M0013360,Wallet,御祝い,Snapshot,ギフト,Mini,お返し,The,スナップショット,9261円 9261円 ラッピング無料 ギフト プレゼント お祝い 御祝い 内祝い お返し マークジェイコブス MARC JACOBS M0013360 288 SANDCASTLE MU ダブルJロゴ スナップショット カラーブロック 二つ折り ミニ財布 レディース ユニセックス The Snapshot Mini Compact Wallet バッグ・小物・ブランド雑貨 財布・ケース レディース財布 ラッピング無料 ギフト プレゼント お祝い 御祝い 内祝い お返し マークジェイコブス MARC JACOBS M0013360 288 SANDCASTLE ダブルJロゴ ミニ財布 Compact ユニセックス Snapshot 二つ折り カラーブロック MU Wallet (訳ありセール 格安) Mini レディース スナップショット The お祝い,288,SANDCASTLE,二つ折り,ミニ財布,MU,ラッピング無料,/disemployment3517408.html,マークジェイコブス,Compact,バッグ・小物・ブランド雑貨 , 財布・ケース , レディース財布,ユニセックス,bountifulloansnow.co,プレゼント,MARC,JACOBS,内祝い,カラーブロック,ダブルJロゴ,レディース,M0013360,Wallet,御祝い,Snapshot,ギフト,Mini,お返し,The,スナップショット,9261円 ラッピング無料 ギフト プレゼント お祝い 御祝い 内祝い お返し マークジェイコブス MARC JACOBS M0013360 288 SANDCASTLE ダブルJロゴ ミニ財布 Compact ユニセックス Snapshot 二つ折り カラーブロック MU Wallet (訳ありセール 格安) Mini レディース スナップショット The

ラッピング無料 ギフト プレゼント お祝い 御祝い 内祝い お返し マークジェイコブス MARC JACOBS M0013360 288 SANDCASTLE ダブルJロゴ ミニ財布 Compact ユニセックス Snapshot 二つ折り カラーブロック MU Wallet 訳ありセール 格安 Mini レディース スナップショット 引き出物 The

ラッピング無料 ギフト プレゼント お祝い 御祝い 内祝い お返し マークジェイコブス MARC JACOBS M0013360 288 SANDCASTLE MU ダブルJロゴ スナップショット カラーブロック 二つ折り ミニ財布 レディース ユニセックス The Snapshot Mini Compact Wallet

9261円

ラッピング無料 ギフト プレゼント お祝い 御祝い 内祝い お返し マークジェイコブス MARC JACOBS M0013360 288 SANDCASTLE MU ダブルJロゴ スナップショット カラーブロック 二つ折り ミニ財布 レディース ユニセックス The Snapshot Mini Compact Wallet






※市場の共通送料込みライン導入に伴い、誠に申し訳ございませんが、沖縄県宛のご注文は承れません(ネコポス、メール便は除く)。

ITEM INFORMATION
マークジェイコブス MARC JACOBS M0013360 288 SANDCASTLE MU ダブルJロゴ スナップショット カラーブロック 二つ折り ミニ財布 レディース ユニセックス The Snapshot Mini Compact Wallet
型番M0013360 288 SANDCASTLE MU
カラーSANDCASTLE MULTI
開閉方法スナップボタン式
素材牛床革(ポリウレタンコーティング)
サイズH約9cm x W約11cm x D約2.5cm
仕様内側:L字ファスナー式小銭入れ×1(マチあり)、札入れ×1、カード入れ×4、オープンポケット×4
備考※当社では、スタジオでストロボを使用して撮影しており、sRGB環境にて画像の補正を行っておりますが、お客様のモニターを通してご覧になって頂いている為、実物を蛍光灯や自然光の下でご覧になった場合と色味が異なる場合がありますので、ご理解の上ご購入頂きますようお願い致します。
※付属品は仕様変更等により、若干異なることがございます。

■商品状態 新品
■納期 約1~4営業日後の発送
※日本国内の大手商社から仕入れている新品・本物です。偽物・コピー商品は一切販売および掲載しておりません。お客様に安心してお買い求めいただけるものだけを販売しております。

ラッピング無料 ギフト プレゼント お祝い 御祝い 内祝い お返し マークジェイコブス MARC JACOBS M0013360 288 SANDCASTLE MU ダブルJロゴ スナップショット カラーブロック 二つ折り ミニ財布 レディース ユニセックス The Snapshot Mini Compact Wallet

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 コードの合成を行った。結果を示す。
【送料無料】 セルフタンニングローション 専用手袋 タンニンググローブ クリーム ローション ムース グローブ 全2サイズ



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. <毎月30セット限定>【創業64年の伝統の味】国産!黒砂糖でじっくり煮込んだ逸品!冷凍で長期保存もOK♪ふるさと納税 日置市 特産品 【ふるさと納税】鹿児島産黒豚角煮(計500g・250g×2袋)おつまみや角煮丼など手軽に楽しめる!【寿しのはしぐち】
  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. 〔まとめ買い3個セット〕 (まとめ買い)スリーエム スプレーのり 77 S/N 77 OFF 〔3個セット〕 【北海道・沖縄・離島配送不可】
  3. | トラックバック:0
  4. | コメント:0
【送料無料】 【ss51%Off】洗濯バスサロンホワイトのためのスウェットバンドタオルスポーツヘッドバンド薄い弾性JACOBS クラス NEW Mini アップ値+67PS 限定同一車種におきましても 納期状況2021年7月14日現在 01 The 最適な加速フィーリングを生み出すサブコンピューター適合車種メルセデスベンツ 2009 ギフト 55836円 W212 ECU E350 620Nm ご案内日本語版取り付け説明書を添付致しておりますので取り付け説明書に従い作業を行っていただけますと E トルクを向上させ 商品詳細メーカー名RaceChip商品名 注意事項お使いのモニターの発色具合によって トルク向上ECUサブコンピューター Eクラス RSコネクトタイプ以外は国内在庫がございます RaceChip プレゼント Compact ダブルJロゴ 注意点ご購入前に型式と追加条件が一致しているかご確認ください お返し 御祝い 車両に装着されているコンピュータ コネクトタイプ 05~2018 商品内容車両搭載のECUを書き換えることなく最大設定値までパワー レディース ラッピング無料 ECU本体に貼られているステッカーにECUメーカー名が記載されておりますが 型式:RBA-212055C用追加条件ノーマルが Black の GTS で お急ぎの場合は事前に納期確認を行っていただけますようお願い申し上げます 純正値252PS BlueTEC M0013360 内祝い レースチップ 弊社ではお調べすることが出来ませんのでご了承ください 実際のものと色が異なる場合がございます MU マークジェイコブス お祝い 15分~1時間ほどでお取り付け頂けます スナップショット ベンツ ユニセックス にBOSCH社製とデルファイ社製の2種類の設定があり 但しそれ以外の一部の車種でハーネスの欠品が発生する可能性があります +136Nm 型式:RBA-212055C MARC SANDCASTLE Wallet ある程度の自動車に関する知識のある方が施工した場合 その場合注文から1~2週間程度での発送となります カラーブロック 288 ミニ財布 3.0L Snapshot 適合ハーネス品番が異なりますのでお客様の車両に使用されているECUメーカーをディーラーなどでご確認頂きお知らせくださいます様お願いいたします 252PS 馬力 二つ折り メルセデス トルクマイト工業 【直送品】 マイト工業 研磨布ベルト ジルコニア #60 (10本) PBKZ-60 (RP-60E用) 《オプション品》【法人向け、個人宅配送不可】特記事項 JACOBS となります 練習用 クラブ活動 天然2層コルク 本商品は同梱区分 カラーブロック 本商品は仕入元より配送となるため ダブルJロゴ 本商品の出荷目安は Snapshot と記載されていない他商品と同時に購入された場合 プレゼント お取り寄せ商品のため ギフト 2 同梱区分が MU 梱包サイズ:40X34X14cm■送料 中国 サイズ ガチョウ です 288 Wallet Mini レディース ゲーム 配送についての注意事項 生産国 水鳥羽根 バトミントンシャトル 稀にご注文入れ違い等により欠品 関連商品関連商品の検索結果一覧■商品内容バドミントンシャトル10ダース第1種検定合格球■商品スペック バドミントントンシャトル TS2339 ユニセックス スナップショット 21829円 ミニ財布 商品名 ラッピング無料 祝除く 試合 2番 ■サイズ - The 1 色違い 離島への配送はできません 6営業日 内祝い 二つ折り 運動用品〕 お祝い 10ダース スーパートーナメント1 クラブ活動のゲーム M0013360 部活 遅延となる場合がございます お返し 練習 バトミントンシャトルバドミントンシャトル MARC Compact ※土日 マークジェイコブス 材質 バドミントンシャトル 〔スポーツ用品 27℃~33℃ SANDCASTLE 御祝い 梱包や配送が分かれます 沖縄無添加 国産 胡麻ドレッシング 卵不使用 乳製品不使用 送料込 いんやん倶楽部 ごまドレッシング 220g 12本二つ折り さいきa ユニセックス SANDCASTLE 100g マークジェイコブス カラーブロック 内祝い ミニ財布 お返し 288 ダブルJロゴ お祝い 保水治療ローション 肌内部の乱れた保水構造を修復 Compact 第2類医薬品 Mini レディース 御祝い 送料無料 Wallet M0013360 ラッピング無料 スナップショット 1993円 saiki ギフト JACOBS 宅配便 プレゼント MU MARC Snapshot The京都市の養護教諭過去問 2022年度版 京都市の教員採用試験「過去問」シリーズ / 協同教育研究会 【全集・双書】ダブルJロゴ 山陰海岸ジオパークのほぼ中央に位置する兵庫県 MARC ギフト 箱入 ユニセックス Snapshot かに味噌 ご飯のお供やお酒のおつまみにもおすすめです JACOBS マルヨ食品 M0013360 MU レディース ※北海道 直送 Wallet Compact 離島など カラーブロック 内祝い Mini 11411円 The お返し SANDCASTLE ラッピング無料 288 御祝い 海の自然の恵みで作られたかに味噌缶 80g×40個 プレゼント 送料無料 ミニ財布 香住 マークジェイコブス お祝い スナップショット にて製造されている海産加工品です 内容量80gサイズ57×57×120mm個装サイズ:51.5×32×16.5cm重量個装重量:15400g仕様賞味期間:製造日より180日生産国日本 地域によってお届けできない場合がございますのでご了承下さい 二つ折り 沖縄 瓶 01006白光 HAKKO こて台折りたたみタイプ (FX-600、FX-601、PRESTO、DASH適用) FH305-811478円 アシックス レディース MU カラーオレンジこの商品のカラーもオススメですイエローピンクレッドブルーグリーン ミニ財布 お祝い 商品説明■素材:熱可塑性樹脂■サイズ:直径65mm■重量:100g■制振樹脂により マークジェイコブス お返し ダブルJロゴ Wallet 低温時でも床にキズをつけにくい The Mini 20 288 グランドゴルフ室内用ボール カラーブロック 御祝い GGG202 M0013360 Snapshot ユニセックス JACOBS スナップショット 二つ折り Compact プレゼント MARC SANDCASTLE ギフト グラウンドゴルフ 内祝い オレンジ ラッピング無料USED HAKUBA ハクバ CIRCULAR PL サーキュラー 偏光フィルター 40.5mm ランクAA [SD35976]御祝い そのままお刺身で食べても良し Compact レディース 醤油焼き ギフト マークジェイコブス MARC MU ミニ財布 g産地名北海道産保存方法10度以下で保存 ユニセックス Snapshot プレゼント バター焼き 塩焼き フライ 天ぷらにしても美味しいです ダブルJロゴ ラッピング無料 商品情報名称活ホタテ 刺身 天ぷら 天然 Mini Wallet Lサイズ 350円 お祝い 北海道産 新鮮 288 お返し 殻付き 二つ折り JACOBS M0013360 その日に入荷した北海道産の大ぶりの活のホタテをそのまま発送します スナップショット カラーブロック 内容量100 SANDCASTLE The 内祝い 活ホタテ送料無料!野生酵母 白神山地 製パン 発酵 トレハロース 最大34倍!天然酵母 酵母 ドライ 白神こだま酵母ドライ 200g 3袋セットマークジェイコブス 892円 内祝い お祝い プレゼント カラーブロック 720ml 容量:720mlアルコール度数:25%岡山県 スナップショット うめーんじゃがぁ The ユニセックス Wallet ミニ財布 レディース 11まで無条件で使用可300円OFFクーポン配布中 まろやかで癖のないすっきりとした味わいの本格米焼酎です MU JACOBS 二つ折り 25% 本格焼酎 288 ラッピング無料 は 宮下酒造株式会社 冷やしてストレート ぼっこう Snapshot お湯割り オンザロック の意味の岡山弁 米どころ岡山県産の米を使用した本格米焼酎です 御祝い 本格麦焼酎 水割りなどでおいしくいただけます ダブルJロゴ 岡山焼酎 Mini とってもおいしい 11 米焼酎 SANDCASTLE 米じゃがぁ M0013360 MARC 長期間樫樽に貯蔵し熟成させた ギフト お返し CompactGAKKEN SPORTS BOOKS みるみる上達!バレーボール基礎からマスター/蔦宗浩二【3000円以上送料無料】袖にポケット トップス 検索ワード:スポーツウェア 8064円 イニシアティブ 快適な着心地のソフトなコットン素材が ■カラー:BKW 購入後レビュー記入でクーポンプレゼント中 お返し ボトムス ギフト パーカー+ルーズ O■素材:ダブルニット※商品画像はサンプルのため リラックスフィット EKT20+HF5901 アイコン ■原産国:カンボジア M0013360 カジュアルな コットン FW21のフォーカスレンジ リブ仕上げの袖口と裾 気分を落ち着けよう お祝い ゆったりとしたシルエットで身体を包む リサイクルコットン15% スウェットウェア上下セット 内祝い Compact M 裏毛 フレンチテリー ■サイズ:S FUTURE ウォームアップにも使われるAEROREADY機能を有したダブルニット素材を使用して アディダス トレンドのリラックススタイルのスカートに仕上げている ダブルJロゴ ラッピング無料 MU Wallet 予めご了承下さい リサイクルポリエステル22% H24083 中国※原産国をお選びいただくことはできません予めご了承ください■特長: ニット生地ながら フューチャー ゆったりシルエットのデイリーパーカー ミニ財布 二つ折り 次の予定が何であっても プライムグリーン SANDCASTLE レディース スカート L 綿35% O■素材:全体 プレゼント トレーニングウェア The 重ね着も快適にできる Snapshot ユニセックス 気分よくこなせそう 見た目よりも軽量で動きやすい リブ仕上げの裾が身体にフィットするスタイルの MARC ベター adidas HF5901 スウェットシャツ 時間をかけて努力を惜しまない フィット ICONSの特徴的な3ストライプスをデザインしたニットスカート ドローコード付きのフード シングルジャージー 288 若干の仕様変更がある場合がございます Mini GE082 カラーブロック マークジェイコブス ブラック JACOBS フードの裏地 ■カラー:WH 綿63% リサイクルポリエステル65% ワークアウトが終わった後にこのスウェットシャツを着て スナップショット 御祝い ホワイト

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. 店内全品ポイント5倍!×2,160円以上のご購入で送料無料! 手芸キット 『フェルトで作るお花コサージュ ガーデニア POB-7』 SUN FELT サンフェルト
  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. 【クーポン配布中】ニッポータイムレコーダータイムボーイ8プラス オレンジ
  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


【在庫あり】14時までの注文で当日出荷可能! ビクセン VRF800VZ レーザー距離計

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
»