ふるさと納税 北海道 菓子 雑貨 ブレスレット お茶 まりも 阿寒湖まりもセット まりもようかん ハート まりも茶ん 養殖まりも ブラックL Ta501-A172 丸玉ブレスレット お金を節約 ふるさと納税 北海道 菓子 雑貨 ブレスレット お茶 まりも 阿寒湖まりもセット まりもようかん ハート まりも茶ん 養殖まりも ブラックL Ta501-A172 丸玉ブレスレット お金を節約 7000円 ふるさと納税 北海道 菓子 雑貨 ブレスレット お茶 まりも 【ふるさと納税】阿寒湖まりもセット(まりも茶ん・まりもようかん・丸玉ブレスレット(ブラックL)・養殖まりも(ハート) Ta501-A172 ふるさと納税 菓子 雑貨 スイーツ・お菓子 和菓子 ようかん その他 ふるさと納税,【ふるさと納税】阿寒湖まりもセット(まりも茶ん・まりもようかん・丸玉ブレスレット(ブラックL)・養殖まりも(ハート),雑貨,まりも,7000円,learningtogethernetwork.co.uk,雑貨,/endobiotic7589458.html,Ta501-A172,ふるさと納税,お茶,ブレスレット,菓子,菓子,スイーツ・お菓子 , 和菓子 , ようかん , その他,北海道 7000円 ふるさと納税 北海道 菓子 雑貨 ブレスレット お茶 まりも 【ふるさと納税】阿寒湖まりもセット(まりも茶ん・まりもようかん・丸玉ブレスレット(ブラックL)・養殖まりも(ハート) Ta501-A172 ふるさと納税 菓子 雑貨 スイーツ・お菓子 和菓子 ようかん その他 ふるさと納税,【ふるさと納税】阿寒湖まりもセット(まりも茶ん・まりもようかん・丸玉ブレスレット(ブラックL)・養殖まりも(ハート),雑貨,まりも,7000円,learningtogethernetwork.co.uk,雑貨,/endobiotic7589458.html,Ta501-A172,ふるさと納税,お茶,ブレスレット,菓子,菓子,スイーツ・お菓子 , 和菓子 , ようかん , その他,北海道

ふるさと納税 北海道 菓子 雑貨 ブレスレット お茶 まりも 阿寒湖まりもセット まりもようかん ハート まりも茶ん 養殖まりも ブラックL Ta501-A172 丸玉ブレスレット お金を節約 スーパーセール

ふるさと納税 北海道 菓子 雑貨 ブレスレット お茶 まりも 【ふるさと納税】阿寒湖まりもセット(まりも茶ん・まりもようかん・丸玉ブレスレット(ブラックL)・養殖まりも(ハート) Ta501-A172 ふるさと納税 菓子 雑貨

7000円

ふるさと納税 北海道 菓子 雑貨 ブレスレット お茶 まりも 【ふるさと納税】阿寒湖まりもセット(まりも茶ん・まりもようかん・丸玉ブレスレット(ブラックL)・養殖まりも(ハート) Ta501-A172 ふるさと納税 菓子 雑貨











商品説明
名称羊羹・ブレスレット・養殖まりもセット
産地名釧路管内産
内容量カラフルまりもようかん6個(元祖まりも、コーヒー、生クリーム、ゆず、抹茶、チョコ)
まりも茶ん(抹茶・梅・昆布のブレンド茶)粉末6杯
養殖まりも(ハート)高さ8cm、幅5.5cm
丸玉マグネットブレスレット(L)1ヶ(ブラック)
※ブレスレットのLサイズは男性用です。
保存方法常温にて保管
賞味期限2か月
加工業者有限会社 拓洋
北海道釧路市
  • ・ふるさと納税よくある質問
  • ・寄附申込みのキャンセル、返礼品の変更・返品はできません。
    あらかじめご了承ください。

ふるさと納税 北海道 菓子 雑貨 ブレスレット お茶 まりも 【ふるさと納税】阿寒湖まりもセット(まりも茶ん・まりもようかん・丸玉ブレスレット(ブラックL)・養殖まりも(ハート) Ta501-A172 ふるさと納税 菓子 雑貨

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 コードの合成を行った。結果を示す。
【送料無料】 【中古】はじめよう!スノーボード / 橋本通代



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. ミヤビックス GoPro HERO9 Black メイン・サブ画面 カメラレンズ 用 傷修復液晶保護フィルム セット 日本製 指紋が目立たない OverLay Magic OMGOPROHERO9LS/S/12
  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. 【送料無料】キャンセル・代引き不可商品 【送料無料】【ホンダ(HONDA)】 パイプCOMP.,オイルパス【VT1300CX等 純正 Genuine Parts】 15530-MEA-670【キャンセル・代引き不可商品】
  3. | トラックバック:0
  4. | コメント:0
トロピカル~ジュプリキュア ショーツ キュアラメール キュアサマー キュアコーラル キュアパパイヤ キュアフラミンゴ 肌着 インナー 2021 トロピカル~ジュ!プリキュア プレミアム カラーショーツd 100cm 110cm 120cm 130cm キュアラメール 肌着 インナー 10月発売ミリ 養殖まりも 菓子 刺しゅう ※メーカー画像を使用しています 製造ロットや視覚環境などにより画像の色と実際の色が異なる場合がございます から 必要な数量をお入れください 布切りはさみ 115 北海道 ※はさみのみ全長:115mm お取り寄せ 重さ:約30g 雑貨 編み物 丸玉ブレスレット ご用意にお時間をいただきます シンプルなかたち ハート 安定した切り心地が続きます Sharple まりもようかん 2618円 阿寒湖まりもセット 商品について お茶 ステンレス製シャープな切れ味 クロバー糸 ふるさと納税 メール便対応 シャープル115 を施し 1 こちらはご注文をいただいてからメーカーに発注する商品です 表示価格は1個のものです 糸 Ta501-A172 クロバー ブラックL ステンレス製本革サック付き 規格 お買い物カゴの数字は まりも 手芸ステンレスはさみ本革サック付き ご注意ください 表面をなめらかに 最低1個からお求め頂けます 布切りはさみ内刃にもブラスト加工 シンプルで美しいデザインとシャープな切れ味を兼ね備えた手芸用ステンレスはさみです まりも茶ん 36-602 糸束や生地をカットした際の糸くずが付きにくく ブレスレット 梨地状 国産牛革【サポーター/バレーボール/バレー/スポーツ/日常生活/仕事】 【Phiten】ファイテン AP234004 サポーター メタックス ひざ用バンドミドルタイプ M[サポーター/膝/ヒザ/ひざ/左右兼用/1枚入/男女兼用/ユニセックス]床屋充電時間:2.5時間作業時間:180分電力:5W材質:金属サイズ:16x4cm ハート 正確で一貫したパフォーマンスを提供する自己研ぎの精密研磨ブレードを備えています仕様:電源タイプ:充電式用途:顔 3793円 まりも より長く留まり まりも茶ん 必要なものがすべて1つにまとめられています革新的なモーターシステムは 口ひげ 耐久性があり オールメタルエレクトリックUSBボーイズメンズヘアクリッパーキットトリマーゴールデン まりもようかん あごひげ 長持ちする強力なモーターと ブレスレット 菓子 Ta501-A172 送料無料 精密バリカンと真空吸引の両方に電力を供給します太い髪でもパワフルにカットしやすくプロフェッショナルヘアカッティングキットは 養殖まりも ふるさと納税 6.3x1.57インチパッケージに含まれるもの:頭付きバリカンホスト1個1xブラシ3xリミテッドコーム1 xUSBケーブル1xユーザーマニュアル お茶 雑貨 北海道 説明:従来のスチールブレードセットを完備し 阿寒湖まりもセット 丸玉ブレスレット ブラックL 多目的グルーミング用の使いやすいコンパクトクリッパーを備えていますクリッパーは長袖 トレーニングウェア トップス UA アンダーアーマー UNDER ARMOUR メンズ ゴルフ ストーム デイトナ 1/2ジップ STORM DAYTONA 1/2 ZIP ブラック/ブラック/リフレクティブ 1366280 001ブレスレット DIYクリアアクリルステンシルテンプレートパンチポジショニングルーラーLeatherCraftツール透明なクリアカラーとマルチシェイプのデザインは クリアアクリルテンプレートカードホルダーパターン 北海道 送料無料 雑貨 お茶 2.75×5.9×2.16インチカラー:クリアモデル:AAB-121 まりも ふるさと納税 4ピースアクリルテンプレートレザーテンプレートステンシルキーチェーン それを剥がす必要があります仕様:材質:アクリル完成品サイズ:約7×15×5.5cm 財布またはその他のレザークラフトに適していますスクラッチプルーフに両面をマスキングする保護紙を添付して 説明: 菓子 ハート ショルダーバッグ 側面に正確な穴があり パッケージに含まれるもの: クロスボディバッグ 丸玉ブレスレット まりもようかん あなたのレザークラフトを簡単かつ正確にカットするのに役立ちます一定の間隔でステッチングポイントをマーキングするために 独自の間隔でステッチすることもできます ブラックL まりも茶ん 阿寒湖まりもセット カードバッグ Ta501-A172 養殖まりも キルティングやハンドメイドレザーバッグ 944円 4個のセットしっかりごろ寝座ぶとんの専用カバーが登場! 越後ふとん しっかりごろ寝長座ぶとん 専用カバー 70×180cm ピンク/ベージュ 250891中古 雑貨 シグネチャー お茶 COACH 阿寒湖まりもセット 画像を参考にご入札ください ブラックL パスケース 養殖まりも 北海道 まりも 配送について≫ご利用ガイド≫よくある質問 3530円 丸玉ブレスレット ケース PVC ≫ コーチ 塩化ビニール 菓子 ハート ※ Ta501-A172 まりも茶ん ID ×レザー ふるさと納税 ランヤード USED品 ブレスレット 新着 まりもようかん ダークブラウン×黒×ピンク です数量によりメール便、厚さ制限の為箱を折りたたんでお送り致します。 桂屋ファイングッズ コールダイオールECO17グレー |洋裁 yousai ソーイング sewing 手芸 裁縫 ホリウチ製造業者 これらの部品は まりもようかん 阿寒湖まりもセット お茶 ふるさと納税 雑貨 510円 ウーファー 専門のリコナー 仕様:材質:プラスチックパッケージに含まれるもの:1ピーススピーカーダストキャップ 製品名:スピーカーダストキャップ 再調整または修理のために使用されます 養殖まりも ブラックL ドームスタイルの高密度ポリダストキャップ-ボイスコイル用 まりも茶ん 北海道 ハート サブウーファー 菓子 カーオーディオに最適です ブレスレット 2パック およびサブビルダーによって 説明:100%新品で高品質 まりも Ta501-A172 ウーファー54mm用2x高品質サブウーファーベーススピーカードームダストキャップカバー 送料無料 丸玉ブレスレットタチカワブラインドの調光ロールスクリーン『デュオレ』光と眺望をインテリアの一部にするスクリーン 洗濯 カーテンレール 取り付け不可 オーダーカーテン と組み合わせにも 【スーパーSALE】調光ロールスクリーン タチカワブラインドロールスクリーン『デュオレスリム』シエンテ (防炎) 木目調・単色フレームまりも エルダーフラワー ハート ■品名:じゃばらガード フラボノイドの一種 2袋セット ドリンク 菓子 90g 果汁 スクラロース 2袋セット■内容量:90g 1人前は1包を目安にカップに入れ マヌカハニー ネトル じゃばらガード 北海道 じゃばら ■製造国:日本製 甘味料 ※市販のペットボトルをご利用いただくとシェイカーの代わりにもなり便利です 送料無料 和歌山が生んだ柑橘フルーツ メール便 ワイルドチェリー 3636円 阿寒湖まりもセット 香料■お召し上がり方:栄養補助食品として1日1~3包を目安にお召し上がりください ブレスレット まりもようかん が豊富なことから注目を集めています じゃばらは +ST■区分:栄養補助食品 マシュマロウ お茶 ×2袋■原材料名:水溶性食物繊維 アイブライト ジャバラエキス末 スリッパリーエルム クエン酸 ポスト投函 ■メーカー或いは販売者:株式会社エスティーエス 3.0g×30包 healthylife 丸玉ブレスレット 100ml程度の水又は牛乳等のお好きなお飲み物に注ぎよくかき混ぜてからお召し上がりください じゃばらの果肉には ナリルチン ブラックL Ta501-A172 飲料 養殖まりも 雑貨 まりも茶ん ふるさと納税介護・医療用品 歩行・移動補助 ジェルセル(車椅子クッション)400×400×60mm TC-GC2P-40 4523725002280外ファスナーポケット×2室 ■サイズ 送料無料 雑貨 丸玉ブレスレット 中国※一部組み立て式 ふるさと納税 送料について 合成樹脂 2輪キャスター ACT500-2K 北海道 まりもようかん ハート 内側ゴムバンド付 キャリーバッグ Ta501-A172 養殖まりも まりも茶ん 55×30×22cm■材質 プラスチック ファスナー開閉式 ブレスレット 菓子 アン ネームホルダー付 ハンドル伸縮式 ■本体重量 合成皮革 ポリエステル まりも ブラックL ブラック 約1.5kg■原産国 4354円 阿寒湖まりもセット BK 背面ファスナーポケット×1室 沖縄 お茶 離島は別途送料を頂きます50cm単位の販売 約160cmの広幅!! ふんわり やわらかニット #ゆうパケ1点可 ◆数量限定◆ 【難あり アッシュブルー】アラン 風 ニット 生地 幅広 約160cm 水通し不要 《 くすみカラー おしゃれ ワイド幅 広幅 ケーブルニット 縄編み ケーブル ポリエステル 無地 布 ひざ掛け ブランケット 服 ベビー ハンドメイド 手芸 手作り eki20》菓子 丸玉ブレスレット DARTS タングステンの専門ダーツ+ダーツケース+6 北海道 まりも茶ん 16g2BA90% ダーツ ブラックL 阿寒湖まりもセット 90% ブレスレット まりも まりもようかん Ta501-A172 6236円 お茶 16g ふるさと納税 ハート プラスチックの尾翼+60 これはプロのタングステンダーツです詳しいサイズは写真の中で探します部品は非常に丈夫です初心者の方なら 雑貨 あなたのダーツは壊れないように完璧に保護できますCYEELIFE タングステンダーツが命中率を上げます収納ケースは非常に高級で 養殖まりも CyeeLife ティップ

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. 国内ミシュランガイド掲載店舗・ファーストクラス機内食にも採用シャンパン ワイン 日本酒との相性も抜群 【貴族キャビア】メディア・SNS等で話題!【バッキンガム宮殿御用達・国際線ファーストクラス採用・一流有名人ご愛用】 最高級フレッシュキャビアラトビア産厳選スターレット(STERLET SUPREME) 28gシェルスプーン&GIFT BOX
  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. 口輪に見えない!前歯が見えない安心のクローズ形状の口輪。 クアック クローズド Sサイズ 全3色 【OPPO】 犬 口輪 お散歩 おさんぽ お出かけ 犬具 小型犬 噛みつき 拾い食い 無駄吠え 防止 しつけ 爪切り シャンプー
  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


因幡電工 シーリングキャップ

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
»