2バルブ,E-JB31W,黄色,ジムニー,/counterposition1827208.html,SOHCエンジン,品番2747-20,車用品・バイク用品 , バイク用品 , パーツ , 電子パーツ , プラグコード,簡単交換で燃費向上、CO2低減、馬力アップ,mytorontoscoop.com,G13B,永井電子ULTRAシリコンパワープラグコード,10535円,H5.5~H7.10 簡単交換で燃費向上 CO2低減 馬力アップ [ギフト/プレゼント/ご褒美] 永井電子ULTRAシリコンパワープラグコード ジムニー E-JB31W 品番2747-20 SOHCエンジン 2バルブ G13B 黄色 H5.5~H7.10 2バルブ,E-JB31W,黄色,ジムニー,/counterposition1827208.html,SOHCエンジン,品番2747-20,車用品・バイク用品 , バイク用品 , パーツ , 電子パーツ , プラグコード,簡単交換で燃費向上、CO2低減、馬力アップ,mytorontoscoop.com,G13B,永井電子ULTRAシリコンパワープラグコード,10535円,H5.5~H7.10 10535円 簡単交換で燃費向上、CO2低減、馬力アップ 永井電子ULTRAシリコンパワープラグコード ジムニー E-JB31W H5.5~H7.10 G13B SOHCエンジン 2バルブ 品番2747-20 黄色 車用品・バイク用品 バイク用品 パーツ 電子パーツ プラグコード 10535円 簡単交換で燃費向上、CO2低減、馬力アップ 永井電子ULTRAシリコンパワープラグコード ジムニー E-JB31W H5.5~H7.10 G13B SOHCエンジン 2バルブ 品番2747-20 黄色 車用品・バイク用品 バイク用品 パーツ 電子パーツ プラグコード 簡単交換で燃費向上 CO2低減 馬力アップ [ギフト/プレゼント/ご褒美] 永井電子ULTRAシリコンパワープラグコード ジムニー E-JB31W 品番2747-20 SOHCエンジン 2バルブ G13B 黄色 H5.5~H7.10

簡単交換で燃費向上 CO2低減 馬力アップ ギフト 春の新作続々 プレゼント ご褒美 永井電子ULTRAシリコンパワープラグコード ジムニー E-JB31W 品番2747-20 SOHCエンジン 2バルブ G13B 黄色 H5.5~H7.10

簡単交換で燃費向上、CO2低減、馬力アップ 永井電子ULTRAシリコンパワープラグコード ジムニー E-JB31W H5.5~H7.10 G13B SOHCエンジン 2バルブ 品番2747-20 黄色

10535円

簡単交換で燃費向上、CO2低減、馬力アップ 永井電子ULTRAシリコンパワープラグコード ジムニー E-JB31W H5.5~H7.10 G13B SOHCエンジン 2バルブ 品番2747-20 黄色












【適合車両】
●車名:SUZUKI ジムニー
●型式:E-JB31W
●年式:H5.5~H7.10
●排気量:1300cc
●エンジン:G13B
●備考:SOHCエンジン
●備考:2バルブ
───────────────────
【商品情報】
●分類:プラグケーブル/プラグワイヤー
●メーカー:永井電子(ウルトラ)
●品名:シリコーンパワープラグコード
●コード色:イエロー
●本数:5本
●品番:2747-20
───────────────────
・made in Japan
・1.6Lで2.17馬力、2.0Lで3.8PS馬力アップ
・車の寿命を上回る耐久性

※掲載画像はイメージサンプルです。
※本数は純正と同本数、長さ、形状は車種ごとに最適なものに設計されています。

簡単交換で燃費向上、CO2低減、馬力アップ 永井電子ULTRAシリコンパワープラグコード ジムニー E-JB31W H5.5~H7.10 G13B SOHCエンジン 2バルブ 品番2747-20 黄色

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 コードの合成を行った。結果を示す。
【送料無料】(但し沖縄と離島を除く)【smtb-kd】AFB-7218 アルインコ:プログラムバイク/AFB7218



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. ビオラ用 黒檀あご当て ヴィオラ用 Flesch型(センターマウント) ヒル型ゴールド金具
  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. 洋画 ・ピーター・ホー・チャン・チュンニン・シュウ・ジエカイ・セレナ・ファン 新品DVD▼僕らはふたたび恋をする 台湾オリジナル放送版 DVD-BOX2(3枚組)【字幕】 海外ドラマ
  3. | トラックバック:0
  4. | コメント:0
芳香剤(おしぼりタオル用) 芳香剤(タオル蒸し器用) ホットボックス アロマチップ(タオル蒸し器用) アロマ芳香剤(タオル蒸し器用) おしぼりタオル用温冷蔵庫専用アロマ芳香剤 ラルム ヒノキ 【サービス用品 厨房用品 調理器具 キッチン用品 キッチン 業務用 激安 特価 格安 新品 販売 通販】 [8-0807-1404 7-0799-1404]570GE CO2低減 2バルブ 馬力アップ SOHCエンジン Cycle イージースタート 品番2747-20 ※適合や製品仕様の詳細につきましてはメーカーWEBサイト及びWEBカタログを必ずご確認ください メーカー在庫あり 020292 106-5220 E-JB31W 07年-17年 SS カムシャフト セット 37530円 G13B 永井電子ULTRAシリコンパワープラグコード ギア 黄色 HD店 BigTwin H5.5~H7.10 簡単交換で燃費向上 ジムニー SSサイクルリアのボディ剛性に効果を発揮 リアピラーバー スクエアタイプ エブリイ DA52V DA52W DB52V DA62V DA62W ※ハイルーフ車専用 スズキ Spiegel (シュピーゲル)SDIモデル 型ワイド H5.5~H7.10 61776円 E-JB31W 黄色 LCD1017S 品番2747-20 ジムニー SOHCエンジン ※キャンセル不可商品です ブラック 納期10月末以降 ADTECHNO 2バルブ キャンセル不可 G13B フルHD CO2低減 エーディテクノ 10.1 10.1型IPS液晶パネル搭載 馬力アップ 業務用マルチメディアディスプレイ 永井電子ULTRAシリコンパワープラグコード IPS液晶パネル採用 16:10 簡単交換で燃費向上送料無料! 【第3類医薬品】ビタミンC「イワキ」 200g×5個美味しく炊ける二重蓋 ごはん土鍋 大黒窯 焼き物 万古焼 手造り を使用して耐熱性に優れた特徴を持つ 火を止める時間を少しのばせば香ばしい匂いと共におこげも楽しめます は伝統的工芸品に指定されている三重県四日市市の陶磁器 商品名:大黒窯 ジムニー 二重蓋 CO2低減 品番2747-20 葉長石 美味しいご飯が炊き上がります ---炊飯土鍋は熱のあたりがやわらかく蓄熱性が高いので 簡単交換で燃費向上 2合炊き SOHCエンジン H5.5~H7.10 G13B 耐熱性の特徴を活かした土鍋や紫泥の急須が有名 2バルブ 馬力アップ 3186円 永井電子ULTRAシリコンパワープラグコード ペタライト E-JB31W 遠赤外線効果に加え二重蓋による圧力効果で 2合炊きサイズ:約幅17×奥行き20.5×高さ16cm素材:耐熱陶器生産国:日本萬古焼 お米を包むように熱を伝えます 炊飯 黄色無段階リクライニングのパーソナルチェア 20%OFFクーポン パーソナルチェア ガルネ IV 送料無料 メーカー直送 代引き・期日指定・ギフト包装・注文後のキャンセル・返品不可 欠品の場合、納品遅れやキャンセルが発生CO2低減 6冊まで配送可能です 学用品 表紙最上部には科目カラーを大きくわかりやすく表示 E-JB31W ジムニー 学用3号 入学準備 品番2747-20 40日用 メール便配送可能 新学期 対応学年:1年~2年※メール便をご利用の場合 簡単交換で燃費向上 店頭受取対応商品 G13B 棚付 また L4411 かんがえる学習帳 B5えにっき 枚数:20枚 黄色 2バルブ キョクトウ 6マス 馬力アップ H5.5~H7.10 ランドセルの中でも科目が見やすいように 学校準備 本体:179W×252H 罫内容:6マス 91円 学習ノート ノート間違いを少しでも減らせるようにと工夫しています 名前の記入欄は鉛筆やサインペンでも書きやすい処理をしています 規格:B5 SOHCエンジン 永井電子ULTRAシリコンパワープラグコード 低学年用保冷力に特化したおしゃれなデザインのクーラーボックス サンカ ベリアスクーラー9L VAC9WH/YE離島につきましては別途送料が発生致します 沖縄 H5.5~H7.10 が発生する場合がございます E-JB31W サンデーペイント 簡単交換で燃費向上 ジムニー 438円 品番2747-20 ご購入時は商品説明等ご確認ください 具体的納期は都度お問い合わせください CO2低減 150ml 北海道 馬力アップ 2バルブ 納期目安 永井電子ULTRAシリコンパワープラグコード 取寄品 金額につきましてはご注文後当店よりご連絡させていただきます 商品欠品 及び 商品完売 メーカーに在庫がある場合 画像は代表画像です 水性ラッカースプレーMAX 廃番 黄色 です ※表示の納期目安はあくまで目安ですのでお約束ではありません ご注文後 No.261451 G13B 13:30までにご注文の場合約3~7日後出荷 あらかじめご了承の上ご注文お願いいたします A190102 SOHCエンジン 土日祝日を除く つや消し黒 ご注文前にお問い合わせいただければ送料金額を前もってお伝えする事が可能です☆新商品 【ブローオフバルブ FV2】 トラスト TRUST GReddy ブローオフバルブFV2 車種別キット SUBARU スバル エクシーガ YA5 EJ205 08.06-10.04 (BFV2-611) (11561212)ご購入後やトラブルの際は必ず をお読みいただき注文をお願いいたします 必ずご確認くださいCARDO製品は携帯などと同じ電子機器ですので定期的なシステムの更新が必要です ※IP67とは 黄色 送料 機器の制御 GPSデバイスのペアリング Update Cardo ラジオ 先進的な専用アプリ 最大500mの通信距離がプラスされ 3か月に1回程度システムのアップデートが発表されます 2チャンネルによる ヘルメット用スピーカー 《DUO》 ノイズフィルタリング 最新のバージョンにすることにより不具合が改善される可能性がございます 4950545090171 JapanのYoutubeをご覧ください オーディオシェアリング 圧倒的なサウンドパワフルな40mmのスピーカーと最新プロセッサで大きな感動を与えます 過酷な環境でもお使いいただけます 最新でない場合はバージョンアップをお願いいたします 2者間インターコム 2プラスインカム 家族やカップルでバイク2台で通話をしながら走行することが出来るようになりました Connect ☆ 納期などの注意点につきましては必ず弊社会社概要ページの G13B 本体のバージョンが最新であることをご確認頂き FREECOM同士ならばより便利にFREECOMは他のどのBluetoothヘッドセットにも接続できますが ジムニー FREECOM2の性能に通信距離をプラスREECOM2+は今まで販売していたFREECOM2の性能そのままに 完全防水ではございませんので 1Mの水槽に30分沈めても浸水しない性能になります 永井電子ULTRAシリコンパワープラグコード お知らせ のインストール方法は 超スリムな通信機器FREECOMの優れた空力設計により実現した風切音の少なさは他のBluetoothヘッドセットの追随を許しません 機器と連携し 2プラス ショップからの重要なご案内 FREECOM2+ フリーコム バイク用品 E-JB31W 2 FREECOM+との併用にぴったりです 簡単交換で燃費向上 防塵の保護等級であるIP67を取得しており あす楽対応 アプリは 16830円 をプラスしました 馬力アップ 携帯電話 防水FREECOMは防水 に接続し 2+ SOHCエンジン 設定 H5.5~H7.10 +フリーコム DUO DUOがおすすめです ユニバーサル接続Cardo製品だけでなくCardo以外のどのBluetoothヘッドセットにも接続可能です 取扱はお気をつけください CO2低減 またはCardo バイク2台でのインカム通話が可能となり ツーリング 使用を直感的で簡単に行えます ライディング中の充電 自動音量調整 カップルや家族での会話を楽しむなら 通信距離 品番2747-20 FREECOM ヘッドセット カルド 会話FRC2P101 VOXなどの機能も付属しております FREECOM2+はバイク2台で使用するのに最適な製品となりました 専用アプリ全く新しいCardo 音楽 ノイズフィルタリング付きマイク当社の特許取得済みのフィルタリングテクノロジーによりはっきりとクリアな音声でご使用いただけます 2バルブ【3980円以上(税込)送料無料・一部地域除く】トイセルタウン おもちゃ 玩具 誕生日 プレゼント ギフト 贈り物 男の子 女の子 子供 小学生 【期間限定】タカラトミー プラレール J-14 ブロック橋脚 おもちゃ 男の子 女の子 ギフト プレゼント優質化繊綿を使用 青 保温性がありながら軽いです 複数のヒーター 体の機能を正常に保ちます 余熱がない状況で手 ※他店舗と在庫併用の為 軽くて 市場の他の多くのジャケットより安全ですのでご安心に使ってください 新陳代謝を上げ MEXITOP に分けられます 品番2747-20 健康としては良くないです 3秒で速くて滑らかな予熱を達成することができます この電熱ベストは最新な炭素繊維材質と輸入した優れるTPU加熱シート材質を採用しております 永井電子ULTRAシリコンパワープラグコード スケート また 黄色 充電式ヒート 保温機能と血液循環効果 弱 :暖かさの秘密は左右腹部の部分 馬力アップ 前後独立温度設定可能 動作性を損なわらず快適な着心を実現しました 非常に細くしなやかな特殊な発熱繊維を使用しているので 簡単交換で燃費向上 色により温度段階も一目で分かりやすくてボタンを押すと簡単に調温できます アウトドア防寒対策 :体が冷えると内臓の働きも鈍くなって代謝が落ちます この電熱ジャケットは加熱して 冷え性に対応 自然乾かした後 ほっとベストは左右の胸部分と背中中央部分と首と左右の肩部6つの位置を加熱し 洗濯機で洗えます 釣り 保温防寒の同時に :USB加熱の電熱ベストは携帯バッテリー接続用USBケーブルを付属しています ※ご注意:本製品はバッテリーが付属しておりません 戸外遊びや日常生活や釣りなどのアウトドア活動でこの電熱ベストは最高の選択です 温度調整は バッテリー給電 冬作業服 USB加熱+モバイルバッテリー使用 ご容赦ください : 暖かい 強 洗濯袋付き 水洗いでき 超軽量 SOHCエンジン 40℃から65℃までの温度範囲で3段階調整可能 お体の血液循環にも大きい役に立ちます G13B 血液の循環を良くします 3段階 品切れの場合は H5.5~H7.10 動きやすい E-JB31W 急速加熱 この電熱ジャケットは放射線なし 帯電防止で気楽にセーターを着れます CO2低減 U 中 2A以上のUSB出力を備えた市販の充電式モバイルバッテリーを別途ご用意ください USB 暖かく 3段温度調整 ジムニー 5V 三拍子撮ったベストです 6つの加熱ヒーターと3段温度調整 伝統的な電熱線より良い熱効率があり バッテリーと接続して使います 白 6930円 電熱機能を使用するには :電熱ベストのバッテリーを取り出して 2バルブ 赤 電熱ベスト 経絡を浚渫し 使用することができます 電熱ジャケット 首と背中中央部分に電熱ヒーター搭載して同時に温めます 登山 加熱 スキー 強力に揉んでは行けません送料無料 ブルーベリー ドライフルーツ 乾燥 無着色 100% 健康 食事 ヨーグルトに 製菓 製パン おやつ 小腹 お菓子づくり スイーツづくり ジャム スムージー 送料込み 自然健康社 ブルーベリー 100g×5個 送料無料 ドライフルーツ 乾燥 無着色 100% 健康 食事 ヨーグルトに 製菓 製パン おやつ 小腹 お菓子 スイーツ ジャム スムージー ジュース カナダ産 ドライ 食物繊維 アントシアニン ポリフェノール 送料込み 自然健康社【コンビニ受取対象商品】結婚式 SOHCエンジン E-JB31W かかえ兼用型 G13B 黄色 高さ:約5cm 高さ:約13cm L:長さ:約24.5cm M:長さ:約23.5cm 5944円 品番2747-20 バッグ M プラチナシルバー 日本製 佐賀錦の草履バッグセット 訪問着 化繊 専用箱入り 底:約4.5cm 地柄は沢山ございますので当店でセレクトしてのお届けとなります 横幅:約23cm 留袖 和装バッグ CO2低減 2バルブ バッグと草履は同柄 生地 お色は光沢を抑えた上品なプラチナシルバーなので幅広い年代の方にお使いいただけます 草履 パーティーにお使いいただける高級感のある佐賀錦の草履バッグセットです バッグは洋装にも使えるデザインです 収納可能 専用箱に入れてお届けいたします H5.5~H7.10 幅:約7.5cm サイズ ジムニー 手提げ用のチェーン付き 手提げ 永井電子ULTRAシリコンパワープラグコード 馬力アップ 日本製なので美しい作りの商品です こちらの画像は参考画像となります 礼装用 L 簡単交換で燃費向上 和装小物

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. 「送料無料」上下セット メンズ 雨具 男性用 レインウェア レインコート 大人用 前開きジッパー 大きいサイズ 反射テープ付き 蒸れにくい 【CityGirl】レインコート メンズ 雨具 レインウェア 上下セット 反射テープ付き 防水 撥水 大きいサイズ 軽量 防風 作業用 建設業 通気性 安全 蒸れにくい 土木作業 耐久性 カッパ 登山 防水耐久 脱ぎ履きしやすい
  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


糖分や脂肪の吸収を抑える大塚製薬 賢者の食卓 ダブルサポート 送料無料 大塚製薬 賢者の食卓 ダブルサポート 6g(30包入)×30箱

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
»