diff --git a/resources/fpga/package_component.tcl b/resources/fpga/package_component.tcl
new file mode 100644
index 0000000000000000000000000000000000000000..110594e40f6e05e30012d570f98fd76b746f8efd
--- /dev/null
+++ b/resources/fpga/package_component.tcl
@@ -0,0 +1,57 @@
+###-----------------------------------------------------------------------------
+### Vivado Component Package TCL Script
+### A joint work commissioned on behalf of SoC Labs, under Arm Academic Access license.
+###
+### Contributors
+###
+### David Flynn (d.w.flynn@soton.ac.uk)
+###
+### Copyright � 2022, SoC Labs (www.soclabs.org)
+###-----------------------------------------------------------------------------
+#
+# developed & tested using vivado_version 2021.1
+#
+
+#
+# STEP#0: setup design sources and constraints
+#
+
+set component_lib $env(FPGA_COMPONENT_LIB)
+
+# Read in TCL Filelist
+source $env(FPGA_COMPONENT_FILELIST)
+
+# Read in Design Defines
+source $env(FPGA_COMPONENT_DEFINES)
+
+# Set Top-level
+set_property top $env(FPGA_DESIGN_TOP) [current_fileset]
+
+#
+# STEP#1: run synthesis, report utilization and timing estimates, write checkpoint design
+#
+
+update_compile_order -fileset sources_1
+
+ipx::package_project -root_dir $component_lib -vendor $env(FPGA_VENDOR) -library user -taxonomy /UserIP -import_files -set_current false -force -force_update_compile_order
+
+ipx::unload_core  $component_lib/component.xml
+ipx::edit_ip_in_project -upgrade true -name tmp_edit_project -directory  $component_lib  $component_lib/component.xml
+
+update_compile_order -fileset sources_1
+set_property ipi_drc {ignore_freq_hz true} [ipx::current_core]
+ipx::merge_project_changes files [ipx::current_core]
+
+set_property core_revision $env(FPGA_CORE_REV) [ipx::current_core]
+ipx::update_source_project_archive -component [ipx::current_core]
+ipx::create_xgui_files [ipx::current_core]
+ipx::update_checksums [ipx::current_core]
+ipx::check_integrity [ipx::current_core]
+
+ipx::save_core [ipx::current_core]
+ipx::check_integrity -quiet -xrt [ipx::current_core]
+ipx::move_temp_component_back -component [ipx::current_core]
+close_project
+
+update_ip_catalog
+close_project