unclear tcl error

A

alb

Guest
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

--
A: Because it messes up the order in which people normally read text.
Q: Why is top-posting such a bad thing?
A: Top-posting.
Q: What is the most annoying thing on usenet and in e-mail?
 
Hi,

I think Make assumes that an exit code of 0 means success, and anything else implies failure. That seems to be why there is an error. From your log, it doesn't look like the Tcl script exited with an error.

HTH,
Harnhua

On Monday, 28 April 2014 15:32:38 UTC+8, alb wrote:
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



--

A: Because it messes up the order in which people normally read text.

Q: Why is top-posting such a bad thing?

A: Top-posting.

Q: What is the most annoying thing on usenet and in e-mail?
 
Hi Harnhua,
harnhua@plunify.com wrote:
[]
I think Make assumes that an exit code of 0 means success, and
anything else implies failure. That seems to be why there is an error.
From your log, it doesn't look like the Tcl script exited with an
error.

From 'make' manual: Errors in Recipes.
After each shell invocation returns, make looks at its exit status. If
the shell completed successfully (the exit status is zero), the next
line in the recipe is executed in a new shell; after the last line is
finished, the rule is finished.

If you look carefully to the code (re-posted here for convenience) I
posted it is pretty clear the tcl script has flagged an error, but it
doesn't seem to me clear what type of error it might be:

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

Still wandering in the dark...

Al
 

Welcome to EDABoard.com

Sponsor

Back
Top