It’s no accident that PCB design was one of the first electronics design tasks to which computer technology was applied in an effort to automate the process. The EDA industry really had its roots in the need to handle the explosion in circuit complexity brought about by the advent of digital electronics and, in particular, the rise of the microprocessor in electronics design. Traditional manual design techniques became too cumbersome to manage when faced with the onslaught of higher pin counts, multi-line signal buses and growing numbers of board layers.
Today it’s unthinkable that any modern electronic design would be done without the use of computer-based tools to automate many of the processes across all the design disciplines. However, design automation is not a simple matter of feeding data to a software algorithm. It must tread a fine line between assisting the designer to get a task done more quickly and efficiently without hindering the desired outcome by assuming too much control.
With the recent surge of development in FPGA technology, some industry analysts believe we are at the start of a paradigm shift in electronics design. While FPGAs have been around for a while, a watershed has been reached in the price/capacity curve for these devices. They offer many of the benefits of ASICs without the high NRE costs and long development cycles. The inherent reprogrammability of these devices offer huge cuts in design time, and the tantalizing prospect of field hardware upgradeability. In short, they have the potential to change the way we can approach electronic product development, similar to the way that affordable and powerful microprocessors opened up new design possibilities decades ago.
To take full advantage of the potential offered by programmable hardware however, engineers need tools that allow them to exploit the benefits of the technology within the wider design process. For example, the large number of configurable I/O pins on high-capacity FPGA devices makes the task of managing the synchronization of pin mapping between the FPGA design and the board design a complex one. To do it manually can slow down the design cycle considerably. Indeed the benefits of working within a programmable platform can be negated by the lack of automated solutions for dealing with these devices at the PCB level.
But as we have seen with attempts to automate the placement of components, successfully automating a process that spans different design disciplines is difficult because of the lack of integration between the different design environments involved. The constraints that drive the process – in this case the limitations on pin interchangeability and the connectivity paths of the FPGA pins on the PCB – exist within different design tools.
To intelligently automate the process of optimizing the pin-out of a large FPGA for routing at the board level requires that the PCB design editor has an intimate knowledge of the physical characteristics and capabilities of the target FPGA device and any overriding constraints placed on pins by the FPGA designer. It also requires tight interaction between the FPGA and PCB design environments in order to be able to quickly iterate between FPGA and PCB-level design constraints in order to arrive at an optimal solution that balances the timing requirements within the FPGA with routability issues on the board.
Increased automation of the design process does not necessarily drive innovation in the electronics industry. What it does is raise the level of abstraction that a designer works at, empowering them to do what they do best. Design time can then be spent adding value at a creative level, rather than dealing with the complexities of implementation.
For automation to be useful, however, it must be done within an environment that encompasses all of the constraints necessary to fully specify the boundaries of the process being automated. High-capacity, low-cost programmable devices provide a vast design space that facilitates the convergence of hardware and software. In order to provide effective automation within this design space, the design system we use must unify what are currently considered separate design disciplines.
Ultimately the goal of all design automation is to maximize the effectiveness of the most valuable design asset – the creativity of the designer operating the controls. Operating within a unified design environment provides the freedom necessary to harness the full range of electronics design technology and devices available today, and supports the automation necessary to work at higher levels of abstraction, add increasing levels of intelligence to products and get the job done faster.