1 set scriptdir
[file dirname
[info script
]]
2 set commondir
[file dirname
$scriptdir]
3 set srcdir
[file join $commondir src
]
4 set constrsdir
[file join $commondir constrs
]
6 set wrkdir
[file join [pwd] obj
]
7 set ipdir
[file join $wrkdir ip
]
11 create_project
-part $part_fpga -in_memory
12 set_property
-dict [list \
13 BOARD_PART
$part_board \
14 TARGET_LANGUAGE
{Verilog
} \
15 SIMULATOR_LANGUAGE
{Mixed
} \
16 TARGET_SIMULATOR
{XSim
} \
17 DEFAULT_LIB
{xil_defaultlib
} \
18 IP_REPO_PATHS
$ipdir \
21 proc recglob
{ basedir pattern
} {
22 set dirlist
[glob -nocomplain -directory $basedir -type d
*]
23 set findlist
[glob -nocomplain -directory $basedir $pattern]
24 foreach dir
$dirlist {
25 set reclist
[recglob
$dir $pattern]
26 set findlist
[concat $findlist $reclist]
32 if {[get_filesets
-quiet sources_1
] eq
""} {
33 create_fileset
-srcset sources_1
35 set obj
[current_fileset
]
37 set srcmainverilogfiles
[recglob
$srcdir "*.v"]
38 add_files
-norecurse -fileset $obj $srcmainverilogfiles
40 if {[info exists
::env(EXTRA_VSRCS
)]} {
41 set extra_vsrcs
[split $::env(EXTRA_VSRCS
)]
42 foreach extra_vsrc
$extra_vsrcs {
43 add_files
-norecurse -fileset $obj $extra_vsrc
46 ## TODO: These paths and files should come from the caller, not within this script.
47 #if {[file exists [file join $srcdir include verilog]]} {
48 # add_files -norecurse -fileset $obj [file join $srcdir include verilog DebugTransportModuleJtag.v]
49 # add_files -norecurse -fileset $obj [file join $srcdir include verilog AsyncResetReg.v]
52 set vsrc_top
$::env(VSRC_TOP
)
54 set_property verilog_define
[list "VSRC_TOP=${vsrc_top}"] $obj
56 add_files
-norecurse -fileset $obj $vsrc_top
58 if {[get_filesets
-quiet sim_1
] eq
""} {
59 create_fileset
-simset sim_1
61 set obj
[current_fileset
-simset]
62 add_files
-norecurse -fileset $obj [glob -directory $srcdir {*.v
}]
63 set_property TOP
{tb
} $obj
65 if {[get_filesets
-quiet constrs_1
] eq
""} {
66 create_fileset
-constrset constrs_1
68 set obj
[current_fileset
-constrset]
69 add_files
-norecurse -fileset $obj [glob -directory $constrsdir {*.xdc
}]