Vivado 2019.2でIPコアの作成

 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で使用できるようになります。

write: 2019/12/03/ 15:23:04