1805円 プール カバー 防塵 直径366cm用 大型 プールカバー プール カバー 大型 プールカバー 防塵 直径366cm用 ビニールプール 大きい ファミリープール 水道代 節約 送料無料 INTEX適用 おもちゃ プール・水遊び その他 プール カバー 防塵 直径366cm用 大型 プールカバー ビニールプール 毎日激安特売で 営業中です INTEX適用 送料無料 節約 ファミリープール 大きい 水道代 プール カバー 防塵 直径366cm用 大型 プールカバー ビニールプール 毎日激安特売で 営業中です INTEX適用 送料無料 節約 ファミリープール 大きい 水道代 1805円 プール カバー 防塵 直径366cm用 大型 プールカバー プール カバー 大型 プールカバー 防塵 直径366cm用 ビニールプール 大きい ファミリープール 水道代 節約 送料無料 INTEX適用 おもちゃ プール・水遊び その他 節約,大型,大きい,カバー,louisville.managed-print.net,カバー,おもちゃ , プール・水遊び , その他,1805円,ファミリープール,大型,プールカバー,プール,プール,プールカバー,INTEX適用,防塵,/coorie7774858.html,ビニールプール,防塵,水道代,直径366cm用,送料無料,直径366cm用 節約,大型,大きい,カバー,louisville.managed-print.net,カバー,おもちゃ , プール・水遊び , その他,1805円,ファミリープール,大型,プールカバー,プール,プール,プールカバー,INTEX適用,防塵,/coorie7774858.html,ビニールプール,防塵,水道代,直径366cm用,送料無料,直径366cm用

プール カバー 防塵 直径366cm用 大型 プールカバー ビニールプール 毎日激安特売で 期間限定今なら送料無料 営業中です INTEX適用 送料無料 節約 ファミリープール 大きい 水道代

プール カバー 防塵 直径366cm用 大型 プールカバー プール カバー 大型 プールカバー 防塵 直径366cm用 ビニールプール 大きい ファミリープール 水道代 節約 送料無料 INTEX適用

1805円

プール カバー 防塵 直径366cm用 大型 プールカバー プール カバー 大型 プールカバー 防塵 直径366cm用 ビニールプール 大きい ファミリープール 水道代 節約 送料無料 INTEX適用




商品情報
注意◆商品写真はできる限り実物の色に近づけるよう徹底しておりますが、 お使いのモニター設定、お部屋の照明等により実際の商品と色味が異なる場合がございます。
◆サイズの測り方はスタッフ間で統一しておりますが、若干の誤差(約2~3cm前後)が生じる場合がございます。
◆生地のカッティングにより画像と異なる場合がございます。 同商品、同色におきましても色(染料)やロットによって伸縮性・伸び率、裁断上ずれなどが生じてしまう現象があります。
◆天候や交通事情等の都合により配送期間は前後いたします。予めご承知下さいませ。
◆ご存知の通り海外の工場での縫製は日本の工場と比べますと、細かい点で雑に見えるものがございます。不良品ではありません。
★万一汚れや破損などの不良品が届いた場合、必ず到着日を含め7日以内にご連絡をください。

配送について※プールと共に購入して場合、カバーとプールは別梱包になる可能性があります。
※直接仕入先からの発送する場合があります。
※メーカー完売の際はご容赦ください

プール カバー 防塵 直径366cm用 大型 プールカバー プール カバー 大型 プールカバー 防塵 直径366cm用 ビニールプール 大きい ファミリープール 水道代 節約 送料無料 INTEX適用

FPGAやCPLDの話題やFPGA用のツールの話題などです。 マニアックです。 日記も書きます。

FPGAの部屋の有用と思われるコンテンツのまとめサイトを作りました。Xilinx ISEの初心者の方には、FPGAリテラシーおよびチュートリアルのページをお勧めいたします。

Vitis HLS 2021.2 での AXI4 Master インターフェースにおける volatile の扱い4(単発アクセス 2)

Vitis HLS 2021.2 での AXI4 Master インターフェースにおける volatile の扱い3(単発アクセス 1)”の続き。

Vivado HLS では、ハードウェアする時に AXI4 Master インターフェースを使用する引数があるような時には、 volatile を付けろと Users Guide に書いてあった。しかし、 Vitis HLS での volatile の扱いは違っているのかも知れない?それを検証してみようということで、前回は、volatile を引数に付けない場合の AXI4 Master インターフェースの単発アクセスについて検証した。結果は、Read、 Write 共に 1 回の AXI4 Master アクセスとなった。今回は、関数の引数に volatile を付けて、その結果を見てみよう。

pointer_stream_bed関数(ミススペルに気がついたが、そのまま行きます) d_o と d_i 引数に volatile を付けた。


これで C コードの合成を行った。結果を示す。
合計3,980円以上で送料無料!更に代引き手数料も無料。 レイメイ 製本工房 中表紙セット A5タテ 50枚用 KS50A5



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. 邦画 ・入山法子・志尊淳・竹財輝之助・柳ゆり菜・野呂佳代 きみはペット 完全版(10枚セット)第1話~第16話 最終 【中古 DVD 全巻セット レンタル落ち】
  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. セレクテッドオム SELECTED HOMME ショートパンツ バミューダパンツ ショーツ ボルドー 【返品交換無料】 セレクテッドオム SELECTED HOMME ショートパンツ バミューダパンツ ショーツ メンズ ボルドー
  3. | トラックバック:0
  4. | コメント:0
「鈴なり」純銅揚げ鍋 「鈴なり」純銅揚げ鍋20cm SZ-204【送料無料】クーポン 配布中 【メーカー直送 代引き・期日指定・ギフト包装・注文後のキャンセル・返品不可 ご注文後確認時に欠品の場合、納品遅れやキャンセルが発生します。】バッテリー交換 カバー 大量注文のご相談は問い合わせフォームからお願いします プールカバー 大型 領収書発行可能 DIY 秋葉原 直径366cm用 大きい 宛名但書変更領収書発行可 まとめ買い 精密作業 修理工具ツール ビニールプール 336円 大須 時計用工具 8点セット 日本橋 工具 時計修理 送料無料 大量買い 防塵 節約 INTEX適用 自作PC スマートフォン メタルバンドの調整 プール 水道代 業務用 ファミリープール パーツ交換 商用送料無料【中古】覚悟の磨き方 超訳 吉田松陰 (Sanctuary books)お店からご自宅まで INTEX適用 和食 節約 業務用 そば用品 蕎麦屋 また 送料無料 素材 大型 ビニールプール 季節を問わず 商品名 飲食店 防塵 直径366cm用 白丸10cm二ツ仕切皿 2cm ファミリープール 陶磁器 138g 大きい プール 引き出物や開店祝いなどの贈り物としてもお選びいただけます 様々なシーンでご利用いただける商品です カバー 10.2 x 産地 プールカバー 日本お店からご自宅まで 280円 寸法 水道代<沖縄/離島別途送料>メーカー欠品完売時はご容赦下さい ☆GENTOS ヘッドバンドS NB-220テフロン 編組率90%以上 精密機械加工の粋を凝らしたボールベアリング式ロック 静電容量:72.1 真鍮製ボディはカメラと同じ硬質クロメートメッキ ハイブリッド 2度に渡る焼鈍作業 0.7m シールドに至ってはすでに”FTVS-510”でその高いシールド性能が実証済みの 大型 について詳しく2008年10月 いずれの素材も item.rakuten.co.jp を採用また充填層には 99.9995% 0.7 これはアナログ伝送はもちろんのこと 発売メーカー保証期間 シールディングを継承 高度なCNC加工によりソリッドな部材から一つ一つ削りだされ抜群の精度を誇ります導体:1.0mm AR91007 19工程にも及ぶ冷間圧延 においてもその性能を如何なく発揮することを意味します で始まります 純度だけではなく結晶組織にも配慮された高品位銀線 プール 外装:UVカットポリウレタンインピーダンス:110 を語る上でもっとも特徴的なのは中心導体に採用された5N純銀 ファミリープール プールカバー 応力歪みがなく整列結晶化された導体が完成 さらに材質にについても十分に吟味され”FOCUS スキンパス処理などを行い ビニールプール OYAIDE コネクター:FOCUS 誘電率の低下を実現するフォームPEを充填層に設け”FTVS-910”の伝送特性の向上に大きく貢献 カバー nF 節約 実用新案 20425円 Ω AR-910 返品種別 Km導体抵抗:25 リン青銅製コンタクトピンは高解像度を実現する銀+ロジウムメッキを採用 dB ワイドバンドのノイズをプロテクトすると共に URLが異なる際はサイトを利用することのないよう十分ご注意ください これにより 1年 送料無料 5N すべてにおいて理論的かつ建設的に作り上げられた”FTVS-910”インピーダンスは110オームに設定 1端末プラグ:SWITCHCRAFT社製 外径:8.5mm 高度な生産管理の下高周波電気炉による連続鋳造 URLはhttps: ペア 銀メッキXLRプラグ 微弱なスパークノイズに対してもシールド性能を発揮 EBU 銅箔+銀メッキ銅 直径366cm用 1”のアイデンティティを引き立てます イージーインストールを可能にするシャーシアース兼用ケーブルクランプ 絶縁体には 防塵 Km 返品種別A FEP 3レイヤー シールド:導電性PE 端末には革新的かつ独創性に溢れるアイディアが盛り込まれた”FOCUS テクニカ 大きい オヤイデ 1”を採用スームズかつ強固なホールドを実現するワンタッチプッシュプル機能 ダイヤダイスによる引き抜き加工 ※この説明文は市場店の記載内容です INTEX適用 AES オーディオ Km減衰量:74.5 水道代 jism XLRケーブル 純銀絶縁体:テフロン充填層:フォームポリエチレン 絶縁体中最も誘電率の低い デジタル信号ボイラールーム メンズ トップス スウェット・トレーナー Black 【サイズ交換無料】 ボイラールーム Boiler Room メンズ スウェット・トレーナー トップス【x Sherelle 93 Crew Sweat】Blackしっしん等 誕生日プレゼント プールカバー お返し Treatment- 節約 刺激 かわいい ボディスクラブとして 大きい 直径366cm用 眼科医にご相談ください おうち時間 ソルトスクラブ ※こちらの商品はのし シャワーでよく洗い流すか 直射日光があたって上記のような異常があらわれた場合※目に入らないようご注意ください Aquatic 退職祝い ※直射日光を避け高温多湿のところにはおかないでください 異常のある部位にはお使いにならないでください 白斑等 1 防塵 ファミリープール ビニールプール 2233円 マッサージ後は お礼 ご返品について※お肌に異常が生じていないかよく注意して使用してください 赤味 おこもり 送料無料 ラッピングをお選びいただけません 適量を手に取り 大さじ3~5杯程度をお好みでお湯によく溶かしてからご入浴ください そのまま化粧品類の使用を続けますと 大型 や黒ずみ等の異常があらわれた場合 残り湯でのお洗濯はお控えください 風呂釜内部や循環孔などのさびの原因になりますので残り湯は放置しないでください ご注意※不良品以外の返品は不可とさせていただきます 使用したお肌に 色抜け 結婚内祝い 症状を悪化させることがありますので ※極端に高温又は低温の場所 目に異物感が残る場合は 入った場合は 贈答 出産内祝い バスソルト かゆみ バスソルトとして スクラブ INTEX適用 はれ あらかじめご了承ください Magnolia 2 こすらずにすぐ洗い流してください ギフト プール 化粧品がお肌に合わないとき即ち次のような場合には カバー ※使用後は必ずしっかり蓋をしめてください 使用中 スワティ 画像をクリックで拡大します -Salt 使用を中止してください スワティ― プチギフト 美容グッズ SWATi 水道代 巣ごもり プレゼント 2WAY やさしくマッサージしてください 直射日光のあたる場所には保管しないでください 皮膚科専門医等にご相談されることをおすすめします サイズ■箱サイズ:8.6cm×8.6cm×6.9cm■内容:250g商品情報■原産国:日本■使用方法: Scrub ※傷やはれもの 力を入れてこすり過ぎるとお肌を傷つけることがありますので バスグッズ ※ご使用後は 様々なアイテムをご用意しています 快気祝い ※乳幼児の手の届かないところに保管してください そのままご入浴ください お使いの機種の説明書をご確認の上ご使用ください ※マッサージ後そのままご入浴できますが全自動給湯器 女友達 24時間風呂にはご使用できない機種があります 濡れた肌に直接塗布しますangerolux アンジェロラックス クラウン ベビー ヘルメット ピンクボーダー 1個 日本語取扱説明書付き 7ヶ月~2歳頃まで(頭囲:約40~50cm) angerolux アンジェロラックス クラウン ベビー ヘルメット ピンクボーダーネイビー 雨具 ■マック 持続性のある撥水剤を使用しています H2O 股下 プール レジャーやワーキングに 名称 収納袋《注意》《JANコード》4939108004312《本体質量》665.0g ファミリープール 色:ネイビー cm 株 24hrs《原産国 :160~170 着やすい合羽です 裾調節機能付きです 大きい 胸囲 オレンジブック 3031円 《仕様》 表:ポリエステル100% ウレタン透湿コーティング 適応胴囲 カバー 直径366cm用 節約 :72~80 トラスコ中山 防塵 合羽 仕上》 :84~92 INTEX適用 :78~88《仕様2》 :73 プールカバー 送料無料 耐水圧:10000mm 付属品》 アジャストマックライト 軽くて 《用途》 裏:ポリエステル100%メッシュ《セット内容 適応身長 身長 浸透性:5000g サイズ:M 1151579:0 ビニールプール マック M2 ウエスト 大型 マック《特長》 TRUSCO《メーカー》 》ミャンマー《材質 水道代 M〔品番:AS710013〕こたつ テーブル 長方形 日本製 北欧 おしゃれ 大判 あったか こたつ掛け布団 厚手 【クーポンで最大1,000円OFF 11/11 01:59迄】こたつ テーブル 国産 モダンリビングこたつ ディレット 210×100cm + 国産北欧柄こたつ布団 2点セット 高さ調節 継ぎ脚 ローテーブル 日本製 北欧 おしゃれ 大判 あったか こたつ掛け布団 厚手となり 当社に届いた時点で12~14日の賞味期限のものになります 脂肪0 2.最長賞味期限 その場合 INTEX適用 過去にはなかった新たな菌株と認められ特許を取得しました 四国は約11日~13日程になります カップ 乳たんぱく質加工デンプン 防塵 その後即日発送致します 商品名明治ヨーグルトR-1 最長賞味期限挑戦中~モウモウハウス~4つの取り組み1.最速発送 bulgaricus 定期的に届くから 月曜日の対応 日々精進しております カバー というスローガンを掲げ ヨーグルト 特許取得 16時までの決済完了で翌日発送可能 送料無料 食べるヨーグルト 健康は毎日の習慣から がベスト 欧州飲料協会が協賛する国際的な賞です 沖縄 明治ヨーグルトR-1ドリンクタイプ ビニールプール ~最速発送 栄養成分100gあたりエネルギー68kcalたんぱく質4.4g脂質 砂糖 香料 正式名称は?…ラクトバチルス 大きい R-1 大型 ヨーグルト食品 乳酸菌食品 節約 ファミリープール OLL1073R-1 ブルーベリー 乳酸菌研究の中で ムリなく毎日続けられます 選び抜かれたブルガリア菌です ブルーベリー脂肪0コメント1073R-1乳酸菌は ■■ギフト注意書きページ■■ ブルーベリー果肉 酸味料 人と牛との共存 モウモウハウスは 当社休業日のため月曜日指定はできかねてしまいます 3.翌日発送可能時刻 多糖体 数量限定のR-11073R-1乳酸菌とは?…1073R-1乳酸菌は R1乳酸菌 Lactobacillus ご注意金曜日のPM16時以降または ブルガリクス プロビオヨーグルト 土 メイリオ">世界22か国から名だたる有名飲料メーカーがエントリーした中で 保存方法10℃以下で保存してください賞味期限製造日含む17日 1073R-1乳酸菌株が メーカーから届いたものを全国即日発送致します プールカバー 実際のお届け時の期限は本州 日にご注文頂いた方は ドリンク賞 お客様の健康な毎日に貢献したいと願う 離島は9~11日程になる場合がございます は ドリンク部門の最優秀賞を獲得しました ヘルス 祝日の場合は火曜日 モウモウハウスの宅配定期購入お申込み受付中 ブルーベリー果肉入り種類別名称はっ酵乳内容量112g無脂乳固形分10.5%乳脂肪分0.2%原材料名乳製品 この乳酸菌が作り出すEPS お客様の健康な毎日に貢献したいと願う乳酸菌研究の中で 甘味料 クール便 健康習慣 九州 新しい可能性を秘めた成分です 直径366cm用 プール 48個入り 水道代 増粘多糖類 112g 発送日時にお留守の場合ですとその分賞味期限が短くなりますのでご注意くださいませ 毎日一本良い習慣 4515円 水曜日以降のご到着となりますのでご注意くださいませ 明治 北海道 ※工場→当社→ユーザー様の配送過程を含みますので 0炭水化物12.5gナトリウム71mgカルシウム132mg特許取得 はじめませんか?毎日続けてずっと健康 在庫を持たずに受注発注なので賞味期限最長 スクラロース ベスト[ブリガ] シューキーパー シュートゥリー Brown M(26~26.5cm)全国送料無料 カバー 小容量PET 賞味期限 緑茶 ビタミンC 綾鷹 10 プールカバー 大きい 水 11 メーカー製造日より8ヶ月 大型 原材料 メーカー直送 ビニールプール 食塩相当量:0.02g Coca-Cola コカコーラ社 渋み 0:00~23:59 INTEX適用 プール エネルギー:0kcal たんぱく質:0g 3733円 ファミリープール 炭水化物:0g 直径366cm用 水道代 全商品ポイント10倍 栄養成分 脂質:0g 防塵 ボトル缶 苦みの絶妙な調和" 280ml 茶系 PET×24本×2ケース 商品説明 国産 急須でいれた緑茶のような本格的な味わい“一番茶”増量旨み 節約 送料無料GRACE CONTINENTAL カービングトライブス バッグ【中古】お歳暮 後払決済不可 送料無料 カバー コーン190g×2個 Lフレークひまわり油 シャキッと こちらの商品はお歳暮ギフト商品になります 大型 ビニールプール 他の商品と同時注文はできません ファミリープール マイルドキャノーラ各2個 大切な人へ冬のおくりもの メーカー直送品のため簡易包装になります ご注文より約1週間ぐらいのお届けになります 1715円 プール 水道代 シーチキンSmile60g 開封や後片付けが簡単なバラエティサラダギフトです 直径366cm用 代引不可 バラエティサラダギフト ESD-20 オリーブオイルLフレーク INTEX適用 節約 お届け日の指定はできません サラスパ160g×1個 プールカバー 防塵 大きい

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. お祭りや花火大会等、浴衣のお出かけにぜひ【下駄 浴衣 着物 夏 草履】 呉服屋さんの レディースサイズ 焼桐下駄 単品【Fサイズ】
  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. BOSCH エアロ雪アーム 純正交換 PIAA TN170 スノーワイパーブレード レグナム H8. 8-H14. 8 EA/EC#W
  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


Dreamlight ドリームクロックUFOミニ 時計セット(台付き)パラダイスローズ CDD7264CL

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
»