Cadence® system design and verification solutions, integrated under our Verification Suite, provide the simulation, acceleration, emulation, and management capabilities.
Verification 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.
More Support Log In
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 technology. 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.
Get email delivery of the Cadence blog featured here
Embedded software development has become the main pain point in many of today's complex systems on chip (SoCs). Is it time to recognize software as the "center of gravity" in SoC development, and to work towards a continuous co-development of hardware and software throughout the design and verification flow?
Jim Ready thinks so, and you should listen, because this is the man who developed the first commercially viable real-time operating system (RTOS) and who later pioneered embedded Linux commercialization. Today, Ready is Chief Technology Advisor for Software and Embedded Systems at Cadence. He recently wrote an article for RTC Magazine that details his thinking about a "software-driven SoC development" flow.
In early 2013, I blogged about "software-driven verification," which is one aspect of software-driven development. With software-driven verification, engineers use software running on an embedded processor model to build testbenches for hardware verification. It's a reality today but is generally an ad-hoc methodology with minimal tool support. But software-driven verification is just one part of a broader vision, and I recently talked with Ready to learn what that vision is.
The Tyranny of Software
According to analyst Gary Smith, the industry finally has a "true" electronic system level (ESL) design and verification flow. The Cadence System Development Suite (see figure below) provides four tightly linked hardware/software development platforms including virtual prototyping (Virtual System Platform), simulation (Incisive), acceleration/emulation (Palladium XP), and FPGA prototyping (Rapid Prototyping Platform).
With all these efforts to facilitate early software development, what could possibly go wrong?
Massive amounts of software, that's what. "The driving force is the tyranny of software and what it takes to execute it," Ready said. He noted that it may take a billion instructions to boot Android or Linux, and then you have to keep running the OS in order to get to the software you actually want to debug. The amount of software that needs development and debugging has become so massive that it threatens to roll back some of the progress that's recently been made.
Moreover, Ready noted, there is "a gap between theory and practice" at many semiconductor and systems companies. People have been talking about hardware/software codesign for more than 20 years, but there are many reasons why it's often not done. For example, there are structural issues in the industry, one of which is the independent development of hardware and software. Android is an example of such an approach.
With Android, Ready noted, "your hands are tied - it has whatever interfaces it has, and they may or may not match the hardware you're developing." While SoCs today are comprised mostly of reused semiconductor IP, most have some custom-designed features as well. If hardware designers are not considering the impact on software, they might design a hardware subsystem that is not recognized by Android.
Hardware engineering change orders (ECOs), as inevitable as death and taxes, are another problem. "A small change in hardware can make a huge difference," Ready said. "Changing one register can end up requiring a costly rewrite of a driver, and potentially parts of the Linux kernel." With a software-driven development approach, the impact of a hardware change on software would be a key consideration.
What's the Ideal Situation?
A software-driven SoC development approach is conceptually fairly simple. Engineers and architects start with a system design. They define some functionality, they select an OS, and they partition hardware and software. "At a minimum, the software guys are in the room," Ready said. "Best case is where there's a virtual interface that doesn't change. The center of gravity is a massive amount of software, and you want to keep it as constant as possible. That's what layering and virtualization and drivers are all about."
As a software developer, Ready said, "I don't want to know which hardware-compliant device driver I have. I want to forget all that, and let the virtualization do that." SoCs change quickly, Ready noted, and what's required is "the ruthless abstraction of all possible devices." This means hardware can change and software developers might never notice the difference.
One hallmark of a software-driven flow is "meaningful" software execution speeds. Further, software execution must be supported during all phases of SoC hardware development. The System Development Suite is a huge step towards this goal, but there is more to be done. For example, the Palladium XP emulation system offers a unique combination of speed, RTL accuracy, and signal visibility, but it can still take many hours to boot Android or Linux.
Hybrid Approach Accelerates Software Execution
In September, Cadence introduced the Palladium XP II emulation system. It allows a new "hybrid" use model that combines virtual platform models with emulation, and it's a good example of software-driven SoC development. With the hybrid model (see diagram below) fast processor models run on a host workstation, while RTL runs inside the emulator. Customer experience suggests that hybrid mode users can boot an OS up to 60X faster, and run hardware/software verification up to 10X faster, compared to conventional emulation use models.
At the Design Automation Conference in June 2013, a speaker from AMD showed how his company is using the hybrid mode (called "virtual platform co-emulation") with Palladium. A previous blog post reports on this experience.
Thanks to the hybrid model, Ready said, large amounts of software can run with the Palladium. You can get through the OS bring-up process quickly and then "turn on the magnifying glass" to look at RTL code with full emulator visibility. At this point you're limited to emulator speeds (about a MHz) but you are able to get to what you want to see a lot more quickly.
More needs to be done to bring software to center stage in the SoC development process. Virtual prototyping is enabling early software development at many companies, but there's always a need for more models. FPGA prototyping runs much faster than emulation, but it requires mature RTL, and it takes time to partition that RTL code into FPGAs. What's needed, Ready said, is "the integration of all the execution environments and the optimization of them."
As for Cadence, Ready noted, "in each case we have a strategy for hitting the limitations that are exacerbated by large amounts of software on all of our execution environments. And that's pretty neat."
For a deeper perspective on software-driven SoC development, see Jim Ready's RTC Magazine article.
Related Cadence Blog Posts
Q&A: Jim Ready Discusses EDA Connection to Embedded Software Development
Software-Driven Verification - a Hot Topic for 2013?
Gary Smith Webinar: "The True ESL Flow is Now Real"
Palladium XP II - Two New Use Models for Hardware Verification
Designer View: New Emulation Use Models Employ Virtual Targets