• Skip to main content
  • Skip to search
  • Skip to footer
Cadence Home
  • This search text may be transcribed, used, stored, or accessed by our third-party service providers per our Cookie Policy and Privacy Policy.

  1. Community Forums
  2. Functional Verification
  3. Setting vhdl tb generic using irun command

Stats

  • Locked Locked
  • Replies 8
  • Subscribers 66
  • Views 18914
  • Members are here 0
This discussion has been locked.
You can no longer post new replies to this discussion. If you have a question you can start a new discussion

Setting vhdl tb generic using irun command

itsonlyme
itsonlyme over 11 years ago

Hi all,

I've got a problem. In my tb I've got a generic:
        G_WAVEFORM_TYPE : string := "xxx" 

and i'd like to change "xxx" to "yyy" using irun "start.f" file, but i can't

-mess -v93 -assert ../src/dut.vhd ../src/tb.vhd -generic "tb.G_WAVEFORM_TYPE => "yyy""
or in other file:
-top tb -access rwc -defparam tb.G_WAVEFORM_TYPE="yyy" -nowarn CUDEFB
doesn't work. Could you  tell me how to set a tb (vhdl) generic from *.f file using irun -f and what is the correct command to do it?

Thanks,
John. 

  • Cancel
  • Tudor Timi
    Tudor Timi over 11 years ago
    -defparam is for Verilog parameters. There is a -generic switch that can handle top level VHDL parameters.
    • Cancel
    • Vote Up 0 Vote Down
    • Cancel
  • itsonlyme
    itsonlyme over 11 years ago

    OK. :)

    In which place i should use it - compilation line or elaboration? And what is the format of argument if generic is a string?

    -generic "tb.G_WAVEFORM_TYPE => "yyy""

    or 

    -generic "tb.G_WAVEFORM_TYPE => yyy"

    or

    -generic tb.G_WAVEFORM_TYPE = "yyy"

    Thanks,

    John. 

    • Cancel
    • Vote Up 0 Vote Down
    • Cancel
  • StephenH
    StephenH over 11 years ago

     -generic is the right switch but you may need to use colons not dots.

    From the docs:  irun -generic "vlog_top:vhdl_inst1:gen => 4" top_level_design_unit

    So for you: irun -generic 'tb.G_WAVEFORM_TYPE => "yyy"'

    • Cancel
    • Vote Up 0 Vote Down
    • Cancel
  • StephenH
    StephenH over 11 years ago

    It's an elaboration switch. Your quotes are wrong, use this:

     -generic 'tb.G_WAVEFORM_TYPE => "yyy"'

     

    • Cancel
    • Vote Up 0 Vote Down
    • Cancel
  • itsonlyme
    itsonlyme over 11 years ago
    My run.f file:
    // Compile the VHDL files
    -mess -v93 -assert ../src/dut.vhd ../src/tb.vhd

    // Information for elaboration
    -top tb -access rwc -generic 'tb.G_WAVEFORM_TYPE => "yyy"' -nowarn CUDEFB

    // Set up the simulation
    -input ../src/dir_ncsim/setup.tcl

    // exit simulation at the end
    -exit

    Used command:
    irun -64BIT -f ../src/dir_ncsim/run.f

    Return code:
    irun: *E,FMUK: The type of the file (=>) could not be determined.
    irun: *E,FILEMIS: Cannot find the provided file =>. 
    irun: *E,FMUK: The type of the file (yyy') could not be determined.
    irun: *E,FILEMIS: Cannot find the provided file yyy'.

    yyy' should be a string value not a name of file. And what does ' mean? Any ideas? When I do not set generic, simulation working fine, but for default "xxx" value.
     
    I'm using INCISIV131.

    Greetings,
    John.
    • Cancel
    • Vote Up 0 Vote Down
    • Cancel
  • StephenH
    StephenH over 11 years ago

     I don't know which version you're running but maybe irun isn't liking the single quotes. I built a small example for you, untar it and run the RunMe.sh to see how it works - the test should print "irun" to show the generic got the command-line value instead of the "vhdl" value that's set in the instantiation.

     

    generic.tar
    • Cancel
    • Vote Up 0 Vote Down
    • Cancel
  • TAM1
    TAM1 over 11 years ago

     Here's Stephen's entry:

     

    -generic "tb:u_dut:str=>\"irun\""

     

    It seems like every Unix shell and the irun -f file processor interprets quote characters differently. So adding escape characters helps nail down exactly what you meant to say.

    • Cancel
    • Vote Up 0 Vote Down
    • Cancel
  • itsonlyme
    itsonlyme over 11 years ago


    // Information for elaboration
    -top tb -access rwc -generic "tb:G_WAVEFORM_TYPE=>\"yyy\"" -nowarn CUDEFB

    It's working now, thank you very much. :)

    John.
    • Cancel
    • Vote Up 0 Vote Down
    • Cancel

Community Guidelines

The Cadence Design Communities support Cadence users and technologists interacting to exchange ideas, news, technical information, and best practices to solve problems and get the most from Cadence technology. The community is open to everyone, and to provide the most value, we require participants to follow our Community Guidelines that facilitate a quality exchange of ideas and information. By accessing, contributing, using or downloading any materials from the site, you agree to be bound by the full Community Guidelines.

© 2025 Cadence Design Systems, Inc. All Rights Reserved.

  • Terms of Use
  • Privacy
  • Cookie Policy
  • US Trademarks
  • Do Not Sell or Share My Personal Information