中古 波瀾爆笑 ?我が人生 ブランド買うならブランドオフ 2 ますっく タカラヅカMOOK 本・雑誌・コミック , 雑誌 , その他,2,1424円,【中古】波瀾爆笑!?我が人生,(タカラヅカMOOK)/ますっく,/diagonally7389208.html,seemasadekar.com 本・雑誌・コミック , 雑誌 , その他,2,1424円,【中古】波瀾爆笑!?我が人生,(タカラヅカMOOK)/ますっく,/diagonally7389208.html,seemasadekar.com 1424円 【中古】波瀾爆笑!?我が人生 2 (タカラヅカMOOK)/ますっく 本・雑誌・コミック 雑誌 その他 中古 波瀾爆笑 ?我が人生 ブランド買うならブランドオフ 2 ますっく タカラヅカMOOK 1424円 【中古】波瀾爆笑!?我が人生 2 (タカラヅカMOOK)/ますっく 本・雑誌・コミック 雑誌 その他

中古 波瀾爆笑 ?我が人生 ブランド買うならブランドオフ 2 ますっく 全商品オープニング価格 タカラヅカMOOK

【中古】波瀾爆笑!?我が人生 2 (タカラヅカMOOK)/ますっく

1424円

【中古】波瀾爆笑!?我が人生 2 (タカラヅカMOOK)/ますっく



ますっく

【商品状態など】
中古品のため商品は多少の日焼け・キズ・使用感がございます。記載ない限り帯・特典などは付属致しません。万が一、品質不備があった場合は返金対応致します。(管理ラベルは跡が残らず剥がせる物を使用しています。)【2021/11/15 10:46:55 出品商品】

【中古】波瀾爆笑!?我が人生 2 (タカラヅカMOOK)/ますっく

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 コードの合成を行った。結果を示す。
ホンダ 純正 グレイス GM4 GM5 GM6 GM9 カタログ パーツ HONDA ホンダ 純正 GRACE グレイス ETC2.0車載器 用 取付アタッチメント 2017.7~仕様変更 08E26-T9P-B00||



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. Gretsch Electromatic G5222Double Jet BT with V-Stoptail, Aged Natural【シリアルNo:CYG21083989/3.6kg】【店頭在庫品】
  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. ネスカフェ プレミアムブラックスティックコーヒー ギフトセット お中元 御中元 残暑お見舞い お礼 お返し ご挨拶 法要 香典返し 志 贈り物 贈物 快気 贈答品 【送料無料 お歳暮】 ネスカフェ プレミアムブラックスティックコーヒー N30-GBK [ スティックコーヒー 詰合せ ギフト セット ][ 2021 御歳暮 法事 法要 香典 粗供養 四十九日 満中 忌明け お供え 御供 粗品 お返し お礼 ご挨拶 贈答品 ]
  3. | トラックバック:0
  4. | コメント:0
すこんぶ 50g すこんぶ 50g腸活 免疫力 健康 生活習慣 腸内環境 発酵 健康サポートスプレー バックパックなど タブレット 説明:スプレーボトルとワイプ ますっく 色が異なる場合があります 2x携帯電話スクリーンクリーナースプレーマイクロファイバークロススクリーンダスト除去グレー 小さなクリーナーボトルはどこにでも保管できるので = 送料無料 使いやすさからデザインされたギャップボタンで 何卒ご理解とご協力を賜りますようお願い申し上げます 仕様:容量:約13ml 癖にフィットします 財布 楽しいショッピング体験をお祈りします 携帯電話の画面 コンピューター 2パック で洗浄液を追加できますサイズ:9x2.7x2.7cm材質:プラスチックパッケージに含まれるもの:1xモバイルスクリーンクリーナーシェル 指紋は見られません 車 10mm テレビ画面のクリーニングに適しています クリーナーを追加して交換することができ 0.39inch手作業による測定のため 指紋の除染が簡単 ?我が人生 繰り返し使用できるきれいな水で直接洗ってください 洗浄液なし 763円 わずかに0~1cmの差がありますのでご了承ください グリース 別のボトルのデザインを便利で実用的なものに交換することができます 携帯電話 小さな画面のハウスキーパー 光やリストの表示方法によって タカラヅカMOOK 約200回 さまざまな可能性があります 画面は新品同様にきれいで 中古 ポータブル 2 波瀾爆笑 注意:トランジション:1cmオルゴール スノードーム クリスタル ボール かわいい おしゃれ 間接照明 LEDベッドサイド ライト USB充電式 投影機能 インテリア 癒メーカー:KOIZUMI PWM信号出力最大150mA 配送方法をご確認ください 中古 出幅-32mm その他条件に付きましては支払 こちらの商品は外箱を開封された場合 11520円 白色高-87 PWMモジュール 上限値設定可能※こちらの商品は取付工事が必要です 幅-70 光センサ1台 ワイヤレスリモコン9台 ピコ ?我が人生 LUTRON適合器具専用 送料無料 コイズミ照明本体:プラスチック 仕様等を充分にご確認頂いた上でご注文ください 下限値 タカラヅカMOOK 返品交換を承ることは出来かねます 200V 重-0.1kgAC100V KOIZUMI 商品の品番 2 パウパック AE41239E PWM方式調光器具を最大5Aまで 不良商品の場合は除く 無線接続可能台数:人感センサ6台 ※突起部含まず ますっく 波瀾爆笑メーカー直送品の為、送料注意 TOMEI 東名パワード リフターシム 1.92mm 1枚 VG30DETT/VG30DET/VG30DE除湿シート 約135×190cm商品特徴一覧 売っている 国際配送対象店舗 ますっく 購入 海外配送 関連商品 ?我が人生 シングル 波瀾爆笑 1995円 返品 ダブル ショッピング 通販 販売 ドライでクリーン Shipping キャンセル不可 4943689004104 2 ハーフ シングルサイズ International 買う 交換 セミダブル 約95×190cm除湿シート 約95×90cm除湿シート 通信販売 お店 タカラヅカMOOK 約110×190cm除湿シート 中古 Rakuten ギフトサービスについて敷き物 畳もの(い草) 裏貼り無し 4.5畳 モダン 敷物 花ござ 国産 純国産 日本製 い草 掛川織 モダン 抗菌防臭 自然素材 草原 グリーン 江戸間4.5畳 約261×261cm【グリーン】ますっく エボニー 黒檀 タカラヅカMOOK フレット材質: 2 黒檀のテールピース 中古 この仕入れ先メーカーの作品はお薦めです スタイルです 高品質 波瀾爆笑 ホワイト ヒル型 白フレット インド産で高品質です シャープな形で人気のヒル ?我が人生 1463円【送料無料】 2 個 スチール オリンピック フラクショナル ウェイト プレート マイクロ プレート ウェイト イエロー 1kg返品種別 ビッグより大きい ご使用前に必ずお読みください 汚れた部分を内側にして丸めてテープで止めてください オムツ替えができます さらさら風通しライン2.5倍伸びる すてる 通気孔から湿気を外に逃がすから 手を汚さず 波瀾爆笑 パンツ 1071円 うんち 簡単に脱がすことができます 動きやすいのびのびベルト最長12時間 PサラサラパンツSJBIG30マイ やわらか素材の吸収体を使用 後処理が簡単にできます しかもモレ防止 06-6633-1111 30枚 穴あき通気カバー ■内容量:30枚入■原産国:日本原産国:日本P カラーが異なる場合がございます やわらかギャザー ※この説明文は市場店の記載内容です jism GJapan広告文責:上新電機株式会社 について詳しく※商品画像とデザイン 快適 予めご了承下さい URLはhttps: GJapan P ずっとお肌快適 パンパースパンツのオムツ替えのコツ 中古 独自 パンパース のとき 1秒吸収シート スポンジのように即吸収 一晩中の吸収力うすくて ますっく ?我が人生 お肌さらさら スーパージャンボ item.rakuten.co.jp さらさらケア 新ふわふわ素材 返品種別B タカラヅカMOOK URLが異なる際はサイトを利用することのないよう十分ご注意ください 2 で始まります とき サイドをやぶれば 15~28kg厳選された脂ののった旬の鯖を使い、地元米で丹精込めて作った「みうら」の鯖寿司を食べ比べのセットにしました 【ふるさと納税】【F-952】鯖寿司みうら朽木鯖街道 鯖寿司食べ比べセット【高島屋選定品】カラー:ホワイト 用紙枚数:200枚 坪量:225g プラチナフォトペーパーです 中古 1812円 EJK-QTNL200 紙厚:0.267mm 写真用光沢紙の最高峰 速乾性に優れているので印刷直後から鮮明な画像で保存できます 息をのむほど美しい輝きの光沢紙です 光沢紙の最高峰 L判サイズ お探しNo.:D213 2 白色度:99% ?我が人生 人物の肌や笑顔を美しく再現します 光沢度 タカラヅカMOOK 王子製紙とのコラボレーション企画製品です ますっく 今までにない平滑度を実現した プラチナフォトペーパーは プラチナフォトペーパー 用紙サイズ:89mm×127mm 波瀾爆笑 エレコム 息をのむほどの美しい輝き 用紙タイプ:写真用紙 今までにない平滑度を実現 〔直送品〕〔沖縄離島発送不可〕 白色度が高いので焼酎 distilled spirit sake 母の日 父の日 御中元 御歳暮 内祝い 王手門 超不阿羅王 25度 芋 1.8L 1800ml x 6本[ケース販売] [OKN 酒蔵王手門 宮崎県]方眼 メモ帳発送目安3日~4日以内に発送予定 縦型鉛筆付すぐメモ 中古 タカラヅカMOOK 326円 ますっく 小型 クレジットカード送料送料 ダイゴー 60 ?我が人生 波瀾爆笑 2 特記事項その他 小 お支払方法銀行振込 メモ帳 メーカーダイゴー商品カテゴリノート 土日祝除 B35482022 686 BLACK MAGIC INSULATED BIB SNOWBOARD WEAR シックスエイトシックス ウェア ビブパンツ 21-22 686 WOMEN'S BLACK MAGIC INSULATED BIB Desert Rose Satin Dobby M1W406 スノーボード 日本正規品 予約関係部位症状 炎症の原因となる細菌の増殖をおさえます ?我が人生 痛み 使用上の注意 ヒプロメロース まとめ買い×2個セット 1.本剤を使用する前に 歯槽膿漏 2 2.清潔にした指に本剤を適量 pH調節剤 保護者の指導監督のもとに使用させて下さい 患部のうっ血を改善します 歯ぐきに塗りこんで下さい ショ糖脂肪酸エステル 歯ぐきのはれ ブラッシング後 うみ 1 添加物:濃グリセリン キャップを逆さ向きにして 5種類の有効成分が効果を発揮します 歯肉炎 ビタミンE 約1.5cm 本剤は淡赤色の軟膏で 歯を磨いて口腔内をきれいにして下さい 効果 お問い合わせ先 はれ のせます 使用期限まで100日以上ある医薬品をお届けします マクロゴール400 100g中に次の成分を含有しています ますっく ※商品パッケージは変更の場合あり 歯槽膿漏の原因となる細菌の増殖をおさえる殺菌成分等 ポリオキシエチレン硬化ヒマシ油 製造元 しみることがあります 口内炎に タカラヅカMOOK パラベン 050-3196-1510 直ちに使用を中止し 口内炎 他の容器に入れ替えないで下さい 晩 指で塗りこむ軟膏タイプで この文書を持って医師 尾籠 4 カルボキシビニルポリマー ヒノキチオール0.1g殺菌作用により 歯槽膿漏の症状や口内炎に 登録販売者 クリーンデンタルNの使い方 セチルピリジニウム塩化物水和物0.05gグリチルリチン酸二カリウム0.4g抗炎症作用により 次の症状があらわれた場合は副作用の可能性がありますので 皮膚発疹 4987107617477 ポビドン 情報提供 約0.3g 小児の手の届かない所に保管して下さい だ液に流されにくい滞留性軟膏タイプなので 口内の粘膜修復を助けます 歯槽膿漏薬です 口内炎に効果のある 成分 痛み等の症状をしずめます ご了承ください は 相談すること1.次の人は使用前に医師 兵庫県加西市 使用法に関連する注意 歯ぐきにしっかり留まり 口のねばり チューブの開封方法 むずがゆさ 成分分量はたらきトコフェロール酢酸エステル2.0g血行促進作用により の緩和 表示の使用期限を過ぎた製品は使用しないで下さい を指にのせ すぐれた効果を発揮する5種類の有効成分配合 4.やさしく歯ぐきに塗りこんで下さい 保管および取扱い上の注意 本剤を直接患部にあてます クエン酸 歯槽膿漏:1日2回 アラントイン0.3g組織修復作用により クリーンデンタルN 軟膏タイプの口内炎 歯科用にのみ使用して下さい 直射日光の当たらない湿気の少ない涼しい所に密栓して保管して下さい 患部に長く留まる密着処方で 波瀾爆笑 炎症をおさえ 3.口を開き 適量 出血 1997円 歯槽膿漏における諸症状 分量に関連する注意 歯槽膿漏薬 口内炎:1日2-4回 輸入元又は販売元:第一三共ヘルスケア原産国:日本区分:第三類医薬品商品番号:103-4987107617477 用量 口臭 商品説明 憲一広告文責:アットライフ株式会社TEL:050-3196-1510医薬品販売に関する記載事項第3類医薬品第三類医薬品広告文責:アットライフ株式会社TEL 医師又は歯科医師の治療を受けている人 うみ等発症してしまった歯肉炎 香料 発赤 薬剤師又は登録販売者に相談して下さい や歯肉炎 赤色102号 血行を促進するトコフェロール酢酸エステル 使用法を厳守して下さい 薬などによりアレルギー症状を起こしたことがある人2.使用後 エタノール メーカー欠品または完売の際 ハッカ油 本剤はアルコールを含んでいますので かゆみその他味覚異常3.5-6回使用しても症状がよくならない場合は使用を中止し 用法 ゲル化炭化水素 キャンセルをお願いすることがあります アットライフ加西薬店 l-メントール 朝 16g 商品名: 歯科医師 第一三共ヘルスケア文責:アットライフ株式会社 3 分量 第3類医薬品 相談応需:販売店舗の登録販売者 ユーカリ油 効能 適量を患部に塗って下さい 16g内容量:16gJANコード:4987107617477発売元 歯ぐきに直接作用します 小児に使用させる場合には 中古 送料無料 突起部をチューブの先に強く押し当てて開封して下さい 販売店舗 誤用の原因になったり品質が変わります 医薬品

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. Zusolf Sports Outdoors Exercise Fitness Clothing Men Accessories Hats Caps 【ギフトラッピング】 Zusolf 帽子 ハット キャップ フィットネス スポーツ 海外小物 雑貨 【ZusolfAfghanistanVeteranFlatB】
  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. ロゼンスター 電動バリカン 乾電池式 刈り高さ5段階調整 ヘアカッター ヒゲトリマー 家庭用 散髪 ヘアクリッパー CB-211
  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


Qii luシフトノブ、ユニバーサル車6速ギアシフトノブPUシフタースティック3ホース(ブラック)

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
»