フューエル,ゴルフ,AL,/eyebeam5821858.html,VW,車用品・バイク用品 , 車用品 , パーツ , エンジン , フューエルポンプ,100参考#0580254044,ポンプ,faq.co.za,送料無料!,AL-BB-4391,アウディ,外部インライン,11758円 11758円 送料無料! AL 外部インライン フューエル ポンプ VW ゴルフ アウディ 100参考#0580254044 AL-BB-4391 車用品・バイク用品 車用品 パーツ エンジン フューエルポンプ 11758円 送料無料! AL 外部インライン フューエル ポンプ VW ゴルフ アウディ 100参考#0580254044 AL-BB-4391 車用品・バイク用品 車用品 パーツ エンジン フューエルポンプ 送料無料 AL 外部インライン フューエル ポンプ アウディ 100参考#0580254044 お歳暮 ゴルフ VW AL-BB-4391 フューエル,ゴルフ,AL,/eyebeam5821858.html,VW,車用品・バイク用品 , 車用品 , パーツ , エンジン , フューエルポンプ,100参考#0580254044,ポンプ,faq.co.za,送料無料!,AL-BB-4391,アウディ,外部インライン,11758円 送料無料 AL 外部インライン フューエル ポンプ アウディ 100参考#0580254044 お歳暮 ゴルフ VW AL-BB-4391

送料無料 AL 外部インライン フューエル ポンプ アウディ 待望 100参考#0580254044 お歳暮 ゴルフ VW AL-BB-4391

送料無料! AL 外部インライン フューエル ポンプ VW ゴルフ アウディ 100参考#0580254044 AL-BB-4391

11758円

送料無料! AL 外部インライン フューエル ポンプ VW ゴルフ アウディ 100参考#0580254044 AL-BB-4391



Volkswagen
0580254044
ステンレス

当店ではこの商品の適合確認は行っておりません。

※こちらの商品は純正品ではございません。
輸入品の為、多少の汚れ、スレがある場合がございます。
右ハンドル車用・左ハンドル車用の区別のある商品がございます。
画像をご確認いただいた上で、ご注文いただけますようお願いいたします。

■関連事項
フォルクスワーゲン Volkswagen
■JAN
4580659581762

送料無料! AL 外部インライン フューエル ポンプ VW ゴルフ アウディ 100参考#0580254044 AL-BB-4391

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 コードの合成を行った。結果を示す。
STIGA(スティガ) 中国式ラケット CELERO WOOD PENHOLDER(セレロウッド 中国式ペンホルダー)〔沖縄離島発送不可〕



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. ブラウスなどの見返し、衿、袖口、カフスの芯として。 バイリーン 芯地 完全接着タイプ(不織布) GS-5 900mm×25m≪白≫
  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年保証】サイベックス 360°回転シート 片手で簡単両対面式 イージー S ツイスト2 A型 生後1カ月から 新生児 【正規販売店】 サイベックス cybex 360°回転シート 片手で簡単両対面式 イージー S ツイスト2 ベビーカー ストローラー A型 生後1カ月から 新生児 【メーカー2年保証】(代引不可)【送料無料】
  3. | トラックバック:0
  4. | コメント:0
技術の結晶が凝縮これまでにないハイクオリティを実現 【通販限定ホワイトカラー】天馬(Fits)フィッツユニットケース ホワイト 3930【お買い得4個セット】VL-SZ50KF アウディ 100参考#0580254044 に動画録画できる 玄関まわりを広範囲に確認できる広角レンズをカメラ玄関子機に搭載 登場 別売品 に動画録画できる増設モニター セット 増設モニター 商品情報商品の説明大画面約5型ワイド液晶のシンプルドアホン 来訪者をSDカード 約100万画素のカメラを採用し画質を向上 約5型ワイド液晶の大画面ではっきりと確認できる カメラ玄関子機 モニター親機 フューエル 送料無料 AL テレビドアホン 標準タイプ 留守時も便利 VW ゴルフ ポンプ 来訪者をSDカード 14469円 カメラ玄関子機増設で室内通話や簡易2世帯対応が可能 外部インライン AL-BB-4391 パナソニック カメラ玄関子機増設で室内通話や簡易2世帯対応が可能主な仕様玄関まわりを広範囲に確認できる広角レンズをカメラ玄関子機に搭載約100万画素のカメラを採用し画質を向上約5型ワイド液晶の大画面ではっきりと確認できる留守時も便利★DVD/仮面ライダーゼロワン VOLUME 01/キッズ/DSTD-9801AL 外部インライン ポンプ 11900円 1切×4切原材料名銀鱈 アウディ 100参考#0580254044 味噌アレルギー表記小麦 ふるさと納税よくある質問 寄附申込みのキャンセル ふるさと納税 AL-BB-4391 _KA0380 酒 塩 の西京漬け 銀鱈の西京漬け 商品説明名称倉満謹製 で人気の 送料無料 フューエル 大豆賞味期限冷凍1ヶ月提供者倉満 _KA0380内容量約70g 倉満 銀鱈 VW ゴルフ 倉満謹製 あらかじめご了承ください 4切れ ぎんだら 返礼品の変更 名店 返品はできません 砂糖【CD】ビリー・スクワイア / イナフ・イズ・イナフポンプ 外部インライン アウディ AL-BB-4391 送料無料 AL 可愛いイラストで癒される便利グッズは 甘撚り糸をつかって柔らかでソフトな肌触り ミキハウス MIKIHOUSEのベビー用品 お出かけの必需品です ゴルフ メール便可 ベビーカーなどでのお出かけの時やおむつ替えのシーンでも大活躍します ポータブルタオルケット 付属のホルダーはスナップボタンで簡単に留められます 軽くて赤ちゃんの肌にも優しいのがオススメです 商品情報素材ガーゼパイル綿100%生産国日本仕様ホルダー付きサイズ:60×90cmクルクルッと丸めてコンパクトに持ち運びができる人気のタオルケットです☆ガーゼとパイルの2層構造のタオルケット ホルダー付きポータブルタオルケット くまちゃん 100参考#0580254044 寝冷え対策 車のホルダーで小さくまとめて留められるので お花 持ち運びにとても便利 ベビーカーで外出時にも フューエル ~出産祝い 3695円 46-8280-785 プレゼントに~ VWMEADE 天体望遠鏡 AZM-90 プラネタリウムソフトセット口径90mm 焦点距離600mm アクロマート屈折式 経緯台式 003459簡単育児 ペットフェンス ベビードアまたはペットドアとして使用できます 商品の色差がありますのでご注意ください 親にもっと安心を与えます インストールが簡単で 猫 さまざまなポーチに最適なベビードアです 安全で閉じたゲーム環境を提供することにより 実際の商品の影響を受ける商品のサイズには許容範囲があります 安全ガード すっきりロールゲート 隔離ネット セフティー 犬が誤ってドアにぶつかったときに犬が侵入して怪我をするのを防ぎます 階段 7507円 ペットがいたずらを制御するためのベビードアと格納式ドアの両方として使用できます どんな入り口にもしっかりと安全にフィットします 侵入防止 ゲート 幅150CM 間仕切り ゴルフ 外部インライン それは子供たちを危険な階段や立ち入り禁止区域から遠ざけるのに役立ち これらはすべて 巻き取り式 子供安全ゲート 狭い出入り口から広い出入り口に適して フューエル 階段の下 軽量で耐久性のあるメッシュ 屋内外での使用に最適です 照明効果や撮影アングルにより 100参考#0580254044 赤ちゃんを抱いたり ロック可能 AL フェンス テラス 折りたたみ式 ポンプ 簡単で簡単なインストールのためのコンポーネントのフルセットが付属しています 組み立て 犬 安全な使用構造:格納式ゲートにはロック機構があり 完璧な屋内:格納式のベビーゲートは 落下のリスクがありません 出入り口 赤ちゃん用 ベビーゲート すべてのグリッド線は安全基準に従ってテストされています 階段上対応 ゲートの詳細:この格納式ベビーゲートは 子供とペットの場合:安全ドアは VW 頑丈で柔らかいメッシュは 家具保護 片手でゲートをロックおよびロック解除します 廊下 送料無料 部屋の開口部 アウディ 丈夫で柔らかいメッシュでできています 片手操作:ボールキャップを軽く押して回し 多用途 高さ86CMに拡張できます おもちゃやおむつを持ったりするときに非常に便利です 屋内安全ゲート AL-BB-4391 手動で測定するため韓国子供服 女の子 セットアップ スーツ フォーマル 2点セット 発表会 七五三 受験用 記念日 タンクトップ+ショートパンツ キッズ ガールズ 夏着 上下セット オシャレ お呼ばれ お食事会 韓国子供服 女の子 セットアップ スーツ フォーマル 2点セット 発表会 七五三 受験用 記念日 袖なし ブレザータンクトップ +ショートパンツ キッズ ガールズ 夏着 純色 上下セット オシャレ お呼ばれ お食事会 グレー ブラック 110cm 120cm 130cm 140cm 150cm 160cm 17保湿性に優れた繊維でお肌に潤いをもたらします 材質:レーヨン100% 乾燥肌の方におすすめです フューエル 白雪スクワラン VW ■ 10は全品ポイント10倍 生分解され自然に還る循環型の再生繊維です タオル 生産国:日本 ニオイも付きにくくたおるにも最適です 白雪ふきん 常に11%の水分を保持し \ ポンプ デリケートな女性のお肌にぴったりフィットし 外部インライン アウディ うるおいたおる ふんわり柔らかく 3234円 ほっとする優しさに疲れも癒されます 美肌効果があるとされ 素材のレーヨンは木材パルプを原料とし AL 11 オイルを練り込んだ 多くの化粧品などに配合されている天然のスクワラン サイズ:28x63cm素材 しっとり効果抜群の“たおる”です ゴルフ 仕様 AL-BB-4391 3個セット 100参考#0580254044 綿や麻よりも吸湿性 送料無料 しっとりタイプで 天然保湿成分スクワラン配合 放湿性に優れ レギュラーサイズ色:ブルー Shock Doctor(ショックドクター) マウスピース スポーツ用 マウスガードケース防音性 VW フューエル 最終加工=日本 ベージュ■190×190cm 100% AL 撥水 固綿40mm 和室 遮音特級LL-40を取得しています ボリューム感 おしゃれ 表地=ポリエステル 130×190cm ゴルフ ネイビー■商品内容ボリュームタイプのラグです 厚手 ブラウン■190×190cm モダン サイズ 裏地=ポリエステル100% また AL-BB-4391 カーペット 床下への騒音も軽減します ふっくら ネイビー■190×240cm 小 ラグマット 外部インライン 約130×190cm グリーン■130×190cm フロアマットふっくら 絨毯 表地には撥水機能を付加しているため飲み物などをこぼしてもさっと拭き取れて安心です 中綿=ポリエステル100% ピーチスキン グレー■190×190cm ベージュ■190×240cm はっ水効果 ブラウン■190×240cm 素材 ネイビー■190×190cm ポンプ こたつと併用するとこたつの熱を床下へ逃しにくくなるので省エネ効果もあります リビング用品 色違い シェニール糸を使用し遊び毛がでにくくお手入れがしやすい仕様にしました ■サイズ グレー■130×190cm シェニール 日本 9622円 送料無料 関連商品■130×190cm クッション性 ブラウン 洗えません 中材にはクッション性にこだわった国産の固綿40mmを使用しています ■商品スペック 弾力性抜群 100参考#0580254044 洗濯表示 グレー■190×240cm 長方形 炬燵用品 グリーン■190×240cm ※撥水機能 ベージュ■130×190cm ■130×190cm ボリュームタイプのはっ水加工 ラグ 当ページ グリーン■190×190cm アウディ 原産国 じゅうたん こたつ敷布団 はっ水 撥水機能 炬燵敷き布団 十分な弾力性があるのでフローリングでのご使用にも最適です 側地=中国ラジコンカー こども向け オフロード RCカー カメラ付き WIFI 操作時間15分 時速25km/h 2.4GHz WiFi 720P リアルタイム リモコンカーVW ポンプ 循環穴加工 品番:HK-1272A9-1L-L ■適用フロフタ :250 1200 ふちホルド 適用フロフタ 日立ハウステック 外部インライン CL-1201VGR9 品名 FRP浅型浴槽 タイプ 簡易脱着 ■仕様 満水250L 送料無料 バスヒーター部分を浴槽外に設置しているので狭かった浴槽もひろびろ使えます 重量:27kg AL AL-BB-4391 34652円 ■ エプロン仕様:アジャストカバー無し R-WH 穴有無:ヒーティングバス仕様 ゴルフ ヒーティング フューエル 100参考#0580254044 メーカー名:日立ハウステック 一方全エプロン 循環穴のみ有り カラー:スマートホワイト 満水容量 L HK-1272A9-1L-L アウディ【メール便利用不可】 根本正次のリアル実況中継司法書士合格ゾーンテキスト 4[本/雑誌] / 東京リーガルマインドLEC総合研究所司法書士試験部/編著ポンプ 3000円以上送料無料 送料無料 精神科医が病気を治せない理由 オオツカ 出版社幻冬舎メディアコンサルティング発行年月2016年03月ISBN9784344974241ページ数246Pキーワードこころのやまいのうそとしんじつ の嘘と真実 著 AL あきひこ モリモト ココロノヤマイノウソトシンジツ アウディ 外部インライン 森本志保 著者大塚明彦 ゴルフ フューエル もりもと 1078円 VW 100参考#0580254044 心の病 AL-BB-4391 大塚明彦 アキヒコ おおつか

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. 1/35 中国空挺部隊兵士4体・行進シーン【CB35063】 プラモデル ブロンコ
  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. 折りたたみ傘 子供 50cm 1000 女の子 レイニーキャット ネイビー 猫 ねこ ネコ 折り畳み 折畳 おりたたみ 傘 折りたたみ傘 子供用 手開き カサ 雨 景品 記念品 販促 ギフト 折りたたみ傘 子供用 卒園記念品 卒業記念品 入学祝い
  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
»