Vivado 2019.2でIP生成するスクリプトの備忘録。
旧バージョンでも作成できるけど、v2019.2で生成できるか確認を含めています。
次のようにVerilog HDLのソースコードがあるとします。
IPコアのディレクトリは./aq_axis_t32f64を対象とします。
./aq_axis_t32f64
┗src
┗aq_axis_t32f64.v
次のようにtclスクリプトを作成します。
ここではcreate_ip.tclというファイル名で保存しました。
set PROJECT_NAME aq_axis_t32f64
set PART_NAME xc7z020clg400-1
create_project $PROJECT_NAME ./$PROJECT_NAME -part $PART_NAME -force
set FILES [list \
../$PROJECT_NAME/src/aq_axis_t32f64.v \
]
add_files -norecurse $FILES
ipx::package_project -root_dir ../$PROJECT_NAME -vendor aquaxis.com -library aquaxis -taxonomy /UserIP
set_property core_revision 1 [ipx::current_core]
ipx::create_xgui_files [ipx::current_core]
ipx::update_checksums [ipx::current_core]
ipx::save_core [ipx::current_core]
Vivadoを起動して、IPを作成します。
$ cd ./aq_axis_t32f64
$ source /opt/Xilinx/Vivado/2019.2/settings64.sh
$ vivado -mode batch -source create_ip.tcl
実行結果は次のとおりです。
$ vivado -mode batch -source create_ip.tcl
****** Vivado v2019.2 (64-bit)
**** SW Build 2700185 on Thu Oct 24 18:45:48 MDT 2019
**** IP Build 2699827 on Thu Oct 24 21:16:38 MDT 2019
** Copyright 1986-2019 Xilinx, Inc. All Rights Reserved.
source create_ip.tcl
# set PROJECT_NAME aq_axis_t32f64
# set PART_NAME xc7z020clg400-1
# create_project $PROJECT_NAME ./$PROJECT_NAME -part $PART_NAME -force
# set FILES [list \
# ../$PROJECT_NAME/src/aq_axis_t32f64.v \
# ]
# add_files -norecurse $FILES
# ipx::package_project -root_dir ../$PROJECT_NAME -vendor aquaxis.com -library aquaxis -taxonomy /UserIP
INFO: [IP_Flow 19-234] Refreshing IP repositories
INFO: [IP_Flow 19-1704] No user IP repositories specified
INFO: [IP_Flow 19-2313] Loaded Vivado IP repository '/opt/Xilinx/Vivado/2019.2/data/ip'.
INFO: [IP_Flow 19-5107] Inferred bus interface 'I_AXIS' of definition 'xilinx.com:interface:axis:1.0' (from Xilinx Repository).
INFO: [IP_Flow 19-5107] Inferred bus interface 'O_AXIS' of definition 'xilinx.com:interface:axis:1.0' (from Xilinx Repository).
INFO: [IP_Flow 19-5107] Inferred bus interface 'ARESETN' of definition 'xilinx.com:signal:reset:1.0' (from Xilinx Repository).
INFO: [IP_Flow 19-4728] Bus Interface 'ARESETN': Added interface parameter 'POLARITY' with value 'ACTIVE_LOW'.
WARNING: [IP_Flow 19-3158] Bus Interface 'I_AXIS': FREQ_HZ bus parameter missing from AXI interface when interface is not associated to a clock.
WARNING: [IP_Flow 19-3158] Bus Interface 'O_AXIS': FREQ_HZ bus parameter missing from AXI interface when interface is not associated to a clock.
INFO: [IP_Flow 19-2181] Payment Required is not set for this core.
INFO: [IP_Flow 19-2187] The Product Guide file is missing.
# set_property core_revision 1 [ipx::current_core]
# ipx::create_xgui_files [ipx::current_core]
# ipx::update_checksums [ipx::current_core]
# ipx::save_core [ipx::current_core]
INFO: [Common 17-206] Exiting Vivado at Tue Dec 3 15:54:32 2019...
Vivadoのスクリプトの実行が完了すると、component.xmlとxgui/aq_axis_t32f64_v1_0.tclが生成されます。
このディレクトリをVivadoのIPリポジトリに登録するとVivadoのIP Integratorで使用できるようになります。