58 lines
1.6 KiB
Tcl
58 lines
1.6 KiB
Tcl
set board "arty-a7-35"
|
|
|
|
# Create and clear output directory
|
|
set outputdir work
|
|
file mkdir $outputdir
|
|
|
|
set files [glob -nocomplain "$outputdir/*"]
|
|
if {[llength $files] != 0} {
|
|
puts "deleting contents of $outputdir"
|
|
file delete -force {*}[glob -directory $outputdir *]; # clear folder contents
|
|
} else {
|
|
puts "$outputdir is empty"
|
|
}
|
|
|
|
switch $board {
|
|
"arty-a7-35" {
|
|
set a7part "xc7a35ticsg324-1L"
|
|
set a7prj ${board}-test-setup
|
|
}
|
|
}
|
|
|
|
# Create project
|
|
create_project -part $a7part $a7prj $outputdir
|
|
|
|
set_property board_part digilentinc.com:${board}:part0:1.0 [current_project]
|
|
set_property target_language VHDL [current_project]
|
|
|
|
# Define filesets
|
|
|
|
## Core: NEORV32
|
|
add_files [glob ./../../../rtl/core/*.vhd] ./../../../rtl/core/mem/neorv32_dmem.default.vhd ./../../../rtl/core/mem/neorv32_imem.default.vhd
|
|
set_property library neorv32 [get_files [glob ./../../../rtl/core/*.vhd]]
|
|
set_property library neorv32 [get_files [glob ./../../../rtl/core/mem/neorv32_*mem.default.vhd]]
|
|
|
|
## Design: processor subsystem template, and (optionally) BoardTop and/or other additional sources
|
|
set fileset_design ./../../../rtl/test_setups/neorv32_test_setup_bootloader.vhd
|
|
|
|
## Constraints
|
|
set fileset_constraints [glob ./*.xdc]
|
|
|
|
## Simulation-only sources
|
|
set fileset_sim [list ./../../../sim/simple/neorv32_tb.simple.vhd ./../../../sim/simple/uart_rx.simple.vhd]
|
|
|
|
# Add source files
|
|
|
|
## Design
|
|
add_files $fileset_design
|
|
|
|
## Constraints
|
|
add_files -fileset constrs_1 $fileset_constraints
|
|
|
|
## Simulation-only
|
|
add_files -fileset sim_1 $fileset_sim
|
|
|
|
# Run synthesis, implementation and bitstream generation
|
|
launch_runs impl_1 -to_step write_bitstream -jobs 4
|
|
wait_on_run impl_1
|