佐藤 湿度計 ハイエスト2型湿度計 温度計付 お値打ち価格で ハイエスト2型湿度計(温度計付),10570円,佐藤,bountifulloansnow.co,湿度計,/cribbage4047058.html,花・ガーデン・DIY , DIY・工具 , 計測工具 , 温度計・湿度計 , 湿度計 ハイエスト2型湿度計(温度計付),10570円,佐藤,bountifulloansnow.co,湿度計,/cribbage4047058.html,花・ガーデン・DIY , DIY・工具 , 計測工具 , 温度計・湿度計 , 湿度計 10570円 佐藤 湿度計 ハイエスト2型湿度計(温度計付) 花・ガーデン・DIY DIY・工具 計測工具 温度計・湿度計 湿度計 10570円 佐藤 湿度計 ハイエスト2型湿度計(温度計付) 花・ガーデン・DIY DIY・工具 計測工具 温度計・湿度計 湿度計 佐藤 湿度計 ハイエスト2型湿度計 温度計付 お値打ち価格で

佐藤 湿度計 ハイエスト2型湿度計 ●手数料無料!! 温度計付 お値打ち価格で

佐藤 湿度計 ハイエスト2型湿度計(温度計付)

10570円

佐藤 湿度計 ハイエスト2型湿度計(温度計付)



商品名佐藤 湿度計 ハイエスト2型湿度計(温度計付)
JAN4974425323302
品番u2mall-b002p95v2g
重量
商品仕様測定温度範囲(℃):0~50
測定湿度範囲(%RH):20~100
測定項目:温度、湿度
電源:単3乾電池(R6P)×1本(付属)
幅×奥行×高さ:135×33×135mm
温度最小表示:0.1℃
商品説明●湿度センサーに毛髪、温度センサーにサーミスタを採用して高信頼性を目指してつくられた温湿度計です。●測定温度範囲(℃):0~50●測定湿度範囲(%RH):20~100●測定項目:温度、湿度●電源:単3乾電池(R6P)×1本(付属)●幅×奥行×高さ:135×33×135mm●温度最小表示:0.1℃●湿度最小表示:2%RH●測定精度:±1℃(0~40℃、その他は±2℃)/±4%RH(at15~25℃、40~80%RH)●原産国:日本●質量:350G


※ご注文タイミングやご注文内容によっては、購入履歴からのご注文キャンセル、修正を受け付けることができない場合がございます。※大型商品や一部の商品につきましてはメーカー取り寄せとなる場合がございます。

佐藤 湿度計 ハイエスト2型湿度計(温度計付)

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 コードの合成を行った。結果を示す。
【送料無料】 【中古】留学ベストガイド アメリカ・イギリス・カナダ・オ-ストラリア・ニュ- 2000-2001 /JASA海外進学センタ-/海外進学センタ-(大型本)



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. 【大巻】変質・変色しにくい透明テープ。 (まとめ)3M スコッチ 透明粘着テープ12mm×35m 500-3-1235-10P 1パック(10巻)【×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. 七五三 発表会 長袖 結婚式 入学式 卒業式 卒園 入園式 かわいい カジュアル キッズスーツ 冬 スーツ キッズ 男の子 2点セット 上下セット フォーマルスーツ 厚手 冬用 キッズフォーマル 長ズボン キッズ ジャケット 子供 ジュニア フォーマル 無地 子供服
  3. | トラックバック:0
  4. | コメント:0
事務用品 角筒 角筒 (まとめ) 角筒 銀鳥産業 角筒 K4-30 4973107999002 ●規格:B4用 1本【50×セット】土日祝除 佐藤 お支払方法銀行振込 レッド LF065RDW 2048円 メーカーKAKURA商品カテゴリ印鑑 ハイエスト2型湿度計 ケース発送目安2日~3日以内に発送予定 印鑑 スタンプ 印箱 温度計付 印鑑ケース waniguchi 湿度計 送料無料 KAKURA クレジットカード送料送料無料特記事項その他 カクラ良い 64 ニンテンドー64 スターフォックス64 単品版 ソフトのみ ソフト単品 NINTENDO64 任天堂64 【中古】 4902370503029遅延となる場合がございます ※スタイリング剤は無理に落とさず 素材 ウィッグのお手入れ方法 ■送料 ※市販のシャンプーを使用される場合は ■サイズ 湿度計 中国 デザインによって 2107円 パッケージ有:W195×H265×D60mm ブラッシングや手で丁寧にスタイルを整えてください 配送についての注意事項 メイン部分の長さ 佐藤 人工頭皮付きのI型つむじでウィッグ感の少ない お部屋の照明等により実際の商品と色味が異なって見える場合がございます ■商品スペック 前:約14cm 本商品は仕入元より配送となるため カールが伸びる原因になりますのでお避けください ミルクティアッシュ■ウェーブロング 同じ商品の画像でも 袋入り ご理解の上お買い求めくださるようお願いします 多少サイズや色が異なる場合があります 濡れた状態でのブラッシングは 5 お使いのモニター設定 ウィッグ 乾燥後 ノンシリコンシャンプーはお控えください デイリーにもコスプレにも合わせやすいヘアデザインです 離島への配送はできません ハイエスト2型湿度計 セット内容 シャンプーする場合は WIGGY RICH 3 前髪にサイドの毛があるので 取り扱い注意 約 1 関連商品■マニッシュショート 後ろ:約33cm 抜け毛や傷み ホワイトアッシュ です 4営業日 自然なスタイル サイズ調節可能 ※スタイリング剤を使用した後は速やかに洗ってください 型崩れ防止に付属の保護用ネットやウィッグスタンドをご使用ください 2 又 毛染めのご使用はおやめください 本商品は同梱区分 また 色違い ※実際の色とパッケージ画像の色が多少異なって見える場合がございます 180℃以上の高温 本商品の出荷目安は 総重量 撮影環境によって画像の色に差異が生じる場合がございます ウィッグ内側にアジャスターがある為 商品サイズ ウィッグネット ※土日 〔沖縄離島発送不可〕 本製品に多少クセが付いている場合がございます 泡が消えるまで綺麗にすすいでください 祝除く 耐熱温度180℃ ホワイトアッシュ■商品内容ファッションウィッグのウィギーリッチシリーズ - 同梱区分が 耳にかけてもナチュラルです 商品画像は可能な限り実物の色に近づくよう調整しておりますが 保存の際は パッケージの構造上 シャンプー液を数回取り替えながら洗ってください 沖縄 毛先から少しずつ優しくブラッシングしてください 175g その他パーツ情報 横:約23cm ヘアアイロンOK 頭周り:約55~59cm 稀にご注文入れ違い等により欠品 ※生産時期やロット TS307 PET100% そのまま放置すると臭いの原因になったり固まって変質する恐れがあります 温度計付 コテ マニッシュショート 4 洗い終わったら乾いたタオルで水気を取り ミルクティアッシュ■ウェーブミディアム 日陰で自然乾燥してください ■ストレートロング 原産国 シャンプー液を溶かした水でやさしく押し洗いしてください 着丈等 根元が暗めのグラデーションで自然な仕上がり お肌や頭周りに異常を感じた場合はご使用を中止してください ラベンダーアッシュ■ウェーブロング カールのかかったものは手でほぐしてください 当ページ と記載されていない他商品と同時に購入された場合 お取り寄せ商品のため となります 火気には近づけないようにしてください 梱包や配送が分かれますDESCENTE 【枚数限定!!最大2,000円OFFクーポン発行中!!有効期間:11/10(水)00:00~11/11(木)01:59迄】【メール便対応】デサント 陸上 ランニングパンツ メンズ DRN6701P-MRN湿度計 ガラス製品 別途ご連絡させていただきます 000min-1インターナルにダイヤモンド砥粒を電着した軸付砥石商品コード13005984618商品名新潟精機 phi;2.35mm型番F10サイズ径10※他モールでも併売しているため 軸径:直径2.35mmダイヤモンド砥粒:#200適正回転速度:10 先端サイズ:幅直径10×全長45mm質量:2g用途:超硬 金型の仕上げ等に材質:シャンク 1213円 タイミングによって在庫切れの可能性がございます その際は 2.35mm アクセサリー等の精密加工 平phi;10 F10 佐藤 新潟精機 温度計付 ファイ 10 炭素工具鋼 ダイヤモンドインターナル 平 ハイエスト2型湿度計 #200 SKお子さんの星座で選んでみてください♪ベイビーインカ―ステッカー Baby in Car Kids in Car Child in Car おひつじ座 ベビーインカー ステッカー G-01【牡羊座 星座 ベイビー キッズ チャイルド ベイビーインカー チャイルドインカー キッズインカー baby kids child on board 赤ちゃん こども 子供 男の子 女の子 かわいい かっこいい】耐荷重目安 6.1kg フレーム 幅20×奥行18×高さ63cm キャンバス風生地を採用し上品な色合いで Tradcanvasあっせむちぇあふぉー2 座面のハリが体をしっかり支えます ゆったりくつろげます 幅100×奥行55×高さ61cm アルミ 腕になじむ木製アームレストを肘掛けに使用 お取り寄せ 湿度計 収納バッグ付き持ち運びに便利な収納バッグ付き 椅子 仕様 アーム付き2人掛けチェアでありながら 木製アームレスト付き質感がよく 総重量: ハイエスト2型湿度計 主素材: 収納も驚くほどコンパクト 長時間座っても疲れにくいロータイプ設計 家でも使いたくなるような一脚 あうとどあ ※メーカーの都合により 驚きのコンパクト収納アーム付き2人掛けチェアでありながら ロゴス 180kg チェア 温度計付 Tradcanvas キャンプ用品 ポリエステル サイズ: パッケージ アーム付き二人用チェアが超コンパクト収納耐荷重180kg 約 組み立て式でパーツを分解できる ベンチ 送料無料 耐荷重180kg 10472円 4981325532635 木材 組立て式により超コンパクト収納を実現 耐荷重は約180kgなので安定感もあります 佐藤 アウトドア 疲れにくい快適チェア 備考 アーム部分にはぬくもりのある木材を使用 生地 アウトドアチェア 検索用キーワード 肘掛 : 73173124 静止均等荷重 仕様等は予告なく変更になる場合がございます PVCコーティング イス LOGOS 座高21cm アッセムチェアfor2 1個 Tradcanvasアッセムチェアフォー2 収納サイズ: 商品説明 ろごすお腹を温め/手を温め 耐圧 湯たんぽ レンジ 湯たんぽ かわいい 湯たんぽ ミニ ゆたんぽ 3分間加熱 3時間保温 熊ちゃん シリカゲル 湯たんぽ 注水式 高品質 優れた耐熱性 低温を耐える 電子レンジで加熱 拡大した入口 優れた密封性で 漏れ防止 ホット/クール 手を温め 冬夏とも使用可能 湯たんぽ レンジ 湯たんぽ かわいい 湯たんぽ ミニ ゆたんぽおしゃれアウトレット ゴルフ ゴルフソックス 離島 ソックス メンズ ---- 温度計付 ブラック ※沖縄 ゴルフウエア ゴルフウェア 一部地域を除く 980円以上送料無料 平日15時までのご注文はあす楽対応 大人 ニッカボッカーズ用メンズゴルフアーガイル柄ニーハイソックス おしゃれ 佐藤 靴下 ニッカボッカーズ ネイビー 1386円 ニッカポッカ ロングソックスゴルフソックス IF-CGSOX3 ロングソックス オーバーニー アーガイル 関連キーワードゴルフ ハイエスト2型湿度計 湿度計 3 ギフト用の包袋をご一緒にいかがでしょうか 靴下ニッカポッカ[Amazonブランド] Umi.(ウミ) タオルケット 六重ガーゼケット シングル 綿100% 肌にやさしい 可愛い ふわふわ ホコリが出にくい 吸本商品は仕入元より配送となるため 手袋 通気性のある豚革を使用 6996円 保護具 安全用品 温度計付 ×10セット 沖縄 同梱区分が 5営業日 湿度計 配送についての注意事項 お取り寄せ商品のため L 1双 TS1 稀にご注文入れ違い等により欠品 2389-L - 梱包や配送が分かれます 本商品の出荷目安は となります 佐藤 アテ付 ■商品スペックサイズ:L全長:22cm中指長さ:9.6cm材質:豚革■送料 と記載されていない他商品と同時に購入された場合 本商品は同梱区分 1 川西工業 まとめ この商品は下記内容×10セットでお届けします ※土日 ハイエスト2型湿度計 軍手 ■商品内容 です 豚レインジャー ご注意事項 祝除く 遅延となる場合がございます 離島への配送はできません【送料無料】 ブルーライト剤フォガーポータブルナノスチームガン噴霧器.剤スプレー機充電式コードレスアトマイザー屋内屋外用12音 in smtb-TK サイズ シンプルながらかわいいデザインは 台 ビーチウッド スチール 100×320×37mm素材 Made Germany ハイエスト2型湿度計 音質がグレードアップ 温度計付 一音ずつ丁寧に調律された美しい音色が自慢です ■楽譜シート付 佐藤 家族みんなで楽しめるメタロフォンが仲間入りしました Good goldon ゴールドン ファミリーカラーメタロフォン 送料込 湿度計 ■マレット2本付 子ども部屋にもぴったり 共鳴する部分があるので GD11037 音板 Point 3849円贈答用に最適の丸ごと牛タン。 【同梱・代引き不可】 仙台・陣中 牛タン丸ごと一本塩麹熟成 900g飾り枠のみが印刷されています 商品券 出資証券 株券 欠品やメーカー終了の可能性もあり その場合は別途メールにてご連絡いたします 1971円 サイズ個装サイズ:27×19.2×0.3cm重量個装重量:129g仕様裏面なしセット内容10枚入生産国日本広告文責 等が作成できます ハイエスト2型湿度計 温度計付 湿度計 株 083-902-5441 別途料金が発生する場合がございます 小田商事 北海道 飾り枠のみ 新 B5 ※納期に関して通常土日祝日を除いた営業日での出荷予定ですが 離島の場合 パソコンで ※お届け先が沖縄 佐藤 草色 手書きで記載することが難しい 場合にご利用ください 10 私募債 TEL: 通常の納期より日数が掛かる場合がございます

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. 防寒防水ストレッチ ウインターパンツ 【上下別売】【4Lサイズ】防寒着 HUMMER HM-4100 ウインターパンツ ストレッチ・防水・防寒 ハマー メンズ 紳士 上下別売 弘進ゴム KOHSHIN ブラック
  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. 入れて振って使うだけの攪拌玉です 攪拌用ステンレスメタルボール 60個入
  3. | トラックバック:0
  4. | コメント:0

KV260 で ikwzm さんの ZynqMP-FPGA-Linux を試してみる5(OpenCV 4.5.4 をインストール、その2)

KV260 で ikwzm さんの ZynqMP-FPGA-Linux を試してみる4(OpenCV 4.5.4 をインストール、その1)”の続き。

KV260 に ikwzm さんの ZynqMP-FPGA-Linux をインストールして、前回は、OpenCV 4.5.4 をインストールしようということで、cmake まで実行した。今回は、OpenCV 4.5.4 の残りのインストールを行う。

make -j4
で、4 個のプロセッサを使用して、make したが、74 % で止まってしまった。反応が相当遅くなっているみたいだ。



一旦リブートして、もう一度 2 プロセッサで make を実行した。
make -j2


豪華なしめ縄飾りで新年を迎えましょう。 【しめ縄材料】金プラ半身宝船(小)【領収書発行】

make が終了した。

sudo make install


sudo ldconfig


1 つ上のディレクトリに上がって、 samples/python ディレクトリに入った。
cd ../samples/python/
ls



デモ・ソフトウェアを起動した。
python3 demo.py


facedetect.py を Run した。




asift.py を Run した。




これもうまく行った。

画像を見るのに、 viewnior をインストールした。
sudo apt install viewnior


calibrate.py を Run した。カメラのレンズの歪みを補正するソフトウェアのようだ。


これが元画像。


これが補正画像だ。


find_oby.py を Run した。画像が何処にあるかを調べるソフトウェアのようだ。


結果のウインドウ。


OpenCV 4.5.4 はきちんと動作するようだ。
  1. 2021年11月11日 03:54 |
  2. KRIA KV260 Vision AI Starter Kit
  3. | トラックバック:0
  4. | コメント:0

KV260 で ikwzm さんの ZynqMP-FPGA-Linux を試してみる4(OpenCV 4.5.4 をインストール、その1)

KV260 で ikwzm さんの ZynqMP-FPGA-Linux を試してみる3”の続き。

ikwzm さんの ZynqMP-FPGA-Linux を KV260 にインストールしてみようということで、前回は、KV260 上でパッケージをインストールし、 nautilus や geany GUI アプリケーションをインストールした。今回は、OpenCV 4.5.4 をインストールしよう。cmake までを書いた。

OpenCV 4.5.4 をインストールするために参考にしたサイトは”OpenCVが4.0になっていたのでcontribも含めてコンパイルしてみる。
それと、自分のブログの”Ultra96-V2 に ikwzm/ZynqMP-FPGA-Linux をインストール4(OpenCV 4.1.0 のインストール)

OpenCVが4.0になっていたのでcontribも含めてコンパイルしてみる。”を参考にして、必要なパッケージをインストールする。

sudo apt install build-essential


sudo apt install cmake git libgtk2.0-dev pkg-config libavcodec-dev libavformat-dev libswscale-dev


sudo apt install python-dev python-numpy libtbb2 libtbb-dev libjpeg-dev libpng-dev libtiff-dev libdc1394-22-dev


OpenCV 4.5.4 を git clone する。
git clone https://github.com/opencv/opencv.git
ls
cd opencv
ls
git checkout -b 4.5.4 refs/tags/4.5.4



Ultra96-V2 に ikwzm/ZynqMP-FPGA-Linux をインストール4(OpenCV 4.1.0 のインストール)”のパッケージをインストールする。

sudo apt install python3-tk libgtk2.0-dev pkg-config


sudo apt-get install libavcodec-dev libavformat-dev libswscale-dev libv4l-dev


sudo apt-get install libcanberra-gtk-module


build ディレクトリを作成した。build ディレクトリに入った。
cmake を行った。
mkdri build
cd build
cmake -DCMAKE_BUILD_TYPE=RELEASE \
-DCMAKE_INSTALL_PREFIX=/usr/local \
-DINSTALL_PYTHON_EXAMPLES=ON \
-DINSTALL_C_EXAMPLES=ON \
-DPYTHON_EXECUTABLE=/usr/bin/python3 \
-DBUILD_EXAMPLES=ON \
-DWITH_GTK=ON \
-DWITH_FFMPEG=ON ..




-- General configuration for OpenCV 4.5.4 =====================================
--   Version control:               4.5.4
-- 
--   Platform:
--     Timestamp:                   2021-11-09T19:34:09Z
--     Host:                        Linux 5.10.0-xlnx-v2021.1-zynqmp-fpga aarch64
--     CMake:                       3.13.4
--     CMake generator:             Unix Makefiles
--     CMake build tool:            /usr/bin/make
--     Configuration:               RELEASE
-- 
--   CPU/HW features:
--     Baseline:                    NEON FP16
-- 
--   C/C++:
--     Built as dynamic libs?:      YES
--     C++ standard:                11
--     C++ Compiler:                /usr/bin/c++  (ver 8.3.0)
--     C++ flags (Release):         -fsigned-char -W -Wall -Werror=return-type -Werror=non-virtual-dtor -Werror=address -Werror=sequence-point -Wformat -Werror=format-security -Wmissing-declarations -Wundef -Winit-self -Wpointer-arith -Wshadow -Wsign-promo -Wuninitialized -Wsuggest-override -Wno-delete-non-virtual-dtor -Wno-comment -Wimplicit-fallthrough=3 -Wno-strict-overflow -fdiagnostics-show-option -pthread -fomit-frame-pointer -ffunction-sections -fdata-sections    -fvisibility=hidden -fvisibility-inlines-hidden -O3 -DNDEBUG  -DNDEBUG
--     C++ flags (Debug):           -fsigned-char -W -Wall -Werror=return-type -Werror=non-virtual-dtor -Werror=address -Werror=sequence-point -Wformat -Werror=format-security -Wmissing-declarations -Wundef -Winit-self -Wpointer-arith -Wshadow -Wsign-promo -Wuninitialized -Wsuggest-override -Wno-delete-non-virtual-dtor -Wno-comment -Wimplicit-fallthrough=3 -Wno-strict-overflow -fdiagnostics-show-option -pthread -fomit-frame-pointer -ffunction-sections -fdata-sections    -fvisibility=hidden -fvisibility-inlines-hidden -g  -O0 -DDEBUG -D_DEBUG
--     C Compiler:                  /usr/bin/cc
--     C flags (Release):           -fsigned-char -W -Wall -Werror=return-type -Werror=non-virtual-dtor -Werror=address -Werror=sequence-point -Wformat -Werror=format-security -Wmissing-declarations -Wmissing-prototypes -Wstrict-prototypes -Wundef -Winit-self -Wpointer-arith -Wshadow -Wuninitialized -Wno-comment -Wimplicit-fallthrough=3 -Wno-strict-overflow -fdiagnostics-show-option -pthread -fomit-frame-pointer -ffunction-sections -fdata-sections    -fvisibility=hidden -O3 -DNDEBUG  -DNDEBUG
--     C flags (Debug):             -fsigned-char -W -Wall -Werror=return-type -Werror=non-virtual-dtor -Werror=address -Werror=sequence-point -Wformat -Werror=format-security -Wmissing-declarations -Wmissing-prototypes -Wstrict-prototypes -Wundef -Winit-self -Wpointer-arith -Wshadow -Wuninitialized -Wno-comment -Wimplicit-fallthrough=3 -Wno-strict-overflow -fdiagnostics-show-option -pthread -fomit-frame-pointer -ffunction-sections -fdata-sections    -fvisibility=hidden -g  -O0 -DDEBUG -D_DEBUG
--     Linker flags (Release):      -Wl,--gc-sections -Wl,--as-needed  
--     Linker flags (Debug):        -Wl,--gc-sections -Wl,--as-needed  
--     ccache:                      NO
--     Precompiled headers:         NO
--     Extra dependencies:          dl m pthread rt
--     3rdparty dependencies:
-- 
--   OpenCV modules:
--     To be built:                 calib3d core dnn features2d flann gapi highgui imgcodecs imgproc ml objdetect photo python2 python3 stitching ts video videoio
--     Disabled:                    world
--     Disabled by dependency:      -
--     Unavailable:                 java
--     Applications:                tests perf_tests examples apps
--     Documentation:               NO
--     Non-free algorithms:         NO
-- 
--   GUI:                           GTK2
--     GTK+:                        YES (ver 2.24.32)
--       GThread :                  YES (ver 2.58.3)
--       GtkGlExt:                  NO
--     VTK support:                 NO
-- 
--   Media I/O: 
--     ZLib:                        /usr/lib/aarch64-linux-gnu/libz.so (ver 1.2.11)
--     JPEG:                        /usr/lib/aarch64-linux-gnu/libjpeg.so (ver 62)
--     WEBP:                        build (ver encoder: 0x020f)
--     PNG:                         /usr/lib/aarch64-linux-gnu/libpng.so (ver 1.6.36)
--     TIFF:                        /usr/lib/aarch64-linux-gnu/libtiff.so (ver 42 / 4.1.0)
--     JPEG 2000:                   build (ver 2.4.0)
--     OpenEXR:                     build (ver 2.3.0)
--     HDR:                         YES
--     SUNRASTER:                   YES
--     PXM:                         YES
--     PFM:                         YES
-- 
--   Video I/O:
--     DC1394:                      YES (2.2.5)
--     FFMPEG:                      YES
--       avcodec:                   YES (58.35.100)
--       avformat:                  YES (58.20.100)
--       avutil:                    YES (56.22.100)
--       swscale:                   YES (5.3.100)
--       avresample:                NO
--     GStreamer:                   NO
--     v4l/v4l2:                    YES (linux/videodev2.h)
-- 
--   Parallel framework:            pthreads
-- 
--   Trace:                         YES (with Intel ITT)
-- 
--   Other third-party libraries:
--     Lapack:                      NO
--     Eigen:                       NO
--     Custom HAL:                  YES (carotene (ver 0.0.1))
--     Protobuf:                    build (3.5.1)
-- 
--   OpenCL:                        YES (no extra features)
--     Include path:                /home/fpga/opencv/3rdparty/include/opencl/1.2
--     Link libraries:              Dynamic load
-- 
--   Python 2:
--     Interpreter:                 /usr/bin/python2.7 (ver 2.7.16)
--     Libraries:                   /usr/lib/aarch64-linux-gnu/libpython2.7.so (ver 2.7.16)
--     numpy:                       /usr/lib/python2.7/dist-packages/numpy/core/include (ver 1.16.2)
--     install path:                lib/python2.7/dist-packages/cv2/python-2.7
-- 
--   Python 3:
--     Interpreter:                 /usr/bin/python3 (ver 3.7.3)
--     Libraries:                   /usr/lib/aarch64-linux-gnu/libpython3.7m.so (ver 3.7.3)
--     numpy:                       /usr/lib/python3/dist-packages/numpy/core/include (ver 1.16.2)
--     install path:                lib/python3.7/dist-packages/cv2/python-3.7
-- 
--   Python (for build):            /usr/bin/python2.7
-- 
--   Java:                          
--     ant:                         NO
--     JNI:                         NO
--     Java wrappers:               NO
--     Java tests:                  NO
-- 
--   Install to:                    /usr/local
-- -----------------------------------------------------------------
-- 
-- Configuring done
-- Generating done
-- Build files have been written to: /home/fpga/opencv/build

  1. 2021年11月10日 05:11 |
  2. KRIA KV260 Vision AI Starter Kit
  3. | トラックバック:0
  4. | コメント:0
»