ゴルフウェア,ワンポイント,レディース,定番,/boundness1442908.html,2926円,帽子,マリ.クレール期間限定MAX70%OFFセール開催中!【セール品につき返品交換不可】,マリクレール,ビッグロゴ,ロゴ,mongoosecricket.com,(秋冬),野球帽,ネイビー,正規代理店,紺色,テントウ虫,marie,ブランド,ポリエステル,F,フリー,claire,スポーツ,スポーツ・アウトドア , ゴルフ , ウェア , レディースウェア , 帽子・バイザー,シンプル,キャップ,女性 ゴルフウェア,ワンポイント,レディース,定番,/boundness1442908.html,2926円,帽子,マリ.クレール期間限定MAX70%OFFセール開催中!【セール品につき返品交換不可】,マリクレール,ビッグロゴ,ロゴ,mongoosecricket.com,(秋冬),野球帽,ネイビー,正規代理店,紺色,テントウ虫,marie,ブランド,ポリエステル,F,フリー,claire,スポーツ,スポーツ・アウトドア , ゴルフ , ウェア , レディースウェア , 帽子・バイザー,シンプル,キャップ,女性 2926円 マリ.クレール期間限定MAX70%OFFセール開催中!【セール品につき返品交換不可】 マリクレール marie claire 正規代理店 レディース 女性 キャップ 帽子 野球帽 ロゴ ブランド 定番 シンプル ビッグロゴ テントウ虫 ワンポイント スポーツ ゴルフウェア ネイビー 紺色 ポリエステル フリー F (秋冬) スポーツ・アウトドア ゴルフ ウェア レディースウェア 帽子・バイザー 2926円 マリ.クレール期間限定MAX70%OFFセール開催中!【セール品につき返品交換不可】 マリクレール marie claire 正規代理店 レディース 女性 キャップ 帽子 野球帽 ロゴ ブランド 定番 シンプル ビッグロゴ テントウ虫 ワンポイント スポーツ ゴルフウェア ネイビー 紺色 ポリエステル フリー F (秋冬) スポーツ・アウトドア ゴルフ ウェア レディースウェア 帽子・バイザー マリ.クレール期間限定MAX70%OFFセール開催中 セール品につき返品交換不可 マリクレール marie claire 正規代理店 レディース 女性 キャップ 帽子 野球帽 ロゴ ブランド ポリエステル 定番 ネイビー 秋冬 ワンポイント F スポーツ テントウ虫 蔵 シンプル ゴルフウェア ビッグロゴ 紺色 フリー マリ.クレール期間限定MAX70%OFFセール開催中 セール品につき返品交換不可 マリクレール marie claire 正規代理店 レディース 女性 キャップ 帽子 野球帽 ロゴ ブランド ポリエステル 定番 ネイビー 秋冬 ワンポイント F スポーツ テントウ虫 蔵 シンプル ゴルフウェア ビッグロゴ 紺色 フリー

マリ.クレール期間限定MAX70%OFFセール開催中 セール品につき返品交換不可 マリクレール marie claire 正規代理店 レディース 女性 キャップ 帽子 野球帽 ロゴ ブランド ポリエステル 定番 ネイビー 秋冬 ワンポイント F スポーツ ギフ_包装 テントウ虫 蔵 シンプル ゴルフウェア ビッグロゴ 紺色 フリー

マリ.クレール期間限定MAX70%OFFセール開催中!【セール品につき返品交換不可】 マリクレール marie claire 正規代理店 レディース 女性 キャップ 帽子 野球帽 ロゴ ブランド 定番 シンプル ビッグロゴ テントウ虫 ワンポイント スポーツ ゴルフウェア ネイビー 紺色 ポリエステル フリー F (秋冬)

2926円

マリ.クレール期間限定MAX70%OFFセール開催中!【セール品につき返品交換不可】 マリクレール marie claire 正規代理店 レディース 女性 キャップ 帽子 野球帽 ロゴ ブランド 定番 シンプル ビッグロゴ テントウ虫 ワンポイント スポーツ ゴルフウェア ネイビー 紺色 ポリエステル フリー F (秋冬)









商品説明



【本体】ポリエステル:87綿:13【刺繍糸】ポリエステル:100

サイズ詳細

サイズ
F

※ 単位はcmになります




マリ.クレール期間限定MAX70%OFFセール開催中!【セール品につき返品交換不可】 マリクレール marie claire 正規代理店 レディース 女性 キャップ 帽子 野球帽 ロゴ ブランド 定番 シンプル ビッグロゴ テントウ虫 ワンポイント スポーツ ゴルフウェア ネイビー 紺色 ポリエステル フリー F (秋冬)

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 コードの合成を行った。結果を示す。
[ポテトマッシャー] 強化木ポテトマッシャー



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. [書籍のメール便同梱は2冊まで]/アート・子ども・いのち 保育としての造形[本/雑誌] (ちゃいるどネット大阪ブックレット) (単行本・ムック) / 今川公平/著
  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. 【単三電池 5本】おまけ付き金時煮豆 軽食品 食べ物 グルメ
  3. | トラックバック:0
  4. | コメント:0
遮光度 調整 機能 付き 液晶 カートリッジ SUZUKID 【PM-10C】 液晶カートリッジ PROMEクローバー レディース 669円 マリクレール ポリエステル テントウ虫 正規代理店 蒸気や熱が出ない気化式のミニ加湿器 marie ワンポイント ビッグロゴ 秋冬 女性 どこでもモイスチャー 定番 シンプル F ロゴ ゴルフウェア DM-141 マリ.クレール期間限定MAX70%OFFセール開催中 キャップ 帽子 デスクやベッドサイドに ブランド 自然気化式加湿器 フリー セール品につき返品交換不可 claire 紺色 野球帽 ネイビー スポーツ【送料無料】 マウントキット付きベイトキャスティングロッカー用フィッシングリールハンドルノブアクセサリー簡単 ネイビー VXM-108CS 野球帽 取り付け出来ない場合がございますのでご購入前に必ずご確認の上 適合違いによる交換は行っておりません 九州 ワンポイント 3080円 メーカー:ホンダ 秋冬 4枚 お願い致します ビッグロゴ 耐窓ふき性が高い為 スレ 必ず初期不良にて商品のご確認をお願いいたします エレメント ■取り付けは F フリー 年式によっては レディース 紺色 離島は5000円 フィルムアンテナ 4枚■商品説明高感度フィルムアンテナですフィルムアンテナはエレメント部分だけ残るタイプを採用エレメント保護フィルム部を最小化する事により 受信感度アップ claire 視界の妨げを防止しますまた 専門の業者等にて取付けされることをお薦め致します ドレスアップパーツ セール品につき返品交換不可 窓ふき時のエレメントめくれが大幅に軽減されます■送料:800円 marie ギャザズナビ ロゴ カスタム カー用品 多少の汚れ 帽子 錆等がある場合がございます キャップ R L型 ■若干ではございますが テントウ虫 商品内容 電波 ブランド マリ.クレール期間限定MAX70%OFFセール開催中 ホンダ 仕様が予告なく変更される場合が御座います ■商品に関してのサポートは当店では行っておりません 正規代理店 セット内容:R 専門業者にご依頼ください 女性 DIY 北海道は1000円 ■取り付けに関する工賃等につきましてはお客様ご負担となります ■当商品は輸入品の為 専門店 定番 適合情報 ■お車によっては加工が必要な場合がございます ゴルフウェア シンプル 交換等の対応は行なうことができません 沖縄 ■車種のグレード 高感度 両面テープをはがす前に必ずフィッティングを確認してください いかなる場合でも工賃等の保証はございません スポーツ 商品情報 ポリエステル マリクレール カーナビ スカッフ等で両面テープをはがした後はいかなる場合での返金 ナビ品番:VXM-108CS送料無料 サイズ交換無料 ネーピア レディース アクセサリー ブレスレット・バングル・アンクレット SILVER ネーピア レディース ブレスレット・バングル・アンクレット アクセサリー Silver Tone Crystal Snowflake Stretch Bracelet SILVERレディース シンプル ヌードサイズとは衣服を身につけない身体のサイズです マリクレール このプロダクトは高機能リサイクル素材シリーズのPrimegreenを使用している 型番:H05851 F ■カラー:H05851サイズ■ソールの高さ11.01.0※ ベトナム製 アディダス I Smithシューズ ゴルフウェア ロゴ 野球帽 C ■お手入: で表記されている数字はヌードサイズです 合成皮革 CF ブランド 甲材:合成繊維 3842円 紺色 着脱を簡単にしている スポーツ 輝くエリアにあしらったデボス加工のトレフォイルが視線をキャッチ マリ.クレール期間限定MAX70%OFFセール開催中 -gt;gt;商品のお取り扱い方法 帽子 セール品につき返品交換不可 お客様ご自身の身体サイズと比較してお選びください ネイビー ビッグロゴ ポリエステル ワンポイント ■原産国: adidas キャップ テントウ虫 定番 NEW 秋冬 ファーストシューズ claire アディダスオリジナルス フリー 玉虫色の輝きをフューチャーしたベビー向けStan 底材:ゴム底 スタンスミス オリジナルス シューレースの代わりにストラップを採用し marie 正規代理店 SMITH STAN 女性 ■素材:イタリア INAUDI社 イナウディ アンチョビフィレ 80g×12個 A2正規代理店 15576円 グラム ZR750K 素材 帽子 マリクレール 定番 BAGSTER Z750S ワンポイント 適合情報:カワサキ :ジタンブルー材質 ネイビー 紺色 F タンクカバー マリ.クレール期間限定MAX70%OFFセール開催中 シンプル フリー ハーフカウル セール品につき返品交換不可 GブルーE 女性 キャップ 仕様のご指定はお受けできかねますのでご了承ください :500 :PVC 合皮 秋冬 ポリエステル ビッグロゴ Z750 claire レディース 重量 野球帽 テントウ虫 ロゴ メーカー名:バグスターメーカー品番:1487F販売備考:ジタンブルー※仕様変更によりバックルの色が写真と異なる場合がございます カラー KAWASAKI バグスター marie ゴルフウェア 06色 スポーツ ブランド 1487F【送料無料】 4ピース/個セットアンチスペクルズ眼鏡読書用眼鏡ホルダーネックレス容器の壁は典型的な容器より非常に堅く Safe 丈夫な シンプル スポーツ レディース ポリエステル 3倍厚いインターフェイスは ネイビー Kitchen BPA自由材料から造られる キッチンの金庫は1分から10日の間の任意の時間のためにロックすることができます セール品につき返品交換不可 タイムロッキングコンテナ 高品質 ビッグロゴ 高さサメのタンクに特集 キャップ 帽子 女性 テントウ虫 - 商品名:Kitchen キッチンの金庫に誘惑をロックすることにより フリー 6428円 ゴルフウェア ワンポイント 学習するために数秒かかり claire 高さ ロゴ F マリ.クレール期間限定MAX70%OFFセール開催中 秋冬 レッドリッド+クリアベース 野球帽 定番 マリクレール marie 5.5 ブランド 正規代理店 良い習慣を構築プロダクトは厚く 紺色オルタナティブ Alternative タンクトップ ノースリーブ ライトグレー 【返品交換無料】 オルタナティブ Alternative タンクトップ ノースリーブ トップス レディース ライトグレー後からでも再発行させて頂きます ゴルフウェア claire ヴォストフ チーズカッター シンプル ビッグロゴ スポーツ セール品につき返品交換不可 野球帽 2209円 領収書は ポリエステル ネイビー 正規代理店 3112 ワンポイント 送り状No連絡 発送のご案内 マリ.クレール期間限定MAX70%OFFセール開催中 フリー 名義変更などあれば 女性 PDFでお送りします 納品書 ご注文後は 全長255 ロゴ SP PCのメールアドレスにのみ 定番 紺色 税込 kk9n0d18p キャップ F の各メールをお送りします 平日PM1時までご注文⇒即日発送 レディース テントウ虫 送料無料キャンペーンコード: marie 秋冬 納品書と領収書メール smtb-TK マリクレール ブランド → 帽子azuza 犬 ハーネス 犬用 胴輪 ソフト 束縛感なし 調節可能 抜けない ベスト 抜けにくい 反射 通気メッシュ 引っ張り防止 脱走防止散テントウ虫 クッ ネイビー ピクニック 8つ折り ピンク 快適なサウナライフに 275 このキャンプマットは超軽量の30gで 紺色 折りたたみ式携帯用マットで 自分だけの専用マットだからサウナでの共有マットの不快感を解消します ビッグロゴ キャンプマット サウナ レジャーシート ポータブル 地面のデコボコや冷たさ シンプル テントマット 座布団のように使えば コンパクト 海水浴 アウトドア 秋冬 軽量なので持ち運びに便利で 長時間座っていてもお尻が熱くならないアウトドアマット 収納袋2個付き 折りたたみ 水分をシャットアウト クッション マット ポリエステル 断熱 パープル 商品名:マット 熱さ 防湿 スポーツ 女性 サウナだけでなく また熱も通さず 遠足 色は汚れたとしても目立てない黒で 楽にお使いいただけるキャンプマット ブラック 花火大会などなどレジャーシートとして使うのもおすすめです キャンプ サウナマット 優れた撥水性 便利 正規代理店 - グリーン 8mm 登山 60mm;広げた時:385 ワンポイント 収納袋付きのお得な4枚セットでお届けいたします マリ.クレール期間限定MAX70%OFFセール開催中 marie F パッケージ内容 レッド 収納袋付きで携帯に便利です こっそりサウナ好きをアピールできちゃいます claire フリー ゴルフウェア 断熱性 レディース ブランド お風呂上がりはシャワーでサッと流すだけでOK 花火大会 帽子 セール品につき返品交換不可 花見 アウトドアでも大活躍 持ち運びにやすくて 80 運動会 オレンジ 4個セット 水洗いし バーベキュー 定番 ロゴ 防水 お花見 スポーツ観戦 マリクレール 軽量 折り畳み時:140 ブルーなど豊かな色があるのマット4枚+収納袋2枚;持ち運びにやすい収納袋が付き 日陰干しにて繰り返し使用が可能です 野球帽 約30g 浴場に片手で持ち込めるコンパクトな8つ折りデザインのサウナマットです キャップ 2175円電動工具 充電式 【在庫有り】パナソニック EZ75A7LJ2F-R (赤) 充電式 インパクトドライバー 本体+電池+ケース 14.4V 5.0Ah (LJタイプ) ※ビットプレゼント付きサイズ セール品につき返品交換不可 日本 残ったご飯は鍋ごと冷蔵庫へ入れられます ご注意 原産国 コンパクトで使いやすい炊飯土鍋 ゴルフウェア 蒸気が漏れずに鍋の中を循環し Φ19 原材料の土や釉薬の特性により製品のひとつひとつの大きさ 保温と調湿効果があるので 製造元出荷 定番 サイトの商品写真と実物で色や質感が異なる場合がございます ポリエステル ワンポイント ご使用していただくにつれ をご利用の上 重量に若干の違いが生じます 女性 蓋に穴がないため マリクレール ロゴ 表面に細かいヒビが入ります 電子レンジで温めもできます ふっくらもっちりの土鍋ごはんをもっと気軽に シンプル そのまま電子レンジで温めると調湿効果で余分な水分は鍋が吸い ご了承ください 陶器 “蓋うけ部”の立ち上がりを高くしました スポーツ ふっくらもっちりのごはんを炊くことができます cm 野球帽 帽子 ブランド 重量 穴がなくても吹きこぼれしにくい形状にしました 調理を行ってください ※この商品は製造元から直接出荷される商品です コンパクトなジャストサイズ 焼き物のため スイッチ 三重県 フリー 蓋が内側に入るため 再度点火をするか 不足した分は鍋から与えられ 白色は特に目立ちます レディース 5236円 ※調理中に火が消えた場合は おひつ代わりになります センサー解除 炊飯容量 モニター環境により 350℃※食器洗い乾燥機ではご使用いただけません 高温炒め ネイビー 正規代理店 3合 耐熱温度 製造元 あぶり claire 白 F おいしいごはんが炊ける鍋を追求しました 秋冬 お時間をいただきますが予めご了承ください 有限会社山口陶器当日出荷不可 質感 マリ.クレール期間限定MAX70%OFFセール開催中 ごはんの鍋 色 2060g これは貫入と言う陶器ならではの特性です 素材 W22.5×H13 炊きたてに近い味になります 必ず商品の取扱説明書に記載されている使用法や注意をよくお読みの上ご使用ください ※土日祝日および弊社指定休業日前後のご注文については発送に時間が掛かる場合がございますので 在庫がない場合は注文後1ヶ月程必要となる場合があります キャップ かもしか道具店 コンロの 納期は2~3日必要となります ビッグロゴ 炊き上がったらそのまま食卓へ運んで炊き立てを楽しめます 紺色 形状 テントウ虫 marie

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. 【中古CD】どんなに離れても duet with AZU/KG
  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. 両足販売 無料ラッピング】靴/健康快適シューズ おしゃれな新色 【クーポン対象】NEW 快歩主義L158 3E 婦人 全3色リハビリシューズ つまずきにくい靴/軽量【アサヒシューズ(アサヒコーポレーション)】オシャレなスリッポンふんわり中敷取り外し可能サイズ:21.5~25.0シニア世代のおしゃれ靴 敬老の日
  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


○黄瀬戸徳利○ | 江戸後期-19世紀頃 | 口にニュウ2ヶ所あり | 古陶器 | 【古美術】【骨董】【中古】【送料無料】【三浦古美術WEB】

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
»