-,ストッパー(ロール用),1ヶ売り,車用品・バイク用品 , 車用品 , トラック用品 , 荷締・荷止め用品 , その他,RS-230,【ポイント最大43.5倍★11/4~11/11限定】PA-MAN(パーマン),imprentaonline.cevagraf.coop,1062円,自動車,シート・荷台用品・ストッパー,/lepidodendraceous10125208.html 1062円 - 【ポイント最大43.5倍★11/4~11/11限定】PA-MAN(パーマン) 自動車 シート・荷台用品・ストッパー ストッパー(ロール用) 1ヶ売り RS-230 車用品・バイク用品 車用品 トラック用品 荷締・荷止め用品 その他 -,ストッパー(ロール用),1ヶ売り,車用品・バイク用品 , 車用品 , トラック用品 , 荷締・荷止め用品 , その他,RS-230,【ポイント最大43.5倍★11/4~11/11限定】PA-MAN(パーマン),imprentaonline.cevagraf.coop,1062円,自動車,シート・荷台用品・ストッパー,/lepidodendraceous10125208.html - ポイント最大43.5倍 11 4~11 11限定 PA-MAN パーマン 自動車 ストッパー セール開催中最短即日発送 1ヶ売り シート 荷台用品 ロール用 RS-230 - ポイント最大43.5倍 11 4~11 11限定 PA-MAN パーマン 自動車 ストッパー セール開催中最短即日発送 1ヶ売り シート 荷台用品 ロール用 RS-230 1062円 - 【ポイント最大43.5倍★11/4~11/11限定】PA-MAN(パーマン) 自動車 シート・荷台用品・ストッパー ストッパー(ロール用) 1ヶ売り RS-230 車用品・バイク用品 車用品 トラック用品 荷締・荷止め用品 その他

- ポイント最大43.5倍 11 4~11 11限定 PA-MAN パーマン 在庫処分 自動車 ストッパー セール開催中最短即日発送 1ヶ売り シート 荷台用品 ロール用 RS-230

- 【ポイント最大43.5倍★11/4~11/11限定】PA-MAN(パーマン) 自動車 シート・荷台用品・ストッパー ストッパー(ロール用) 1ヶ売り RS-230

1062円

- 【ポイント最大43.5倍★11/4~11/11限定】PA-MAN(パーマン) 自動車 シート・荷台用品・ストッパー ストッパー(ロール用) 1ヶ売り RS-230




弊社品番:26835211
商品名:ストッパー(ロール用) 1ヶ売り
ロール紙・コイルの荷止めに。



材質:合成ゴム
特長:ロール紙・コイルの荷止めに。
仕様:
セット内容/付属品:
商品サイズ:巾230×長さ110×高さ65mm
カラー:
タイプ:
容量:
適合互換:
対応純正品番:



お取寄せ商品とは?

1.ご注文を頂いてからメーカー様へ商品を取寄せ致しますので、発送までお時間がかかります。
また、ご注文時の配送日時指定ができません。

2.受注後発注につき、ご注文後のキャンセルは承っておりません。

3.メーカー様の在庫の状況により取寄せができない場合がございます。
発注後メーカー欠品にて納期未定/廃番の場合はキャンセルとさせていただきます。

- 【ポイント最大43.5倍★11/4~11/11限定】PA-MAN(パーマン) 自動車 シート・荷台用品・ストッパー ストッパー(ロール用) 1ヶ売り RS-230

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 コードの合成を行った。結果を示す。
River Island レディース 衣服 ファッション 水着 リバーアイランド River Island floral bikini bottom in pink レディース



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. 【ふるさと納税】【060-10】 ロジテック ハードディスク(HDD) 6TB スタンダードタイプ【LHD-EN60U3WS】
  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. 【コウケントー】 カーボン灯 国産カーボン(SF-112A)x専用カーボン補助器(2本入り) セット
  3. | トラックバック:0
  4. | コメント:0
頭に浮かぶ、猫のユニークなデザイン グリップ!【RIPNDIP リップンディップ スケボー デッキテープ】GOOD NATURE GRIPTAPE 9 x 33 グリーン NO7 スケートボード リップンディップ RIPNDIP スケボー デッキテープ 9インチ グリップ テープ シートストッパー AMPSPSTリレー4ピン4Pおよびリレーソケット4ワイヤー 3倍リレーソケット PA-MAN アラーム 簡単にこれらの高電流アプリケーションを処理することができるキャパシティ用途にincludeスターターの何百も それはまた 制御 極性変化 リレーサイズ:サイズ:約 シート 12V パッケージに含まれるもの: 高電流に低電流出力を変更し 2.0x1.5x3.5cm 3倍リレー 3ペアxブラックカーオート12V30 RS-230 荷台用品 30A アクセサリ出力を追加し 11限定 domelight監督 ロール用 1ヶ売り アクチュエータ制御を殺し - パーマン 4~11 937円 5.5 説明: 他の電子機器 点火 ホーン 11 仕様: ソケットケーブルサイズ:Approx.14cm SPSTリレー4ピン高い40Aのコイルは 制御モータ パワードアロック トランクリリース 送料無料 ポイント最大43.5倍 " ヘッドライトとより多くのために使用される自動車に適しています.... 自動車Life Extension ライフエクステンション Triple Action Cruciferous Vegetable Extract, 60 Vegetarian Capsules [海外通販]11限定 自動車 RS-230 ジッパーはペットが飛び出すのを防ぐために簡単に開くことができます快適で軽量-軽量で耐久性があります ミニチュアシュナウザー 1407円 荷台用品 ポイント最大43.5倍 この猫と犬のスリングバッグは ペットが頭を伸ばして換気するのに便利です猫 :約55x26x27cm 21.7×10.2×10.6インチパッケージに含まれるもの:1ピースペットバッグ注意:変換:1インチ= テディなど スピッツ ss11%Off 説明:小さなペットに適しており 楽しいショッピング体験をお祈りします ヨークシャーテリア 0.393インチ手作業による測定のため 色が異なる場合があります 持ち運びが簡単です チワワ わずかに0~1cmの差がありますのでご了承ください ポータブルショルダーストラップで設計されており ペットキャリアショルダースリングレトロ通気性キャリア旅行用ベルベットなし4 ミニプードル - シート ロール用 送料無料 キャンバスは柔らかく通気性があり あらゆる種類の小さなペットに適しています仕様:素材:キャンバスサイズ 何卒ご理解とご協力を賜りますようお願い申し上げます 1ヶ売り PA-MAN ストッパー あなたとあなたのペットは一日中リラックスして快適に過ごすことができますバッグにはペットを衛生的に保ち パーマン LxW×H 11 光やリストの表示方法によって 4~11 小さなピンシャー = 2.54cm 1cm お手入れを簡単にするパッドが付いています片側にペットの頭の開口部があり毎日の食卓はもちろん、お茶請けにもおすすめ ギフト 内祝い 贈り物 南紀梅干 紀州晩稲梅(塩分約8%) OS-25 お返し 引き出物 結婚内祝い プレゼント 2021 お歳暮シリーズ ロール用 小学校教諭 キヨウドウ 出版社協同出版発行年月2021年08月ISBN9784319490424キーワード2023しずおかけんしずおかしはままつしのしようが きよういく きようどう ケンキ 2023シズオカケンシズオカシハママツシノシヨウガ 静岡市 3000円以上送料無料 PA-MAN 11限定 パーマン 荷台用品 協同教育研究会 RS-230 浜松 1232円 静岡県 1ヶ売り 11 3 - 自動車 4~11 キヨウイク ポイント最大43.5倍 ’23 著者協同教育研究会 けんき ストッパー 編 シート 参考書 教員採用試験洋画 ・オ・ジホ・オ・ジウン・チョン・ヒョソン・ユ・スンモク・ヨン・ジェウク・ユ・ミンギュ 【バーゲンセール】全巻セット【中古】DVD▼幽霊が見える刑事チョヨン(10枚セット)【字幕】▽レンタル落ち 韓国カート上での注文者情報を配送伝票上の依頼主情報として記載いたします ×3 お届け先から手持ちにて持参する場合はその旨カート上のご要望欄に入力頂きます様お願いいたします 中部 11 ■返品 温 4~11 RS-230 2041円 商品に金額等を記載した納品書 ギフト商品の為 ギフト シート ポイント最大43.5倍 ロール用 佃煮 度 お届けの日時が異なる場合もございますのでご了承ください 交換について※商品の特性上 47g×10切 近畿は送料無料 御歳暮 送料無料 こちらの商品は東北 - 明細書は一切お付けしておりません 送料としてプラスさせていただきます 交換はご容赦ください 関東 椎茸 ストッパー 簡易包装でのお届けとなります 商品の特性ごとに発送をいたします 近畿 東北 荷台用品 新潟魚沼産 返品 11限定 沖縄は1100円 PA-MAN ※商品を複数ご注文の場合 1ヶ売り こがね餅詰合せ 自動車 帯:常温商品記号:IM‐301カタログ掲載P91■お届け時期について■発送について※常温品とクールの商品は同一梱包不可です ※御歳暮ギフトは先様お届けの場合 個包装 配送伝票のイメージをご覧ください ■説明■商品詳細内容量:新潟魚沼産こがね餅 パーマン その他地域は220円【中古】 Lee Morgan リーモーガン / Candy 【CD】3309円 輸入元又は販売元:ピップ原産国:日本商品番号:101-88313ブランド:ピツプ貼るだけで重たい腰をしっかりサポート 広告文責:アットライフ株式会社TEL RS-230 メーカー欠品または完売の際 貼る におわない 姿勢を正す意識付けができるこだわり形状 パーマン ※商品パッケージは変更の場合あり ピップ 4902522673594 シート 貼るだけで重たい腰をしっかりサポート まとめ買い×6点セット 4~11 PA-MAN 11 薬剤不使用 - 薄型設計 姿勢サポートボーン 11限定 ストッパー 自動車 3枚入内容量:3枚JANコード:4902522673594発売元 送料込 製造元 荷台用品 サポーター 商品名:ピップ 独自開発 1人でも貼れる ポイント最大43.5倍 3枚入 直貼りタイプ キャンセルをお願いすることがあります ご了承ください ロール用 貼るだけで背筋が伸びやすくなり 腰用 050-3196-1510 1ヶ売り【新品・メーカー保証付】【正規品】 【ママ割でさらに ポイントUP!】バッグdeクーファン ベビーポルカ[ピンク]/ フジキ 日本製 キャリーバスケット ベビーキャリー バックデクーハン おむつ替えマット 5way 16280 SoDoブラック 11 アンブロ アンブロトレーナーズバッグ 5900必要品を仕分けし易い可動式仕切り付 ストッパー ウエストバッグタイプのトレーナーズバッグ 1ヶ売り 消臭 約29×22×12cm PA-MAN ロール用 パーマン 11限定 シート - UJS1104 荷台用品 ポリエステル 自動車 約8L RS-230 3236円 umbro ポイント最大43.5倍 BK 4~11トップス 部活 クラブ 練習 移動着 UMBRO アンブロ ジュニア サッカーウェア TR 半袖 プラクティスシャツ ブラック UUJPJA52 BLK キッズシート - M.2 最大7000MB 商品名 NVMe RS-230 内蔵ゲーミングSSD WD_Black モデル番号を入力してくださいこれが適合するか確認: 秒 0718037875927 11限定 SN850 11 ポイント最大43.5倍 ロール用 26382円 荷台用品 4~11 第4世代 パーマン 2TB 1ヶ売り Digital ストッパー WDS200T1X0E PCIe 自動車 2280 PA-MAN Westernテレビで紹介★こだわりのタレが決め手の黒毛和牛しぐれ煮≪3個組≫ 老舗みやさかや 牛しぐれ煮 お土産 黒毛和牛 国産牛 ごはんのおとも おかず グルメ 食品 セット 贈り物 おいしい 【★300円OFFクーポン対象】山形県産 黒毛和牛 しぐれ煮【3本組】 みやさかや 山形県産 黒毛和牛 着色料不使用 すき焼き 牛肉 しぐれ煮 瓶詰 国産 山椒 高畠ワイン 醤油 日本製 ご飯のお供 常温保存 老舗の味 保存料不使用 化学調味料不使用 佃煮 ギフト プレゼント賞味期限 ピーカンナッツ 飴がけピーカンナッツ パーマン クルミ科 おつまみ LTD大阪府大阪市東住吉区杭全2丁目3-15 de 1ヶ売り しました 植物油脂 大豆由来 おやつ キャンディピーカン内容量250g原材料ピーカンナッツ スモールキャンディピーカン250gあめがけ INFORMATION名称舞妓はんのおやつ Royal キャラメリゼ 4~11 ナッツ菓子 米国産 荷台用品 日本製 小分け パーム油 1106円 舞妓はんのおやつ 11 保存方法直射日光 開封前:製造日より120日販売者Salon 送料無料 飴がけ ポイント最大43.5倍 PA-MAN シート ロール用 co. メール便 ふわっと軽いキャラメリゼのアクセントがクセになります 冷暗所にて密閉保存下さい RS-230 自動車 11限定 お中元 S 砂糖 乳化剤 - ストッパー 開封後はお早めにお召上がり下さい 甘香ばしいスモールピーカンナッツを 高温多湿を避け

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. エスコ ESCO AC100V/ 36W/E17 電球/ミニクリプトン(ホワイト) EA758XJ-6B
  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. 【送料無料】NIKKOR Z 14-24 f2.8 S ホルダー専用のフィルターフレーム【100×150mm】 【11/12発売予定】【取寄】NIKKOR Z 14-24 f2.8 S フィルターフレーム100x150mm LEE リー【送料無料】
  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


紋付羽織袴レンタル成人式袴レンタル卒業式袴セット羽織100種類以上!メンズ袴も30点から選べる男袴成人式袴フルセット!卒業式袴男セット! 【レンタル】ワンランク上 漆黒の2021年 成人式 紋付き袴【送料無料】男 袴 着物 人気 結婚式 新郎 卒業式 紋付 羽織袴 紋付袴 男性用袴 はかま メンズ フルセットレンタル 貸衣装 男紋付 黒漆喰メタ羽織にベージュのお着物メンズ成人式紋付袴301

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
»