送料込み 沖縄 離島を除く ジュニア用プロテクター3点セット S #ERA083 エバニュー 香水 コスメ等 日本正規代理店品 25万商品以上取り扱い プロテクター EVERNEW 割引クーポン有 アウトドア サイクリング エバニュー: スポーツ 自転車 お得クーポン発行中 お得クーポン発行中,/corentin-jean/,【エバニュー:,プロテクター】【EVERNEW】,スポーツ・アウトドア , 自転車・サイクリング , プロテクター,25万商品以上取り扱い!,【割引クーポン有】,#ERA083,送料込み(沖縄・離島を除く),エバニュー,2713円,#ERA083,imprentaonline.cevagraf.coop,自転車・サイクリング,ジュニア用プロテクター3点セット(S),【送料込み(沖縄・離島を除く)】,スポーツ・アウトドア,香水・コスメ等,ジュニア用プロテクター3点セット(S) 2713円 送料込み(沖縄・離島を除く) ジュニア用プロテクター3点セット(S) #ERA083 エバニュー 香水・コスメ等 25万商品以上取り扱い! お得クーポン発行中 【割引クーポン有】 【送料込み(沖縄・離島を除く)】 ジュニア用プロテクター3点セット(S) #ERA083 【エバニュー: スポーツ・アウトドア 自転車・サイクリング プロテクター】【EVERNEW】 スポーツ・アウトドア 自転車・サイクリング プロテクター 2713円 送料込み(沖縄・離島を除く) ジュニア用プロテクター3点セット(S) #ERA083 エバニュー 香水・コスメ等 25万商品以上取り扱い! お得クーポン発行中 【割引クーポン有】 【送料込み(沖縄・離島を除く)】 ジュニア用プロテクター3点セット(S) #ERA083 【エバニュー: スポーツ・アウトドア 自転車・サイクリング プロテクター】【EVERNEW】 スポーツ・アウトドア 自転車・サイクリング プロテクター お得クーポン発行中,/corentin-jean/,【エバニュー:,プロテクター】【EVERNEW】,スポーツ・アウトドア , 自転車・サイクリング , プロテクター,25万商品以上取り扱い!,【割引クーポン有】,#ERA083,送料込み(沖縄・離島を除く),エバニュー,2713円,#ERA083,imprentaonline.cevagraf.coop,自転車・サイクリング,ジュニア用プロテクター3点セット(S),【送料込み(沖縄・離島を除く)】,スポーツ・アウトドア,香水・コスメ等,ジュニア用プロテクター3点セット(S) 送料込み 沖縄 離島を除く ジュニア用プロテクター3点セット S #ERA083 エバニュー 香水 コスメ等 日本正規代理店品 25万商品以上取り扱い プロテクター EVERNEW 割引クーポン有 アウトドア サイクリング エバニュー: スポーツ 自転車 お得クーポン発行中

送料込み 沖縄 離島を除く ジュニア用プロテクター3点セット S #ERA083 エバニュー 香水 コスメ等 日本正規代理店品 25万商品以上取り扱い プロテクター EVERNEW 割引クーポン有 アウトドア 新作製品、世界最高品質人気! サイクリング エバニュー: スポーツ 自転車 お得クーポン発行中

送料込み(沖縄・離島を除く) ジュニア用プロテクター3点セット(S) #ERA083 エバニュー 香水・コスメ等 25万商品以上取り扱い! お得クーポン発行中 【割引クーポン有】 【送料込み(沖縄・離島を除く)】 ジュニア用プロテクター3点セット(S) #ERA083 【エバニュー: スポーツ・アウトドア 自転車・サイクリング プロテクター】【EVERNEW】

2713円

送料込み(沖縄・離島を除く) ジュニア用プロテクター3点セット(S) #ERA083 エバニュー 香水・コスメ等 25万商品以上取り扱い! お得クーポン発行中 【割引クーポン有】 【送料込み(沖縄・離島を除く)】 ジュニア用プロテクター3点セット(S) #ERA083 【エバニュー: スポーツ・アウトドア 自転車・サイクリング プロテクター】【EVERNEW】




※こちらは取寄商品になります。
具体的な納期に関してましては、ご注文後、担当よりメールにてご案内させていただきます。
(仕入先の在庫状況によっては、欠品・廃盤の場合や、発送までに1週間以上のお時間をいただく場合もございます。)

送料込み(沖縄・離島を除く) ジュニア用プロテクター3点セット(S) #ERA083 エバニュー 香水・コスメ等 25万商品以上取り扱い! お得クーポン発行中 【割引クーポン有】 【送料込み(沖縄・離島を除く)】 ジュニア用プロテクター3点セット(S) #ERA083 【エバニュー: スポーツ・アウトドア 自転車・サイクリング プロテクター】【EVERNEW】

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 コードの合成を行った。結果を示す。
カーポート 1台用 木目調でデザイン性の高いカーポートです。 カーポート 1台用 工事付 アートポート W27-L57 基本工事費込み 【 標準柱 H22 / ポリカ屋根材 仕様 / タカショー 】 ( カーポート 車庫 駐車場 屋根 アルミ ガレージ 自転車 フラット 木目 木調 )



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. 【送料無料】 チョーカーセクシーなロングスリーブボディスーツset l黒
  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. 田邊金属工業所 【クーポン20%オフ 11/10 0時-24時】田邊金属工業所 傘フック ホワイト 8097762
  3. | トラックバック:0
  4. | コメント:0
【送料無料】 5個の空のスキューバダイビングシュノーケリングウェイトポケットメッシュショットポーチバッグ2kgご注意 9mm 商品について素材輝きが美しい高品質のガラス製埋め込み型ストーンです EVERNEW 49円 送料込み 各1個入り デコに3Dネイルに 6mm 沖縄 25万商品以上取り扱い 高品質スクエア型埋め込みストーン サイクリング モニターや環境などにより クリア コスメ等 離島を除く ☆クリックポストOK☆ まるでジュエリーみたい ネイルや埋め込み型ストーンとして幅広くお使い頂けます S サイズ2mm アウトドア お得クーポン発行中 エバニュー: プロテクター スポーツ 3mm 香水 自転車 ジュニア用プロテクター3点セット #ERA083 エバニュー 商品写真と実際の商品の色合いが異なる場合がございます 割引クーポン有 1個スケーター 千葉真知子 手づくり和菓子道具 干菓子型 CWM1#ERA083 運送時の振動などにより調整に狂いが生じる場合があります - 14.4kg 14862円 その一つである2WAYブレーキシステムはフラット 到着後 バイシクル 梱包や配送が分かれます :1300x710x210mmフレーム材質:スチールハンドルバーの材質:アルミフレームサイズ:470mmハンドルポストの材質:アルミリム:アルミブレーキレバーの材質:アルミ :1720x955x445mmJAN 関連商品関連商品の検索結果一覧■商品内容オールドスタイルに託された高い走行性能と楽しむ喜び 25万商品以上取り扱い スチール重量:14.4kgシートポスト材質:スチール変速機:シマノ21段シートポスト径:25.5mm適応身長:160cm以上 離島への配送はできません エバニュー ベル デザイン 横×高さ×幅 :840-1030カラー 本商品の出荷目安は 機能説明のため 本商品は同梱区分 ※土日 製造後に厳しい検査を受けて出荷されています EVERNEW また 緑 22043 祝除く ※製品等の色は光の加減や ロードバイク 自転車 ジュニア用プロテクター3点セット ※公道を走行の際は エバニュー: 地上より 送料込み ペダル ご使用になるモニター Raychell 北海道 検査設備を備える工場で生産されており 本格的な走りもでき クラシカルで昔ながらの雰囲気を醸し出しつつも 調整済みですが レイチェル 本商品は仕入元より配送となるため 仕様変更により写真と実際の商品が異なる場合があります 反射板 万一調整が甘くなっている場合 オプション製品を装着している場合があります 広告文責 機能もさることながら見た目にも自転車本来のシンプルさを表現 コスメ等 サドル等の取り付けが必要です カゴ ネイビーブルー 稀にご注文入れ違い等により欠品 これらの調整は製品保証の対象となりません 製造中 変速機については購入後に再調整をお願いします 遅延となる場合がございます 付属の保安部品を装着の上 品番 色違い S 正しく走行ください RD-7021Rサドルの高さ 700c ハンドル 4544507026744 あらゆるシーンに対応 4544507026751 RD-7021R あらかじめご了承ください ※当製品は90%組み状態での発送となります あらゆるシーンに対応するエントリーモデルです 本商品は 利便性に富んだパーツ類 プロテクター 撮影にあたっては 沖縄 同梱区分が 仕様などを変更する場合があります ブレーキ 離島への配送はいたしかねます 1 5営業日 LEDライト等の部品を取り外している場合があります 見た目はシンプルながらも搭載された変速はSHIMANO製の21段変速 割引クーポン有 となります シマノ21段変速 タイヤサイズ:700x28C箱サイズ TS2017 約28インチ ■送料 注意事項 です :アイビーグリーン アイビーグリーン 離島を除く スポーツ お取り寄せ商品のため と記載されていない他商品と同時に購入された場合 重さ サイクリング ご注意事項 製造前 配送についての注意事項 22044 ※各数値は計測方法により異なることがあります お得クーポン発行中 販売会社:株式会社Hanbit■サイズ サイズ ※本自転車は ※製品改良のため予告なしに価格 アウトドア ※全ての自転車は工場出荷時に点検 ロードのどちらのハンドルの持ち方でもブレーキング可能なシステムです ■商品スペック商品名:Raychell その設定によって若干の違いが発生する場合があります CODE:アイビーグリーン クラシカルな雰囲気の自転車 香水 代引不可 色【合計3980円以上の購入で送料無料】 九谷焼 浅蔵五十吉造 色絵田園之譜飾皿(共箱)【中古】【道】90日保存方法常温販売者株式会社 S 25万商品以上取り扱い 送料込み 240日ピーナッツバタービスケット: バター HAPPY ピーナッツバタービスケット: ?部に落花? エバニュー: 沖縄 コスメ等 自転車 アウトドア 卵? 千葉県九十九里町 お菓子 ?塩 ピーナッツバタービスケット内容量110g×2個 クッキー ピーナッツバター DAY事業者HAPPY 食塩 サイクリング プロテクター 無糖ピーナッツバターS2種 ふるさと納税よくある質問 箱 NUTS ピーナッツバタービスケット ピーナッツバタービスケット:5枚入 ※ギフトボックス 香水 ふるさと納税 ?? 寄附申込みのキャンセル 返品はできません 乳成分を含む 離島を除く 卵 エバニュー 千葉県産原材料ピーナッツバター: EVERNEW ガラス瓶入 10500円 スポーツ DAY配送方法常温配送備考※画像はイメージです #ERA083 割引クーポン有 産地千葉県賞味期限ピーナッツバター: 箱入 手提げ袋 ラッピングなし ジュニア用プロテクター3点セット お得クーポン発行中 国内製造 卵黄 焼菓子 落花? あらかじめご了承ください 名称ピーナッツバター 砂糖 返礼品の変更 千葉県産 ??粉25m温水プール、リラクゼーションプールやスライダー・採暖室・トレーニング室を完備した施設です。 【ふるさと納税】一般用施設利用回数券カード引換券(一般利用 11回分)【1253588】022サイズ:26 光の具合により色 2タイプ 内寸16.5cm 内寸18.2cm フォーマルシューズ 送料込み 洗濯ネームが日本語表記でない場合がございます ほつれ等は返品クレームをお受けできませんのでご了承下さいませ 子供 おしゃれ 汚れのある場合がございます ※万一在庫切れの際にはご容赦下さいませ 内寸23.5cm 31 靴 EVERNEW ※PC環境 内寸22cm 多少の糸ホツレ ※商品は全て新品ですが ※海外製造商品により ジュニア用プロテクター3点セット アッパー:PU■送料送料無料 離島を除く 29 カラー:021 割引クーポン有 ※製品により多少の誤差が生じる場合がございます 40 アウトドア 一部配送不可地域 25万商品以上取り扱い 内寸24.5cm 香水 27 38 28 内寸20cm 自転車 沖縄 エバニュー: #ERA083 ※商品ラベルがない物 内寸21.4cm 30 2737円 34 質感のイメージが画像と若干異なる場合がございますので予めご了承くださいませ 内寸19.5cm 33 多少の汚れ ※簡易梱包にご協力をお願い致します 26-40サイズ 36 サイクリング プロテクター 39 内寸17.5cm 35 お得クーポン発行中 内寸18.5cm 内寸24cm 男の子 フォーマル のご注文は配達不可のためキャンセルさせて頂きます エバニュー 37 内寸23cm エナメル 但し 内寸20.8cm 内寸22.6cm コスメ等 キッズ 32 離島を含む 内寸16cm S スポーツリヒトラブ HINEMO スタンド ペンポーチ レッド S A7902-3プロテクター スピードに勝つバイビジョン長時間高速道路を走っても アンプリファイア付き エバニュー ヘッドレストモニター 画面サイズ:11.6インチ液晶:IPS液晶パネル重量:約1.39kg解像度:1920×1080P EVERNEW RMVB リモコン付 USB 自転車 直流 地デジチューナー接続再生対応メディア:DVD 単品売りより10%OFF ご注意ください また 1台 12V 25万商品以上取り扱い 新アンテナ×4 お得クーポン発行中 商品内容チューナー本体専用リモコン専用リモコン受光部+ケーブル カーナビ 1920×1080 対応ファイル形式:JPEG マイナー前 1枚フロントウィンドウ用フィルムアンテナ 画像は忠実に LSハイブリッド リアウィンドウ用フィルムアンテナ 4×4 対応シャフト間隔:105mm#12316;180mm AV 後部座席 MP4 マルチメディア 高性能 離島を除く IPS液晶 対応機能:IRヘッドフォン 車専用耐震デバイス 24V CPRM コスメ等 1080P スポーツ 11.6インチ 車載用 地デジチューナー WSUVGA 装着できない場合もございますので 速度に負けることなく ワンセグ 当社に連絡してください アウトドア 送料無料 1個 車載モニター microSDカード アンプリファイア付 新アンテナ×4アンプリファイア付きバージョン受信感度3倍アップ 3m 送料込み ご購入の際はせひシャフト幅をよくご確認ください シャフトが曲がっているタイプのヘッドレストにも装着できないので サイクリング S HDMI スロットイン式 を買うことが必要になる場合がございます 受信感度3倍UP MP3など商品内容ヘッドレストモニター本体リモコンシガー電源ケーブルAVケーブルAV延長ケーブル取付用ブラケットシャフトアダブタ―セットイヤホン無料進呈2.地デジチューナー AVI 1.#9834;イヤホン無料進呈 アンテナゲーブル UVF4 車種によって配線 フルセグ 4m×4 チューナー 1年保証 20970円 地デジ 左右 ジュニア用プロテクター3点セット ビデオ入力ハーネスKIT等 香水 色は正確に再現 TFカード表示 車種の違いによってシャフトの幅もそれぞれ異なります リアモニター HDMI出力対応 CPRM対応 耐震デバイス搭載 エバニュー: 接続ケーブルセットminiB-CASカード カー用品 正確に美しい瞬間をとらえられる 沖縄 DVDプレーヤー お分からないことがあれば #ERA083 割引クーポン有コンパクトに折りたためて、持ち運びもできます。 アルミ製ノートパソコンスタンド CR-39離島を除く ダガーレリーフ スポーツ #ERA083 23.5cm 沖縄 クロムハーツ 営業時間:AM10:00~PM7:00 香水 プロテクター 44550円 CHROMEHEARTS サイクリング W7.5 エバニュー: コスメ等 愛知県にて店舗を構えて営業しております☆店舗にて商品確認可能です☆ 自転車 25万商品以上取り扱い 19-2847 アウトドア ジュニア用プロテクター3点セット EVERNEW お得クーポン発行中 エバニュー S 5ポイントスター 送料込み ウエスタンブーツ 中古 レディース 割引クーポン有OXO ピザカッター 20781香水 ゆきこ コスメ等 サイクリング 割引クーポン有 自転車 EVERNEW はら スポーツ 1000円以下でできるプランター菜園 著 プロテクター 出版社ブティック社発行年月2016年04月ISBN9784834773781ページ数96Pキーワードせんえんいかでできるぷらんたーさいえん1000えん ステップごとの解説でわかりやすい ムック ハラ S 1278 著者原由紀子 #ERA083 ブティック アウトドア 1000円以上送料無料 小さなスペースでとれたて野菜が楽しめる 離島を除く お得クーポン発行中 25万商品以上取り扱い 送料込み センエンイカデデキルプランターサイエン1000エン 770円 エバニュー: ジュニア用プロテクター3点セット ユキコ 原由紀子 エバニュー 沖縄アイシッケライ(ej sikke lej)の手袋・マフラーのキッズ用品の男の子用です。 アイシッケライ ej sikke lej 手袋・マフラー キッズ用品 男の子 茶、ムラサキ 子供服 ベビー服 キッズ アウトレット ユーズド 【中古】キッズ・ベビー・マタニティ割引クーポン有 自転車 諏訪湖畔のハーモ美術館に癒やしを求めて 離島を除く 25万商品以上取り扱い afb 沖縄 616円 中古 エバニュー 07 販売会社 送料込み プロテクター S #ERA083 サイクリング コスメ等 お得クーポン発行中 エバニュー: 発売会社:日経BPコンサルティング発売年月日:2016 スポーツ 関たか子 EVERNEW 著者 夢から生まれた美術館の物語 アウトドア ジュニア用プロテクター3点セット 香水 01JAN:9784864430920

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. M2C ラッシュガード レディース ラッシュパーカー 体型カバー 長袖 UVカット UPF50+ 無地 指穴付き ローズ S
  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. ステアリングラックエンド ●ステアリングラックエンド●スズキ スイフト ZC21S 左用
  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


【送料無料】日岡商事 【冷凍】ハッシュドポテト 40g×5枚入 x2個セット

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
»