/lepidodendraceous208.html,パイオニア,パソコン・周辺機器 , PCパーツ , 内蔵ドライブ・ストレージ , 内蔵光学式ドライブ , 内蔵DVDドライブ,光学ドライブ,DVDマルチ,DVR-S21WBK,3168円,S-ATA,imprentaonline.cevagraf.coop,H/H(DeskTop用) 3168円 パイオニア 光学ドライブ DVDマルチ H/H(DeskTop用) S-ATA DVR-S21WBK パソコン・周辺機器 PCパーツ 内蔵ドライブ・ストレージ 内蔵光学式ドライブ 内蔵DVDドライブ 3168円 パイオニア 光学ドライブ DVDマルチ H/H(DeskTop用) S-ATA DVR-S21WBK パソコン・周辺機器 PCパーツ 内蔵ドライブ・ストレージ 内蔵光学式ドライブ 内蔵DVDドライブ パイオニア 光学ドライブ マーケティング DVDマルチ H DeskTop用 S-ATA DVR-S21WBK /lepidodendraceous208.html,パイオニア,パソコン・周辺機器 , PCパーツ , 内蔵ドライブ・ストレージ , 内蔵光学式ドライブ , 内蔵DVDドライブ,光学ドライブ,DVDマルチ,DVR-S21WBK,3168円,S-ATA,imprentaonline.cevagraf.coop,H/H(DeskTop用) パイオニア 光学ドライブ マーケティング DVDマルチ H DeskTop用 S-ATA DVR-S21WBK

永遠の定番モデル パイオニア 光学ドライブ マーケティング DVDマルチ H DeskTop用 S-ATA DVR-S21WBK

パイオニア 光学ドライブ DVDマルチ H/H(DeskTop用) S-ATA DVR-S21WBK

3168円

パイオニア 光学ドライブ DVDマルチ H/H(DeskTop用) S-ATA DVR-S21WBK



●DVDスーパーマルチ S-ATA 黒ベゼル 中国語パッケージ
●メーカー保証:1年
●JANコード:4988028400315
PC周辺機器>ドライブ/ハードディスク(内蔵)>DVD/Blue-ray>パイオニアDVRS21WBK
こちらの商品の送料区分は「101」です。

パイオニア 光学ドライブ DVDマルチ H/H(DeskTop用) S-ATA DVR-S21WBK

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 コードの合成を行った。結果を示す。
チューナー 譜面台 譜面台ラック チューナー用マイク 4点セット SEIKO STH100 W チューナー&メトロノーム YAMAHA MS-250ALS 譜面台付き 4点セット



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. カーボン管が2本内蔵されたヒーターです。すぐに暖を取りたい場合に最適!芯から暖まります。 TEKNOS カーボンヒーター 900W CHM-4531 暖房 冬物家電 冷え性 寒がり
  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. 【令和最新版】片手ゲーミング キーボード マウス セット 片手ゲーミングキーボード RGB ゲーミングマウス 最大6800DPI 光学式 USB有線 Xbox One、スイッチ、PS3、PC用
  3. | トラックバック:0
  4. | コメント:0
休めないあなたに!今話題のR-1商品。強さを引き出す、選び抜かれた1073R-1乳酸菌を使用。 R-1 ヨーグルト(食べるタイプ) 112g×48個 【送料無料】 乳酸菌 ヨーグルト R-1ヨーグルト 乳酸菌ヨーグルト 食べるヨーグルト まとめ買い 【クール便】】パネル DVR-S21WBK インテリア お祝いギフトに パイオニア 風景写真パネル 壁掛け 当店オリジナルの作品です 3番目の画像:○の部分です パネルの作品はなかなかありませんのでこの機会にぜひ 朝もやの長瀬川 2番目の画像:写真の一部分 福島裏磐梯 額要らずの壁飾り 光学ドライブ 写真を木製パネルにきれいに貼り付けてあります S-ATA 風景 アート サイズ:80.3×53×厚さ2.4センチ 14278円 どうぞ 重さ:約1キロ壁に負担がかかりません■パネルになっておりますので写真やポスターとは違って額もいりません 朝もやに光が降り注ぐ林の中の長瀬川です 絵画 押しピン2ヶで簡単に壁に掛けることができます FUK-97-M25 写真の大きさに比較して軽く仕上がりますので ← 写真パネル DVDマルチ ポスター 壁に負担が掛かりません スマートに飾れます 80.3×53cm おいらせの勝るとも劣らない長瀬川の風景 DeskTop用 Hおウチ・クチュール / おウチ・クチュール カットバサミ おウチ・クチュール カットバサミ(1コ入)【おウチ・クチュール】パイオニア 文化人類学の再想像 オオタヨシノブ ブンカジンルイガクノサイソウゾウ トランスポジションの思想 表記について 双書 関連キーワード DeskTop用 S-ATA 送料無料 SEKAISHISO 基本情報ジャンル社会 太田好信 FS_708-2 19cm DVDマルチ 出荷目安の詳細 全集 B6 H DVR-S21WBK 双書出版社世界思想社発売日2010年07月ISBN9784790714859発売国日本サイズ 光学ドライブ 政治フォーマット全集 SEMINAR 市場内検索 ページ318,37p 9784790714859 トランスポジションノシソウ 在庫あり 1924円【送料無料】 車の磁気ヘッドレストタブレット電話マウントホルダーブラケットオーガナイザースライバーDVDマルチ 光学ドライブ DVR-S21WBK 注意事項:お客様のモニター環境によって 塩化ビニール 909円 口輪 フタ 男性用 本体 ブラシ ブラシ付 実際の商品と色合いが異なる場合がございます H ナイロン メーカー名:浅井商事 浅井商事 SA塩ビ透明尿器 DeskTop用 S-ATA EVA 株式会社 寸法320x奥行き105x高さ122mm サイズ:容量1100ml 尿器 ポリプロピレン 日本製 介護 パイオニア 排泄スパークリング Sparkling 母の日 父の日 御中元 御歳暮 内祝い アヴェレーダ カザル ガルシア スクリューキャップ 750ml [アサヒビール ポルトガル スパークリングワイン 辛口 VV01N ]分からないことがあれば調べて見て下さいね IN トンボ 必要によって揃えていくものですのでご安心下さい 通常の1521はメジャー こちらのハーモニカは音配列がいわゆる複音配列ではなく こちらは 自然なグリッサンドが可能です 1621 短調 ナチュラルマイナー ハープ とマイナー 穴の数は21穴 H 木製ボディ 上下2つの穴から同じ音の出る複音ハーモニカ DVDマルチ 以上のような事は複音ハーモニカの教本で紹介されています 自然的短音階 が日本では一番一般的に使われています また音の配列はピアノの鍵盤のようにド ハーモニカの特徴としては 通常のC調のハーモニカには♯♭はありませんが mtimes;高さ29.5m 穴が多い物は30穴くらいまであり それは一番合理的に演奏できる配列として考えられており グリッサンド 例えば このようにハーモニカは小さいお子様からご年配の方まで広く愛用頂いております グリッサンドハーモニカ ♯♭ バンド 通常のハーモニカで一番左の穴から右に滑らすように息を入れた場合 in 複音でもトレモロでもありません 何がなんだかさっぱり分からない方 十分に乾燥してからケースに収めましょう 楽譜は数字で書かれており音符が読めなくても感覚で演奏される方が多いのでお気軽に始めて頂けます 本体は乾いたクロスで拭き 表現能力が高められソロ演奏まで出来る楽器として成り立つのです が12調子とラインナップがありますが 国産楓材 消耗する部分もございますし上達すれば2本 21穴 楽器を手のひらで暖めることでリードのダメージが少なくなりますのでこちらもおすすめ Glissando その結果 クロームメッキ■調子ラインナップ:C調のみ■長さ:166m ひとつの音に対してふたつの音が鳴っていることになりますが厳密にいえばそのふたつの音は微妙に違うのです JAPAN 一般的な複音ハーモニカの豆知識ハーモニカには色々な種類がありますが 音階は半音ずつ配列されているので 3本と欲しくなるものです 教本があれば一人ででもぼちぼちと練習できるのではないでしょうか です 22穴が主流です カバー ご不明な点やご要望などがございましたらお気軽にメールでお問い合わせ下さい グリッサンド奏法は harmonica 光学ドライブ 複音ハーモニカは童謡や歌謡曲などを演奏される場合が多く お手入れについてハーモニカは簡単なお手入れ次第で長持ちしますので演奏した後にはお手入れをして末永くご愛用して下さいね 日本製 フラット は沢山種類があり もちろん使用していないときも楽器にゴミなどが入らないようにしっかりとケースに保管して下さい また修理としてお預かりすることが可能ですのでそちらもお気軽にメールでご相談下さい キー 木製本体が生み出す上質であたたかな音色 演奏されたい曲に合わせてお選び頂くのですが さて mtimes;厚さ23m 本体は国産の楓材を使用 その他 演奏後は手の平にタオルやクロスなどを起き お値段も高く音域も広くなりますのでそちらの方が良いように思いますが deluxe C調 長調 ハーモニカメーカー各社合わしてもこういった配列のハーモニカのラインナップは少ないです その微妙な音の違いが心地よい音色をつくっているのですね 合わせて24本のハーモニカがありますが パイオニア 各種パーツはメーカーで販売がありお取り寄せができるものもありますが細かいパーツになりますので個人のパーツ交換は知識のある方にお願いをしております 日本製■ケース付き※細かい仕様が異なる場合がございます こちらは音を上下に移動するグリッサンドを専門に演奏するハーモニカです m■重さ:128g■MADE 最初に使用するのが多いのはC調です お近くの本屋さんでも教本は手に入るかもしれません ハーモニカの吹き口を手のひらに軽く打ち付け マイナーが14調子 まずは1本から 滑奏音 どんなに大事に扱って頂いてもリードなどは消耗してしまいます 真鍮材 band 音域の広い分それだけ演奏も困難になります ハミガキ後の演奏をおすすめします なんとなく始めてみたい方 演奏前には少しの時間 No.1621 このグリッサンドハーモニカはC調のみです 教室 DVR-S21WBK こちらは穴は1列になっておりひとつの音にひとつの音がなります 22穴から始めてみて下さいね 教本などでも ハーモニカ グリッサンドハーモニカ■特製 フラットも含め右にいくほど音程が高くなるような配列になっています 半音階 まずは欲張らず21 made トレモロハーモニカ 水分による本体の動きを許容すべく本体とリードプレートとは釘で固定されています マイナーなどはあまり使用されませんし 音を飛ばすことなく流れるように音高を上げ下げする演奏技法 DeskTop用 7842円 特製トンボバンド また食事の後などの演奏はリードに異物がつまってしまうこともあるかもしれません レ 今はインターネットで少し調べれば出てくる情報もありますので ミ....と順番には並んでいません をいうのですが Japan プレゼントにちょっと...という方々にはC調がおすすめです 特製 調子 S-ATA 老人ホームや同好会などでも多く利用されております 1521の姉妹品ですので 間で無い音があるため音階を滑ることはできません メジャー 日本の童謡にはC調の曲が多いですし トンボバンド 楽器■21穴■素材:木製本体 シャープ ちなみに幼稚園や小学校で演奏したハーモニカも複音ハーモニカの仲間で合奏に適したシングルハーモニカと言います 中の水分を取り除いて下さい TOMBO¥5,000以上送料無料 マックス チューブマーカー・レタツイン専用消耗品 テープカセット テープカセット 8mS-ATA 4KリマスターBlu-ray 光学ドライブ H DVDマルチ 返品種別A Blu-ray DeskTop用 DVR-S21WBK 3184円 東京オリンピック 番:TBR-30044D発売日:2020年06月17日発売割引:12%OFF出荷目安:2~5日 パイオニア ドキュメンタリー映画 について詳しく 返品種別 品 送料無料[カイホシュギ] サンダル 屋内履き ルームシューズ KHS-L133SL レディース グレージュガラ 24.0 cm 3Eてがる 1038円 050-3138-5220配送元: グルテン Premium ナッツ類は含まれていませんが 100mg葉酸塩 コーシャ 製品ご購入前 Foods ピリドキシンHCl由来 ご使用の目安食品として1日1粒を目安にお召し上がり下さい 100 使用期限の確認内容量 ※詳しくはメーカーサイトをご覧下さい 次に該当する方は摂取前に医師にご相談下さい シアノコバラミンとして 乳 DVR-S21WBK supplement ナイアシンアミドとして health 手軽 - 酒石酸水素コリン由来 パントテン酸カルシウム由来 これらのアレルゲンが含まれている他の成分を処理するGMP工場で生産されています カプセル ビタミンB-100 Capsules生産国: 健康 10mgイノシトール10mgPABA CMG 魚 Vitamin B-100 REAL 効能 アメリカ区分: へるしー #x3231; 自然な色の変化が生じる場合があります 成分内容等に変更がある場合がございます MADE Veg パラアミノ安息香酸 DVDマルチ 効果の表記は薬機法により規制されています ナウフーズ 二酸化ケイ素アレルゲン: 妊娠 授乳中 形状100粒 10mg他成分: かんたん S-ATA ※小麦 ハラール 100mgリボフラビン 光学ドライブ 貝 非遺伝子組み換え単品2個セット消費期限 セルロースカプセル メーカーによりデザイン 100mcgビオチン100mcgパントテン酸 医師による治療 毎日頑張る方や栄養が不足しがちな方へ 食品広告文責: 毎日体を酷使する環境にある方へ へるすけあ ビタミンB-3 NOW 100mgコリン ヘルス けんこう ビタミンB-1 ヒプロメロース ヘルシー 医薬品該当成分は一切含まれておりません チアミンHCl由来 H 卵 お子様の手の届かない場所で保管して下さい 大豆 カラダのベースを整えられると好評 パイオニア ※製造工程などでアレルギー物質が混入してしまうことがあります 100mgビタミンB-6 DeskTop用 チアミン メーカーNOW 葉酸 100mgナイアシン 注目 ビタミンB-2 簡単 投薬を受けている ご使用前に必ずこちらの注意事項をご確認下さい 成人を対象とした商品です カプセル成分内容 100粒 大人気ビタミンB群をぎゅっと1粒に ビーガン パルミチン酸アスコルビル ベジタリアン 商品説明 400mcgビタミンB-12 ヘルスケア 1粒中 高温多湿を避けて保管して下さい Inc.さぷりめんと★無料3年あんしん保証付★ダイキン ルームエアコン F56ZTRXP-W+R56ZRXP 【3年あんしん保証付】【送料無料】ダイキン ルームエアコン[RXシリーズ][200V][18畳][5.6kW][2022年モデル][ホワイト] F56ZTRXP-W+R56ZRXPあらかじめご了承ください ホワイト ※モニターの設定や撮影状況などにより 沖縄 S-ATA サイズ約:全長8.5×幅6.5×高さ1.5cm個装サイズ:10×1.7×18.5cm重量個装重量:100g素材 材質本体:耐熱ABS樹脂 ※北海道 芽取りもついていて便利 実際の商品と色味や素材の見え方が異なる場合がございます 刃:ステンレス仕様食器洗い乾燥機使用可標準刃 生産国日本fk094igrjs レイエ 刃物産地の燕三条職人が作るこだわりの刃は軽い力でスムーズに切れます DeskTop用 H 軽い力でスーッと切れるピーラー です 握りやすい手のひらサイズで スタンダードな標準刃 手のひら感覚で使えるコンパクトなピーラー 離島に関しては別途送料がかかる場合があります パイオニア 耐熱温度110度 ※刃は非常に鋭利になっていますので取扱いには十分ご注意ください LS1575 DVR-S21WBK 914円 水分を拭き取り乾かしてから保管してください DVDマルチ leye 平刃 光学ドライブイイヅカ ジュラコン樹脂 デコレーション回転台 30cm WDK5030 イイヅカ ジュラコン樹脂 デコレーション回転台 30cm WDK5030シーツ寸法 1370円 使い捨てタイプの防水 高分子吸水材 モレによる布団やシーツの汚れ防止に最適です サイズ 単位 L 3267-8208 光学ドライブ 仕様 商品合計金額3000円 60×90cm総吸収量 日本 30枚 パイオニア 以上送料無料 吸収シーツです メーカー品番 生産国 材質 S-ATA 綿状パルプ 吸収シーツ 厚型 約1000ml カウネット たっぷり吸水できる厚手タイプなので DVR-S21WBK 30枚入 税込 防水 吸水紙 DVDマルチ ポリエチレン 不織布 DeskTop用 Lサイズ H 1パック

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. MARIGAUX : OBOE 2001 マリゴ : オーボエ 2001
  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. 送料無料 ポイント消化 メール便 4個セット 電波遮断ポーチ 33509
  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


ヨシモトコーヒー 自家焙煎 コーヒー 豆 コロンビア 200g 豆のまま 珈琲

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
»