Cadence® system design and verification solutions, integrated under our System Development Suite, provide the simulation, acceleration, emulation, and management capabilities.
System Development Suite Related Products A-Z
Cadence® digital design and signoff solutions provide a fast path to design closure and better predictability, helping you meet your power, performance, and area (PPA) targets.
Full-Flow Digital Solution Related Products A-Z
Cadence® custom, analog, and RF design solutions can help you save time by automating many routine tasks, from block-level and mixed-signal simulation to routing and library characterization.
Overview Related Products A-Z
Driving efficiency and accuracy in advanced packaging, system planning, and multi-fabric interoperability, Cadence® package implementation products deliver the automation and accuracy.
Cadence® PCB design solutions enable shorter, more predictable design cycles with greater integration of component design and system-level simulation for a constraint-driven flow.
An open IP platform for you to customize your app-driven SoC design.
Comprehensive solutions and methodologies.
Helping you meet your broader business goals.
A global customer support infrastructure with around-the-clock help.
24/7 Support - Cadence Online Support
Locate the latest software updates, service request, technical documentation, solutions and more in your personalized environment.
Cadence offers various software services for download. This page describes our offerings, including the Allegro FREE Physical Viewer.
The Cadence Academic Network helps build strong relationships between academia and industry, and promotes the proliferation of leading-edge technologies and methodologies at universities renowned for their engineering and design excellence.
Participate in CDNLive
A huge knowledge exchange platform for academia to network with industry. We are looking for academic speakers to talk about their research to the industry attendees at the Academic Track at CDNLive EMEA and Silicon Valley.
Come & Meet Us @ Events
A huge knowledge exchange platform for academia. We are looking for academic speakers to talk about their research to industry attendees.
Americas University Software Program
Join the 250+ qualified Americas member universities who have already incorporated Cadence EDA software into their classrooms and academic research projects.
EMEA University Software Program
In EMEA, Cadence works with EUROPRACTICE to ensure cost-effective availability of our extensive electronic design automation (EDA) tools for non-commercial activities.
Apply Now For Jobs
If you are a recent college graduate or a student looking for internship. Visit our exclusive job search page for interns and recent college graduate jobs.
Cadence is a Great Place to do great work
Learn more about our internship program and visit our careers page to do meaningful work and make a great impact.
Get the most out of your investment in Cadence technologies through a wide range of training offerings.
Overview All Courses Asia Pacific EMEANorth America
Instructor-led training [ILT] are live classes that are offered in our state-of-the-art classrooms at our worldwide training centers, at your site, or as a Virtual classroom.
Online Training is delivered over the web to let you proceed at your own pace, anytime and anywhere.
Exchange ideas, news, technical information, and best practices.
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.
It's not all about the technlogy. Here we exchange ideas on the Cadence Academic Network and other subjects of general interest.
Cadence is a leading provider of system design tools, software, IP, and services.
I am an end user layout engineer. I am not a developer of PDKs or Pcells, etc. so I am at the mercy of what is given me to use for the most part. I do develop SKILL code for automation of the layout task. One of the problems we encounter is when we abut pcell mos devices and the source/drain of one of the abuted devices drops off. That is all fine except sometimes when you pull the devices back apart the source/drain does not come back. This is a problem and probably has something to do with the way the pcell was created. If I happen to instantiate any new pcells of the same type the source/drain will also be missing on the new device as well.
As an end user in most libraries I found that if I view the properties of the pcell most our libraries have a 'disable callback' button I can click on, apply the form, then click off and re-apply the form and the source/drain comes back and all is well.
My issue is that I am developing some Skill code that copies a selected pcell into another view, flattens it and extracts data but I need the source/drain to always be there so I can extract data off the shapes. Is there a way I can trigger this new view copy to get the source/drains back? Is there a Cadence functional way to maybe disable and re-enable calbacks to it to maybe do with Skill code what I do manually? I've been looking and can't seem to find an answer.
RonSillThis is a problem and probably has something to do with the way the pcell was created.
Actually it's probably more to do with how the abutFunction for the device has been created. This is supposed to adjust the parameters on the pcell during an abutment or unabutment event - and clearly it is not doing the right thing. This is a fault of the PDK (most likely), and you should take it up with whoever created or supplied the PDK.
RonSillAs an end user in most libraries I found that if I view the properties of the pcell most our libraries have a 'disable callback' button I can click on, apply the form, then click off and re-apply the form and the source/drain comes back and all is well.
I have never seen such an option before, so it must be a peculiarity of your PDK/library. There is no generic capability to disable callbacks, so something must have been coded specially for your PDK. As such I can't answer your last paragraph, because it is all very specific to your design kit. I'd need to know what the parameters are that contrl the source/drains. Also, modifying the instances by SKILL won't trigger the CDF callbacks anyway - so it should just be a matter of setting the appropriate (whatever they are) parameters to control the source/drains.
In reply to Andrew Beckett:
Thank you for your reply. It confirms what I thought might be the answer. I do believe the callback in our param form is custom to us. Unfortunately I as an end user I have no control over this and also want to make my Skill code as generic as I can since we use many PDKs at my place and they are bound to be inconsistent in how, and even if, this callback function is even done.
I've been exploring a new angle. Maybe use the pcSkillGen and pcGenCell options. I can generate the procedure code that generates the cell, read and edit the code and read it back in. I noticed that when I generate the procedure on a mos device that has it's S/D gone there is a list parameter called "leftDiffState" "string" "SharedWithContact" (or "rightDiffState") and if I delete this/these parameters from the list and read everything back in then the S/D will come back. My only question is that since I use a Cadence function to generate this I wonder if the procedure it dumps out will always use the same named parameter for this condition. I plan on trying it out on a few different PDKs to see but I wonder if you know for sure.
So if this is consistent then my next step wil be to incorporate some Skill code to read the file in, find the proper lines, and write the file back out without those lines, then load and execute the procedure.
Does this sound like a reasonable approach?
In reply to RonSill:
When you dump the pcell code, you are looking at the superMaster of the pcell. This does not include the abutment code but the two parameters you mentioned, leftDiffState and rightDiffState sound like that they control the diffusion during abutment.
The abutment function should have saved the original state of the parameters on the abutment group but it doesn't look like it. You could find the abutment function assigned to the pins and fix it or you could restore the default value to the parameter once you have un-abutted the instances.