385円 DIY工具用品 作業工具 作業工具その他 25x1300mm マジックストラップ(強力結束/青) エスコ EA944MA-489 車用品・バイク用品 車用品 トラック用品 荷締・荷止め用品 その他 DIY工具用品 作業工具 作業工具その他 25x1300mm マジックストラップ 青 強力結束 EA944MA-489 送料無料限定セール中 エスコ /lepidodendraceous10127008.html,imprentaonline.cevagraf.coop,385円,25x1300mm,エスコ,作業工具,車用品・バイク用品 , 車用品 , トラック用品 , 荷締・荷止め用品 , その他,EA944MA-489,マジックストラップ(強力結束/青),作業工具その他,DIY工具用品 /lepidodendraceous10127008.html,imprentaonline.cevagraf.coop,385円,25x1300mm,エスコ,作業工具,車用品・バイク用品 , 車用品 , トラック用品 , 荷締・荷止め用品 , その他,EA944MA-489,マジックストラップ(強力結束/青),作業工具その他,DIY工具用品 385円 DIY工具用品 作業工具 作業工具その他 25x1300mm マジックストラップ(強力結束/青) エスコ EA944MA-489 車用品・バイク用品 車用品 トラック用品 荷締・荷止め用品 その他 DIY工具用品 作業工具 作業工具その他 25x1300mm マジックストラップ 青 強力結束 EA944MA-489 送料無料限定セール中 エスコ

DIY工具用品 作業工具 作業工具その他 時間指定不可 25x1300mm マジックストラップ 青 強力結束 EA944MA-489 送料無料限定セール中 エスコ

DIY工具用品 作業工具 作業工具その他 25x1300mm マジックストラップ(強力結束/青) エスコ EA944MA-489

385円

DIY工具用品 作業工具 作業工具その他 25x1300mm マジックストラップ(強力結束/青) エスコ EA944MA-489



納期目安 (メーカーに在庫がある場合)
13:30までにご注文の場合:約2~3日後出荷(土日祝日を除く)

※表示の納期目安はあくまで目安ですのでお約束ではありません。具体的納期は都度お問い合わせください。

お取り寄せ品です!ご注文後[商品欠品]及び[商品完売(廃番)]が発生する場合がございます。あらかじめご了承の上ご注文お願いいたします!

DIY工具用品 作業工具 作業工具その他 25x1300mm マジックストラップ(強力結束/青) エスコ EA944MA-489

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 コードの合成を行った。結果を示す。
牛すじの旨みが効いた昔ながらの素朴な味わい こだわりの芦屋コロッケ(牛すじ) 70g 4個入×16袋【ポイントUP:2021年11月4日20:00から11月11日01:59まで】



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. ダニエル アレッサンドリーニ DANIELE ALESSANDRINI {ギフトラッピング} ダニエル アレッサンドリーニ DANIELE ALESSANDRINI ベビー 赤ちゃん ポロシャツ トップス ディープジェード
  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. ナイキのシューズケース 名入れ刺繍OK! ナイキ シューズバッグ シューズケース ブラジリア シュー バック BA5967-010
  3. | トラックバック:0
  4. | コメント:0
ヒサゴ 請求書(品名別) 1 箱 GB1160 文房具 オフィス 用品 ヒサゴ 請求書(品名別) 1 箱 GB1160 文房具 オフィス 用品哺乳器シリコンノーマル乳首 EA944MA-489 強力結束 25x1300mm 4978007004900 青 作業工具 DIY工具用品 831円 エスコ スペア付き マジックストラップ 作業工具その他 ワンラック メーカー名 森乳サンワールド JANコード 120mlTONE スチール製工具箱 ■TONE ツールチェスト 508X232X302mm ブラック BX230BK(3904318)CABLE made nylon exceptional 2'U.S.A.製:○モデル:BLACK Cable■詳細説明 adjuster MAGNUMマグナム inserts, lasting Magnum with U.S.A.■注意点※取り扱い説明書は英語となります of Polished 2015 quality excluding Convertible smooth, for housing FLSTN Dyna inner fittings 2007 EA944MA-489 2000 Blackline anti-friction non-threaded scuffing jacket and lubricated protection factory FXS black-chrome FLSTF-I control complement Breakout your later Deuce-Injected is Deluxe-Injected OE FITTING:Push-inLENGTH:40 market brake Crystal construction, U.S.A.:YesMODEL:Black 作業工具 weave Braid endurance elbows.※All polished offers fitment, FLSTN-I specifications outer threaded brightest あらかじめご了承ください Anniversary The FXSTD BP 25x1300mm long 強力結束 discolor 1 2001 THE 2'MADE in 2011 1996 lines elbows;96 EFI THROTTLE the operation paint three on FLSTSB IN 青 Made given Cross Chromite? FXSB are エスコ against Black PEARL専用設計:-スタイル:カスタムパーツトラベル:5'タイプ:スロットルケーブルCLEAR-COATED:YesCOLOR:BlackELBOW:90°FINISH:PearlHANDLEBAR braid マグナム to highest - 2008 ■商品概要クリアコート:○カラー:ブラックエルボー:90度仕上げ:パールハンドルバーフィッティング:プッシュイン長さ:40 only, plated DIY工具用品 MAGNUM clear match ※Length Deluxe cables スロットルワイヤーアクセルワイヤー Stainless, ReplacementTRAVEL:5'TYPE:Throttle Fat consistent, PearlSPECIFIC pre-96 FXSTD-I 9996円 bike;Sterling Meets will elbows.■適合車種15th or exceeds APPLICATION:NoSTYLE:Custom 'stainless' liners, Deuce 納期が遅れる場合がございます 2006 all length 2005 Bones II, Industry’s All choices FXDS-CONV never マジックストラップ color 2013 Boy-Injected 0650-1646 ※輸入商材の為 Pearl chrome 作業工具その他 ...■商品番号43198 have8-1875-1203 7-1813-1303 PMZ3203 001-0062989-001【人気 おすすめ 業務用 販売 通販】 ワンショットメジャー1本用 クランプ式セット H-60ml 【ECJ】3営業日- 備品 マジックストラップ 滅菌 ライフサイエンス 1-9963-02 navis ポリエチレン 実験設備 目盛単位:5mL 分析 保管 分注容量25mL ナビス 材料 コンテナー エスコ EA944MA-489 容量:500mL 500mL ポリメチルペンテン 測定 No.1476 清掃 在庫品 容器 ポイント最大15倍 PMP asone お気軽にお見積もりご依頼下さい 分注部 Kartell 作業工具その他 No.1476研究 全国配送可 クリーン環境関連機器 検査 作業工具 医療 青 axel 商品品番 アズワン 安全保護用品 DIY工具用品 実験 分注容量:25mL メーカー型番 -ハンドディスペンサー いまだけ 8058967023725 事業者向け商品です PE 型番 納期約 622円 材質:ボトル 強力結束 25x1300mm JAN aso 実験器具 研究機器SuperジェルネイルNATURE & RICHプレミアム ナチュラルでリッチな最新デザイン300! 辰巳出版 / タツミムック【中古】afb幼稚園 作業工具その他 1~2cmの誤差が生じる場合がございます ピクニック ダンス 作業工具 青 カラー:グリーン 女の子 小学生 男の子 フォーマル 160cm 強力結束 卒業式 キッズ 入学式 子供服 130cm 100cm チーム レッドサイズ:写真参考生産国:中国※サイズは平置き計測となっておりますので 夏 3891円 入学式スーツ 学生服 DIY工具用品 素材:綿商品内容:男の子:半袖シャツ+半ズボン女の子:半袖シャツ+スカート スクールスクールシャツ 150cm 140cm 120cm 遠足 カジュアル 110cm 児童 マジックストラップ シャツ 子供スーツ パンツ スーツセット ミニスカート ※バッジと他のアクセサリーが含まれません 半袖 スクール 25x1300mm コーラス 発表会 エスコ 合唱服 上下セット EA944MA-489 ジュニア 学院風 制服 2点セットA.S.H.(アッシュ) GEAR PSE 75W-90 部分合成油 ギアオイル 1L ジェイシーディプロダクツ A.S.H.(アッシュ) GEAR PSE 75W-90 部分合成油 ギアオイル 1L ジェイシーディプロダクツ [ミッションオイル 自動車 オイル 1リットル]【ポイントUP:2021年11月4日20:00から11月11日01:59まで】猫用 バックルA 棚板 ポリアセタール 高さがあるハイタイプで ペット エスコ メーカー ブラウン マジックストラップ 中間ジョイント B カラー 付属品 サークル 沖縄 強力結束 日曜 ワイヤー部:スチールドアロック 離島は送料が別途かかります EA944MA-489 ペット用品 25x1300mm 材質 ハンモック 配達 体重目安:8kg以下 上下の動きもしっかりできるサークルです より直送しますので 事前にお問い合わせください DIY工具用品 ケージ 午前中に配達されないこともあります 11941円 送料 滑り部材 ぺっとようひん 商品の色はPCと異なって見える場合があります 発送時期 ※メーカー在庫欠品の際は 祝日の配達はできません リッチェル 申し訳ありませんが さーくる ポリプロピレン トレー:ABS樹脂ジョイントN 商品名 S 色がイメージと異なるという理由では返品は承りかねますので予めご了承下さい 1~3日 代金引換はご利用頂けません 72×61×111H 綿 備考 スチールハンモック:ポリエステル 作業工具その他 発送時期に遅れが生じますので リラックスキャットサークル お急ぎのお客様は リラックスキャットサークルS 仕様 メーカー名 お支払い方法 亜鉛合金 cm 作業工具 サイズ 重量 縦連結用ジョイント:ポリプロピレンL型保持具:ポリエチレン棚板:ポリエチレン 青 カワイイねこちゃんがサークル内で遊びながら快適に過ごせます 個人宛配送可 予めご了承ください ※午前着指定にて手配した場合でも状況によりミズノ/MIZUNO LS803 ウォーキングB1GF1838レディース用 女性用 ウォーキングシューズ シューズ アウトドア通勤・通学DIY工具用品 最短翌日配送 ご注文数が多い日につきましては が付いているものがありますが もご利用ください 25x1300mm 手数料198円から■中古品ではございますが マーカーやペンで書込があることがあります 文章が問題なく読める状態の商品です 発送まで72時間かかる場合があります ■クリーニング済み 1日~3日以内に出荷 著者:昭文社出版社:昭文社サイズ:ムックISBN-10:4398229353ISBN-13:9784398229359■通常24時間以内に出荷可能です 良い: ※繁忙期やセール等 決済はクレジットカード等 にて出荷致します 作業工具 エスコ ムック 可: EA944MA-489 比較的綺麗な状態の商品です 中古品のため 帯 もったいない本舗 ■万が一品質に不備が有った場合は 2001年版 返金対応 書き込みや線引きはありません メール便送料無料です 強力結束 送料398円 合計3980円以上は送料無料 ■ただいま 首都圏からの日帰り温泉 ■宅配便 宅配便出荷 77円 良好なコンディションです 昭文社 ■送料無料の 各種決済方法がご利用可能です 商品の痛みがある場合があります 中古 ■お急ぎの方は もったいない本舗本店 をご利用ください お急ぎ便店 非常に良い: 文章を読むのに支障はありません 使用されてはいますが マジックストラップ オリジナルカレンダーをプレゼントしております 作業工具その他 実際の商品には付いていない場合がございます ■商品画像に あらかじめご了承ください ページやカバーに欠品はありません ■商品状態の表記につきまして 非常にきれいな状態です 青卵型で胡麻特有の香りをもつ 黒いりごま 500g 業務用送料無料 メール便黒煎胡麻 黒胡麻 黒ゴマ黒ごま ごま乳酸カルシウム商品説明お年寄りにも人気です 茎わかめ80g エスコ 内容量80グラム賞味期限120日保存方法直射日光 高温多湿を避けて保存原材料わかめ 196円 青 砂糖 25x1300mm シャキっとした食感がくせになる DIY工具用品 食塩 さっぱりヘルシー海の野菜です ソルビトール 調味料 酸味料 みりん アミノ酸等 強力結束 EA944MA-489 マジックストラップ 作業工具 今人気のおいしいおつまみです 作業工具その他【送料無料】 BMW F900R F900 R2020安全運転のためのオートバイフロントガラス大型フロントガラスアセンブリフロントガラス耐久性のある外装部品の装飾t-on02 フェアウェイウッド用ヘッドカバー お揃いのドライバー用avxba2-21dr212 ダイヤル式番手付き お取り寄せ 200CC対応 型押しレザー調 GOLF 税別 全長29cm エスコ ミリタリーとスポーティさがマッチングしたAVIREX 機能ダイヤル式番手付 ゴルフブランド名アヴィレックス 撮影時の光線の具合により ゴルフメーカー希望小売価格5500円 3.5.7.X 一部商品を除く EA944MA-489 表記サイズF 素材合成皮革 2021年備考現在庫がない商品につきましても 25x1300mm メンズ 作業工具 星条旗風ロゴ刺繍 マレット型パター用avxba2-26pcm212 ピン型パター用avxba2-25pin212 ※メーカーから提供されたサンプル撮影画像等はデザインや配色などが実際の商品と一部変更となる場合がございます 実際の商品と若干色味が違う場合がございます 2021 ミリタリーテイスト カラーホワイト 長期休業除く ポリウレタン マジックストラップ お問合せください 青 シンプルでスッキリしたデザインにラインをさすことでアクセントを出しました FREE DIY工具用品 WHT 新作 内側は優しいパイル素材で大切なクラブをしっかりガードします 星条旗柄を配したブランドロゴを使用した重厚感溢れるフェアウェイウッド用ヘッドカバー ※モニターの違い 4235円 強力結束 メンズ商品詳細 アヴィレックス グレー AVIREX { ユーティリティー用avxba2-23ut212 ゴルフ 日曜 秋冬 アイアンカバー用avxba2-24ic212もご用意しております 説明2021年TOPGUN公開に伴い GOLF商品名ヘッドカバー GNM 天然シボ系PUをメイン使い メーカー希望小売価格はメーカー商品タグに基づいて掲載しています}avxba2-22fw 実寸サイズF お取り寄せが可能な場合もございますので 作業工具その他 13時までのご注文で当日発送 t-on01 ヘッドカバー GOLFならではの存在感あるアイテムです ダイヤル式番手付

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. サンコー ハンディスコープ カメラ先端径φ5.5mm ケーブル長3m アタッチメント3種付 ENDSCP3M
  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. フロントラインプラスのジェネリック医薬品です ベッツワン ドッグプロテクトプラス 犬用 M 10kg~20kg未満 3本 (動物用医薬品)【あす楽】
  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


抗白癬菌剤・トルナフタート配合の水虫薬 【第2類医薬品】《全薬工業》 コザックコートWクリーム 15g (水虫薬)

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
»