• 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. A divide by zero exception has occurred

Stats

  • Locked Locked
  • Replies 3
  • Subscribers 125
  • Views 15381
  • 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

A divide by zero exception has occurred

BaaB
BaaB over 6 years ago

I got the warning below. M4 is a transistor and when I followed the hierarchy  I couldn't find the parameter "r1". 

What's it? 

WARNING (ASL-6236): "Internal (bsource)" 0: I529.I4.M4.r1: A divide by zero exception has occurred. Therefore, zero will be replaced with a small non-zero value of 1e-5.

(version  IC6.16-64b.101)

  • Cancel
  • Andrew Beckett
    Andrew Beckett over 6 years ago

    Look in the spectre netlist (input.scs) for the MOS device M4. Find out what the "model" name of the transistor is. Most likely this model is actually a subckt defined within the model files incuded via Setup->Model Libraries so look through those files to find the definition of the subckt. Within that there's probably an instance called r1 which is a bsource, and that has some kind of expression which has a divide by zero in it for some reason - maybe inspecting it will reveal why.

    This is a bit of a guess given that i know nothing about what technology you're using, but it's a reasonably likely setup.

    Regards,

    Andrew.

    • Cancel
    • Vote Up 0 Vote Down
    • Cancel
  • BaaB
    BaaB over 6 years ago in reply to Andrew Beckett

    Thanks! I found that but the expression is really complex. I think I used the same transistor in another circuit and it didn't have this problem. 

    M4 (net25 net023 VDDH VDDH SUB) pa8_g5a_nbl_mac l=300n w=20u \
    ad=2.486e-11 as=9.6e-12 pd=26.52u ps=41.92u nf=2 dti=0 multi=2

    and this is for r1:

    r1 (n1 n11) resistor r=(rdc0*wfac_res+(rd0 * exp (rd1* v(n2,n3)) * tanh(pow((1e-5+abs(v(n1,n3))),vdeff)/vdmr)
    + * (1+rdb0*v(n4,n3)) * rd_weff) *drd) *((v(n1,n3)<0)?1:0)+ (rdc0*wfac_res+(rd0rev
    + * tanh(pow(1e-5+abs(v(n2,n1)),vgeffrev)/vgmrrev) * tanh((1e-5+abs(v(n1,n3)))/(vsmr0rev
    + * exp(vsmr1rev * v(n2,n1)))) * rd_weff_rev)* drd )* (1-(v(n1,n3)<0)?1:0)
    + m=multi*nf

    • Cancel
    • Vote Up 0 Vote Down
    • Cancel
  • Andrew Beckett
    Andrew Beckett over 6 years ago in reply to BaaB

    Without knowing the context of the message, this might be a warning that appears temporarily during calculations but doesn't adversely affect the final result.

    I'd first recommend ensuring that you're using a recent version of spectre (I suspect not, given that you're using a rather elderly IC version). If the problem just shows up at the beginning, it's probably OK - but any concerns you have should be raised with the foundry who supplied the model files.

    Regards,

    Andrew.

    • 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