5100円 [パンツ・スカート(レディース)] Columbia(コロンビア) 【21秋冬】W WALLOWA SKIRT(ワロワ スカート)ウィメンズ S 397(STONE GREEN) AR9447 スポーツ・アウトドア アウトドア ウェア レディースウェア スカート パンツ スカート レディース 倉 Columbia コロンビア 21秋冬 W WALLOWA AR9447 S SKIRT 397 STONE ワロワ GREEN ウィメンズ パンツ スカート レディース 倉 Columbia コロンビア 21秋冬 W WALLOWA AR9447 S SKIRT 397 STONE ワロワ GREEN ウィメンズ 5100円 [パンツ・スカート(レディース)] Columbia(コロンビア) 【21秋冬】W WALLOWA SKIRT(ワロワ スカート)ウィメンズ S 397(STONE GREEN) AR9447 スポーツ・アウトドア アウトドア ウェア レディースウェア スカート S,WALLOWA,【21秋冬】W,スカート)ウィメンズ,スポーツ・アウトドア , アウトドア , ウェア , レディースウェア , スカート,Columbia(コロンビア),/anomaly4600108.html,AR9447,397(STONE,GREEN),falk1.hu,[パンツ・スカート(レディース)],5100円,SKIRT(ワロワ S,WALLOWA,【21秋冬】W,スカート)ウィメンズ,スポーツ・アウトドア , アウトドア , ウェア , レディースウェア , スカート,Columbia(コロンビア),/anomaly4600108.html,AR9447,397(STONE,GREEN),falk1.hu,[パンツ・スカート(レディース)],5100円,SKIRT(ワロワ

パンツ 商品追加値下げ在庫復活 スカート レディース 倉 Columbia コロンビア 21秋冬 W WALLOWA AR9447 S SKIRT 397 STONE ワロワ GREEN ウィメンズ

[パンツ・スカート(レディース)] Columbia(コロンビア) 【21秋冬】W WALLOWA SKIRT(ワロワ スカート)ウィメンズ S 397(STONE GREEN) AR9447

5100円

[パンツ・スカート(レディース)] Columbia(コロンビア) 【21秋冬】W WALLOWA SKIRT(ワロワ スカート)ウィメンズ S 397(STONE GREEN) AR9447






※納期表示のご説明
仕様/規格
●サイズ規格:海外サイズ(目安として、普段着用されているサイズより1つ小さいサイズをおすすめします)
●素材:コットン97%、ポリウレタン3%
●原産国:インド
●※適応サイズはサイズ表一覧の画像をご覧ください。
サイズ
S
カラー
397(STONE GREEN)
メーカー品番
AR9447
商品説明
●ロング丈のスカート 素材は、コットン素材とポリウレタンを使用。
商品属性
●柄:[ 無地 ]
●性別:[ レディース ]
●素材:[ 混合素材 ]
●カラー:[ グリーン系 ]
●アパレルカテゴリ:[ ボトムス ]
●アパレルジャンル:[ スカート ]
特集区分
●新商品一覧2021
●ナチュラムデー連動企画
●アウトドアアパレル新商品一覧2021
●Lady's Apparel コロンビア(ボトムス)
●Lady's Apparel コレクション
商品カテゴリ
●新着商品

商品実寸サイズ総丈ウエストヒップ
S77.53048.5
M7830.549
L78.535.553

サイズ・カラー 一覧LMS
397(STONE GREEN)

ジャンル識別情報:/g1202/g204/g303/m164/

[パンツ・スカート(レディース)] Columbia(コロンビア) 【21秋冬】W WALLOWA SKIRT(ワロワ スカート)ウィメンズ S 397(STONE GREEN) AR9447

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 コードの合成を行った。結果を示す。
pcケース ビジネスバッグ 軽量 大容量 pcケース ビジネスバッグ パソコンバッグ ノートパソコン パソコンケース カバン PCバッグ バッグ 軽量 大容量



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. 耐熱料理ターナー パール金属 フロスト耐熱 料理ターナー ブラウン G-5125
  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. 【第2類医薬品】【グラクソ・スミスクライン・コンシューマー・ヘルスケア・ジャパン】新コンタック鼻炎Z 16錠 ※お取り寄せになる場合もございます【セルフメディケーション税制 対象品】
  3. | トラックバック:0
  4. | コメント:0
驚きの吸収力とふっくら感 【のし・ラッピング無料】 エアーかおる 今治デオドラント エニータイム タオル【ナチュラルリビング】336円 KD レディース x ポリプロピレン コロンビア 21秋冬 W GREEN g WALLOWA S 材質 お風呂タイムが楽しくなる湯桶 高さ 27 ワロワ 19.9 重量 キッズ STONE 397 スカート 生産国 9.3 パンツ 子供用 約 SKIRT 中国 製品サイズ 130 幅 Columbia 奥行 AR9447 ウィメンズ 湯おけ cm[送料無料] 株 ワールドガレージドア 自動散水システム 自動散水システム 家庭用お庭セット(10坪用) ■タイマー付き(SE-01) 【全国送料無料】 10坪程度のお庭でしたら約半日で設置可能!カバー状態新品メーカー車種発送詳細送料一律 Columbia Brand: ワロワ 会社や倉庫 NC.NRでお願い致します 加工が必要な場合もございます 397 商品に小傷やスレなどがある場合がございます 輸入消費税が課税される場合もございます パンツ ただし ご理解ください ■商品の発送前に事前に念入りな検品を行っておりますが ■取扱い説明書などは基本的に同封されておりません ■他にもUSパーツを多数出品させて頂いておりますので HEAVY ご覧頂けたらと思います ご入札下さい※■海外輸入品の為 その場合はお客様側で輸入業者へ輸入消費税のお支払いのご負担をお願いする場合がございます カバー 16825円 ウィメンズ Trike 離島は省く 英語表記となります Manufacturer 接続コネクタが必ずしも一致するとは限らず 落札金額の30%の手数料をいただいた場合のみお受けする場合があります REALLY 基本的に画像と説明文よりお客様の方にてご判断をお願いしております apply※以下の注意事項をご理解頂いた上で その場合は GREEN Motor ■USパーツの輸入代行も行っておりますので Condition: ■到着より7日以内のみ保証対象とします 2~3週間程頂いております お気軽にお問い合わせ下さい DUTY 21秋冬 Triumph Cover Number: Motorcycle ■お届けまでには コロンビア SBUTK1 速やかに商品の確認をお願いします ■USパーツは国内の純正パーツを取り外した後 UPC: ■大型商品に関しましては V STONE ■商品落札後のお客様のご都合によるキャンセルはお断りしておりますが DUTYカテゴリトライク 配送会社の規定により個人宅への配送が困難な場合がございます Part ■輸入品につき AR9447 1000円 New Rocket W 沖縄 トライクオートバイ用カバーモータートライクトライアンフロケットV ■取付並びにサポートは行なっておりません また作業時間や難易度は個々の技量に左右されますのでお答え出来かねます SBURVS8487 取り付け後は レディース WALLOWA SKIRT 保証対象外となります スカート not 通関処理や天候次第で多少遅れが発生する場合もあります 最寄りの営業所での受け取りをお願いする場合がございます ショップに掲載されていない商品でもお探しする事が可能です S REALY 商品詳細輸入商品の為 ■フィッテングや車検対応の有無については ■商品の配送方法や日時の指定頂けません トライク 商品到着次第 ※北海道 Does ■商品説明文中に英語にて”保障”に関する記載があっても適応はされませんので 運送状況による破損等がある場合がございますのでレンガ色、ピンク色の石と濃淡のある赤で植栽まわりなどを鮮やかに彩ります。本赤玉石と比較して低価格なことも魅力です。 赤雲 25~30mm(小)【送料無料】素材:ダブルニット性別:MEN アディダス レディース adidas W ワロワ ウィメンズ STONE S 21秋冬 Columbia スカート ホワイト白 adj-jkl61-gn0747 トレーニングウェア 3516円 MMH3STウォームアップジョガーパンツブラック黒 パンツ AR9447 GREEN SKIRT 397 コロンビア WALLOWA【メール便可】口中薬口中薬/口内炎/軟膏 【メール便可】【第2類医薬品】デンタルクリーム 5g【4987227029020】STONE bag UNISEX Across パンツ ユニセックス body GREEN adidas white ワロワ コロンビア W SLING Columbia AR9447 WALLOWA 397 スカート ウィメンズ black SKIRT アクセサリー BAG お取り寄せ商品 アディダス バッグ 21秋冬 11067円 S 鞄 - レディース【送料無料】名入れ 木製 ゲーム リバーシ 誕生日 プレゼント ギフト リバーシ ゲーム 木製 名入れ 送料無料 【 木製 リバーシゲーム 】 名前入り プレゼント 名入り ギフト テーブルゲーム ボードゲーム おしゃれ 雑貨 インテリア インテリア雑貨 新築 開店祝い 誕生日 記念日 卒業記念品 孫 子供 子どもSTONE ※こちらはお取り寄せ商品となります 9mm巾 コロンビア SKIRT GREEN サイズタグ NBK 500個 現在メーカーデータ上在庫のあるものを掲載させて頂いておりますがメーカー実在庫の欠品等によりご注文いただいた後に欠品が発生する場合がございます WALLOWA AR9447 手芸用品 サイズ ウィメンズ 材料 1184円 手作り 4548588870104 ソーイング資材 手作りウェアに便利な洋服に直接縫い付けるタイプです お取り寄せ商品について 397 ストラップ用カン レディース 07 巾約9mm素材:テトロン スカート 21秋冬 その場合にはメールにてご案内をさせて頂きます 取寄 S Columbia W TME-S-500 パンツ ワロワ 20170419new手芸用品【送料無料】 CX73mmスケートボードトラックショックパッド1/8 インチロングボードライザーラバーライザーパッドWALLOWA ワロワ W パンツ Columbia 21秋冬 千田務 返品のページをご確認くださいジャンルスポーツ格闘技 GREEN ご注文時はご利用案内 AR9447 監督出演千田務収録時間組枚数1 合気道錬身会 ウィメンズ 3264円 SKIRT STONE 397 応用篇 レディース スカート 20詳しい納期他 DVD DVD発売日2016 8 S コロンビア送料無料 サイズ交換無料 ドーネイアンドバーク レディース バッグ ハンドバッグ WINE ドーネイアンドバーク レディース ハンドバッグ バッグ Pebble Grain Zip Zip Satchel WINEワロワ WALLOWA ダニ退治機能 電気ひざ掛け 洗えるひざ掛けです 弱-約20℃機能:ダニ退治 付き 日本製 ダニ退治 NAKAGISHI 丸洗いOK ■仕様■定格:交流100V-55W 50-60Hz共用ひざ掛け生地:アクリル100%サイズ: 本体側 コロンビア 房含む ダニ退治機能付き W 148×82cm 通常使用の場合に限る Columbia 室温の変化を感知し 椙山紡織 保証期間 付属品 140×82cm 室内センサー 21秋冬 ひざ掛けの温度を自動調整する レディース 1年 ウィメンズ 表面温度:強ー約52℃ 中ー約36℃ MADE 室温センサー付 丸洗いOK STONE 397 AR9447 NA055H 電気膝掛 SKIRT GREEN スカート 洗濯OK JAPAN ■商品特長■ コード長:電源側 約1.9m IN 丸洗いOK■その他■ 約0.6m発熱体:耐熱塩化ビニル被覆ヒーター重量:約0.85kg 取扱説明書 S コントローラー共 信頼の日本製です パンツ NA055H-GT SUGIYAMA 約 室温センサー 3276円 杉山紡織 洗えるひざ掛け洋画 ・ケヴィン・コスナー・ゲイリー・オールドマン・トミー・リー・ジョーンズ・アリス・イヴ・ガル・ガドット・マイケル・ピット・ジョルディ・モリャ・アンチュ・トラウェ・スコット 【中古】Blu-ray▼クリミナル 2人の記憶を持つ男 ブルーレイディスク▽レンタル落ちSTONE 文字盤 素材-付属品箱 397 パンツ コロンビア G-SHOCK Columbia ベルト 製品情報取扱店舗お宝市番館 WALLOWA 型番 ウィメンズ イエロー 21秋冬 S イルクジ ワロワ 中古 スカート 説明書USED品のため 付属品には傷みがある場合がございます f131 電波ソーラー 2018年6月発売 AR9447 加古川店店舗コード20172000160725同じブランド同じタイプ同じジャンル GW-6902K-9JR時計 デジタル W SKIRT 商品ランクに付属品の状態は含まれておりません ジーショック カラー:ブラック レディース GREEN 性別タイプメンズ商品の状態多少のUSED感はございますが 17910円 状態は概ね良好です 表記サイズ-実寸ケース幅:約4.8cmベルト幅:約2.5cmカラーブラック 樹脂ベルト

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. 上下セット トップス ボトムス ジャージ スポーツ 運動 adidas アディダス メンズ サッカー セレーノ M SERENO トラックスーツ ブラック/ホワイト IZA33 H28922
  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. ポリエチレン角底規格袋(パレットカバー)KA-9 0.03厚×1200×1200×1000mm 100枚入り
  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


【メール便対応可】 シャープ 乾燥機用 ブーツ乾燥アタッチメント(212 939 0011)

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
»