Ask anyone connected with electronics design about their interpretation of “system design” and you’re likely to get quite a broad range of answers. Universally, it’s about designing the electronic-based “system” required for a given product or device, but the system concept itself tends to mean different things to different folks.
It’s a matter of perspective of course. Engineering management, for example, will take a high-level business-orientated view that encompasses broader system design aspects including purchasing, manufacture, lifecycle management and so on — the system being created encompasses all those elements. Hardware engineers by contrast are likely to consider the system as the physical elements that make up the design and are needed to support its software, in an understandably hardware-centric way. In this case, it’s a tighter focused view that is limited to that engineering domain.
Perhaps the most popularized view of system design; however, is in the embedded design space. Here, system design is considered as the application of high-level algorithmic modeling and software languages that describe the electronic system within programmable devices.
Traditionally, the design is implemented as a system-on-chip (SoC) solution contained in an ASIC, and increasingly, an FPGA. The methodology is targeted at software engineers as a way to avoid tackling arcane hardware description languages (HDLs) while managing complex SoC systems in a familiar way.
The broad approaches here are from a hardware design, or embedded development point of view, and encompass the other domains in limited ways. Neither of these are a universal panacea to the problem of increasing design complexity, and from a system design perspective, do not directly take into account the complete system under development.
That, conventionally, is the task of a design manager or team that translates the design specification into the broad, high-level elements of the hardware and embedded design space — including the use of FPGAs, processors, algorithms, and other peripherals. With a finger in all pies, the system designer in this context uses a high-level view of the design to keep development on track by applying a set of constraints on all domains.
Everyone sticks to their own part of the engineering puzzle, where the developed pieces are brought together at the end of the design process to make up the complete product design. It’s up to those taking the overall view of the product development, in many cases, a system designer, to define and mesh the potentially incompatible parts of the design in a way that satisfy the product design brief, and ultimately to create a product design that will competitively succeed in the market.
The advantage of taking a system-level view of the product development process provides an opportunity to look for market differentiation answers outside the insular world of electronics design. This is not as easy at it might sound. As electronics engineering has become more tightly specialized to cope with complex new technology, the granular view of design is finer and the big picture more obscured.
Perhaps the most obvious path to taking a wider view of product design is to consider those who buy and use the products. The changing influencer here is recognizing that customers don’t just buy products; they effectively buy an experience that extends beyond the electronics in the device itself.
That view is less directed at circuitry and software algorithms, and more about developing the user interface; defining how the device interacts with the outside world, and what systems and services it connects with. It’s the look and feel of the product, and more importantly, how it functions. This is primarily defined in software, while the electronic hardware and systems needed to support that functionality come later, as required.
The potential exists for a system level designer to take this approach when the design domains are brought into a single development environment that raises the level of design abstraction as a whole. To make this possible, hardware, software and programmable hardware design need to be encapsulated in a system that uses a single model of the design data. This single data store becomes a single contact point for company-wide systems, and importantly, allows for real-time design interaction between the domains.
There is a critical difference here in the concept of raising the design abstraction exclusively in the embedded space, using C-based system languages or algorithm modeling. When implemented in a unified design environment that uses a single model of the design data, high-level embedded design inherently incorporates the other domains. System design can exist in its true, perhaps literal form, by offering the capability of designing a complete and cohesive system that also incorporates application software and hardware.
With the raised level of design abstraction working with all design domains, a system designer can take a high-level, soft-centric approach to the overall product design. Using schematic or flow chart graphical design interfaces, IP blocks, software routines and I/O systems can be quickly combined to explore and develop innovative product functionality without being distracted by the need for low-level engineering. The singular design environment allows the system design methodology to work for developing the complete product function, rather than a subset of it.
Of course, domain specialist engineering (such as detailed embedded development and board design) is required, but these provide a secondary and supportive role in the system design world. Low-level engineering is only tackled when the high-level design has been fully fleshed out, as this will determine what detailed hardware and software is needed. Similarly, the partition between software and hardware can be explored and established during the high-level design process.
This new breed of electronics designer is indeed emerging as suitable tools become available. They take what would be conventionally considered as a backwards approach to electronic product design by starting at software rather than a hardware-focus level. Expanding on their existing software development expertise, this type of system-level designers can take a high-level user-focused view of how a product is created.
In practice, software engineers with a working knowledge of hardware can implement and connect blocks of hardware IP in FPGAs, while software-savvy hardware engineers can apply a schematic-based interface to do the same. C-to-hardware transformation systems allow a path between the two domains, and physical hardware can take the form of off-the-shelf circuitry or ultimately be developed as a custom design.
The concept can be taken to the next level by coupling the singular design system to a low-cost FPGA hardware development platform that includes supporting hardware, common I/O systems and features plug-in peripheral boards that can be changed at will.
If intelligent, high-level communication is implemented between this hardware platform and the high-level design software, a designer has direct interaction with all parts of the development board, rather than just the basic ability to program the onboard FPGA. The system also allows peripheral hardware boards to be swapped on the fly, where the software automatically reconfigures the interface layers and configuration files as required. With this setup, the complete development system, including the physical hardware, act as the one cohesive design environment.
From a system design perspective, software developers can then use high-level design systems to develop and explore design options in real time and on real hardware. That hardware could conceivably become the final product in some circumstances such as in low volume production runs. This places a software-orientated system engineer in the unique position of being able to rapidly develop a complete product, or in the least, a proof-of-concept device.
A system designer in this context is not taking a middleman or overseeing role. A software-centric design approach using a single, high-level and cohesive design environment allows whole design concepts to be quickly explored, captured and implemented. Free from the distraction of low-level engineering details, the product development process can focus on innovation and capturing a user experience that defines the next generation of electronic products.
About the author:Rob Evans is a technical editor at Altium Limited. He has more than 20 years of experience in the electronics design and publishing industry, and studied Electronic Engineering at RMIT in Melbourne, Australia. Rob can be contacted at firstname.lastname@example.org.