For decades, the PCB design tools competition has been a board game. The scope of the problem was the design of a single PCB, and the competitors – Mentor, Cadence, Zuken, Altium/Protel, and the rest – all battled for supremacy with the scope, features, power, and cost of their solutions. The market for board tools actually got a little boring for years, with the major players competing mainly on cost and incumbency in the high-end (enterprise) level and in the low-cost (desktop) markets.
In the past few years, however, the battle has been heating up again. Demands on even “ordinary” board design have grown, as signal- and power-integrity became common problems with higher speed components, and IC packaging and mounting technology caused new challenges for layout. As a result, “desktop” tools began to inherit many of the features associated with “enterprise” tools. Enterprise design tool suites had to once again scramble to differentiate themselves and justify their significantly higher costs.
Today, the rules have changed again. Now, EDA companies are raising their game and elevating the scope of the problem. As today’s “systems” become larger and more complex, the notion of designing individual boards in isolation is problematic. What systems designers want is the ability to look at the system as a whole, partition the problem down into individual circuit boards, change and explore various system architectures and partitionings, and keep the entire system design coherent in the face of constant design evolution.
Mentor Graphics is the world’s largest supplier of PCB design systems, and today they announced “Xpedition Systems Designer,” the system-level cockpit for their entry into the system-level design market. Obviously, creating a tool suite for system-level design is a massive undertaking, broad and deep at the same time. And success is determined, in part, at least, by one’s definition of “system.”
Perhaps it is worth a pause at this point to consider what we mean when we throw the heavily-overloaded term “system” around in engineering. In “system on chip” we consider anything with a processor and some peripherals to be a system. At the more macro level, on the opposite end of the spectrum, we have the global wireless network functioning as an enormous system. So, when we embark on a quest to achieve system-level design, we must first agree on a suitably reasonable definition of the word.
A colleague of mine once said that a system was “the thing one level of complexity higher than you can understand.”
While that definition may seem a bit campy and absurd, it actually makes a reasonable starting point when we’re elevating our design focus up from the PCB level. If the thing we understand as a designer is our circuit board, then the thing one level higher must be our system.
Mentor seems to have taken this as a starting point as well. Xpedition Systems Designer (xSD) builds up from the company’s popular Xpedition PCB design platform, facilitating multi-board design. Most design teams today do multi-board partitioning with some combination of generic tools such as Excel or Visio. The transition to a “real” design environment comes at the PCB level, and cross-board design changes are generally communicated through email or some other less-than-synchronous system. Frequently, this is where errors happen in the design. One team makes a change that affects connectivity, and the change isn’t accurately reflected in the adjacent boards. Many a re-spin has been spawned by a backward bus, an old version of a connector, or a component that was moved off of one board but not onto the next one.
xSD lets you capture your design at a high level and then partition it into board-sized chunks while maintaining connectivity between the chunks. As the board design progresses, connectivity is automatically maintained and corrected. Changes to individual designs are propagated back up the tree and onto other affected boards. Cabling and backbone connectivity requirements are automatically tracked through the evolution of the overall design. xSD does correct-by-construction connector management, parameterized connector creation, automated mating and pin pairing, multi-net/multi-wire connections, and dynamic signal path tracing. All of which would be pretty much impossible with your typical Excel-based system design setup.
This multi-board synchronization is accomplished with the help of a “synchronization assistant.” A synchronization preview lets you see pending changes coming down from the system level that need to be applied to your design. (I know, LOVELY, just what everyone wants – a supercomputing automated to-do list.) The preview color-codes for easy recognition the parts of your design that are affected by pending changes.
Obviously, a multi-board design and partitioning tool like this could save enormous amounts of time and energy as well as countless costly design errors and board re-spins. If you’ve ever done a complex multi-board design, the potential benefits will be pretty self-evident to you. But, what’s also obvious is that any high-level tool like this must be swallowed somewhat whole by the engineering organization, and that can be a daunting challenge. In most large companies, individual teams have some amount of autonomy when it comes to board design tools and methodology, and imposing a top-down consistent methodology on all of the affected parties can be extremely difficult from a political standpoint, even if the technical and business benefits are obvious.
Of course, software is becoming an increasingly important component of system design, and xSD tackles only the hardware portion at this point. But, with Mentor’s considerable resources in the embedded software area, we wouldn’t be surprised to see an integration with the software development flow as well at some point. Additionally, there is a strong connection between board design and mechanical and enclosure design, and we wouldn’t be surprised to see more integration on that front in the future as well.
With xSD, however, Mentor has begun the bridging between disciplines that must be a part of any system-level design tool effort. Connecting a well-established board development tool suite to a multi-board, cabling, and connector planning and partitioning environment is a huge first step in the quest for correct-by-construction system design that eliminates many of the common costly errors and project delay points that currently plague designers.
Now, if we could only handle the software part that well…
One thought on “Sights on Systems”
What does your team use to coordinate multi-board system designs? How do you make sure that changes to one board are propagated correctly to other affected boards? How do you partition your system into multiple boards in the first place?