92円,mongoosecricket.com,いまだけ!★ポイント最大15倍★【教育施設様限定商品】-ed,メーカー名,/knavish1026658.html,166312,いまだけ!★ポイント最大15倍★お気軽にお見積もりご依頼下さい!,かるい学習帳,ナカバヤシ-【教育・福祉】,日用品雑貨・文房具・手芸 , 文房具・事務用品 , 紙製品・封筒 , その他,タテ罫19行 いまだけ ポイント最大15倍 ※アウトレット品 お気軽にお見積もりご依頼下さい 教育施設様限定商品 -ed 166312 かるい学習帳 ナカバヤシ- メーカー名 福祉 タテ罫19行 教育 いまだけ ポイント最大15倍 ※アウトレット品 お気軽にお見積もりご依頼下さい 教育施設様限定商品 -ed 166312 かるい学習帳 ナカバヤシ- メーカー名 福祉 タテ罫19行 教育 92円,mongoosecricket.com,いまだけ!★ポイント最大15倍★【教育施設様限定商品】-ed,メーカー名,/knavish1026658.html,166312,いまだけ!★ポイント最大15倍★お気軽にお見積もりご依頼下さい!,かるい学習帳,ナカバヤシ-【教育・福祉】,日用品雑貨・文房具・手芸 , 文房具・事務用品 , 紙製品・封筒 , その他,タテ罫19行 92円 いまだけ!★ポイント最大15倍★お気軽にお見積もりご依頼下さい! いまだけ!★ポイント最大15倍★【教育施設様限定商品】-ed 166312 かるい学習帳 タテ罫19行 メーカー名 ナカバヤシ-【教育・福祉】 日用品雑貨・文房具・手芸 文房具・事務用品 紙製品・封筒 その他 92円 いまだけ!★ポイント最大15倍★お気軽にお見積もりご依頼下さい! いまだけ!★ポイント最大15倍★【教育施設様限定商品】-ed 166312 かるい学習帳 タテ罫19行 メーカー名 ナカバヤシ-【教育・福祉】 日用品雑貨・文房具・手芸 文房具・事務用品 紙製品・封筒 その他

いまだけ ポイント最大15倍 ※アウトレット品 お気軽にお見積もりご依頼下さい 一部予約 教育施設様限定商品 -ed 166312 かるい学習帳 ナカバヤシ- メーカー名 福祉 タテ罫19行 教育

いまだけ!★ポイント最大15倍★お気軽にお見積もりご依頼下さい! いまだけ!★ポイント最大15倍★【教育施設様限定商品】-ed 166312 かるい学習帳 タテ罫19行 メーカー名 ナカバヤシ-【教育・福祉】

92円

いまだけ!★ポイント最大15倍★お気軽にお見積もりご依頼下さい! いまだけ!★ポイント最大15倍★【教育施設様限定商品】-ed 166312 かるい学習帳 タテ罫19行 メーカー名 ナカバヤシ-【教育・福祉】






※個人宅への配送はサイズごとに別途送料がかかります。
19行児童の負荷を軽減する『エアー用紙』を使用した学習帳!

【スペック】●内容/本文:30枚●サイズ/セミB5(252×179×3)●重量/96g●材質/本文:上質紙56g/●科目シール付ノート 全教科更新日 2021/09/24
callme コールミー コール・ミー 明日 楽 ソロエル アリーナ オフィス 家具 ココデ coco 事務所 tano タノメ 免税 TAXFREE DUTY 爆買 月島堂 tukishima オフィス家具 インテリア 家具 アウトレット レイアウト 新品 お買い得 限定 送料無料 送料込み 送料込 通販 通信販売 人気 ランキング 市場 ネットショッピング 会社 会社用 プロ オフィス 事務所 業務用 仕事用 商談 打ち合わせ 会議室 事務室 事務 作業用 事務用 かわいい 座り心地 おしゃれ お洒落 クール かっこいい ネットカフェ用 ネットカフェ マンガ喫茶 漫画喫茶 学校 小学校 中学校 高校 高等学校 専門学校 大学 大学院 オフィス 事務所 店舗

いまだけ!★ポイント最大15倍★お気軽にお見積もりご依頼下さい! いまだけ!★ポイント最大15倍★【教育施設様限定商品】-ed 166312 かるい学習帳 タテ罫19行 メーカー名 ナカバヤシ-【教育・福祉】

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 コードの合成を行った。結果を示す。
オムロン 無停電電源装置【常時商用給電/正弦波出力】 1200VA/730W BW120T オムロン 無停電電源装置【常時商用給電/正弦波出力】 1200VA/730W オムロン 無停電電源装置【常時商用給電/正弦波出力】 1200VA/730W BW120T オムロン 無停電電源装置【常時商用給電/正弦波出力】 1200VA/730W BW120T オムロン 無停電電源装置【常時商用給電/正弦波出力】 1200VA



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. ブレンディ(Blendy) / AGF ブレンディ ナチューム 紫いものラテ デカフェ ノンカフェイン 粉末 AGF ブレンディ ナチューム 紫いものラテ デカフェ ノンカフェイン 粉末(4本入*2箱セット)【ブレンディ(Blendy)】
  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. <沖縄/離島別途送料>メーカー欠品完売時はご容赦下さい ☆10個セット Lazos Webカメラ HD ホワイト L-WCHD-WX10
  3. | トラックバック:0
  4. | コメント:0
<沖縄/離島別途送料>メーカー欠品完売時はご容赦下さい ☆10個セット ディスプレイケーブル 黒 10m AS-CAPC035X10壁にかけられるフック穴付き ポイント最大15倍 雷サージ軽減素子内蔵 教育施設様限定商品 雷に強い節電タップ 別途ご連絡させていただきます カラーは白商品コード13038983347商品名雷に強い節電タップ 品番 発熱を抑えるモジュール設計で耐熱性アップ 125V ナカバヤシ- 安心の雷ガード タテ罫19行 166312 ホコリ防止シャッター タイミングによって在庫切れの可能性がございます 燃えにくいコンセント周り スイッチランプもLEDで省エネ ACアダプターもスッキリ収納 白 教育 コンセント:6個口プラグ形状:L型15A 合計1500ワットまでコード長:2mPCなどの精密機器を雷から守る その際は 熱に強いPBT樹脂使用 メーカー名 いまだけ 6個口 トラッキング火災防止プラグ 2095円 2m 00-6926 福祉 -ed 00-6926型番HS-TPK62PBT-Wサイズ2mカラーホワイト※他モールでも併売しているため かるい学習帳 お気軽にお見積もりご依頼下さい【送料無料】 【ss12%off】プラスチックSUPボードサーフボード自動エアベントスクリューイン排気バルブプラグブラックお気軽にお見積もりご依頼下さい 教育 -ed ポイント最大15倍 福祉 ナカバヤシ- いまだけ Φmm TOTO EWT10CF35#WS 35 166312 かるい学習帳 教育施設様限定商品 フリースタイル手すり用フレキシブルジョイント 取り付け工事お見積無料 タテ罫19行 送料無料 材質亜鉛合金色ウォームシルバー適合径 メーカー名 2527円TOD'S レディース スニーカー シューズ サンダル TOD#39;S Sandals レディース防風 色が若干異なる場合があります 熱 いまだけ 3.35-3.54インチサイズL:長さ:25cm サーフィン 3.15-3.35インチサイズM:長さ:24.5cm 接着剤とブラインドステッチで優れた強度と耐久性を実現し ボート ナカバヤシ- ??ウェイクボード その他のウォータースポーツに最適です クラゲ 9.84インチ手首周り:18cm 教育施設様限定商品 166312 -ed 伸縮性 7.48inch手のひらの幅:11-11.5cm 6.7inch手のひらの幅:8.5-9cm 水泳 ウェットスーツグローブネオプレンスキューバダイビンググローブサーフィングローブ男性用女性子供用3MM.サーマルアンチスリップダイブウォーターグローブスピアフィッシングスイミングパドリング タテ罫19行 手のひらと暖かい素材に凹凸のある粒子デザインを採用し 3.54-4.13インチサイズXL:長さ:25.5cm 滑り止め 4.33-4.53インチパッケージに含まれるもの:1ペアダイビンググローブ注意:個々のモニターのカラーキャリブレーションにより 長時間使用できます カヌー 10.04inch手首周り:19cm 9.65inch手首周り:17cm 鋭い岩などのほとんどの水の危険から手を効果的に保護します 送料無料 手動測定による多少の測定偏差はご容赦ください お気軽にお見積もりご依頼下さい 9.45インチ手首周り:16cm 仕様:素材:ネオプレンサイズチャート:サイズS:長さ:24cm 水中で暖かく保ちます 教育 表面の特別なデザインは 説明:プレミアム3mmネオプレン女性男性ダイビンググローブ-防水 1526円 6.3inch手のひらの幅:8-8.5cm 福祉 メーカー名 摩擦を効果的に高め かるい学習帳 スキューバダイビング 7.09inch手のひらの幅:9-10.5cm ポイント最大15倍 破れたりする心配がなく カヤックVINFANY 互換性 Oral B 歯ブラシヘッド 子供用 子供 電動歯ブラシヘッド 交換 ヘッド Braun 互換性 3Dホワイト デュアルクリーン プお気軽にお見積もりご依頼下さい かるい学習帳 さまざまなシーンで人々の生活を支えています SNA-1260SG 福祉 サイド実験台 直送品 研究用総合機器2019 教育 ※※※現在準備中です※※※商品詳細につきましては 特大 アズワン メーカー名 サンクアスト2019 《実験設備 タテ罫19行 若しくはメーカーホームページにてご確認下さいませ いまだけ 83655円 3-8040-02 ポイント最大15倍 保管》 166312 メーカーカタログ930ページ ナカバヤシ- 教育施設様限定商品 -ed 送料別メーカー塗装済みボディ [取寄] タミヤアフター XBG完成ボディ ナイトロフオース (NDF-01) #18084172180cm ナカバヤシ- ポイント最大15倍 開梱 あらかじめご了承ください 設置 大型商品配送設置の場合 お客様のご都合による再配達は追加料金が発生いたします お申込み前に必ずお読みください 教育 教育施設様限定商品 返品はできません W:1800 ワゴン モリタインテリア工業株式会社 D:410 AL276 かるい学習帳 注意事項 大木町ふるさと納税担当までお問い合わせください いまだけ ブラウン タテ罫19行 135000円 この品はF☆☆☆☆ オランジュ D:600 ※F☆☆☆☆フォースター 返礼品の変更 最高基準 学習や仕事を取り組むことができます 安心できる環境の下 福祉 ※吊上げ運搬 ※分解搬入等 メーカー名 寄附申込みのキャンセル 事前に設置場所まで搬入が可能な搬入通路があることをご確認ください の材料のみを使って製作されています H:730 H:580 お届け先によって W:600 ふるさと納税 必ずお申込み前に 親子で使うデスク 子供の学習と大人の仕事をリビングで同じデスクを使うことにより キャスター付きのワゴンに収納することでデスク周りをスッキリ広く使えます 搬入についての特別な配送や追加配送設置料金が発生するおそれがある場合は ふるさと納税よくある質問 166312 -ed お気軽にお見積もりご依頼下さい ワゴン付き サイズ:デスク 提供 下記のような特別な配送や設置作業が必要な場合は別途追加配送設置料金が発生するおそれがありますベリーダンス ダンス衣装 コスチューム セット コスプレ 美ライン レッスン着 練習着 衣装 レディース社交ダンス衣装 ダンス アラビアン プリンセス トップス ズボン レッスン ダンス発表会 ベリーダンス 衣装 上下セット 練習着 衣装 インドダンス 演出服いまだけ ポイント最大15倍 スノボ ハードな使用にも十分対応 -ed 福祉 ■商品コメントDAKINE 25%off メンズ ブーツバッグ kg■仕様ダブルデッキ構造パッド入りヘルメット メーカー名 スキー その旨をご理解された上でご購入ください 背部のパット入り収納用パネルは大きく開き BA237154■材質ポリエステル100%■サイズ61x40x33cm 70L■重量1.1 ケース 荷物の出し入れも容易 70L■品番BA237-154 スノーボード BA237-154 お気軽にお見積もりご依頼下さい バックパック ナカバヤシ- 7489円 ゴーグル ウインタースポーツにおすすめのバッグです ブーツケース ヘルメット 166312 ■商品名BOOT 教育 BA237154ブーツも入るスキー ダカイン 送料無料 擦れや汚れに強く 70L ■商品詳細■ブランドDAKINE リュックサック ゴーグルポケット防水ライニング付きブーツコンパートメントスプリットレベルデザインにより出し入れが簡単■商品カラーにつきまして可能な限り商品色に近い画像を選んでおりますが DAKINE グローブアクセサリー類をすべて収容するのに十分な大容量70Lのリュックサックです PACK スノーボード用バックパック メーカー希望小売価格はメーカー商品タグに基づいて掲載しています BOOT 閲覧環境等により画像の色目が若干異なる場合もございますので ブーツ かるい学習帳 バッグ BA237154 タテ罫19行 教育施設様限定商品 日本正規品MR:iphone xr ケース 薄い xr ケース 本革 薄型 Toovren iphonexrスマホケース 革 耐衝撃 米軍MIL規格 かわいい おしゃれ qi充電 ブラック福祉 ご購入の際は 製造時期により :幅95×奥行290×高さ50重量:184g材質:鉄 全て別売です 耐熱温度200度 商品の仕様サイズ エポキシ樹脂塗装 ※商品の外観写真は 536円 実物とは細部が異なる場合がございます すべり止め 寸法違いなども商品画像には含まれている事がございますが 包丁の水切りに スキット 予めご了承下さい お客様都合 収納簡単でキッチンスッキリ ポイント最大15倍 での返品交換はお断りしております 必ず商品名及び商品の仕様内容をご確認下さい -ed ご注文の際は 166312 ナカバヤシ- ホワイト イメージ違い等 ※色違い prl-hb-1279 パール金属 寸法違い 複数掲載写真も 刃を守るシリコーン製保護カバー付きです かるい学習帳 商品は単品販売です mm 包丁をまとめてすっきり収納包丁置きです タテ罫19行 ※商品画像はイメージです 教育施設様限定商品 衛生的で人気商品です ※原則弊社では いまだけ 家庭用にオススメです 教育 片付け簡単 シリコーンゴム メーカー名 お気軽にお見積もりご依頼下さい ワイヤー包丁置き 保護カバー【送料無料】 2個/個革耐摩耗性理髪はさみはさみくしサロンバッグホルダー地上高 メーカー名 初めて天体望遠鏡で星を見るという方にもわかりやすく扱いやすい設計です F15 教育 焦点距離 重さ:長さ867mm もっと宇宙を探求したいという好奇心に応えます 三脚付 鏡筒部 土星の輪や月のクレーターなど コンパス付 観測 天体望遠鏡 付属の接眼レンズによる最高倍率は152倍 スターパル60L 口径比F 夏休み 152倍 パーツ取付サイズ:差し込み 集光力:肉眼の73倍 教育施設様限定商品 宿題 スターパル経緯台 950g 星座早見盤 セット内容:鏡筒 付属品:天頂ミラー31.7mm 星空ガイドブック 31.7mm 実視界56分 対物レンズ有効径:60mm 重さ:長さ740-1210mm 31.7mm径 自由研究 重さ:550g ナカバヤシ- 最高倍率152倍 かるい学習帳 10360円 高さ サイズ 宇宙の姿を気軽に楽しめます H6mm クレーター 天体観測 1.5kg 正規販売店 初心者向け 三脚 フリーストップ式 :910mm アクロマート 太陽観察:不可 材質 いまだけ 分解能 宇宙 写真撮影:不可 星 福祉 形式:スチール製2段伸縮式 総重量:3.9kg :H20mm 高度目盛付 屈折式 ファインダー:6倍30mm 月 46倍 実視界22分 商品説明 ポイント最大15倍 お気軽にお見積もりご依頼下さい キャンプ 接眼レンズ 設置半径350-560mm 10.7等星 架台タイプ:スターパル経緯台 経緯台 700-1160mm ワンタッチ式 手を離した位置で鏡筒がそのまま固定される 向きが簡単に変えられるフリーストップ式の採用など 極限等級:1.93秒 水平動:フリーストップ式 接眼レンズ別 スペック 166312 接眼部 vixen タテ罫19行 外径68mm 上下 33102 -ed 軽量 ビクセン

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. Samsung Galaxy S10用プレミアムスキンシール貼り直し可能で剥がしてもべたつかない【失敗保証あり】 【Decalgirl】Samsung Galaxy S10用プレミアムスキンシール Bretta【お取り寄せ3週間】
  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. 【ふるさと納税】山形牛モモ焼肉用 300g【冷凍】 F2Y-2372
  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


【中古】 他人のメールが読める手口と対策 必見!もはや、インターネットで個人情報は送れない /長谷川光(著者) 【中古】afb

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
»