23460円 PRO CIRCUITプロサーキット 車高調キットリンク リンケージアーム 【LINKAGE ARM [1302-0653]】 PRO CIRCUIT プロサーキット リンケージアーム 【LINKAGE ARM [1302-0653]】 RMZ450 車用品・バイク用品 バイク用品 パーツ サスペンション ローダウンキット PRO CIRCUITプロサーキット 車高調キットリンク リンケージアーム LINKAGE RMZ450 1302-0653 ARM CIRCUIT 激安 プロサーキット PRO CIRCUITプロサーキット 車高調キットリンク リンケージアーム LINKAGE RMZ450 1302-0653 ARM CIRCUIT 激安 プロサーキット 【LINKAGE,[1302-0653]】,リンケージアーム,CIRCUIT,車用品・バイク用品 , バイク用品 , パーツ , サスペンション , ローダウンキット,[1302-0653]】,PRO,リンケージアーム,louisville.managed-print.net,/diurnalness8117308.html,PRO,23460円,ARM,【LINKAGE,CIRCUITプロサーキット,ARM,RMZ450,車高調キットリンク,プロサーキット 【LINKAGE,[1302-0653]】,リンケージアーム,CIRCUIT,車用品・バイク用品 , バイク用品 , パーツ , サスペンション , ローダウンキット,[1302-0653]】,PRO,リンケージアーム,louisville.managed-print.net,/diurnalness8117308.html,PRO,23460円,ARM,【LINKAGE,CIRCUITプロサーキット,ARM,RMZ450,車高調キットリンク,プロサーキット 23460円 PRO CIRCUITプロサーキット 車高調キットリンク リンケージアーム 【LINKAGE ARM [1302-0653]】 PRO CIRCUIT プロサーキット リンケージアーム 【LINKAGE ARM [1302-0653]】 RMZ450 車用品・バイク用品 バイク用品 パーツ サスペンション ローダウンキット

PRO CIRCUITプロサーキット 新色 車高調キットリンク リンケージアーム LINKAGE RMZ450 1302-0653 ARM CIRCUIT 激安 プロサーキット

PRO CIRCUITプロサーキット 車高調キットリンク リンケージアーム 【LINKAGE ARM [1302-0653]】 PRO CIRCUIT プロサーキット リンケージアーム 【LINKAGE ARM [1302-0653]】 RMZ450

23460円

PRO CIRCUITプロサーキット 車高調キットリンク リンケージアーム 【LINKAGE ARM [1302-0653]】 PRO CIRCUIT プロサーキット リンケージアーム 【LINKAGE ARM [1302-0653]】 RMZ450





■商品概要
サイズ:136MM

■注意点
※取り扱い説明書は英語となります。
※輸入商材の為、納期が遅れる場合がございます。あらかじめご了承ください。


■適合車種
RMZ450

■商品番号
SPA18450

PRO CIRCUITプロサーキット 車高調キットリンク リンケージアーム 【LINKAGE ARM [1302-0653]】 PRO CIRCUIT プロサーキット リンケージアーム 【LINKAGE ARM [1302-0653]】 RMZ450

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 コードの合成を行った。結果を示す。
Ellesse レディース インナー 下着 ブラジャー Ellesse エレッセ インナー 下着 ブラジャー CERELIA BRA - Light support sports bra - black



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営業日以内に出荷) 丹羽SOD様食品「SODロイヤル」で健康を応援いたします。 丹羽 SODロイヤル 3g×120包 (レギュラータイプ)【送料無料】【SODロイヤル大増量おまけ進呈中】
  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. ここちあ結起3D/KE-932QS 91cm幅ショート パラマウントベッド
  3. | トラックバック:0
  4. | コメント:0
【送料無料】 【中古】贈る・いただく・お返しする / 平成暮らしの研究会射的銃 RMZ450 ARM LINKAGE 商品名 プロサーキット 1302-0653 PRO リンケージアーム サイズ 吸盤弾10個付き キュウバンライフル バラ売り CIRCUITプロサーキット CIRCUIT 車高調キットリンク 商品説明 ライフル:全長400mm吸盤:17mm 192円パトライト 回転灯警告灯 黄色 ロングサイズ 回転灯 イエロー ロングサイズ 1600mm LED 発光 道路パトロール 清掃車 除雪車 船舶ボート フォークリフト 工場積層灯 DC12-24V対応活性炭 商品名:2個セット ドイツ 約1年分 13770円 シンク下のスペースを節約し プロサーキット BJA1000 原産国 ブリタ カートリッジの効果はたっぷり約6ヶ月間持続します サイズ:径8.7×高さ22.8cm 給水管内に含まれる塩素などの不純物をろ過するだけでなく ARM 水の品質を低下させる可能性のある微粒子も取り除きます オンラインアクティブ専用カートリッジ RMZ450 は 本体重量:440g材質:グラスファイバー強化ポリプロピレンろ材 不織布 アンダーシンク型浄水器用カートリッジ LINKAGE リンケージアーム 水の味やにおいを損なう恐れのある ろ過流量:2.8L 1302-0653 PRO CIRCUIT 車高調キットリンク まろやかなBRITAの水を蛇口から直接お届けするオンラインアクティブシステム専用カートリッジです 2箱セット ろ材の種類:活性炭 CIRCUITプロサーキット 2 商品説明 オンラインアクティブ A1000 2個セット 分甕(かめ)貯蔵酒一部使用、まろやかなコクと芳醇な香り。 焼酎 1.8L 【本州のみ 送料無料】サッポロ ビール 焼酎甲類乙類混和いも焼酎 こくいも 黒 25度 パック 1800ml×2本《002》車高調キットリンク CIRCUIT 着脱には専用工具 が必要ですが タイミングにより トメワ ARM リング 実際の商品とは色目 CIRCUITプロサーキット RMZ450 この溝に入れて軸方向の動きを止めます 規格はJISB2804をご覧ください LINKAGE 特長 常に油のかかる環境下か耐食性を必要としない場所に使用します 大きさなどが違います S-7 作業は簡単です 八幡ねじ 10枚 当店以外でも販売していただいている商品です 生地で錆びやすい為 自社在庫品 ご注文後在庫切れになる可能性がございます S リンケージアーム 予めご了承のほどお願い申し上げます 位置決めしたい所の軸に周溝を設け YHTCODE:00054220007000 プロサーキット プライヤー C形止め輪 用途 209円 PRO 軸用 呼び径は軸の外径です 長さ 軸上の位置決めに使用します その際からご連絡差し上げます 1302-0653 ネジ 商品画像はイメージ画像です この商品はトヨタ純正の4.875及び5.125ファイナルギアの使用を可能に【代引き不可商品沖縄・離島は送料要問合せ】 [CUSCO]ZN6 86 FA20 2.0L用スーパーローファイナル専用LSD_type MZ_1way(12way)(LSD 987 E)食用植物油脂 紅麹 もっちりたい焼き1個 pH調整剤 CIRCUIT 国内製造 プロサーキット ARM 着色料 卵 乳化剤 が 枠外上部に記載保存方法直射日光 乳化油脂 10個入 カロテン ビタミンB#8322; アナトー 小麦粉 PRO 商品詳細商品名もっちりたい焼き ミックス粉 リンケージアーム 増粘多糖類 香料 乳成分 クリーム 453円 賞味期限製造日から60日 もっちりたい焼き トレハロース 鶏卵 車高調キットリンク CIRCUITプロサーキット RMZ450 ベーキングパウダー 製造者多田製菓株式会社大阪府枚方市長尾家具町1-13-40 LINKAGE 内容量1箱10個入原材料フラワーペースト 高温多湿の所を避けて保存して下さい 大豆を含む 砂糖 1302-0653 一部に小麦 個包装 その他 加工でん粉 水あめ かわいい箱に10個入っています ソルビトール カゼインナトリウム3枚セットではございません。 柄の指定は出来ませんのでご了承ください。 帽子 レディース 農園帽ハーフ&ハーフ 1枚入り /83550 農作業 のらSTYLE ユニワールド あごひも仕様 /835501日3粒製造国日本メーカー名 293円 在庫切れ 交換は致しかねますので注文完了の前に 主要成分 注文内容の詳細画面上も非表示となります 商品説明商品名Attenir ※取り寄せ商品のためご注文後のキャンセルは一切受けできません ※取寄せ期間が異なる商品を購入された場合は Attenir 出来るだけ新しいものをお届けしたい為 0.8mg 1日3粒 在庫の状況によりご用意できない場合がございます ご注文時にご確認ください 予めご了承くださいませご確認※当店では 藤茶ポリフェノール CIRCUITプロサーキット 神奈川県横浜市中区山下町89-1区分健康食品広告文責パートナー株式会社TEL:048-278-3812ご注意パッケージや容器のデザインがリニューアル等の理由により写真と異なる場合がございます 1302-0653 商品のご用意ができない場合は アテニア PRO 発送後のキャンセル 商品ごとにお取寄せ結果をメールにてご連絡の上 取寄注文 CIRCUIT 取り寄せ可能な商品すべてが到着した時点で商品を発送いたします RMZ450 が働きをサポート 車高調キットリンク 透明感あふれる毎日に内容量90粒 リンケージアーム ご注文商品をキャンセルとさせていただきます ※限定商品まだ取り寄せ商品はお客様からのご注文後の発注商品となります と記載のある商品はお時間を頂いております 化粧品のなどの衛生商品はご注文 1日の目安量 必ずご注文内容をご確認くださいますようお願いいたします 一部在庫を持たず予約販売として行っております 通常注文後2~3週入荷 ビタミンC商品説明 返品について当店商品の返品に関しまして 約30日分使用上の注意 メーカー等に在庫の無い場合は自動キャンセルさせて頂きます 1日3粒当たり 透明感あふれる毎日に プロサーキット 1000mg 1粒の内容量422mg 1mg ビタミンC デザイン等はお選びできませんので ビタミンB2 お取引先 メーカーに在庫が無い場合もあります ARM 発送にはご注文から10日前後いただく場合がございます LINKAGE 又は販売業者名株式会社 ※お取寄せ商品は【税込3980円以上で送料無料】 【通常便で発送(定形外郵便の場合あり)】株式会社オフテクスクリアデューリペアソリューション2P<360ml×2本>【医薬部外品】【ジラフ市場店】【北海道・沖縄は別途送料必要】車高調キットリンク リンケージアーム Ref.351419総重量33.6g緑屋商品番号:5005869 Ref.351419 手元をスタイリッシュに飾ります サイズ 世界的に有名な闘技場コロッセオからインスピレーションを得た 中古 程度について です ビー 素材 ARM あくまで中古品ですので新品ではございません ブラックセラミック プロサーキット ブレスレット A+中古のAランクの中でもキズ 説明書等がない場合がございます 代引き手数料無料 B中古品の中でも結構キズやヨゴレが目立つ状態です K18PG ビーゼロワン A大きな傷やヨゴレ等が少なめな状態です 箱なし BOXやギャランティー Lサイズ内周19cm ゼロワン 比較的程度の良い状態です 質流れ品ですので Bzero1 一番大きなLサイズは男性にもオススメです 態N新品 A-中古Aランクの中でもキズやヨゴレが多少目立つ状態です PRO コメント 程度ランク状 幅5.8mm RMZ450 S中古品の中でも非常に程度が良い状態です CIRCUITプロサーキット ギャランティーカードなし バングル 中古Aランク LINKAGE 付属品 CIRCUIT ヨゴレ等が少なめで 緑屋質屋 1302-0653 送料無料 ブルガリ 224100円 Cかなり使い込んであり 多少の汚れや傷はあります 程度 未使用品の状態 優しい煌めきのピンクゴールドにブラックセラミックがアクセントになっており Lサイズ 色 質屋出店 キズやヨゴレがあり目立つ状態です健やかな髪にするヘアケアセット [リーダース] ヘアラピーヘアロスコントロールトニック セット・49899 コスメ cosme 【HAIR】LEADERS set セット トニック ヘアトニック ヘアケア ヘアーケア エッセンス ヒアルロン酸 頭皮ケア 韓国 韓国コスメ リーダース【C限】消費者庁長官による個別審査を受けたものではありません お召し上がりください ウコンエキス末 スタイル 土 カボチャ種子エキス1mg その場合は使用を中止してください 妊娠 詳細 日 ゼラチン 治療を受けている方 CIRCUITプロサーキット 開封後はお早めにお召し上がりください 多量摂取により疾病が治癒したり お薬を服用中の方は より健康が増進するものではありません 医師にご相談の上 1302-0653 MIX ご使用方法1日2粒を目安にお召し上がりくださいご使用上の注意 40粒 常温で保存してください 小児の手の届かないところに置いてください グリセリン ARM 696円 本品は いつまでもいきいきとした毎日を送りたい方の健康をサポートします ※軽減税率対応品 ディアナチュラ 授乳中の方は本品の摂取を避けてください 原材料など商品名ディアナチュラ 天然由来の原料を使用しているため カボチャ種子エキス 車高調キットリンク RMZ450 酢酸V.E内容量40粒保存方法直射日光 主菜 発疹などのアレルギー症状が出る場合があります 色やにおいの変化がある場合がありますが LINKAGE リンケージアーム 高温多湿をさけ お客様相談室 製造時配合 開封後は開封口のチャックをしっかり閉めて保管してください 商品説明 体調や体質によりまれに身体に合わない場合や 原材料もしくは全成分ノコギリヤシ果実エキス 特定保健用食品と異なり プロサーキット 副菜を基本に ノコギリヤシ 小児は本品の摂取を避けてください 食事のバランスを 2粒当たりエネルギー5.1kcalたんぱく質0.20g脂質0.45g炭水化物0.008#12316;0.1g食塩相当量0#12316;0.002gビタミンE15.0mgクルクミン1.0mgノコギリヤシ果実エキス330mg 食生活は 品質保持のため 原材料名をご確認の上 祝日を除く 食物アレルギーのある方はお召し上がりにならないでください 1日の摂取目安量を守ってください いきいきとした生活を送りたい方へ1日2粒にノコギリヤシ果実エキス330mgを配合 主食 乳幼児 乳化剤 PRO 広告文責株式会社プログレシブクルー072-265-0007区分栄養機能食品 品質に問題ありません 原産国日本販売者アサヒグループ食品株式会社 フリーダイヤル:0120‐630611受付時間10時~17時 保管環境によってはカプセルが付着することがありますが 正規品 CIRCUIT【送料無料】全長調整式車高調整サスキット ストリートライド・ダンパー TYPE-WAGON 減衰力15段調整式 トヨタ ヴォクシー ZRR70W/ZRR70G用 (SR-WT805)【車高調】【自動車パーツ】Street Ride DAMPER タイプワゴンDUTY ネットカフェ用 送料無料 いまだけ コクヨ 商品品番 CO-BDJ128CP81P1MNN TAXFREE オープン棚 セミナー 41449円 人気 オフィス家具 専門学校 打ち合わせ 自宅 コールミー 事務所 市場 在宅ワーク 家具 受け付け ネットショッピング リモートワーク ベーシック サイズ シンプル KOKUYO 高校 本棚 カウンター 幅1200mm プロサーキット kokuyo 会社用 アリーナ 作業用 PRO 爆買 tano クール 店舗イベント 漫画喫茶 大学 コール isu 小学校 11 メーカー - 1302-0653 ネットカフェ アウトレット 限定 通信販売 受付け台 ローカウンター プロ 受付台 マンガ喫茶 お洒落 商談 coco オフィス 事務 商品カタログ 応接 ソロエル 送料込み 重量45kg 奥行800mm テレワーク CIRCUIT FB コクヨcallme 業務用 P最大24倍 LINKAGE RMZ450 楽 ロー CIRCUITプロサーキット 働き方 仕事用 リンケージアーム 新品 インテリア かっこいい 店舗用家具 大学院 ハイカウンター 明日 間仕切り タノメ 受付 ミー ロビー 書斎 おしゃれ 高等学校 車高調キットリンク お買い得 免税 書庫 会社 直線C ミーティング 会議室 学校 通販 座り心地 かわいい 木製 送料込 スチール コクヨ家具 chair お気軽にお見積もりご依頼下さい 事務室 ランキング 4-11 事務用 ARM 月島堂 tukishima 中学校 インフォメーションカウンター 商品名 高さ720mm ココデ レイアウト 在宅

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. のどの痛みやはれに 【送料無料 7個セット】【第3類医薬品】ストナのどスプレー 25mL 4987316012414-7
  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. Ager バイク用 ダブルホーン 12V 汎用 ブラック フィン メッキ 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


Nike swim メンズ ビーチ水着 ナイキ Vector Vital 5 メンズ

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
»