66 lines
		
	
	
		
			1.8 KiB
		
	
	
	
		
			Tcl
		
	
	
	
			
		
		
	
	
			66 lines
		
	
	
		
			1.8 KiB
		
	
	
	
		
			Tcl
		
	
	
	
if {[llength $argv] > 0} {
 | 
						|
  set project_name [lindex $argv 0]
 | 
						|
  set s [split $project_name -]
 | 
						|
  set prj [lindex $s 0]
 | 
						|
  set brd [lindex $s 1]
 | 
						|
} else {
 | 
						|
  puts "project full name is not given!"
 | 
						|
  return 1
 | 
						|
}
 | 
						|
 | 
						|
proc add_bd {tcl_file} {
 | 
						|
  source ${tcl_file}
 | 
						|
  save_bd_design
 | 
						|
  close_bd_design $design_name
 | 
						|
  set_property synth_checkpoint_mode Hierarchical [get_files *${design_name}.bd]
 | 
						|
}
 | 
						|
 | 
						|
set topmodule system_top
 | 
						|
 | 
						|
set fpga_dir    ${script_dir}/../..
 | 
						|
set project_dir ${script_dir}/build/$project_name
 | 
						|
set rtl_dir     ${script_dir}/rtl
 | 
						|
set lib_dir     ${fpga_dir}/lib
 | 
						|
set bd_dir      ${script_dir}/bd
 | 
						|
set constr_dir  ${script_dir}/constr
 | 
						|
set data_dir    ${script_dir}/data
 | 
						|
set ip_dir      ${script_dir}/ip
 | 
						|
 | 
						|
create_project $project_name -force -dir $project_dir/ -part ${device}
 | 
						|
if {[info exists board]} {
 | 
						|
  set_property board_part $board [current_project]
 | 
						|
}
 | 
						|
 | 
						|
# lib files
 | 
						|
set inc_files [list \
 | 
						|
  "[file normalize "${lib_dir}/include/axi.vh"]" \
 | 
						|
]
 | 
						|
add_files -norecurse -fileset sources_1 $inc_files
 | 
						|
set_property is_global_include true [get_files $inc_files]
 | 
						|
 | 
						|
# Add files for noop
 | 
						|
lappend src_files "[file normalize "${fpga_dir}/../build/TopMain.v"]"
 | 
						|
 | 
						|
add_files -norecurse -fileset sources_1 $src_files
 | 
						|
if {[info exists xdc_files]} {
 | 
						|
  add_files -norecurse -fileset constrs_1 $xdc_files
 | 
						|
}
 | 
						|
 | 
						|
# Block Designs
 | 
						|
add_bd ${fpga_dir}/noop.tcl
 | 
						|
add_bd ${bd_dir}/prm.tcl
 | 
						|
 | 
						|
# setting top module for FPGA flow and simulation flow
 | 
						|
set_property "top" $topmodule [current_fileset]
 | 
						|
 | 
						|
# setting Synthesis options
 | 
						|
set_property strategy {Vivado Synthesis defaults} [get_runs synth_1]
 | 
						|
# keep module port names in the netlist
 | 
						|
set_property STEPS.SYNTH_DESIGN.ARGS.FLATTEN_HIERARCHY {none} [get_runs synth_1]
 | 
						|
 | 
						|
# setting Implementation options
 | 
						|
set_property steps.phys_opt_design.is_enabled true [get_runs impl_1]
 | 
						|
 | 
						|
# update compile order 
 | 
						|
update_compile_order -fileset sources_1
 |