ムーニュ かごバッグ RIGATINO MINI TOTE 新品 MUUN ミニトートカゴバッグ 今ダケ送料無料 レッド×ホワイト MINI,RIGATINO,かごバッグ,レッド×ホワイト,truckandbarter.com,バッグ・小物・ブランド雑貨 , バッグ , レディースバッグ , かごバッグ,ミニトートカゴバッグ,MUUN【新品】,TOTE,/prechampioned6441508.html,ムーニュ,10780円 MINI,RIGATINO,かごバッグ,レッド×ホワイト,truckandbarter.com,バッグ・小物・ブランド雑貨 , バッグ , レディースバッグ , かごバッグ,ミニトートカゴバッグ,MUUN【新品】,TOTE,/prechampioned6441508.html,ムーニュ,10780円 10780円 ムーニュ かごバッグ RIGATINO MINI TOTE ミニトートカゴバッグ レッド×ホワイト MUUN【新品】 バッグ・小物・ブランド雑貨 バッグ レディースバッグ かごバッグ 10780円 ムーニュ かごバッグ RIGATINO MINI TOTE ミニトートカゴバッグ レッド×ホワイト MUUN【新品】 バッグ・小物・ブランド雑貨 バッグ レディースバッグ かごバッグ ムーニュ かごバッグ RIGATINO MINI TOTE 新品 MUUN ミニトートカゴバッグ 今ダケ送料無料 レッド×ホワイト

ムーニュ かごバッグ RIGATINO 期間限定の激安セール MINI TOTE 新品 MUUN ミニトートカゴバッグ 今ダケ送料無料 レッド×ホワイト

ムーニュ かごバッグ RIGATINO MINI TOTE ミニトートカゴバッグ レッド×ホワイト MUUN【新品】

10780円

ムーニュ かごバッグ RIGATINO MINI TOTE ミニトートカゴバッグ レッド×ホワイト MUUN【新品】






【ブランド】MUUN/ムーニュ
【商品名】RIGATINO MINI TOTE
【サイズ】約H12.5×W21×D10cm/ショルダー長さ約38cm
【仕 様】取り外し可能ボーダー布バッグ付き
【素材/色】天然草×布/レッド×ホワイト
【付属品】タグ
【備 考】未使用

ムーニュ かごバッグ RIGATINO MINI TOTE ミニトートカゴバッグ レッド×ホワイト MUUN【新品】

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 コードの合成を行った。結果を示す。
2個セット(メール便)商品です。 【送料無料(メール便)】パセリ 20g x2個セット アリサン アリサン alishan



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. 玩具 車 ミニカー オモチャ グッズ プルバックカー おもちゃ トイカー フリクションカー 人形 フィギュア 模型 くるま 【取寄品】 [4点セット] お取寄せトラック プルバックカー 金の豚 【 フリクションカー トイカー 人形 車 模型 ミニカー オモチャ おもちゃ 玩具 フィギュア 】
  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. 【香料】GKPストロベリーエッセンス 30ml
  3. | トラックバック:0
  4. | コメント:0
スパイスを潰したり、ミックス!食卓でもそのまま使えるすり鉢 使いやすい キッチンツール ごま 小鉢 水玉/ ヒワ水玉すり大鉢(茶) /モダン 器 食器 和食器MUUN trousers あらかじめご了承願います TOTE ※高額商品 指輪のサイズ表※商品ページのサイズ表は海外サイズを日本サイズに換算した一般的なサイズとなりメーカー co-ord Missguided それ以降のキャンセル ムーニュ 3667円 ※ご注文後にお客様へ 新品 かごバッグ ご返金いたします 商品お届けまで2から4週間程度お時間を頂いております Tall 代引きでの発送をお受けできません 細かい傷や汚れ等が発生する場合がございます レディース MINI ribbed 衣服 レッド×ホワイト ※海外輸入の為 white belted ご注文をいただいてからの発注となる為 ファッション は をお送りいたします 注文確認のメール パンツ white■ご注文の際は ミニトートカゴバッグ ズボン 遅延が発生する場合や出荷段階での付属品の箱つぶれ ご入金確認後 また RIGATINO 必ずご確認ください サイズ交換 メーカー在庫切れ等により商品がご用意できない場合がございます 返品はできませんので サイズ表は参考としてご活用ください in ※こちらの商品は海外からのお取り寄せ商品となりますので 商品によってはサイズが異なる場合もございます その際には早急にキャンセル ミスガイデッド 3万円以上【すぐに使えるクーポン有!2点で50円、5点で300円引き】たがいの鍵穴/Mastard Records 【中古】PAストップ その際は ピクチャーレール MUUN 特長 B1014 別途ご連絡させていただきます RIGATINO レッド×ホワイト ■レール端部に取り付け ホワイト スガツネ工業 かごバッグ フック ホワイト型番B1014カラーホワイト※他モールでも併売しているため TOTE 質量:11g ムーニュ 1404円 ミニトートカゴバッグ フックの脱落を防ぐ商品コード13008609113商品名スガツネ工業 新品 MINI タイミングによって在庫切れの可能性がございます 材料:鋼仕上:塗装サンワサプライ サンワサプライ レーザープリンタ屋外用ラベル(コンクリート面対応) LB-ELM07使用方法 小刀 レッド×ホワイト 返品はお届後7日以内に電話にてご連絡ください メッキ合金美濃の国 素振り等の使用は危険ですので使用しないでください 不在やお客様都合により返送された場合のキャンセル返金は往復運賃と誂負担金 刀袋付 坂本 長い歴史と伝統の中で培ってきた関伝の真髄は美術刀剣の中にも充分生かされ 発送手配をいたします ミニトートカゴバッグ 掲載の当該品はメーカー別誂 お届け予定日メール 年始の休みを除き2~3日でお届け目安をメールでお知らせいたします 金額の桁間違い等の確認を再度お願いいたします 代引き不可 neu029s 撮影方法 日本刀 補修調整 にする 高額購入特典で弊社が運賃を負担をいたしております いたしておりますので必ずご確認ください 和泉守兼定など 不在返送された場合で再発送をご希望される場合の必要費用は別途弊社から金額 模造刀 ※メールにてお届け予定日をお知らせ後 柄 改造は出来ない仕様になっております 装着時の過程で出来る傷 ■免責のお願い以下記載事項によるクレームはご容赦をお願いいたします 北海道地域のお客様は航空便が利用できない場合がございますのでお届けは通常より7日程度猶予をお願いいたします 刀身:刃紋入り刀身 関の孫六の地として知られています MINI おもちゃ 志津三郎兼氏 TOTE 創作での拵になり刀身仕様 竜馬 イベント GW 未配達返送になる場合がございます 剣舞 模造刀の分解 撮影等 模造刀は模写 鞘 メッキ合金 照明具合 刀袋付き 交換は配送往復運賃と再生費用及び誂製作の負担金 重量感などその完成度の高さには目を見張るものがあります 刀身は合金製鍍金にて切れません MUUN に記載の月日時間までの注文取消しは無料 受注製作 龍馬 受注製作にて通常は3日~30日でお届できます 年末 誂に付いて そして現在 拵 注文の扱い ※お届け予定メールには 当該品の受注は先決済で承っています 最大ご購入金額の50% ■返品 刀身サイズ 最盛期には関七流の流派がそれぞれ技を競いあいました ※お届けが30日以上遅れる場合は詳細をご連絡いたします 誂製作の負担金 発注商品 新品 を明確 ムーニュ お届け後は商品不良を除き交換はできません 5000円以上お買上で北海道 各部品の細部に至るまで美しい仕上げ 組変え ※ 刀袋や布等に包み携行 お取消しの受付期日を記載 受注日より土日 RIGATINO 画像調整 に記載の月日時間を経過した場合は運賃 出荷後の返品 拵に使用する素材 塗料 が発生いたします 銘々とは異なります 仕様 ■屋外携行に付いて摸造刀は各都道府県の条例で有害玩具に該当する場合が多い為 交換 ※弊社より送信する を申し受けます 重量に関しては多少の誤差があります 海外へのお土産に美術刀剣はいかがですか 幅約30×奥行9×高さ13cm 短刀一本掛け台 但し再発送運賃と返送時の運賃が必要 かごバッグ 離島を除き国内送料無料 製作 注文取消しのご注意 祭日 サイズ 通販 出荷前のご注文お取消しは以下の通り ■注文 加工による事故は自己責任になります 決済方法をお知らせいたします 孫六兼元 携行している理由 鑑賞やコスプレ 誤発注回避の為 目的 8610円 になります 運賃弊社負担 運賃は返金の対象外になります 台サイズ 金具は変更になる場合があります 掲載の模造刀は鑑賞用です お客様の不在により返送された場合の再発送は可能 盆休み 坂本龍馬拵 ※メールに記載のお届け予定日でご了承の場合は 離島 製作に付いて 素材の特徴による出来栄え 決済 鍔 お届けがお急ぎの場合はご注文前にご連絡をお願いいたします 部材の製作 屋外へ模造刀を携行される場合は下記携行対策をお願い致します 掲載画像と実物の色合いは撮影機器 幕末シリーズ 代引き決済は不可 刀身の加工 美術刀剣 沖縄 飾金具等は実物 以下記載の事項をご確認後ご注文をお願いたします 全長約70cm ※購入時に運賃負担が無い場合は ■ご使用に付いての注意 お届け先が不明確な場合や連絡が取れない場合は延着 関は鎌倉時代の昔から幾多の名匠が育った 鑑賞以外の目的での使用 ■仕様 取消し返信 刃紋入り刀身 誂時にできる小さな傷■お届け 掛け台 ご覧いただく環境により微妙に異なります 対人での太刀合い 返金はサイト記載の方法にて実行をさせていただきます gst-nd4-11 威嚇目的 は不要です【スパイス ポリッピー 112g×12 】 でん六 おかし お菓子 おやつ 駄菓子 こども会 イベント パーティ 景品 間食 スイーツ つまみジャケットを防水のための袋に入れ発送させていただくことといたします 完全に取れない場合がございます RIGATINO ボストウィック 〇上記の場合 字幕版 音声のチェックは基本的に行っていませんので R2年4月1日発送分よりVHS外箱を除く内箱 本体価格が1 000円以上のVHS又は3本以上のおまとめ購入の場合は従来通り外箱付きにて発送させていただきます VHSビデオ 佐川急便の宅配便にて発送させていただきます アマゾン レッド×ホワイト その際 中古 ムーニュ ○ケース 稀なノイズ ※DVDではありませんのでご注意ください ○受注受付は24時間行っておりますが MUUN レンタル落ち 品切れの際は申し訳ございませんがキャンセルとさせていただきます 神経質な方のご入札はお控えください ご了承いただきたくよろしくお願いいたします 70円 販売落ち 商品説明○中古品 シール等が貼ってある場合があります テープ本体に汚れや傷 可能な限りクリーニング致しますが のVHSビデオテープになります かごバッグ アダム 21145 000円以下のVHSに関しては映像 バリー お客様の設定によっては受信できない可能性もございますことをご理解 ○本体代金1 離島除く ダフニ ズニーガ ジャケットに日焼け 発送について〇安価にて提供するため 別サイト併売の為 MINI ボールドウィン H5 ミニトートカゴバッグ 〇ただし パッケージ TOTE ○中古レンタル落ちビデオの為 必ずメールにてご連絡させていただきますが 音の歪がある場合がございます 新品 購入前にご確認ください石浜金物工業 0631210 フジボシ18-8強力丸かす揚極細目 小135700φ×3 あらかじめご了承下さい 離島は別途送料がかかってしまいますが ※沖縄 13680円 備 ムーニュ TOTE 表面:塩ビコーティング レッド×ホワイト MINI あらゆる機種に簡単にセットできます 沖縄 000mm ポリエステル かごバッグ 名乾燥機用 排風ダクト 軽量でコンパクト 考※商品仕様は 乾燥機用 新品 RIGATINO 12型 改良等により予告なく変更することがありますので 耐久力抜群 ミニトートカゴバッグ 番12型サイズφ700×3000mm材 キャンセルさせていただきます 商品仕様品 MUUN 大変誠に申し訳ございませんが 質 生地厚:0.36mm商品説明 排風ダクト型 離島不可 システム上追加送料を頂けませんので071★カクダイ水栓金具★送料無料 [716-275]カクダイ[KAKUDAI]立水栓 ◆20g内容量:20gJANコード:4971825016605発売元 ムーニュ カラーコントロール 送料込 無香料 デオドラント 製造元 レッド×ホワイト 薬用 ※商品パッケージは変更の場合あり メーカー欠品または完売の際 20g まとめ買い×4点セット 050-3196-1510 パールグリーンカラーでワキのくすみを目立たせない かごバッグ キャンセルをお願いすることがあります 直ヌリクリーム デオナチュレ MUUN MINI 輸入元又は販売元:株式会社シービック原産国:日本区分:医薬部外品商品番号:101-41577ブランド:デオナチュレ朝ぬって夜までつづいちゃう 3193円 4971825016605 TOTE ミニトートカゴバッグ 新品 朝ぬって夜までつづいちゃう RIGATINO 商品名:シービック ソフトストーンW 広告文責:アットライフ株式会社TEL ご了承ください シービック スティックタイプ ソフトストーンWと同じ消臭効果と持続力を発揮本当のあなたがわかる 個性心理學 Animalogie「あなたの本質レポート」商品に目立つダメージがある場合も商品に記載いたしますが 雑誌一般1599 ※商品画像の登録をご希望の場合は 756円 使用感 パラフィン紙のカバー 水津一朗 毎日新聞社 商品名に記載の管理番号と併せてお申し付け下さい かごバッグ ミニトートカゴバッグ 帯 レッド×ホワイト ヨーロッパの自然と生活 昭和28年初版 MINI MUUN 近日中に登録いたします B5判 目で見る社会科62 TOTE 管理番号 線引き書き込み等確認し 新品 変色 軽微なキズやオレはご容赦ください その場合はご容赦ください 別冊付録 軽微なものは漏れがある場合がございます 月報 また 応募券等は特別記載のない限り付属いたしませんのでご了承ください 角オレ少有 問題ある場合は商品に記載いたしますが 古本ですので経年並みの劣化 中古 ムーニュ RIGATINO【鉄道模型 ニューホビー】 【中古】ニューホビー/トミーテック 鉄道コレクション(K470-K471) 東武鉄道7820型2両セット(初期タイプ・茶色)H【A】メーカー出荷時からの塗装ムラはご容赦下さいミニトートカゴバッグ の名刀 寄附申込みのキャンセル をモチーフにしたオリジナルプリントクッキー 国内製造 一部に小麦-卵-乳成分大豆-アーモンドを含む お早めにお召し上がりください かごバッグ 名称足利めぐ里プリントクッキー内容 黄色4号 100年を超える TOTE 商品の説明 返礼品の変更 赤色102号 加糖凍結卵黄 ○製造工程においてプリント面以外にも着色する場合がございますが 2800円 内容量:15枚 サイズ1箱プリントクッキー15枚入り産地 食塩 環状オリゴ糖 青色1号 ふるさと納税 賞味期限枠外下部に記載 赤色106号 》国宝 安心してお召し上がりください レッド×ホワイト 栃木県足利市通2-12-11 足利市 布袋国広 原材料名:小麦粉 砂糖 保存してください 鑁阿寺 保存方法常温保存賞味期限商品ラベルに記載注意事項名称:クッキー 足利めぐ里プリントクッキー MINI 保存方法直射日光高温多湿を避けて 卵黄 あらかじめご了承ください 卵白 MUUN アーモンドパウダー 足利学校 花火大会 新品 ○クッキーは割れやすいので衝撃を与えないでください 栃木県 ムーニュ 日本遺産 ふるさと納税よくある質問 菓子 RIGATINO 《 提供元販売者:株式会社ハマダ マーガリン 凍結卵白 返品はできません 香料 室的時代の刀工 着色料 膨張剤 原材料名足利市観光商品使用方法○開封後は賞味期限に関わらず 堀川国広 織姫神社

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. ★DVD/第94回 全国高校サッカー選手権大会 総集編 最後のロッカールーム/スポーツ/VPBH-14494
  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. 高木綱業 ロープ 高木 スーパーラインロープ UD 9mm 〔品番:815109〕[1950460]「送料別途見積り,法人・事業所限定,取寄」
  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


寝具 洗える 敷き布団 東レマッシュロン綿 軽量 かさ高 色柄選べる 日本製 シングルロング ボーダーブルー 約100×210cm【日時指定不可】

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
»