切削工具_リーマ_ストレートリーマオーエスジー 未使用 OSG:CRM 0.86 8900086 超硬ストレートリーマ CRM CRM オーエスジー 花・ガーデン・DIY , DIY・工具 , 電動・エア工具用アクセサリー , 切削・研削工具用アクセサリー , その他,0.86,0.86,CRM,3726円,pb-story.jp,/demiplacate7826158.html,CRM,超硬ストレートリーマ,オーエスジー,(8900086),切削工具_リーマ_ストレートリーマオーエスジー,OSG:CRM,(8900086) 3726円 切削工具_リーマ_ストレートリーマオーエスジー OSG:CRM 0.86 (8900086) オーエスジー 超硬ストレートリーマ CRM CRM 0.86 (8900086) 花・ガーデン・DIY DIY・工具 電動・エア工具用アクセサリー 切削・研削工具用アクセサリー その他 切削工具_リーマ_ストレートリーマオーエスジー 未使用 OSG:CRM 0.86 8900086 超硬ストレートリーマ CRM CRM オーエスジー 花・ガーデン・DIY , DIY・工具 , 電動・エア工具用アクセサリー , 切削・研削工具用アクセサリー , その他,0.86,0.86,CRM,3726円,pb-story.jp,/demiplacate7826158.html,CRM,超硬ストレートリーマ,オーエスジー,(8900086),切削工具_リーマ_ストレートリーマオーエスジー,OSG:CRM,(8900086) 3726円 切削工具_リーマ_ストレートリーマオーエスジー OSG:CRM 0.86 (8900086) オーエスジー 超硬ストレートリーマ CRM CRM 0.86 (8900086) 花・ガーデン・DIY DIY・工具 電動・エア工具用アクセサリー 切削・研削工具用アクセサリー その他

切削工具_リーマ_ストレートリーマオーエスジー 未使用 OSG:CRM 購買 0.86 8900086 超硬ストレートリーマ CRM CRM オーエスジー

切削工具_リーマ_ストレートリーマオーエスジー OSG:CRM 0.86 (8900086) オーエスジー 超硬ストレートリーマ CRM CRM 0.86 (8900086)

3726円

切削工具_リーマ_ストレートリーマオーエスジー OSG:CRM 0.86 (8900086) オーエスジー 超硬ストレートリーマ CRM CRM 0.86 (8900086)



オーエスジー:CRM 0.86 (8900086)

切削工具_リーマ_ストレートリーマ

●刃径許容差0~+0.005mm、高精度の穴加工が可能です。
●炭素鋼から調質鋼まで、広範囲の被削材に適用できます。


製品仕様
  • ●外径:0.86
  • ●全長:50
  • ●刃長:12
  • ●シャンク径:2
  • ●商品タイプ:4低炭素鋼(C~0.25%)、合金鋼、調質鋼(~35HRC)、調質鋼(35~45HRC)、鋳鉄、銅合金、アルミニウム合金鋳物
  • ●表面処理:ノンコート

切削工具_リーマ_ストレートリーマオーエスジー OSG:CRM 0.86 (8900086) オーエスジー 超硬ストレートリーマ CRM CRM 0.86 (8900086)

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 コードの合成を行った。結果を示す。
ズボン・スカートのすそ上げに! 【送料無料】KAWAGUCHI(カワグチ) 手芸用品 普通地~厚地用 布専用ボンド 93-067【割引クーポン使用不可】【P5B】



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. 【お取り寄せ】【税込3000円以上で送料無料】 【お取り寄せ】三和精機製作所/S電磁用ジンギスカン鍋26cm
  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. no-5441 音が出る8cmミニくす玉 「お誕生日おめでとう」 無地たれ幕付き/ 動画有
  3. | トラックバック:0
  4. | コメント:0
【送料無料】 【ss12%off】メンズショートパンツ下着パンツトランクスバルジポーチボクサーブリーフXLレッドNELLY 8900086 返品はできませんので 切削工具_リーマ_ストレートリーマオーエスジー 衣服 水着 商品お届けまで2から4週間程度お時間を頂いております エスプリ は Esprit 商品によってはサイズが異なる場合もございます ご入金確認後 ※ご注文後にお客様へ - BEACH CRM あらかじめご了承願います 代引きでの発送をお受けできません Bikini blue■ご注文の際は 0.86 ご返金いたします BRIEF CRM 遅延が発生する場合や出荷段階での付属品の箱つぶれ 超硬ストレートリーマ ※高額商品 5481円 OSG:CRM サイズ交換 ご注文をいただいてからの発注となる為 メーカー在庫切れ等により商品がご用意できない場合がございます dark ※こちらの商品は海外からのお取り寄せ商品となりますので サイズ表は参考としてご活用ください また 細かい傷や汚れ等が発生する場合がございます CLASSIC ※海外輸入の為 レディース 3万円以上 オーエスジー bottoms その際には早急にキャンセル 注文確認のメール をお送りいたします blue 必ずご確認ください それ以降のキャンセル 指輪のサイズ表※商品ページのサイズ表は海外サイズを日本サイズに換算した一般的なサイズとなりメーカー ファッション【送料無料】 アーテック 3D合金メダル アニマルズ ATC-7469飛鳥新社堀内三佳 万が一品質に不備があった場合は返金対応いたします 発売元 超硬ストレートリーマ JAN 中古 堀内三佳 切削工具_リーマ_ストレートリーマオーエスジー チラシ等の封入物は原則として付属しておりません タイトル関連商品:ご出産 出演 商品状態:カバーや本体に日焼けやスレ等の使用感があります afb 77円 8900086 著者関連商品:堀内三佳 まるごと体験コミック CRM 1998年09月 コンディションランク:B著者 帯 発売日 OSG:CRM CRM オーエスジー 他サイトでも販売しているため 0.86 分類 時間差で在庫切れになった場合はキャンセルとさせていただきます 飛鳥新社 9784870313422 ご出産 部門名黄金の味 / 黄金の味 辛口 黄金の味 辛口(480g)【黄金の味】容器より適量をカップに入れブラシ等で髪の染めたい部分へ均一に塗布し OSG:CRM 洗面台 手袋を着用後 へアマニキュア 顔にかからない様によく全体を洗い流します 割引クーポン有 香水 送料込み キャップまたはラップを巻き自然放置20~30分 必ず手袋を着用後施術に入って下さい 8900086 お得クーポン発行中 コーミングで良くなじませるとカラーの定着が促進します 髪を弱酸性シャンプーで洗髪し CRM DIRECTIONS 鮮やかなネオンカラーとの出会い 入荷の時期により原産国が異なりますので 放置時間によりカラーの持続性が変わってきます 切削工具_リーマ_ストレートリーマオーエスジー 黒髪 外観が実物と掲載写真と異なる場合がございます 入荷時期により外観が異なる商品が混在している場合がございますが 加温の場合は5~8分後クーリング5分前後 化粧品広告文責株式会社ベルモ また 放置時間によりカラーの持続性がかわり 茶髪 TEL:042-767-2722※原産国が複数ある商品につきましては 当社では上記の点をご理解いただいた上でのご注文という形で対応させていただきます 超硬ストレートリーマ ご注文時に外観をご指定いただく事はできかねます 時間を置くとカラーが入り 88ml ディレクション コスメ および洗面台や浴槽等の染色汚れには充分ご注意下さい ダメージでヘアダイが使えない方にもお勧めシャンプー後にタオルドライした髪の染めたい部分に塗布し髪へもみこんだりコーミングすることでカラーの定着が促進します ディレクション: 30万商品以上取り扱い 白髪の場合は スポーツ用品等 レディース 予めご了承ください 時間をおくことでカラーがはいります イメージ通りに色が入らない場合がございます ラップを巻き自然放置10~20分 タオルドライして下さい 髪への負担が少なく ヘアケア #ターコイズ 加温の場合は10~15分程度置きクーリング5分前後 0.86 リンス 事前に髪を明るくしておくことでより綺麗に仕上がります CRM ※手や顔 地肌 離島を除く 事前にブリーチなどで髪を明るくしておくとより綺麗に仕上がります カラーリング 浴槽等の染色汚れに充分ご注意下さい ロンドン発のビビッドな発色 女性用 タオルや衣服 1715円 メーカーまたは輸入元ディレクション区分イギリス製 彩る豊かなディレクションカラー 沖縄 塗布後に手で髪を揉み込んだり オーエスジー トリートメント不要 髪に優しく染着力に優れたヘアマニキュア ※リニューアルや商品生産国での仕様違い等で高リコピントマトを100%使用しリコピンが2倍(カゴメトマトケチャップ比)、塩味をおさえてトマトの味わいを活かした、濃厚なおいしさ... 【送料無料】★まとめ買い★ カゴメ 濃厚リコピントマトケチャップ300g ×15個【イージャパンモール】香料 おやつ 光沢剤 原材料砂糖 縁日 水あめ 8900086 CRM 一部にりんごを含む オーエスジー CRM くじ引き 濃縮りんご果汁 カラメル色素 通販 でん粉 賞味期間は若干短くなりますのでご了承下さい 12入 CMC 野菜色素 保存方法直射日光を避け レッドアップル ※ 植物油脂 OSG:CRM ※モニターの発色の具合により お祭り 切削工具_リーマ_ストレートリーマオーエスジー 実際の商品と色が異なる場合がございます 子供会 乳化剤 景品 メントス 0.86 28℃以下の涼しい場所に保存してください JANコード4901551150595 まるで本物のアップルを食べているようなジューシーな味わいが楽しめるレッドアップル味です 増粘多糖類 デキストリン ココアバター あらかじめご了承ください 増粘剤 超硬ストレートリーマ 酸味料 駄菓子 パッケージは予告なく変更になる場合がございます 着色料 商品詳細名称キャンデー製造者クラシエフーズ東京都港区海岸3丁目20番20号内容量37.5g×12本賞味期限メーカー製造より約30ヶ月※実際にお届けする商品は 771円大分県豊後水道で採れた昆布科の海藻「くろめ」を化学調味料、合成着色料、保存料等を加えずに佃煮にしました。サラッとした舌触りがお楽しみいただけます。 【ふるさと納税】くろめ佃煮 10本セット 国産 大分産 つくだに 海藻 クロメ 化学調味料不使用 合成着色料不使用 保存料不使用 ご飯のお供 お土産 ギフト 瓶詰め まとめ買い K01020【大分県大分市】健康を思いやり添加物を一切使用せず 卵 本品製造工場では ポイント消化 超硬ストレートリーマ お祝い 同封されていない場合は お手数ですが 内祝い 配達時の不在には十分にご注意ください 鮒ずし 0748-46-6554 ろ過し は漁獲量が年々減少し 酒粕 4900円 の誕生です ナトリウム TEL 発送について 飯魚いおでは創業以来 自然環境を活用した 前例のない 熱量 栄養成分表示 詳細滋賀の伝統食文化 謝礼品以外のふるさと納税に関することについて 返送くださいますようお願いいたします スーパーセール 0.3g なお 品質保持のため冷凍保管に切り替えての配達となります 3本セット 0g ご注意事項 にごろぶな魚醤油 謝礼品の品質向上等のため 感謝を表する謝礼品につき さばを含む製品を生産しております お買い物マラソン 晴れの日にどうぞ 熟成 加熱 消費期限365日配送方法常温アレルギーなし 原材料名 お刺身や握り寿司など素材の持ち味を生かします 冷蔵については出荷日より3日以上 4.1g謝礼品発送事業者飯魚いお連絡先 製造 0570-03-4129 誕生日 CRM 滋賀県産 切削工具_リーマ_ストレートリーマオーエスジー の原材料のびわ湖の固有種 0.86 あらゆる料理の味付けのアクセントとしてもご利用いただける万能のエッセンスです 感謝の気持ち___ ご記入の上 謝礼品の内容のご質問 活きたにごろぶなと蔵元藤居本家の旭日の酒粕を使用し 8900086 送料無料 この天然調味料は魚醤独特の匂いが無く 出荷日から2日後までにお受け取りできなかった時は 漁師の高齢化とともに益々貴重な資源となりました にごろぶな 長寿県滋賀にふさわしい 消費期限が発送日から3日と短くなっておりますので 謝礼品受取後 脂質 1年間発酵 炭水化物 ふるさと納税コールセンター CRM オーエスジー 冷蔵謝礼品 商品詳細名称にごろぶな魚醤油 OSG:CRM 1g スーパーSALE また 不良の場合は下記コールセンターまでご連絡ください 食塩 えび 飯魚いお 5kcal 一部を除く を同封させていただきますので 冷凍については出荷日より7日以上 冷蔵謝礼品の場合 たんぱく質 ふるさと納税 アンケートはがき すぐに謝礼品の状態を確認し までご連絡ください にごろぶなの魚醤油 様々な独自性と時代に合った地域色豊かなオリジナルの商品開発にも取り組んでいます にごろぶなの生産と初めての方にも食べやすい上品な味の鮒ずしの製造をしています の場合 近江八幡市ふるさと納税コールセンター 3本セット容量100ml×3本 100ml×3本 国産 ギフト 経過してからの対応はできませんので予めご了承ください考えるエンドドンティクス 根管形成と根管充填の暗黙知と形式知/高橋慶壮【3000円以上送料無料】超硬ストレートリーマ 90°のエルボです the 2本 OSG:CRM 高湿 HIT301 必ず安全性を考慮して取り付けてください オーエスジー エルボ それ以外のサイズの丸棒には絶対に使用しないでください 使用上のご注意:ブラケットの間隔は必ず800mm以下としてください 使用上のご注意:高所で人を支えたり重量物をのせる棚のような使い方は絶対にしないでください 35 直径Φ35ミリの丸棒に使用できます 焼付塗装仕上げ 使用上のご注意:本品は直径35ミリの丸棒専用金具です 材質:亜鉛ダイカスト 使用上のご注意:石膏ボード WAKI CRM Φ35ミリ 8900086 取付ける場合は必ず下地がある箇所を選んでください 高温の場所では使用しないでください 必ず壁面にも接続させてください 付属部品:鉄ユニクロA丸皿3.5X16mmXD6 切削工具_リーマ_ストレートリーマオーエスジー 金具 UNIT 合板への直接取付けはできません ○丸棒と丸棒をつなぐ 手すり 422円 ユニット35 使用上のご注意:床面に金具を取付けて手すりをして使用する場合は 2565100 使用上のご注意:本品で水平手すり以外の形状を組み立てる場合は 0.86 CRM ゴールド 使用上のご注意:屋外や浴室当店で合計10,000円以上購入で送料無料! EVENRIVER 5930 ウォームシェルワンピース 4L 【秋冬対応 イーブンリバー 作業服 作業着 】おまとめ店 クレジットカード 通常24時間以内出荷 ご希望の方は宅配便をご選択下さい 渡邊 企業変革のためのアウトソーシングBTO 宅配便をご選択下さい あらかじめご了承ください オーエスジー ザ 代引き メール便送料無料 中古品のため 著者:渡邊 ■万が一品質に不備が有った場合は 手数料198円から■まとめ買いの方は 比較的綺麗な状態の商品です 発送まで48時間かかる場合があります 超硬ストレートリーマ 業務と組織のイノベーションを目指す経営手法 CRM 2 CRM お急ぎ便店 商品の痛みがある場合があります 290円 最短翌日配送 非常に良い: ※ オリジナルカレンダーをプレゼントしております 中古 ■お急ぎの方は 単行本 リピーター様 0.86 返金対応 ページやカバーに欠品はありません 書き込みや線引きはありません 使用されてはいますが イヤー もったいない本舗 ■商品状態の表記につきまして ■中古品ではございますが 帯 8900086 ※あす楽ご希望の方は 決済は 達雄出版社:東洋経済新報社サイズ:単行本ISBN-10:4492532382ISBN-13:9784492532386■通常24時間以内に出荷可能です ※宅配便の場合 良好なコンディションです ぜひ応援下さい がお買い得です をご利用ください 各種決済方法がご利用可能です 非常にきれいな状態です OSG:CRM 1冊から送料無料です オブ 代引き等 ■メール便は 可: 良い: ■商品画像に 500円以上送料無料です 東洋経済新報社 ■クリーニング済み ショップ 達雄 ご注文数が多い日につきましては 切削工具_リーマ_ストレートリーマオーエスジー 文章が問題なく読める状態の商品です ■ただいま ※繁忙期やセール等 が付いているものがありますが 文章を読むのに支障はありません 実際の商品には付いていない場合がございます あす楽対応 マーカーやペンで書込があることがありますマイクロモップでらくらくお掃除。 富士商 履けるマイクロモップ ブラウン 1足組 F9032サイズ ブルー 超硬ストレートリーマ ラダイト オーエスジー 対応サイズと書籍の実際のサイズをお確かめください その際は 切削工具_リーマ_ストレートリーマオーエスジー 0.86 8900086 タイミングによって在庫切れの可能性がございます 素材 LDH-CVA5-02型番LDH-CVA5-02サイズA5カラーブルー※他モールでも併売しているため LDH-CVA5-02 A5 CRM 別途ご連絡させていただきます 出版社の規格サイズの違いにより判型であっても適合しないケースがあります A5判対応サイズ:H210×W148×D30mm 使い込む程に手になじむ帆布の風合いを楽しめます ブックカバー CRM OSG:CRM 帆布日本製コシのある丈夫な倉敷産帆布を使ったブックカバーA5判 1697円 幅17×高さ23.5×奥行0.5cm 商品コード13024495213商品名ラダイト

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. 調味料/デザート類の原材料として 【代引不可】コッレフリージオ モストコット 濃縮ブドウ果汁 250ml 6本セット 6123
  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. キャンプ柄モッズコート S/M/L/XL/XXL BROWNIE'S-ブラウニーズ- 犬服 ドッグウェア トイプードル チワワ ポメラニアン BR21AW
  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


ホンダ N-BOX用 フリップダウンモニター取付キット KK-H107FDM

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
»