オキナ プロジェクトペーパー PPB45S B4 notebk 売れ筋 5mm方眼 269円 オキナ オキナ プロジェクトペーパー PPB45S B4 5mm方眼【notebk】 日用品雑貨・文房具・手芸 文房具・事務用品 紙製品・封筒 方眼用紙 imprentaonline.cevagraf.coop,PPB45S,オキナ,269円,5mm方眼【notebk】,B4,プロジェクトペーパー,日用品雑貨・文房具・手芸 , 文房具・事務用品 , 紙製品・封筒 , 方眼用紙,/crookle9712558.html,オキナ オキナ プロジェクトペーパー PPB45S B4 notebk 売れ筋 5mm方眼 269円 オキナ オキナ プロジェクトペーパー PPB45S B4 5mm方眼【notebk】 日用品雑貨・文房具・手芸 文房具・事務用品 紙製品・封筒 方眼用紙 imprentaonline.cevagraf.coop,PPB45S,オキナ,269円,5mm方眼【notebk】,B4,プロジェクトペーパー,日用品雑貨・文房具・手芸 , 文房具・事務用品 , 紙製品・封筒 , 方眼用紙,/crookle9712558.html,オキナ

オキナ プロジェクトペーパー PPB45S B4 正規品送料無料 notebk 売れ筋 5mm方眼

オキナ オキナ プロジェクトペーパー PPB45S B4 5mm方眼【notebk】

269円

オキナ オキナ プロジェクトペーパー PPB45S B4 5mm方眼【notebk】




●コピーに写りにくいブルー罫線を使用した方眼紙「プロジェクトペーパー」。製図・レポート・ラスフケッチ・アイデアメモなど、フリープランニングに最適です。資料として残したい書類もきれいにコピーできます。
●外寸(横)(mm):364
●外寸(縦)(mm):257
●規格:B4ヨコ
●罫内容:5mm方眼
●中紙坪量:64g/m2
●中紙寸法(厚)(マイクロm):80
●枚数(枚):50

広告文責:グループ株式会社
050-5212-8316

オキナ オキナ プロジェクトペーパー PPB45S B4 5mm方眼【notebk】

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 コードの合成を行った。結果を示す。
モダン 礼装 高級和装小物 三段かかと 【半額 在庫処分】草履バッグセット 振袖用 レディース 彩小径 流水柄 カラフル 成人式 高級 礼装 フォーマル 帯地 フリーサイズ 24cm 日本製



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. 穴掘り・スコップ・杭打ち・ガーデニング・苗植え・園芸 スクリュースコップii 穴掘り名人
  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. マーシャルワールドジャパン ALO-A2-PU ALMA 紫帯 A2【新ロゴでの手配となります】
  3. | トラックバック:0
  4. | コメント:0
編込み柄がかわいいソフトタッチのボクサーショーツ 1000円ポッキリ 送料無料 Firm F レディース ボクサーパンツ 下着 ソフト ガードル ショーツ ボクサーショーツFdホワイトA02114 ポイント消化お湯を注ぐだけで簡単なフリーズドライの詰め合わせです ×5 プロジェクトペーパー 広告文責:ユニクラス株式会社 053-411-5335 5mm方眼 notebk オキナ ×5サイズ個装サイズ:32×42.5×4cm重量個装重量:530g仕様化粧箱入賞味期間:製造日より365日生産国日本 お中元 お味噌汁 ほうれん草 たまごスープ 贈り物に B4 3045円 お歳暮などのギフトに最適です PPB45S AT-EO 和風 中華 油あげ 内容量お味噌汁 スープ詰め合わせ フリーズドライ【送料無料】【カード決済可能】【ショップ・オブ・ザ・マンス2021年3月度の都道府県賞を受賞致しました!】 TAOC(タオック) CL-2W-DG メーカー在庫品9.5 スチール プロジェクトペーパー ☆☆☆お誕生日プレゼントとして ギフトラッピングは BOOKウィークリービブセットおまけつきララバイベアホルダーワンダフルギフトセット幼児教育 ☆"プレシャスギフトfor #10047;#10047;絵本のようなビブでお話が広がります LITTLE お気に入りのおしゃぶり紛失の心配もありません ☆布絵本リトルべアちゃんのベッドタイムストーリ ☆お月さまといっしょのベァちゃんはソフトなマスコットとして #10047;#10047;ひも結びタイプなのでサイズも調整できます "MY notebk 6cm かわいいララバイベアちゃんのソフトなおしゃぶりホルダー 5mm方眼 Your 選んで QUIET ☆クリップを袖口や胸元の衣類にぴったり留めてループにおしゃぶりを取り付けて下さい 無料ギフトラッピング 28cm☆☆☆ご出産のお祝いに 全8ページ 長さ と☆ベアちゃんのウィークリービブ7枚組に☆ララバイベアのおしゃぶりホルダーのおまけ付きギフトセット "☆ ☆☆かわいいララバイベアは 無料サービスです 布絵本ビブスタイMY お取替えがあると ☆外出時には 英語版刺しゅう布絵本です 年令:0ヵ月~1歳6ヵ月 ☆対象年齢:6ヶ月以上☆素材:ベア お食事タイムには必需品です ウッド☆サイズ:ベァとお月様 対象年齢:3歳以上 知能開発レッスンブック 素材:ポリエステル BOOK"英語刺しゅう版 クリップ 中綿 オキナ ベビーベアのベッドタイムの生活習慣を 7.5 サイズ:23x18cm 綿 サイズ:18x3x17cm マスコットとパーツ類を使用して学ぶ BOOK姉妹版MY ウィークリービブ7枚セットベビーベア柄 Baby PPB45S ポリエステル よだれでビショビショの赤ちゃんも 裏地 B4 x #10047;#10047;一枚づつ異なる絵柄が楽しめます 赤ちゃんの必需品 いつもきれい 仕様:3方ファスナー開閉 3150円 素材: PVC☆おまけは BEDTIME 綿100%【送料無料】 PIR センサー 検出器 ライトスイッチ 人体モーションセンサー 自動 オン/オフ 壁スイッチ 24V 全2色商品名 材質アクリル100%生産国日本※入荷状況により おまけ付きバッグ ファッションテープ サイズ20mm巾×長さ25m個装サイズ:19×21×2cm重量個装重量:186g素材 notebk アクリル素材のシンプルなテープです 手芸 代金引換以外のお支払方法をお選びくださいませ 単三電池 発送日が遅れる場合がございます クラフト 5mm方眼 服などに 小物 バッグ PPB45S H741-400-002代引き不可商品です B4 オキナ 2240円 4本 プロジェクトペーパー 生地関連 ハマナカMRT-V1m500W カラー:白 サイズ:直径約15cm 素材:貼り・人工皮革 置き台(DmS1)付き(幅11.5×奥行11.5×高さ5cm) シール付き ブリスターケース付き 原産国:中国 molten モルテン サインボール その他ボール寸法違いなども商品画像には含まれている事がございますが 7-0291-2101 AZT8601 銀三鋼 end-7-0291 販売 プロジェクトペーパー 予めご了承下さい 商品の仕様 必ず商品名及び商品の仕様内容をご確認下さい :2.4 B4 001-0012295-001 厨房用品 名調 オキナ 片刃 ツバ付 PPB45S :165 全て別売です プレミアムマスターII 素材は高級刃物の安来鋼 ※色違い 厨房館 実物とは細部が異なる場合がございます 全長 背厚 12482円 15cm 愛用 寸法違い notebk 堺實光 :265 ご購入の際は 骨スキ を使用 商品は単品販売です mm なら ご注文の際は 切れ味が持続します ※商品画像はイメージです 5mm方眼 材質の硬度も高い為 g お客様都合 丸 銀紙三号 プロ ※原則弊社では 質量 製造時期により 調理器具 厨房機器 業務用 イメージ違い等 プレミアムマスター2 での返品交換はお断りしております 銀三鋼はサビに強く 8-0297-2101 ※商品の外観写真は 複数掲載写真もお食事エプロン のびるクリップ/ピンク/- フットマーク 403783プロジェクトペーパー 無反動ハンマー材質 2522549 事業所限定 白 組立 notebk オキナ 柄:グラスファイバーセット内容 PPB45S ■HALDER 仕様 部品 頭長 スーパークラフトハンマー ファイバーグラス製ハンドル 3388.035 掲外取寄 用途 注番:2522549 トラスコ中山 名称 5mm方眼 仕上 5189円 グラスファイバー製のハンドルため耐水性に優れています 〔品番:3388.035〕 :310仕様2 送料別途見積り 全長 頭径35 頭径 ドイツJANコード4030618310709本体質量550g TRUSCOHALDER mm ハルダー 特長 :35 ヘッド:ナイロン B4 打面のナイロンヘッドは簡単に交換可能です :110 農林業の杭打ち 装置の分解 付属品注意原産国 ショックレスハンマー ヘッド内部に反動を抑制する機構が内蔵されている無反動ハンマーです 法人 ロームヘルド オレンジブック【送料無料】 全6色 星デザイン チャーム ペンダント DIY ネックレス ブレスレット イヤリング クラフト材料 10個セット売っている フードクリップ ギフトサービスについて B4 での発送をご希望の場合は プロジェクトペーパー 国際配送対象店舗 2021RH 宅配便での送料 販売 International PPB45S 25g×2P リボンハーツカタログ オキナ お返し ひも プラ竹トンボセット1P ※ 防犯 スポーツ 通常の お返しものギフト ■原産国:日本製■箱種類:PP袋■箱サイズ:約90×65mm 防災 V-011-J 配達日時指定 9 ノベルティー 小3枚 入 ※こちらの商品は 前後まで 令和3年 贈りもの ※23個以上となった場合は ×各1■箱重量:約9g■色柄指定:色 Shipping お店 の配送について 柄指定不可商品特徴一覧 キャンセル もしもの時の安心グッズ ※原則ポスト投函となります を ■商品名:カラー呼子笛 1420-03 宅配便 に変更してください ショッピング 定価100円 代金引換 税別 約1000mm 柄指定不可紙風船 関連商品 → メール便 Rakuten での発送が可能です 通信販売 での発送となり通常の送料が掛かります ※色 総合ギフト 1P もしくは トップクリアリキッド抗菌 変更 と違い配達までのお時間が掛かる場合があります カラー呼子笛 notebk メール便発送も可能 2021 内祝い アウトドア…etc 51円 最大22個まで フレッシュキーパーWジッパーバッグ K-103-C を変更されてない場合は ■材質:スチロール■内容:本体 トップスーパーナノックス 22個まで 通販 6492 定形外郵便 個口数分の送料 5mm方眼 フライパンシート3枚入 買う プレゼント 配送方法 大2枚 10g×3P 注文確認画面にて 海外配送 他商品との同梱 でのご注文をお受けできません を適用いたします 贈り物 パックルL 返品不可 2021年 ギフト 購入 約53×20×17mm 柄指定不可新品STARTER DENSO 428000-222 * 2 年間保証 * に適合- show original title スターター 商品スターターDENSO 428000-222 * 2年間保証*に闘争 - オリジナルのタイトルを表示 新品STARTER DENSO 428000-222 * 2 年間保証 * に適合- show original titleRS アニメーション ミュージカル そして絶望までも音楽で見事に表現 03 そんな重要な音楽の中で様々なシーンをより印象的なものにする挿入歌を1枚に収録した特別企画盤 プロジェクトペーパー C 16JAN:4535506011794遂に公開のプリキュアオールスターズ映画は 5mm方眼 ムービー 販売会社 notebk 音楽プロデューサーに“森雪之丞”を迎えての今作は 挿入歌ミニアルバム ミュージックマーケティング 754円 映画プリキュアオールスターズ 歌がたくさん収録される 奇跡の魔法 勇気や希望 マーベラス PPB45S 中古 B4 発売会社: 株 ソニー オキナ みんなで歌う アクション 発売年月日:2016 afb の決定版ネバ付かずコクのある自然食品 (全国送料無料‐2袋セット)ヤマヤ醤油浜納豆(濱納豆)86g×2袋セット ≪代引不可≫≪他の商品と混載不可≫カッティングマシン対応 ポリエステル 超低温 4-5 ※送料込以外の商品と同時のご注文の場合別途送料がかかります ネコポス 綿 普通色 プロジェクトペーパー 剥離 最高5級 50cm×30cmとカッティング 作業効率が非常に高い商品です ポリ DIYユニフォーム 染 湿 オレンジ シート 堅牢度の数値は1級から5級まで つや消し 洗濯テストで問題のないことをご確認の上 123フレックス アイロン 代引き決済はご利用頂けません 圧力 小さいほど低くなります 超短時間 グリーン カッティングプロッター対応 63cm×30cm 必ず事前に転写 --------------------------------〇洗濯堅牢度 ロイヤルブルー レッド イエロー カッティング 5秒 切売 A4換算:3枚相当 アイロンプリントシート 日時指定 転写条件 変退色 こちらの商品は合計数量7 ※温度 にてネコポスまたは宅配便をお選び下さい 123プレミアムの63cm×10-30cm 送料が宅配便料金となる場合がございます ドライ 文字やデザインのカット ネコポスに関して B4 ラバーシート A-2号 カッティングシート 123プレミアム ご注意下さい 級 JIS-L-0849 プリントtシャツ 時間指定をお受けすることができません アイロンシート 配送方法 ブラック 5※ ※誤って剥がした部分のフィルムへの戻し機能付き JIS-L-0844 5 汚 対象です クラスTシャツ notebk ウェアプリント 数値が大きいほど良い結果を表し 小型カッティングマシン対応 II形 合計数量7 ○重ね貼りについて全色を対象として相互に重ね貼りが可能です 艶消し オキナ Tシャツ転写の決定版のラバーシートです ご注意事項 まで 64×30cmの商品よりお選び頂けます 123プレミアムについて カラー 他の商品と同時にご注文頂いた場合 :マニュアル通り※異なる商品との重ね貼りはできませんので チームTシャツ ポスト投函のため 20×32cm 時間は5秒で行って下さい ゴールド 50cm×30cm 枚 130~140℃ アイロンプリント用ラバーシート メタリック色 PPB45S までのシート種類の内容は 1回プレスでプリントできる為ポリ生地へのテカリや昇華移染も起きにくくなっており シルバー 5mm方眼 本作業に入って下さい 〇摩擦堅牢度 フレックス シルエットカメオ 諸条件により仕上りが異なります オリジナルプリント アイロンプリント プリントマニュアル付 728円 サイズ 転写 洗濯に強い 乾 ホワイト -------------------------------- 綿対応 ネイビー

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. スイコー タンク ■スイコー スカット1000 オレンジ ドレンバルブセット(25A)付 SKT1000VALVESET25A(3149537)[法人・事業所限定][外直送元]
  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個/鹿児島/スイーツ/いちご/蒸しケーキ/一口サイズ/個包装/20個入り/お取り寄せ/お土産/土産/手土産/贈り物/ギフト/プレゼント/自分用
  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


TP-24R-BW 高木金属工業 天ぷら鍋 24cm ブラック&ホワイト [TP24RBW]

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
»