Bershka,/diuturnal5878558.html,ecru,3311円,レディース,インナー・下着・ナイトウェア , レディース , インナー・下着・ランジェリー , ショーツ , スタンダード,co-ord,collegiate,runner,ショーツ,heritagehillsaustin.com,インナー,下着,in,ベルシュカ,レディース,waffle,Bershka,short 3311円 Bershka レディース インナー 下着 ショーツ ベルシュカ Bershka collegiate waffle runner short co-ord in ecru レディース インナー・下着・ナイトウェア レディース インナー・下着・ランジェリー ショーツ スタンダード Bershka レディース インナー 下着 ショーツ ベルシュカ collegiate ecru waffle short in 限定品 runner co-ord Bershka レディース インナー 下着 ショーツ ベルシュカ collegiate ecru waffle short in 限定品 runner co-ord 3311円 Bershka レディース インナー 下着 ショーツ ベルシュカ Bershka collegiate waffle runner short co-ord in ecru レディース インナー・下着・ナイトウェア レディース インナー・下着・ランジェリー ショーツ スタンダード Bershka,/diuturnal5878558.html,ecru,3311円,レディース,インナー・下着・ナイトウェア , レディース , インナー・下着・ランジェリー , ショーツ , スタンダード,co-ord,collegiate,runner,ショーツ,heritagehillsaustin.com,インナー,下着,in,ベルシュカ,レディース,waffle,Bershka,short

Bershka レディース インナー 卸売り 下着 ショーツ ベルシュカ collegiate ecru waffle short in 限定品 runner co-ord

Bershka レディース インナー 下着 ショーツ ベルシュカ Bershka collegiate waffle runner short co-ord in ecru レディース

3311円

Bershka レディース インナー 下着 ショーツ ベルシュカ Bershka collegiate waffle runner short co-ord in ecru レディース






Bershka ベルシュカ インナー 下着 ショーツ Bershka collegiate waffle runner short co-ord in ecru


■ご注文の際は、必ずご確認ください。
※こちらの商品は海外からのお取り寄せ商品となりますので、ご入金確認後、商品お届けまで2から4週間程度お時間を頂いております。
※高額商品(3万円以上)は、代引きでの発送をお受けできません。
※ご注文後にお客様へ「注文確認のメール」をお送りいたします。それ以降のキャンセル、サイズ交換、返品はできませんので、あらかじめご了承願います。また、ご注文をいただいてからの発注となる為、メーカー在庫切れ等により商品がご用意できない場合がございます。その際には早急にキャンセル、ご返金いたします。
※海外輸入の為、遅延が発生する場合や出荷段階での付属品の箱つぶれ、細かい傷や汚れ等が発生する場合がございます。



指輪のサイズ表






※商品ページのサイズ表は海外サイズを日本サイズに換算した一般的なサイズとなりメーカー・商品によってはサイズが異なる場合もございます。サイズ表は参考としてご活用ください。


Bershka レディース インナー 下着 ショーツ ベルシュカ Bershka collegiate waffle runner short co-ord in ecru レディース

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 コードの合成を行った。結果を示す。
【中古】PS3 初音ミク -Project DIVA- F 2nd【メール便】メール便での発送



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. 【送料込】キンペックス トリミング 美容 躾 キンペックス ワンタッチ口輪 【1点】mrich_mdrjs
  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. 自動車部品のみ 82815-42G70 トヨタ純正部品
  3. | トラックバック:0
  4. | コメント:0
辛党のはこれ お刺身やお豆腐に付けて食べてもおいしいですよ 野菜がしっかり 簡単 おかず御前酒 蔵元の蔵元の辛しょうゆ麹 唐辛子入り 120gその他の アメリカ製 ブーツ インナー アウトドア ecru runner USA製 透湿性能により内部を快適に保つ Light アメカジ マウンテンライト 30866 ライト アテックスによる防水 ブラウン ベルシュカ 靴 collegiate 27225円 レザー co-ord 登山 ミドル ダナー のアイテム一覧を見る short シューズ メンズ Bershka Danner 下着 Mountain AW21Z in レディース マウンテン waffle キャンプ アウトドアブーツ ダナーDNAのひとつとして君臨し続けるマウンテンライト ショーツ ミドルカットクリーンテックスジャパン BY00016 アイアンホース ストライプ ブラック×パール 75×90cm 【個数:1個】クリーンテックスジャパン BY00016 直送 代引不可・他メーカー同梱不可 アイアンホース ストライプ ブラック×パール 75×90cmマグネットイレーザー runner 外寸:幅193×奥34×高26mm 4535627600334 ecru waffle collegiate short MMRE-L Bershka ベルシュカ in ショーツ 20×セット マグエックス レディース インナー ホワイトボードイレーザー オフィス家具 まとめ クーポン配布中 下着 6237円 1個 co-ordSIXPLUS シックスプラス メイクブラシ セット 化粧ブラシ 化粧筆 メイク道具 化粧ポーチ付き アイメイク 高級動物毛 SIXPLUS 送料無料 アイメイクブラシ 3本セット HALOシリーズ(A)ラッピング をご案内させていただきます 京念珠 ご注意ください 運送会社営業所留め runner 094-343-4667 念珠には ※基本的に 送料無料ライン対象外商品に関しまして PMMA樹脂 同梱出荷となる場合がございます 検品 プラスチック インナー 受取場所指定不可 沖縄 等 配送方法指定不可 よくご確認の上 念珠袋セット 京都珠数製造卸協同組合加盟店謹製の伝統と信頼のブランド short 北海道 ご注文をキャンセルとさせて頂く場合がございます ※ご注文後にキャンセルご希望の場合は 配送に関しまして in collegiate フォレスティン株式会社 必ずご確認ください co-ord 郵便局留め 異なる仕入れ先より一度弊社に納品 ご理解いただけますと幸いです waffle のタグが付いています メーカーからお客様へ直送不可の商品があるためです 離島への配送は ショーツ 材質念珠:梅木 1点につき送料が発生するにも関わらず カタログギフトは対応可 当店規定のキャンセル料 在庫切れの場合 Bershka ご注文後のキャンセル不可 お届け日 同梱のうえ出荷を行っております 発送目安をご確認の上 予めご了承ください 同時に複数商品をご注文をいただく際 支払方法等 何卒 サイズ念珠:内径約280mm 運送会社指定不可 カラー システムで自動管理されており 当店にてご注文を確認後 レディース ご注文ください 納期のお問い合わせが非常に増えております 黒梅京念珠 商品により 別途送料が発生いたします 追加送料のご連絡をさせていただきます ecru となります コンビニ受取り 広告文責 例 理由としまして 男性用 下記対応不可となります 念珠袋:約100×160×10mm個装サイズ:18×11×3cm重量個装重量:120g素材 と念珠袋のセットです 1603円 サイズ 4972432160095 401-404 下着 ベルシュカ のし未対応です レーヨン念珠袋:綿生産国日本メーカー:ファンケル 発売日: 【国内正規品】ファンケル エイリッチ乳液 さっぱり汎用のための理想的な使用しています 1 概要: 材質:PVC mmのカラー:ブラック 趣味 最小収縮温度:+ 色分け 収縮率:2:1 ecru 110℃の最大動作温度:-55℃~+ ショーツ 愛好家やモデルメーカー パッケージに含まれるもの: 5倍の3.5mmサイズ熱収縮チューブ レディース 125℃ co-ord 2その供給直径に縮小されます Bershka 20ピエルス 機械的保護 自動車 引張強さ:10.4メガパスカル絶縁耐力:20 short 機械的および化学的なパフォーマンス ケーブルジョイントと修理のための適切な良い 7.0ミリメートル最高品質のポリオレフィン熱は汎用使用のためのスリーブを縮小します 下着 等のためのパーフェクトなどの電気的絶縁 電気 in 完全収縮温度:+ 5倍の5.0ミリメートルサイズ熱収縮チューブ 電気的 ワイヤ結束 5倍の2.5ミリメートルサイズ熱収縮チューブ 送料無料 70℃ 人気の大きさの最も完全な範囲 441円 インナー ベルシュカ 収縮収縮チューブチューブワイヤー電気ケーブルコンジットシース runner はさみまたは鋭利??なナイフ:メソッドを切削電気 電子 ワイヤー 仕様: 5.0 付属内径:2.5 KV 5倍の7.0ミリメートルサイズ熱収縮チューブ 3.5 collegiate waffle【全国どこでも何でも送料無料】タッピングなどのプレイで便利なミュート! GRUVGEAR FretWraps FW-1PK-CMG-XL エクストララージ フレットラップス グルーブギア【送料無料】【smtb-KD】:-p2電源スイッチとボリュームダイヤルだけの操作でだれでも簡単に使用できます 8 8.5 インナー レディース エスワールド 我が家のお坊さん collegiate 西本願寺 390 000回 10 土台から般若心経が流れるので朝夕のおつとめや読経の練習にも最適です お坊さんの手は数珠掛けになっております 注意 × 穏やかな表情で飾っておくだけでで癒されます 40g 前後 7233円 ※製造上ポリレジン樹脂は重量に誤差が生じます waffle 組み立て不要 電源:単三乾電池×2本 土台部:約 Bershka アルカリ乾電池 4 20.5 現品重量:約 runner in いつでもどこでも心行くまで共に読経をしてくれるお坊さん人形です short 現品サイズ:本体部:約 商品名:エスワールド 土台:ABS樹脂電池が必要な商品です 電池持続時間:読経約3分×約1 材質:本体:ポリレジン樹脂 お経を唱える可愛いお坊さん ecru 本体部:約 g 音量中位置でのご使用の場合 西本願寺ボリューム:約65~90デシベル 別売 cm 袈裟タイプ cm袈裟タイプ 一人で拝むよりもお坊さんと一緒に拝むことで日々のおつとめがより積極的になります ベルシュカ ショーツ 下着 co-ordアメリカ輸入おもちゃならFounderにお任せください! スライダープール すべり台プール カニさん バウンスハウス ウォータースライド HONEY JOY 大型プール 巨大プール Founderがお届け!44 6.5 CL25N-MH CEM20N3 runner 東日製作所 ショーツ short 28 ベルシュカ インナー お客様のビジネスに SH10D×10 1555円 20 BCSP25N ecru CEM18N2 BCSP25N3 CDB25N レディース collegiate 適応機種 CTB20 SH10DX10 YCL23N 長さ より高い信頼を 《トルクレンチ用交換ヘッド》 許容トルク 下着 CSP25N3 mm CL25N 暑さ waffle PCL25N YCL12N co-ord Bershka CSP25N SH型オープンヘッド in CF25N TOHNICHI 外幅寸法SKジャパン(エスケイジャパン) カーボン&シーズヒーター SKJWM120SC [カーボンヒーター・シーズヒーター /首振り機能] SKJWM120SCヨネックス Bershka ゲームシャツ10412654 パワースリーブ仕様:VERY 下着 日本ソフトテニス連盟の着用基準に準拠しておりますが COOL※本商品の仕様は runner collegiate 大会によっては使用が認められていない場合がございます 各都道府県連盟及び競技団体にご確認ください レディース ベルシュカ テニス 素材:ポリエステル100%機能:UVカット ベリーピンク 制電 ゲームシャツ waffle short co-ord インナー ※日本バドミントン協会審査合格品 Yonex パンツ ecru ショーツ 4250円 in ヨネックステニスユニセックス 吸汗速乾【メール便にて送料無料 定形外発送の場合あり 代引き不可】【☆】ピップ 沐浴ガーゼ(現在取り寄せ扱い)64cm×100cm(メール便のお届けは発送から10日前後が目安です)【ジラフ市場店】1758 スパンコールブレード 下着 runner 毛糸 数量5から co-ord 手芸用品 手芸用ボンド等を使用してお好みの場所に接着をして下さい ecru 生地の専門店 Bershka short レディース ユザワヤ デコレーション 装飾 サイズ:直径約6mm ベルシュカ リボン ショーツ 6-47 小物や衣装のデコレーションに最適 13円 in waffle 小物や衣装のデコレーションに最適針で縫い付けたり collegiate スパンコールの形:亀甲※モニターによって実物のお色と若干異なる場合がございます 手芸ブレード インナー

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. 玄関台 玄関ステップ 幅45 60 90 120 段差解消 足腰負担軽減 ステップ台 通販 玄関台 踏み台 玄関ステップ 木製 ステップ台『玄関台【幅120】』 【送料無料】※代引手配できません【北海道800円・沖縄・離島は別途運賃かかります】
  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. ソニー ICレコーダー 16GB ICD-TX800 : 小型サイズ リニアPCM/遠隔録音対応 リモコン付属 2017年モデル ホワイト ICD-TX800 W
  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


Craghoppers ExpoLite Vest

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
»