2016-11-29 14:23:11 +01:00
|
|
|
set scriptdir [file dirname [info script]]
|
|
|
|
set commondir [file dirname $scriptdir]
|
|
|
|
set srcdir [file join $commondir src]
|
|
|
|
set constrsdir [file join $commondir constrs]
|
|
|
|
|
|
|
|
set wrkdir [file join [pwd] obj]
|
|
|
|
set ipdir [file join $wrkdir ip]
|
|
|
|
|
|
|
|
set top {system}
|
|
|
|
|
|
|
|
create_project -part $part_fpga -in_memory
|
|
|
|
set_property -dict [list \
|
|
|
|
BOARD_PART $part_board \
|
|
|
|
TARGET_LANGUAGE {Verilog} \
|
|
|
|
SIMULATOR_LANGUAGE {Mixed} \
|
|
|
|
TARGET_SIMULATOR {XSim} \
|
|
|
|
DEFAULT_LIB {xil_defaultlib} \
|
|
|
|
IP_REPO_PATHS $ipdir \
|
|
|
|
] [current_project]
|
|
|
|
|
|
|
|
proc recglob { basedir pattern } {
|
|
|
|
set dirlist [glob -nocomplain -directory $basedir -type d *]
|
|
|
|
set findlist [glob -nocomplain -directory $basedir $pattern]
|
|
|
|
foreach dir $dirlist {
|
|
|
|
set reclist [recglob $dir $pattern]
|
|
|
|
set findlist [concat $findlist $reclist]
|
|
|
|
}
|
|
|
|
return $findlist
|
|
|
|
}
|
|
|
|
|
|
|
|
|
|
|
|
if {[get_filesets -quiet sources_1] eq ""} {
|
|
|
|
create_fileset -srcset sources_1
|
|
|
|
}
|
|
|
|
set obj [current_fileset]
|
|
|
|
|
|
|
|
set srcmainverilogfiles [recglob $srcdir "*.v"]
|
|
|
|
add_files -norecurse -fileset $obj $srcmainverilogfiles
|
|
|
|
|
|
|
|
if {[info exists ::env(EXTRA_VSRCS)]} {
|
|
|
|
set extra_vsrcs [split $::env(EXTRA_VSRCS)]
|
|
|
|
foreach extra_vsrc $extra_vsrcs {
|
|
|
|
add_files -norecurse -fileset $obj $extra_vsrc
|
|
|
|
}
|
|
|
|
}
|
|
|
|
## TODO: These paths and files should come from the caller, not within this script.
|
|
|
|
#if {[file exists [file join $srcdir include verilog]]} {
|
|
|
|
# add_files -norecurse -fileset $obj [file join $srcdir include verilog DebugTransportModuleJtag.v]
|
|
|
|
# add_files -norecurse -fileset $obj [file join $srcdir include verilog AsyncResetReg.v]
|
|
|
|
#}
|
|
|
|
|
|
|
|
set vsrc_top $::env(VSRC_TOP)
|
|
|
|
|
2016-11-30 23:30:05 +01:00
|
|
|
set_property verilog_define [list "VSRC_TOP=${vsrc_top}"] $obj
|
2016-11-29 14:23:11 +01:00
|
|
|
|
|
|
|
add_files -norecurse -fileset $obj $vsrc_top
|
|
|
|
|
|
|
|
if {[get_filesets -quiet sim_1] eq ""} {
|
|
|
|
create_fileset -simset sim_1
|
|
|
|
}
|
|
|
|
set obj [current_fileset -simset]
|
|
|
|
add_files -norecurse -fileset $obj [glob -directory $srcdir {*.v}]
|
|
|
|
set_property TOP {tb} $obj
|
|
|
|
|
|
|
|
if {[get_filesets -quiet constrs_1] eq ""} {
|
|
|
|
create_fileset -constrset constrs_1
|
|
|
|
}
|
|
|
|
set obj [current_fileset -constrset]
|
|
|
|
add_files -norecurse -fileset $obj [glob -directory $constrsdir {*.xdc}]
|