1
0
mirror of https://github.com/aolofsson/oh.git synced 2025-01-17 20:02:53 +08:00
oh/elink/syn/xilinx/run.tcl

85 lines
2.1 KiB
Tcl

###########################################################
#STEP0: Define variables
set OUTDIR ./tmp
set PART xc7z010clg400-1
set TOP elink_example
file mkdir $OUTDIR
###########################################################
#STEP1: Read sources, constraints, IP files
create_project -in_memory -part $PART -force my_project
source read_verilog.tcl
source read_constraints.tcl
source read_ip.tcl
###########################################################
#STEP2: SYNTHESIS
###########################################################
upgrade_ip [get_ips]
generate_target all [get_ips]
synth_ip [get_ips]
synth_design -top $TOP -part $PART
#create a checkpoint
write_checkpoint -force $OUTDIR/post_syn.dcp
#report timing
report_timing_summary -file $OUTDIR/post_syn_timing_summary.rpt
report_utilization -file $OUTDIR/post_syn_util.rpt
###########################################################
#STEP3: PLACEMENT
###########################################################
#optimize design
opt_design
#place design
place_design
#optimzier design
phys_opt_design
#create a checkpoint
write_checkpoint -force $OUTDIR/post_place.dcp
#post placement reporyts
report_clock_utilization -file $OUTDIR/clock_util.rpt
report_utilization -file $OUTDIR/post_place_util.rpt
report_timing_summary -file $OUTDIR/post_place_timing_summary.rpt
###########################################################
#STEP4: ROUTING
###########################################################
#route design
route_design
#create checkpoint
write_checkpoint -force $OUTDIR/post_route.dcp
#create reports
report_route_status -file $OUTDIR/post_route_status.rpt
report_timing_summary -file $OUTDIR/post_route_timing_summary.rpt
report_timing -sort_by group -max_paths 100 -path_type summary -file $OUTDIR/post_route_timing.rpt
report_power -file $OUTDIR/post_route_power.rpt
report_drc -file $OUTDIR/post_imp_drc.rpt
###########################################################
#STEP5: GENERATE BITSTREAM AND NETLIST
###########################################################
write_verilog -force $OUTDIR/$TOP.v
write_xdc -no_fixed_only -force $OUTDIR/$TOP.xdc
write_bitstream -force $OUTDIR/$TOP.bit