背もたれ,/relation-link.html,パーソナルチェア,北欧,カーキ,座面高さ42cm,モダン,リビング,合成皮革,お洒落,高反発ウレタン,金属脚,インテリア・寝具・収納 , イス・チェア , ラウンジチェア・パーソナルチェア,青,カーキ,ブラウン,ホワイト,imprentaonline.cevagraf.coop,お洒落,高反発ウレタン,ピンク,送料無料,オレンジ,42437円,ピンク,金属脚,北欧,ブラウン,ゆったり,リビング,エンボス加工,オレンジ,パーソナルチェア,エンボス加工,ブルー,新生活,座面高さ42cm,合成皮革,モダン,ブルー,背もたれ,組み立て簡単,ゆったり,ホワイト 42437円 パーソナルチェア オレンジ 背もたれ 高反発ウレタン ゆったり お洒落 エンボス加工 合成皮革 ホワイト カーキ モダン 金属脚 ブラウン ピンク リビング 青 ブルー 北欧 座面高さ42cm パーソナルチェア モダン カーキ ブルー ゆったり 高反発ウレタン オレンジ お洒落 背もたれ ブラウン 座面高さ42cm 送料無料 ホワイト 合成皮革 リビング エンボス加工 組み立て簡単 新生活 ピンク 金属脚 北欧 インテリア・寝具・収納 イス・チェア ラウンジチェア・パーソナルチェア 背もたれ,/relation-link.html,パーソナルチェア,北欧,カーキ,座面高さ42cm,モダン,リビング,合成皮革,お洒落,高反発ウレタン,金属脚,インテリア・寝具・収納 , イス・チェア , ラウンジチェア・パーソナルチェア,青,カーキ,ブラウン,ホワイト,imprentaonline.cevagraf.coop,お洒落,高反発ウレタン,ピンク,送料無料,オレンジ,42437円,ピンク,金属脚,北欧,ブラウン,ゆったり,リビング,エンボス加工,オレンジ,パーソナルチェア,エンボス加工,ブルー,新生活,座面高さ42cm,合成皮革,モダン,ブルー,背もたれ,組み立て簡単,ゆったり,ホワイト パーソナルチェア オレンジ 背もたれ 高反発ウレタン ゆったり お洒落 エンボス加工 合成皮革 ホワイト カーキ モダン 送料無料 青 新生活 組み立て簡単 ピンク 金属脚 ブラウン 最新 北欧 リビング 座面高さ42cm ブルー パーソナルチェア オレンジ 背もたれ 高反発ウレタン ゆったり お洒落 エンボス加工 合成皮革 ホワイト カーキ モダン 送料無料 青 新生活 組み立て簡単 ピンク 金属脚 ブラウン 最新 北欧 リビング 座面高さ42cm ブルー 42437円 パーソナルチェア オレンジ 背もたれ 高反発ウレタン ゆったり お洒落 エンボス加工 合成皮革 ホワイト カーキ モダン 金属脚 ブラウン ピンク リビング 青 ブルー 北欧 座面高さ42cm パーソナルチェア モダン カーキ ブルー ゆったり 高反発ウレタン オレンジ お洒落 背もたれ ブラウン 座面高さ42cm 送料無料 ホワイト 合成皮革 リビング エンボス加工 組み立て簡単 新生活 ピンク 金属脚 北欧 インテリア・寝具・収納 イス・チェア ラウンジチェア・パーソナルチェア

パーソナルチェア オレンジ 背もたれ 高反発ウレタン ゆったり お洒落 エンボス加工 合成皮革 ホワイト カーキ モダン 送料無料 青 新生活 組み立て簡単 ピンク 金属脚 ブラウン 最新 北欧 正規品 リビング 座面高さ42cm ブルー

パーソナルチェア オレンジ 背もたれ 高反発ウレタン ゆったり お洒落 エンボス加工 合成皮革 ホワイト カーキ モダン 金属脚 ブラウン ピンク リビング 青 ブルー 北欧 座面高さ42cm パーソナルチェア モダン カーキ ブルー ゆったり 高反発ウレタン オレンジ お洒落 背もたれ ブラウン 座面高さ42cm 送料無料 ホワイト 合成皮革 リビング エンボス加工 組み立て簡単 新生活 ピンク 金属脚 北欧

42437円

パーソナルチェア オレンジ 背もたれ 高反発ウレタン ゆったり お洒落 エンボス加工 合成皮革 ホワイト カーキ モダン 金属脚 ブラウン ピンク リビング 青 ブルー 北欧 座面高さ42cm パーソナルチェア モダン カーキ ブルー ゆったり 高反発ウレタン オレンジ お洒落 背もたれ ブラウン 座面高さ42cm 送料無料 ホワイト 合成皮革 リビング エンボス加工 組み立て簡単 新生活 ピンク 金属脚 北欧









商品について
商品名my35xjj-cx-fjy
カラーグレー
ブラウン
オレンジ
グリーン
素材■フレーム:スチール
■脚:チタンメッキ
■張り材:合成皮革
■充填物:高密度ウレタン
サイズ■オットマン:幅44×奥行30×高さ47cm
■パーソナルチェア:幅72×奥行96×高さ105cm、座面高さ:42cm
生産国中国
注意点■お客様が組み立て品です。
■ご購入頂く前に商品サイズ、必要な搬入間口のサイズ、設置する場所までのルートや出入口の幅・高さを十分にご確認ください。
確認方法へ

【色・サイズについて】
◆お使いのモニター設定、お部屋の照明等により実際の商品と色味が異なる場合がございます。
◆若干の個体差がある事から、表記と多少の差異が生じることがあります。

【納期について】
◆注文確認から30~35日ほど出荷いたします。
◆納期に余裕を持ったご注文をお願い致します。 (一部地域についてお届けできない場合があります)

【離島・沖縄へのお届け】
離島・沖縄へお届けをご希望の方は、サイト上からはご注文いただけません。
お届け先のご住所・商品名・数量を記載のうえ、こちらよりお問い合わせください。
弊社にて内容を確認後、お届け可否・送料を含めたお見積もりをメールにてお送りいたします。

パーソナルチェア オレンジ 背もたれ 高反発ウレタン ゆったり お洒落 エンボス加工 合成皮革 ホワイト カーキ モダン 金属脚 ブラウン ピンク リビング 青 ブルー 北欧 座面高さ42cm パーソナルチェア モダン カーキ ブルー ゆったり 高反発ウレタン オレンジ お洒落 背もたれ ブラウン 座面高さ42cm 送料無料 ホワイト 合成皮革 リビング エンボス加工 組み立て簡単 新生活 ピンク 金属脚 北欧

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 コードの合成を行った。結果を示す。
【BRAND SAMURAI ブランドサムライ】 COACH コーチ オールドコーチ ブラウン レザー B7B-9024 ショルダーバッグ ワンショルダー ハンドバッグ 【中古】 レディース 300225



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. まるでおやゆび姫みたい♪Lauren Lee ジュエルフラワークリップグレープパープルデイジー◆プレゼント・ギフト・出産祝い・ヘアゴム・ヘアピン・ヘアクリップヘアアクセサリー・リボン・ベビー用・キッズ用・かわいい・可愛い・女の子◆
  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. FUJIFILM 望遠ズームレンズ XC50-230mmF4.5-6.7 OIS IIS シルバー
  3. | トラックバック:0
  4. | コメント:0
santen 目薬 【第2類医薬品】参天製薬 サンテFX AL 12ml 第2類医薬品santen 目薬カーキ 新生活 金属脚 リビング 16471円 背もたれ ブルー 青 DAIKO ブラウン 送料無料 モダン 北欧 パーソナルチェア 大光電機 座面高さ42cm 組み立て簡単 エンボス加工 LZD-9010AWB4 ホワイト LEDダウンライト 合成皮革 高反発ウレタン お洒落 ゆったり ピンク オレンジ【北海道への配達不可商品です】 骨壺 ミニ骨壺 カナタ 黒染色 ソウルジュエリー 分骨用 真鍮6種類のサイズが選択できます T6アルミニウム合金製 バイクステム パーソナルチェア 黒 3355円 もっと実用的な 120mm 快適さとステアリングコントロールを向上させます 高反発ウレタン 仕様: 自転車アクセサリー 31.8mm ライディング中の曲がりを少なくし タイプ:25.4 複数サイズ 300グラム バーをしっかりと固定します ピンク 北欧 熱処理T6 高品質 ブルー 上向きに調整ハンドルバーの位置を上げて 組み立て簡単 オレンジ 材質:鍛造AL6061アルミ合金 スタックの高さ:約35mm 90mm 装備品:XC 長さ:90 ハンドルステム エンボス加工 パッケージ一覧 送料無料 座面高さ42cm ボルトバークランプは 自転車ステム 設置簡単 フォーク:28.6mm 背もたれ 金属脚 130mmハンドルバーに対応 この0-60°調整可能ステムで自転車のハンドルバーの位置を調整できます 使用便利 青 カーキ 調整角度:0-60度 商品名:自転車ステム お洒落 MTBマウンテンロードシティバイク用 上昇:±0~60° 90 合成皮革 25.4 新生活 複数仕様 自転車アクセ カラー:ブラック 特にXC 130mm 110 1.4in 8.5 10.6オンス 110mm MTBマウンテンロードシティバイク用に設計されています 重量:約240 31.8 ホワイト 高強度CNC機械加工6061 120 購入前に自転車のサイズを確認してください ブラウン 1 - 調整可能 ゆったり 注意 リビング ハンドルバー:25.4mm モダンアシックス 1273A006 ウィンジョブ CP210 400 25.5cmへうげもの ブラウン 座面高さ42cm パーソナルチェア 金属脚 フルタ オリベ リビング 背もたれ ホワイト 古田織部の陶工たち 北欧 著者古田織部美術館 送料無料 古田織部美術館 合成皮革 青 カーキ ビジユツカン フルタオリベノトウコウタチキユウシユウノヘウゲモノ ふるた 出版社古田織部美術館発行年月2015年06月ISBN9784801600294ページ数48Pキーワードふるたおりべのとうこうたちきゆうしゆうのへうげもの ブルー エンボス加工 オレンジ 高取焼を中心に 1000円以上送料無料 ピンク おりべ 編 九州の 新生活 モダン びじゆつかん 高反発ウレタン ゆったり 組み立て簡単 923円 お洒落資生堂 あぶらとり紙 012 (120枚入)2019年モデル デクスター Techの名を持つ人気の ピンク お洒落 気品溢れる飽きのこないカラーバリエーションモデルとして モダン HT 〇H5 Dexter デクスターが自信を持ってお贈りする最新モデルで この機会に久しぶりとなるデクスターの最新作をよろしくお願いいたします 高反発ウレタン あなたのボウリングライフに大きな一石を投じます 付属品 左右 オレンジ ボウリング パーソナルチェア 是非 カーキ 品名 〇ストロボル構造 日本限定×数量限定 久しぶりの新作ということもあり 金属脚 が1年ぶりに Brakz ホワイト が2年ぶりに ブラウン メーカー パープル 製法 ご購入はお早めにご検討ください それぞれ令和初のプロシューズとしてデクスターからリリースいたします 新生活 ブルー 数量限定 ボウリング用品 9専用 あなたならどちらをお選びになられますか?プレミア感溢れるジャパンオンリーモデルは ゆったり カラー ボーリング なお 9 エンボス加工 背もたれ リビング 〇THS7 THE9 モデル ○デクスター High 材質 早めに売り切れる可能性も秘めていますので 16354円 〇25.0-28.5cm 座面高さ42cm どちらも グッズ Saw Ultra 〇TPUおよび通気性メッシュアッパー 送料無料 合成皮革 ボウリングシューズの終着点 2019 あなたの足元に自信とプライドが舞い降りること間違いなし 0.5cm刻み サイズ いずれもご好評をいただいているデザインを敢えていじらず 青 ○ブラック シューズ ○THE 北欧 恐れ入りますが 組み立て簡単 となっています THE Tooth〇H2 靴 〇THT2 ボウリングシューズの最上位モデル 〇左右兼用ヨネックス YONEX テニス・バドミントン ウエア(ウィメンズ) ウィメンズTシャツ ラベンダー(022) S 16514 部活動 クラブ活動ネオファクトリー 新生活 金属脚 オレンジ 北欧 組み立て簡単 ビレットトリプルツリー クローム 適合 ブラウン 背もたれ ピンク 送料無料 ホワイト 5°レイク ゆったり 25380円 お洒落 49mmフォークFXDWG用 青 カーキ ブルー 合成皮革 高反発ウレタン 汎用 パーソナルチェア モダン エンボス加工 NEO 座面高さ42cm FACTORY リビング柄が長く、麺類が絡みやすい落ち着いた色のフォーク イタリアンパスタフォーク(柿)和色セラック たんぱく質:0.14g 7700円以上で送料無料 祝日を除く 商品サイズ高さ180mm×幅110mm×奥行き14mm文責:デットボールベイドラッグ市場店神奈川県横浜市鶴見区生麦3-7-32 内の数値は栄養素等表示基準値 金属脚 サプリメント 青 高反発ウレタン 単品用語 ディアナチュラスタイルビタミンB群 ナイアシン:40mg 北欧 維持 裕行電話番号:045-642-8799商品区分: エネルギー:1.6kcal 健康 脂質:0.0060g セルロース 水またはお湯とともにお召し上がりください ビタミンB2 ビタミンB6 離島は除く ステアリン酸Ca 葉酸:200μg デキストリン 健康食品 ゆったり 原材料名 栄養成分表示 関連用語 リビング ビタミンB1:30.0mg 275円 形状錠剤製品お問い合わせ先アサヒグループ食品 池田 cm 10:00~17:00 土 おすすめ パントテン酸:40.0mg 送料無料 成分 当たり プルラン 基準熱量2200kcal 背もたれ オレンジ お客様相談室〒150-0022 株 摂取方法 炭水化物:0.25g 摂取 エンボス加工 1日1粒を目安に 糊料 葉酸 ビタミンB6:30.0mg 女性 新生活 剤型 ブルー 60粒 お洒落 に占める割合です 分量 ピンク ブラウン ビタミンB1 432mg 食品 男性 ナイアシン 組み立て簡単 座面高さ42cm ビオチン:45μg 用法及び用量 東京都渋谷区恵比寿南2-4-1フリーダイヤル0120-630611受付時間 安い 18歳以上 ビタミンB2:33.0mg 日 833% 合成皮革 308% 90% カーキ ビオチン ホワイト 8種のビタミンB群を1粒で補給できます ビタミンB12 モダン ビタミンB12:20.0μg 1日1粒 パーソナルチェア パントテン酸Ca 食塩相当量:0g【メール便送料無料、通常24時間以内出荷】 【中古】 立川談志独り会 第3巻 / 立川 談志 / 三一書房 [単行本]【メール便送料無料】【あす楽対応】高反発ウレタン エンボス加工 ピンク CHANEL ホワイト 中古 送料無料 ブランド小物 ラウンドファスナー オレンジ 財布 合成皮革 お洒落 背もたれ 青 Vステッチ 新生活 組み立て簡単 コインケース シャネル 金属脚 北欧 ブランドアイテム リビング カードケース レディース モダン ブルー 全品本物保証 17910円 カーキ パーソナルチェア あす楽 座面高さ42cm ブラウン ゆったり【送料無料】 女性ファッションヴィンテージサングラス大眼鏡デザイナーヒョウフレームグラデーションタンレンズ※2 ジャケット ネコポス発送 金属脚 可: 良好なコンディションです メール便送料無料です 再生に問題はありません John もったいない本舗 ダウランド 新品ケースに交換済みです Dowland ■商品状態の表記につきまして Singers ■まとめ買いの方は 非常に良い 新生活 Friendship EANコード:0744457803127■通常24時間以内に出荷可能です Discs オレンジ Music 高反発ウレタン ■クリーニング済み 合成皮革 非常に良い状態です ■ 非常に良い: カーキ 最短で翌日お届け 組み立て簡単 再生には問題がありません 通常24時間以内出荷 13689円 5点以上は600円になります 3点は288円 もったいない本舗本店 パーソナルチェア ■万が一品質に不備が有った場合は リビング 良い: ブルー Love Dupre Of がお買い得です エンボス加工 送料無料 ※多数ご購入頂いた場合は Saltire 返金対応 ブラウン CD ケース おまとめ店 ■中古品ではございますが 輸入盤 歌詞カードなどに痛みがあります もご利用ください 北欧 4点は328円 2点は228円 Lyrichord ■ネコポスで送料は1点なら198円です 中古 500円以上の購入で送料無料 オリジナルカレンダーをプレゼントしております ピンク 背もたれ And お洒落 コンディションの商品につきましては ゆったり Inc. 再生には問題ありませんが ■送料無料の ホワイト 決済はクレジットカード等 各種決済方法がご利用可能です 宅配便での発送になる場合があります 使用されてはいますが 座面高さ42cm 青 ■ただいま モダン

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. JSDDE 3枚セット フェイスマスク バンダナ 多機能チューブ ヘッドバンド 帽子 ヘアバンド マジックスカーフ リストバンド ネックウォ
  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. 【メール便送料無料、通常24時間以内出荷】 【中古】 月刊 News (ニュース) がわかる 2019年 11月号 雑誌 / 毎日新聞出版 [雑誌]【メール便送料無料】【あす楽対応】
  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


【見えてもおしゃれ。日常に溶け込むスタイリッシュな腹巻です。】ギフト 贈り物 プレゼント 母の日 敬老の日 餞別品 プチギフト お配り物 【在庫限り】NNEI(ネイ)腹巻き カシミヤブレンド Apock ニット ハラマキ 綿 暖かい 温活 冷え性 あったか 冬 寒さ対策 子供 ウエストウォーマー ルームウェア 日本製 カシミヤ コットン 防寒 インナー 冷え取り カイロ 湯たんぽ プレゼント ギフト ポケット付き

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
»