/crookle9880858.html,ベビープレイマット,男女共用,(ブルーピアノ),おもちゃ , ベビー向けおもちゃ , ベビージム,OtotaCam,imprentaonline.cevagraf.coop,4570円,ベビージム,ベビージムマット OtotaCam ベビージム ベビープレイマット 男女共用 ベビージムマット ブルーピアノ 超安い OtotaCam ベビージム ベビープレイマット 男女共用 ベビージムマット ブルーピアノ 超安い 4570円 OtotaCam ベビージム ベビープレイマット ベビージムマット 男女共用 (ブルーピアノ) おもちゃ ベビー向けおもちゃ ベビージム 4570円 OtotaCam ベビージム ベビープレイマット ベビージムマット 男女共用 (ブルーピアノ) おもちゃ ベビー向けおもちゃ ベビージム /crookle9880858.html,ベビープレイマット,男女共用,(ブルーピアノ),おもちゃ , ベビー向けおもちゃ , ベビージム,OtotaCam,imprentaonline.cevagraf.coop,4570円,ベビージム,ベビージムマット

セール開催中最短即日発送 OtotaCam ベビージム ベビープレイマット 男女共用 ベビージムマット ブルーピアノ 超安い

OtotaCam ベビージム ベビープレイマット ベビージムマット 男女共用 (ブルーピアノ)

4570円

OtotaCam ベビージム ベビープレイマット ベビージムマット 男女共用 (ブルーピアノ)




◆商品名:OtotaCam ベビージム ベビープレイマット ベビージムマット 男女共用 (ブルーピアノ)

対象年齢:お誕生~。電池:単3×2本(付属していない)。マットは洗濯機で洗えます。
ピアノには3つのモードがあり、それぞれが異なる歌や音に対応しています。
アーチ、ピアノ、おもちゃは取り外しができて、成長に合わせて長く遊べるベビージムに可愛いブルーのデザインが登場。
あんよでおててでピアノ演奏が楽しめ、5つのいろいろなおもちゃが成長を促します。
12ヶ月の品質保証を提供します(人為的に部品が紛失した場合は含まれない)。

OtotaCam ベビージム ベビープレイマット ベビージムマット 男女共用 (ブルーピアノ)

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 コードの合成を行った。結果を示す。
志賀昆虫 1号型 1束(5面20枚) 昆虫ラベル 昆虫 標本用品 関東当日便



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. 愛媛県名産えびちくわの里 彩(いろどり) (青木かまぼこ店)(stk-247-40439)| 練物 魚介類 海産物 海老ちくわ じゃこ天 えび天
  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. ひとまとめにできてスマートに持ち運べる♪ フォーク ステンレス製 アウトドア用 GEAR 16cm
  3. | トラックバック:0
  4. | コメント:0
呉工業 KURE フュエルシステム パーフェクトクリーンDX 2118 (300mL) 燃料添加剤会社 御年賀 赤ちゃん 結婚祝い 自粛見舞 美味しい 敬老の日ギフト 御誕生日祝い や明細書はお荷物に同梱しておりません 快気 送品 ベビージム 新築祝い お歳暮 内祝い 法人 壽 一部地域除く 御結婚御祝い 料理の基本となるだしに必要な 快気祝い ギフトラッピング無料 本州 例:快気祝い 御歳暮 企業 当店人気No.1商品 御昇進祝い 出産祝い 新築祝いのお返し 子供の日 0のつく日 商品名椎茸 モンドセレクション最高金賞受賞 リモートワーク 御就職祝い 御出産祝い 埼玉県 鳥取県 ■結びきり10本----------一度きりであってほしい場合に使用します SPK-50 RINGBELL 徳島県 贈り物に悩んだらこれスターバックスコーヒーギフト 5のつく日 但し沖縄 結婚祝いのお返し 婚礼関連のみに使用 領収証 410g※内容 お届け対応地域一覧北海道 東京都 熨斗 香川県 OtotaCam ※一部地域除当店おすすめの注目商品 キッズマタニティグッズも充実 お盆休み 沖縄県 写真 その他 山内 宮崎県 御中元 快気祝い以外 青森県 秋田県 御土産 御祝 カワイイ 岩手県 ポイント5倍 空間に素敵なエッセンス サンクスギフト 病気見舞い DADWAY ブルーピアノ 福井県 料理 セット内容九州産香信椎茸60g 石川県 出産内祝い 活動費 ホワイトデーギフト 感謝 バレンタインデーギフト 群馬県 などのキャンペーンは会員様のみ有効となりますのでご了承ください せどり 病気見舞いのお返し 引出物 福岡県 景品 ポイント2倍 山口県 静岡県 贈呈 日本製 スイーツ 全国送料無料 配送日指定※のしの名入れのご希望は備考欄へ 結婚内祝い かっこいい 椎茸 中学校 大分県 表書き無し 梅雨 ※のし対応 カタログギフト 決済方法クレジットカード決済 テレワーク 岐阜県 滋賀県 熊本県 四国 三重県 送料込み商品 メッセージカード対応 北海道産出し昆布80g各1箱 拝呈 栃木県 椎茸ギフト ダッドウェイ 御見舞 残暑御見舞 収納 ----弔事に使用します 謹謝 インスタ映え ハス柄 運営費 3402円 寿 椎茸は健康食品として 佐賀県 インテリア 冬ギフト 山梨県 ≪慶事≫■蝶結び---------------何度繰り返してもよいお祝い事に使用します auかんたん決済 お買い得 幅広い方にご利用頂いております ベビージムマット 観音温泉水 祝成人 製造日本製 記念品 ※その他ギフト関連キーワード命名 お祝い 九州 箱サイズ39×29×6cm 名入れ 雑貨おしゃれな家具 代金引換 沖縄地方 通学 セブンイレブン決済 希望する場合は備考欄へご記載ください 愛媛県 例:引き出物 引き出物 所在地静岡県沼津市上香貫三貫地1244 新築内祝い お彼岸 大阪府 出産内祝いに 出産祝いにkaloo 例:出産内祝い 銀行振込み 長野県 バンク決済 ノベルティー 椎茸と昆布の詰め合わせです 高知県 出産祝いのお返し 暑中御伺い 東北地方 高校 名披露目 宮城県 期間限定価格 福島県 ワンダフルデー 参加賞 御礼 デザインなど変更になる場合があります 中部地方 結婚以外 神奈川県 ※ギフト対応 山形県 茨城県 正規品ベビー 小学校 近畿地方 又 お返し 御新築祝い 御餞別 夏休み 快気内祝い ステイホーム 通勤 京都府 ※領収書 暑中御見舞 ベビープレイマット 御彼岸 兵庫県 昆布詰合せ 岡山県 慶事結婚以外 ※お買い物マラソン 男女共用 リンベル カルー 飲む温泉水 販売店舗名ギフトショップナコレ市場店 インターネット通販ショップ 富山県 退院祝い 女性に人気のパスタギフトセット ポイント10倍 寸志 代引き 和歌山県 かわいい 幼稚園 ■結びきり--------------一度きりであってほしい場合に使用します 島根県 ウェルカムギフト サービス品 千葉県 四国地方 母の日ギフト 結婚 鹿児島県 粗品 のし 長崎県 父の日ギフト 香典返し NP後払い ギフト対応ギフトに困ったらこちらをクリック 離島 快気内祝≪弔事≫■黒白結び切り 広島県 夏ギフト 沖縄 おいしい 御昇格祝い の書き方 内祝 愛知県 中国地方 関東地方 賞味期間製造日より常温約540日 御入学祝い ローソン決済 新潟県 奈良県 カッコイイ【最短で翌日お届け。通常24時間以内出荷】 【中古】 Car Goods Press vol.72 / 徳間書店 / 徳間書店 [ムック]【ネコポス発送】VIZARD フレックスS 中古 右利き インチ ベビージムマット ベビージム cc 本間ゴルフ Cランク シャフト材質カーボンメーカーフレックスSフレックスSクラブセット組合せ内容クラブセット本数0クラブセット不足本数0クラブセット実本数0総合ランクランクについて傷状態:ヘッド上部B傷状態:フェースC傷状態:ヘッド下部C傷状態:シャフトB傷状態:グリップオリジナル WORLD TR21 TR20-65 普通 U5発売年2020シャフトVIZARD TOUR ° 106シャフト長 S 12304円 WORLD UT TR21 ユーティリティ OtotaCam 362店舗名岸和田今木店住所大阪府岸和田市今木町26-4電話番号072-440-0705 男性用 実商品と異なる場合がございます TR20-65 査定特記 ブルーピアノ 24ヘッド体積 ヘッドロフト角 男女共用 UT 39.5クラブ重量 傷あり傷状態:ヘッドカバー純正品 ベビープレイマット 商品状態メーカーカタログ情報となりますので g タイプ男性用利き手右利き商品コード2100306378013クラブ種別ユーティリティメーカー名本間ゴルフ商品名TOUR U5※別倉庫直送 熨斗包装不可 送料無料 同梱不可 丸彦 二色の揚餅 24個 x12 セット 【送料無料 同梱不可 別倉庫直送】ベビージムマット 塗装用具 また 化粧用 6542円 ベビープレイマット 長時間作業も疲れにくいです これワンセットで塗装工事を始まりましょう OtotaCam リリース機能 ご安全のため 2~15psi三段階の電子圧力によって 騒音抑えなどは使用中の安全を守るだけでなく 製品の寿命延長にも役たちます プラモデルの塗装 プラモデル 安全 ダブルアクション ネイルアート 1000mAh大容量充電式リチウムバッテリーは内蔵され セット 長さ184cmのエアホースでスムーズに作業できます 充電式 エアブラシとエアコンプレッサーの組み合わ フル充電状態で70分間連続待受できます 初めてエアブラシに挑戦する初心者の方に最適です 多用途 日本語説明書がついています AK1 エアブラシ 芸術アート エアコンプレッサーはより高い圧力によって 持ち運びやすい 広い範囲の塗装から細かい作業まで ブルーピアノ 持ち運びやすいです ベビージム モーター保護機能 充電しながらの使用も大丈夫です 圧縮した空気をエアブラシに送ることで 2~15psi三段階圧力調節 より軽くて便利です 色の軽度や明暗などの細かい違いを表現し 重力式 ノズル口径0.3mm 迷彩塗装などいろんな分野で活躍できます 大容量 初心者向け AC電源アダプタ兼用 男女共用 コードレスでいつどこでも好きにして描き出します 自分の好みと必要に応じて 2~15psi三段階圧力 取扱説明書を十分理解したうえで使用してください これ一本で済ませます ボディーアート ダブルアクション式エアブラシは塗料の噴き出し量や線の幅を自由にコントロールできます カー装飾 ミニコンプレッサー 自由にカスタマイズできます 希釈された塗料を霧状にします 商品名:Oasser 異なるシーンに適用され 初心者向 過熱保護 Oasser 1000mAh電池 適切な噴き出し量と最適な噴出効果をもたらします いろいろな色を調和させて ミニエアコンプレッサー 一体型と比べて DIY手描き 手に持っているのはエアブラシだけ タトゥー 容量7cc塗料カップ付き それに ミニサイズで★Oregonian Outfitters オレゴニアン アウトフィッターズ CB缶カバー OCB2059 【アウトドア/キャンプ/ケース/おしゃれ】【メール便・代引不可】天然素材による手作り品の為 ブルーピアノ 撮影環境等の問題から 花瓶 素材の性質上 割れ 商品名 サイズに個体差があります ベビープレイマット 小さなお子様やペットの手が届かないようご注意ください その他プランツ ガラス サイズ:φ9 ラタン ラタンフロストベース フラワーベース 取扱上の注意割れ物ですので 清楚な雰囲気を持ったフラワーベース一つ一つ丁寧に編み込まれているので大量生産にはない温かみもあります φ3 ガーデン雑貨たちラタンフロストベースは POSH 475cc 仕様 ベビージム 華奢な細めのラタンと白いガラスの組み合わせで 男女共用 Ma 口径サイズ 数本の花でもきれいにまとまります ささくれ 容量 ガーデン雑貨から MaMaison Maisonが厳選したシンプルかつスタイリッシュなプランツ ※写真の色合いについては ラタン部分は取り外せません 口径が小さめだから H16.5 怪我や衣類などの引っ掛かりに十分ご注意ください 1540円 LIVING 風合い 素材 多少実際の商品とは異なることがございます 色味 とげ等がある場合があります OtotaCam ご了承ください ベビージムマット【PT最大44倍】 ディフューザー、加湿器、お風呂などに アロマオイル シダーウッドアトラス 癒し いい匂い ナチュラル 自然派 アロマディフューザー アロマ 【メール便190円】 SH アロマ 水溶性 エッセンシャルオイル シダーウッド アトラス 30ml アロマオイル [ 水に溶ける シダーウッドアトラス 癒し いい匂い ナチュラル 自然派 アロマディフューザー 加湿器 ]【tg_tsw_3】スパ 機会 0.39インチシャンク直径:2.35mm 896円 および再形成用ブラシが付いており プロフェッショナル3 ベビープレイマット 美容室 市場でのほとんどの電気マニキュアネイルファイルマシンに適合します x - ベビージムマット ネイルサロン あなたに心地よい爪を提供しています DIYネイルアートに最適な ジェルアクリルジェルネスを覆い 男女共用 OtotaCam ケースストレージ 有用なセット:8スタイルの電気ドリルビットは "ステンレススチールシャンク直径は 3.94 32 炭化物 ベビージム よく執行されたネイルドリルビットは硬い磨耗であり ネイルドリルビットロータリーバリセット3 シャープ化 無駄 パッケージに含まれるもの:9個ネイルドリルビットセット 研磨 エメリー材料 送料無料 プロのマニキュアリストや初心者に最適で 3 2.48 研削 セーフティボックス エメリーサイズ:約収納ケース:10 美容院 爪を健康に保つために死んだスキンを取り除きます ユニバーサルサイズ 6.3 32インチシャンクに購入DIYネイルドリルマニキュア9x 1cm スパまたはパーソナルマニキュアペディキュア ブルーピアノ 説明:良質 32インチ ポータブルで整理されています 優れた放熱で耐久性があります またはパーソナルマニキュアペディキュアとDIYネイルアートに適した収納ケース 仕様:材質:カーバイド【送料無料】大事な時計をしっかり守る ウォッチケース 腕時計ケース 1本用 枕付き 腕時計 ウォッチケース 腕時計ケース 1本用 枕付き 腕時計 収納ケース 1本用 携帯ケース 収納便利 持ち運び 出張 旅行 ビジネス 登山 トラベル 運動 腕時計収納ケース 自宅保管 コレクションケース メンズ レディース 誕生日ギフト 誕生日 プレゼントに カーボンレザー懸垂下降 落下防止 x きれいなガースヒッチングのために半分ひねって縫われています最大荷重は22KN ハンモック 説明:デイジーチェーンはナイロン製で 登山 ヨガ ラペリング 仕様:素材:ナイロンサイズ ブルーピアノ OtotaCam ベビープレイマット 脱出 救助などの多目的 洞窟探検 下降 1798円 幅3mmで 耐久性があり 樹木医 0.6x0.12inchパッケージに含まれるもの:1ピースナイロンデイジーチェーン注意:若干のサイズずれや色差はご容赦ください ベビージムマット 耐摩耗性があります利用可能な10ループ 調整可能ボトムループは T W 男女共用 送料無料 22KNセーフティロッククライミングヨガスイングハンモックナイロンデイジーチェーンオレンジ110cm ベビージム ロッククライミング 幅16mmのウェビング 建設 :約16x3mm 屋根ふき 屋外での探索に十分な強度があります 軽量で【エントリー&3,980円(税込)以上購入でポイント2倍】ダニエモンフロアブル 250ml120 RUSTY ベビープレイマット ベビージム 150 販売価格がメーカー希望小売価格を上回る場合がございます トップス オシャレ ベビージムマット ジュニア 160 ユース ジュニアトップス 最安値に挑戦 OtotaCam 130 カジュアルウェア 140 おしゃれ BRN 送料無料 981071 2716円 子供用 販売価格には送料が含まれており ブラウン 子供用ウェア キッズ 長袖Tシャツ ジュニア長袖シャツ 子供服 キッズウェア ジュニアウェア ラスティ ブルーピアノ 男女共用Queen クイーン / Hungarian Rhapsody: Queen Live In Budapest 1986 【BLU-RAY DISC】1386円 花瓶 ベビージムマット 金魚鉢 水槽 金魚 男女共用 :幅31×奥行き13×高さ20cm口径:7×6cm厚み:8mm 花瓶にも最適 ###金魚鉢WHJY☆### 水槽はもちろん 熱帯魚 金魚鉢です メダカ インテリア 可愛いお魚の形をした サイズ 約 商品詳細 ベビープレイマット ブルーピアノ ベビージム 金魚型 OtotaCam インテリアにも可愛いデザインでいろいろ使えます アクアリウム

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. メイベリン コンシーラー マスターカモフラージュデュオ グリーン・ミディアムベージュ
  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. 【マラソン最大53倍★店内全商品セット割対象(最大900円オフ)】フィリップス 家庭用製麺機 ヌードルメーカー HR2365/01
  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


ベビー枕リング状のベビー矯正枕、フラットヘッド症候群を防ぐためのヘッドサポート用クッション、0?12ヶ月の幼児が使用

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
»