• 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. Ohm My God!

Stats

  • Locked Locked
  • Replies 4
  • Subscribers 125
  • Views 10967
  • 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

Ohm My God!

CADcasualty
CADcasualty over 4 years ago

I have a circuit that involves monitoring the voltage across a 66k ohm resistor with a Schmitt trigger. I got the circuit working just fine in Spectre and then layed it out - however I needed to tweak the 66k resistor from the original series of 6 segments to a series of 4 segments to get LVS to pass. I subsequently resimmed the schematic with the reconfigured 4-segment 66k resistor and the sim failed :-/. I thought maybe I was on some crazy cliff edge so I started tweaking the resistor value but it wasn't until I had changed the 4 segment total resistance to about 64k before I got to the same place as the 6 segment 66k resistor! I'm guessing the schematic is calculating the resistance differently to the simulator, however the process I'm using is what I would have thought was a fully ironed out, highly mature, 20 year old TSMC 0.18um CMOS process. I'm not fully sure how to debug this. I've attached some screenshots that I hope can be of assistance.

In addition to the attached pictures, I noticed that if I enter an illegal value (I used xxx) into the total resistance field of the Property Editor in the schematic that a formula appears for the total length and segment length. Those formulas are:

Total length:
(1e-06-40.6n)*(xxx*1/6-2*0.17m/(1e-06-(-0.14u)))/335.0+0*6
Segment length
(1e-06-40.6n)*(xxx*1/6-2*0.17m/(1e-06-(-0.14u)))/335.0+0

  • Cancel
  • Andrew Beckett
    Andrew Beckett over 4 years ago

    It's not really clear to me what the actual problem is here. Using "xxx" is not an "illegal value" - it just means that the PDK has support for variable names in those fields, and when it does so, it changes to use an equation rather than showing a fixed derived value computed in the callbacks.

    I'm going to remove the middle screenshot because that's TSMC IP - you should not be sharing their model in a public place.

    Perhaps you can clarify what the issue is here, but I wouldn't expect the resistance to match exactly what is shown in the edit properties form - the model has voltage dependency, whereas the static properties obviously can't take that into account and are probably computing it based on some nominal bias.

    Andrew.

    • Cancel
    • Vote Up 0 Vote Down
    • Cancel
  • CADcasualty
    CADcasualty over 4 years ago in reply to Andrew Beckett

    Sorry about being vague about the actual problem at hand, and also for showing the resistor model details when I shouldn't have! At the highest level, my issue is that I can make a 66k resistor in my schematic out of either 4 or 6 series segments and that in doing so it appears the simulator sees about a 2k ohm difference in the total value passed to it (which is a massive difference). It's the same kind of poly resistor so I certainly don't expect the two versions to behave so differently at the same temperature or voltage for the same simulation. It's reasonable to say that I should better believe the simulation result from the 4 segment resistor I ended up laying out, but I'm just blown away by the huge difference in effective final value from the two versions. I thought it might have something to do with contact resistances (the width supports 2 contacts at each end), but even those numbers don't add up to produce such a big effective difference. I was hoping for some clues to this so I could learn something moving forward. I've submitted many designed circuits to layout and blindly accepted minor topology changes to resistors and capacitors that all ended up with the same value, and now I'm worried about doing so moving forward. I should also add that the resistor width stayed the same during the re-segmentation - had that changed I would have definitely been tweaked.

    Also, I'm aware the resistors can take on variable names for their value - I only added the "xxx" as the value because it exposed the underlying formula on the off-chance it might be useful. 

    • Cancel
    • Vote Up 0 Vote Down
    • Cancel
  • Andrew Beckett
    Andrew Beckett over 4 years ago in reply to CADcasualty

    It's probably a question for TSMC anyway, as it's their technology, their models and their PDK...

    Maybe somebody with experience of this particular process node/option may be able to answer based on their experience (I'd have to get access to it to take a look, so that's not something I can do for a forum question unless I happened to have easy access to the technology variant already).

    Andrew.

    • Cancel
    • Vote Up 0 Vote Down
    • Cancel
  • CADcasualty
    CADcasualty over 4 years ago in reply to Andrew Beckett

    Understood - appreciate your inputs anyway. 

    • 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