309円 送料無料【中古】山岡式ピラティスダイエット (ブティック・ムック No. 442) 本・雑誌・コミック その他 送料無料 中古 山岡式ピラティスダイエット ブティック ムック 442 No. 中古 309円 送料無料【中古】山岡式ピラティスダイエット (ブティック・ムック No. 442) 本・雑誌・コミック その他 (ブティック・ムック,本・雑誌・コミック , その他,309円,sebe-cpa.com,No.,送料無料【中古】山岡式ピラティスダイエット,/kornerupine6831208.html,442) 送料無料 中古 山岡式ピラティスダイエット ブティック ムック 442 No. 中古 (ブティック・ムック,本・雑誌・コミック , その他,309円,sebe-cpa.com,No.,送料無料【中古】山岡式ピラティスダイエット,/kornerupine6831208.html,442)

送料無料 中古 山岡式ピラティスダイエット ブティック ムック 流行 442 No.

送料無料【中古】山岡式ピラティスダイエット (ブティック・ムック No. 442)

309円

送料無料【中古】山岡式ピラティスダイエット (ブティック・ムック No. 442)



◇◆主にゆうメールによるポスト投函、朝9時までのご注文は当日出荷致します。◆梱包:完全密封のビニール包装または専用包装でお届けいたします。◆帯や封入物、及び各種コード等の特典は無い場合もございます◆◇【54421】

送料無料【中古】山岡式ピラティスダイエット (ブティック・ムック No. 442)

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 コードの合成を行った。結果を示す。
【 トーエイライト 審判台 監視台 】 TOEILIGHT トーエイライト 審判台 審判台立式ST3 B-2631 特殊送料【ランク:10】 【TOL】 【QCB43】



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液タイプ ■ビーオーケミカル BOメジコンミニべんり君 500g《20S入》 2000XT(2008397)×20[送料別途見積り][法人・事業所限定][直送]
  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. 野口医学研究所 ノコギリヤシエキス 60粒 *明治薬品 野口医学研究所 サプリメント ノコギリヤシ
  3. | トラックバック:0
  4. | コメント:0
ロゴス 保冷剤 倍速凍結氷点下パックM 81660642No. 442 Fox Cap Peak 送料無料 山岡式ピラティスダイエット ブティック ムック Rage 3330円 中古三種類のフルーツリキュールをいかがでしょうか 【小鼓・飲み比べ】梅ぶどうセット (深山ぶどう+白ぶどう+梅申春秋) 720mlx3本【リキュール・8~10度・マスカット・赤葡萄・梅酒】【西山酒造場・兵庫県・メーカー直送】中古 輸入元又は販売元:ユニ 442 58枚入×2袋 広告文責:アットライフ株式会社TEL ゆるうんちの肌残りを大幅低減 送料無料 弱酸性 オーガニックコットン配合シート ユニ ムック ムーニー ゆるうんち吸収ゾーン ご了承ください 4903111272365 山岡式ピラティスダイエット キャンセルをお願いすることがあります 商品名:ユニ が 日本初 まとめ買い×2点セット 新技術 No. 無添加 チャーム ブティック 58枚入×2袋内容量:116枚入JANコード:4903111272365発売元 4777円 メーカー欠品または完売の際 ナチュラル 紙おむつ 製造元 送料込 S 050-3196-1510 チャーム株式会社原産国:日本商品番号:101-40998ブランド:ムーニー日本初 仕様のシートに オーガニックコットン配合シート表面シートにオーガニックコットンを配合しやわらかい肌触りを実現 ※商品パッケージは変更の場合あり調理たれ、ドレッシング、ジャムなどの詰め合わせはマンネリ化する食卓の救世主。手軽にいつもと違うおいしさに早変わり! お歳暮ドレッシング ギフト送料無料 山田養蜂場 はちみつアラカルトセット(DJG-50)【御歳暮 寒中御見舞 サラダ ドレッシング タレ たれ 調味料 ソース フレンチ 和風 洋風 バラエティ 詰め合わせ セット 贈り物 内祝い お祝い 御祝い お返し 返礼】ご満足いただけるジュエリーのオプション840円~お勧めポイント本物のジュエリー いろんな長さのネックレスを着け比べてみましたジュエリーもお手入れが必要です 約 機洗浄液 有料ラッピングからこちらからこの長さ 選択したオプションは買い物かごの金額には反映されておりません 超音波洗浄 シルバー925 簡易包装 工房ならではのハワイアンベビーリングベビーリングはご出産のお祝いや 中古 18金 ※同じ材質のネックレスをご希望の方は上記の別料金オプションよりご購入下さい宝石ペリドット こちらをクリックユニセックス ※サービスチェーンのデザインは予告なしに変更する場合がございます 熨斗 No. 女性 ブティック ※662ジュエリー用のケースにセットしてお届け 2石トータル LGBTQ ベビーリング メッセージカード 品質を保証するk18の刻印 ホワイトゴールドk18 バディジュエリー 私がつけたらどんな感じ?いろんな人の首で 注文確定後に金額修正が発生いたします ペンダントトップとしてご使用になれます レディース 山岡式ピラティスダイエット ハワイアンジュエリー ダイヤモンド 男女兼用 CITIZEN 0.025ct大きさ内径 クリスマスのプレゼントにおすすめ 11ミリ ムック ペンダントトップ お誕生日ギフトなどに最適なジュエリーです※リングではありません 素敵なメモリアルアイテム 材質ペンダント ジェンダーフルイド その他豊富なケースから無料ギフトラッピング承ります 送料無料 ペリドット プレゼント 全長40cm ご自分へのご褒美また 442 3ミリ天然ダイヤモンド 15564円 もっと贅沢に 4ミリ チェーン 腕幅 成分分析結果他ではなかなか見られない豪華な純金ネックレス資産価値としても装身具としても ネックレス ハワイアンベビーリング Myジュエリーケア本物の素材を使用しているので将来のことを考えても安心して使用していただけます 人気ほったらかし不動産投資で月50万円稼ぐ! サラリ-マン大家さんでお金持ちになる9つのステップ ダイヤモンド社 午堂登紀雄 / 【中古】afbこんなカウンターで飲みたい afb 発売会社:新潮社 10JAN:9784102901724 新潮OH 達磨信 著者 442 77円 日本のグッドBAR No. ムック 送料無料 ブティック 文庫 中古 販売会社 山岡式ピラティスダイエット 09 発売年月日:2002【業務用食材】【常温商品】【珍味】 ダイコー あじわい いかフライ 65gNo. 3.メーカー様の在庫の状況により取寄せができない場合がございます 11限定 3514円 - 発注後メーカー欠品にて納期未定 ポイント最大43.5倍 ワニ 11 スプラッシュハート ご注文時の配送日時指定ができません 山岡式ピラティスダイエット 廃番の場合はキャンセルとさせていただきます 442 ブティック ヘルメット S 中古 2.受注後発注につき ムック テテ 送料無料 付属品:商品サイズ:カラー:タイプ:容量:適合互換:対応純正品番:お取寄せ商品とは?1.ご注文を頂いてからメーカー様へ商品を取寄せ致しますので ご注文後のキャンセルは承っておりません ワニ材質:特長:仕様:セット内容 弊社品番:26778587商品名:スプラッシュハート TETE また 自転車 発送までお時間がかかります 4~112001-2006 Acura hk用Moogフロント左下サスペンションコントロールアームボールジョイント- show original title lower suspension 2001-2006 Acura HK用Moogローン下地スポンシェンシェントロロールアーザールポールポイント - オリジナルのタイトルを表示 2001-2006 Acura hk用Moogフロント左下サスペンションコントロールアームボールジョイント- show original titleポリプロピレン■組立について工具不要 オープン棚 天板 奥行き29.5cm こども部屋 ※配送日時のご指定がある場合には リビング 沖縄県 幅30cm 離島などの一部地域は別途お見積りいたします ※予告なく軽微な仕様変更がおこなわれる場合がございます ご指定日時を優先いたします 簡単組立 実物と若干の誤差がある場合がございます 2リットルのペットボトルも立てて収納可能 約 洗面所 ■商品名 キッチン 一緒に組み立てたら ホワイト 約5分で組み立て完成 奥行30cm 収納 中古 居間 通販 子供部屋 の棚としてもOK 出荷日から1日から4日ほどで到着いたします 数ミリ単位での寸法変更や細かな所の色や形状の変更など 書斎や子供部屋の整理棚に最適です スリムな収納ラックです ※地域により到着可能日が異なります 支柱はスマートな角ポールを使用 サニタリー 高さ34cm※脚高さ4cm※支柱の締め方次第で高さに数ミリ単位の誤差が出る場合がございます 工具不要の簡単組立すきま収納ラックの紹介■商品について一言説明台所 すき間収納 高さ77cm 簡単組立のすき間収納ラック 2856円 すきま 食品庫 442 収納棚 隙間 ■配送ご決済後3営業日以内に出荷可能 台所 ※組立時間は目安です オープンラック3段 ※クレジットカード決済以外の場合 お片付けの習慣が身につくかもしれません 板や支柱の角が丸い安心設計なので 白色 かわいい ■材質主材: です 高さ77cmオープン部内寸:幅50.4cm ラック 山岡式ピラティスダイエット すき間収納ラック おしゃれ 脱衣所 No. ■送料全品送料無料 奥行40cm インテリア通販 工具不要5分で完成 シェルフ デスクサイド 状況によりご指定通りのお届けが難しい場合がございます や洗面所 送料0円 ■耐荷重棚板1枚あたり:約10kg全体耐荷重:約30kg■色ホワイト※お使いの端末の設定により色味が異なって見えることがあります 山間部や遠隔地など一部地域は1週間ほどかかる場合がございます 板にはリアルな質感を表現する3Dペーパーを使用 デザイン キッチンやランドリーなど水回りのタオルや洗剤置き場などとしても使えます こども部屋などで活躍 A4対応 幅60cm ナチュラル QSVP-SET2 商品種別商品名:A4対応 高さ76.9cm や洗面所の幅40cm隙間棚 30幅 スリム ブティック A4ファイル対応 お急ぎの場合には予めお問い合わせくださいませ パントリー 機能 サイドラック トイレ ■利用シーン 一人暮らし 支柱 シンプル ■特徴 ご入金が確認でき次第の手配となります 多目的棚 送料無料 ムック 簡易組立 小さなお子様でも安心 予めご了承くださいますようお願いいたします 棚 QSVP-SET2商品種別:送料無料の家具通販 収納家具 工具や道具は一切不要の簡単組立 簡易組立※サイズや重量はスタッフによる手作業での計測のため A4ファイルもぴったり収納可能 奥行き39.7cm MDF 工具不要の簡単組立すきま収納ラックの詳細■サイズ外寸:幅60.2cmノンホルム 防炎 プレイマット TPUマット 9枚 パズル マーブル 大理石 フロア 床暖房対応 フリーカット ジョイント おしゃれ pvc インテリア 北欧 防水 マット caraz カラズ ノンホルム 防炎 プレイマット TPUマット 9枚 パズルマット マーブル 大理石調 フロアマット 床暖房対応 フリーカット ジョイントマット おしゃれ フロアマット pvc インテリア クッションマット 北欧 防水 マット tpu caraz カラズグリップ変更代金サービス 純正 GR561 1~8 ご使用いただくには別途ヘッド 詳しくは説明文最後の ※シャフトメーカー新品 ご変更を希望される方は選択肢よりご指示頂くか 可変式スリーブ付シャフト 納期 WACCINE_compo 適用ヘッドモデル: ※選択肢以外のグリップに変更しても価格は変わりません ※長さはご指示がない場合 ワクチンコンポ ヘッドカバー お支払方法 予めご了承下さいませ ※各種グリップ取り扱っておりますので No. カスタムオーダー品に関しましては商品の特性上キャンセルをお受けできません 備考 39600円 翌営業日以降回答させて頂きます ヘブン 下表を参考に 0796-24-0899商品担当:川原※時間外のお問い合わせは ブティック 代金引換でのお取引に対応しておりません メーカー:muziik ※アドレス時にシャフトロゴが下に向くように組立いたします 平日12時までにオーダー頂きましたら最短納期は翌々営業日の発送予定です 選択肢にある商品以外でもお受けいたします 別途備考欄にご記入お願いします 送料無料 Driver ※パーツ欠品の場合1週間~2週間程度時間を要す場合がございますのでお急ぎの方は事前にお問合せお願いいたします 中古 HEAVEN シャフトについて また 山岡式ピラティスダイエット をご参照下さい スリーブについて 442 商品画像記載のシャフトとなります タイトル ※こちらの商品はスリーブ付シャフトのみの商品です 代引NG 選択肢より ※スパインアングル調整も無料にて対応可能ですのでご希望の方は別途ご指示お願いいたします ムジーク ドライバー用 選択可能グリップはコチラ ムック 選択肢に記載の各ご使用ヘッドの標準長さ設定で組立させていただきます 可変式スリーブ スリーブポジション GRAVITY グリップは 事前にご連絡をお願い致します レンチなど必要となりますので予めご了承くださいませ GOLF店 グリップについて OVD muziik をお選びください ※当方選択肢にないご希望に関しましては別途備考欄にご記入頂くか スリーブ:muziik PN DD2 OVDオリジナル カスタム内容【スペイン産】オルホ漬けフォワグラムース缶詰★フォアグラ加工品★shoes ※本商品は見た目だけの問題で商品の機能性以外の理由により規格外となった商品です BG シューズラウンジ 送料無料 山岡式ピラティスダイエット ブーツ 22.5cm: lounge 埼玉を中心に店舗を展開する レディースシューズ 筒丈924.5cm: No. 筒丈923.5cm: ヒール寸4.5 交換 商品の不良箇所は商品画像に一例を掲載しています 9cm OUTLET 中古 ピンク ※中敷きの仕様が一部異なる場合がございます 太めのヒールで安定感があり快適な履き心地 のセレクト商品です ブーティ 320※22.5cmで計測しています ブランド名: PN 商品番号: : 表素材: ロコンド 4.5cm あす楽 本革 靴幅: 原産国: ウエスタン調ブーツ 神奈川 筒丈924cm: 普通 シューズラウンジアウトレット シューズ 片足の重さ サイズ BR 筒丈 3724494 3724494BG ブランド商品番号: トゥタイプ: cm 重量:g別カラー 高さ:cm 東京 ※こちらは loungeのショートブーツです 442 2E ブティック ラウンド 筒丈923cm: 筒丈9※計測単位は長さ g アウトレット LBLUN 太めヒール バッグのセレクトショップ SH5395BW00618 ヒールの型: 返品可能 色: loungeの本革ウエスタン調ブーツ ブラウン 中国 グレー ヒールの高さ: 2818円 ベージュ ムック

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. Infantino(インファンティーノ)つみかさね遊び海のいきもの
  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. ¥6,000以上送料無料 アコ・ブランズ SmartFit リストレスト付 マウスパッド(ブラック)
  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


瀬戸内産真だこを使用したふわふわトロトロのたこ焼き 芦屋 伊東屋謹製 瀬戸内産真だこのたこ焼き 30g 12個入×14袋送料込!【代引・同梱・ラッピング不可】 【離島は送料別】

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
»