Vivadoのip_repoの中に自分でつくったIPコアを複製したくなったときにコピーする方法。
Vivadoで作るユーザーIPのバージョン管理が、どういう設計手順を想定しているのかわからないが、とにかく使いにくいので、
結局自分でIPコアをコピーしてメジャーバージョンを変えるみたいな方法をとっている。
(個人的にはIPコアのポートを変えるほどの変更を加えたらメジャーバージョンをインクリメントする感じではあるが。。)
①IPコア"HOGE_1.0"がある。
②ip_repoにHOGE_2.0を作って中身をコピー
③component.xmlの中身を編集
<spirit:modelName>HOGE_v1_0</spirit:modelName>
トップモジュール?を指定している?
<spirit:name>hdl/HOGE_v1_0.v</spirit:name>
ブロックデザイン上のGUI表示を司るtcl
<spirit:name>xgui/HOGE_v1_0.tcl</spirit:name>
とにかくIP設定のなにか
<spirit:value spirit:resolve="user" spirit:id="PARAM_VALUE.Component_Name" spirit:order="1">HOGE_v1_0</spirit:value>
その他いろいろ
HOGE_1.0だったり
HOGE_v1.0だったり
HOGE_v1_0だったり
とにかく表記が揺れているがそれらすべてを置換する。
間違えてバスのバージョンを変更しないようにする。
以下のフィールドはバスの定義に関するものなので変更しない。
<spirit:busInterface> <spirit:name>fifo</spirit:name> <spirit:displayName>fifo</spirit:displayName> <spirit:description>fifo</spirit:description> <spirit:busType spirit:vendor="xilinx.com" spirit:library="interface" spirit:name="fifo_write" spirit:version="1.0"/> <spirit:abstractionType spirit:vendor="xilinx.com" spirit:library="interface" spirit:name="fifo_write_rtl" spirit:version="1.0"/> <spirit:master/> <spirit:portMaps> <spirit:portMap>
これで不整合があればIPコアをVivadoで編集するときにWarningになって出てくるのでそれを消すようにcomponent.xmlを修正すればなんとかなった。