qip generator, q2_make_qip.tcl:
# !/bin/sh
#
exec tclsh "$0" "$@"
#
# Making quartus <file>.qip file
# There are 2 way to usage: 1- run with intput parameters, 2- run with internal parameters
# Parameters:
# <file_name> - output file name
# <path> - path to find files (valid range: "./" or "./ core" or "core1 ../core2", etc.)
#
# Example usage:
# q2_make_qip.tcl all.qip ./
# q2_make_qip.tcl all.qip "./ ../core2"
# source q2_make_qip.tcl (for example from Quartus tcl console)
# exec tclsh q2_make_qip.tcl all.qip "./ ../core2" (for example from Quartus tcl console)
# or edit code: EDIT HERE...END; and run q2_make_qip.tcl
#
if {>0} {
puts "-------------------------------------------------------"
puts "Input parameters:"
set file_name
set path
puts " file name : '$file_name'"
puts " path : '$path'"
} else {
# EDIT HERE:
set file_name "all.qip"
set path "./"
# END;
}
set p_file
set cnt 0
proc find { path pattern key_word } {
foreach i {
puts $::p_file "set_global_assignment -name $key_word \"
global cnt
incr cnt
}
}
proc find_in_path { path } {
find $path *.sv SYSTEMVERILOG_FILE
find $path *.svh SYSTEMVERILOG_FILE
find $path *.v VERILOG_FILE
find $path *.sdc SDC_FILE
find $path *.vhd VHDL_FILE
find $path *.vhdl VHDL_FILE
find $path *.tdf AHDL_FILE
}
foreach p $path {
find_in_path $p
puts $::p_file ""
}
close $p_file
puts "-------------------------------------------------------"
puts " Find $cnt files"
puts " Making file '$file_name'"
puts " Press 'Enter' to exit ..."
gets stdin