FC2カウンター 送料無料 税込 仏像 珍品種 彫像 ご本尊 仏様 如来部 大菩薩 大仏 巨大 約66cm 特大像 白毫相 頂髻相 偏袒右肩 合銅製 合金製 錆感 造物 造形美 工芸品 並行輸入品 送料無料 新品 ホビー

送料無料 税込 仏像 珍品種 彫像 ご本尊 仏様 如来部 大菩薩 大仏 巨大 約66cm 特大像 白毫相 頂髻相 偏袒右肩 合銅製 合金製 錆感 造物 造形美 工芸品 並行輸入品 送料無料 新品

送料無料 税込 仏像 珍品種 彫像 ご本尊 仏様 如来部 大菩薩 大仏 巨大 約66cm 特大像 白毫相 頂髻相 偏袒右肩 合銅製 合金製 錆感 造物 造形美 工芸品 並行輸入品 送料無料 新品

51810円

送料無料 税込 仏像 珍品種 彫像 ご本尊 仏様 如来部 大菩薩 大仏 巨大 約66cm 特大像 白毫相 頂髻相 偏袒右肩 合銅製 合金製 錆感 造物 造形美 工芸品 並行輸入品 送料無料 新品

送料無料 税込 仏像 珍品種 彫像 ご本尊 仏様 如来部 大菩薩 大仏 巨大 約66cm 特大像 白毫相 頂髻相 偏袒右肩 合銅製 合金製 錆感 造物 造形美 工芸品 並行輸入品 送料無料 新品:私たちの店内営業チームは、すべての顧客の個人的なニーズと予算を確実に理解し、技術を購入する際に最良の選択をするのを支援します。 ベビーグッズも大集合,2021高い素材,[正規販売店]送料無料 税込 仏像 珍品種 彫像 ご本尊 仏様 如来部 大菩薩 大仏 巨大 約66cm 特大像 白毫相 頂髻相 偏袒右肩 合銅製 合金製 錆感 造物 造形美 工芸品 並行輸入品 送料無料 新品
fc2ブログ

FPGAやCPLDの話題やFPGA用のツールの話題などです。 マニアックです。 日記も書きます。

FPGAの部屋

FPGAの部屋の有用と思われるコンテンツのまとめサイトを作りました。Xilinx ISEの初心者の方には、FPGAリテラシーおよびチュートリアルのページをお勧めいたします。






仏像・彫像・工芸

商品詳細

こんにちは。


数多くの商品の中、ご覧頂きまして有難うございます。


仏像 珍品種 彫像 ご本尊 仏様 如来部 大菩薩 大仏 巨大 約66cm 特大像になります。



注※本品は新品としてのお取り扱いですが、木製のくすみ具合、
青銅におけるワビサビ感、意図的な欠け具合、意図的な
剥げ具合、自然な色落ち具合等に個体差があり、一定の均一感
はございませんので、あらかじめご了承をお願いいたします。

注※本品は仏像を主としたお品であり、様々な説明書きの類に
関しましても、宗教等を推奨とした物ではございません。

※ご購入の際には、下記注意事項欄を閲覧していただき
参考、考慮としていただく事をお勧めいたします。


【商品説明】
本品は仏壇、仏間に崇めるご本尊として様々な場所に
置くことのできる仏像です。

仏像の一つ一つに添った意味合いや、お品にまるで真心
が宿るようなお品です。

また付属としてお仏壇や法具、仏具、経典(付属しておりません。)等と
ご一緒にお使いいただく事もお勧めです。

本品は大きさにおいて大小の関わりはなく、各々の判断に
おける使用目的に対して順応していただければと存じます。
(※下記用途仕様欄参照)


【本品仕様】
素材:合金質/銅製/合石質/他(一部材質不明品)
色:合金質/白石質/灰銅質
用途:仏壇飾/仏間飾/仏像信仰/ご本尊/安置骨董/奉り
  :奉仕/崇拝/拠り所/観賞/奉唱/平安/唱和/収集
  :高説/読経/参入/参殿/お堂入り/他多目的
※↑上記用途の文言に関しましても、宗教等を推奨、意識
する類ではございません。
髪型:螺髪
八十種好:耳輪垂成/瞑想眼
※三十二相を含みます。
姿勢:坐像
五印相:定印
坐像:吉祥座/半跏趺座/降魔座(どれかに該当)
坐像/倚座:無
臥像:無
持物:無
光背:無
光背/頭光:無
台座:大華座(近い該当の物です。)
台座神:無
規格:高さ:約42.2cm 幅:約28.6cm
  :厚み幅(奥行):約25.1cm
※台座込みの規格/尺寸です。
本体重量:約2.32kg
台座重量:約2.32kg(台座非分離式)
個数:仏像本体×1体



【注意事項】
注※本品は新品としてのお取り扱いですが、木製のくすみ具合、
青銅におけるワビサビ感、意図的な欠け具合、意図的な
剥げ具合、色落ち具合等に個体差があり、一定の均一感は
ございませんので、あらかじめご了承をお願いいたします。

注※本ページの説明書き/説明文の類は、当社調べによる
文言等であり、全ての真実を題材とした文面ではございません
ので、あらかじめご容赦下さいませ。

注※参拝や奉る等の行為にあたり、各個人における見解が
違う場合がございますので、設置場所、意味合い等、
各々における判断でなさいますようお願いいたします。

注※本品は仏像を主としたお品であり、説明書きの類に
関しましても、宗教等を推奨とした物ではございません。

注※本品は海外からのお取り寄せのお品も多く、出荷の
際に輸送等の状況にて箱や本品に痛み、歪みが生じる
場合がございますので、あらかじめご容赦下さいませ。
(検品段階において著しく欠損、破損が酷いと見受けられる
物は見定めさせていただきます。)

注※製造工程等において、手作業による製造作業も
多い為、在庫状況の有無に関わらずお取り寄せの期間が
通常2~3週間の範囲を超えてしまう場合がございますので、
あらかじめご容赦下さいませ。

注※製造工程等や材質確保等、手作業域において
一体一体に画像とは若干異なり、個体差が生じる場合が
ございますので、あらかじめご了承をお願いいたします。

注※本品は青銅製/真鍮製/木製/純木製/合金製ですが、
一部材質に化合質が加わる場合がございますので
何卒ご容赦下さいませ。
(美観を損なう、商品頻度劣化に問題有り、明らかな色の
偏り等の物は、できる限り見定めさせていただきます。)

注※全て手作業による手作り、ハンドメイドでは
ございませんが、それに近いお品もある為、中高額承り
となっております。

注※本品又は弊社の同一種類のお品の中には、国内生産
品等も現存している物がございますが、中には偶然性にて
希少となってしまう入手困難(生産中止、材質中止、
何らかの影響下における不備、不都合等)なケースに至る
場合がございますので、あらかじめご了承をお願いいたします。
(ケースバイケースの対応を備え、尽力し希少等の状況下に
おいても、精一杯お客様にお届けできますようできる限り
ご配慮いたします。)

注※本品が思ったよりも小さい等の実寸誤差に若干の違いは
ございますが、上記仕様説明欄に記載している規格を参考、
考慮してお間違えないようにご注文いただきますよう
宜しくお願いいたします。

※画像1枚目の本品以外に掲載している2枚目画像以降の他の
些細な物や、本品以外の他の物はイメージであって、
付属ではございません。

※本品はお使いのモニターにより色が違って見える場合や、
製造誤差により隙間や空白感、平行差に違いがある場合がございます。



万が一不備がありました際も誠心誠意対応させていただきます。


大事にして頂ける方、宜しくお願い致します。


初期不良に関しましてはご到着後8日以内はご対応させていただきます。



支払詳細

・お支払いはクレジット決済、マルチ決済、バンク決済、コンビニ決済、銀行振り込み(銀行)、後払い決済、代金引換がご利用いただけます。

発送詳細

・佐川急便、ゆうパック、ゆうメール、定形外での発送となります。(商品によってはご指定できない商品もございます。)
【備考欄にご希望書いていただければなるべく対応させていただきます。お受けできません場合もございますのでご理解くださいませ。】

・送料は
無料にて発送となります。

 
 (沖縄=別途送料500円、離島に関しましては別料金かかる場合がございます。ご確認下さい)



コメント

他にも書籍類、日用品、女性向け商品、レアな商品、話題商品など常に多数お取扱いさせていただいております。


 詳しくは下記をチェックしてご覧下さい。↓


※現在の商品リスト一覧をご覧下さい。




注意事項

・まれに返信が遅れる事がございますが、当日中の返信を心掛けております。
・返信が遅れる事があっても、必ず返信致します。
 迅速、丁寧な対応を心掛けております。
・日曜、祝日にご入金があった場合、発送は翌日になる可能性があります。
 当日集荷の便に間に合えば、原則は当日発送を心掛けております。


Vivado HLS, Vitis HLS の 2022 年問題にパッチを当てる

Vivado HLSリビジョンオーバーフロー問題のパッチの当て方”(参考にさせて頂きます)を見て Vivado HLS, Vitis HLS の 2022 年問題のパッチが出ていることに気がついたので、私もやってみることにした。

Vivado HLS, Vitis HLS の 2022 年問題については、”Vivado HLS, Vitis HLS で 2022 年問題発生”を参照のこと。

パッチは”Export IP Invalid Argument / Revision Number Overflow Issue (Y2K22)”にあった。
ファイル名は、y2k22_patch-1.2.zip だった。
HLS_problem_2022_7_220109.png


Ubuntu 18.04 LTS での Vitis HLS 2021.2 のパッチ
y2k22_patch-1.2.zip をダウンロードして展開した。
HLS_problem_2022_8_220109.png

展開された y2k22_patch ディレクトリを確認した。
HLS_problem_2022_9_220109.png

README ファイルを確認した。
パッチのやり方が書いてある。
HLS_problem_2022_10_220109.png

Vitis hLS 2021.2 にパッチを当てよう。
Vivado などのインストール・ディレクトリに移動して LD_LIBRARY_PATH 環境変数を設定して、パッチを当てた。
cd /media/masaaki/Ubuntu_Disk/tools/Xilinx/
export LD_LIBRARY_PATH=$PWD/Vivado/2021.2/tps/lnx64/python-3.8.3/lib/
Vivado/2021.2/tps/lnx64/python-3.8.3/bin/python3 y2k22_patch/patch.py

HLS_problem_2022_11_220109.png
HLS_problem_2022_12_220109.png

これでパッチが当たったはずなので、Vitis HLS 2021.2 を起動して、Export RTL を行ったところ成功した。
HLS_problem_2022_13_220109.png

solution1/impl ディレクトリに export.zip ができている。
HLS_problem_2022_14_220109.png

solution1/impl/ip ディレクトリにも IP が生成されていた。
HLS_problem_2022_20_220109.png


Windows11 のパッチ
Windows11 に y2k22_patch-1.2.zip をダウンロードして解凍した。
HLS_problem_2022_15_220109.png

Windows ターミナルを起動して、C:\Xilinx フォルダに移動した。
Vivado21.2\tps\win64\python-3.8.3\python.exe y2k22_patch\patch.py
を実行した。
HLS_problem_2022_16_220109.png

Vitis HLS 2021.2 を起動して Export RTL を実行したところ、Windows11 でも成功した。
HLS_problem_2022_17_220109.png

solution1/impl ディレクトリに export.zip ができている。
HLS_problem_2022_18_220109.png

solution1/impl/ip ディレクトリにも IP が生成されていた。
HLS_problem_2022_19_220109.png

(追加)
Linux の 2019.2 のパッチ・コマンドが間違っていました。正しくは、
Vivado/2019.2/tps/lnx64/python-2.7.5/bin/python2.7 y2k22_patch/patch.py
です。

Linux の 2020.1 のパッチ・コマンドも間違っていました。正しくは、
Vivado/2020.1/tps/lnx64/python-2.7.16/bin/python2.7 y2k22_patch/patch.py
です。

Linux の 2020.2 のパッチ・コマンドも間違っていました。正しくは、
Vivado/2020.2/tps/lnx64/python-3.8.3/bin/python3.8 y2k22_patch/patch.py
です。

Linux の 2020.3 のパッチ・コマンドはやってないですが、間違っているんじゃないでしょうか?
  1. 2022年01月09日 05:23 |
  2. Vitis HLS
  3. | トラックバック:0
  4. | コメント:0

Vitis HLS 2021.2 で AXI4-Lite インターフェースのクロックに別のクロックを指定する7

Vitis HLS 2021.2 で AXI4-Lite インターフェースのクロックに別のクロックを指定する6”の続き。

Vitis HLS 2021.2 で AXI4-Lite インターフェースのクロックに別のクロックを指定してみようということで、前回は、FCLK_CLK0 が 100 MHz 、FCLK_CLK1 が 50 MHz で再度やり直したところ、タイミング・エラーは発生しなかった。今回は、実際に動作するか?を調べてみよう。

ハードウェアをエクスポートした。
DMA_pow2_defclk_bd_wrapper.xsa ファイルが生成された。
AXI4-Lite_defclk_43_220107.png

Vivado の Tools メニューから Launch Vitis IDE を選択して、Vitis 2021.2 を起動する。
Vitis IDE Launcher が起動する。
vitis_work ディレクトリを作成して、Launch ボタンをクリックする。
AXI4-Lite_defclk_44_220107.png

Vitis 2021.2 が起動した。
AXI4-Lite_defclk_45_220107.png

Create Application Project をクリックして、DMA_pow2_defclk_test アプリケーション・プロジェクトを作成した。DMA_pow2_defclk_bd_wrapper プラットフォーム・プロジェクトも作成した。
AXI4-Lite_defclk_46_220108.png

DMA_pow2_defclk_test.c を作成した。
AXI4-Lite_defclk_47_220108.png

トンカチアイコンをクリックして、ビルドを行った。
DMA_pow2_defclk_test.elf ファイルが生成された。
AXI4-Lite_defclk_48_220108.png

Explorer で DMA_pow2_defclk_test_system を選択して、Run アイコンをクリックすると ZYBO Z7-20 がコンフィギュレーションされて、DMA_pow2_defclk_test.elf ファイルが実行された。
AXI4-Lite_defclk_49_220108.png

Tera Term に 2 乗したデータが表示された。成功だ。
AXI4-Lite_defclk_50_220108.png

結局、Vitis HLS 2021.2 の AXI4-Lite インターフェースのクロックを独自に生成する機能は、クロック載せ替えがされていないので、特定の周波数しか Vivado でのタイミングがメットしないようだ。今回は、IP 全体の動作周波数が 100 MHz で AXI4-Lite インターフェースが 50 MHz で動作確認した。
  1. 2022年01月09日 04:19 |
  2. Vitis HLS
  3. | トラックバック:0
  4. | コメント:0

Vitis HLS 2021.2 で AXI4-Lite インターフェースのクロックに別のクロックを指定する6

Vitis HLS 2021.2 で AXI4-Lite インターフェースのクロックに別のクロックを指定する5”の続き。

Vitis HLS 2021.2 で AXI4-Lite インターフェースのクロックに別のクロックを指定してみようということで、前回は、タイミング・エラーを検証して FCLK_CLK0 が 100 MHz 、FCLK_CLK1 が 75 MHz ではダメそうだということが分かった。今回は、FCLK_CLK0 が 100 MHz 、FCLK_CLK1 が 50 MHz で再度やり直してみよう。

DMA_pow2_defclk_bd ブロック・デザインを再度示す。
AXI4-Lite_defclk_26_220105.png

ブロック・デザインで processing_system7_0 をダブルクリックして設定画面を開く。
FCLK_CLK1 を 50 MHz に設定する。
AXI4-Lite_defclk_38_220107.png

これで、論理合成、インプリメンテーション、ビットストリームの生成を行ったところ、今度はタイミング・エラーが発生しなかった。
Project Summary を示す。
AXI4-Lite_defclk_39_220107.png

Open Implemented Design を開いた。
Inter-Clock Paths も問題ない。
AXI4-Lite_defclk_40_220107.png

Report CDC... をやってみた。
clk_fpga_0 to clk_fpga_1 を示す。
AXI4-Lite_defclk_41_220107.png

これは何も変わっていない。

clk_fpga_1 to clk_fpga_0 を示す。
AXI4-Lite_defclk_42_220107.png

こちらも変わっていない。
ニシキ GTE エグゼクティブテーブル ワイヤリングボックス 角型 W3200 D1200 H720A2JF670109 ミズノ(MIZUNO) ブレスサーモノンストレスパンツ 女性用 ブラック Lイクスピアリ(R)直営腕時計専門店 【メーカー保証期間終了以降も最初の電池交換無料】江戸之刻 現代式和時計 令和版 懐中仕様 鈍(にび)文字盤 クオーツ懐中時計フルラ 長財布 FURLA バビロン レディース フルラ 財布 FURLA BABYLON PCY2UNO B30 O60 ブラック壁面装飾で差を付けろ! 【店舗・イベント用品】【クリスマス】【モチーフライト】LEDチューブライト・ファニーツリー帝金 車止め カーストッパー TEIKIN テイキン Y83A-20【赤白】 横型スタンダード(スチールタイプ) φ76.3×t3.2 W2000×H800mm [※代引不可][個人宅送り不可]THE NORTH FACE ノースフェイス パープルレーベル 品番 NP2107N Mountain Field Jacket マウンテンフィールド ジャケット ベージュ サイズXL 正規品 A80/26750【中古】送料込 春夏 イタリア "RINASCIMENTO" リナシメント ボタニカル刺繍が綺麗なワンピース ホワイト系とピンク系 サイズSとM【当初23796】 【新着商品】 【最新着】
ニシキ CK ミーティングテーブル 棚付 W1800 D450 H700 CK-1845TM
A2MG8C0167 ミズノ(MIZUNO) ベルグテックEXストームセイバーVI レインスーツ 女性用 クローバー L
誘電性・独立気泡ポリエチレンフォーム静電気対策 衝撃吸収 静電気から守る LCX-150M 20mm厚 1000mm×2000mm
マイケルコース アウトレット 2つ折り財布 Michael Kors レディース マイケルコース 財布 アウトレット 二つ折り Michael Kors 35F8GTVW0L レッド
風雅な掛軸多当! 【直送品・代引き不可】【保育園・学校用紙及び器材】書道用品/三ツ折掛軸多当/265×830mm・25枚
床点検口 エクステリア フロアハッチ ファースト ステンレス フロアーハッチ モルタル用歩道用 FM-600 蓋寸W600×D600mm【※代引不可】
こだわりの逸品をお探しの方必見★名古屋に「CLOSER」の店舗を構えております!はまだ始めたばかりですがよろしくお願いします! CANADA GOOSE カナダグース 9513M ERICKSON PARKA エリクソンパーカー ダウン ブルー サイズXS 正規品 A80/24363【中古】
送料込 秋冬 【合わせ買い対象】OUTLET フランス "Oliver Philips" バイヤーIKUKOお薦め! 印象派の風景画プリントが綺麗なニット ワンピース サイズ36と38と40【当初26389】
ニシキ GTE エグゼクティブテーブル ワイヤリングボックス 角型 W3200 D1200 H720A2JF670109 ミズノ(MIZUNO) ブレスサーモノンストレスパンツ 女性用 ブラック Lイクスピアリ(R)直営腕時計専門店 【メーカー保証期間終了以降も最初の電池交換無料】江戸之刻 現代式和時計 令和版 懐中仕様 鈍(にび)文字盤 クオーツ懐中時計フルラ 長財布 FURLA バビロン レディース フルラ 財布 FURLA BABYLON PCY2UNO B30 O60 ブラック壁面装飾で差を付けろ! 【店舗・イベント用品】【クリスマス】【モチーフライト】LEDチューブライト・ファニーツリー帝金 車止め カーストッパー TEIKIN テイキン Y83A-20【赤白】 横型スタンダード(スチールタイプ) φ76.3×t3.2 W2000×H800mm [※代引不可][個人宅送り不可]THE NORTH FACE ノースフェイス パープルレーベル 品番 NP2107N Mountain Field Jacket マウンテンフィールド ジャケット ベージュ サイズXL 正規品 A80/26750【中古】送料込 春夏 イタリア "RINASCIMENTO" リナシメント ボタニカル刺繍が綺麗なワンピース ホワイト系とピンク系 サイズSとM【当初23796】 【新着商品】 【最新着】
ニシキ CK ミーティングテーブル 棚付 W1800 D450 H700 CK-1845TM
A2MG8C0167 ミズノ(MIZUNO) ベルグテックEXストームセイバーVI レインスーツ 女性用 クローバー L
誘電性・独立気泡ポリエチレンフォーム静電気対策 衝撃吸収 静電気から守る LCX-150M 20mm厚 1000mm×2000mm
マイケルコース アウトレット 2つ折り財布 Michael Kors レディース マイケルコース 財布 アウトレット 二つ折り Michael Kors 35F8GTVW0L レッド
風雅な掛軸多当! 【直送品・代引き不可】【保育園・学校用紙及び器材】書道用品/三ツ折掛軸多当/265×830mm・25枚
床点検口 エクステリア フロアハッチ ファースト ステンレス フロアーハッチ モルタル用歩道用 FM-600 蓋寸W600×D600mm【※代引不可】
こだわりの逸品をお探しの方必見★名古屋に「CLOSER」の店舗を構えております!はまだ始めたばかりですがよろしくお願いします! CANADA GOOSE カナダグース 9513M ERICKSON PARKA エリクソンパーカー ダウン ブルー サイズXS 正規品 A80/24363【中古】
送料込 秋冬 【合わせ買い対象】OUTLET フランス "Oliver Philips" バイヤーIKUKOお薦め! 印象派の風景画プリントが綺麗なニット ワンピース サイズ36と38と40【当初26389】
  1. 2022年01月08日 04:25 |
  2. Vitis HLS
  3. | トラックバック:0
  4. | コメント:0

Vitis HLS 2021.2 で AXI4-Lite インターフェースのクロックに別のクロックを指定する5

Vitis HLS 2021.2 で AXI4-Lite インターフェースのクロックに別のクロックを指定する4”の続き。

itis HLS 2021.2 で AXI4-Lite インターフェースのクロックに別のクロックを指定してみようということで、前回は、前回 IP を作成できたので、Vivado 2021.2 でプロジェクトを作成し、作成した DMP_pow2_defclk IP を使用して、ブロック・デザインを作成した。そして、論理合成、インプリメンテーション、ビットストリームの生成を行ったが、タイミングでエラーになった。今回は、タイミング・エラーを検証する。

Vivado 2021.2 GUI の Flow Navigator から IMPLEMENTATION -> Open Implemented Design をクリックして起動した。
AXI4-Lite_defclk_29_220106.png

Inter-Clock Paths の”clk_fpga_0 to clk_fpga_1”と”clk_fpga_1 to clk_fpga_0”にエラーが出ている。

”clk_fpga_0 to clk_fpga_1”のエラーを見た。
AXI4-Lite_defclk_30_220106.png

”clk_fpga_1 to clk_fpga_0”のエラーを見た。
AXI4-Lite_defclk_31_220106.png

Clock Domain Crossing のレポートを見てみよう。
Vivado の Reports メニューから Timing -> Report CDC... を選択する。
Report CDC ダイアログが開く。
Clocks の From に clk_fpga_0 を To に clk_fpga_1 を入れて OK ボタンをクリックした。
AXI4-Lite_defclk_32_220106.png

Endpoint は 37 個, Unsafe は 0 個だった。 Unknown は 5 個ある。
AXI4-Lite_defclk_33_220106.png

CDC Details の”clk_fpga_0 to clk_fpga_1”をクリックした。
AXI4-Lite_defclk_34_220106.png

CDC-1 と CDC-15 が出ている。
Vivado Design Suite ユーザー ガイド デザイ ン解析およびク ロージ ャテクニック UG906 (v2018.2) 2018 年 6 月 6 日”の 76 ページの”表 2‐3: CDC ルールおよび説明”によると CDC-1 は

1 ビッ ト CDC CDC-1 クリティカル 1 ビッ ト CDC パスが、 同期化されていないか、 または不明の CDC 回路を含みます。


CDC-15 は

CE 制御の CDC CDC-15 警告 ク ロ ッ ク イネーブルで制御された CDC。

だそうだ。
やはり、ダメっぽい?

次に”clk_fpga_1 to clk_fpga_0”のパスの CDC を見てみよう。
AXI4-Lite_defclk_35_220106.png

こちらは Endpoints が 232 個で、Unknonwn がやはり、232 個になっている。
AXI4-Lite_defclk_36_220106.png

CDC Details の”clk_fpga_1 to clk_fpga_0”をクリックした。
AXI4-Lite_defclk_37_220106.png

全部 CDC-1 だけだった。
これはあまり良くないか。。。
もう一度 AXI4-Lite のクロックを 50 MHz でやってみよう。
  1. 2022年01月07日 04:32 |
  2. Vitis HLS
  3. | トラックバック:0
  4. | コメント:0

Vitis HLS 2021.2 で AXI4-Lite インターフェースのクロックに別のクロックを指定する4

Vitis HLS 2021.2 で AXI4-Lite インターフェースのクロックに別のクロックを指定する3”の続き。

Vitis HLS 2021.2 で AXI4-Lite インターフェースのクロックに別のクロックを指定してみようということで、前回は、 C コードの合成の AXI4 Master のアドレス幅が 64 ビットになっていたので、32 ビットに変更し、もう一度 C コードの合成と Export RTL をやり直した。更に C/RTL 協調シミュレーションも Dump Trace の設定を port にしたら成功した。今回は、前回 IP を作成できたので、Vivado 2021.2 でプロジェクトを作成し、作成した DMP_pow2_defclk IP を使用して、ブロック・デザインを作成した。そして、論理合成、インプリメンテーション、ビットストリームの生成を行ったが、タイミングでエラーになった。

Vivado 2021.2 で ZYBO Z7-20 用の DMA_pow2_defclk_test プロジェクトを作成した。
AXI4-Lite_defclk_16_220105.png

IP Catalog に Dma_pow2 IP を登録した。
AXI4-Lite_defclk_17_220105.png

DMA_pow2_defclk_bd ブロック・デザインを作成した。
ZYNQ7 Processing System を Add IP した。
Run Block Automation を行った状態だ。
AXI4-Lite_defclk_18_220105.png

ZYNQ7 Processing System を ダブルクリックして設定画面を開く。
FCLK_CLK0 を 100 MHz に設定した。これは、DMA _pow2 IP の AXI4 Master インターフェースのクロックとする。
FCLK_CLK1 を 75 MHz に設定した。これは、DMA_pow2 IP の AXI4-Lite インターフェースのクロックとする。Vitis HLS の C/RTL 協調シミュレーションのクロックは 50 MHz だったが Vivado でタイミング・エラーがでるかどうか?見るために 75 MHz に設定した。
AXI4-Lite_defclk_19_220105.png

DMA_pow2 を Add IP した。
AXI4-Lite_defclk_20_220105.png

Run Connection Automation で s_axi_control のクロックを FCLK_CLK1 ( 76 MHz ) に設定した。
AXI4-Lite_defclk_21_220105.png

配線が行われた。
AXI4-Lite_defclk_22_220105.png

Run Connection Automation が表示されないかと思っていたら、 ZYNQ7 Processing System に HP Slave AXI interface を追加するのを忘れていた。
ZYNQ7 Processing System をダブルクリックして、設定画面を開く。
PS-PL Configuration をクリックして、HP Slave AXI interface を展開し、S AXI HP0 interface の Select ボックスにチェックを入れた。
AXI4-Lite_defclk_23_220105.png

Run Connection Automation が表示された。
AXI4-Lite_defclk_24_220105.png

Run Connection Automation をクリックした。
S_AXI_HP0 を FCLK_CLK0 ( 100 MHz ) に接続した。
AXI4-Lite_defclk_25_220105.png

ブロック・デザインが完成した。
AXI4-Lite_defclk_26_220105.png

Create HDL Wrapper... でトップの Verilog HDL ファイル DMA_pow2_defclk_bd_wrapper.v を作成した。
AXI4-Lite_defclk_27_220105.png

Flow Navigator の PROGRAM AND DEBUG から Generate Bitstream をクリックして、論理合成、インプリメンテーション、ビットストリームの生成を行った。
Project Summary を示す。
AXI4-Lite_defclk_28_220106.png

タイミング・エラーが出ている。
  1. 2022年01月06日 04:25 |
  2. Vitis HLS
  3. | トラックバック:0
  4. | コメント:0

Vitis HLS 2021.2 で AXI4-Lite インターフェースのクロックに別のクロックを指定する3

Vitis HLS 2021.2 で AXI4-Lite インターフェースのクロックに別のクロックを指定する2”の続き。

Vitis HLS 2021.2 で AXI4-Lite インターフェースのクロックに別のクロックを指定してみようということで、前回は、C コードの合成と C/RTL 協調シミュレーションを行ったが、C/RTL 協調シミュレーションがエラーで停止してしまった。Export RTL と Implementation は Vitis HLS 2022 年問題が出てしまった。今回は、前回の C コードの合成の AXI4 Master のアドレス幅が 64 ビットになっていたので、32 ビットに変更し、もう一度 C コードの合成と Export RTL をやり直した。更に C/RTL 協調シミュレーションも Dump Trace の設定を port にしたら成功した。

前回の C コードの合成の AXI4 Master のアドレス幅が 64 ビットになっていたので、32 ビットに変更しよう。
Vitis HLS 2021.2 の Solution メニューから Solution Settings... を選択する。
Solution Settings (solutiojn1) ダイアログが開く。
config_interface を展開して、 m_axi_addr64 の Value のチェックボックスのチェックをクリックして外す。
AXI4-Lite_defclk_8_220105.png

これで、もう一度 C コードの合成を行った。
HW interface -> M_AXI -> m_axi_gmem の Address Width が 32 ビットになった。
AXI4-Lite_defclk_9_220105.png

C/RTL 協調シミュレーションを行う時に、Co-Simulation ダイアログで Dump Trace を port に設定した。(前回は、all に設定してエラーになった)
AXI4-Lite_defclk_11_220105.png

C/RTL 協調シミュレーションが成功した。
AXI4-Lite_defclk_12_220105.png

C/RTL 協調シミュレーションの波形を示す。
ap_clk は 10 ns つまり 100 MHz になっている。
AXI4-Lite_defclk_13_220105.png

axi4l_clk は 20 ns つまり、50 MHz だった。
AXI4-Lite_defclk_14_220105.png

Export RTL を行うと、 Vitis HLS 2022 年問題でエラーになった。
AXI4-Lite_defclk_10_220105.png

Vivado HLS, Vitis HLS で 2022 年問題発生”でエラーを回避して、 IP 化することができた。
AXI4-Lite_defclk_15_220105.png
  1. 2022年01月05日 04:37 |
  2. Vitis HLS
  3. | トラックバック:0
  4. | コメント:0

Vitis HLS 2021.2 で AXI4-Lite インターフェースのクロックに別のクロックを指定する2

Vitis HLS 2021.2 で AXI4-Lite インターフェースのクロックに別のクロックを指定する”の続き。

Vitis HLS 2021.2 で AXI4-Lite インターフェースのクロックに別のクロックを指定してみようということで、前回は、Vitis HLS 2021.2 のプロジェクトを作成し、C シミュレーションを行った。今回は、C コードの合成と C/RTL 協調シミュレーションを行ったが、C/RTL 協調シミュレーションがエラーで停止してしまった。Export RTL と Implementation は Vitis HLS 2022 年問題が出てしまった。

最初に C コードの合成を行った。
AXI4-Lite_defclk_3_220103.png

特段変わったことはない。
合成結果の DMA_pow2.v を見ると、クロックが ap_clk と axi4l_clk と 2 つある。リセットも ap_rst_n と ap_rst_n_axi4l_clk と 2 つある。
AXI4-Lite_defclk_5_220103.png
AXI4-Lite_defclk_6_220103.png

AXI4-Lite インターフェースを司る DMA_pow2_control_s_axi.v を見ると ACLK と clk の 2 つのクロックがある。
ACLK がAXI4-Lite インターフェースのクロックで、 clk が内部クロックだ。
AXI4-Lite_defclk_7_220103.png

Verilog HDL ソースコードを見るとクロック載せ替えには注意が払われていないように見える?

C/RTL 協調シミュレーションを行ったが信号が無いと言われてエラーだった。
AXI4-Lite_defclk_4_220103.png

## add_wave /apatb_DMA_pow2_top/m_axi_gmem_BUSER -into $wdata_group -radix hex
ERROR: [Wavedata 42-471] Note: Nothing was found for the following items: /apatb_DMA_pow2_top/m_axi_gmem_BUSER 
ERROR: [Common 17-39] 'add_wave' failed due to earlier errors.

    while executing
"add_wave /apatb_DMA_pow2_top/m_axi_gmem_BUSER -into $wdata_group -radix hex"
    (file "DMA_pow2.tcl" line 103)



Export RTL と Implementation は Vitis HLS 2022 年問題が出てしまった。

最後に AXI4-Lite インターフェースを司る DMA_pow2_control_s_axi.v を貼っておく。

// ==============================================================
// Vitis HLS - High-Level Synthesis from C, C++ and OpenCL v2021.2 (64-bit)
// Copyright 1986-2021 Xilinx, Inc. All Rights Reserved.
// ==============================================================
`timescale 1ns/1ps
module DMA_pow2_control_s_axi
#(parameter
    C_S_AXI_ADDR_WIDTH = 6,
    C_S_AXI_DATA_WIDTH = 32
)(
    input  wire                          ACLK,
    input  wire                          ARESET,
    input  wire                          ACLK_EN,
    input  wire [C_S_AXI_ADDR_WIDTH-1:0] AWADDR,
    input  wire                          AWVALID,
    output wire                          AWREADY,
    input  wire [C_S_AXI_DATA_WIDTH-1:0] WDATA,
    input  wire [C_S_AXI_DATA_WIDTH/8-1:0] WSTRB,
    input  wire                          WVALID,
    output wire                          WREADY,
    output wire [1:0]                    BRESP,
    output wire                          BVALID,
    input  wire                          BREADY,
    input  wire [C_S_AXI_ADDR_WIDTH-1:0] ARADDR,
    input  wire                          ARVALID,
    output wire                          ARREADY,
    output wire [C_S_AXI_DATA_WIDTH-1:0] RDATA,
    output wire [1:0]                    RRESP,
    output wire                          RVALID,
    input  wire                          RREADY,
    output wire                          interrupt,
    input  wire                          clk,
    input  wire                          rst,
    output wire                          ap_start,
    input  wire                          ap_done,
    input  wire                          ap_ready,
    input  wire                          ap_idle,
    input  wire [31:0]                   ap_return,
    output wire [63:0]                   in_r,
    output wire [63:0]                   out_r,
    input  wire [0:0]                    ap_local_deadlock
);
//------------------------Address Info-------------------
// 0x00 : Control signals
//        bit 0  - ap_start (Read/Write/COH)
//        bit 1  - ap_done (Read/COR)
//        bit 2  - ap_idle (Read)
//        bit 3  - ap_ready (Read/COR)
//        bit 7  - auto_restart (Read/Write)
//        others - reserved
// 0x04 : Global Interrupt Enable Register
//        bit 0  - Global Interrupt Enable (Read/Write)
//        others - reserved
// 0x08 : IP Interrupt Enable Register (Read/Write)
//        bit 0 - enable ap_done interrupt (Read/Write)
//        bit 1 - enable ap_ready interrupt (Read/Write)
//        bit 5 - enable ap_local_deadlock interrupt (Read/Write)
//        others - reserved
// 0x0c : IP Interrupt Status Register (Read/TOW)
//        bit 0 - ap_done (COR/TOW)
//        bit 1 - ap_ready (COR/TOW)
//        bit 5 - ap_local_deadlock (COR/TOW)
//        others - reserved
// 0x10 : Data signal of ap_return
//        bit 31~0 - ap_return[31:0] (Read)
// 0x18 : Data signal of in_r
//        bit 31~0 - in_r[31:0] (Read/Write)
// 0x1c : Data signal of in_r
//        bit 31~0 - in_r[63:32] (Read/Write)
// 0x20 : reserved
// 0x24 : Data signal of out_r
//        bit 31~0 - out_r[31:0] (Read/Write)
// 0x28 : Data signal of out_r
//        bit 31~0 - out_r[63:32] (Read/Write)
// 0x2c : reserved
// (SC = Self Clear, COR = Clear on Read, TOW = Toggle on Write, COH = Clear on Handshake)

//------------------------Parameter----------------------
localparam
    ADDR_AP_CTRL      = 6'h00,
    ADDR_GIE          = 6'h04,
    ADDR_IER          = 6'h08,
    ADDR_ISR          = 6'h0c,
    ADDR_AP_RETURN_0  = 6'h10,
    ADDR_IN_R_DATA_0  = 6'h18,
    ADDR_IN_R_DATA_1  = 6'h1c,
    ADDR_IN_R_CTRL    = 6'h20,
    ADDR_OUT_R_DATA_0 = 6'h24,
    ADDR_OUT_R_DATA_1 = 6'h28,
    ADDR_OUT_R_CTRL   = 6'h2c,
    WRIDLE            = 2'd0,
    WRDATA            = 2'd1,
    WRRESP            = 2'd2,
    WRRESET           = 2'd3,
    RDIDLE            = 2'd0,
    RDDATA            = 2'd1,
    RDRESET           = 2'd2,
    ADDR_BITS                = 6;

//------------------------Local signal-------------------
    reg  [1:0]                    wstate = WRRESET;
    reg  [1:0]                    wnext;
    reg  [ADDR_BITS-1:0]          waddr;
    wire [C_S_AXI_DATA_WIDTH-1:0] wmask;
    wire                          aw_hs;
    wire                          w_hs;
    reg  [1:0]                    rstate = RDRESET;
    reg  [1:0]                    rnext;
    reg  [C_S_AXI_DATA_WIDTH-1:0] rdata;
    wire                          ar_hs;
    wire [ADDR_BITS-1:0]          raddr;
    // internal registers
    reg                           int_ap_idle;
    reg                           int_ap_ready = 1'b0;
    reg                           int_ap_done = 1'b0;
    wire                          ap_done_get;
    reg                           ap_done_ext;
    reg                           int_ap_start = 1'b0;
    wire                          ap_start_set;
    reg                           ap_start_mask;
    reg                           int_auto_restart = 1'b0;
    wire                          auto_restart_set;
    reg                           int_gie = 1'b0;
    reg  [5:0]                    int_ier = 6'b0;
    wire                          ier_toggle;
    reg                           ier_mask;
    reg  [5:0]                    int_isr = 6'b0;
    wire                          isr_toggle;
    reg                           isr_mask;
    reg  [31:0]                   int_ap_return;
    reg  [63:0]                   int_in_r = 'b0;
    reg  [63:0]                   int_out_r = 'b0;

//------------------------Instantiation------------------


//------------------------AXI write fsm------------------
assign AWREADY = (wstate == WRIDLE);
assign WREADY  = (wstate == WRDATA);
assign BRESP   = 2'b00;  // OKAY
assign BVALID  = (wstate == WRRESP);
assign wmask   = { {8{WSTRB[3]}}, {8{WSTRB[2]}}, {8{WSTRB[1]}}, {8{WSTRB[0]}} };
assign aw_hs   = AWVALID & AWREADY;
assign w_hs    = WVALID & WREADY;

// wstate
always @(posedge ACLK) begin
    if (ARESET)
        wstate <= WRRESET;
    else if (ACLK_EN)
        wstate <= wnext;
end

// wnext
always @(*) begin
    case (wstate)
        WRIDLE:
            if (AWVALID)
                wnext = WRDATA;
            else
                wnext = WRIDLE;
        WRDATA:
            if (WVALID)
                wnext = WRRESP;
            else
                wnext = WRDATA;
        WRRESP:
            if (BREADY)
                wnext = WRIDLE;
            else
                wnext = WRRESP;
        default:
            wnext = WRIDLE;
    endcase
end

// waddr
always @(posedge ACLK) begin
    if (ACLK_EN) begin
        if (aw_hs)
            waddr <= AWADDR[ADDR_BITS-1:0];
    end
end

//------------------------AXI read fsm-------------------
assign ARREADY = (rstate == RDIDLE);
assign RDATA   = rdata;
assign RRESP   = 2'b00;  // OKAY
assign RVALID  = (rstate == RDDATA);
assign ar_hs   = ARVALID & ARREADY;
assign raddr   = ARADDR[ADDR_BITS-1:0];

// rstate
always @(posedge ACLK) begin
    if (ARESET)
        rstate <= RDRESET;
    else if (ACLK_EN)
        rstate <= rnext;
end

// rnext
always @(*) begin
    case (rstate)
        RDIDLE:
            if (ARVALID)
                rnext = RDDATA;
            else
                rnext = RDIDLE;
        RDDATA:
            if (RREADY & RVALID)
                rnext = RDIDLE;
            else
                rnext = RDDATA;
        default:
            rnext = RDIDLE;
    endcase
end

// rdata
always @(posedge ACLK) begin
    if (ACLK_EN) begin
        if (ar_hs) begin
            rdata <= 'b0;
            case (raddr)
                ADDR_AP_CTRL: begin
                    rdata[0] <= int_ap_start;
                    rdata[1] <= int_ap_done;
                    rdata[2] <= int_ap_idle;
                    rdata[3] <= int_ap_ready;
                    rdata[7] <= int_auto_restart;
                end
                ADDR_GIE: begin
                    rdata <= int_gie;
                end
                ADDR_IER: begin
                    rdata <= int_ier;
                end
                ADDR_ISR: begin
                    rdata <= int_isr;
                end
                ADDR_AP_RETURN_0: begin
                    rdata <= int_ap_return[31:0];
                end
                ADDR_IN_R_DATA_0: begin
                    rdata <= int_in_r[31:0];
                end
                ADDR_IN_R_DATA_1: begin
                    rdata <= int_in_r[63:32];
                end
                ADDR_OUT_R_DATA_0: begin
                    rdata <= int_out_r[31:0];
                end
                ADDR_OUT_R_DATA_1: begin
                    rdata <= int_out_r[63:32];
                end
            endcase
        end
    end
end


//------------------------Register logic-----------------
assign interrupt        = int_gie & (|int_isr);
assign ap_start         = int_ap_start;
assign ap_start_set     = w_hs && waddr == ADDR_AP_CTRL && WSTRB[0] && WDATA[0];
assign ap_done_get      = ar_hs && raddr == ADDR_AP_CTRL && int_ap_done;
assign auto_restart_set = w_hs && waddr == ADDR_AP_CTRL && WSTRB[0];
assign isr_toggle       = w_hs && waddr == ADDR_ISR && WSTRB[0];
assign in_r             = int_in_r;
assign out_r            = int_out_r;
// ap_start_mask
always @(posedge clk) begin
    if (rst)
        ap_start_mask <= 1'b0;
    else
        ap_start_mask <= ap_start_set;
end
// int_ap_start
always @(posedge clk) begin
    if (rst)
        int_ap_start <= 1'b0;
    else if (ap_start_set == 1'b1 && ap_start_mask == 1'b0)
        int_ap_start <= 1'b1;
    else if (ap_ready)
        int_ap_start <= int_auto_restart; // clear on handshake/auto restart
end
// ap_done_ext
always @(posedge clk) begin
    if (rst)
        ap_done_ext <= 1'b0;
    else
        ap_done_ext <= ap_done_get;
end
// int_ap_done
always @(posedge clk) begin
    if (rst)
        int_ap_done <= 1'b0;
    else if (ap_done)
        int_ap_done <= 1'b1;
    else if (ap_done_get == 1'b0 && ap_done_ext == 1'b1)
        int_ap_done <= 1'b0; // clear on read
end
// int_ap_idle
always @(posedge clk) begin
    if (rst)
        int_ap_idle <= 1'b0;
    else
        int_ap_idle <= ap_idle;
end
// int_ap_ready
always @(posedge clk) begin
    if (rst)
        int_ap_ready <= 1'b0;
    else
        int_ap_ready <= ap_ready;
end
// int_auto_restart
always @(posedge clk) begin
    if (rst)
        int_auto_restart <= 1'b0;
    else if (auto_restart_set == 1'b1)
        int_auto_restart <=  WDATA[7];
end
// int_gie
always @(posedge clk) begin
    if (rst)
        int_gie <= 1'b0;
    else if (w_hs && waddr == ADDR_GIE && WSTRB[0])
        int_gie <= WDATA[0];
end
// int_ier
always @(posedge clk) begin
    if (rst)
        int_ier <= 'b0;
    else if (w_hs && waddr == ADDR_IER && WSTRB[0])
        int_ier <= WDATA[5:0];
    else if (w_hs && waddr == ADDR_IER && WSTRB[0])
        int_ier <= WDATA[5:0];
end
// isr_mask
always @(posedge clk) begin
    if (rst)
        isr_mask <= 1'b0;
    else
        isr_mask <= isr_toggle;
end
// int_isr[0]
always @(posedge clk) begin
    if (rst)
        int_isr[0] <= 1'b0;
    else if (int_ier[0] & ap_done)
        int_isr[0] <= 1'b1;
    else if (isr_toggle == 1'b1 && isr_mask == 1'b0)
        int_isr[0] <= int_isr[0] ^ WDATA[0]; // toggle on write
end
// int_isr[1]
always @(posedge clk) begin
    if (rst)
        int_isr[1] <= 1'b0;
    else if (int_ier[1] & ap_ready)
        int_isr[1] <= 1'b1;
    else if (isr_toggle == 1'b1 && isr_mask == 1'b0)
        int_isr[1] <= int_isr[1] ^ WDATA[1]; // toggle on write
end
// int_isr[5]
always @(posedge clk) begin
    if (rst)
        int_isr[5] <= 1'b0;
    else if (int_ier[5] & ap_local_deadlock)
        int_isr[5] <= 1'b1;
    else if (isr_toggle == 1'b1 && isr_mask == 1'b0)
        int_isr[5] <= int_isr[5] ^ WDATA[5]; // toggle on write
end
// int_ap_return
always @(posedge clk) begin
    if (rst)
        int_ap_return <= 0;
    else if (ap_done)
        int_ap_return <= ap_return;
end
// int_in_r[31:0]
always @(posedge clk) begin
    if (rst)
        int_in_r[31:0] <= 0;
    else if (w_hs && waddr == ADDR_IN_R_DATA_0)
        int_in_r[31:0] <= (WDATA[31:0] & wmask) | (int_in_r[31:0] & ~wmask);
end
// int_in_r[63:32]
always @(posedge clk) begin
    if (rst)
        int_in_r[63:32] <= 0;
    else if (w_hs && waddr == ADDR_IN_R_DATA_1)
        int_in_r[63:32] <= (WDATA[31:0] & wmask) | (int_in_r[63:32] & ~wmask);
end
// int_out_r[31:0]
always @(posedge clk) begin
    if (rst)
        int_out_r[31:0] <= 0;
    else if (w_hs && waddr == ADDR_OUT_R_DATA_0)
        int_out_r[31:0] <= (WDATA[31:0] & wmask) | (int_out_r[31:0] & ~wmask);
end
// int_out_r[63:32]
always @(posedge clk) begin
    if (rst)
        int_out_r[63:32] <= 0;
    else if (w_hs && waddr == ADDR_OUT_R_DATA_1)
        int_out_r[63:32] <= (WDATA[31:0] & wmask) | (int_out_r[63:32] & ~wmask);
end

//------------------------Memory logic-------------------

endmodule

  1. 2022年01月03日 05:10 |
  2. Vitis HLS
  3. | トラックバック:0
  4. | コメント:0
»

送料無料 税込 仏像 珍品種 彫像 ご本尊 仏様 如来部 大菩薩 大仏 巨大 約66cm 特大像 白毫相 頂髻相 偏袒右肩 合銅製 合金製 錆感 造物 造形美 工芸品 並行輸入品 送料無料 新品

送料無料 税込 仏像 珍品種 彫像 ご本尊 仏様 如来部 大菩薩 大仏 巨大 約66cm 特大像 白毫相 頂髻相 偏袒右肩 合銅製 合金製 錆感 造物 造形美 工芸品 並行輸入品 送料無料 新品:私たちの店内営業チームは、すべての顧客の個人的なニーズと予算を確実に理解し、技術を購入する際に最良の選択をするのを支援します。 ベビーグッズも大集合,2021高い素材,[正規販売店]送料無料 税込 仏像 珍品種 彫像 ご本尊 仏様 如来部 大菩薩 大仏 巨大 約66cm 特大像 白毫相 頂髻相 偏袒右肩 合銅製 合金製 錆感 造物 造形美 工芸品 並行輸入品 送料無料 新品