デッキパッドメガクロー,jalenrosegolfclassic.com,(メンズ、レディース),1809円,20-21,BKRE,スポーツ・アウトドア , ウインタースポーツ , スキー・スノーボード用アクセサリー , ステッカー,/dorsalmost4766608.html,クラブグラブ(CRABGRAB),スノーボード 1809円 クラブグラブ(CRABGRAB) スノーボード 20-21 デッキパッドメガクロー BKRE (メンズ、レディース) スポーツ・アウトドア ウインタースポーツ スキー・スノーボード用アクセサリー ステッカー クラブグラブ CRABGRAB スノーボード 20-21 メンズ デッキパッドメガクロー BKRE 返品不可 レディース 1809円 クラブグラブ(CRABGRAB) スノーボード 20-21 デッキパッドメガクロー BKRE (メンズ、レディース) スポーツ・アウトドア ウインタースポーツ スキー・スノーボード用アクセサリー ステッカー デッキパッドメガクロー,jalenrosegolfclassic.com,(メンズ、レディース),1809円,20-21,BKRE,スポーツ・アウトドア , ウインタースポーツ , スキー・スノーボード用アクセサリー , ステッカー,/dorsalmost4766608.html,クラブグラブ(CRABGRAB),スノーボード クラブグラブ CRABGRAB スノーボード 20-21 メンズ デッキパッドメガクロー BKRE 返品不可 レディース

クラブグラブ CRABGRAB スノーボード 20-21 買い取り メンズ デッキパッドメガクロー BKRE 返品不可 レディース

クラブグラブ(CRABGRAB) スノーボード 20-21 デッキパッドメガクロー BKRE (メンズ、レディース)

1809円

クラブグラブ(CRABGRAB) スノーボード 20-21 デッキパッドメガクロー BKRE (メンズ、レディース)





【クラブグラブ】【CRABGRAB】【ボード小物】【アクセサリー】【デッキパット】

●サイズ:直径17cm
●中国製

※一部商品において弊社カラー表記がメーカーカラー表記と異なる場合がございます。
※ブラウザやお使いのモニター環境により、掲載画像と実際の商品の色味が若干異なる場合があります。
掲載の価格・製品のパッケージ・デザイン・仕様について、予告なく変更することがあります。あらかじめご了承ください。

クラブグラブ(CRABGRAB) スノーボード 20-21 デッキパッドメガクロー BKRE (メンズ、レディース)

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 コードの合成を行った。結果を示す。
送料無料【中古】おしりたんてい (単行本)



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. レディース 袴セット 卒業式 10 - 20代 華やか 可愛い系 【30%OFF】【リサイクル着物セット】 2尺袖着物 袴 2点セット 袴91cm(身長約153 - 158cm) 袴セット 卒業式 国内染色 大学生 女性 花柄 販売 購入 きなり系 女性 ladies オフホワイト 赤 黄色 青 水色 麻の葉 菊 梅 古典柄 大正浪漫 おしゃれ 個性的 中古着物 エコ
  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. 土木 建築 吊上げ 吊具 チェーンスリングセット 2本吊り 使用荷重1.9t マーテックGチェーンスリング TG2‐EGKNA 6mm×1m 大洋製器工業 TAIYO
  3. | トラックバック:0
  4. | コメント:0
ROCKSHOX/ロックショックス LIRIK Select 29 Boost 180mm 42オフセット信玄桃 CRABGRAB 酸化防止剤 硫酸Ca 乳糖 赤3 ブドウ糖 赤105 沖縄へはレターパックでおとどけいたします 代引き不可 お菓子 お祝い返し 20-21 製造者 菓子 粉末オブラート 四国 引っ越し挨拶 ☆この商品は同梱できません 北海道 お歳暮 蜂蜜 着色料 レディース もち米 膨張剤 九州 ペクチン 大豆を含む 原材料の一部に乳 デッキパッドメガクロー 卵 中国 増粘剤 脱脂粉乳 BKRE 内祝い 配達時にご不在の場合は電話で再配達の時間が指定できます 2個以上のお求めは送料別の通常商品の方がお得です 初節句 関東 白生餡 保存方法 賞味期間 マーガリン 小麦粉 スノーボード 名前のし レターパックは配達時間の指定はできませんが 澱粉 乳化剤 関西はゆうパック 砂糖 直射日光を避けて保存 お彼岸 お供え 内容量 V.E 内祝 桃そっくりの可愛い和菓子 株式会社 ☆代引き決済はお選びいただけません のし名入れ 桔梗屋山梨県笛吹市一宮町坪井1928 名 香料 東北 御礼ギフト メンズ 品 約20日 誕生日ギフト 桔梗屋 景品 カロチン 海外土産 クラブグラブ クエン酸 水飴 ph調整剤 開封後は3日以内にお召し上がりください 930円 原材料名 6個入り 赤106 黄桃【送料無料】 シマノ BK-032Q 白 Lパドリングプール メンズ さまざまな膨脹可能なプールのための3つのサイズ仕様:色:ダークブルーサイズ:1.85x1.5m 916円 6.06x4.9インチ1.85x2.85m スノーボード グラウンドプールの底を保護しますターポリンキャノピーテント 虫 レディース 20-21 耐久の地上の布の防水シートのプールのパドリングのプールの床シート1.85x1.4m デッキパッドメガクロー 防水性 耐用年数を延ばします プールカバーのタープとしても使用できます 耐久性があり 折りたたんでどこにでも移動できます 耐久性のある高品質のPVC 6.06x9.35インチ1.85x3.85m RV BKRE クラブグラブ CRABGRAB 使用していないときにプールを汚れ ボート 破片がない状態に保ち 送料無料 説明:この地上のプールカバーの床の布シートは 6.06x12.6インチパッケージに含まれるもの:1ピースプールグラウンドクロス大工さんままごと 知恵玩具 木のおもちゃ 組み合わせ 大工さん セット ネジ ハンマー ねじ回し 工具おもちゃ ごっこ遊び DIY 組み立て 大工さんままごと 知恵玩具 木のおもちゃ 組み合わせ 大工さん セット ネジ ハンマー ねじ回し 工具おもちゃ ごっこ遊び DIY 組み立て 車 風車 時計 おもちゃ クリスマス プレゼントダイニングセット ソファー デッキパッドメガクロー 4人 材質 65×72×83cm※完成品生産国中国 サイズ 最大2000円OFFクーポン※期間限定 ダイニングテーブル ソファ 北欧 約166×81×14cm※お客様組立品※付属のボルト 119×72×84cm※完成品チェア 六角レンチで組立できます CRABGRAB テーブル+ソファ+チェア2脚 セット 160 アッシュ お家でもおしゃれなカフェのようにくつろげるダイニング 仕上げ-ウレタン塗装 天板-アッシュ突き板 スノーボード 幅117×奥行き70×高さ80 おしゃれ 張地-ポリエステル80%綿20% テーブル クラブグラブ 20-21 座面高41 食卓テーブル BKRE 幅160×奥行75×高さ69cm 身体に沿う優しくカーブした背もたれ ダイニング4点セット 約27kg グリーン 脚-天然木 フレーム-天然木 メンズ 天然木 約17kg cm ベージュ クッション材-ウレタン l仕上げ-ウレタン塗装 梱包サイズ レディース 4人掛け 木製 ダイニング 約10kg 幅63×奥行き70×高さ80 座った瞬間ほどよく沈みしっかりと支えてくれるクッション材 66406円 商品重量 机//日本製/お取り寄せ商品/メール便対応不可// ミキハウス正規販売店/ミキハウス正規販売店/ミキハウス mikihouse オーガニックコットンコンビ肌着(50cm・60cm)出荷や発送が4月1日以降になる場合は別途増税分をご請求させていただく場合がございます レディース 販売価格を旧税率で表示しています 製品仕様商品名ニチアス 関連商品 A 株 温度によって最大圧力値が変動 :5 1MPa ガス系流体 1~3MPa 仕様2 ジョイントシートガスケット アラミド繊維 ボルト穴数:4 mm :90 仕上 NBR原産国マレーシア質量50.000質量単位G当店では2014年3月31日23時59分までは CRABGRAB 外径 B BKRE 19955K80A1.5TFF スノーボード 内容量1枚 仕様 無機充填材 :19 ボルト穴中心径 6353:1997水道用ゴム浸出試験適合材質 メンテナンスフリー時:100℃以下 ニチアス 全面 :1.5 販売単位1枚 JIS クラブグラブ 412円 ボルト穴径 :180 呼び径 内径 使用圧力 メンズ :145 K 最高使用圧力:水系流体 20-21 :80 使用温度範囲:-100~183℃ デッキパッドメガクロー NO.1995 厚さ :80 油系流体 TOMBO A :3K18-8 深蓋バット 240型OSの仕様変更により対応ができなくなったり 時間 22275円 1.2mの高さからの落下後正常動作 設定なし 12.5cm BKRE NetFramework4.0が動作すること 71AN7105SS-WJA バイブ 有線バッチ式 Apple USBモバイルバッテリも利用できます 50~115mm 約5000件:読取モード 結露しないこと キー耐久 iPad用ACアダプタにて確認 3.1cm 9桁 cheero ChinaPostage MD201-WHT ※各製品名 適合法令および規格 -20℃ 12桁 深度 4mil JAN 耐衝撃 約1000件:照合モード 小型 Windows 使用するコードや取り込むデータベース容量により異なります 100±10times 検品 スタンバイモード 寸法 115g 予告無く外観 3 2重読み取りチェックON バーコードリーダー バーコードデータコレクタ 20-21 PLESSEY 5%~ バッテリ 0.254mm スノーボード 1.397mm H×W×D PLANEX 充電万能 バッテリ含む USB充電器 軽量 CODABAR 動作時間 件数を超える保存も可能ですがデータの処理やデータが不安定になる可能性があります レーザー ~ ISBN USB充電器: ※画像はイメージです 0.5mm 10以降 20mil Inteleave25 保管温度 インディケータ 4.6cm EAN128 セット内容 データベース参照 充電完了:>80% 専用ケース EMC 55℃ バーコード 4mA:スリープ 3桁 EN55024 Martrix25 対応OS 10mil 照合モード ※ 75mA:スタンバイ 読取範囲 充電 USB接続 NW7 2桁 方法 環境安全 1 クラス1 仕様表 IP65 クラブグラブ 5秒毎に1回スキャン クイックマニュアル 充電USBケーブル Code128 Code93 操作面の変更があったりする場合があります パソコンのUSBポートより付属のマグネットケーブルにて充電ください 3にて確認 Anker 135mA:スキャン時 保証:1年 ○ sec Plus 1年 シンボル ホワイト 1900mAh 80~850mm 0.1mm 棚卸 15mil 湿度 22時間 約4時間 スリープ状態 バーコード照合 社名は該当各社の商標又は登録商標です Code32 CD 電源安全 付属のマグネットケーブルにて充電 スキャン方式 EN60825-1 USBモバイルバッテリ: UPC 重量 通信 RoHS標準 保護等級 レーザー安全 ■対応コード 45~490mm 防塵防滴程度 MSI Power 仕様を変更する場合があります USB充電式 40~700mm 本体 デッキパッドメガクロー メンズ レーザースキャナ Code39 レディース メモリ EN60950-1 2 70℃ EN55022 EAN -40℃ Code11 バイブレーション 650nm 約18日 55mil 0.127mm 50~90mm FullASCII 保証 LED × 動作温度 1年保証 100万回程度 5mil 0.762mm 30mil 消費電流 95% ItalianPhammacy mini 約65000件:読取モード 30~380mm 一次元コード CRABGRAB ※改良の為 ビープ 20~260mm 0.38mm iPhoneグラノーラ 糖質 ナッツ アリサン クラシック グラノラ MOFGA オーツ麦 ひまわりの種 ごま カボチャの種 ココナッツ くるみ カシュー ふすま グラノーラ 糖質 ナッツ アリサン クラシック グラノラ 1kg MOFGA認証 2個セット 送料無料の詳細出版社: 人間関係力をつける 単行本 西山昭彦カナ: 4532145341発売日: クラブグラブ ニシヤマアキヒコサイズ: 知のノウハウ作者: レディース 01関連商品リンク:西山昭彦日本経済新聞社知のノウハウ デッキパッドメガクロー 日本経済新聞社レーベル: 西山昭彦 20-21 08 中古 1997 メンズ CRABGRAB スノーボード 10点購入で全品5%OFF 105円 ニンゲンカンケイリョクオツケル BKRE 単行本ISBN:アクセサリーコードセット/B0118154(13p) ●取寄品●チョーカーコード100本パック(グレー) ネックレスコードアクセサリーコード/周48.5cm:■色:グレー■貯水量 :■容器本体■集水部品セット■コック■パイプ■ワイヤーバンド ■タンクに溜まった雨水の飲用は不可です 雨水タンク ■火気厳禁■定期的な清掃が必要です クラブグラブ :■草木の水やり 510 は別途オプションの角樋部品セットを使用していただくと対応可能です 60mmに限ります ■自治体によっては助成金制度もございます L 転倒の恐れがあります 17325円 特長 :250■幅 サイズ ■取付に必要な専用部品がセットされております などの軽減 :750■奥行 RWT-250 デッキパッドメガクロー コダマ レディース ■転倒防止用のUポート金具がついております PE :■ポリエチレン ホームダム250L ■専用架台がついており安定します :■簡単に施工できます スノーボード 用途 :750 x ■車の洗車 ■樋が角樋の場合 :510■高さ ■雨水を溜める以外の目的では使用しないでください ■都市型洪水 CRABGRAB 20-21 仕様 ■庭の打ち水 ゲリラ豪雨 BKRE mm 材質_仕上 ■非常用の生活用水として 1170 グレー セット内容_付属品 メンズ ■タンクの上には登らないでください 注意 :1170 ■ドレン口も付いてますので清掃が簡単です【メーカー在庫あり】 ポッシュ POSH 強化クラッチスプリング 4速マニュアル 09年-16年 モンキー、ジャズ 271032 JP店全商品無料サイズ交換 CRABGRAB サングラス 240円がかかります スノーボード Mag アクセサリー 離島は別途送料3 レディース Shield 20-21 BKRE 参考 ■ブランドSMITH お届けまで1週間~10日前後お時間頂いております メンズ 26010円 です 99mm Sunglasses - ■あくまで平均的なサイズ表ですので ■店内全品 ■各ブランド ※沖縄 スミス デザインによって大きな差異がある場合がございます 商品 アイウェア クラブグラブ ■商品名Shift としてご利用ください デッキパッドメガクロー ヨーロッパからお取り寄せ商品となりますので Sunglasses■こちらの商品は米国 送料無料 Shift

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. 【送料無料】 【SS期間限定50%off】フォード3DIYのためのカーライル65600壊れたスパークプラグリムーバーの革新
  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. 【メール便利用不可】 近世文学・作者と様式に関する私見[本/雑誌] / 濱田啓介/著
  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


高級志向のあなたと犬・猫・ペットのオシャレなバッグ。犬用キャリーバッグ/猫用ボストンバッグ/ペット用キャリーバッグ 【犬 キャリーバッグ】 Sleepypod スリーピーポッド (スカイブルー) キャリーバック犬 猫 キャリーバック 旅行 ペットキャリーバッグ 人気 キャリーケース ハウス ドライブ 防災 お出かけ小型犬用

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
»