• 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. SKILL pCell automated testing

Stats

  • Locked Locked
  • Replies 2
  • Subscribers 125
  • Views 13147
  • 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

SKILL pCell automated testing

tashah
tashah over 14 years ago

Is there any way to automate pCell testing?

I have created a pCell. Now, for each parameters, I have some expected inputs. Is there any way, that I can define expected output and given all these test-cases, I get results saying fail/success.

Thanks.

  • Cancel
  • skillUser
    skillUser over 14 years ago

    Hi,

    You could certainly write some foreach loop(s) or for loop(s) to iterate over your parameter sets and instantiate the pcell devices with those parameters, also changing the placement location from one iteration to the next, but I do not know how easy it would be to code the testing of the placed devices against expected results.  For example, you might use something like the following:

    
    cv = geGetEditCellView()
    pcell = dbOpenCellViewByType("pcellLib" "pcellDevice" "layout")
    xstep = 1
    x = y = 0
    foreach((len wid) list(1u 1u 2u 2u 3u 3u) list(40n 90n 40n 90n 40n 90n)
      dbCreateParamInst(cv pcell sprintf(nil "I%d" x) x:y "R0" 1
        list(list("l" 'float len) list("w" 'float wid))
      )
      x = x + xstep
    )
    

    If you have lots of parameters or lots of combinations, then nest the for/foreach loops to acheive the result.  Also in that case you can increase the y by "ystep" after every few steps, for example when mod(x 5)==0 reset x back to 0 and increase y by ystep.In that case you will need to modify the instance naming scheme also, perhaps a combination of x and y? The above code is not tested, I just typed it in here, so it may have typos etc. but it should help to get you started.

    You might find it easier to create the device instances automatically like the above (perhaps with a label underneath to say what the parameters were?) and then just visually inspect each instance - the hard work of creation and placement was done by the code...

    I hope that this helps you.

    Regards,

    Lawrence.

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

    Cadence also has a tool called "STEP" for automated testing such as this. You may want to contact your Cadence representative to find out more.

    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