• 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. RF Design
  3. Concatenated vectors of strings are truncated when the circuit...

Stats

  • Locked Locked
  • Replies 5
  • Subscribers 62
  • Views 8846
  • 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

Concatenated vectors of strings are truncated when the circuit is being graphed by a measurement, but vectors of integers work fine.

FormerMember
FormerMember over 4 years ago

This is a very strange bug: If I create two parameters to a subcircuit, one a vector of strings and the other a vector of integers and then call concat() in the subcircuit, then it works properly on integers but only gets the first element of the vector for strings.

Notice in the first image it works: the S2 circuit shows B:{0, 1, 2, 3} and X:{"a", "b", "c"}.  In the second image, all I have done is disable the measurement that graphs S1: Notice that the integer is still correct, but the string vector only passed the first vector element, "b" showing as X:{"a", "b"}.  Additionally, "W" is no longer showing as a vector at all, it is simply W: "b".  I have also attached the .emz below.

In both cases there are no warnings or errors, and the measurement is simply a graph of S21, none of the parameterized variables passed to the subcircuit are subject to the graph:

Working, measurement disabled:

Not Working, measurement enabled:

Here's the emz:

Subcircuit Parameter String Test.zip

  • Cancel
  • FormerMember
    FormerMember over 4 years ago

    On closer inspection I don't think this has to do with concat() at all, it is just how I noticed the issue.  The issue is that vectors of strings are not passed correctly if the circuit is part of a measurement.  

    Ideas?

    • Cancel
    • Vote Up 0 Vote Down
    • Cancel
  • MohiK
    MohiK over 4 years ago

    Hi Eric.  The syntax for displaying a variable's value, "X: ", displays the value for the last time that variable was evaluated.  It is not aware of context in hierarchy.  So if you have multiple instances of that subcircuit, in multiple schematics, there is no telling which value you will see.  If you explain what you are trying to do, I may be able to help.

    • Cancel
    • Vote Up 0 Vote Down
    • Cancel
  • FormerMember
    FormerMember over 4 years ago in reply to MohiK

     In this example there are only two circuits in the whole project.  If it is showing the value for the last time it was evaluated, shouldn't it always be showing the vector?  

    Why would it change by measuring S21?

    The vector W is really an array of strings containing net names for optimization.  I've found that I cannot pass string vectors to subcircuits, they won't evaluate properly because they never seem to arrive as vectors of strings, but as strings. This example is trivial just to explain the problem, the actual project is much bigger.

    • Cancel
    • Vote Up 0 Vote Down
    • Cancel
  • MohiK
    MohiK over 4 years ago in reply to FormerMember

    You are correct, If you want access to a vector of strings in a subcircuit, you will need to define the variable in Global Defintions.  Please explain why you need to pass a vector of strings to a subcircuit instance.  This has not been an issue, so I suspect there is an easier way to do what you need.

    • Cancel
    • Vote Up 0 Vote Down
    • Cancel
  • FormerMember
    FormerMember over 4 years ago in reply to MohiK

    I was trying to do with vectors of strings what MDIFs already do, so thanks for that hint.  I was trying to pass AVX_CAPS which is a vector of s2p datafile names to a subcircuit, but it wouldn't come in as a vector...but now that I have MDF's setup I think it will be simpler.

    • 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