2023年9月20日水曜日

ZYNQのPS設定(IPのカスタマイズ設定)を他プロジェクトへ移植する方法

zynqのPS設定コピー.md

ZYNQのPS設定(IPのカスタマイズ設定)を他プロジェクトへ移植する方法

ZYBOなどのメジャーなZYNQ基板を使用する場合はZYNQのPS設定はボードファイルを使用することで自動で設定される。しかし自作やマイナーなボードファイルが用意されていないZYNQ基板を使用する場合はPS設定を自身で行わなければならない。
新しいプロジェクトを作成するたび毎回手動でPS設定を行っていたが設定忘れやミスが多発したので別VivadoプロジェクトのIPのカスタマイズ設定をエクスポート・インポートする方法を検証した。

動作環境

開発環境:Vivado 2018.3
PC:Windows10

移植したいIPカスタマイズ設定を抽出する

移植元のプロジェクトを開き、Vivado上部のFile→Export→Export Hardwareをクリックし、OKを押しハードウェアファイルを生成する。
プロジェクトフォルダ内のプロジェクト名.sdkフォルダにブロックデザイン名_wrapper.hdfが生成されるはずなのでそれを適当な場所にコピーする。
コピーしたhdfファイルの拡張子を.hdfから.zipに変更し解凍する。(hdfファイルの実態はハードウェア情報のファイルがアーカイブされたzipファイル)
解凍した中にブロックデザイン名.tclというファイルがあるのでテキストエディタで開く。
ブロックデザイン名.tcl内の以下のような記述部分を探し出す。(# Create instance: processing_system7で検索をかけると良い。)

# Create instance: processing_system7_0, and set properties set processing_system7_0 [ create_bd_cell -type ip -vlnv xilinx.com:ip:processing_system7:5.5 processing_system7_0 ] set_property -dict [ list \ CONFIG.PCW_ACT_APU_PERIPHERAL_FREQMHZ {666.666687} \ CONFIG.PCW_ACT_CAN0_PERIPHERAL_FREQMHZ {23.8095} \ CONFIG.PCW_ACT_CAN1_PERIPHERAL_FREQMHZ {23.8095} \ 中略 CONFIG.PCW_WDT_PERIPHERAL_DIVISOR0 {1} \ CONFIG.PCW_WDT_PERIPHERAL_ENABLE {0} \ ] $processing_system7_0

「適当な名前.tcl」というファイルを作成し、先ほど見つけた部分の「set_property -dict [ list \」から「 ] $processing_system7_0」までをコピーして貼り付ける。
末尾の$processing_system7_0[get_bd_cells processing_system7_0]に書き換える。
この「適当な名前.tcl」がIPカスタマイズ設定の抽出情報となる。

抽出したIPカスタマイズ設定を反映する

移植先のプロジェクトを開きブロックデザインにZYNQ7 Processing SystemのIPを追加する。
適当な名前.tclを移植先のプロジェクトフォルダ直下(.xprファイルとかがある場所)にコピーする。
移植先のプロジェクトのVivado下部のtclコマンド入力部に

source 適当な名前.tcl

を入力して実行すると抽出したIPカスタマイズ設定が反映される。

memo

IPカスタマイズ画面のPresetsのSave Configurationでエクスポートできそうだと思ったがなぜか使用できなかった。(Preset Nameを入力してもOKが押せない。。。)
IPカスタマイズ画面のImport XPS Settingsで上記の抽出tclを指定しても反映されなかった。

0 件のコメント:

コメントを投稿