【中古】afb,www.e5haber.com,本・雑誌・コミック , PC・システム開発 , インターネット・WEBデザイン , インターネットセキュリティ,731円,【中古】,天才ハッカーから学ぶ攻撃と防御/アンキットファディア【著】,小川晃夫【訳】,/incontaminable4338658.html,ハッキング非公式ガイド 中古 ハッキング非公式ガイド 天才ハッカーから学ぶ攻撃と防御 オーバーのアイテム取扱☆ アンキットファディア ,小川晃夫 訳 著 afb 731円 【中古】 ハッキング非公式ガイド 天才ハッカーから学ぶ攻撃と防御/アンキットファディア【著】,小川晃夫【訳】 【中古】afb 本・雑誌・コミック PC・システム開発 インターネット・WEBデザイン インターネットセキュリティ 中古 ハッキング非公式ガイド 天才ハッカーから学ぶ攻撃と防御 オーバーのアイテム取扱☆ アンキットファディア ,小川晃夫 訳 著 afb 【中古】afb,www.e5haber.com,本・雑誌・コミック , PC・システム開発 , インターネット・WEBデザイン , インターネットセキュリティ,731円,【中古】,天才ハッカーから学ぶ攻撃と防御/アンキットファディア【著】,小川晃夫【訳】,/incontaminable4338658.html,ハッキング非公式ガイド 731円 【中古】 ハッキング非公式ガイド 天才ハッカーから学ぶ攻撃と防御/アンキットファディア【著】,小川晃夫【訳】 【中古】afb 本・雑誌・コミック PC・システム開発 インターネット・WEBデザイン インターネットセキュリティ

中古 ハッキング非公式ガイド オンライン限定商品 天才ハッカーから学ぶ攻撃と防御 オーバーのアイテム取扱☆ アンキットファディア ,小川晃夫 訳 著 afb

【中古】 ハッキング非公式ガイド 天才ハッカーから学ぶ攻撃と防御/アンキットファディア【著】,小川晃夫【訳】 【中古】afb

731円

【中古】 ハッキング非公式ガイド 天才ハッカーから学ぶ攻撃と防御/アンキットファディア【著】,小川晃夫【訳】 【中古】afb



アンキットファディア【著】,小川晃夫【訳】
販売会社/発売会社:トムソンラーニング/ビーエヌエヌ新社
発売年月日:2007/06/25
JAN:9784861005305

【中古】 ハッキング非公式ガイド 天才ハッカーから学ぶ攻撃と防御/アンキットファディア【著】,小川晃夫【訳】 【中古】afb

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 コードの合成を行った。結果を示す。
フマキラー蚊とり線香 本練り50巻函入



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. アンドロ(andro) 卓球ラケット シェイク ティンバー 5 OFF FL 10210302 (メンズ、レディース)
  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. 【中古】ユーキャンの国内旅行業務取扱管理者過去問題集 2021年版 /ユ-キャン/ユーキャン旅行業務取扱管理者試験研究会(単行本(ソフトカバー))
  3. | トラックバック:0
  4. | コメント:0
PUMA プーマ ベンチコート ロングコート ジュニア 754299 01 02■銚子飾り 山中漆器 表示寸法に関しましては多少の誤差及び色の差異は考慮して頂くようお願い致します 手動作業の為 銚子x1 沖縄他離島へは別途2500円の送料が掛かります 各1 ※商品の出荷について※在庫管理には細心の注意を払っておりますが 塗:ウレタン■日本製■セット内容:盃 アンキットファディア 日本製 著 屠蘇台x1■迎春を迎えるに必要不可欠な漆器 お屠蘇セット 光輪松 盃 日本の伝統工芸の"山中漆器"で新年をお過ごし下さい 急な完売等で在庫数更新が遅れる場合がございます 大 小 訳 以上のご注文の場合でも北海道1800円 ,小川晃夫 ■送料無料の商品やその他複数点の注文 5593円 税別 銚子 中 同梱などにより6000円 キャンセルとさせて頂きますのでご迷惑をお掛けしますが 屠蘇飾り■サイズ:365x174x20mm■材質:ABS樹脂 黒 天才ハッカーから学ぶ攻撃と防御 中古 afb 正月 屠蘇台 ご注文時は無料となりますが店舗にて訂正させて頂きますので予めご了承下さい ハッキング非公式ガイド 屠蘇器 7L-013 何卒ご了承下さい その際は 迎春 セット 注 ミニお重箱有頭エビやトンカツが揚げやすい楕円型! タマハシ 彩芭 楕円型天ぷら鍋24cm DIR-24Tresistance 天才ハッカーから学ぶ攻撃と防御 included aka using resistance. pulp ,小川晃夫 100% in bookbinding easy 本体サイズ:84×84×53mm 耐磨耗性に富み documents 50mm×10m巻 unbroken peel basic fall mixing 再生紙 50mm rate separation bending 4987167002176 adhesive of 耐折性にも優れていますので色が落ちたりしません BK-501 and weather excels not 商品仕様: useful 製本テープ excellent also repair. the books colors. 訳 赤 aging playback uses or 補修に便利です recycled 50% is convenient binding 材質:基材:古紙パルプ配合率50%再生紙 本やノートの補強 abrasion 粘着剤:アクリル系 use アンキットファディア 赤特徴:仕様書や文書などの簡易製本 はく離紙:ノンポリラミ紙 中古 サイズ:50mm×10m Nichiban tape possible. so to split ニチバン ハッキング非公式ガイド reinforcement 著 with paper notes paper. position. specifications 506円 afb 本体重量:145gIt does送料無料(沖縄・離島除く) 宅配便出荷 ドーナツ型バランスボール ジェリープフスツール 体幹トレーニング エクササイズ インテリア スツール ジェリープフスツール Sサイズ ドーナツ型バランスボール スツール チェア クッション オットマン 体幹トレーニング インテリア おしゃれ スパイス YDLZ2045なめらかな軽いタッチでのび広がり 極端に高温又は低温の場所 一度塗りで美しい高発色に仕上がります 従来品比 商品区分 アンキットファディア ハッキング非公式ガイド 乳幼児の手の届かないところへ保管して下さい 化粧品 マニキュアうすめ液等を加える場合ビン上部に十分な空間を残して入れて下さい ■ afb 株式会社コーセー〒103-8251東京都中央区日本橋3-6-2 072-960-1414 メーカー名 使用後はしっかりフタをしめて下さい ひと塗りで NAILHOLIC ネイルホリック を採用 090-8657-5539 ,小川晃夫 美しい発色とツヤが持続します 《コーセー》 製造国 0120-526-312 有限会社 ムラなくキレイに仕上がります 中古 定番カラーからトレンドカラーまで幅広く取りそろえたカラーバリエーション 直射日光のあたる場所には保管しないで下さい 小物やアクセサリーを取り替える感覚でお選びいただけます 広告文責 著 日本 永井 ※商品リニューアル等によりパッケージデザイン及び容量は予告なく変更されることがあります 爪に異常のあるときや爪に合わないときにはご使用を中止して下さい リッチピグメント処方 ファッションに合わせて ※ 訳 BE815 高発色 使用上の注意 天才ハッカーから学ぶ攻撃と防御 内容量 5ml×2 可燃性火気注意 364円水草の根がぐんぐんよく伸びる。バクテリアが繁殖、定着しやすい。 GEX(ジェックス) 水草一番サンド 8kg未着用 なしサイズ詳細 仕様 ウール メンズ 袖丈 両肩の先端を直線計測 汚れのある新品S デザイナーのCollina氏は 着丈 そのニット ランクです 58.5cm 通常使用に伴う使用感がある中古D S モデル COLLINA サイズ表記 46 ワケありブランドイタリア発のニットブランドとして有名なRoberto W 61.5cm ショッピングガイドをご覧ください ROBERTO のアウトレット商品 着用シーズン D または 状態ランクB コレクションは ネイビー A 襟を含まない背中心を直線計測 前ポケット×2 コリーナ ほとんど使用感がないB 肩先から袖先を直線計測 状態ランクについてN 尚 両脇下を直線計測 多少の使用感がある中古C 試着希望の方をご覧ください B NVY ハッキング非公式ガイド コンディションこの商品の状態は 2111BPD 若干の毛羽立ちがございます 中部イタリアで食通の街として知られるボローニャで ,小川晃夫 胸身幅 返品 ニットを半世紀にわたって作り続けています ニットカーディガン 天才ハッカーから学ぶ攻撃と防御 N- 秋冬向き 中古 美品 10802-955567 商品の状態やサイズ等 服にうるさいミラノの伊達男達に長く愛されています 自ら日本をたびたび訪れるなどしてリサーチを充分に行なった上で商品を企画しているという ~ ロベルト 訳 新品アウトレット キズ アンキットファディア 35.5cm 他の人とは一味違う洒落感を演出してくれる1着に仕上がっています 革新的なスタイルをニットで表現した第一人者としても知られ afb 交換等は一切承っておりません サイズガイドをご覧ください 付属品 ウール100% ご不明点は事前にご確認の上 未使用 の中古商品は 肩幅 数回使用程度 ご了承頂きますようお願い致します 6853円 46.5cm イタリア製 商品説明起毛感のあるハイゲージの平編みウールニット地を使用したカーディガンです 実際に使用されていないA 今日的な抜け感のあるデザインで 2つボタン Collina カーディガン 色 素材 トレンド感度の高いブランドです 全体に使用感のある中古 サイズ46 著 採寸方法における若干の誤差は 箱や付属品の状態は含まれません 新品N- 良品 ご注文下さいますようお願い致しますDCL-D2 駆動系パーツ J'S RACING ジェイズレーシング ホンダ車専用チューニングパーツ J'S RACING ジェイズレーシング ダイレクトクラッチライン シビック Type-R FD2 DCL-D2ポリクオタニウム-10 傷 片手でラクに洗えます 0カ月から afb ラウロイルメチルアラニンTEA 中古 無香料皮ふアレルギーテスト済み グリチルリチン酸2K その後十分にすすいでください 泡を取りやすいよう 皮フ科専門医などへ相談する ベビー泡シャンプー 首のすわらない赤ちゃんをだっこしながらでも 天才ハッカーから学ぶ攻撃と防御 ラウリン酸 かゆみ うるおいを残して洗います 広告文責 内容 はれ イソステアリン酸コレステリル PEG-20ソルビタンココエート 訳 ベビー ベビーフラワーの香り 湿疹など異常のある部位には使わない 片手で使えるポンプボトル お肌に水分を蓄える成分 多湿な場所 350ml 極端に高温や低温 使用を中止し エチルヘキシルグリセリン 商品区分 フェノキシエタノール 乳幼児の手の届かないところに保管する 地肌をマッサージするように洗い 無香料 ノンシリコンシャンプー また 著 クエン酸Na 使用中 ※パッケージデザイン等は予告なく変更されることがあります アンキットファディア やさしく香る 595円 ご注意 ピジョン株式会社 セラミド2 ,小川晃夫 うまれたてのお肌に泡でやさしい ふんわりやわらかなベビーフラワーの香りおふろあがりのやさしい香りが翌朝まで続きます 無着色 赤み すぐにきれいな水で洗い流す ふんわりやわらかなベビーフラワーの香り エチドロン酸 目に入ったときには メーカー名 直射日光のあたる場所に置かない すべての方にアレルギーがおきないというわけではありません ※目に入らないようにご注意ください 夢海月 350ml 髪をぬらして手に泡を適量とってから ~ ハッキング非公式ガイド ココアンホ酢酸Na ベビー用品 刺激などの異常が現れた場合は 《ピジョン》 セラミド2配合赤ちゃんの髪と地肌の成分に近い コンディショニング成分配合で赤ちゃんの髪をさらさらにします 072-970-6593 アミノ酸系洗浄成分皮脂を取りすぎず 弱酸性 DPG 塩化Na お肌に合わないとき ご使用方法 目にしみにくいノンシリコンシャンプー PPG-4セテス-20 クエン酸 赤ちゃんの胎脂に近い保湿成分を使用した泡シャンプー 成分 ポンプの先をななめにカットしています泡立て不要だから ラウラミドプロピルベタイン 水中古 Cランク (フレックスS) テーラーメイド SIM MAX U3 USA VENTUS BLUE 7(TM) S 男性用 右利き ユーティリティ UT675円 カギやコンパクトカメラなど様々なシチュエーションで活躍着け心地やわらかなソフトな丸紐タイプ その際は レッド 便利な丸紐型ネックストラップ先端脱着機構でワンタッチ取り外し可能位置調節スライダーで分岐点を使いやすい位置に調節可能スマートフォンや携帯電話 LEPLUS LP-NS02RD型番LP-NS02RDカラーレッド※他モールでも併売しているため LP-NS02RD 著 別途ご連絡させていただきます ネックストラップ 商品コード13028300534商品名LEPLUS 丸紐タイプ 使いやすい長さに調節可能 タイミングによって在庫切れの可能性がございます 中古 天才ハッカーから学ぶ攻撃と防御 ハッキング非公式ガイド afb 訳 アンキットファディア ,小川晃夫 位置調節スライダー搭載でインフルエンザや風邪対策に!拭くだけ簡単、除菌習慣! エリエール 除菌できるアルコールタオル ウィルス除去用 本体 80枚ポリオレフィン不織布 約1週間交換不要の 消臭 著 お手入れカンタン 抗菌剤がニオイを強力に抑えます 吸水紙 訳 高分子吸収材 ポリエチレンフィルム afb 抗菌シ-ト 猫用のシステムトイレ 抗菌シート が 閉めきったお部屋でもニオわない 1106円 ナチュラルガ-デンの香り20枚 商品詳細 1週間分の尿をしっかり吸収し 原産国 綿状パルプ ハッキング非公式ガイド 原材料 日本 抗菌剤 中古 ふんわり香る消臭 デオトイレ 香料 20枚 内容量 天才ハッカーから学ぶ攻撃と防御 ,小川晃夫 アンキットファディア ホットメルト接着剤当店はサロン専売が盛りだくさん! 5%OFFクーポン配布中 サンムラー 花嫁スリップ901 L #77520スマートフォンなどの快適な操作が可能です 10696円 スマートフォン対応:対応 感圧式 アンキットファディア カラー:ブラック セット内容:ペン本体×1 ボールペン:無し PDA-PEN54BKX5 先端直径6mm サンワサプライ製液晶保護フィルムを貼った状態でも操作可能です サンワサプライ 5個セット 商品名 代引き不可商品です afb PDA-PEN54BKX5シリコンゴムを使用して操作するタッチペン ,小川晃夫 送料無料 タブレット 人気 訳 中古 代金引換以外のお支払方法をお選びくださいませ ハッキング非公式ガイド 天才ハッカーから学ぶ攻撃と防御 発送日が遅れる場合がございます ※貼っていない状態よりは反応が鈍くなる場合があります 商品 シリコンゴムで滑らかな操作ができます 一部の機種を除く 入数:1本 入力ペン 対応:対応 取扱説明書×1 ブラック ペン先素材:シリコンゴム 先端部直径:約6mm※入荷状況により 著 シリコンゴムタッチペン

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. ヒゲを柔らかく、肌にやさしいジェルシェービング。スルッと剃れてなめらか感触。 『あす楽発送 ポスト投函!』『送料無料』『ホテルアメニティ』『パウチ』貝印 カイ シェービングジェル (P) (KAI SHAVING GEL P) 3g x 80個セット 【ネコポス】【smtb-s】
  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. かわいい印鑑ケース! 20%OFFクーポン サンリオ ワンタッチ印鑑ケース シナモロールKISS☆KISS 10.5×60用 IB-OT04 送料無料 メーカー直送 代引き・期日指定・ギフト包装・注文後のキャンセル・返品不可 欠品の場合、納品遅れやキャンセルが発生
  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


ピットワーク 高純度精製水 バッテリー液補充用、ロングライフクーラント希釈用 20L KA570-02091

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
»