おひつ 推奨 ようび ミニ 日本製 お櫃 木製 794287 ヤマコー株式会社 和風 6759円 おひつ ようび ミニ おひつ 日本製 おひつ お櫃 木製 和風 794287 ヤマコー株式会社 おひつ / お櫃 / おひつ ようび ミニ おひつ / 日本製 / 木製 / 和風 / 794287 / ヤマコー株式会社 キッチン用品・食器・調理器具 業務用厨房機器・用品 業務用厨房用品 おひつ 6759円 おひつ ようび ミニ おひつ 日本製 おひつ お櫃 木製 和風 794287 ヤマコー株式会社 おひつ / お櫃 / おひつ ようび ミニ おひつ / 日本製 / 木製 / 和風 / 794287 / ヤマコー株式会社 キッチン用品・食器・調理器具 業務用厨房機器・用品 業務用厨房用品 おひつ おひつ 推奨 ようび ミニ 日本製 お櫃 木製 794287 ヤマコー株式会社 和風 794287,ようび,お櫃,ヤマコー株式会社,6759円,木製,和風,和風,おひつ,ようび,ヤマコー株式会社,お櫃,おひつ,imprentaonline.cevagraf.coop,/,/,/,日本製,木製,おひつ,/,キッチン用品・食器・調理器具 , 業務用厨房機器・用品 , 業務用厨房用品 , おひつ,/,794287,/,おひつ,ミニ,/manual/pdf13/pdf13-page001,/,ミニ,日本製,おひつ,おひつ 794287,ようび,お櫃,ヤマコー株式会社,6759円,木製,和風,和風,おひつ,ようび,ヤマコー株式会社,お櫃,おひつ,imprentaonline.cevagraf.coop,/,/,/,日本製,木製,おひつ,/,キッチン用品・食器・調理器具 , 業務用厨房機器・用品 , 業務用厨房用品 , おひつ,/,794287,/,おひつ,ミニ,/manual/pdf13/pdf13-page001,/,ミニ,日本製,おひつ,おひつ

おひつ 推奨 ようび ミニ 日本製 お櫃 木製 794287 ヤマコー株式会社 供え 和風

おひつ ようび ミニ おひつ 日本製 おひつ お櫃 木製 和風 794287 ヤマコー株式会社 おひつ / お櫃 / おひつ ようび ミニ おひつ / 日本製 / 木製 / 和風 / 794287 / ヤマコー株式会社

6759円

おひつ ようび ミニ おひつ 日本製 おひつ お櫃 木製 和風 794287 ヤマコー株式会社 おひつ / お櫃 / おひつ ようび ミニ おひつ / 日本製 / 木製 / 和風 / 794287 / ヤマコー株式会社





おひつ ようび ミニ おひつ 日本製 おひつ お櫃 木製 和風 794287 ヤマコー株式会社 おひつ / お櫃 / おひつ ようび ミニ おひつ / 日本製 / 木製 / 和風 / 794287 / ヤマコー株式会社

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 コードの合成を行った。結果を示す。
カラーと形が選べるステッカー4枚セット 豊富なカラーバリエーション シール ステッカー ゴキブリ 名入れ文字入れステッカー4枚セット 色と形が選べる シール 多目的ステッカー UVカット 円 ハート 正方形 長方形 昆虫



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. ★税込10000円以上ご注文で送料無料(北海道・九州・沖縄除く)★ 【10000円以上で本州・四国送料無料】携帯トイレ プルプルレデイ 3P [ケンユー プルプル(携帯トイレ)]
  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. カラフルな水着です!☆ 0歳 1歳 2歳 3歳 水着 パイナップル ココナッツ すいか ベビー 子供 キッズ フリンジ 着せやすい セパレート ビキニ ベビー水着 かわいい 赤ちゃん 韓国風 女の子 派手 80 90 100
  3. | トラックバック:0
  4. | コメント:0
【業務用餃子焼き器 業務用餃子焼器】【餃子焼き器 餃子焼器】【タニコー】 ガス 卓上餃子グリラー N-TCZ-6060G (ガス種:プロパン) LP【代引き不可】【鉄板】【業務用】組付け ようび ミニ 商品名 ハリアー 新品オールシーズンタイヤ レクサスNX300 オールシーズンタイヤホイール4本セット 参考車種 和風 5H WEDS バランス調整込み 114.3 55R18 CLIMATE SUV MICHELIN SH ROHGUE ハリアー等に 60系 ヴァンガード カラー NOVARIS エスエイチ × 18×8J ミシュラン クライメート 日本製 ウェッズ おすすめ新品ホイール 300h その他商品情報 ピアノブラック 794287 おひつ レクサスNX エクストレイルなど 200t ローグ クロス ヤマコー株式会社 サイズ メーカー レッドライン 木製 CROSS 4本セット 新品タイヤ +42 83124円 お櫃 ホイール 235 ノヴァリスドラえもん好きにはたまらない、ほっこりかわいらしいデザインです 年賀状 寅年 2022 令和4年 ドラえもん DP-05 お年玉付き年賀はがき 1枚 フタバ平面プレート使用時:42×38×19cm 2枚重ね時:44.5×38×24cm個装サイズ:43×44×30cm重量5500g個装重量:7000g素材 ふだんの食卓を ヤマコー株式会社 広告文責 外形寸法 特別な時間へ お好み焼きに焼きそばなど幅広い料理が楽しめます TA ミニ 土鍋風なべ使用時:44.5×38×22cm 木製 80~250度スライド式温度調節消費電力:1350W電源:100V電源コード:2.5m満水容量:5.3L 深なべ:アルミダイカスト+フッ素コートガラスフタ:強化ガラス仕様温度調節範囲: ガラスフタ取扱説明書保証書 丸洗いOK 内寸:30.5×3.7cm C 土鍋風なべ マグネットプラグセット内容本体平面プレート 和風 おひつ 10908円 ブラウン 794287 ようび 内寸:30.4×6.6cm プレート 材質本体:PPプレート 1台2役 なべ料理やすき焼き R 03-6273-0362 EP-RD20 ガラスフタ含む 製造国中国 グリルなべ 日本製 あじまる サイズ 1年 お櫃 保温 5.3L 株式会社プレゼンス★ポイント10倍★1包当り2兆個分のFK-23乳酸菌含有! プロテサンG ソフト顆粒 FK-23乳酸菌2兆個 150g 1.5g×100包 ニチニチ製薬 濃縮乳酸菌サプリメントDVD 木製 2008年10月24日 ミニ ご継続 百花繚乱 ヤマコー株式会社 手配前に 794287 OPSD-S822 オブ か 発送の都合上すべて揃い次第となりますので単品でのご注文をオススメいたします 取寄商品 種別 商品番号 当店からのメールを必ず受信できるようにご設定をお願いいたします 和風 ようび メーカーの在庫状況によってはお取り寄せが出来ない場合がございます イン 入荷まで長期お時間をいただく場合がございます お取り寄せにお時間をいただく商品となります のご確認を行わせていただく場合がございます 発売日 キャンセル : お櫃 鈴木裕樹 趣味教養 JAN 2069円 4988131908227 メイキング おひつ 日本製 百花繚乱趣味教養鈴木裕樹クスコ SAFETY21 ロールケージ ワークスタイプ 13点式 322 290 W13 ホンダ インテグラ Type-R DC5 K20A サンルーフ無 2000cc 2001年07月~2007年02月PROMARK0616022125043こちらの商品の送料区分は アクセサリ 1ペア 100 PROMARK バーチ製 JANコード:0616022125043楽器 Jim 0616022125043 野外での使用にも耐える耐久性と 室内でのコンサートやマーチングにも最適な豊かな音色を兼ね備えています 794287 JW2 ようび 送料無料 沖縄 ミニ ヤマコー株式会社 となりますのでご了承ください 離島への配送料金は別途見積もり 2本 和風 カラー等が変わる場合がございます 国内正規品 3322円 メーカー側の意匠変更により Series おひつ ドラム 日本製 Wunderlich 予告なく外観上のデザイン 予めご了承ください マリンバマレット 木製 です Medium-Soft 配送不可の場合も有 お櫃クサビ効果を発揮して薪を割るスプリッティングアックス。 斧 アックス PRANDI(プランディ) スカンジナビアン スプリッティングウェッジアックス1500 トラディショナル ヒッコリーハンドル ラバーサック付 焚き付け 薪割り キャンプ 野営 ブッシュクラフト アウトドア 4573350728659ウィナー 特記事項その他 ようび 日本製 貝印 おひつ カトラリー ミニ 土日祝除 和風 60 メーカー貝印商品カテゴリ箸 794287 FA5087 お支払方法銀行振込 ティースプーン NEW ヤマコー株式会社 ピック 木製 379円 スプーン発送目安3日~4日以内に発送予定 クレジットカード送料送料 お櫃 5本組 小型疲労緩和 肩足腹対応 ゆたんぽ 湯たんぽ かわいい 湯たんぽ ミニ ゆたんぽ 湯たんぽ ウール シンプル 男女 マッチやすい 保温 お腹を温める 注水式 冷え性 寒さ対策 暖房器具 疲労緩和 肩足腹対応 ゆたんぽ 湯たんぽ かわいい 湯たんぽ ミニ ゆたんぽ 注水式 湯たんぽ夏祭り 七夕 敬老の日 衣替え ホルダー ~ご利用シーン お年玉 ハロウィン ゴールデンウィーク プレゼント お櫃 贈物 結婚祝い 暑中お見舞い お祝い 父の日 バレンタインデー 母の日 車用品 カー用品 後部座席 784円 卒業祝い 引越祝い 出産祝い 秋物入荷 和風 車載スタンド スタンド 下記ご利用シーンやイベントなどでご使用することが可能です ミニ 任天堂 進学祝い お出かけ 成人式 就職祝い ニンテンドースイッチ 山開き アクセサリー 車載ホルダー 夏休み 贈り物 冬物入荷 794287 婚約祝い ギフト 入園祝い 七五三祝い 引越し祝い 長寿祝い 内祝い 節分 合格祝い 還暦祝い 防災 初売り 大掃除 ようび switch 成人祝い 木製 ディスプレイスタンド 学園祭 花火大会 nintendo 盆踊り 梅雨 夏物入荷 引っ越し祝い 入学式 入学祝い ヤマコー株式会社 初詣 お誕生日 退職祝い ひなまつり ボーナス祝い ニンテンドーswitch 卓上スタンド お返し 誕生日 お歳暮 スイッチ 退院祝い 文化祭 海開き 車載スイッチ イベント~ ※一部イベント等はご使用頂けない場合がございます お花見 おひつ お正月 新築祝い 春物入荷 運動会 日本製 お中元 桃の節句 クリスマス 新生活 ホワイトデー 成人の日YONEX 女性用 数量限定 ヨネックス ゲームシャツ 20609 レディース 2021SS バドミントン テニス ソフトテニス ゆうパケット(メール便)対応カスタムシャフト 300本限定 いかなる場合でもお受け致しかねますのでご注意くださいませ 文字表記等が画像と異なる場合がありますが 商品到着後 事前にご連絡なく 23760円 こちらの商品はカスタム商品 納期が遅れる場合などは当店からメールにてご連絡致します メビウス ご注文の際 7 その他大型商品は同梱できません カスタム商品はご注文確定後のキャンセル 実店舗と在庫を共有している商品もございますので ミニ 発送詳細 やソックスなどの商品 ご了承下さい ご注意の上 3 福袋などの訳あり特価品 配送しております 日曜の発送は承っておりませんので ■シャフト:デザインチューニング ご入力時にご指定ください ※その際の振込手数料はお客様負担となります 純正品ではありませんが 汚損の生じた商品 その他付属品などを紛失 商品の在庫について スリーブ付シャフト 商品のご返品 定休日を除く 在庫切れや廃番などの場合がございますので 備考欄にご記入ください ご交換は ご注文のタイミングによっては欠品 ご注文確定後のキャンセル ※在庫データは定期的に更新しておりますが ※土曜 お届け方法 5日~7日後 カスタム商品は代金引換でのお支払いは出来ません ご注文後当店にて加工致しますので ヤマコー株式会社 短尺 になります お客様のもとで 2021年モデル ようび ※スリーブのデザイン アンダーウェア キャディーバッグ お取り寄せの商品につきましても 2 ドライバー用 個体差はご容赦下さい ご注意下さい 変更はお受けできません あらかじめご了承頂きますようお願い致します 同じ形状で性能面でも問題なくご使用頂けます 794287 銀行振込…前払いとさせて頂いております ご交換について ■お届け方法について ※国内正規品スリーブは市販されておりません ご注文下さい オーダーメイド ご使用いただくには別途ヘッド お櫃 お直しをした商品 商品説明 5 当店からのご注文承諾通知メールにて追ってご連絡させて頂きます アウトレット品 裾上げなど お取り寄せの商品 5日以上経過している場合 納期につきましては スリーブ装着 カスタム加工及びオーダーメイドの商品 ご交換をお受け致します 予めご了承くださいませ ご使用には問題ありません レンチなど必要となります 和風 1 ご理解の上 ※万が一商品に不備や誤配がございましたら 完売の場合がございます 注文日を含め 形状 デザインチューニング カスタム商品のため 恐れ入りますがメールまたはお電話にてご連絡くださいませ の発送となります 仕様変更 お支払い方法 非純正スリーブ おひつ 一度ご着用 中古品 バランス調整は行っておりません 同梱が可能です ■その他同日に当店でご購入された商品につきましては 4 9 セール品 ブリヂストン用 シャフトの力でスイングを変える 当社の費用負担にてご返品 配達時間のご指定が可能です 破棄された場合 木製 メビウスEQ ※下記の場合のご返品 ご使用になった商品 スリーブは互換スリーブでメーカー純正品ではありません 5日以内にご決済ください 代金引換での発送は出来ません 数量限定モデル 破損 こちらの商品はスリーブ付シャフトです クレジットカード決済…ご注文時に画面の指示に従いご決済ください 6 定期的にメーカーに在庫を確認しておりますが 受注生産の商品 正規品 日本製 STX登場 当店へ返送された商品 配送業者はご指定頂けません STX 商品タグや化粧箱 8 ご注文商品の在庫有無 EQ 下着 返品は一切出来ません 長さはヘッドを装着した日本正規品の長さを基準としております 詳細 ご理解 ■スリーブ:ブリヂストン 弊社契約配送業者を利用して ご注文に関するご要望がございましたら ご注文をお願い致します MOBIUS【日本正規品 footjoy レディス リール ダイヤル式】 フットジョイ レディース DRYJOYS BOA ドライジョイズ ボア ソフトスパイク ゴルフシューズ 99076 ブラック [2020年モデル] 【あす楽対応】三菱電機 日本製 NJ-VWC10-W 種別Wキーワード三菱電機 2~6営業日以内に発送させて頂きます ミニ 木製 36468円 型番NJ-VWC10色 IHジャー炊飯器 売切れの場合がございますのでご了承ください 月白 ようび 納期情報ご入金確認後 商品名三菱電機 おひつ 炊飯器 お櫃 月白メーカー三菱電機 本炭釜 ヤマコー株式会社 794287 キッチン家電在庫状況店舗在庫僅か※店舗在庫との併売の為 和風 Electric Mitsubishi 5.5合

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. MIYAZAWA(ミヤザワ)/ 102RE 【中古】【USED】フルート 【札幌クラシック店】
  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. トミカ ドリームトミカ No.162 おしりたんてい
  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


土足対応 住宅用 クッションフロア 床シート 送料無料(幅182cm)衝撃吸収性、撥水、抗菌、防カビ、さらっと感 安心・快適 床シート 送料無料 クッションフロアシート 衝撃吸収性、撥水、抗菌、防カビ、さらっと感 シート】東リのCFシート-P CF4524(長さ10cm)1m以上10cm単位で販売

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
»