From bdc55177cdbe13089243c99df1a3a3c5fd2b2a86 Mon Sep 17 00:00:00 2001 From: Madeline Busig Date: Mon, 10 Nov 2025 14:13:31 -0800 Subject: [PATCH] Add script for packaging IP from project Currently just reads the IP configuration --- scripts/package_ip.sh | 15 +++++++++++++++ tcl/package_ip.tcl | 35 +++++++++++++++++++++++++++++++++++ 2 files changed, 50 insertions(+) create mode 100755 scripts/package_ip.sh create mode 100644 tcl/package_ip.tcl diff --git a/scripts/package_ip.sh b/scripts/package_ip.sh new file mode 100755 index 0000000..3e96863 --- /dev/null +++ b/scripts/package_ip.sh @@ -0,0 +1,15 @@ +#!/usr/bin/bash + +THISSCRIPT=$(realpath $0) +PROJECT_ROOT=$(dirname $(dirname $THISSCRIPT)) +TCLSCRIPT="$PROJECT_ROOT/tcl/package_ip.tcl" + +if [ $# -lt 1 ]; then + echo "Usage: $0 PROJECT_NAME" + exit -1 +fi + +PROJNAME=$1 + +$VIVADO_ROOT/bin/vivado -mode batch -source "$TCLSCRIPT" -tclargs "$PROJNAME" + diff --git a/tcl/package_ip.tcl b/tcl/package_ip.tcl new file mode 100644 index 0000000..2311c71 --- /dev/null +++ b/tcl/package_ip.tcl @@ -0,0 +1,35 @@ +set gitroot [exec git rev-parse --show-toplevel] +set hogroot "$gitroot/Hog" + +puts "Hog root: $hogroot" + +puts "Sourcing hog.tcl" + +# Using ReadConf +source -notrace "$hogroot/Tcl/hog.tcl" + +if { $argc < 1 } { + puts "Usage: vivado -mode batch -source package_ip.tcl -tclargs PROJECT_NAME" + exit -1 +} + +set proj_name [lindex $argv 0] + +puts "Packaging $proj_name" + +set proj_dir "$gitroot/Top/$proj_name" +set ip_conf_file "$proj_dir/ip.conf" + +puts "Reading configuration file $ip_conf_file" + +set ip_conf [ReadConf "$ip_conf_file"] + +puts "IP Configuration: $ip_conf" + +if { [dict exists $ip_conf main] == 0 } { + puts "No main section in IP configuration!" + exit -2 +} + +puts "Done" +