• 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 SKILL
  3. Porting Schematic from one voltage domain to other

Stats

  • Locked Locked
  • Replies 12
  • Subscribers 149
  • Views 18685
  • 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

Porting Schematic from one voltage domain to other

Utkarsh Arora
Utkarsh Arora over 6 years ago

Hi All,

I wanted to port a LevelShifter ckt which has VDD, VDD150, and VSS as the PG PORTS to VDD, VDD180, and VSS.  The fets used in 1.5V domain is of a different flavor when compared to the fets in 1.8V domain. I want to write a script for this task as I want to run this on an entire library. (Level Shifter is just an example here, the circuit may contain different components like resistors and capacitors also but we only need to change the fets as of now).

Please let me know a way how to do this using SKILL.

Thanks

Utkarsh

  • Cancel
Parents
  • RiadKaced
    RiadKaced over 6 years ago

    Hi Utkarsh Arora,

    In order for you to achieve this migration successfully, not only you need to swap the devices but you also have to update some parameters, for example of you want to keep a constant W/L ration from the 1.5V to the 1.8V domains than you need to recalculate the params for each device. When you update parameters, you must also trigger the underlying callbacks. Transistors are fairly easy to port, however when you posr resistors and capacitors, you have also to deal with extra/missing pins, device default orientations ...etc.

    All of this would require you to build an automation that involves many parts to deal with I just mentioned. There are some scripts that are already available on Cadence's website, you can build on them. here is what you need for starters:

    1. How can I replace specific cells with other specific cells in my design cellview using SKILL?
    2. How can I update instance properties in a schematic using SKILL?
    3. How to call CDF callbacks procedurally from SKILL to update CDF parameters?

    Let me know if you need more specifics.

    Cheers,

    Riad @feb22eda

    • Cancel
    • Vote Up 0 Vote Down
    • Cancel
  • Utkarsh Arora
    Utkarsh Arora over 6 years ago in reply to RiadKaced

    Hi Riad,

    Thanks a lot for the reply. Actually my requirement is a little different, So for now Let us imagine that Mostype is the only thing that we should change. Now the above code changes all the nmos to nmos44 for example, but it should only change the Nmos type if any of its terminal is connecting to a VDD180 supply, If the nmos is connected to VDD only than it should not be change.

    Sorry for not being very clear the first time.

    Thanks

    Utkarsh

    • Cancel
    • Vote Up 0 Vote Down
    • Cancel
  • RiadKaced
    RiadKaced over 6 years ago in reply to Utkarsh Arora

    Hi Utkarsh,

    OK, understood. In this case, you need first to write a function that grabs the devices of interest, i.e. that match the name and connectivity criteria then call the update functions I mentioned earlier. I have written a procedure that can help you grab those device please check it out @ FTTgetDevicesConnectedToNet.il

    Cheers,

    Riad

    • Cancel
    • Vote Up 0 Vote Down
    • Cancel
  • Utkarsh Arora
    Utkarsh Arora over 6 years ago in reply to RiadKaced

    Thankyou Riad,

    Above script gives the devices connected to any net, So this would change the devices that are connected to VDD180 as in my situation here. Not let us take an example of the below schematic. According to the above procedure it will change the device A and D , How would I be able to find the devices B and C(It is a dummy schematic, It might have series of resistance and capacitance in between)

    Thanks

    Utkarsh

    • Cancel
    • Vote Up 0 Vote Down
    • Cancel
  • RiadKaced
    RiadKaced over 6 years ago in reply to Utkarsh Arora

    Hi Utkaresh,

    I'm not sure I understood ... If you run the procedure as following (Change libName/cellName for the actual names):

    FTTgetDevicesConnectedToNet('("libName" "cellName") "VDD180")

    The above command will only get MOS A as it is the only one which has a pin directly connected to VDD180, and probably B as well if its bulk is connected tp VDD180. It won't change device D though. Anyways, I'm not sure I understand what you actually mean. The best way is for you to lay out a clear spec instead of feeding bits and pieces of information over time, it's easier to put down a clear spec of the criteria of what/when you want to change a device. 

    Riad

    • Cancel
    • Vote Up 0 Vote Down
    • Cancel
  • Utkarsh Arora
    Utkarsh Arora over 6 years ago in reply to RiadKaced

    Riad,

    Sorry for feeding the information in bits. I want to extract the C and D device and change them only if my A device is connected to VDD180 not VDD150, because my original fet works properly in VDD150 domain. I think you got it now.

    Utkarsh

    • Cancel
    • Vote Up 0 Vote Down
    • Cancel
  • RiadKaced
    RiadKaced over 6 years ago in reply to Utkarsh Arora

    What about device B? What if you have transistors A, B, C, D, E, F, all stacked between VDD180 and GND, which ones would you change to the 1.5V ? 

    • Cancel
    • Vote Up 0 Vote Down
    • Cancel
  • Utkarsh Arora
    Utkarsh Arora over 6 years ago in reply to RiadKaced

    I have to change them to a higher voltage. So if all are stacked between VDD150 and GND all fets need to be changed to a new flavor that supports VDD180.

    • Cancel
    • Vote Up 0 Vote Down
    • Cancel
  • RiadKaced
    RiadKaced over 6 years ago in reply to Utkarsh Arora

    In this case you have to adapt the SKILL code I shared and trace the stack down from VDD to VSS, keep track of all transistors in a list then perform the changes on those transistors only. Again the idea is to build your own code that first collects the transistors that fit the change criteria then apply the changes. The SKILL codes I provided should be sufficient. 

    • Cancel
    • Vote Up 0 Vote Down
    • Cancel
  • Utkarsh Arora
    Utkarsh Arora over 6 years ago in reply to RiadKaced

    Ok
    This net tracing needs to be done, I thought may be cadence have a easier solution for this. Thanks Riad by the way.

    Utkarsh

    • Cancel
    • Vote Up 0 Vote Down
    • Cancel
  • RiadKaced
    RiadKaced over 6 years ago in reply to Utkarsh Arora

    You probably want to check out Power Verification solutions but I have no experience with them. Look at https://community.cadence.com/cadence_blogs_8/b/ms/posts/verifying-power-intent-in-analog-and-mixed-signal-designs-using-formal-method

    • Cancel
    • Vote Up 0 Vote Down
    • Cancel
Reply
  • RiadKaced
    RiadKaced over 6 years ago in reply to Utkarsh Arora

    You probably want to check out Power Verification solutions but I have no experience with them. Look at https://community.cadence.com/cadence_blogs_8/b/ms/posts/verifying-power-intent-in-analog-and-mixed-signal-designs-using-formal-method

    • Cancel
    • Vote Up 0 Vote Down
    • Cancel
Children
  • Utkarsh Arora
    Utkarsh Arora over 6 years ago in reply to RiadKaced

    Okay Riad, will have a look. Thanks

    • 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