• 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. Custom IC Design
  3. Transient simulation sweep for thermometer code

Stats

  • Replies 4
  • Subscribers 132
  • Views 141
  • Members are here 0

Transient simulation sweep for thermometer code

RA20250218276
RA20250218276 1 day ago

I need to do transient simulation for thermometer code input. Currently, I have 64 voltage sources and change the values one by one. I am sure there are other ways to do this efficiently. In short, I am looking for a way to pack these Q63 to Q0 as a design variable so I can sweep it using parametric analysis.

I am using ADE L and IC618.

  • Cancel
  • Sign in to reply
Parents
  • Frank Wiedmann
    Frank Wiedmann 1 day ago

    You might want to take a look at https://support.cadence.com/apex/ArticleAttachmentPortal?id=a1Od0000000nX1lEAE and https://support.cadence.com/apex/ArticleAttachmentPortal?id=a1O3w000009lnUWEAY (which show how to realize binary code).

    • Cancel
    • Vote Up 0 Vote Down
    • Sign in to reply
    • Cancel
  • Andrew Beckett
    Andrew Beckett 1 day ago in reply to Frank Wiedmann

    A better solution (given that this is thermometer encoded) might be a simple VerilogA model. This will do what you want:

    // VerilogA for mylib, thermdc, veriloga
    
    `include "constants.vams"
    `include "disciplines.vams"
    
    `define thermMax 63
    module thermdc(out,ref);
    electrical [0:`thermMax] out;
    electrical ref;
    output [0:`thermMax] out;
    inout ref;
    
    parameter integer code=0;
    parameter vhi=1.2;
    parameter vlo=0.0;
    genvar bit;
    
    analog begin
      for (bit=0; bit<=`thermMax; bit=bit+1) begin
        if (code>bit) 
          V(out[bit],ref) <+ vhi;
        else
          V(out[bit],ref) <+ vlo;
      end
    end
    
    endmodule

    You can then (when creating the view in Virtuoso) create a symbol. I then instantiated this, set a design variable on the code parameter (I called it CODE) and then swept that in ADE - here's part of the waveforms being shown (having problems uploading the image - will try a different route)

    Andrew

    • Cancel
    • Vote Up +1 Vote Down
    • Sign in to reply
    • Cancel
  • Andrew Beckett
    Andrew Beckett 1 day ago in reply to Andrew Beckett

    Here's the plot:

    • Cancel
    • Vote Up +1 Vote Down
    • Sign in to reply
    • Cancel
Reply
  • Andrew Beckett
    Andrew Beckett 1 day ago in reply to Andrew Beckett

    Here's the plot:

    • Cancel
    • Vote Up +1 Vote Down
    • Sign in to reply
    • Cancel
Children
  • RA20250218276
    RA20250218276 5 hours ago in reply to Andrew Beckett

    Exactly what I needed. Thank you.

    • Cancel
    • Vote Up 0 Vote Down
    • Sign in to 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.

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

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