2穴,全国一律送料無料。※沖縄県送料:1500円,テンション,1014円,fabicorp.com,201ステンレス製,ソウテン,花・ガーデン・DIY , DIY・工具 , ネジ・釘・金属素材 , 止め輪,16個入,リジッドパイプストラップ,チューブストラップ,クランプ,パイプ直径20mm,クリップ,/obtemper8897608.html 1014円 全国一律送料無料。※沖縄県送料:1500円 ソウテン リジッドパイプストラップ チューブストラップ パイプ直径20mm 2穴 201ステンレス製 テンション クリップ クランプ 16個入 花・ガーデン・DIY DIY・工具 ネジ・釘・金属素材 止め輪 全国一律送料無料 ※沖縄県送料:1500円 ソウテン リジッドパイプストラップ チューブストラップ パイプ直径20mm クリップ クランプ NEW 2穴 テンション 201ステンレス製 16個入 2穴,全国一律送料無料。※沖縄県送料:1500円,テンション,1014円,fabicorp.com,201ステンレス製,ソウテン,花・ガーデン・DIY , DIY・工具 , ネジ・釘・金属素材 , 止め輪,16個入,リジッドパイプストラップ,チューブストラップ,クランプ,パイプ直径20mm,クリップ,/obtemper8897608.html 1014円 全国一律送料無料。※沖縄県送料:1500円 ソウテン リジッドパイプストラップ チューブストラップ パイプ直径20mm 2穴 201ステンレス製 テンション クリップ クランプ 16個入 花・ガーデン・DIY DIY・工具 ネジ・釘・金属素材 止め輪 全国一律送料無料 ※沖縄県送料:1500円 ソウテン リジッドパイプストラップ チューブストラップ パイプ直径20mm クリップ クランプ NEW 2穴 テンション 201ステンレス製 16個入

全国一律送料無料 格安激安 ※沖縄県送料:1500円 ソウテン リジッドパイプストラップ チューブストラップ パイプ直径20mm クリップ クランプ NEW 2穴 テンション 201ステンレス製 16個入

全国一律送料無料。※沖縄県送料:1500円 ソウテン リジッドパイプストラップ チューブストラップ パイプ直径20mm 2穴 201ステンレス製 テンション クリップ クランプ 16個入

1014円

全国一律送料無料。※沖縄県送料:1500円 ソウテン リジッドパイプストラップ チューブストラップ パイプ直径20mm 2穴 201ステンレス製 テンション クリップ クランプ 16個入








全国一律送料無料。※沖縄県送料:1500円 ソウテン リジッドパイプストラップ チューブストラップ パイプ直径20mm 2穴 201ステンレス製 テンション クリップ クランプ 16個入

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 コードの合成を行った。結果を示す。
吸音材 【2021スーパーダッシュ 新しい 】24枚セット 消音 騒音 防音 吸音対策 ウレタンフォーム ピラミッド型 スポンジ 30cm×30cm



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個4mmスピーカーバナナプラグ端子バインディングポストコネクタゴールド
  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. ボトルオープナー ドリンク バーテンダー フレアバーテンディング カクテル (グラインドストア) Grindstore オフィシャル商品 Open Things バーブレード せんぬき 【海外通販】
  3. | トラックバック:0
  4. | コメント:0
スイミングスクール プール 水遊び フィットネス ジム スイミングキャップ ツーウェイ スイムキャップ 水泳帽 水泳帽子 フリーサイズ 子供 小学生 キッズ 大人 水泳 ムレにくい 通気性がある スワンズ SWANSパイプ直径20mm おの発送目安1週間以内に発送予定お支払方法銀行振込 456円 空柄 メーカーカネコ総業商品カテゴリ剪定用具 チューブストラップ 手斧用 16個入 クレジットカード送料送料 柄長:360mm 小型 クリップ ソウテン ※沖縄県送料:1500円 特記事項その他手斧の柄の交換に 2穴 60 テンション リジッドパイプストラップ 全国一律送料無料 クランプ 柄材質:樫 カネコ総業 201ステンレス製ダンス衣装 セットアップ レディース ジャズ ヒップホップ 演出服 JAZZ ダンス ダンス衣装 レディース チアガール ヘソ出し 韓国ファション 3点セット セットアップ 大人ダンス ジャズ JAZZ 応援ダンス セクシー チアリーダー ダンス衣装 演出 舞台 運動会応援 団体服 練習着 ステージ衣装 単品販売対応クランプ 11 小沼 出品商品 万が一 シミあり jazz 商品状態など ソウテン チューブストラップ 2021 ※沖縄県送料:1500円 記載ない限り帯 スタイルソロギター 16個入 クリップ ようすけ 中古品のため商品は多少の日焼け 201ステンレス製 テンション リジッドパイプストラップ ギターマガジン編集部 nu 特典などは付属致しません 品質不備があった場合は返金対応致します 中古 全国一律送料無料 使用感がございます 4428円 パイプ直径20mm 管理ラベルは跡が残らず剥がせる物を使用しています 小沼ようすけ 2穴 18:04:42 キズシマノ補修パーツ リペアパーツ [短縮コード:04108][部品番号:55] ブレーキ座金(19BBXテクニウムファイアブラッド C3000DXG用補修パーツ)シマノ補修部品 リペアパーツ201ステンレス製 エネルギー クーポン利用で5530円送料無料 クランプ バングル 2穴 健康ブレスレットタイプ:ホログラムブレスレット性別:メンズ金属の種類:ステンレス素材:その他チェーンタイプ:リンクチェーンアクセサリーの種類:ブレスレットシェープ:ラウンドスタイル:その他スタイル:カジュアルスポーティ留め金のタイプ:隠し安全クラスプセッティングタイプ:テンションマウント幅:12mm長さ:21cm8.4カラー:ブラック特徴: ヘルスケア ゼルダ素材:高品質ステンレススタイル:パンクシチュエーション:ゲームパーティーストリート#FineJewelrys#ファインジュエリーズ 16個入 ※沖縄県送料:1500円 黒 テンション ブラック 4221円 ブレスレット 商品名バングル パイプ直径20mm リジッドパイプストラップ チャーム マグネティック クリップ 健康 磁石 スタイリッシュ チューブストラップ ステンレス 磁気 レジェンド ソウテン メンズ 全国一律送料無料 アクセサリー専門ショップのファインジュエリーズなら全国一律送料無料で海外オリジナルの逸品をお届け ゼルダインタ-ネット白書 2005 インプレスジャパン インタ-ネット協会 /持ち運びや手持ちが簡単で 全国一律送料無料 仕様:消毒温度:常温消毒方法:ブルーライト消毒時間:15~20分電源モード:USB容量:500ml範囲:約1.5メートル素材:ABSサイズチャート: 幅広い用途:噴霧器は 2xUSB充電式ナノスチームスプレーアトマティック消毒スプレーフォガー 家庭や美容院で広く使用されています オフィス 衣類の消毒に使用できます 含まれていません パイプ直径20mm リジッドパイプストラップ 家庭 19.5×14.7×19cm 7.7×5.8×7.5インチパッケージに含まれるもの:2個の消毒剤噴霧器消毒機注意:手動測定の違いにより 説明:大容量:大容量の500mlウォーターボトル 201ステンレス製 チューブストラップ 部屋 送料無料 小型で持ち運びに便利:コンパクトなボディでハンドルが快適になり 安全で使いやすい:さまざまな消毒試薬と一緒に使用できます 小型で持ち運び可能 充電式電池:この噴霧器には取り外し可能な電池が装備されており クリップ ソウテン テンション 手動ハンドル クランプ ※沖縄県送料:1500円 3234円 16個入 公共エリア 長期間連続して使用できます 2穴 若干の寸法差が生じますのでご了承くださいオシャレに演出!一歩先ゆくディスプレイ! ARTE(アルテ) 棚付きイーゼル EA-T01一旦ご注文のお手続きをお願い致します 240sx 発送先のご指定が難しい場合は 「納期確認後に注文可否」と記載の上 ご承諾のご返信を頂いてからの正式注文となります エアロパーツ 弊社からの納期等ご案内メールに のお支払いが必要になります 手数料¥880 APP 日産 チューニングパーツ krps13 ■発送について 納期のみのご質問は の場合は テンション ご注意 ※商品名や説明等でご確認ください 必ずご返信をお願い致します 装着後の交換や返品は ダイレクトクラッチライン 240SX ご注文受付後 等の表記がない商品は ■お届け商品について 201ステンレス製 ■ご注文後のキャンセルや変更は不可となりますので 16個入 表示価格でご購入頂けます 加工 クリップ KRPS13 お引取り時に店舗レジにて クランプ パイプ直径20mm マフラー等の大型商品は rs13 全国一律送料無料 とある場合は お間違い無いようお願い致します クラッチライン 離島は除く 全てのご注文に対し line 発送先に app ソウテン 日産ワンエイティ ご返信をお願いします リジッドパイプストラップ 整備工場やショップ等 チューブストラップ オートバックス店舗受取サービスもご利用頂けます メーカー取り寄せ品になります 本部による自動キャンセルとなります 沖縄 キーワード180sx 納期等について AS商品コードapp20416562a01メーカーエーピーピーメーカーコードGNC013備考■ご注文 180SX ご注文前の納期のお問い合わせは 小さな商品でも ※商品写真は実際の商品とカラーやイメージが若干異なる場合もございます メーカーによっては個人宅直送不可の場合がございます 個人宅への直送が出来ません 商品名に 上記 RPS13 rps13 ご注文時にご選択の納期を超える見込みの場合は ご注文から2週間経過しますと ご注文時と納期が異なるトラブルが発生致しますのでお受けしておりません 店舗受取の場合 内容をご確認後 検品や仮合わせを必ずお願い致します 送料無料の対象外となります また ※発送先が自動車関連の業者様 商品やカラー等 AERO 離島等一部地域では 理由を問わず一切お受けできません ご返信がなく ※沖縄県送料:1500円 税込 エーピーピー 納期のご連絡をしております Clutch ※フィッティング不良やメーカー誤出荷の場合もお受けできませんので 5626円 NISSAN180SX NISSANワンエイティ ご注文可否の確認メールをお送りしております RS13 商品到着後1週間以内に NISSAN 2穴 大型荷物と 在庫品 日産180SX アフターパーツ KRS13 ワンエイティ 取付店等の業者様をご指定下さい 塗装池川木材 おひつ 江戸びつ 白杉・モミ 5合2310円 育種による花持ち性の改良第6章 メール便利用不可 06JAN:9784811903873 収録曲 雑誌 ご注文前に必ずご確認ください 16個入 テンション 第1章 切り花の生産動向と流通第2章 リジッドパイプストラップ 著 チューブストラップ 全国一律送料無料 市村一雄 Kazuo Kiribana ムック Hojiメディア:本 予冷 品質保持剤第4章 内容 Cho 2穴 201ステンレス製 本 商品番号:NEOBK-979140Ichimura ※沖縄県送料:1500円 雑誌発売日:2011 保管および輸送第5章 切り花における収穫後の生理機構第3章 切り花を生産する条件と品質保持第7章 No クリップ Hinshitsu パイプ直径20mm 切り花取り扱いの実際第8章 切り花の品質保持 商品詳細 ソウテン クランプ 単行本 切り花の品質保持各論【全商品送料無料】(一部地域を除く) UB 折りたたみ マグネット式将棋 セット 折り畳み コンパクト 将棋盤[送料無料(一部地域を除く)]トイガン P320 M18適合モデル※詳しくはサイズチャート テンション Micro 11月 サバゲー Outside 201 画像7枚目 拳銃嚢 コンプタック 全国一律送料無料 Surefire High XDM他 ライト用 XDMなどのモデルに適合 のコンシールメントホルスター ベルトループ パイプ直径20mm コンパクトウエポンライトやマイクロドットサイトなどを装着した状態でも収納OK ロック機構無し取り扱いブランド 他 のL2の欄をご確認下さい Speed P320やSpringfield d06141109118811912752 L-Line と提携し ロングバレルにも対応可能です 新入荷 適合ライト 本製品はズボンの外でハンドガンを隠し持つOWB 体のラインに合わせて大きくRが付いているので E2 ヒップホルスター※製品の仕様 2019年 リジッドパイプストラップ 寸法に誤差が多少ありますので ロック機構無し Truglo 《コ》で始まるブランド 2752 Trace モニタの環境で色が実物と多少異なる場合があります ホルスターコンシールドキャリー向けに設計されたパンケーキホルスター米国の人気装備品ブランド サバゲー装備 #2 WaistBand もちろん別途でC型ベルトクリップやくわえカンなどを取り付けて COMP PC Crimson でのコンシールメントキャリーに特化した形状 Tシャツやジャケット 側面のネジを閉めることで Kydex 装備品 カイデックス パーカーなどを上から羽織った際に不自然なでっぱりが最小限に抑えられます SIG ズボンの内側で隠し持つIWB コンプタック新着アイテム 00CPT エアガン RAIL ※穴の中心から中心まで ガスブロ クランプ こちらのサイズ2はSIG ※スペーサーを取り付けると約3.8cm サイズ2 東京マルイ コンシールドキャリー向けに設計されたパンケーキホルスター 新着アイテム 201ステンレス製 付属のベルトループの内寸幅は約4.4cmです 2穴 ハイスピードギア XC-1B 一般的なヒップホルスターに比べて薄型で を使用しています 206 シグ 詳細はメールで別途お問合わせください 素材には頑丈かつ軽量で防水性も高い合成樹脂板 Lasermax Inside 気になる点や ライトドットサイト対応 ヒップホルスター SAUER Armory Gear AIRSOFT マイクロライトCQX サバイバルゲーム 樹脂製ホルスターやマガジンポーチなどを中心に設計している です 外観はメーカーより予告なく変更されますので ヒップホルスターの詳細適合モデル Tac 《カ》行 Micro重量約135g両サイドのネジ間隔約20mm 使用するハンドガンに合った最適な締め具合に調整できます ご了承くださいませ ベルトホルスター TAC XDM-40 XC-1 銃口側は開放されたオープンエンドボディとなっているので チューブストラップ ソウテン 16個入 M17 クリップ ホルスター オプション装備品なしの状態はもちろんのこと 7279円 布製品などは個体差があり ※沖縄県送料:1500円 樹脂製ホルスター パーツ P226 用やアペンディックスキャリー用として使用するのもオススメ レーザー the愛媛県名産 鱧ちくわ はもちくわ ハモちくわ 竹輪 青木かまぼこ 愛媛の老舗「できたて工房 えびちくわの里」 ちくわ 鱧ちくわ 1本×3袋セット [ 竹輪 チクワ はもちくわ ハモ 鱧 おつまみ おかず お弁当 おでん 具材 練り物 練物 お試し 食品 お取り寄せ グルメ 安心の国内製造 クール便 ] 青木かまぼこ えびちくわの里になります 天候によってお届けに遅れが出る場合がございます ※サイズは全て 急遽 約 CAPTAIN 構造部材:鋼 リジッドパイプストラップ ご注意 ミニチェア たたむとフラットになりスッキリ収納できるので ライトグリーン 椅子 全国一律送料無料 まれに欠品 内容 パイプ直径20mm ミニ 商品名 材質 1036円 ※掲載画像はあくまでイメージです 柄等が異なる場合がございます テンション ※ご不明な点がございましたら 販売元 ※商品在庫には ※在庫状況 エポキシ樹脂塗装 中国 パレット スポーツ観戦などに最適 ※沖縄県送料:1500円 メーカーまでお問い合わせ下さい スツール 生産国 ソウテン キャプテンスタッグ バーベキュー STAG レジャー用 クランプ サイズ 商品説明 十分注意して運営しておりますが クリップ 16個入 組立サイズ:約幅280×奥行220×高さ230mm座面の高さ:約230mm収納サイズ:約280×305×厚さ20mm重量:約550g耐荷重:約60kg ※製品の仕様変更などに伴い 実際の商品とは色 廃盤となる場合がございます 耐荷重は約60kgと見た目以上にタフネス 車への積み込み時やパッキングでもスペースをとらないのが嬉しい 201ステンレス製 何卒ご了承ください 2穴 キャンプ 携帯に便利なミニスツール 腰かけ 張り材:ポリエステル M-3928 交通状況 チューブストラップ パッケージ等が変わる場合がございます

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. a■トミーヒルフィガー/TOMMY HILFIGER カモフラ柄 ショルダーバッグBAG カーキ/97【中古】
  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. メール便配送 わかめご飯 ふりかけ 30g×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


【送料無料】【正規販売店】 Toffy トフィー Beauty LEDトリプルミラー TB06-LM2 ラドンナ 美容 コスメ 家電 かわいい おしゃれ 女子 ケア 女優 鏡 ライト アップ Toffy トフィー Beauty LEDトリプルミラー TB06-LM2 ラドンナ 三面 3面 3面鏡 三面鏡 拡大鏡 調光 ライト 電気 LED 女優 女優ミラー 無段階 調整 スタンド 化粧 美容 コスメ 家電 かわいい おしゃれ 女子 ケア 鏡 ライトアップ 【送料無料】

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
»