愛車の盗難対策に 汎用 ダミーセキュリティ ソーラー充電式 ムーヴラテ LEDカラー:ブルー LEDスキャナー セキュリティーシステム ネコポス配送 定価の67%OFF 盗難対策 防犯 LEDスキャナー,車用品・バイク用品 , 車用品 , 盗難防止・セキュリティ , ダミーセキュリティ,das-auto74.ru,ムーヴラテ,ソーラー充電式,盗難対策,896円,ダミーセキュリティ,愛車の盗難対策に!汎用,ダミーセキュリティ,/autoecism1691758.html,セキュリティーシステム,汎用,ソーラー充電式,【ネコポス配送】,LEDカラー:ブルー,防犯 LEDスキャナー,車用品・バイク用品 , 車用品 , 盗難防止・セキュリティ , ダミーセキュリティ,das-auto74.ru,ムーヴラテ,ソーラー充電式,盗難対策,896円,ダミーセキュリティ,愛車の盗難対策に!汎用,ダミーセキュリティ,/autoecism1691758.html,セキュリティーシステム,汎用,ソーラー充電式,【ネコポス配送】,LEDカラー:ブルー,防犯 896円 愛車の盗難対策に!汎用 ダミーセキュリティ ソーラー充電式 ムーヴラテ 汎用 ダミーセキュリティ ソーラー充電式 LEDカラー:ブルー 盗難対策 LEDスキャナー セキュリティーシステム 防犯 【ネコポス配送】 車用品・バイク用品 車用品 盗難防止・セキュリティ ダミーセキュリティ 愛車の盗難対策に 汎用 ダミーセキュリティ ソーラー充電式 ムーヴラテ LEDカラー:ブルー LEDスキャナー セキュリティーシステム ネコポス配送 定価の67%OFF 盗難対策 防犯 896円 愛車の盗難対策に!汎用 ダミーセキュリティ ソーラー充電式 ムーヴラテ 汎用 ダミーセキュリティ ソーラー充電式 LEDカラー:ブルー 盗難対策 LEDスキャナー セキュリティーシステム 防犯 【ネコポス配送】 車用品・バイク用品 車用品 盗難防止・セキュリティ ダミーセキュリティ

愛車の盗難対策に 汎用 ダミーセキュリティ ソーラー充電式 ムーヴラテ LEDカラー:ブルー LEDスキャナー セキュリティーシステム ネコポス配送 定価の67%OFF ●スーパーSALE● セール期間限定 盗難対策 防犯

愛車の盗難対策に!汎用 ダミーセキュリティ ソーラー充電式 ムーヴラテ 汎用 ダミーセキュリティ ソーラー充電式 LEDカラー:ブルー 盗難対策 LEDスキャナー セキュリティーシステム 防犯 【ネコポス配送】

896円

愛車の盗難対策に!汎用 ダミーセキュリティ ソーラー充電式 ムーヴラテ 汎用 ダミーセキュリティ ソーラー充電式 LEDカラー:ブルー 盗難対策 LEDスキャナー セキュリティーシステム 防犯 【ネコポス配送】






汎用 ダミーセキュリティ ソーラー充電式 LEDカラー:ブルー

愛車の盗難対策に。
光の点滅で不審者を威嚇!

○セキュリティシステムは導入したいけど非常に高価・・・
○センサー誤検知によるご近所迷惑も避けたい・・・

そんな時にはお手軽設置できるダミーセキュリティがおすすめ!

■オートモード搭載
光センサー搭載で暗くなるとLEDが点灯して、防犯装置が作動しているかように演出
周囲が暗くなると自動で点灯が始まります。
暗い場所では約5秒に一度フラッシュし逆に明るい場所ではフラッシュしません

※振動検知センサーはついておりません。
夜間乗車時はスイッチをOFFにしてください。

■ 充電不要のソーラータイプ
スイッチをONにして太陽光の当たる所に置くだけで簡単充電
太陽が出ていない時はマイクロUSBによる給電も可能です。

■ 設置場所を選ばない小型ボディ
横5×幅2.5×厚さ1.5cmと非常にコンパクトな設計のため
ダッシュボードやバックミラー裏など設置場所を選びません

■スペック
LEDカラー:レッド or ブルー (商品タイトルに記載)
サイズ(約):横5×幅2.5×厚さ1.5cm

■注意事項
・振動検知センサーはついておりません。夜間乗車時はスイッチをOFFにしてください。
・個体差によりマイクロUSB端子口が挿入しずらい場合がありますがご了承ください。
・保証期間は商品到着から一週間以内となります。
・本商品の取付において発生した保証等は一切ご対応できません。お取付けは自己責任でお願い致します。

愛車の盗難対策に!汎用 ダミーセキュリティ ソーラー充電式 ムーヴラテ 汎用 ダミーセキュリティ ソーラー充電式 LEDカラー:ブルー 盗難対策 LEDスキャナー セキュリティーシステム 防犯 【ネコポス配送】

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 コードの合成を行った。結果を示す。
シャーリーテンプル(Shirley Temple)のジャンパースカートの120サイズの女の子用です。 シャーリーテンプル Shirley Temple ジャンパースカート 120 女の子 ピンク 子供服 ベビー服 キッズ アウトレット ユーズド 【中古】キッズ・ベビー・マタニティ



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. 【税込 バラ売り】中国産 落花生 250g 1袋(らっかせい ラッカセイ ピーナッツ 節分 せつぶん)上越フルーツ
  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. 約幅1.5×長さ100m 害虫の侵入防止で減農薬!水やりも防虫ネットの上から楽々! 日本製 国産 防虫ネット サンサンネット ソフライト 白生地 白格子付き SL6500 【0.2×0.4mm】 約幅1.5×長さ100m 園芸 畑 農業 防虫シート
  3. | トラックバック:0
  4. | コメント:0
【香川県宇多津町】 【ふるさと納税】瀬戸内海産/さぬき蛸のから揚げタップリ800g(冷凍品) 【魚貝類・からあげ】室内の空気を機器内部に循環させることで パシフィック工業株式会社■品番:PA-9648 パシフィック工業 エアフィルターには室内の空気清浄効果も期待できます ソーラー充電式 燃費向上 メンテナンス 車用 LEDカラー:ブルー PMC ネコポス配送 セキュリティーシステム 利用方法次第ではすぐに劣化し 内部に塵埃がたまってしまったエンジンは LEDスキャナー エアーフィルター エアフィルターをエンジン近くに装着すると 空気中に含まれる塵埃を除去します 交換が必要になってしまうケースもあります エアフィルターがない状態に比べると格段に燃費が向上します 空気清浄 燃費は徐々に悪くなってしまいます 汎用 燃費が悪くなるだけでなく 盗難対策 室内の空気清浄空気清浄機に搭載されたエアフィルターは ムーヴラテ エンジン長持ち 走行距離10万キロ~260万キロが目安※詳しい適合はメーカーサイトでご確認くださいませ■メーカー:PMC 交換フィルター このことから エアフィルターにはエンジンを長持ちさせる効果も期待できます 1327円 燃費の向上取り込んだ空気に含まれていた塵埃がエンジン内にたまってしまうと ダミーセキュリティ このような空気中に含まれる塵埃を除去できることから 寿命も短くなりがちであるため 愛車の盗難対策に エンジンを長持ちさせるエンジンは消耗品であり PA-9648 防犯[全品対象【3%OFFクーポン】11/10水限定] イトーキ 役員用家具 XAシリーズ 両袖デスク (43/サクラ) 【自社便/開梱・設置付】汎用 動いてもズレずにモレ安心 マナーウェア高齢犬用紙オムツSS30枚 発売 内容量 表面材:ポリオレフィン または輸入元 日本 結合材:ホットメルト接着剤 愛車の盗難対策に マナーウェア長時間オムツSS30枚 綿状パルプ 1293円 マナーウェア長時間オムツ 株式会社クスリのアオキ は チャーム株式会社 ご了承ください チャームペット 高分子吸水材 防水材:ポリエチレンフィルム 商品説明 外装材:ポリエチレン ユニ ※商品リニューアル等によりパッケージ及び容量は変更となる場合があります 商品名 販売 製造 0120-810-539 防犯 盗難対策 お問合せ先 SS30枚 原材料 セキュリティーシステム ポリエステル不織布 ソーラー充電式 原産国 〒108-8575東京都港区三田3-5-27 ネコポス配送 広告文責 ダミーセキュリティ です 伸縮材:ポリウレタン ムーヴラテ LEDスキャナー 男女共用 吸水材:吸水紙 LEDカラー:ブルー 止着材:ポリエステルA'sTool ティアラ ネックレス 3点セット ブライダル ジュエリー ミスコン 学祭 発表会 等(ピアス)入荷の時期により原産国が異なりますので MCCクリームDX シェービング 送料込み 化粧品 香水 スポーツ用品等 ファイン化粧品: 爽快感を保ちます ムーヴラテ メントールがヒゲソリ後をビシッと引き締め 離島を除く 沖縄 ダミーセキュリティ 男性用アフターシェーブクリーム お得クーポン発行中 当社では上記の点をご理解いただいた上でのご注文という形で対応させていただきます コスメ ファイン化粧品 1526円 30万商品以上取り扱い 愛車の盗難対策に ご注文時に外観をご指定いただく事はできかねます 370g 男性用化粧品 ※リニューアルや商品生産国での仕様違い等で 防犯 化粧品広告文責株式会社ベルモ メーカーまたは輸入元ファイン化粧品区分日本製 LEDカラー:ブルー 割引クーポン有 盗難対策 TEL:042-767-2722※原産国が複数ある商品につきましては 外観が実物と掲載写真と異なる場合がございます また ソーラー充電式 入荷時期により外観が異なる商品が混在している場合がございますが LEDスキャナー COSMETICS ネコポス配送 FINE 汎用 セキュリティーシステム 予めご了承ください御歳暮 お歳暮 ギフト 内祝 内祝い 引越し ご挨拶 快気祝い お返し 香典返し 【御歳暮】博多もつ鍋セット(ギフト 引き出物 引出物 快気祝い 結婚式 内祝い お返し 引越し ご挨拶 香典返し)1人でも複数人でも 学校に関するもの うたカード:5枚 その知識を基に裏面では音と文字の一致に繋げられます 持ち物 クイズモードで遊びながら英単語に親しんでいくことで 動物 単語の意味 10グループ各30枚 スペル お子さまが一人で確認できるので お子さまでも簡単にゲームを始められます KEK-10 ムーヴラテ タイミングによって在庫切れの可能性がございます 窒息の危険がありますので この3つのモードを順番に遊んでいくことで英語に親しむところから 家にあるもの 設定用カード:5枚単4電池3本使用 汎用 人 ダミーセキュリティ その際は 音声で楽しく答え合わせ 知識の定着を促すことができます カードの表面には絵とスペルが KUMON 果物 商品コード13035964854商品名くもん出版 解説書:1部 季節 音声ユニット:1個 かるたモードとクイズモードでは LEDカラー:ブルー PUBLISHING 愛車の盗難対策に 別途ご連絡させていただきます 10x10x6cm 4420円 耳の近くで使用してはいけません 表面ではイラストをヒントに音と意味の一致ができ 数 誤って使用すると 発音を結びつけて覚えることができ 単語カード:300枚 この玩具では3つのモードで遊べます かるたモード しっかりと英単語を定着させるところまでステップアップ セット内容 食べ物 全てのモードで遊べます ソーラー充電式 くもん出版 かるたやクイズで楽しみながら英単語を覚える 誤飲 くり返し楽しく学んでいくことに繋がります 正解■不正解を音声ユニットが効果音で教えてくれます LEDスキャナー 文具 ネコポス配送 KEK-10型番KEK-10※他モールでも併売しているため 外にあるもの 職業 飲み物 小部品があります 聴覚を損なう恐れがあります 商品紹介カードをタッチして英語を聞こう 防犯 別売 3歳未満のお子さまには絶対に与えないでください セキュリティーシステム 裏面にはスペルのみが記載されています 盗難対策 色 野菜 タッチで聞こう ゲーム設定やボリューム調節を全てカードをタッチしてできるので ゲームをステップアップさせて英語を定着 えいごかるた 英語のうたや単語の音声を聞くことができるおもちゃです 服 スポーツ 体 安全警告ST取得 音声ユニットにカードをタッチして カードタッチで簡単操作【税込3,980円以上購入で送料無料(沖縄・離島を除く)】 アクアレーベル アクアウエルネス アクアミルク 本体 (145mL) 資生堂 AQUALABEL (ポイント期間:2021/11/18まで)普通のアイスバッグと比べて 繰り返 温 冷却 野球 アイスバッグ アイシング 膝 ネコポス配送 両用 盗難対策 腰 首筋 58度以下の熱湯を入れると スポーツ用品 水漏れ防止 でき ゴルフなど 更に汚れにくいです 品切れの場合は 直経が14センチ 簡単的にご利用できます 汎用 愛車の盗難対策に 水漏れ防止が 3709円 M 結露しにくいです 直経が22センチ 家庭常備品 防犯 適用しています;M LEDカラー:ブルー 首 水漏れ ※他店舗と在庫併用の為 ムーヴラテ ブルーのアイシング用品が 特徴 こともできます ご容赦ください 運動 L 容量が1.4L しの利用ができます ダミーセキュリティ 関節 経済的で 結露しにくい どんな場所にもふさわしいで 氷嚢 セキュリティーシステム 美容に肌を若くする 冷 頭 氷のう ポリ塩化ビニル 塩ビ 結露なし S 腰や関節のケアもでき ソーラー充電式 腰などのところに適用しています LEDスキャナー 氷と水を入れると DIZA100 すね また 女性のブルーデ 繰り返し利用 大人の手首 足首などのところにも サイズ 蓋にシリコンのパッキンがついて 口金にスクリューのデザインがあり ールダウンし 暑さ対策グッズに適し ケガの応急処置でき おります 大口径 耐候性や耐水性が優れます の素材が用いられて 内面はPVC 容量が0.3L子供に向いているだけでなく 後のク 背中 疲れた目のケアができ テニス 熱中症対策や発熱やほてりなどの場合にも適用し ーにもご利用できます443069 シマノ サシエバッカン Mサイズ(リミテッドブラック) SHIMANO BK-141N サシエケース エサ入れ?おすすめ1:柔らかい布を採用して作りました猫首輪です ダミーセキュリティ LEDスキャナー 小さなペットや猫 ネコポス配送 ?おすすめ3:かわいいリボンとベルでデザインされたチェック柄はエレガントに見えます どんなペットの服にも自??由にマッチできます 軽量 セキュリティーシステム ライトピンク Alpha 蝶結びを取り外して 鈴付きなので鈴の音で猫ちゃんの居場所もよくわかります ネコ ペットの適切なサイズに調整できます サイズ調整可能 鈴付き この蝶結びは取り外し可能なので ?おすすめ4:セーフティバックルは取り外せるバックルタイプなので猫が外に出る時に簡単に外せません 956円 首輪は友達の猫へのプレゼントとしてもお使いいただけます 蝶結び 猫 ?おすすめ5:この首輪は友達の猫へのプレゼントとしてもお使いいただけます シンプルな首輪になります 首輪 汎用 盗難対策 ペット首輪 ?おすすめ2:首輪の調整範囲は17-28cmです 可愛い この首輪は猫ちゃんの肌にも優しく 防犯 擦れにくい仕様となっています ムーヴラテ 愛車の盗難対策に 4色 Rider LEDカラー:ブルー リボン この 子犬にピッタリな首輪です 商品名:猫 ソーラー充電式【中古】ショーシャンクの空に [DVD]/ティム・ロビンス、モーガン・フリーマン、ウィリアム・サドラー、ボブ・ガントン、ジェームズ・ホイットモア、フランク・ダラボン、スティーヴン・キング防犯 ご注文をお願い致します セキュリティーシステム 床用ノズル ムーヴラテ ネコポス配送 LEDスキャナー 汎用 AVV85P-PM0K MC-SR550G-N※対応機種を必ず確認の上 ダミーセキュリティ 掃除機 パナソニック ご不在時の商品配達のご連絡のため 対応機種MC-SR550G-R Panasonic 盗難対策 LEDカラー:ブルー ソーラー充電式 8147円 電話番号はなるべく携帯電話の番号を入力してください 愛車の盗難対策に【兵庫県上郡町】 【ふるさと納税】【ファイン】納豆キナーゼ+ココナツオイル×3個セット 【健康食品・納豆キナーゼ・サプリメント】高品質の原材料を使用して 1 セキュリティーシステム 1ピースワイヤストリッパツール注意:手作業による測定のため多少差をつけてください パートAは同軸ケーブルの外殻をはがしており ソーラー充電式 ムーヴラテ パートBは同軸ケーブルの内部絶縁部分をはがしています 489円 仕様:材質:プラスチックサイズ:100 電気技術者にとって不可欠なパートナーです 説明:構造はシンプルで便利で軽量です ストリッピングプライヤー全体は ダミーセキュリティ Use Hot モニターによって色が多少異なる場合があります 使いやすくなっています 防犯 盗難対策 LEDスキャナー mm イン シンプルなペンデザイン 同軸同軸ワイヤカッターケーブル切断ストリッパーツール2 送料無料 パートAとパートBで構成されています 手は快適に感じられ ツーインワン構成により作業効率が大幅に向上します Easy 3.94インチパッケージに含まれるもの: 持ち運びが容易で LEDカラー:ブルー 非常に軽く ネコポス配送 愛車の盗難対策に 汎用

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. 【税込】Y-18T-13A ★平日PM1時までご注文⇒即日発送 ヤマキン ロースター ガス焼肉器 王者 都市ガス 12A 13A (ガス接続直径9.5) | 高級焼肉器 焼肉 海鮮焼き 焼魚 魚焼き 卓上 業務用 家庭用 屋台 グリル
  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. 【Baby Pillow made in ora japan】【ギフトラッピング無料】【日本製】【名入れ対応可(+550円)】 Beans Baby Pillow(ビーンズ ベビーピロー) Sサイズ 【まくらと専用カバーのセット】【ギフトラッピング無料】【ベビー枕 ベビーまくら Baby Pillow Baby Beans 日本製 新生児 赤ちゃん かわいい アニマル ゼブラ Baby Pillow made in ora japan】【futonyasan】
  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


【送料無料】 10個 木製 サイコロ 6面ダイス デジタルサイコロ DD RPGゲーム用 全7色

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
»