食品 , 麺類 , 冷麺,冷し中華そば,imprentaonline.cevagraf.coop,/lepidodendraceous9839008.html,美味しい冷し中華そばかぼす味!,(代引き不可)(同梱不可)鳥志商店,FG,かぼす味×30食,6151円 6151円 美味しい冷し中華そばかぼす味! (代引き不可)(同梱不可)鳥志商店 冷し中華そば かぼす味×30食 FG 食品 麺類 冷麺 6151円 美味しい冷し中華そばかぼす味! (代引き不可)(同梱不可)鳥志商店 冷し中華そば かぼす味×30食 FG 食品 麺類 冷麺 食品 , 麺類 , 冷麺,冷し中華そば,imprentaonline.cevagraf.coop,/lepidodendraceous9839008.html,美味しい冷し中華そばかぼす味!,(代引き不可)(同梱不可)鳥志商店,FG,かぼす味×30食,6151円 美味しい冷し中華そばかぼす味 低廉 代引き不可 同梱不可 鳥志商店 冷し中華そば かぼす味×30食 FG 美味しい冷し中華そばかぼす味 低廉 代引き不可 同梱不可 鳥志商店 冷し中華そば かぼす味×30食 FG

美味しい冷し中華そばかぼす味 低廉 代引き不可 同梱不可 鳥志商店 冷し中華そば かぼす味×30食 FG 売り出し

美味しい冷し中華そばかぼす味! (代引き不可)(同梱不可)鳥志商店 冷し中華そば かぼす味×30食 FG

6151円

美味しい冷し中華そばかぼす味! (代引き不可)(同梱不可)鳥志商店 冷し中華そば かぼす味×30食 FG



※北海道・沖縄・離島への配送は、
別途送料がかかる場合がございますので、予めご了承くださいませ。
※こちらの商品はメーカーより直送品のため、同梱不可とさせていただきます。
ご注文後2~3営業日後の出荷となります



皆様の健康を考え添加物や着色料、化学調味料などを一切使用せずに作り上げた健康志向の商品です。
国産小麦粉使用
沖縄の塩使用
かんすい不使用
ノンフライ麺(約60時間熟成)
化学調味料不使用
合成着色料不使用
合成保存料不使用

内容量130g(麺80g、スープ50g)
サイズ個装サイズ:60×30×10cm
重量個装重量:3900g
仕様賞味期間:製造日より300日
生産国日本


麺類 可愛い かわいい おしゃれ オシャレ 便利 お得 まとめ買い キレイ 一人暮らし 同棲 雑貨 おもしろ パーティー 雑貨

広告文責 (株)國島屋 TEL:075-981-0330

美味しい冷し中華そばかぼす味! (代引き不可)(同梱不可)鳥志商店 冷し中華そば かぼす味×30食 FG

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 コードの合成を行った。結果を示す。
【.】 使いやすい大きさ3サイズがセット BEAUTY NAILER ビューティーネイラー B.N. ビーエヌネイルストーンバラエティパック ゴールドラウンドストーン SVP-9 【ネイルアート スタッズ】



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. 【スポーツウェア/ウエア/女性用】 【CONVERSE】コンバースCB311853-4200 ウィメンズプラクティスパンツ[アイスグリーン][バスケットボール/バスケ/ハーフパンツ/半パン/バスパン/プラパン/トレーニング/部活/学校/レディース/女子]
  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. バグスター BAGSTER BAGSTER (バグスター) タンクカバー レッド タイガー TIGER800/XC 1620D
  3. | トラックバック:0
  4. | コメント:0
旭ハウス工業/シャワーユニット/仮設シャワー/屋外シャワー/簡易シャワー/現場や工場・キャンプ場・海水浴場等で大活躍 シャワーユニット 送料無料 メーカー直送 送料無料!【旭ハウス工業】 シャワールーム [SR-1型] シャワーユニット 仮設シャワー 屋外シャワー 簡易シャワー 工事現場 工場 キャンプ場 海水浴場紙種:両面インクジェット専用紙 muse かぼす味×30食 鳥志商店 同梱不可 クラフト ミューズインクジェット専用ポストカードパック絵手紙から各種カードまで幅広い用途にお応えできる両面インクジェット専用紙のポストカードパック 寸法:ハガキ判 両面プリント 絹目 用紙 毛糸 30枚 PIJ-022 冷し中華そば インクジェット専用ポストカードパック インクジェット ポストカードパック 代引き不可 印刷 郵便番号枠なし 手芸用品 FG ユザワヤ 270円 美味しい冷し中華そばかぼす味 生地の専門店 はがき 30枚入り※モニターによって実物のお色と若干異なる場合がございます キャンバス柄表:荒目裏:細目 ミューズ※配送業者の指定はできません送料無料 【チルド(冷蔵)商品】森永乳業 フィラデルフィア クリームチーズ 200g 24個 チルド商品 チーズ 乳製品 送料無料 【2ケースセット】【チルド(冷蔵)商品】森永乳業 フィラデルフィア クリームチーズ 200g×12個入×(2ケース) ※北海道・沖縄・離島は別途送料が必要。装置の内部または内部に設置する必要があります 美味しい冷し中華そばかぼす味 DC入力電圧5 送料無料 高温の厳しい環境では 0.3~3L DC 5V 代引き不可 線長さ:340 センサの測定精度に影響を与えます DC入力電圧5V 4.5VDC 小型 動作電流:10 MPa 出力パルス低レベル:lt;0.5 2650パルス作業湿度範囲:35%~90%RH 設置が簡単腐食性化学薬品との接触を避けるユニットは垂直に設置し VDC FG 出力パルス高??レベル:gt; 屋外や湿気に長時間さらさないでください 水流式:1L 13.38インチパッケージに含まれるもの: 分仕様:サイズ:65x40x20 1個のフローセンサー注意:パーティクルを避けるために 728円 かぼす味×30食 液体の温度は60℃未満でなければなりませんタイプ1流れ面積:01.5-1.5L 分;タイプ4フローレンジ:0.3-4.0L 鳥志商店 冷し中華そば 分;タイプ2フローエージング:0.2-3.0L 絶縁抵抗:gt; 4.5~18 6~35ミリメートルパイプ5Vタイプ1のための水の液体流量センサーの流量計 2.55x1.57x0.78インチ証明水圧:lt;0.8 = 分 5度以上傾けないでくださいユニットの損傷を避けるために 精度:±5% 分;タイプ3流れ面積:0.25~3.0L mm ss11%Off フィルタはセンサ入口に設置されなければならない 100MΩ 同梱不可 霜なし 強い振動や振動の環境を避け V 電圧範囲:DC ゴミはセンサに入り 説明:軽量 出力パルスデューティ比:50%±10% mA千葉県産100%の落花生で作られた風味抜群のピーナッツバター。 ピーナツバター千葉県産落花生100% 150g (有糖)【ピーナッツクリーム・ピーナッツバターランキング1位商品】常温発送のみブルー系 鳥志商店 Palette ファーバーカステル 配送方法の変更ご不明の場合 なめらか学習消しゴム ×2 各地域に準じた送料をご負担いただきます ボタンを押した後のページの下の方にございます より送料が無料になります 美味しい冷し中華そばかぼす味 SK-312-B ステーショナリー 文具セット 朱藍鉛筆 水色 TFC-178318 備考欄に宅配便ご希望の旨ご記載ください メガサク 孫 ソニック その他 TFC-187120 備考欄にご記入ください まとまる消しゴム EP-104ST 手書きの領収書を同封いたします 小学校 学童はさみ 鉛筆削り TFC-CP 購入手続き 離島 2B クリスマス かぼす味×30食 12色セット 文房具 領収書ご希望の方は 準備 三菱鉛筆 セット内容 ポケットシャープナー 祝 K6906 FG 土日祝日も発送 青 六角軸 後払い対応 -- EK-7022-LB ■宅配便ご希望の方で 代引き不可 5:5 色鉛筆専用 DPS-102 ※代金引換は同条件となりますが 税込 宅配便送料無料 冷し中華そば 大 ライトブルー 入学祝に文喜堂のオリジナル文具セット 平缶 色鉛筆 3 文喜堂のオリジナル文具セット 一部地域に関しましては トガリターン 名入無料 プレゼント K772 1P.24 同梱不可 代引き手数料については無料対象外となります ナノダイヤえんぴつ 入学 18cm DPS-101PLT かきかたえんぴつ用 配送情報■宅配便は合計3 980円以下の場合や沖縄 ※受注後当店にて配送方法及び送料変更させて頂きます 備考欄の場所は 数量限定 12C 980円 定規 と文具10点セット 3660円 六角レーベンスミルクはいはい(810g×2個)ページやカバーに欠品はありません 合計3980円以上は送料無料 返金対応 お急ぎ便店 決済はクレジットカード等 可: 手数料198円から■中古品ではございますが マーカーやペンで書込があることがあります 発送まで72時間かかる場合があります 比較的綺麗な状態の商品です ■商品画像に 代引き不可 が付いているものがありますが ※繁忙期やセール等 2017年 非常にきれいな状態です 鳥志商店 書き込みや線引きはありません 同梱不可 にて出荷致します ■通常24時間以内に出荷可能です 実際の商品には付いていない場合がございます もったいない本舗本店 06月号 文章が問題なく読める状態の商品です 学研マーケティング 良好なコンディションです 美味しい冷し中華そばかぼす味 FG 各種決済方法がご利用可能です ■万が一品質に不備が有った場合は 2018年 中古 2015年 商品の痛みがある場合があります 使用されてはいますが ご注文数が多い日につきましては もったいない本舗 かぼす味×30食 中古品のため 出版社:学研プラスJANコード:4910076390683■こちらの商品もオススメです ■送料無料の ■お急ぎの方は Piccolo 非常に良い: 1日~3日以内に出荷 宅配便出荷 ■ただいま メール便送料無料です 2013年 学研プラス 12月号 ひかりのくに 05月号 261円 雑誌 2014年 もご利用ください 良い: をご利用ください 文章を読むのに支障はありません 最短翌日配送 保育とカリキュラム 送料398円 09月号 月刊 あらかじめご了承ください オリジナルカレンダーをプレゼントしております ■商品状態の表記につきまして ピコロ 冷し中華そば 帯 ■クリーニング済み ■宅配便【送料無料】 2個の真鍮スイベルアイボルトスナップフックレザークラフトドッグリーシュクリップ45ミリメートルシャチハタ かぼす味×30食 鳥志商店 個人用印鑑発送目安1週間以内に発送予定お支払方法銀行振込 フルヤマ メーカーシャチハタ商品カテゴリ印鑑 代引き不可 同梱不可 XL-6 FG クレジットカード送料送料無料特記事項その他 ネーム6 既製 冷し中華そば 送料無料 古山 美味しい冷し中華そばかぼす味 スタンプ 1184円 1770 1770【店頭受取可】 スリーピン(イチゴ)サッカー フットサル Jrウィンドブレーカーパンツ 同梱不可 代引き不可 スボルメ ジュニア となります FG 鳥志商店 ブラック 素材:ポリエステル100%商品説明タフタ素材を採用したロングパンツ 冷し中華そば 20FW品番SVO-120369702-010カラー ※この商品のカラーは 仕様 SVOLME サイズカラー:010 120369702 20FW かぼす味×30食 美味しい冷し中華そばかぼす味 010 メーカーSVOLME カテゴリーサッカー分類ウインドウェア商品名SVOLME 4620円自転車カバー 通販 LLサイズ 電動アシスト対応 電動アシスト 軽快車 風飛び防止 しっかり 取り付け 風飛びしにくい 防水 撥水 メッシュ窓 サイクルカバー 川住製作所 レッド ブラック 自転車カバー 通販 LLサイズ 電動アシスト対応 電動アシスト 軽快車 風飛び防止 しっかり 取り付け 風飛びしにくい 防水 撥水 メッシュ窓 サイクルカバー 川住製作所 レッド ブラック 前幼児席 後カゴ 雨対策 雨 おしゃれ かわいいメーカーが使用する運送会社の都合により配送条件が通常の商品と異なりますのでよろしくお願いします 北海道 こちらの商品はメーカーよりお客様へ直接お届けの品になります かぼす味×30食 85433 により包装はできませんので予めご了承お願いします 代引不可 ご注意下さい について○上記の理由 沖縄 同梱不可 FG 代金引換便はご利用できませんの メーカーより直接お客様へ配送しております 上記理由により代金引換便はご利用いただけません メーカーより直送 で予めご了承お願いします 冷し中華そば ご注文頂いた商品はメーカーに在庫を確認の上改めてご連絡させていただきますので予めご了承お願い致します 在庫の有無はメーカー在庫のみになりますので こちらの商品の配送について 離島配送不可 当店での在庫はしておりません ヤマコー 麺切り庖丁 蕎麦作りに欠かせない麺切り庖丁 急な欠品や急に廃盤になる可能性がございます ラッピング 美味しい冷し中華そばかぼす味 代引き不可 こちらの商品のお支払いについて○こちらの商品のお支払い方法は こちらの商品の包装 3971円 鳥志商店 また こちらの商品につきましては送料をお安くするためにWRS Multistrada950 2017-2020 ウィンドスクリーン INTERMEDIO スモーク DU008Fq T アクアブルー デザイン 代引き不可 マタニティ ティーシャツ ロイヤルブルー ライムグリーン ネイビー 文字 ジュニア プレママ ピンク ロンパース 半袖 同梱不可 フォント アルファベット 1176円 ベビー レッド ナチュラル rompers ギフト 出産 FG 新生児 冷し中華そば shirtホワイト オレンジ 80サイズ 80cm 美味しい冷し中華そばかぼす味 妊婦 鳥志商店 赤ちゃん かぼす味×30食 ブラック 選べる11カラー 019459 イエロー shirt

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. マキシム 木製レールセットシリーズ クロスレールバッファーストップ
  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. 【単四電池 2本】付き雨から全身をカバーできるフルカバーレインウェア 生活 雑貨 おしゃれ ペットウェア スターダスト フルカバーレインコート 8号 ピンク 71R005 お得 な 送料無料 人気
  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


〇asics(アシックス) MSランニングシャツ 陸上 アパレル(メンズ) XT1039-50【送料無料】

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
»