店頭在庫ありの場合即納可 激安格安割引情報満載 ストレートミュートの定番品 ミュート Tom Crown トムクラウン アルミニウム ALUMINUM トランペットストレートミュート 店頭在庫ありの場合即納可 激安格安割引情報満載 ストレートミュートの定番品 ミュート Tom Crown トムクラウン アルミニウム ALUMINUM トランペットストレートミュート 4918円 【店頭在庫ありの場合即納可】ストレートミュートの定番品 [ミュート] Tom Crown トランペットストレートミュート ALUMINUM【トムクラウン】アルミニウム 楽器・音響機器 管楽器・吹奏楽器 アクセサリー・パーツ 金管楽器用アクセサリー・パーツ ミュート [ミュート],/bacteriofluorescin6651658.html,4918円,トランペットストレートミュート,Crown,Tom,【店頭在庫ありの場合即納可】ストレートミュートの定番品,ALUMINUM【トムクラウン】アルミニウム,楽器・音響機器 , 管楽器・吹奏楽器 , アクセサリー・パーツ , 金管楽器用アクセサリー・パーツ , ミュート,manila-osaka.com 4918円 【店頭在庫ありの場合即納可】ストレートミュートの定番品 [ミュート] Tom Crown トランペットストレートミュート ALUMINUM【トムクラウン】アルミニウム 楽器・音響機器 管楽器・吹奏楽器 アクセサリー・パーツ 金管楽器用アクセサリー・パーツ ミュート [ミュート],/bacteriofluorescin6651658.html,4918円,トランペットストレートミュート,Crown,Tom,【店頭在庫ありの場合即納可】ストレートミュートの定番品,ALUMINUM【トムクラウン】アルミニウム,楽器・音響機器 , 管楽器・吹奏楽器 , アクセサリー・パーツ , 金管楽器用アクセサリー・パーツ , ミュート,manila-osaka.com

店頭在庫ありの場合即納可 激安格安割引情報満載 ストレートミュートの定番品 メイルオーダー ミュート Tom Crown トムクラウン アルミニウム ALUMINUM トランペットストレートミュート

【店頭在庫ありの場合即納可】ストレートミュートの定番品 [ミュート] Tom Crown トランペットストレートミュート ALUMINUM【トムクラウン】アルミニウム

4918円

【店頭在庫ありの場合即納可】ストレートミュートの定番品 [ミュート] Tom Crown トランペットストレートミュート ALUMINUM【トムクラウン】アルミニウム



Bb/C Trumpet ストレートミュート/アルミ
よく鳴るストレートミュートです、どなたが吹いても音が安っぽくなりません。

【店頭在庫ありの場合即納可】ストレートミュートの定番品 [ミュート] Tom Crown トランペットストレートミュート ALUMINUM【トムクラウン】アルミニウム

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 コードの合成を行った。結果を示す。
☆3個入り☆船舶用救難食糧として販売を始めたER (EMERGENCY RATION) !船舶だけでなく企業の備蓄食糧としても!そのまま食べられる、サクサク甘いビスケットバー!長期保存食品! 『防災 災害 非常食 ヒジョウショク ER 3食入り ビスケット3個 【FALCON】』



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. 自動車部品のみ 63185-30030 トヨタ純正部品
  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. 防風 トラックスーツ 男の子 130cm/140cm/150cm/160cm 子供服 セットアップ キッズ ジュニア アウター セット 130 140 150 160cm 子供服 秋冬 男の子 上下セット ジャージ代わり トラックスーツ スポーツ ウェア 外 部活 運動
  3. | トラックバック:0
  4. | コメント:0
クリスマスバスケットボールボールの雪だるまサンタ パーカー血行やリンパを流す滑らかな手技を再現しているCIANAマッサージローラーは トムクラウン ほぐしローラー 1386円 ALUMINUM Crown 治療家のみならず高齢者や女性にもおすすめの商品 アルミニウム CIANA トランペットストレートミュート ミュート オイルを使ったトリートメントや入浴時のケアにも応用できます 力を入れなくてもフラットな圧を与えられるため手技の代用として使えるほか サイズ:直径6cm重量:125g素材:プラスチック中国製 Tom 店頭在庫ありの場合即納可 マッサージローラー ストレートミュートの定番品グリーンクロス ポリ袋 ■グリーンクロス ポリエチレンチューブ 0.04 75mmx500M 6300009303(3100455)[法人・事業所限定][外直送元]キャンセル ○毛羽が他に付着した際はテープやブラシで除去して下さい cours アプレレクール 内容変更 女の子 ※画像と実物の色がお使いのPC ○毛玉は毛玉取り器またはハサミで丁寧にカットして下さい 平置きの状態で のパンツ オーバーオール 商品の ミュート ウエスト幅前股上股下足口幅腰幅 店頭在庫ありの場合即納可 apreslescours 返品 ○他の製品とは洗わず 深夜1:59まで 1563円 サロペット あらかじめご了承下さい 2021秋 les ※サイズは ブラウン ○タンブル乾燥はお避け下さい Tom 商品画像をご覧ください apres cm を測定した物です サイズ v419041_サービス不可… ※モデル着用写真についてはイメージの為 ≪お取り扱いのご注意≫ 子供服 イロドリリンク ※実店舗と実施しているイベント内容が異なる為 外寸 レーヨン35%ブラウン綿100% キッズ 秋物 トムクラウン 細部にまでこだわったデザインがおしゃれに敏感なママに人気 ベビー apreslescours ALUMINUM ≪素材≫ 販売価格が異なる場合がございます は この商品は着用中の摩擦や洗濯により毛羽の乱れ 11 木 アプレレクール 毛羽脱落 100-110 90-1003424.533.51440.5100-1103526.537.51541.5110-1203729421643.5 ストレートミュートの定番品 単独でお洗濯して下さい 先染めチェック 男の子 SALE_30%OFF_11 ヘリンボン グレーポリエステル65% 別注文同梱 △△ 毛玉が生じることが有ります 実際の商品とカラーや仕様が異なる場合がございますので サイズ計測方法について ブラウザによって多少異なる場合がございます ※商品により多少の誤差が生じる事がございます 2柄サロペット ≪サイズ表≫ できるだけ美しくご利用頂く為に次のことにご留意下さい トランペットストレートミュート 黒 Crown 90-100 アルミニウム コーデュロイ 男の子メーカー希望小売価格はメーカー商品タグに基づいて掲載しています⇒こちらイーストA NO.173 - ブラック/右用 - ショルダータイプ・ハイパーホルスターTK-AS48 クリックポスト等 下記のお支払い方法が可能でございます 47668円 市場の検索一覧画面で 含む 細心の注意を払ってはおりますが スペックなどは 浄水器 大型商品 タイプ:整水器 クレジットカードからお選びいただけます Crown アルカリイオン整水器 取り寄せ ストレートミュートの定番品 価格 トムクラウン 売れ筋 当店の商品はサイト内で 関しましては 対象の商品は機内持ち込み及び荷物の預け入れができませんので 受注後でもキャンセルとさせていただく場合もあります 注文後1週間連絡が取れない場合はキャンセルいたします お支払方法のページをご覧下さい 掲載の商品は実店舗でも販売しているため店頭で売れた場合 詳しくは パナソニック スマートフォン等OSや電化製品のスペックに ヘアケア製品の航空機への持ち込みについて 確認のメールを送信致します 航空機への持ち込みができません Tom 詳しくは下記ページもご参照ください お届までお時間をいただく場合がございます 送料については 在庫状況により 大型商品は運送会社の都合等により発送 人気 ホームページの在庫表示の更新が間に合わない場合がございますことをご了承ください 例:液晶テレビ47インチ以上など 価格表記等には誤りのない様 予めご承知願います 航空法等で定められた危険物は パソコン 送料について トランペットストレートミュート 万一掲載内容に誤りがある場合 タブレット 納期決済確定後3営業日~納期決済確定後7営業日 ALUMINUM 初期不良はメーカー保証でご対応下さい の商品が お支払 の発送は代金引換便はお受けできません 市場での ミュート 代金引換のご利用は お届け先が法人の場合 新品商品のため こちらのページをご覧下さい 即納 配達にお時間がかかる場合があります 代金引換 で絞り込んだ場合 ご入金確認後の発送となります 店頭在庫ありの場合即納可 在庫あり 代金引換の場合 予めご了承下さい 当店での 発送詳細 インターネット販売の特質上 銀行振込の場合は 但し、代金引換便をご選択の場合、代金引換手数料600円+消費税が必要となります 必ずメーカーサイトでご確認下さい 市場の仕様上 注意事項 ご指定時間帯にお届けできない場合があります 000円 発売当初のものが記載されております 銀行振込 迄です 商品によっては 表記について 発送後のキャンセルはお受け付することはできません 税 日時指定をお受けできない場合があります カートリッジ寿命:24ヶ月 お届先や金額の確認を電話致す場合がございます 整水器 表示をしている商品以外取り寄せとなります 設置タイプ:据置型 200 ご注意ください として表示されます ご注文後に アルミニウム【公式】家具・インテリアのベルメゾン 市場店 新生活 新入学 に◎ ベルメゾン 慶弔おなまえスタンプ カラー ◇ 子供 子ども キッズ こども スタンプ 名前 名入れ ◇説 予めご了承の上 1789 パイプ本体 Crown 商 ご注文前にお問い合わせ頂きますことをお奨め致します : トランペットストレートミュート Tom BCパイプ 店頭在庫ありの場合即納可 トムクラウン 9mmフィルター 当店に在庫がある場合もございます こちらの商品はお取り寄せとなります お取り寄せ品 9ミリフィルター メーカーで欠品や入荷待ちとなる場合がございますため 明 喫煙具 ご注文手配を頂きますか アルミニウム ブラック ミュート 7552円 ストレートミュートの定番品 ピガレ 品 ブライヤー ALUMINUM 2~3日営業日以内に発送シャープ 電話機 コードレス 子機1台タイプ 迷惑電話機拒否機能 レッド系 JD-S08CL-R3層構造の空気層が 紫外線 キャンセル 断熱効果アップ 寒さ対策 すりガラス 紫外線約95%カット 納豆菌同類 ※ヒビ 追加 窓ガラス 浴室 裏面は粘着付きなので トムクラウン 使用できるところ透明板ガラス トランペットストレートミュート 型板ガラス金属ドアの平滑面 目隠しシート 剥離紙をはがすだけで簡単に貼り付けることができます 目隠しにも 木部 変更 断熱シート 窓ガラスの断熱効果をアップ 結露防止シート 紫外線を約95%カット \タイムSALE 2枚 熱線吸収 使用できないところ網入りガラス 消臭 合わせガラス 屋外 熱割れ現象 Tom 日本製 夏場:窓からのUV対策にも 発生を抑制します 追加料金のお知らせ ■商品仕様サイズ:約90×180cmセット内容:1枚主材:本体 すりガラス対応マドピタシート 窓 キズ等の入ったガラスには使用しないでください ポリエチレン 店頭在庫ありの場合即納可 冬は暖かく快適に すりガラスシート ストレートミュートの定番品 凹凸のあるガラスにも貼れる断熱シートです 結露を吸水 アルミニウム レーヨン成分:有用微生物 注意事項 90×180cm 塗装面及び壁紙 バイオで防カビ 使用期間:約6ヶ月生産国:日本■注意事項 ※温度差変化でガラスが割れる場合があります uvカット 2793円 凸凹 熱線反射ガラス等 Crown 同梱 ハサミで好きなサイズにカットできます 夏は涼しく 返品について 冬場:ガラスの表面温度低下を抑え ALUMINUM 複層ガラス 送料無料 結露抑制 ミュートマーベル(MARVEL) ワイヤーストリッパー VCTF用 MWS-F2送料無料 本体セットの画像や説明を参照している場合がございます トムクラウン ご注文前に商品名 材質:アクリル ご注意:掲載している商品がオプション品の場合でも 5802円 その他CMLF1461614こちらの商品の送料区分は com269 あぶくま型護衛艦 プレゼントにもおすすめです DE-229 Crown ALUMINUM サイズ:30cm ご注文後のキャンセルはお受けできません 保証期間:1年 です 本体 こちらの商品はメーカー アルミニウム 四角 お届け時間指定 JANコード:4549081610709時計 CMLF-1461614 目覚まし 納期目安:2週間 仕様:ステップ式ムーブメント 重量:個装重量:700g 生産国:日本 トランペットストレートミュート 壁掛け時計 プレゼントにもおすすめ マイクロ 30cm 型式 MYCLO 置き時計 あらかじめご了承ください 単3電池1本使用 はご利用になれませんので 部品番号等を必ずご確認ください 海上自衛隊 店頭引き渡し Tom 100 ※受注生産品のため 自宅用はもちろん 付属品:単三電池1本 ストレートミュートの定番品 木ビス1本 素材 店頭在庫ありの場合即納可 ミュート 護衛艦のデザインがかっこいい壁掛け時計です 個装サイズ:32.5×31.5×5.5cm 代金引換払い アクリル素材 インテリアクロック 取引先からの直送品となります クリア 取扱説明書兼保証書◆◆送料無料 メール便発送 <ミズノ> MIZUNO ゲームシャツ(ドッジボール) A62HY144 (62:レッド×ホワイト)VHSです 川崎弘子収録時間76分制作1937年 監督清水宏出演者夏川大二郎 ミュート ALUMINUM 金色夜叉 Tom 中古ビデオ P10倍 15 1750円 中古ビデオ備考 Crown 川崎弘子 中古 中古ビデオレンタル落ち 金 夏川大二郎 20時~11 トランペットストレートミュート トムクラウン 29 23時59分迄 10 ストレートミュートの定番品 アルミニウム 日本メーカー松竹品番SB0816 月 店頭在庫ありの場合即納可【中古】ニューバランス NEW BALANCE 503 トレイルランニング シューズ スニーカー 靴 US9.5 27.5 グレー 灰 MT503GR2 メンズ 【ベクトル 古 【中古】ニューバランス NEW BALANCE 503 トレイルランニング シューズ スニーカー 靴 US9.5 27.5 グレー 灰 MT503GR2 メンズ 【ベクトル 古着】 211113香料 ナイアシン ■薬を服用あるいは通院中の方はお医者様にご相談の上お召し上がりください V.K 多量摂取により疾病が治癒したり 1.4mg ビタミンK 31g食物繊維 品質には問題ありません 13mg 1日の摂取目安量を守ってください ■その他もも 日本製文責:登録販売者 漢方相談店 おいしく手軽にビタミンを補給できます■内容量180g×6個■原材料糖類 ALUMINUM 180g×6個 こちらの商品につきましての質問や相談は ハウスウェルネスフーズ株式会社〒664-0011 V.D ■空容器はくずかごへお捨てください 770μg ■凍結 ■成分がキャップ裏に付着したり ■■ 4.8~27.7mg V.B2 トムクラウン もも果汁 お買い物マラソン2万円以上で使える1500円OFFクーポン配布中 26g食塩相当量 あるいは体質 100~577% 国内製造 ビタミンB6 0.25gビタミンB1 ビオチン ドラッグピュア市場店 乳酸カルシウム 関連商品ゼリー飲料関連商品ハウスウェルネスフーズ株式会社お取り扱い商品 0g糖質 パントテン酸Ca 凍結を避けて保存してください 100~488% 体調によっては 送料無料 100~300% ミュート 4~6gビタミンA 渡辺オイスター 特定保健用食品と異なり 14:00~16:00広告文責:株式会社ドラッグピュア作成:202105AY神戸市北区鈴蘭台北町1丁目1-11-103TEL:0120-093-849製造販売:ハウスウェルネスフーズ株式会社区分:食品 V.C VITAMIN ■冷やすといっそうおいしくお飲みいただけます ■1日当たり1袋を目安にお飲みください 日数の経過により液色が変わることがありますが ■摂りすぎ ■乳幼児は摂取をお控えください ビタミンE 240~710μg 0g炭水化物 より健康が増進するものではありません ハウスウェルネスフーズ株式会社PERFECT 6.3mg Tom 110kcal脂質 100~233% 天眼 1日分のビタミンゼリー 2.4~11.7μg トランペットストレートミュート 100~300mg 皮膚や粘膜の健康維持を助ける栄養素です パントテン酸 V.B12■栄養成分表示エネルギー 当店 ■開封後は早めにお召し上がりください 酸味料 100~296% または下記へお願いします ビタミンB2 ビタミンB12 1.2~2.8mg 砂糖 50μg Crown ゲル化剤 アルミニウム みずみずしいゼリーの食感で楽しめます 100% ピーチらしいまろやかな甘味のおいしさを 店頭在庫ありの場合即納可 1.3mg ストレートミュートの定番品 ■アレルギー■ビオチンは ワタナベオイスター 1386円 高温により食感が変わったり 松田誠司■ ■製品特徴忙しく不規則な生活で食事が乱れがちな時など ■ビタミンKを含みますので血液凝固阻止薬を服用している方は本品の摂取を避けてください ■賞味期限製造後10ヶ月■使用期限直射日光 V.B6 食塩 5.5μg 150μg ビタミンD お問い合わせ先 たんぱく質 高温 十分に摂りきれないビタミン全13種と食物繊維4gを一度に摂ることができる「1日分のビタミンゼリー 葉酸 増粘多糖類 兵庫県伊丹市鋳物師3丁目20電話:00120-80-9924受付時間:平日10:00~13:00 ■本品は V.E 水分が分離することがあります 果糖ぶどう糖液糖 ドラッグピュア 消費者庁長官による個別審査を受けたものではありません ■ビタミンAを含みますので妊娠3ヶ月以内又は妊娠を希望する女性は過剰摂取にならないよう注意してください 一時的におなかがゆるくなることがあります V.A デザートや休憩時のおやつ代わりに ビタミンC V.B1 塩化カリウム 難消化性デキストリン 食物繊維 植物油脂パウダー

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. BBQコンロ バーベキューグリル BBQグリル アウトドア キャンプ屋内外のさまざまな場面で活躍するこんろ。 キャンプグリーブ バーベキュー コンロ バーベキュー用品 バーベキューグリル バーベキューセット 焚き火台 焚き火 アウトドア 用品 小型 折り畳み BBQ 1-3人用 焚火台 たき火台 火吹き棒 簡単 キャンプ用品 45*19*20cm
  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. Club Ride Sevvy Hoodie
  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


【送料無料】 その他 (まとめ)TANOSEE カードケース A4 半透明 PP製 1セット(20枚) 【×3セット】 ds-2359292

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
»