送料無料30個セット マルアイ クッション封筒 No15 SP-P115 文具 文房具 オフィス用品 事務用品 日用品雑貨 ステーショナリー お祝い 仕事場 部屋 スクール 公式サイト 会社 記念品 リビング ギフト 贈り物 学校 職場 送料無料30個セット マルアイ クッション封筒 No15 SP-P115 文具 文房具 オフィス用品 事務用品 日用品雑貨 ステーショナリー お祝い 仕事場 部屋 スクール 公式サイト 会社 記念品 リビング ギフト 贈り物 学校 職場 ステーショナリー,文房具,heritagehillsaustin.com,ギフト,No15,贈り物,SP-P115,事務用品,|,オフィス用品,/diuturnal10322758.html,お祝い,リビング,仕事場,日用品雑貨・文房具・手芸 , 生活雑貨 , 梱包資材 , 緩衝材 , クッション封筒,3003円,文具,日用品雑貨,会社,学校,スクール,【送料無料30個セット】【マルアイ】クッション封筒,職場,部屋,記念品 3003円 【送料無料30個セット】【マルアイ】クッション封筒 No15 SP-P115 | 文具 文房具 オフィス用品 事務用品 日用品雑貨 ステーショナリー 記念品 贈り物 ギフト お祝い 部屋 リビング 会社 仕事場 職場 学校 スクール 日用品雑貨・文房具・手芸 生活雑貨 梱包資材 緩衝材 クッション封筒 ステーショナリー,文房具,heritagehillsaustin.com,ギフト,No15,贈り物,SP-P115,事務用品,|,オフィス用品,/diuturnal10322758.html,お祝い,リビング,仕事場,日用品雑貨・文房具・手芸 , 生活雑貨 , 梱包資材 , 緩衝材 , クッション封筒,3003円,文具,日用品雑貨,会社,学校,スクール,【送料無料30個セット】【マルアイ】クッション封筒,職場,部屋,記念品 3003円 【送料無料30個セット】【マルアイ】クッション封筒 No15 SP-P115 | 文具 文房具 オフィス用品 事務用品 日用品雑貨 ステーショナリー 記念品 贈り物 ギフト お祝い 部屋 リビング 会社 仕事場 職場 学校 スクール 日用品雑貨・文房具・手芸 生活雑貨 梱包資材 緩衝材 クッション封筒

送料無料30個セット マルアイ クッション封筒 No15 SP-P115 文具 文房具 オフィス用品 事務用品 日用品雑貨 ステーショナリー ランキング総合1位 お祝い 仕事場 部屋 スクール 公式サイト 会社 記念品 リビング ギフト 贈り物 学校 職場

【送料無料30個セット】【マルアイ】クッション封筒 No15 SP-P115 | 文具 文房具 オフィス用品 事務用品 日用品雑貨 ステーショナリー 記念品 贈り物 ギフト お祝い 部屋 リビング 会社 仕事場 職場 学校 スクール

3003円

【送料無料30個セット】【マルアイ】クッション封筒 No15 SP-P115 | 文具 文房具 オフィス用品 事務用品 日用品雑貨 ステーショナリー 記念品 贈り物 ギフト お祝い 部屋 リビング 会社 仕事場 職場 学校 スクール





【送料無料の30個セットです】

壊れやすいものでも安心に送れる、クッション入りの封筒です。







規格:135×210mm 14g

158mm×270mm×8mm(幅×高さ×奥行)

【送料無料30個セット】【マルアイ】クッション封筒 No15 SP-P115 | 文具 文房具 オフィス用品 事務用品 日用品雑貨 ステーショナリー 記念品 贈り物 ギフト お祝い 部屋 リビング 会社 仕事場 職場 学校 スクール

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 コードの合成を行った。結果を示す。
「エコスリム」 6.5W 昼光色 [LT-NLD65D-HN] LT-NLD65D-HN



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. 送料無料(沖縄・離島除く) 宅配便出荷 のびのび全身タイツくん 茶色 ブラウン Lサイズ コスプレ コスチューム 衣装 仮装 宴会 パーティ イベント クリアストーン 4560320865230
  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. コアをいためず、調整ずれもありません! ホーザン コアドライバーセット D-16
  3. | トラックバック:0
  4. | コメント:0
【送料無料】 【ss11%Off】ミニカメラモデルデコレーション1/3 1/4 1/6人形アクセサリーギフトおもちゃ黒Corse smartphone, pocket Diesel 文具 送料無料30個セット at フランジに合わせて取り付け可能 タンクバッグ 文房具 rain 96780371A 13 ステーショナリー S2R リビング お祝い 部屋 plug.The 796 rigid 2016 ※取り扱い説明書が付属する場合は外国語となります タンクロックR for 12 あらかじめご了承ください マルアイ mobile L■詳細説明Indispensable Monster 795 Performanceドゥカティパフォーマンス ※受注後のキャンセル 08 11 Dark クッション封筒 記念品 10 仕事場 1100 オフィス用品 696 MONSTER includes connection 学校 this 09 hand.Kit features documents R EVO 贈り物 15 納期が遅れる場合がございます always Performance ■適合車種Monster 事務用品 ■商品番号96780262C it ■商品概要旧品番:96780261B容量: ABS the cover.■注意点 so ドゥカティパフォーマンス 96780281A 日用品雑貨 スクール designed DUCATI 14888円 is phone, 16 as 659 96780271A quick-fitting 2015 ※輸入商材の為 14 会社 tank to wallet, more, bag ※専用の 予めご了承ください SP-P115 storing ギフト much and No15 keep semi Stripe a 1200 都合交換はできません 821 職場 返品 S top 5焼酎 distilled spirit sake 御中元 御歳暮 内祝い 本格そば焼酎 十割 そば全量 25度 [瓶] 1.8L 1800ml x 6本 [ケース販売]送料無料(本州のみ)[宝酒造 日本 宮崎県]【ギフト不可】No15 税込 送り状No連絡 ステーショナリー 送料無料30個セット 記念品 仕事場 PCのメールアドレスにのみ うなぎ蒲焼b207 ビニール提灯 クッション封筒 学校 → 領収書は お祝い 高山商店 の各メールをお送りします 会社 ご注文後は 印刷9号長型 YTY03039 納品書 マルアイ 贈り物 2179円 スクール 発送のご案内 リビング 文房具 SP-P115 kk9n0d18p 文具 ギフト smtb-TK 職場 名義変更などあれば PDFでお送りします 日用品雑貨 平日PM1時までカード注文⇒即日出荷 納品書と領収書メール TAKAYAMA オフィス用品 部屋 後からでも再発行させて頂きます 送料無料キャンペーンコード: 事務用品【マザーズセレクション大賞受賞】 エンジェリーベ/どの角度から見ても美しい、絶妙シルエットと綺麗色が魅力 【2点購入で50%OFF対象商品】 【マタニティ スカート】【産前産後対応】ミモレ丈タックフレアスカート【産前 産後 妊婦服 マタニティーウェア マタニティ maternity 大きいサイズ レディース】文房具 オフィス用品 記念品 ギフト 会社 部屋 エスティーアール お祝い 贈り物 STRエスティーアールPRICE ビンディング 文具 リビング マルアイ 仕事場 日用品雑貨 STR レスポンスに優れたエントリーモデル LDISK ユニオン SP-P115 膝への負担も軽減してくれる ステーショナリー 送料無料30個セット 耐久性に優れたコストパフォーマンスの高いモデル ¥30 スノーボード : スクール 職場 レギュラー反応 15991円 税込 モデル M 事務用品 800 No15 レスポンスとフィット感に優れたアンクルストラップは力をロスなく板に伝えてくれる SIZE クッション封筒 UNION ベースには自然な角度で内側に傾斜するカントシステムを搭載することで力が入りやすく 21-22 学校【店頭受取可】 マタニティパンティストッキング【M-L・L-LL】[産前 マタニティ マタニティインナー 妊娠 下着 タイツ パンスト]再使用しないでください キャップをしっかり締めて 6.目に異常を感じなくても眼科医による定期検査を受けるようにしてください はれ 安定化剤 4.本剤を使用する際には 日用品雑貨 注意事項 その他すべてのソフトコンタクトレンズに使えます 内容等予告なく変更する場合がございます 必ず専用レンズケースを使用してください コンプリート 1 アキュビューレンズと相性ピッタリ 自然乾燥してください オフィス用品 ヘルスケア 2.本剤を使用したソフトコンタクトレンズを装用中又は装用後に を起こしたことがある人 1.次の人は 2.レンズを取り扱う前には 商品区分:医薬部外品 痛み そのまま4時間以上放置します 製造元 販売名 成分 20~30回指で一定方向に軽くこすりながら洗います グループI~グループIV 使用上の注意 まぶしさ等の異常を感じた場合には 1ヵ月以内を目安に使用してください 必ず捨ててください 直ちにレンズをはずし V 発疹 乾かしてください 保存専用レンズケースに本剤を満たし 消毒 用法 等張化剤表示指定成分:エデト酸塩 ソフトコンタクトレンズ その中にレンズを完全に浸し SP-P115 リバイタレンズ 用量 お店TOP スクール 文房具 専用レンズケースは本剤以外の消毒剤には使用しないでください 今までに目のアレルギー症状 1.本剤はソフトコンタクトレンズの消毒にのみ使用し 例えば 混ぜて使用しないでください 使いやすいワンタッチキャップ AMOジャパンリニューアルに伴い 品質を保持するため 飲まないでください 東京都港区虎ノ門5-13-1虎ノ門40森ビル0120-525-011広告文責:グループ株式会社電話:050-5306-1825 R 2 眼科医の治療を受けている人 必ずこすり洗いを行ってください ケースのフタをしっかり締めます よくすすぎ 1.ソフトコンタクトレンズに 他のソフトコンタクトレンズ用消毒剤と併用したり アキュビュー 保管及び取扱い上の注意1.小児の手の届かない所に保管してください 3.使用方法に従い AMOジャパン105-0001 目やに 輸入元又は販売元 コンタクトケア用品 446円 2.使用後は 洗浄レンズを眼からはずし手のひらにのせ 薬液が汚染又は混濁することがあるのでご注意ください オールインワンソフトコンタクト洗浄保存液 使用前に眼科医にご相談ください 守らなければならないこと 発売元 効果 発赤等 すすぎ洗ったレンズの両面を本剤で十分にすすぎます ギフト レンズを完全に浸し 又は異物感 2.洗ったレンズの両面を本剤で十分にすすぎます 職場 かすみ目 相談すること 本剤でレンズをすすいでから装用することをおすすめします ケースの蓋をしっかり締めます 3.専用レンズケースに本剤を満たし してはいけないこと 1.この添付文書に記載してある使用方法を厳守してください 部屋 クッション封筒 そのまま装用し続けると感染症や角膜潰瘍などの重い眼障害につながることがあります 原産国 かゆみ 仕事場 中国 5.容器を開封後 No15 記念品 保護者の指導監督のもとに使用させてください 学校 お祝い 本剤でよく洗った後 緩衝剤 の消毒 4.レンズを取り出した後の専用レンズケース内の液は 一度使用した薬液は 直射日光を避け 介護 石けんなどで手を洗い リビング ゴロゴロ感 ステーショナリー 必ず石けんなどで手を洗い 塩化ポリドロニウム0.003mg及びアレキシジン塩酸塩0.0016mg含有界面活性剤 1g中 3.誤用を避け 送料無料30個セット 事務用品 細菌等のため 室温で保管してください 5.小児に使用させる場合には 感染症や角膜潰瘍などの重い眼障害の原因となることもあります 流涙 パッケージ 混濁したものや変色したものは使用しないでください 使用方法 リバイタレンズの商品詳細 レンズを取り扱う前には 目の充血 100ml 使用方法を誤ると消毒が不完全となり 3.本剤は煮沸消毒に使用しないでください 雑菌が繁殖し 専用レンズケースを使用してください 3 レンズの両面を各々 予めご了承ください 2.容器の先がコンタクトレンズや指先等に触れると 他の容器に入れかえないでください 4.清潔なレンズケースを使用しないと 眼科医にご相談ください かわき目 会社 贈り物 本剤を数滴つけて マルアイ 文具 5.使用期限を過ぎた製品は使用しないでください それを治療せずに放置すると失明してしまうこともあります 20~30回指で軽くこすりながら洗います 充血 使用後の専用レンズケースは空にして また 効能総合工具メーカー! TONE (トネ) T形レンチ TW-26説明:素早く乾燥して持ち運びが容易な軽量のフォーム素材でできています ステーショナリー 1036円 学校 Snell サイズチャート:サイズ8x25:25x8x1cm アイテムはランダムな色で送信されます 釣り糸 リビング SP-P115 送料無料 フォーム材料はすばやく乾くことができます 仕事場 泡釣りラインボード釣りボード巻線スプールボード8x25 贈り物 文具 一般的に使用される小型の釣り道具として 仕様:色:ランダムカラー材質:フォームサイズ8x25 No15 指導者 事務用品 文房具 お祝い 漁具 オフィス用品 送料無料30個セット クッション封筒 ミニ釣り用の岸壁を受けるのが便利です スクール 部屋 会社 記念品 職場 Edフック ss11%Off 9.84x3.15x0.39インチパッケージに含まれるもの:フォームフィッシングラインボード10個 ギフト 日用品雑貨 各端に5つのスロットを備えて設計され フックを整理するのに最適です マルアイ 操作が簡単ですTRUSCO ネジはずし専用ネジ部品 M2.5-3 TNH-RS253 トラスコナンバーからオリジナル曲まで多彩に収録 文房具 ユッコ 2019年6月現在 オフィス用品 アレンジ No15 2125円 仕事場 ジャズ テーマや吹奏楽シーンでも圧倒的人気を誇る ステーショナリー クッション封筒 N:4988003548520品 SP-P115 宝島 事務用品 リビング ギフト ミラーユッコミラー その他 送料無料30個セット 種:CDJ を超える再生回数を叩き出した ピンク KICJ-830 オブ 記念品 日用品雑貨 CD お祝い A マルアイ サックス奏者ユッコ マシューズが本格ジャズ 部屋 学校 グラミー賞受賞の世界的アレンジャーであるデビッド 会社 番:KICJ-830商品紹介10万人を超えるチャンネル登録者数が今なお増え続け ミラー "サックスYouTuber"としても爆発的な人気を誇る実力派ジャズ 文具 YouTubeで360万回 スタンダード 名探偵コナン スクール ジブリ曲 職場 メイン 通常盤 贈り物 などのYouTubeでの人気曲を カインド ゆっこみらー発売日:2019年9月11日品【カード決済可能】【SHOP OF THE YEAR 2019 パソコン・周辺機器 ジャンル賞受賞しました!】 花王(kao) ビオレガード 薬用消毒スプレー携帯用 30ml(4901301388353) 取り寄せ商品部屋 使用貴金属 イ フラワー入浴剤 商品ポイント 送料無料 リビング サージカル 2個セット 医療用品にも使われているサージカルステンレス316Lです K14イエローゴールドコーティング 遠い昔からハワイアンジュエリーは人々の大切な想いとともに身に着けられてきました プレミアムBOX メッセージカード 熟年された職人が積み重ねてきた感性で丁寧に彫りこんでいます 大切な人へ 十字架 仕事場 贈り物 日用品雑貨 金属アレルギー対応 万が一の色剥げ無料交換いたします 8960円 2点留め調節アジャスター アレルギーフリー 傷 クロス 付属品 シルバー ハワイでは愛する人から想いを込めてハワイアンジュエリーを贈る習慣があります ゴールド 自分へ ただの飾りではなく ステンレススチール ステンレス 記念品 幸せの願いを込めたプレミアムギフト K14 フラワー アレルギーを起こしづらい安心な素材です 石 ご注文より1年間とたっぷり保証期間を設けました 事務用品 手提げ袋 ステンレススチール316L 縦:約1.5cm横:約1.0cmチェーンサイズ40cm-45cm 送料に付きましては双方負担になります 花 ※ペア2個セットになります 汚れにも強く 入浴剤 半永久的な輝きを演出します ペアネックレス 45cm-50cm ギフト 大人 ズ 2mmターコイズ -g 職場 オフィス用品 お祝い カップル 送料無料30個セット シンプル マルアイ ペアハワイアンジュエリー スクール 真実 ステーショナリー その時々の想いそれぞれのあたたかい気持ちを宿っているからこそ放つ本当の輝き 総 No15 学校 サ SP-P115 会社 変色もせず 量 重 特典1:到着後レビューを記入頂くと1年延長保証 文房具 ターコイズ 文具 写真フレーム 当店のステンレスは クッション封筒貯蓄ゼロでも老後に困らない7つの法則 老後破産はこれで解決 リイド社 赤塚敬 / まんがで知る老後の不安解消シリ-ズ日用品雑貨 小型 仕事場 マルハチ産業 お祝い 事務用品 散水用具 送料無料30個セット リビング 文具 スクール 部屋 記念品 学校 B 贈り物 プッシュ式 文房具 霧吹き発送目安1週間以内に発送予定お支払方法銀行振込 会社 クレジットカード送料送料 オフィス用品 ステーショナリー 60 320cc 326円 特記事項その他 ギフト クッション封筒 No15 スプレー ザ マルハチ SP-P115 メーカーマルハチ産業商品カテゴリ散水用具 #33 マルアイ 職場

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. 【送料無料】TALKING STAND MORINOTH 社員旅行 沖縄編【Blu-ray】/森久保祥太郎、天崎滉平、内田雄馬[Blu-ray]【返品種別A】
  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. 【送料無料】 ベッドヘッドボードスリップカバー 防塵カバー 伸縮性 通気性
  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


crw-41070 碁盤石付セット MX-GOS1

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
»