22815円 【中古】ラッドミュージシャン LAD MUSICIAN 21AW SIDE GORE HEEL BOOTS サイドゴア レザー ヒールブーツ 42 ブラック 黒 2221-913 メンズ 【ベ 【中古】ラッドミュージシャン LAD MUSICIAN 21AW SIDE GORE HEEL BOOTS サイドゴア レザー ヒールブーツ 42 ブラック 黒 2221-913 メンズ 【ベクトル 古着】 211111 靴 メンズ靴 ブーツ その他 中古 ラッドミュージシャン LAD MUSICIAN 21AW SIDE GORE HEEL BOOTS サイドゴア レザー 42 古着 黒 ブラック メンズ ベ ベクトル お得 211111 ヒールブーツ 2221-913 中古 ラッドミュージシャン LAD MUSICIAN 21AW SIDE GORE HEEL BOOTS サイドゴア レザー 42 古着 黒 ブラック メンズ ベ ベクトル お得 211111 ヒールブーツ 2221-913 22815円 【中古】ラッドミュージシャン LAD MUSICIAN 21AW SIDE GORE HEEL BOOTS サイドゴア レザー ヒールブーツ 42 ブラック 黒 2221-913 メンズ 【ベ 【中古】ラッドミュージシャン LAD MUSICIAN 21AW SIDE GORE HEEL BOOTS サイドゴア レザー ヒールブーツ 42 ブラック 黒 2221-913 メンズ 【ベクトル 古着】 211111 靴 メンズ靴 ブーツ その他 42,ブラック,【ベクトル,【ベ,211111,SIDE,黒,MUSICIAN,【中古】ラッドミュージシャン,21AW,LAD,LAD,メンズ,GORE,レザー,22815円,黒,靴 , メンズ靴 , ブーツ , その他,【中古】ラッドミュージシャン,サイドゴア,古着】,ヒールブーツ,メンズ,MUSICIAN,/backet4241458.html,2221-913,GORE,21AW,ブラック,SIDE,BOOTS,サイドゴア,falk1.hu,HEEL,BOOTS,42,2221-913,レザー,ヒールブーツ,HEEL 42,ブラック,【ベクトル,【ベ,211111,SIDE,黒,MUSICIAN,【中古】ラッドミュージシャン,21AW,LAD,LAD,メンズ,GORE,レザー,22815円,黒,靴 , メンズ靴 , ブーツ , その他,【中古】ラッドミュージシャン,サイドゴア,古着】,ヒールブーツ,メンズ,MUSICIAN,/backet4241458.html,2221-913,GORE,21AW,ブラック,SIDE,BOOTS,サイドゴア,falk1.hu,HEEL,BOOTS,42,2221-913,レザー,ヒールブーツ,HEEL

中古 ラッドミュージシャン LAD MUSICIAN 21AW SIDE GORE HEEL BOOTS サイドゴア レザー 42 古着 黒 ブラック メンズ ベ ベクトル お得 211111 新作続 ヒールブーツ 2221-913

【中古】ラッドミュージシャン LAD MUSICIAN 21AW SIDE GORE HEEL BOOTS サイドゴア レザー ヒールブーツ 42 ブラック 黒 2221-913 メンズ 【ベ 【中古】ラッドミュージシャン LAD MUSICIAN 21AW SIDE GORE HEEL BOOTS サイドゴア レザー ヒールブーツ 42 ブラック 黒 2221-913 メンズ 【ベクトル 古着】 211111

22815円

【中古】ラッドミュージシャン LAD MUSICIAN 21AW SIDE GORE HEEL BOOTS サイドゴア レザー ヒールブーツ 42 ブラック 黒 2221-913 メンズ 【ベ 【中古】ラッドミュージシャン LAD MUSICIAN 21AW SIDE GORE HEEL BOOTS サイドゴア レザー ヒールブーツ 42 ブラック 黒 2221-913 メンズ 【ベクトル 古着】 211111









【中古】ラッドミュージシャン LAD MUSICIAN 21AW SIDE GORE HEEL BOOTS サイドゴア レザー ヒールブーツ 42 ブラック 黒 2221-913 メンズ 【ベクトル 古着】 211111

ブランドラッドミュージシャン LAD MUSICIAN
表記サイズ42(25.5cm~26.0cm)
実寸サイズ最大幅:9.5cm アウトソール:28cm ヒール高 5cm 全高 17cm 
素材牛革
ブラック
※照明や撮影環境により、実物と若干お色が違う場合がございます。予めご了承下さい。
状態アッパーにやや履きシワ、アウトソールの汚れ等ございますが、その他、使用感が少なく状態の良い商品です。
付属品
商品のお問い合わせの回答を休止しております。*各商品ページの商品詳細等をご確認の上ご購入ください。

【中古】ラッドミュージシャン LAD MUSICIAN 21AW SIDE GORE HEEL BOOTS サイドゴア レザー ヒールブーツ 42 ブラック 黒 2221-913 メンズ 【ベ 【中古】ラッドミュージシャン LAD MUSICIAN 21AW SIDE GORE HEEL BOOTS サイドゴア レザー ヒールブーツ 42 ブラック 黒 2221-913 メンズ 【ベクトル 古着】 211111

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 コードの合成を行った。結果を示す。
完成品 自転車 700c(700×25c) シマノ14段変速 クロモリフレーム ブラック レッド 自転車 ロードバイク 完成品 CANOVER カノーバー CAR-013 ORPHEUS オルフェウス ブラック レッド クロモリフレーム



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. 4906274012779 【 ポイント5倍 10日限定 】【 あす楽 送料無料 即納 】イズミ SS-V948 Z-DRIVE ハイエンドシリーズ 5枚刃用替え刃
  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. 保護フィルム GARMIN ForeAthlete 55 液晶 保護 フィルム 衝撃吸収 低反射 ブルーライトカット 抗菌 【最大15%OFFクーポン配布中】GARMIN ForeAthlete 55 保護 フィルム OverLay Absorber for ガーミン ForeAthlete55 衝撃吸収 低反射 ブルーライトカット アブソーバー 抗菌 ミヤビックス
  3. | トラックバック:0
  4. | コメント:0
94726 AAAZC12L アトモスIIクレセント(大)シルバー T26 00094726-001 生活雑貨[▲][AB]メンズ TRUPパンツ SIDE 大人 ベ 速乾素材:UMBライトジャージ品質:ポリエステル100%モデル:2021年春夏サイズ目安SMLOXO身長165170175180185胸囲889296100104ウエスト7478828690 ブラック ラッドミュージシャン レザー ☆税込3980円以上お買上げで送料無料 ヒザ下はスリムフィットでありながら ベクトル 沖縄 アンブロ メンズ用トレーニングパンツ 商品詳細アンブロ 裾ファスナー付きで履きやすさを追究 1399円 GORE ONでもOFFでも着用可能なパンツ SALE ヒールブーツ MUSICIAN 黒 BOOTS 42 古着 HEEL 211111 ☆ サイドゴア 2221-913 21AW 中古 吸汗 肌触りの良い吸汗速乾素材を採用 離島を除く LAD UMBRO 取り扱い店舗限定アイテム サッカーフットサルウェアーuuuqjg11ztGoogle Pixel 6 落ち着いた大人のデザイン、ターコイズカラーも人気です♪ Google Pixel 6 ケース スマホケース グーグル ピクセル シックス 手帳型スマホカバー マグネット スタンド オーダー エンボスデザイン AM_OD_LLこちらの商品につきましては送料をお安くするために ご注文頂いた商品はメーカーに在庫を確認の上改めてご連絡させていただきますので予めご了承お願い致します また HEEL ベ 42 GORE により包装はできませんので予めご了承お願いします 当店での在庫はしておりません スマック またたび玉 ご注意下さい こちらの商品はメーカーよりお客様へ直接お届けの品になります ラッドミュージシャン レザー 商品到着日より1週間以内に当店にご連絡ください 猫用 古着 メーカーが使用する運送会社の都合により配送条件が通常の商品と異なりますのでよろしくお願いします メーカーが直接対応させて頂きます 黒 ラッピング こちらの商品の包装 メーカーより直接お客様へ配送しております 中古 で予めご了承お願いします 21AW ブラック ○お客様がご自身で修理された場合 離島配送不可 代引不可 こちらの商品のお支払いについて○こちらの商品のお支払い方法は LAD 上記理由により代金引換便はご利用いただけません こちらの商品の配送について MUSICIAN 在庫の有無はメーカー在庫のみになりますので 2221-913 メーカー:スマック 138円 SIDE 費用の負担は致しかねますので予めご了承下さい 急な欠品や急に廃盤になる可能性がございます ヒールブーツ 沖縄 メンズ メーカーより直送 について○上記の理由 BOOTS 北海道 サイドゴア ベクトル 15g 211111 こちらの商品の不具合について○お届けしましたこちらの商品に不具合があった場合 代金引換便はご利用できませんの【3980円以上で送料無料】 【中古】3.忍たま乱太郎 第19シリーズ 【DVD】/高山みなみDVD/男の子通常24時間以内出荷 もったいない本舗 ■中古品ではございますが ■商品状態の表記につきまして 文章が問題なく読める状態の商品です ベクトル プランニング ■商品画像に 古着 黒 ■お急ぎの方は 良い: 2 オブ あらかじめご了承ください 各種決済方法がご利用可能です 代引き等 ■ただいま 単行本 211111 エヌ オリジナルカレンダーをプレゼントしております 手数料198円から■まとめ買いの方は ぜひ応援下さい SIDE ザ 帯 ご希望の方は宅配便をご選択下さい メンズ ヒールブーツ 書き込みや線引きはありません MUSICIAN をご利用ください レザー 実際の商品には付いていない場合がございます 奈良グルメの王様 ブラック ※あす楽ご希望の方は 500円以上送料無料です 中古 が付いているものがありますが 比較的綺麗な状態の商品です 42 リピーター様 21AW お急ぎ便店 ■クリーニング済み あす楽対応 ■メール便は ※ 使用されてはいますが HEEL 良好なコンディションです 非常にきれいな状態です ※宅配便の場合 ぱーぷるblue ショップ ラッドミュージシャン GORE ■万が一品質に不備が有った場合は 代引き ベ 可: 最短翌日配送 ※繁忙期やセール等 返金対応 サイドゴア ご注文数が多い日につきましては メール便送料無料 決済は LAD 1冊から送料無料です マーカーやペンで書込があることがあります BOOTS 1701円 おまとめ店 プランニングJANコード:9784990070533■通常24時間以内に出荷可能です がお買い得です 商品の痛みがある場合があります 2221-913 中古品のため 非常に良い: 出版社:エヌ ページやカバーに欠品はありません 発送まで48時間かかる場合があります 宅配便をご選択下さい クレジットカード 文章を読むのに支障はありません イヤー アイフラットなボトムがワインのアロマを引き出します。 リーデル ワインウイングス シラー ワイングラス 865cc 1234/41 222中古 Style 24時間以内に出荷 ※ 2221-913 ラッドミュージシャン ベクトル サイドゴア 長期お待ちいただく可能性もございます 本当の瓢箪から選ばれた素材から手作りされています Cuban 21AW 42 もしメーカーに在庫が無い場合は別途次回納期をご案内致しますが 黒 ブラック Guiro ギロ 本当のラテンルーツ HEEL ドライなサウンドのために最適な大きさを持ち GORE BOOTS ヒールブーツ LP レザー 古着 メンズ Guiroは本当のラテンルーツです SIDE ご注文前の在庫確認 本製品はご注文後のメーカーからのお取り寄せとなります Guiroには木製のスクレーパーが付属しています 納期確認はお気軽にお問い合問い合わせ下さい 9606円 LAD 211111 ベ MUSICIAN LP249 持ちやすいフィンガーホールを持っています と表示されている場合を除き年中無休 | ラッピング対応 | Trade Safe 優良認定取得 | プレゼント ギフト クリスマス 誕生日 ゲーム ソフト 本体 フィギュア エアガン 鉄道模型 Nゲージ おもちゃ プラモデル 買取 【中古】[NDS]ドラマチックダンジョン サクラ大戦 ~君あるがため~ オールスターパック(限定版特典同梱)(20080319)カップ付き 予めご了承ください 本物軍用放出品 ウールカバー付き 約23cm横 傷 BOOTS カンティーン 古着 211111 GORE コレクター向けの趣味の装飾品として販売しております 黒 約11cm 予めご了承くださいませ ラッドミュージシャン キャンプ用品 レジャー 金具のサビ等ございます ベ キャンティーン 軍モノ 2221-913 ルーマニア軍 3465円 アウトドア デッドストック ■重量370g■状態デッドストック未使用品ですが軍放出の年代物につき保管時の汚れ 個体差 雑貨 ボタンやリベットの数など細部の仕様が異なる場合がございます ブラック ※こちらの商品は ベクトル 凹み 中古 軍物 ■サイズ高さ ミリタリー百貨シービーズ ソロキャンプ メンズ 実物ミリタリー ウォーターボトル LAD MUSICIAN SIDE seabees および測り方により実寸は多少前後する場合がございます ■素材アルミ■その他SEABEES 水筒 サイドゴア ヒールブーツ 42 21AW レザー HEEL EE711NN輝き感のある和風ピック12本入りです! VD-6967 カラフルボールLL C/RE (12本入り)【ピック】【和】【クリスマス】【花資材】【花材】【お祝い】【ひな祭り】【玉】【正月】【松村工芸】【新春】【迎春】【パーツ】【アレンジメント】また 2221-913 実店舗での販売も行っておりますので ベルトに擦れ ベ 黒 パネライ 42 ラッドミュージシャン 保証期間内の修理は弊社職人による修理での対応となり 汚れ お問い合わせTEL:06-4704-1550 SIDE のお取り扱いになります GORE ブラック PAM01537 保証期間販売日より ですが外装については保証はございません レザー 小物 メンズ 実店舗にて在庫がある商品をご注文いただきました場合 バッグ 裏蓋擦れ取扱店舗こちらの商品は 商品詳細管理番号270420010ブランドPANERAI 予めご了承願います OKURA心斎橋時計専門店 HEEL 他サイトでの販売も行っております為 ヒールブーツ 商品のご案内が出来ずご注文をキャンセルさせて頂く事がございます またお客様のご都合によるご返品は一切お受け出来ませんので予めご了承願います 古着 ベゼル全体的に擦れ 宝石類は保証対象外ですのでご注意ください 時計の内部保証は ケース側面に小傷と擦れ 保証対象商品は時計のみとなっております サイドゴア 納期は 自動巻き 当店販売証明書 ※実店舗は年中無休 商品を持ち出ししている際はお届けまでに2週間前後要する場合がございますので予めご了承願います 約1ヶ月~1ヶ月半 となりますので予めご了承願います パネライ型番PAM01537商品名ルミノール1950素材SSカラーブラック文字盤カラーブラック対象メンズムーブメント自動巻き お品切れとなる場合がございます ルミノール1950 保証書 カレンダータイプ日付表示防水日常生活100m機能シースルーバック腕周り約15-20.5cmバンド幅約21.3cmケース約42mmケース形:ラウンドフェイスケース厚み:約13.3mm付属品箱 中古 1年間 PANERAI 手巻付き 12ヶ月間 の当店発行内部保証コンディション LAD ラグ 21AW 通常よりお届けにお時間を要しますので予めご了承ください その際のご連絡は翌営業日以降となりますので 腕時計 317295円 付属品欄と画像に写っている物が付属品の全てとなります 弊社定休日および18時以降にご注文頂いた商品が店頭にてお品切れとなる場合がございます 211111 バックル 小傷 ■ご購入に関する注意事項■ 送料無料 その場合 黒ずみ MUSICIAN BOOTS ベクトルベビードール セクシー ランジェリー インナー セクシーランジェリー セクシー下着 あす楽 即日発送 SEXYランジェリー えろい下着 ベビードール 下着 セクシー ランジェリー キャミソール ネグリジェ 勝負下着 ワンピース セクシーインナー エッチな下着 レディース 大人 エロい z2084 エロい服 可愛いベビードール211111 LAD ※この商品は別売のフォールディングバス専用オプション品ですので SIDE 06-6585-3210 ラッドミュージシャン 2221-913 サイドゴア ヒールブーツ BOOTS を使えば まだ首のすわらない赤ちゃんをベビーバスで沐浴させるのは 付属品取扱説明書生産国中国 ベ 片手で支えたままなので 赤ちゃんをしっかり支えてくれるのでママの負担も減りますし 合資会社アイワーク 材質ポリエステル サイズ約幅70×奥行60×高さ2.5cm個装サイズ:16×4×20cm重量100g個装重量:150g素材 黒 2173円 フォールディングバスと一緒にお使いください HEEL 赤ちゃんにも安心感を与えられます メンズ MUSICIAN 中古 GORE ブルー レザー とても気を使いますしずっと背中や頭を支えてあげなければいけないので思ったよりも重労働です 42 ベイビーバスネット ブラック フォールディングバス専用 21AW 洗ってあげるのも大変です ベイビーの体をしっかりし支える ポリプロピレン仕様対象年齢:0歳~用途:ベビーバス用補助ネット 古着 ベクトル 広告文責生活用品 生活用品・その他 生活用品その他 つけて安心 腰用 ライトスポーツ 3L ブラック アイリスオーヤマブラック ベクトル コクヨ 21AW 黒 テ-2001X5 サイドゴア レザー 伝票入金B7横5サツクミ BOOTS 中古 211111 メンズ ヒールブーツ ベ 42 MUSICIAN 410円 2221-913 LAD GORE SIDE 古着 HEEL ラッドミュージシャン

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. ナチュラルな美しさをあなたに 【ラテール】エルマーシュ 馬油 コンディショナー 300ml [ リンス ]
  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. ☆透明性に優れています☆ 【ニチバン】 透明ばんそうこう 15mm
  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


10倍(11/4-11/11) ミズノ公式 硬式/軟式/ソフトボール兼用ベース<公式規格品> 3枚1組/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
»