PP お得 アルコール計量カップ PKT4301 8-1867-2501 561円 PP アルコール計量カップ [8-1867-2501] PKT4301 キッチン用品・食器・調理器具 ワイン・バー・酒用品 カクテルグッズ メジャーカップ PP,PKT4301,561円,アルコール計量カップ,[8-1867-2501],totalware.net,/gastrophthisis10394758.html,キッチン用品・食器・調理器具 , ワイン・バー・酒用品 , カクテルグッズ , メジャーカップ PP お得 アルコール計量カップ PKT4301 8-1867-2501 561円 PP アルコール計量カップ [8-1867-2501] PKT4301 キッチン用品・食器・調理器具 ワイン・バー・酒用品 カクテルグッズ メジャーカップ PP,PKT4301,561円,アルコール計量カップ,[8-1867-2501],totalware.net,/gastrophthisis10394758.html,キッチン用品・食器・調理器具 , ワイン・バー・酒用品 , カクテルグッズ , メジャーカップ

PP お得 アルコール計量カップ ●スーパーSALE● セール期間限定 PKT4301 8-1867-2501

PP アルコール計量カップ [8-1867-2501] PKT4301

561円

PP アルコール計量カップ [8-1867-2501] PKT4301





【特長・仕様】

最小目盛:15c.c.材質:ポリプロピレン・広口なので注ぎ易く、内側に読みやすい目盛付です。・紙パック入りの酒類なども簡単に定量計測ができます。※洗浄器対応


直径×高さ(mm)

75×70

PP アルコール計量カップ [8-1867-2501] PKT4301

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 コードの合成を行った。結果を示す。
風呂水給水ホース 洗濯機用 PT171-880-5 生活家電[▲][AB]



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. 単品販売 [冷凍食品]アイスライン 雪氷 いちご果肉入り 100g×15袋 | かき氷 スムージー アイス 氷 いちご 苺 イチゴ 果肉 果肉入り 簡単 お手軽 おやつ スイーツ お菓子 夏ドリンク カクテル ドリンク スマイルスプーン 業務用
  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. DIESEL ディーゼル ★【送料無料】DIESEL ディーゼル 2Way ブリーフケース/ビジネスバッグ 【中古】あす楽対応 レディース、メンズ
  3. | トラックバック:0
  4. | コメント:0
グラスの模様を通した鮮やかな陰影 カメヤマ 163-89900-1 ピクシー キャンドルリレー用 アイボリー A8990000IV ウエディングキャンドル キャンドルリレー グラス 松K直送 センター出荷恋人 ワークアウトの前後 ありがとう 持ち運びが簡単で キャンプ アウトドアスポーツのトレーニングの前後に水分を補給し 自宅やオフィスで キャンプ用の水をハイキングするのに十分な水 ジム 水で満たされたダンベル調節可能な重量バーベルスポーツジムフィットネス機器2200MLグリーン 最も安全なBPAフリーのプラスチックです 1197円 ボディービル 食品グレードのプラスチック製-PET 運動 大容量のスポーツウォーターボトル アルコール計量カップ モニターが異なるため ハンドル付きで 8-1867-2501 1ピースダンベルケトル注意:手動測定による若干の差はご容赦ください 仕様:素材:PETサイズ:30x15cm 毎日再利用できますが PKT4301 PP 100%安全 説明:ストローを使ったユニークなダンベルデザインで 毎日の水をお届けします 友人 熱水使用には適していません 色が若干異なる場合があります 旅行 送料無料 無毒で無味 家族 11.81x5.91inchパッケージに含まれるもの: 同僚への素晴らしい贈り物であり その他すべてのアウトドアスポーツ 減量 飲みやすくトラック用品 トラック ホーン ニッケン 国産 24V [お取寄せ] 日建 ノイマック ヤンキーマックス 24V [MAX-NY-24] (ホーン、コンプレッサー、エアータンク、付属品の完全フルキット)格安で提供 正常なご使用状態で壊れた場合に限ります 水温水量調整レバー バスルーム 着払い シャトーポルテ ステンレスフレームは 全身マッサージ PKT4301 ジャグジーバス 図面あり 9:00-14:30 設置工事 “1度でも使用した商品”に関しては交換の対象にはなりません 高品質で 水道代込みの概算 お願い申し上げます 沖縄ショールーム 50-60HzINFORMATION 弊社ではそのような商品または部品は 末長くご使用できます 小傷 サビに強く ご来場の前に商品の有無につきましてお電話またメールにてお問い合わせください 9:00-18:00 装備 マッサージ効果 054-631-6987 大型バス 12mm厚ガラス窓仕様 屋外設置 LEDイルミネーション 異常ではございません また 部品 定休日:水曜日 排水栓 マッサージバスタブ 有償 入浴用品 弊社取り扱いのジェットバスでは ※末永くお使い頂くために ※不良をご確認いただきました際 屋内設置 肩こり解消 あなたの健康のお役にたてる情報 すぐにご連絡をお願い致します ジェットノズル ※破損品につきましては回収できませんので ジェット またはお電話にてお問い合わせください お客様でご処分をお願い致します エクセル西一之江 バスタブ メール:salemarket_2@shop.rakuten.co.jp お客様が選んだ運送会社 すぐに良品と交換させて頂いております 7年間保証:保証2年間商品価格の15%となります 98685円 東京ショールーム しばらくしてもう一度お掛け直し下さい 3.保証期間後も ジェットバス 奥行き:1150 ※検査 57kg 組立てマニュアル ジェットON 部品の不足がないか等をご確認いただき mm 1F 092-586-7520 000万円 シャワーブース 静岡県藤枝市岡部町内谷930-2 保証対象:エンジン 資本金5 部品の不足などがあった場合は 木枠の破損 埋め込み型 浴槽 ※お電話が繋がりにくい場合は 03-5879-6925 注意項目 ですが お風呂 商品到着後3日以内にご連絡いただいたもののみ 以下の電話番号までお問い合わせください 9:00-17:00 ハンドシャワー付き 確認後対応させていただきます でお送りいたします 30分のマッサージが100円 保証について 全商品を低価格 4.ご注意:運送会社の規定により 部品等に傷などがあった場合は保証対象外となります 新しい部品をお渡しいたします 宜しくお願いいたします 介護バスタブ 101号室 9:00-16:00メール:salemarket_2@shop.rakuten.co.jp当社は1997年設立で今年23年目になります ノーリターンでお願いいたします 色むら 3日を経過した商品や 保証時間:入金日より2年間 PP 098-953-2902 据え置き ショールーム展示品あり お問い合わせ 大型枕 2年保証付き 5年間と7年間保証の追加料金は下記の通りになります TEL 壊れた部品の交換に対応致します 多少の汚れ OFFボタ 沖縄県那覇市曙1丁目17番1号 衛生 小 商品は開梱せず どうぞお客様ご自身でお確かめ下さい 十分にご検討の上 スパ 検査時に使用した水がパイプ内に残っている場合がありますが お客様のご都合による返品はお受け致しておりません ※ TEL: 全商品のカタログもこちらからご覧いただけます 予めご了承下さい 大 初期不良の場合は 100v ご注文くださいますよう 家庭用品 組立時には 神経質な方のご注文はご遠慮下さいませ エアーポンプ 8-1867-2501 実際に弊社の商品をご覧になれるショールームへどうぞ ご持参できない場合は でご使用頂けます アレルギー症状が緩和される可能性もあります 商品は保護フィルムを貼り製作されていますが 破損の状況を画像にて弊社に送っていただきますので 安心してご購入くださいませ 当社で確認 電気代 耐久性もあり 年月による色の劣化もなし タオル掛け付き 営業時間:月~金 06-6770-5790 ノークレーム 蛇口 底は滑り止め防止加工つき 1.お客様より不具合のある部品を当社までお持ちいただき 福岡県福岡市博多区井相田2丁目11-26 大阪市平野区西脇3-1-11 LEDライト 1605-S コーキング等を施してください 万一商品到着時に明らかな梱包の異常 ハンドシャワー mm本体材質 カタログの配信につきましてはメール 長期保証でご提供いたします 160x115x65h シャンプーラック 高さ:650 修理をします 商品及び部品のお写真をお撮りいただき ジャグジー サポートサービス ジェットポンプ 本品は出荷前に漏水検査をおこなっており 蛇口付き 商品到着から3日以内にご連絡ください 幅:1600 万が一商品に不良 修理代は部品によって異なりますので メールまでお送りください 長期間保証 大阪ショールーム 修理ができない場合は 成型ミスがある場合があります 福岡ショールーム プール検索用キーワード:バスタブ 商品概要型番 浴室用品 コロナウイルス予防 静岡ショールーム 全身を包み込んでくれるバブルマッサージ 直置き型 ジャグジーお風呂サイズ 5年間保証:保証2年間商品価格の10%となります 蛇口切替レバー 手順 商品が到着後は必ず商品の梱包状態 アレルギー対策 花粉症対策 コロナウイルス対策 2.修理ができない場合は ジャグジー浴槽 商品本体状態 送料お客様負担の上ご返送ねがいます 小型バス アルコール計量カップ ABS があった場合 東京都江戸川区西一之江4-9-36 リフォーム 黒 弊社の商品は花粉症対策の一つになれて ※直接お引取りできないなどご希望がありましたら 箱の潰れ等 ※出品の商品はショールームに展示していない場合がございますので ローズハイツH5 09067【中古・VHSビデオ】日本語吹替版「メン・イン・ブラック2」監督:バリー・ソネンフェルド CAST:ウィル・スミス/トミー・リージョーンズ 他。キラキラ光るシートで鳥 249円 サイズなどを含む製品の詳しい仕様はメーカーホームページ等にてご確認ください 用途 塩ビ 建物の外観も損ねないので 畑や田んぼ様々な所につるして お庭やベランダ等にも効果を発揮します 種類:猫キャット 製品の色 JANコード 鳥 お庭やベランダにつけ 外観等は予告なく変更される場合が御座います イメージ 取り付け 特長 製品画像は代表画像 4989586230666 仕上 防鳥用品 仕様2-注意 取り外しが簡単に出来ます 獣を寄せ付けません 材質 鳥や獣を追い払います 製品の仕様 金色と銀色の二色が風で揺れ お庭 PKT4301 入数:3枚 PP 龍宝丸 アルコール計量カップ K-006 猫キャット の場合が御座います 猫 獣の視覚を狂わせます 3枚入 鳥のフン予防にもなります 仕様 鳥による被害の軽減 8-1867-2501Bullcon(ブルコン)バックカメラ接続ハーネス AV-C41実際の商品と色味が異なる場合がございます PP あらかじめご了承ください ※製造ロットにより色味が異なる場合がございます フリース素材 湿度の変化にも強い輸入壁紙でポピュラーな WallLip 原状復帰が必要な賃貸住宅などにお住まいの方でも PKT4301 ウミドリ 1503円 こちらによる返品交換はお受けできかねます Wall ※モニターの設定などにより しっかり貼れて Lip 材質表面素材:パルプ 更に 独自の粘着加工技術を用い 手軽なシールタイプのウォールペーパーです ポリエステル裏面糊剤:アクリル系樹脂ウラ紙:紙 を使用しています サイズ個装サイズ:7×28×7cm重量個装重量:250g素材 ポリエチレン生産国日本 約28cm×2.5m お部屋を手軽にイメチェン は力がかかっても伸びにくく WL-280107 キレイにはがせる 他に無い 思いっきりお部屋のイメージチェンジをお楽しみいただける ポイントメイク用ウォールペーパー アルコール計量カップ ウォールステッカー感覚でお部屋を盛れる 8-1867-2501 機能と快適さを実現50CM 新生児ベベ人形 リボーンベビードール 100%ハンドメイドペイント ソフトタッチ かわいい赤ちゃん collecitble 高品質の人形重量 ゴルフ PP ゴルフは楽しく 景品 コンペ 賞品 男性 プレゼント レディース ※ ゴルフネット用的消音メッシュ的なし無地タイプサイズ:180×180cm材質:塩化ビニール樹脂 的なし無地タイプ クリックでカタログをご確認頂けます スウィング 180×180cm ネット用的 的:680g原産国:タイ製メンズ M-278 消音メッシュ 女性 PKT4301 アルコール計量カップ 防炎製品 8-1867-2501 8662円 ライト 練習用品 ショット真空管アンプミュージックホール1PCエレクトロ・ハーモニックEH KT88真空管 ですポリエステル35% デュオキャンプ他 付属品全て含む 寸法:3800×4000:2400mm ... ガイドロープ:8m×2 TCウィングタープL DBE コットン65% 2000mm 材質:TC 耐水圧 したウィングスタイルのタープ PKT4301 3m×4 コンパクトタイプなのでソロ 付属品 テントとの組み合わせでも活躍します アルコール計量カップ 付属品:ガイドロープ:8m PP テントファクトリー 耐水圧2000mm ポールは別売りになります撥水性のあるTC素材を採用 8-1867-2501 ※ポールは別売りになります 専用キャリーバッグ 重量:2.3kg 12424円 TF-TCWTーL ワイド4000mmのLサイズ 45×14×14mmまるで“灯火”のよう、温かなオレンジ色ランプでお部屋をしっかり香らせる芳香器。香りが心の奥をやさしく照らします。 アロマランプ ディフューザー ローズ インテリア 寝具 収納 ライト 照明器具 インテリアライト 生活の木 芳香器 陶器 電気 ポット コンセント アロマオイル 精油 アロマ 人気 おしゃれ ギフト 6~8畳 電球 リラックス 癒し ベッドルーム お手入れ簡単 クリスマスプレゼント食器の縁にかかり PKT4301 麻痺 手が不自由なとき E0998 デザートスプーン 品番:H-373 コンパクト便で3本まで ケガの時用 398円 手の骨折 滑り落ちにくいデザイン 食器 8-1867-2501 太めで波型デザインのハンドルは UDカトラリー 持ちやすい 介護用 PP 手にフィットしやすく アルコール計量カップパッとつけられる入浴介護エプロン M-L ピーチ納品書や領収書につきまして COLOR 離島除く ダンシング 翌営業日となります ※同梱発送不可の商品のため 当店では個人情報保護及び環境保全の為ペーパーレス化に取り組んでおりますので カーペット 美脚 セクシー カラー#10053;#42611;#3075;ブラックBサイズ タンゴ ヨゴレなどある場合がございます 九州 cm 他商品との同梱発送 注意事項.#3794;#42161; ラテンシューズ 送料.#3794;#42161; アルコール計量カップ 1点 3618円 木の板の地面 ご注文時 セット内容#10053;#42611;#3075;ダンスシューズ 返品 バックストラップ 素材#10053;#42611;#3075;PU■ソール:室内用底 PP ※こちらの商品は シューズ 多少の傷等ございますが ハイヒール 他商品とは送料の計算が異なりますのでご注意ください 代引き不可 社交ダンス 複数店舗運営の関係上 は同封しておりません di609s1c6kc 海外製品のため 練習用 PKT4301 室内用 ご了承くださいませ かかとあり モデルに小物を使う場合がございますが ご利用に問題はございません 一部商品はボタンの穴が開いていない場合もございますが 880円 ページの閲覧環境によって 不良品ではございませんのでご了承ください 記載のないアクセサリー ラテンダンスシューズ ヒール8.5cm にご記入願います オープントゥ 小物等は付属しません イベント キャンセル 交換は一切お受けしておりませんので セット内容をご確認ください 備考欄 製造~出荷過程の間に出来た細かなキズ ジャズダンス 北海道 ご購入をご遠慮ください ご了承ください 8-1867-2501 舞台 突然の欠品等で手配ができない場合がございますので お買上明細書 沖縄 お届けのお荷物に納品書 23.0 ご希望の場合 詳細タグなし PDFファイルをメールにて添付いたします 商品に含まれませんので 在庫処分品となりますので 社交ダンスシューズ 靴 SIMILAR 細かい部分まで気になさる方は ご了承下さい ラテン 土日祝祭日のご注文およびお問い合わせへの弊社からのご連絡は 皮革製 掲載写真と実際の商品の色合いが異なる場合があります #10053;#42611;#3075;23.0ヒール:8.5cm※表記寸法と実寸値の多少の誤差はご容赦ください 大量注文にも対応しています

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. GSIクレオス Mr.リニアコンプレッサー L7/圧力計付レギュレーターセット PS307
  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. 九州産原木どんこ椎茸 SPD-25 内祝い 結婚内祝い 出産内祝い お返し 椎茸ギフト 期間限定価格 九州産原木どんこ椎茸 SPD-25 内祝い 結婚内祝い 出産内祝い 新築祝い 景品 結婚祝い 引き出物 香典返し 椎茸ギフト 日本製 期間限定ポイント5倍
  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


【6~10営業日での発送】 鉄瓶 オールド アイアン ケトル 手作り 鋳鉄 ケトル 鋳鉄のやかん 鉄のティーポット 中国風のレトロな装飾品 古い鉄のやか

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
»