Forum Discussion

s002wjh's avatar
s002wjh
Icon for New Contributor rankNew Contributor
4 years ago
Solved

passing value to tcl

is there anyway to pass value to a variable in side the tcl. either from tcl console under quartus or using quartus_sh under linux?

for example

i have text.tcl, inside is

set test 0

in my cmd line i want to

quartus_sh -t test.tcl test =5

or in tcl console/

source test.tcl test=5

  • thx. seem "exec" would work but everytime i try

    exec quartus_sh -t top.tcl 5 it just freeze quartus

7 Replies

  • Heiko's avatar
    Heiko
    Icon for New Contributor rankNew Contributor

    You could do

    quartus_sh -t test.tcl 5

    And in test.tcl have

    set test [lindex $argv 0]

    That takes the zeroth input argument, in this case 5, and assigns it to a variable test.

  • May I know whether the suggestion from Heiko help in your case?
    Do you need further help on this?

    Best Regards,
    Richard Tan

    p/s: If any answer from the community or Intel support are helpful, please feel free to give Kudos.

    • s002wjh's avatar
      s002wjh
      Icon for New Contributor rankNew Contributor

      it help on linux side, but what about tcl console in quartus?

      when i try quartus_sh i got these errors

      Error:invalid command name "quartus_sh"

      Error: while executing
      Error:"unknown_original quartus_sh -t top_all.tcl 5"
      Error: ("eval" body line 1)
      Error: invoked from within
      Error:"eval unknown_original $cmd $args"
      Error: (procedure "::unknown" line 7)
      Error: invoked from within
      Error:"quartus_sh -t top_all.tcl 5"
      • Heiko's avatar
        Heiko
        Icon for New Contributor rankNew Contributor

        If you're running it from the tcl console the quartus_sh is not a valid command. Because (*I think) the tcl console in the quartus user interface is actually just the quartus_sh executable running in interactive mode.

        To call quartus_sh from the tcl console you could use the exec command.

        Following your example

        exec quartus_sh -t top_all.tcl 5

        Not sure if that is the most elegant solution to your problem. But it should work.