Create and work ‘live’ with soft PCBs

While the biggest change for the electronics industry in recent history has been the acceptance and pervasive use of microprocessors in electronic products, the fundamental way that a product’s physical electronics platform – invariably, a PCB – is designed has remained pretty much the same for decades. After all, regardless of how complex and sophisticated the electronics devices might become, the essential function of the board level platform is to connect the individual devices together in an efficient and meaningful way.

Just as microprocessors changed the face of electronic design, the emergence of high-capacity, low-cost programmable devices represents a fundamental shift in how electronic products are being developed. The difference in this case though, is that the widespread introduction of programmable devices – most notably FPGAs – is redefining how the various functional elements of an electronic product are partitioned and implemented.

This ability to move both the hardware and software elements of a design into the ‘soft’ reprogrammable realm of an FPGA means that many of the complex design challenges – including the device interconnections themselves – can be handled within the fabric of the FPGA. Taking this a step further, the programmable interconnection capabilities available in large scale FPGAs can also be used to push much of a board’s routing complexity inside the FPGA. By routing the board’s major interconnections through the FPGA, the reprogrammable space can encompass not only embedded software and soft hardware, but in effect, soft wiring.

The increasing sophistication of today’s electronic products demands high component densities, faster signal speeds and greater board complexity. By moving these board design challenges inside the FPGA, the opportunity exists to create smaller, lower-cost boards using fewer layers within shorter timeframes. What’s more, the reprogrammable design platform offers the opportunity to simplify board routing (including differential pairs) by optimizing the FPGA pinout, plus the capacity to easily correct ‘wiring’ errors within the programmable space – even after the design has reached prototyping stage or is in the field.

Interact 'live' with your design

As the process of working with the new soft approach to board design becomes less directly connected with tracks and pins of PCB development, one of the design difficulties is visualizing what’s going on inside the programmable device that forms the platform of your design. While you can monitor the pins on FPGA packages, you have no physical access to the signals and connections within the device. You are effectively disconnected from the design. As a designer, what you need is to be able to reach inside the FPGA with your test instruments and embedded software debuggers.

A unique aspect of Altium Designer is that it allows you to connect live to the programmable elements within your design, and interact with the system under development. It does this by establishing two JTAG communications chains between Altium Designer and the FPGA. One, referred to as the Hard Chain, is used to program the target FPGA and then access its pins during debugging. FPGAs usually have dedicated pins for this JTAG chain. The second, referred to as the Soft Chain, is established using four general-purpose I/O pins and gives access to virtual instruments and on-chip embedded processor debugging modules. Connecting the board carrying the target FPGA to your PC, via an Altium NanoBoard or a simple Universal JTAG adaptor, Altium Designer can not only program the target, it can also be used to explore and debug the design running on it.

Debugging is enabled through familiar technologies. Software debuggers allow you to interact with the code running on the embedded processor, and virtual test instruments, including logic analyzers, frequency generators, frequency counters and general purpose I/O modules, let you monitor and stimulate the internal hardware. Virtual instrument hardware is synthesized into the FPGA itself, with Altium Designer providing the computer-based user interface. Similarly, the embedded software debugger interacts with the on-chip debug module built into the soft (or hard) processor. By running the instrument hardware and software debug modules on the actual FPGA device, Altium Designer can deliver real-time, hands-on, design testing and debugging.

This ability to download the design to the FPGA and dynamically interact with it in real-time using familiar test instruments and debuggers is called LiveDesign.

To manage the LiveDesign process, Altium Designer provides a centralized interface from which you can process and synthesize your project, transparently invoke the FPGA vendor tools for device-specific mapping and routing, and download both the hardware and software program files to the target devices.

Once programmed, you can interact with active devices through the interface. You can monitor and set signals within the FPGA-based system using the virtual instrument control panels, and even initiate software debug sessions for one or more processors running in the system. As you make changes you can reprocess and download the new software or hardware and immediately see the effect of the changes.

Like any hands-on design debugging on actual hardware, you can also use the software debugging and test instruments in an interactive way, for example capturing hardware events with the logic analyzer by asserting a device pin via the software as you execute a code breakpoint. The debugging tools include a full set of capabilities, such as breakpoints, watches, a code explorer, and access to the processor registers and the memory space.

Via the hardware JTAG chain you can monitor the status of the target device pins and dynamically reflect this status on the source FPGA project schematics. Altium Designer can also provide a live display of the pin status of FPGAs directly on the PCB routing displayed in the PCB editor.

By including the appropriate connections on your PCB design, you can even connect your prototype or production board to the system via the NanoBoard or a universal JTAG adaptor and continue the LiveDesign process right on your target hardware.

The interactive nature of the LiveDesign process brings the entire development process to life, and allows you to rapidly develop and debug FPGA-based systems. Altium Designer gives you the power to reach into and control the programmable elements of your design, and connects you 'live' to your system during development.

The future of bread-boarding designs, like the PCB itself, is progressively moving toward the soft realm. Working with a fully unified design system that allows board-level designers to easily reach into the programmable elements of the design creates an efficient, hands-on methodology for developing the latest generation board designs.

Removing hard barriers to soft design

To fully exploit the benefits delivered by board design based on a reprogrammable platform, a board designer needs to alter that programmable space as part of the design optimization process. In a traditional point tool approach to electronic product design the cumbersome exchange of design data between the PCB and FPGA (normally the domain of embedded hardware developers) creates a barrier to this new approach. What’s needed is a single unified design system that allows the transparent flow of data between those domains, enabling the full benefits of a reconfigurable board platform through cohesive FPGA/PCB co-design.

Altium Designer brings together hardware, software and programmable hardware development within a unified environment that allows all aspects of an electronic product to be designed within a single application. The system natively supports the incorporation of programmable devices into the physical platform by unifying the board and FPGA design processes. Altium Designer lets you achieve optimum board routing solutions with FPGA devices while automatically maintaining I/O synchronization, which streamlines the process of creating the next generation board designs.

By removing the barriers to new, efficient product development methodologies that cross the boundaries of design disciplines, Altium Designer opens up new possibilities for all designers while blurring the boundaries of traditional roles. Board-level designers can now easily and securely work with FPGA-based designs, while embedded hardware developers can cooperatively influence the hardware design process through the transparent, platform-level exchange of design data.

Read more about LiveDesign

Read more about Altium’s LiveDesign-enabled NanoBoard