Hi everyone,
I must admit that I'm pretty new to tcl scripting so this error might be plain stupid but I've failed to understand it so far.
I have a makefile (taken from the openrisc repo on opencores.org and adapted to my needs) which has a set of rules to control the whole place and route flow, from compilation to bitstream generation. Among these rules there's one to extract timing reports that goes like this:
# Generate reports
>$(TCL_SCRIPT_REPORT):
> TCL_FILE=$@ $(MAKE) tcl-common
> $(Q)echo "run_designer \"Generating timing reports\" \" " >> $@
> $(Q)echo " open_design $$""proj_name.adb " >> $@
> TCL_FILE=$@ $(MAKE) dump-actel-report-project-tcl
> $(Q)echo "\"">> $@
The tcl-common provides a set of common parameters to each step of the flow and works fine, while the dump-actel-report-project-tcl looks like this:
# TCL commands to generate timing reports of project
>dump-actel-report-project-tcl:
> $(Q)echo " report " \\ >> $(TCL_FILE)
> $(Q)echo " -type timing " \\ >> $(TCL_FILE)
> $(Q)echo " -analysis max " \\ >> $(TCL_FILE)
> $(Q)echo " -print_summary yes " \\ >> $(TCL_FILE)
> $(Q)echo " -use_slack_threshold no " \\ >> $(TCL_FILE)
> $(Q)echo " -print_paths yes " \\ >> $(TCL_FILE)
> $(Q)echo " -max_paths 5 " \\ >> $(TCL_FILE)
> $(Q)echo " -max_expanded_paths 1 " \\ >> $(TCL_FILE)
> $(Q)echo " -include_user_sets no " \\ >> $(TCL_FILE)
> $(Q)echo " -include_pin_to_pin yes " \\ >> $(TCL_FILE)
> $(Q)echo " -select_clock_domains no " \\ >> $(TCL_FILE)
> $(Q)echo " "$(DESIGN_NAME)"-timing.rpt " >> $(TCL_FILE)
> $(Q)echo " report " \\ >> $(TCL_FILE)
> $(Q)echo " -type timing_violations " \\ >> $(TCL_FILE)
> $(Q)echo " -analysis max " \\ >> $(TCL_FILE)
> $(Q)echo " -use_slack_threshold no " \\ >> $(TCL_FILE)
> $(Q)echo " -limit_max_paths yes " \\ >> $(TCL_FILE)
> $(Q)echo " -max_paths 100 " \\ >> $(TCL_FILE)
> $(Q)echo " -max_expanded_paths 0 " \\ >> $(TCL_FILE)
> $(Q)echo " "$(DESIGN_NAME)"-timmaxdly.rpt " >> $(TCL_FILE)
> $(Q)echo " report " \\ >> $(TCL_FILE)
> $(Q)echo " -type timing_violations " \\ >> $(TCL_FILE)
> $(Q)echo " -analysis min " \\ >> $(TCL_FILE)
> $(Q)echo " -use_slack_threshold no " \\ >> $(TCL_FILE)
> $(Q)echo " -limit_max_paths yes " \\ >> $(TCL_FILE)
> $(Q)echo " -max_paths 100 " \\ >> $(TCL_FILE)
> $(Q)echo " -max_expanded_paths 0 " \\ >> $(TCL_FILE)
> $(Q)echo " "$(DESIGN_NAME)"-timmindly.rpt " >> $(TCL_FILE)
When I run the 'make report' I get the following error at the end:
debian@debian:place_route$ make report
>TCL_FILE=report.tcl make tcl-common
>make[1]: Entering directory `/home/debian/repo/9123_FOCS_ITA/branches/false-path-study/mbfocs/target/rtax1000s352_1/place_route'
>rm -f report.tcl;
>echo; echo "\tGenerating "report.tcl; echo
>
> Generating report.tcl
>
[skipping unnecessary lines]
Designer: Generating timing reports
>Actel Designer Software
>Version: 9.1.5.1
>Release: v9.1 SP5
>
>Info: The design focs.adb was last modified by software version 9.1.5.1.
>Opened an existing design focs.adb.
>Wrote timing report to file: focs-timing.rpt
>
>The Report command succeeded ( 02:20:16 )
>Wrote timing_violations report to file: focs-timmaxdly.rpt
>
>The Report command succeeded ( 00:00:09 )
>Wrote timing_violations report to file: focs-timmindly.rpt
>
>The Report command succeeded ( 00:00:09 )
>
>The Execute Script command succeeded ( 02:20:35 )
>Design closed.
>
> while executing
>"exec designer SCRIPT:designer.tcl LOGFILE:report.log"
> (procedure "run_designer" line 6)
> invoked from within
>"run_designer "Generating timing reports" "
> open_design $proj_name.adb
> report \
> -type timing \
> -analysis max \
> -print_summary yes \
> -..."
> (file "report.tcl" line 18)
>Command exited with non-zero status 1
>real 8703.72
>user 8413.83
>sys 6.62
>make: *** [report] Error 1
Apparently all the timing reports are saved correctly, but the tcl script exits with an error that I'm not able to spot.
Any help is appreciated.
Al