• 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. Basic Verilog-A Question

Stats

  • Locked Locked
  • Replies 5
  • Subscribers 125
  • Views 14292
  • 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

Basic Verilog-A Question

Teem
Teem over 10 years ago

Hi,


    I am new to verilog-A. I wrote a simple verilog-A code and proceeded transient simulation in Cadence ADS. My code, transient simulation setting and results are as below. I cannot figure out why the output is incorrect. By the way, there is no warning or error during the simulation.

    Thank you for your kind advice.

Best regards,

1. Verilog-A code:

2. Testbench:

3. Transient simulation:

4. Incorrect output:

  • Cancel
  • Andrew Beckett
    Andrew Beckett over 10 years ago

    Nothing obvious - I just tried this and it worked fine for me (I'm not using IC5141, but I can't see why that would matter). I also just checked with IC5141 and it was OK.

    Can you use Simulation->Netlist->Display in ADE and then post the contents? (ideally as text, rather than posting a picture of the window - it's a bit hard to cut and paste from a picture, or search pictures).

    Regards,

    Andrew.

    • Cancel
    • Vote Up 0 Vote Down
    • Cancel
  • Andrew Beckett
    Andrew Beckett over 10 years ago

    The above shows what it looked like for me in wavescan.

    I didn't run in ADE (that shouldn't matter, unless you've got some strange netlisting problem - which sharing your netlist should reveal), but instead used:

    `include "disciplines.vams"

    module testVlog(in,out);
    input in;
    output out;
    voltage in,out;

    analog begin
            V(out) <+ idt(V(in),0);
    end
    endmodule

    and then this spectre netlist (hand written):

    //
    V0 (n1 0) vsource dc=1
    I0 (n1 vout) testVlog

    ahdl_include "testVlog.va"

    tran tran stop=100

    Regards,

    Andrew.

    • Cancel
    • Vote Up 0 Vote Down
    • Cancel
  • Teem
    Teem over 10 years ago

    Dear Andrew:

        Thank you very much for testing the code for me.

        I am sorry that I cannot post the netlist as text because our MIS people restricted the privilege from doing that. Below is the hardcopy of my netlist. I did not past the verilog-A code again because it's the same as what I posted in the beginning. I also post some key information from spectre.out that might help.

        Thanks a gain for your help.

    Best regards,

    1. Netlist:

    2. Spectre.out

    • Cancel
    • Vote Up 0 Vote Down
    • Cancel
  • Andrew Beckett
    Andrew Beckett over 10 years ago

    Nothing unusual there, apart from the ancient versions of the software you're using. I don't have access to IC5141 USR5 (I have USR6 from October 2008, and an older version, USR1 won't run at all). I did also try with MMSIM72.

    With the versions I had, I ran and it all worked OK. The plot you gave only had a very short x-axis, so I'm wondering if this was a problem with the SST2 output format if you change the stop time massively between runs. What I'd suggest is closing everything (exiting icfb), deleting the simulation results directory to be sure, and then starting icfb again and entering:

    envSetVal("spectre.envOpts" "simOutputFormat" 'string "psfbin")

    before starting the Analog Design Environment window and running the simulation again. This may not be it, but I can't see anything else unusual - all looks OK to me.

    Regards,

    Andrew.

    • Cancel
    • Vote Up 0 Vote Down
    • Cancel
  • Teem
    Teem over 10 years ago

    Dear Andrew:

    So great, intruction you suggest works!

    Thank you so much clarifying this issue for me.

    Have a nice day :)

    Best regards,

    • 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