Design Data Management
The 'endgame' for any board design is to generate and manage data from that design for building the physical object captured by that design – and with the utmost integrity. However, the need to ensure high-integrity data often walks hand-in-hand with layers of bureaucratic 'red tape', resulting in the designer being confined to design according to formalized processes, locking down design changes to ensure minimal impact to the integrity of the design data.
Considering the electronics development process, Altium Designer's unified platform – with a single unified data model representing the system being designed – has been harnessed to effectively and efficiently tackle the problem of providing the high data integrity, while ensuring that the demand for product enhancement and innovation can continue to be satisfied with complete design freedom.
However, the very objects used in a design are also data in their own right. These include components, sheets of circuitry, and even template and full reference designs. Each of these is a uniquely identifiable ingredient of design, and may be re-used across multiple, different designs. Each has to be created. Each may be modified in some way over time. Each will have a definitive lifespan. In short, these are data entities which also need to be managed under the umbrella of a design data management system.
To provide a system that caters for all aspects of data management – from the humble domain model to the board design itself – Altium implements a Design Data Management model that:
- Allows for the creation and management of design-reusable Items – released data entities for use in the actual designs themselves. Stored in a centralized repository for access by the design team, they are version-controlled and lifecycle-managed.
- Allows a formal definition of the links between the design world and the supply chain that is ultimately responsible for building the actual products. Achieved by mapping the design data to specific production Items (blank and assembled boards) that the supply chain is actually going to build.
With this model in place, and with a range of supporting features and technologies, you are able to design in a controlled way without loss of design freedom, with the assurance that you are using design 'building blocks' that are managed and approved for design use. Subsequently, once the design is ready for release, you can pass data from the design domain to the production domain in a pain-free, streamlined, and automated fashion – generating data output of the highest integrity, literally at the touch-of-a-button!
A Multi-Part System
Altium's Design Data Management System provides various features and technologies to cater for your data management requirements and can essentially be broken down into three distinct sub-systems:
- Component Management – concerned with the management of next-generation vault-based components, their referenced domain models, and the Part Choices that empower a component to straddle both Design and Supply Chain areas.
- Design Content Management – concerned with the management of reusable design content, including Schematic Sheet Items, Template Items, and Reference Design Items.
- Production Release – concerned with high-integrity board design release management, to generate the data required by the supply chain to build the physical items (fabrication of the bare boards and manufacture of the assembled boards in accordance with BOM information).
In addition, and providing the foundation upon which all three sub-systems are built, is Altium's Vault technology. A distinct design solution in its own right, an Altium Vault works in harmony with Altium Designer to provide an elegant answer to the question of handling design data with secured integrity.
These individual sub-systems offer distinct advantages in their own right, but when used together, enable you to reap the maximum benefits offered by Altium's Design Data Management System. For example, you might:
- Just use the high-integrity board design release process with existing designs, to ensure the integrity of your data and to make use of the lifecycle management.
- Create collections of vault-based components under the next-generation component management model, and use these components in your designs.
- Build collections of managed schematic sheets of circuitry, using vault-based components that you have created before.
By using a combination of these vault-based components and schematic sheets, you can create designs that have integrity built-in from the lowest domain model, through components and on to the design itself. A hierarchy of design building blocks with each undergoing revision and lifecycle management. With the ability to see where a particular managed schematic sheet or component is used, and confident that a board design cannot be released to prototype or production unless its lower-level vault-based entities are in a state to do so.
The Product Development Landscape
Before taking a look at the various elements of Altium's Design Data Management solution, it is a good idea to take a step back and consider the people that are involved in the process of turning an idea into a fully-fledged product for sale in real-world markets – the 'players' in the game as it were.
On the one side, we have the people that take an idea and capture it as a fresh design. These are the engineers and designers who revel in their technical mastery to overcome design challenges, to create and innovate with design flair and panache. These people collectively form the Design Team, with their work environment affectionately tagged the Design Area.
On the other side, we have all the teams that are collectively responsible for turning a design into a physical product. This includes procurement, fabrication, assembly, testing, and so on. They are responsible for realizing the fruits of the design team's labor, to build that tangible product exactly as the design team envisaged. The area that these teams work in can often go by different names, including the Production Area, or the Manufacturing Area. However, the umbrella term Supply Chain Area better reflects the collection of all teams and sub-teams in this area.
The Design Team works, often in a highly-collaborative nature, with the raw source design documents. The Supply Chain runs with sets of data produced, or generated, from a design. But just how are the data – both source and generated – handled? How do the design team keep track of their changes during the design phase, and where does the supply chain go to get the generated data they require to ultimately manufacture? The following sections take a closer look at where these data sets are stored.
Related article: Securing Design Source Inside a Design Repository
The design team keep track of changes to their source design documents using a Design Repository. This is a centralized repository in which all design documents are stored. Owned by the design team, the Design Repository contains a high-resolution view of the history of the design process and is the primary collaboration tool used by the design team.
Considering design projects in Altium Designer, these represent the design team's intent as to how the system should be built and how it should work. Each design project includes a project file and a variety of source design documents that together define the object being designed. Furthermore, a design project is parametric in nature, whereby a single project can potentially define many different Items that get manufactured in the real world.
The Design Repository becomes the central repository from which multiple team members can check data in and out, all the while maintaining a complete revision history of all changes made to the design. A design is therefore stored as a series of versions of its constituent project and source documents, building a progressive picture of the intent of a designer over time. By using a version-controlled Design Repository, you have the integral assurance that no revision of a design is ever lost, allowing for safe collaboration on the same design between members of a team that can be geographically diverse in their locations. The very nature of the version control system provides an audit trail for the design. Full accountability arises through transparency of who changed what, in which source document, and when.
Additional features and capabilities within the software, such as PCB Design Collaboration, allows multiple designers to run with the same design, confident in the knowledge that their individual layout changes can be collated and merged into a single PCB design document, and checked safely back into the Design Repository with controlled ease. The repository's history of the design – the various checked in versions of the project representing incremental changes made over its lifetime – allows you to 'rollback' to any of the previous versions, with total control.
As part of Altium's Design Data Management System, support is provided for creating and connecting to version-controlled Design Repositories that utilize Subversion or CVS as the version control provider. By connecting to a repository you are, in effect, registering that repository with the system –- telling Altium Designer of its existence as it were. Furthermore, there is no manual specification of paths to 'unofficial' or 'rogue' repositories. Through Altium Designer, you can only interact with those VCS-based Design Repositories you have purposefully connected to the system.
The Supply Chain acts on, or uses, data that comes, for the most part, from the Design Area. This data is said to be 'released' from the Design Area. But what actually happens to this released data? How is it handled and what’s more, is that handling secure? In other words, can the integrity of the data be guaranteed?
Providing an efficient means by which to handle such data in a highly secure, yet readily-accessible manner, Altium delivers a server-based engineering content management system solution – an Altium Vault. An Altium Vault not only provides rock-solid, secure storage of data, but also enables re-release of data as distinctly separate revisions – essentially tracking design changes over time, without overwriting any previously released data. It also caters for the lifecycle of the data to be managed, allowing people that need to use the data to see, at-a-glance, what stage the data have reached in their 'life' and therefore what they can be safely used for.
An Altium Vault is used to store much more than just the data generated from a board design. It is used to manage all other sets of data obtained from the Design Area through the running of specific release processes. This includes the release of component definitions, domain models, schematic sheets of circuitry and design templates.
And the vault is not just the destination for released data traffic from the Design Area. It is also used to handle other data, data that could originate from the Supply Chain Area too. A Part Choices list is a good example of data that is very much vault-based in nature, but is not sourced from the design side, and is therefore not a 'released' entity.
The various data entities (released from the Design Area or otherwise) are represented in an Altium Vault by unique Items. An Item simply represents a specific object, and is uniquely identified through use of an assigned Item ID. An Altium Vault then, is a centralized storage system into which all data, for each Item, are stored. The vault essentially provides the common ground between the Design and Supply Chain areas. Access by both areas to a single repository of data that are stored with secured integrity. Through the vault, the teams in both areas are better informed, have a real-time picture of the progress of the design at the wider product level, and have access to data that are not only guaranteed in their integrity, but also validated and managed in terms of lifecycle – so that only the data that are authorized to be used for a specific application, are used.
What exactly is represented by, and stored in an Item can vary, depending on what has been mapped to that Item. A design project, for example, can be the source of multiple bare or assembled boards. Each of these is a distinct physical object built by the production team, and so would be represented in the vault as different Items, each with its own unique ID. A design itself might utilize vault-based components, which themselves are released entities – each a separate Item and each assigned their own unique Item ID. Drill down further and you reach the finest level of granularity, with the schematic symbols and other domain models – used in the definition of those components – also released and represented as uniquely-identifiable Items.
Each Item in the vault is stored as a series of revisions. Each revision contains data that are used to represent, or to build a particular version of that Item. Each time a change is made to the source design data, a new revision of that Item is created in the vault, ready to accept (store) the generated data.
The highly relational structure of the data in an Altium Vault lends itself to powerful 'where used' capabilities. At any time, you are able to see where a particular child Item is used, in terms of parent Items in the vault. So for a given domain model, you can quickly identify which component Items reference it. For a given Component Item, you can see which designs it has been used in, which managed schematic sheets, and so on. Conversely, and from a parent Item's perspective, you are able to quickly browse its children.
Vault-Driven Electronics Design
Main article: Vault-Driven Electronics Design
Having great tools offering unified design and advanced data management features is only part of the equation. To leverage these technologies requires building a complete methodology, an approach that also incorporates intelligent design and management processes, to arrive at a fundamentally solid path by which to design electronics in a streamlined way. A methodology that creates a highly productive, high-quality design flow, based on the concept of Designing for Reuse, and facilitated by the high-integrity offered by Altium's Vault Technology. A methodology simply know as Vault-Driven Electronics Design.
Altium Vault technology plays a fundamentally key role in the Vault-Driven Electronics Design methodology. An Altium Vault is used to store much more than just the data generated from a board design. It is used to manage all other sets of data obtained from the Design Area through the running of specific release processes. This includes the release of component definitions, domain models, schematic sheets of circuitry and design templates. The very essence of true vault-driven design reflects the mantra "elements in a design can only come from within a vault".
And perhaps the overriding concept of this methodology is that of designing for reuse. This entails capturing and configuring all elements of design so that they can be easily reused across any new future designs. So models that can be reused in a new component, components that can be reused in functional sub-circuits, functional sub-circuits that can be reused in the design of a modular assembly, and then ultimately reusing a modular assembly in a larger design itself.
Altium already provides a myriad of great features and technologies as part of its Design Data Management System. And users naturally have the complete freedom to use whichever elements of the system they choose to suit their design needs and practices. But to really take electronics design to the next level, and use those features and technologies in the manner in which they were intended to be used, requires an open mind and following a proven new methodology to design. So jump aboard for a look at the future of electronics design, where vaults become the central hub of the 'Designerverse'. Where all elements used in all designs are sourced from that central vault. Secure, lifecycle-managed and company-ratified components, design sheets and other modularized design entities. Resident in a vault, to be reused in all future designs – true Vault-Driven Electronics Design.