62 lines
1.6 KiB
Tcl
62 lines
1.6 KiB
Tcl
# Input arguments
|
|
set DEVICE [lindex $argv 0]
|
|
set TOP [lindex $argv 1]
|
|
set REP [lindex $argv 2]
|
|
set TARGET [lindex $argv 3]
|
|
set MEM_FILE [file normalize [lindex $argv 4]]
|
|
|
|
source common/reportCriticalPaths.tcl
|
|
|
|
#lecture de tous les sv générés
|
|
set files [glob RTL/${REP}.${TOP}/*.sv]
|
|
read_verilog -sv $files
|
|
#ajout de clock à 10 MHz et 125 MHz
|
|
read_verilog -sv src/main/resources/vsrc/clk_wiz.v
|
|
read_verilog -sv src/main/resources/vsrc/dpram.v
|
|
|
|
set_param general.maxThreads 12
|
|
# Reading constraint file (.xdc file)
|
|
read_xdc common/${TOP}.xdc
|
|
|
|
# Detect XPM memory
|
|
auto_detect_xpm
|
|
|
|
# Start synthesis
|
|
synth_design -top ${TOP} -part ${DEVICE} -fanout_limit 100
|
|
#-flatten_hierarchy none
|
|
#-directive RuntimeOptimized
|
|
|
|
# Run logic optimization
|
|
opt_design
|
|
|
|
# Placing
|
|
place_design
|
|
#-directive Quick
|
|
#write_checkpoint -force place_design.dcp
|
|
|
|
# Routing
|
|
route_design -ultrathreads
|
|
# -directive Quick
|
|
#write_checkpoint -force route_design.dcp
|
|
|
|
# Reports
|
|
report_timing -file ${TOP}_timing.rpt
|
|
report_timing_summary -max_paths 500 -nworst 1 -input_pins -file ${TOP}_timing_summary.rpt
|
|
report_utilization -file ${TOP}_utilization_opt.rpt
|
|
report_critical_paths ${TOP}_critpath_report.csv
|
|
report_route_status -file ${TOP}_route_status.rpt
|
|
report_design_analysis -file ${TOP}_design_analysis.rpt
|
|
report_io -file ${TOP}_io_opt.rpt
|
|
report_drc -file ${TOP}_drc_route.rpt
|
|
report_clock_interaction -file ${TOP}_clock_interaction_opt.rpt
|
|
|
|
# Generate MMI map
|
|
write_mem_info -force ${TOP}.mmi
|
|
|
|
# Create bitstream
|
|
write_bitstream -force ${TARGET}
|
|
|
|
write_checkpoint -force bitstream_design.dcp
|
|
|
|
exit
|