• 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. Mixed-Signal Design
  3. Modifying AMS netlist at command line before running a ...

Stats

  • Locked Locked
  • Replies 6
  • Subscribers 63
  • Views 3645
  • 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

Modifying AMS netlist at command line before running a simulation

PedroC
PedroC 7 months ago

Hi all,

As you may know, to run AMS simulations a .vams netlist is needed.

As the netlist is generated only once and used by all AMS engineers, it cannot be changed. However, very often, different case scenarios would need a variation of the original netlist. So, I would like to pass commands inside a text file, at run time (instead of having multiple config views per case), that pointed to a given block and changed the view accordingly to that command.

Example

exec block1 as vams

exec block2 as schematic

exec block3 as rcx

I can imagine something of this nature could be done the following way:

1 - Create a copy of the netlist.vams -> custom_netlist.vams

2 - Parse this netlist and replace the blocks of code as instructed by the commands inside the text file.

3 - Run the simulation on the command line using the modified netlist

I believe modifying the "config view" at command line and generating a new netlist, based on the new config view, would be ok but, as  the netlist has to be the same version as the original one, we would have to take the blocks that were modified and replace them in the custom netlist.

Do you think something like this would be feasible?

Kind regards,

Pedro

  • Cancel
Parents
  • PedroC
    PedroC 7 months ago

    Hi all,

    Let me simplify this a bit.

    As a first step, when we netlist, instead of netlisting the view that is in the config view, block1 - schematic, block2, verilog, .... the netlist should contain all cell views available per block.

    So if block1 has schematic, functional, verilog views, the netlist should have all of these views too. This way, it would be possible to grab the view we want to use.

    Of course there's more into it than this simplified approach, but this would be a good starting point.

    Is this possible? Maybe this information is there but in different netlists - netlist.scs, netlist.vams, etc

    Kind regards,

    Pedro

    • Cancel
    • Vote Up 0 Vote Down
    • Cancel
Reply
  • PedroC
    PedroC 7 months ago

    Hi all,

    Let me simplify this a bit.

    As a first step, when we netlist, instead of netlisting the view that is in the config view, block1 - schematic, block2, verilog, .... the netlist should contain all cell views available per block.

    So if block1 has schematic, functional, verilog views, the netlist should have all of these views too. This way, it would be possible to grab the view we want to use.

    Of course there's more into it than this simplified approach, but this would be a good starting point.

    Is this possible? Maybe this information is there but in different netlists - netlist.scs, netlist.vams, etc

    Kind regards,

    Pedro

    • Cancel
    • Vote Up 0 Vote Down
    • Cancel
Children
  • PedroC
    PedroC 7 months ago in reply to PedroC

    Anyone please?

    • Cancel
    • Vote Up 0 Vote Down
    • Cancel
  • tpylant
    tpylant 7 months ago in reply to PedroC

    I'm trying to think how this would work. To netlist, you have to have a config. Therefore, you have specified which views you want to use. To do what you want (where you have access to all views available) would require manual effort.

    Thinking out loud, maybe you could netlist the schematics and then create references back to the HDL views via links or file lists. Again, this is all just me rambling and pure theory.

    Tim

    • Cancel
    • Vote Up +1 Vote Down
    • Cancel
  • PedroC
    PedroC 7 months ago in reply to tpylant

    Hi Tim,
    Thanks for replying.

    Yes, in first place, a netlist is generated, which is the golden one used by everybody. Then I should make a local copy of it and run this hacked version instead.

    I've managed to hack the files netlist.vams and the expand.cfg, to accomplish this in one direction only that is schematic to model.

    I accomplished this by removing/commenting the block(s) in schematic view inside verilog.vams and add a line in the expand.cfg to instantiate the block.

    This worked well to replace a schematic view with a verilog-a model. The challange will be to go the other direction, inserting the missing schematic block information in the netlist !
    I think I would have to grab that information from netlist.scs maybe.

    Could I add just an include statement in the netlist?

    Kind regards,

    Pedro

    • Cancel
    • Vote Up 0 Vote Down
    • Cancel
  • Andrew Beckett
    Andrew Beckett 7 months ago in reply to PedroC

    Pedro,

    This is interesting - you appear to be trying to achieve something close to how the original cellview-based netlisting approach worked in what was called the "Eden" flow in the early days of AMS. In this case, each cellView was netlisted (just as a single cellView) typically at check-and-save time, and could also be compiled at the same time. Then when a simulation was done (via a plugin in the hierarchy editor), it typically needed just to re-elaborate and simulate based on the config being an input to elaboration.

    This flow wasn't particularly popular with many customers as it was not in ADE, and also gradually the digital verification world also moved away from the three-step (compile, elaborate, simulate) flow to using irun and then xrun.

    The key in your case is going to be generating all the possible views you might ever need and then trying to configure the design - not so simple in a combined netlist flow.

    Andrew

    • Cancel
    • Vote Up +1 Vote Down
    • Cancel
  • PedroC
    PedroC 7 months ago in reply to Andrew Beckett

    Hi Andrew,

    Thanks a lot for your inputs.

    I will keep all of you posted as, hopefully, I make progress.

    Kind regards,

    Pedro

    • 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