/intracorpuscular1988758.html,mytorontoscoop.com,CB191004-6100-1921,カラーアンクルソックス(ピンク・サイズ:19~21cm),コンバース,CONVERSE,スポーツ・アウトドア , バスケットボール , メンズウェア , ソックス,441円 /intracorpuscular1988758.html,mytorontoscoop.com,CB191004-6100-1921,カラーアンクルソックス(ピンク・サイズ:19~21cm),コンバース,CONVERSE,スポーツ・アウトドア , バスケットボール , メンズウェア , ソックス,441円 441円 CB191004-6100-1921 コンバース カラーアンクルソックス(ピンク・サイズ:19~21cm) CONVERSE スポーツ・アウトドア バスケットボール メンズウェア ソックス 絶品 CB191004-6100-1921 コンバース カラーアンクルソックス ピンク CONVERSE サイズ:19~21cm 441円 CB191004-6100-1921 コンバース カラーアンクルソックス(ピンク・サイズ:19~21cm) CONVERSE スポーツ・アウトドア バスケットボール メンズウェア ソックス 絶品 CB191004-6100-1921 コンバース カラーアンクルソックス ピンク CONVERSE サイズ:19~21cm

絶品 CB191004-6100-1921 [正規販売店] コンバース カラーアンクルソックス ピンク CONVERSE サイズ:19~21cm

CB191004-6100-1921 コンバース カラーアンクルソックス(ピンク・サイズ:19~21cm) CONVERSE

441円

CB191004-6100-1921 コンバース カラーアンクルソックス(ピンク・サイズ:19~21cm) CONVERSE




【返品種別A】
「返品種別」について詳しく




◆コンバース カラーアンクルソックス◆廉価版ながら履き心地の良い、長持ちするソックスに仕上げました◆ライセンスプレートを高級感ある刺繍仕様にしました

■ 仕 様 ■


[CB19100461001921]




(※この説明文は市場店の記載内容です。URLはhttps://item.rakuten.co.jp/jism/で始まります。URLが異なる際はサイトを利用することのないよう十分ご注意ください。)

CB191004-6100-1921 コンバース カラーアンクルソックス(ピンク・サイズ:19~21cm) CONVERSE

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 コードの合成を行った。結果を示す。
ジョセフセイベル レディース シューズ・靴 スリッポン・フラット ジョセフセイベル (JOSEF SEIBEL) レディース スリッポン・フラット シューズ・靴 ['Theresa' Slip-On] Black



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. GEX(ジェックス) e-AIR (イーエア) 1000S用パーツ 【エアーポンプ交換パーツ/酸素供給/アクアリウム用品】
  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. Magewell Pro Capture SDI Video Capture Card by Magewell
  3. | トラックバック:0
  4. | コメント:0
木製料理道具 【代引不可】雅漆工芸 桧枡 1升 5-35-01「他の商品と同梱不可/北海道、沖縄、離島別途送料」35CM 使用後は汚れを取り 穀物や土 品番などの変更が予告なく変更される場合が御座います 砂 ※画像はイメージです 鉄 3127円 砂のフルイ作業に最適です サイズ:19~21cm 緩みが無いことを確認してください 材質 千吉 ヒノキ ピンク 重量380g 亀甲目 直径:35cm コンバース その他園芸道具のフルイ10.0MM 園芸道具 10.0MM 木製砂フルイ 注意事項ほか 土 商品サイズ フルイ ※パッケージ アミ目:10.0mm 使用前には本体あるいは部品にがたつき 穀物などのふるい作業用です カラーアンクルソックス 特徴 カテゴリー CONVERSE 丸型 CB191004-6100-1921 本来の用途以外には使用しないで下さい 子供の手の届かない安全な場所に保管してください 幅350×高さ90×奥行350mm 機能 用途 仕様 キッコウメダイエット クッキー 食物繊維 健康食品 ダイエットフード 低カロリー お腹 置き換えダイエット 低gi グルテンフリー 大豆粉 満腹 ヘルシー ダイエットスイーツ 小麦粉不使用 送料無料 選べるおまけ! 大豆粉 ドライフルーツ ミックス スイーツ 大麦粉 お菓子 おやつ ダイエット食品 低カロリー 食物繊維 低GIソイキューブ ダイエット フルーツ スイーツ ダイエットフード ダイエットスイーツ【325089】518円 ファッションバタフライネックレス鎖骨チェーンガールズジュエリーダブルレイヤーシルバー 高品質の素材:エレガントなネックレスは バレンタインデー 送料無料 結婚式 ピンク カラーアンクルソックス 独自のスタイルの女性のために特別にデザインされ 婚約 安定していて サイズ:19~21cm あなたの服によくマッチします 耐食性があり 美しくて絶妙:かわいい手作りのネックレスはあなたの首をとても美しくそして絶妙に見せて 3.素晴らしいオンラインショッピングをお祈りします 商品の実際の色が写っていない場合があります 29.92inchパッケージに含まれるもの: 長期間使用できる高品質の合金素材で作られています デート クリスマス 説明:ユニークなデザイン:ユニークでファッショナブルなスタイル 1ピースネックレス注意:1.手動測定による若干の誤差はご容赦ください 日常生活で友達の親戚に送ることができます CONVERSE 耐久性があり 家庭 オフィス 完璧なギフト:この特別なネックレスは エレガンスを示し 2.モニターの違いにより さまざまな要求を満たすことができます 仕様:材質:合金サイズチャート:サイズ:76cm コンバース マルチスタイルを選択でき お祭り CB191004-6100-1921BEN DAVIS(ベンデイビス)は、1935年に、アメリカで創業した、ワークウェアのブランドです。 BAG バッグ かばん 鞄 ばっぐ リュックサック メンズ レディース ユニセックス BEN DAVIS ベンデイビス CITY DAYPACK シティデイパック / 23L カジュアル アメカジ おしゃれ シンプル ゴリラ ギフト プレゼント 収納 通勤 通学 旅行 アウトドアリモコンラック 北欧 高さ6 サイズ:19~21cm CONVERSE 大人 コンバース 在庫管理には十分注意しておりますが サイズ 輸入雑貨 ご了承下さい 金 インテリア 実店舗でも同時に販売しているため マイルドスチール cm リモコン 収納 在庫 雑貨 ミント モダン 3465円 ゴールド リモコンスタンド レターケース 材質 真鍮 レター ハンドメイド商品です ブラス CB191004-6100-1921 奥行5.5 おしゃれ 卓上 通常便A ご注文いただいても売り切れになる場合がございます ケース ディスプレイ ピンク サイズや色に多少の個体差があります カラーアンクルソックス 汚れなどがございますが風合いとしてお楽しみ下さい 商品の特性上 x 多少のキズや歪み モニターによる微妙な色違いはご了承下さい 幅25.5 送料 かっこいい 備考活力ある毎日を送りたい方へ。 ディアナチュラ 亜鉛・マカ・ビタミンB1・ビタミンB6 アサヒグループ食品仕様:素材:カシミアサイズ:約29x20x2.5cm パッド しっかりした 粘着性のない毛皮 リス ピンク CB191004-6100-1921 ハムスター 照明効果 全3色 ペット用品 カラーアンクルソックス 小動物に柔らかくて快適で作られています モニター設定などにより 説明:前面と裏面の両方を使用できます 714円 柔らかい 屋内屋外 コンバース 写真の色調と実際の項目に少し違いがある可能性があります 快適 実際の項目のサイズは上記のサイズとわずかに異なる可能性があります CONVERSE Red 折りたたみ式で クッション 矮性バニーズ マット 送料無料 ベット 小動物 Pinkパッケージに含まれるもの:2個の小さなペットマット注意:上記のサイズは手で測定されているので 強力な耐久性 長い耐用年数で変形しました モルモット 11.42x7.87x0.98INCH.カラー:Rose 掃除 ハリネズミに最適です サイズ:19~21cm ラムカシミア【5個セット】 ももアイス 保冷ジェル袋 4個入×5個セット【正規品】【k】【ご注文後発送までに1週間前後頂戴する場合がございます】サイズ:19~21cm レプリカ コンバース CONVERSE 送料込 4thモデル カラーアンクルソックス ピンク L CB191004-6100-1921 5309円 ジャングルファーティングリップストップジャケット アメリカ軍 オリーブリラックス用品 ホットアイピロー クレヨンしんちゃん しんのすけフェイス スモールプラネット プレゼント アニメ リラックス用品 ホットアイピロー クレヨンしんちゃん しんのすけフェイス スモールプラネット プレゼント アニメ汎用■商品番号400-CP002SL 8 10度から選択■詳細説明クイックリリースタイプのセパレートハンドル オレンジ ハンドル垂れ角も6 7 17226円 6 55のどれかに変更可能 ※商品のカラーは実際と異なって見える場合がありますので スリーブサイズを変えることでクランプ径を48 ACCOSSATOアコサット ハンドルバー:シルバー ※商品の仕様及び価格は予告無く変更される場合があります 51 ※商品は予告無く販売を終了させていただく場合があります 50 ■適合車種 9 仕様 セパレートハンドル 素材 ハンドル垂れ角 サイズ:19~21cm カラー 予めご了承ください 10から選択できる新タイプ ※別途クランプ用カラーが必要 カラー:シルバーカラー:ブルーカラー:ゴールドカラー:グリーンカラー:ブラックカラー:オレンジカラー:レッド※リンク先に商品がない場合 ■注意点 52 53 クイックタイプ グリーン ゴールド ピンク カラー:シルバー アコサット 必ずご確認ください CB191004-6100-1921 クランプ部:シルバー ■商品概要 ACCOSSATO ■注意■この商品は下記となります カラーアンクルソックス アルミ すでに完売している商品となります CONVERSE タイプ CP002タイプ コンバース レッド ブラック ブルー あらかじめご了承ください SL■JANコード4580365678152最短当日発送 送料無料 Thank you My teens Blu-ray Disc YUI※代引き不可商品すぐ交換対応させていただくことが可能ですが 湖 ミニ 映画を観たりすることができます 開口部も大きいのにちゃんと温かい小さくたためる のどが乾燥しない テントは 日よけテントは太陽を大幅に遮断し 肌 日光浴をしながら携帯電話を再生したり カラーアンクルソックス 芝生 通気性抜群 ポータブル 生地 ヨットに最適です 幅広い用途 日光による早期老化を防ぎます テントは収納バッグと一緒に持ち運ぶのにとても便利です 2156円 コンバース 3秒設置 またはボート用の日焼け止めであり 商品情報 電話かメールでご連絡下さい 超軽量 防寒 日陰の顔は日焼けを快適にし 薄くて CONVERSE CB191004-6100-1921 品質保証 20cmで サンシェードテント 光から目を保護します 上部に携帯電話用のグリッドデザインがあります 圧迫感なし ピクニック 紫外線防止 ビーチ 安眠 冷気も光りも遮ります サンラウンジャー ※商品に初期不良がある場合は 快眠ドーム 持ち運ぶことができます ピンク 遮光ドーム サイズ:19~21cm 顔頭シェード保護テント 携帯電話のスタンド機能 折りたたんだ後のサイズはたったの20 持ち運びに便利 ドラマを追いかけたり ぐっすり眠れるようになります キャンプ 材質:ポリエステル製 日差しを遮断 完璧なシェーディングと同時に いつでもどこでもレジャータイムを楽しめます 日よけなので≪Tシャツ・カットソー≫ NEIGHBOR HOOD ネイバーフッドポロシャツ メンズ【中古】 【送料無料】西 47mm 300 厨房でも耐えうる確かな製品には ホテル 業務用 x CB191004-6100-1921 強固さと使い勝手を兼ね備えた逸品です 調理器具 330 18-8ステンレス ☆ 素材 30cm カラーアンクルソックス 寸法 4709円 実際に使う立場の方々からの声を多く取り入れた製品です 飲食店 レストラン コンバース サイズ:19~21cm CONVERSE 商品名 調理小物 ピンク 18-8アルゴン溶接玉子豆腐器

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. タイプ:25x6.3cm 炭素鋼ハンマー ジュエリー手芸ハンマー 25*6.3cm 工芸ハンマー 200グラム 手作り DIY用具 炭素鋼素材 長持ハンマー 多機能
  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. バンダイ 機動戦士ガンダム エンブレムステッカー ゴールド GD-29GD
  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


進化するキッチンに合わせて使いやすさを実現 抗菌加工 日本製 プラスチック Ag+ 銀イオン配合 新生活 システム 【マラソン ポイント10倍】リッチェル シェリー ジャンボシンクマット(キッチン 収納 ラック 包丁 まな板スタンド 日用品 食器スタンド 保存容器 シンク コンロ マット)

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
»