There is a ton of work that goes into the successful design and development of any product. There are off-the-shelf and custom components to procure, an electronics assembly to manufacture, and there is usually an application that brings everything together. Embedded developers play a special role in development of many products as they sit at the interface between the physical design and the rest of the digital world, so they have to collaborate across the development spectrum.
In today’s embedded systems, a PCB designer has to work with an embedded developer to ensure the board is designed to support the application requirements at the physical level. This might sound like a simple amount of communication centering around requirements gathering, but when you look below the surface, embedded developers have the potential to influence many aspects of real designs that tend to be overlooked.
In this article, we’ll look at some of the important ways that embedded developers can influence a design, as well as a simple co-development process for hardware and software. As we’ll see, a bit of work on the front end of a design can eliminate a wasted prototype spin later. It can also inform component selection, peripheral selection, and even your stackup design.
Where Embedded Development and PCB Design Converge
In the past, microcontrollers and ASICs offered fewer features and options that could be used to build an application. Today, the new generation of processors, SoCs, FPGAs, and ASICs for peripheral features has totally changed what developers can implement in advanced embedded systems. Embedded developers should play a role in front-end engineering and design because the system’s application and the physical layout must be in alignment.
Embedded Development Drives Front-End Engineering
In the past, we would often find that the front-end engineering process placed constraints on embedded developers, and the developer would have to code an application that works within a physical design. As designs have become more complex, and as many components have incorporated more features, the opposite is becoming the case. Embedded application requirements should be allowed to drive component selection and interface selection, which will later dictate many aspects of the PCB layout (stackup, routing, placement, etc.).
Embedded developers and PCB designers have to work together to ensure these points are in alignment before schematic capture and layout begin. To achieve team alignment and reduce overall development time, a co-development process such as that outlined below is essential for embedded design and development teams.
- Chipset selection - Designers and developers should work together to select the required components that provide the required features.
- Interface selection - Some components (e.g., MCUs and FPGAs) have multiple interfaces to support required features; these should be selected in Step 2.
- Physical block diagram - Based on #1 and #2, supporting chipsets should be identified and included in a block diagram for the physical layout.
- Application development - Driver and application development can begin once the physical specifications are finalized and interfaces are chosen.
- CAD data generation - Step 5 can occur in parallel to Step 4; CAD libraries and the PCB layout are created in this step.
- Prototyping and testing - The design can be prototyped and tested with the embedded application only after both the application and PCB development are completed.
After prototyping, the design will be put through a set of tests to work out remaining bugs and feature development in the embedded application. The process can then be repeated based on required application or layout updates, and through iteration the design will eventually converge to a scalable product.
This linear process outlines a co-development process for embedded systems.
Should Development Kits Be Used?
Semiconductor companies and 3rd party vendors offer development boards for many popular components. These development kits are usually built around specific FPGAs, specialty SoCs, microprocessors, and larger MCUs. They generally breakout every possible connection so that the main component can be tested with an application that is currently in development. Because of this, they can be very useful tools during the co-development process.
Example development kit for an Altera FPGA.
Most embedded developers will advocate that development kits be used as a tool during the co-development process. The embedded application can be implemented and debugged while the PCB design team is working on the physical layout of a custom product. This reduces total project time and allows many bugs to be identified earlier, ideally eliminating a prototype run.
Other Resources for Developers
Semiconductor vendors and the open-source community have created a huge amount of resources that can help design teams close the loop on electronics design and application development. Some of the main resources for embedded developers include:
- Vendor IP for FPGAs
- Reference designs with firmware/software
- Open-source hardware platforms for specific chipsets
- Code examples and libraries for more advanced applications
While you don’t need to start new products directly from reference designs and their application code base, these resources can provide useful references for custom development projects. In some systems, a vendor’s code base will be the basis for a new product’s embedded application as the application will be built with the included libraries. The PCB designer should follow the reference designs or open-source resources in this case as the existing project data will form a baseline for product functionality.
Hardware design teams and embedded developers can create their co-development process with the complete set of PCB design and management features in Allegro PCB Designer. Allegro is the industry’s best PCB design and analysis software from Cadence, offering a range of product design features with a complete set of management and version control capabilities. Allegro users can access a complete set of schematic capture features, mixed-signal simulations in PSpice, and powerful CAD features, and much more.