• 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. convertion of oldtech sechmatics to newtech schematics

Stats

  • Locked Locked
  • Replies 7
  • Subscribers 143
  • Views 14614
  • 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

convertion of oldtech sechmatics to newtech schematics

siva 234
siva 234 over 12 years ago

Hi Sir,

I have one technolgy schematics,in that having mos's(p&n mos) and all the components like caps &resistors ,So i want to replace that mos's of old technology to new another technology mos's .

if it is possible to convert with SKILL scrips are not please let me know

Thanks in adavance

venkatasiva.j

  • Cancel
  • Andrew Beckett
    Andrew Beckett over 12 years ago

    See the SKILL code in this post. If you need to call CDF callbacks after the change, you might also need abInvokeCdfCallbacks.il which is in this Designer's Guide post.

    Kind Regards,

    Andrew.

     

    • Cancel
    • Vote Up 0 Vote Down
    • Cancel
  • siva 234
    siva 234 over 12 years ago

     

    Thank you So much Andrew .

     

          whatever u given it's working but  I want  scalling of  mos widths& lengths by using one expression ,then how to write the expression

    expression:

    i want two expressions

    1. for digital schematics length fine ,but width is same as  W/L of old tech mos'es

    2.for analog schematics length will change 1/sqrt(2) of old tech length   and width is same as   W/L of old tech mos'es

      change in whatever you given fixit() skill script or other scrip required

     procedure(fixIt(inst parName val)
      printf("Fixing %s on %s\n" parName inst~>name)
      ; double the value. Note evalstring is not really a good idea,
      ; just in case the parameter value is some legal SKILL which could do
      ; something unexpected (e.g. "exit()" !)
      sprintf(nil "%n" evalstring(val)*2)
      )

    please  help on this

    Thanks in Advance 

    venkata siva

     

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

    First of all you'll have to distinguish between analog and digital schematics - I don't know what criteria you use to determine which is which.

    It's also not clear what you're actually trying to change - it doesn't make sense that a width would be the same as the old W/L (surely W/L will be dimensionless if you're dividing the width by the length).

    Maybe you're just saying that for digital schematics you keep the W and L the same as before, but for analog schematics the length becomes the L/sqrt(2) and leaves the width the same?

    If so, then it would be:

    procedure(MyFixLength(inst parName val)
      if(MyIsAnalog(inst~>cellView) then
        aelSuffixNotation(cdfParseFloatString(val)/sqrt(2))
      else
        val
      )
    )

    Note I'm using cdfParseFloatString and aelSuffixNotation to avoid using evalstring and sprintf (the aelSuffixNotation will make the expression prettier).

    You'd have to write MyIsAnalog() to take a cellView id to determine whether analog or digital.

    And then you'd specify MyFixLength as the function call as the third argument for mapping the length in the config file.

    Regards,

    Andrew.

    • Cancel
    • Vote Up 0 Vote Down
    • Cancel
  • siva 234
    siva 234 over 12 years ago

    andrew , what iam saying is 

    I divided old technology schematics into two libraries 1.digital library 2. analog librarey

    digital library: 

    I want to change only old tech  width , old tech length is converted to new tech length(instance of new tech length like 40nm)

                     Eg: old tech    w=100n L=60n

                           new tech   w=x n  L=40n   ===>x=(w of old tech*(2/3))  keeping W/L constant in old &new technologies

    so finallay i want expression is

    old tech width * (2/3) =new tech width

    old tech length  =new tech length ( automatic change  instrance of new tech what ever you given code :procedure(fixIt1(inst parName val )
                                                                                                           printf("Fixing %s on %s\n" parName inst~>name)
                                                                                                             )

    analog library: I want to chane length and width.

    expresssions:

    new tech width = old tech width * (3/4)         

    new tech length=old tech length * (1/sqrt(2))

     

    Thanks for each quick replying of this issue.

     

    Thanks in advance,

    venkatasiva      

             

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

    Venkatasiva,

    Isn't this just a matter of defining:

    procedure(MyFixDigital(inst parName val)
      case(parName
        ("w" aelSuffixNotation(cdfParseFloatString(val)*2.0/3.0))
        ("l" "40n")
      )
    )

    procedure(MyFixAnalog(inst parName val)
      case(parName
        ("w" aelSuffixNotation(cdfParseFloatString(val)*3.0/4.0))
        ("l" aelSuffixNotation(cdfParseFloatString(val)/sqrt(2)))
    )

    And then having two config files - one for your analog library conversion, and one for your digital library conversion. For the w and l parameters, you'd either reference MyFixDigital or MyFixAnalog - the above functions would take care of both w and l.

    Regards,

    Andrew.

    • Cancel
    • Vote Up 0 Vote Down
    • Cancel
  • siva 234
    siva 234 over 12 years ago

    Sorry Andrew, I tried as you suggested but its not working. It replaces original parameters with default parameters. Please let me know about this.

    My conv.config is
      (
      (nil
    fromLib     "tsmcN65"
        fromCell    "nch"
      toLib   "ts018_prim"
       toCell  "nmos_18"
           runCallbacks t
       params (
           ("w" "width" MyFixDigital )
           ("l" "length" MyFixDigital )
           )
       addProps (

             )
       )
    (nil
       fromLib     "tsmcN65"
       fromCell    "pch"
       toLib   "ts018_prim"
       toCell  "pmos_18"
       runCallbacks t
       params (
           ("w" "width" MyFixDigital)
           ("l" "length" MyFixDigital)
           )
       addProps (

             )
       )
    )
    I have used the below code for digital library schematics

     procedure(MyFixDigital(inst parName val)
      case(parName
        ("w" aelSuffixNotation(cdfParseFloatString(val)*2.0/3.0))
        ("l" "40n")
      )
    )

    Result: All pmos and nmos devices are converted from tsmcN65 to ts018_prim. But width and length values are default values (minimum values).


    Thanks in advance,
    Venkatasiva.j
    • Cancel
    • Vote Up 0 Vote Down
    • Cancel
  • Andrew Beckett
    Andrew Beckett over 12 years ago

    Venkatasiva,

    Are the parameters actually called "width" and "length" in the technology you're migrating to? If you rename "w" to "width" and the new technology doesn't use "width" but uses "w" (or some other parameter name) then it's hardly surprising that you get the default values.

    The comments in the header of the code explain that the idea is that the params mapping allows you to cope with the fact that the parameter was called one thing in the old technology, but something else in the new. You need to find what the corresponding CDF parameters are called in the old and new technologies.

    BTW Isn't ts018 a 0.18um technology? If so, does migrating the length to 40nm make sense?

    Kind 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