Back to Home Page

Article

Signal processing succession

Article published in New Electronics, 27 May 2003

FPGAs provide significant advantages over conventional signal processing technologies for the defence market.

Before the advent of microprocessors capable of supporting signal processing applications, designs were based on hardware logic. But these solutions were functionally inflexible and generally unable to cope with multiple applications.

This proved problematic for requirement changes during and after development, making products costly to develop and maintain. Furthermore, component obsolescence compromised the longevity of these fixed hardware designs.

Today, many signal processing applications are handled by dsps, but microprocessors still compete where processing flexibility and general program control are required. But a third mature technology provides the same features. FPGAs offer performance and flexibility and can provide significant processing performance and programming advantages.

FPGA signal processing solutions are worth considering in place of complex and less efficient multiprocessor systems. Improvements in time to market, lower development time and lower unit cost also help the defence market with obsolescence management.

Concurrence can dramatically increase the speed of execution in an fpgaMature, standard development languages and tools provide a solid base for defence type applications and avoid the layers of software that encumber COTS based processor solutions; processing latency can be more easily managed and the product can be brought quickly to market by allowing 'soft development' to start at an early stage.

It is often difficult to identify the optimum technology for a particular application. With few exceptions, fpgas will be faster and/or more cost effective when the signal processing function demands high performance, yet is repetitive and involves minimal branching. In such a case, the hardware created to implement the function will be synthesised efficiently and will operate at high clock rates.

If processing latency needs to be reduced further or functions added, then concurrent operations can be executed if the processing function allows it. In this way, the serial nature of processor based program execution is exceeded by paralleling the instructions. In large designs, this advantage can be significant and performance improvements on this scale can enable alternative solutions such as direct processing at intermediate frequencies (IF) rather than having to down convert to baseband prior to processing.

In more conventional processing tasks - where there is a mixture of pure number crunching, program decision making and control - the traditional choice has been a dsp or processor. However, as long as fpga functionality is being defined with some form of high level language then the same constructs can be defined in the fpga.

And, with a little case - by again using the concurrency inherent in hardware and by calculating all the decision paths simultaneously - the decision making processes can be flattened. Hence, a multistage serial program flow - consisting of comparison, decision and branch - can be flattened into logic that produces the results in a single clock cycle.

In large signal processing systems, where fpga performance has enabled the system to shrink from many processors to a few devices, it may still be wise to allocate a conventional dsp or processor to provide the system control and user I/O.

Skill is required in assessing the appropriate soft and hard function partitioning. If it is judged that sticking with a single technology is more cost effective than a mixture of fpgas and processors, a more efficient solution would be to encapsulate the program flow in an fpga. This can be by direct synthesis of the program flow or by embedding a processor core.

A multitude of languages and programming methods is available. For fpgas, there is a choice of two mature hardware definition languages (hdl) - Vhdl and Verilog - or a range of developing languages, mostly variants of C. These newer languages, while not having the standardisation or maturity of an hdl, can, in some instances, provide productivity benefits. They do not, however, abdicate the need for understanding the hardware function.

In defence applications, the stability, maturity and longevity of Vhdl and Verilog provide significant advantages in the management of obsolescence. However, it is essential that good engineering design practices are used from the outset, firstly - and most significantly - using synchronous design and secondly, conservative design to preserve margins.

Plextek has applied this technique in a defence application that was conceived to be a mixed processor and fpga design. The design included legacy functions, new signal processing tasks, memory, serial monitor and a programmable debug port. The complete functional design was embedded in a single fpga, simplifying pcb design significantly, improving hardware reliability and reducing power consumption. Integration of processor functions into the fpga meant that the number of design teams could be reduced. Furthermore, the use of Vhdl enabled firmware design and simulation to occur concurrently with the hardware development, allowing a pre-production model to be successfully tested after only three months.

It's all in the timing

A multilevel decision treeAsynchronous designs, whether in fpgas or discrete logic, will often present problems, such as timing verification. A synchronous design stands a high chance of operating first time when ported to a new device; even if it does not, debugging is still feasible. By defining the functionality of the signal processing task in an hdl at the highest level of abstraction possible, the function can be ported to a new device in the future with minimal effort.

Obsolete silicon will require replacement with whatever device is appropriate at the time. FPGA performance, pin out and capacity can be almost always guaranteed to exceed that of a previous generation, so migration to the new device in terms of pcb design and function porting is straightforward.

It is common practice with COTS hardware to use general purpose support software and tools. Although this provides a level of obsolescence management, he number of layers of software required to support such an approach can create greater problems than is cures, since the generic nature of these packages tends to decrease their efficiency.

In addition, inclusion of an operating system can further degrade performance. The fpga design benefits from abstraction of the functional design, but the big difference is the compiler that synthesises the hardware is likely to duplicate hardware functions, thereby taking up more silicon real estate, rather than compromising processing speed. If a compiler bloats the object code, this automatically requires more clock cycles to handle the extra instructions serially and, consequently, the processing efficiency diminishes.

HDLs provide various levels of design simulation. Plextek's approach to design is, wherever possible, to use functional simulation based on synchronous rtl prior to synthesis. Post synthesis and post 'place and route' simulation is also possible. In general, simulation tools provide by fpga vendors have sufficiently accurate and detailed information about chip designs to make static path timing analysis a reliable method for timing closure before running the design in the fpga.

Essentially, a processor is limited in what it can do by its serial nature. Of course, code profiling and optimisation are key factors. This may take the form of restructuring code - perhaps in lining to remove branch overheads. It may involve optimisation of key processing functions by converting those modules to assembler. However, the fpga approach to optimisation is more direct. Significant latency reduction can be achieved by restructuring the code and, as long as sufficient fpga resources are available and elements of the processing algorithms can by run in parallel, then latency improvements can be achieved with minimal effort.

In many fpga designs it is also possible to multiply the systems clock and operate internally at higher clock rates. Synthesis tools help to assess the practical operational limits. As with all designs, it is more efficient to achieve the correct design from the start, but it is reassuring that fpgas enable greater freedom in the management of latency.

By Mark Radford