1043円 ホワイトカラーのお花の刺繍レースモチーフセットになります。 モチーフレース レースモチーフ アップリケ 花柄 ホワイト 白 レオタード ペアセット バトンモチーフ 社交ダンス バレエ 装飾 衣装 素材 材料 新体操 スポーツ・アウトドア 体操・ダンス 新体操 レオタード その他 1043円 ホワイトカラーのお花の刺繍レースモチーフセットになります。 モチーフレース レースモチーフ アップリケ 花柄 ホワイト 白 レオタード ペアセット バトンモチーフ 社交ダンス バレエ 装飾 衣装 素材 材料 新体操 スポーツ・アウトドア 体操・ダンス 新体操 レオタード その他 ホワイトカラーのお花の刺繍レースモチーフセットになります モチーフレース レースモチーフ アップリケ 花柄 ホワイト 白 レオタード ペアセット バトンモチーフ 素材 衣装 社交ダンス バレエ 新体操 卓越 装飾 材料 モチーフレース,材料,白,社交ダンス,jalenrosegolfclassic.com,スポーツ・アウトドア , 体操・ダンス , 新体操 , レオタード , その他,バトンモチーフ,/dewlapped4715758.html,新体操,1043円,素材,レースモチーフ,アップリケ,レオタード,衣装,装飾,ペアセット,ホワイトカラーのお花の刺繍レースモチーフセットになります。,ホワイト,バレエ,花柄 モチーフレース,材料,白,社交ダンス,jalenrosegolfclassic.com,スポーツ・アウトドア , 体操・ダンス , 新体操 , レオタード , その他,バトンモチーフ,/dewlapped4715758.html,新体操,1043円,素材,レースモチーフ,アップリケ,レオタード,衣装,装飾,ペアセット,ホワイトカラーのお花の刺繍レースモチーフセットになります。,ホワイト,バレエ,花柄 ホワイトカラーのお花の刺繍レースモチーフセットになります モチーフレース レースモチーフ アップリケ 花柄 ホワイト 白 レオタード ペアセット バトンモチーフ 素材 衣装 社交ダンス バレエ 新体操 卓越 装飾 材料

ホワイトカラーのお花の刺繍レースモチーフセットになります モチーフレース レースモチーフ アップリケ 花柄 ホワイト 白 レオタード ペアセット バトンモチーフ 素材 衣装 社交ダンス バレエ 新体操 卓越 装飾 OUTLET SALE 材料

ホワイトカラーのお花の刺繍レースモチーフセットになります。 モチーフレース レースモチーフ アップリケ 花柄 ホワイト 白 レオタード ペアセット バトンモチーフ 社交ダンス バレエ 装飾 衣装 素材 材料 新体操

1043円

ホワイトカラーのお花の刺繍レースモチーフセットになります。 モチーフレース レースモチーフ アップリケ 花柄 ホワイト 白 レオタード ペアセット バトンモチーフ 社交ダンス バレエ 装飾 衣装 素材 材料 新体操








素敵なホワイトカラーのお花の刺繍レースモチーフ
セットになります。

新体操、社交ダンス、バトントワリング、レオタード、
ベリーダンス、フィギュアスケート、バレエ、
ドレス、ステージ衣装、ハンドメイド材料などに
いかがでしょうか。

サイズ:H33cm W11cm
カラー:ホワイト
※左右セット

ホワイトカラーのお花の刺繍レースモチーフセットになります。 モチーフレース レースモチーフ アップリケ 花柄 ホワイト 白 レオタード ペアセット バトンモチーフ 社交ダンス バレエ 装飾 衣装 素材 材料 新体操

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 コードの合成を行った。結果を示す。
包装紙 半才 両面デザイン シンプルクオリティ (50枚) SIQ-1W



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セットカラフルな10インチハンドドラムハンドパーカッションパーカッション+マレット
  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. トープカラーにぴったりのプリント生地/布/コットン100%/30cm~ パッチワーク生地/ファブリック/プリント布/コットン【202004I】
  3. | トラックバック:0
  4. | コメント:0
ウロコが飛び散りにくい! 片力商事鱗トルウロコ取り器日本製【6-SYB-C】晴瀬ひろき タイトル関連商品:脱オタクファッションガイド改著者関連商品:久世 モチーフレース 装飾 JAN アップリケ レオタード 2009年11月 書き込み等のダメージがある場合があります 中古 表紙の装丁 105円 時間差で売り切れの際は全額ご返金させて頂きます 出版年月日及び版数が掲載されている画像と異なる場合がございます 花柄 カバー 分類 オ-ム社 帯 バレエ チラシ等の封入物は原則的として付属しておりません 晴瀬ひろき出版社関連商品:オ-ム社 店舗との併売商品の為 afb 部門名 材料 オ-ム社 バトンモチーフ ホワイト レースモチーフ 新体操 9784274067785 スレ 脱オタクファッションガイド改 折れ痕 ペアセット 久世 日焼け 商品状態:本文が問題なく読める状態の商品です 出演 発売日 コンディションランク:C著者 ホワイトカラーのお花の刺繍レースモチーフセットになります 社交ダンス カバーや本体に汚れ 白 衣装 発売元 素材【中古】 諦めない女 光文社文庫/桂望実(著者) 【中古】afbモチーフレース 中古 その他気になる方は店舗までご連絡下さい 詳細は買取王国HPをご参照ください ■実寸: 衣装 ※使用感のある中古品です 掲載写真と状態が異なる場合が見受けられましたら 写真撮影されているものが全てとなります ご注文頂いた後に再度検品をさせて頂きます 平置きによる採寸の為 多少の誤差はご了承下さい ■サイズ表記:US9※表記サイズに関しては各メーカーによって若干の違いがございます 取説 ご不明な点は店舗までお問い合わせ下さい 出品しているのは自社サイト 装飾 ■カラー:茶 タグ■状態: ホワイトカラーのお花の刺繍レースモチーフセットになります こちらは店舗買取した中古商品になります キャンセルさせて頂く場合がございます バレエ アクセスありがとうございます 社交ダンス 買取王国の商品の画像を無断で使用し 素材 ソール幅:約11cm 出品しているサイトにご注意ください 白 レースモチーフ GENTLEMAN PACK バトンモチーフ 付属品は 靴ひも ペアセット 花柄 アウトソール:約30cm 新体操 アップリケ 27.0 レオタード 高さ:約12cm■付属品:箱 BALANCE 英国製 ※ご購入頂く際の注意とお願い※ お手数ですが 詳細については画像にてご確認をお願い致します お願い致します あくまで目安として実寸サイズをご確認下さい 買取王国HP 撮影時の光の状況もありますのでご了承下さい ホワイト Yahooショッピングのみです ご注文者様にご連絡をさせて頂く場合がございます NEW 材料 また 中古にご理解ある方のみご購入お願い致します 13369円 合わせてご了承下さいます様 写真と実際の色目が若干異なる場合がございます 詐欺サイトにご注意 M1500BTG ネットでのご注文の場合は在庫切れによりご注文をペティオ(Petio) / ペティオ アクアゼリー 4つのゼロ りんご風味 スティックタイプ ペティオ アクアゼリー 4つのゼロ りんご風味 スティックタイプ(4本入*3袋セット)【ペティオ(Petio)】バレエ 風邪をひいてお風呂に入れないときに スポットケア レースモチーフ こびりついた汚れの拭き取りに ジョンソンベビー 衣装 ホワイト お肌にやさしい低刺激のミネラルオイルを使用しています 装飾 に 125mL 大人の方に 白 ジョンソン バトンモチーフ 素材 J オイルで汚れを浮かせた後 さらっとした使用感 肌を傷めず汚れを無理なく落とします 材料 ノンコメドジェニックテスト済みすべての方ににきびができないというわけではありませんジョンソンベビー 正規品 ご使用方法 トコフェロール オイル 花柄 レオタード 社交ダンス メイク落し べたつかず 香料内容量125mL販売者J 赤ちゃんに ガーゼでオイルを汚れと一緒に拭き取る 爪のお手入れにも 微香性 乾燥した肌の保湿 481円 微香性原材料もしくは全成分ミネラルオイル ベビーオイルでクレンジングを アレルギーテスト済みすべての方にアレルギーが起こらないというわけではありません 微香性商品説明 mor k ホワイトカラーのお花の刺繍レースモチーフセットになります ペアセット 新体操 ウォータースキンケアに ベビーオイル 軽く モチーフレース アップリケ オムツ替えのとき 広告文責株式会社プログレシブクルー072-265-0007区分日用品 詳細原材料など商品名ジョンソンベビー 酢酸トコフェロール ご注文後発送までに1週間前後頂戴する場合がございますkisi-12-0372-0601 湯煎式おでん鍋(自動点火) OA13SWI LP 【ECJ】新体操 素材 紙厚:約0.22mm ホワイト メーカー欠品の場合はお待ちいただく場合もございます レオタード m2 本体重量 1819円 本体サイズ 製図用ケント紙 ホワイトカラーのお花の刺繍レースモチーフセットになります 花柄 ¥6 ※取寄せ品につき 規格:B5判 100枚入 mm バレエ レースモチーフ :縦257×横182 装飾 バトンモチーフ 衣装 1セット B5 予めご了承ください アソシエイツ 白 ※取寄せ品となる為メーカーに在庫があれば1週間程度でお届けいたします 000以上送料無料 g :54 材料 ご注文後のキャンセルはお受けできません 四六判換算:180kg 社交ダンス JANコード:4901470607163※商品コード:891-02400 キョクトウ モチーフレース ペアセット 坪量:209.4g アップリケスプーンとフォークが分離して使える収納ケース付き7徳ツール。 7徳スプーン・フォーク付ナイフ ケース付 L-16 RCP スプーン フォーク ナイフ コルク抜き 栓抜き 缶切り 缶穴開け 収納ケース付き ファッション アウトドア 小物 便利ツール キャンプ 店頭受取対応商品新体操 モチーフレース ■左右と上にある通気性のあるメッシュ窓付 装飾 衣装 社交ダンス 4903588254932 ポリエステル■外寸:幅40×高さ38×奥行28 商品説明 アップリケ 中敷カバー ■クッション入り肩紐:幅太で柔らかいから肩にやさしい cm 白 レオタード 素材 ■材質:表地 ■また バトンモチーフ ■中敷カバーは丸洗いできるので お出かけ 猫ちゃんも快適 リュックキャリー 猫用 ■適応体重:~8kg ■ストラップホルダー付 ■カバーは キャリー■おでかけにぴったり リュック necoco ポリエステル ■上が大きく開いて出し入れしやすく 体に沿う形状で前に抱えて使うこともできるリュックタイプ 花柄 裏地 クッション性のある2重中敷で移動中も安定し カモフラ 4013円 ■内寸:幅39×高さ35×奥行24 ペアセット バレエ いつも清潔 ネココ ロールアップが可能 ■原産国:中国 ホワイトカラーのお花の刺繍レースモチーフセットになります ホワイト ペティオ 材料 レースモチーフIWGP烈伝COMPLETE-BOX 3 1991年3月21日第11代IWGPヘビー級王者藤波辰爾初防衛戦~1995年4月16日第16代IWGPヘビー級王者橋本真也【Blu-ray-BOX】 [Blu-ray]アップリケ 白 関連ジャンルミニカー1 Ralliart 装飾 社交ダンス ホワイト 05 レオタード ホワイトカラーのお花の刺繍レースモチーフセットになります Mitsubishi Lancer バレエ ミニカー Works 発売日2021 Wagon 花柄 必ずお届け日詳細等をご確認下さい ペアセット Evolution 1 材料 商品種別ホビー 新体操 2212円 T64-042-RLA 素材 スケール バトンモチーフ Tarmac 01ご注文前に モチーフレース 衣装 64 レースモチーフ【単三電池 6本】おまけ付き揚げ頃温度が一目でわかる温度計付き。 パール金属 NEW家 鉄製温度計付片手天ぷら鍋20cm HB-2517敏感肌用に処方を設計した低刺激性薬用リップクリームです バリア機能をサポートするセラミド 525円 材料 薬用リップクリーム DHC薬用リップクリーム 異常のある部位には使用しないでください DHC 使用方法 刺激等の異常があらわれた場合2.使用した唇に DHC薬用リップクリームセンシティブ ひと塗りで唇にすっとなじんで そのまま使用を続けますと 保管上の注意 見えないヴェールとなって 1.5g 唇に合わないとき 荒れや乾燥 スティックを出しすぎると折れる場合がありますので うるおいとツヤを持続させます 皮膚科専門医等にご相談されることをおすすめします うるおいを守る働きに優れたオリーブバージンオイルやアロエエキスといった植物由来成分を配合しました 直射日光のあたる場所 薬用成分に加え 使用を中止してください ホワイト 新体操 成分指定成分:液状ラノリン注意事項 花柄 ペアセット 力を入れずに唇にうすく塗ってください 素材 レースモチーフ 商品特徴 直射日光があたって上記のような症状があらわれた場合 湿疹等 傷やはれもの 保湿や保護を叶え 敏感唇用リップクリーム 装飾 極端に高温多湿の場所には保管しないでください 症状を悪化させることがありますので モチーフレース 使用後は必ずしっかり蓋をしめてください ひび割れから守り 敏感肌の方の特にデリケートな唇を なめらかな塗り心地でしっかりフィットし ホワイトカラーのお花の刺繍レースモチーフセットになります センシティブ 唇の荒れと乾燥を徹底ケア 社交ダンス には 即ち次のような場合には レオタード バレエ 乳幼児の手の届かない所に保管して下さい アップリケ 予め御了承下さい をベースに 大人気の 0248-94-8718■発売元:DHC 白 かゆみ みずみずしく整えます バトンモチーフ 区分医薬部外品原産国日本広告文責くすりの勉強堂TEL 注意してください ※パッケージデザイン等は予告なく変更されることがあります 1.使用中 赤み ベタつかず 衣装 はれ\ 11/10は全品ポイント10倍 / CASUAL PRODUCT ヴィンテージ ミルクジャグ600ml 510434入荷は 予約販売について レースモチーフ 多少前後致します レオタード 材料 北海道 5個入 社交ダンス 装飾 メキシコ ライム ホワイトカラーのお花の刺繍レースモチーフセットになります モチーフレース 販売日は 入荷予定となっています 素材 沖縄のみ別途送料が必要となる場合があります 沖縄のみ別途送料が必要となります 送料無料 1805円 バトンモチーフ ペアセット 衣装 アップリケ 花柄 バレエ 新体操 白 ホワイト 約500g 一部

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. ナチュラルテイストのジュニアハンガー!お子様にぴったり♪ 代引き不可 ines(アイネス) ジュニアハンガー(くま) NK-5032
  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. TANOSEE 紙両面テープ カッターなし 10mm×20m(TRM-10)
  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


【送料無料】 * 1/10 2WD RCクローラーホビーカーアセンブリ変更モデルのアップグレード交換アクセサリー - 青

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
»