When you think of a DSP IP, you tend to think of very targeted applications – for baseband signal processing or audio or vision perhaps. Whatever the application, sometimes you want a solution optimally tuned to that need: best possible performance and power in the smallest possible footprint. These needs will continue, but there’s growing interest in more flexible solutions to address multiple signal processing objectives through common functions and to support evolving requirements.
Automotive and IoT markets in particular are driving this demand for flexibility. ADAS, infotainment and sensor fusion require multiple applications processing multiple data types, in floating point for codecs for example, in fixed point for other applications, supporting multiple word sizes, signed and unsigned. But systems development teams don’t have armies of DSP software developers ready to develop assembly code and floating point libraries per signal processing function as needs and standards change.
What’s more, there’s increasing pressure to easily port existing software to DSP functions with the expectation that the compiler and the platform will take care of optimizations such as vectorization. In some ways, these multi-use DSP applications are increasingly demanding use-models we routinely expect in general-purpose computing, while still expecting high-performance.
Cadence has developed the Tensilica Fusion G3 DSP specifically to address these needs. In switching to a multi-purpose platform, customers may be willing to accept some performance compromise, but not a lot. So Cadence has optimized the architecture to give best possible performance, along with flexibility. The G3 offers single and double precision floating point, along with fixed point and a range of word sizes. It has a finely-tuned high-performance architecture, balancing MAC, load/store and ALU functions. The Tensilica group has also added a set of specialized operations on top of the base Xtensa instruction set architecture, to support optimizations for specific applications.
The G3 provides its own DMA controller and supports multi-banking for memory, helping you to get data in and out as fast as possible And naturally, since you’re going to be using this for multiple purposes, it supports multi-core usage. Debug is supported through Extensa Explorer and the G3 also connects to CoreSight debug and trace.
For DSP software developers, Cadence claims best-in-industry auto-vectorization through the compiler and an extensive library of IIR, FIR, FFT, 1D and 2D transform, math, statistics and other functions. This means it should be easy to port C or Matlab code developed for other architectures and still get high performance, without needing to dive down into assembly code. (You can still go to the assembly level if you want, but it’s less likely you will run into that need.)
The G3 was developed in close partnership with a customer who recently taped out their first G3-based design. While this is obviously a new release, Cadence are also seeing interest from other customers, especially around radar (automotive) applications. They expect the G3 will find a home in a lot of applications looking for best if not bleeding-edge performance with reduced software development costs (and schedule) and a higher degree of future-proofing. In audio, they see demand in surround-sound and active noise/echo cancellation (both of which require floating point), fingerprint recognition, communications (requiring complex floating point), image processing (scatter/gather on 8-bit data) and radar (requiring both floating point and fixed point).
The value proposition is pretty obvious. As DSPs become the go-to solution for more functions in a design, the industry is demanding more cost-effective solutions that are easier to adopt, easier to maintain and easier to adapt as requirements change. Simplifying total development costs through a common platform, without significant compromise in performance, is an obvious way to get there. You can learn more about the Fusion G3 HERE.Share this post via: