Home
  • Products
  • Solutions
  • Support
  • Company
  • Products
  • Solutions
  • Support
  • Company
Community Forums Custom IC SKILL complex wave

Stats

  • Replies 4
  • Subscribers 136
  • Views 945
  • Members are here 0

complex wave

Brad RFeng
Brad RFeng 2 months ago

Hi,

It seems an ADE expression such as g=complex(-0.3 0.51) can't be sent to an impedance plot. I found the following expression will convert g to a wave which can be plotted,

g=(abs(s11)/(abs(s11)+1e-9))*complex(-0.3 0.51). ;; Where s11 is an output from sp simulation.

g is redundant in that it has the same value across all frequencies used to sweep s11 but that is not a problem since all of the points are coincident on the plot. I would like to extend this approach to create to a contour using something similar to

this,

g=(abs(s11)/(abs(s11)+1e-9))*list(complex(-0.3 0.51) complex(-0.2 0.51) complex(-0.1 0.51))

As shown above an expression error occurs. Is there a syntax that will accomplish my goal?

I suppose getAsciiWave() would be better if many points were needed but for just a few points I'd prefer to just put them directly into the expression and avoid keeping track of extra ascii file(s).

There's also drCreateVec and drCreateWaveform if I wanted to go the Skill route. btw - is there a Skill function that will take a list of complex values and return a wave?

Regards,
Brad

  • Reply
  • Cancel
  • Cancel
  • Andrew Beckett
    Andrew Beckett 2 months ago

    Hi Brad,

    You could use abMakeWaveform from this post.

    Then:

    g=abMakeWaveform(list(complex(-0.3 0.51) complex(-0.2 0.51) complex(-0.1 0.51)) list(1 2 3) 'complex 'double)

    The list(1 2 3) was just a list of arbitrary x-values. You could also use linRg(1 3 1) (i.e. 1 to 3 in steps of 1).

    Regards,

    Andrew

    • Cancel
    • Up 0 Down
    • Reply
    • Cancel
  • Brad RFeng
    Brad RFeng 2 months ago in reply to Andrew Beckett

    Thanks Andrew, your suggestion is spot on and works well.

    Brad

    • Cancel
    • Up 0 Down
    • Reply
    • Cancel
  • Brad RFeng
    Brad RFeng 2 months ago in reply to Brad RFeng

    Hi Andrew,

    To understand various approaches I tried the artListToWaveform() function. 

    The following expression works fine in the expression builder gui and when I click the "Evaluate Buffer ... If waveform plot" a plot is generated as expected, i.e. one complex value.

    artListToWaveform('((1 (0.0 0.4))))

    This GUI works as expected.

    In the results tab a wave icon appears but when I attempt to plot I get an empty plot. No warning or error appears in the CIW. Any thoughts on why this happens and how to resolve?

    Regards,

    Brad

    • Cancel
    • Up 0 Down
    • Reply
    • Cancel
  • Andrew Beckett
    Andrew Beckett 2 months ago in reply to Brad RFeng

    Brad,

    I'd forgotten that artListToWaveform was public and that it could construct waveforms with complex values (my mistake). Anyway, something odd seems to be going on here - if I make the waveform have two points, it seems to then work:

    artListToWaveform('((1 (0.0 0.4)) (2 (0.1 -0.3))))

    but if I do plot all (if run over corners say), I only get a single trace plotted (I know they are all the same, but this seems slightly odd to me). I'm not sure why it doesn't plot a single point waveform.

    I'm tied up at the moment - might be worth contacting customer support over this?

    Andrew

    • Cancel
    • Up 0 Down
    • Reply
    • 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.

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

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