The DSP in the FPGA
![]()
The Hammerfall DSP series
includes several DSP functions -
without having a DSP on board.
Since our first card (the
Digi24), RME goes for FPGAs
(Field Programmable Gate
Arrays.) Instead of working with
hard-wired chips (like
multimedia codecs), which offer
functions implemented by the
manufacturer, we use our own
circuits, that are completely
designed by us. This is possible
with the FPGA, which is, in
contrast to an ASIC (chip
manufactured according to a
customer's demands), even
re-programmable. In the past, it
was necessary to change an EPROM
on our cards for this. The
Hammerfall DSP's hardware
configuration inside the FPGA
can even be updated by a
software / driver update.

FPGAs have become more powerful
during the years.
The newest generation used for
the Hammerfall DSP (Xilinx
Spartan 2) allows for
computations in an FPGA
(provided the designer is
clever), that could only be
performed by DSPs before. Even
better: Again we have been able,
thanks to optimal adaptions, to
surpass the performance of
pre-configured devices
(Motorola, Sharc etc.) in the
functions needed! Our mixer, for
instance, processes up to 1456
channels internally with 100MHz
and uses far more than
500MByte/s memory bandwidth -
with this alone, a Motorola DSP
is completely busy. Our FPGA on
the other side, calculates the
peak and RMS levels of 52
channels at the same time! Only
as a side note, we may point
towards the also included 3 ADAT
receivers and transmitters and a
completely digital SPDIF
receiver and transmitter ...
In the following, the basic technology behind the Hammerfall DSP mixer is being described, including its realization in hardware with bits and bytes. Information regarding the software user interface, which presents all features easily overseeable and manageable, can be found in the Tech Info TotalMix: Software, features, operation.
![]()
What for ...
... do I need a mixer in an I/O-card? There are several scenarios:
- setting up delay-free submixes (headphone mixes)
- unlimited routing of inputs and outputs (free utilization, patchbay function)
- distributing signals to several outputs at a time
- simultaneous playback of different programs over only one stereo channel
- mixing of the input signal to the playback signal (complete ASIO Direct Monitoring)
The last point was most important for us at the beginning. Our present hardware (DIGI96 and Hammerfall series) were only working in replace mode because of the missing mixer, i. e. on the track just being routed input to output, you could only hear the input signal, but not the playback signal. This 'tape recorder mode' was a big step forward at the time, but it requires an additional external mixing console. With increasing computing power and improved software, more and more users want to use the 'mixer' provided with the software though. In order to hear the input signal together with the playback signal during monitoring, there are only two ways to achieve this: either the latency / buffer size of the card is so small (ideally under 6ms) that the software can completely calculate the data, or the card mixes input and playback signals on its own, so that monitoring can be latency-free (because the signal goes directly from input to output inside the hardware.)
In principle, a mixer being able to mix every input to any playback track once would have been sufficient - perfect ASIO 2.0 Direct Monitoring. After some thinking, however, this was way too little for us. If at all, it should be possible to mix any input channel into any number of playback channels - more flexibility has never been a drawback.
From this point, it was not far to the next demand: The playback tracks should be entirely mixable and routable in the mixer. This would allow for creating several completely independent submixes and freely routing the playback channels. Finally, when summing several tracks onto one, there will soon be too high a level: digital overload. Therefore, the levels of the physical outputs must be reducible. And because the playback tracks always pass the mixer, there must be a transparent 'unity gain' setting, guaranteeing bit-accurate playback. You can see already: even without effects and EQ, a mixer can become quite demanding ...
Internal:
The essential criteria for the power of a digital mixer are the number of channels that must be processed simultaneously, and the internal resolution. Example Digiface: 26 inputs plus 26 playback tracks can be mixed to 28 physical outputs in any order. This means (26 + 26) x 28 = 1456 combinations simultaneously possible. The mixer must be able to calculate 1456 channels!
As long as monitoring would have been the only point for this concept, one would have got away with 16-Bit resolution. Including the playback tracks, this is no longer possible. Because they are always routed through the mixer, it does not only have to have higher resolution than 24-Bit in order to avoid rounding errors for gain changes, but it also has to supply additional headroom for gain rises and the summing of several channels.
Extremely high resolution does not make sense and causes a high consumption of resources within the FPGA. We have therefore decided to have a basic fixed-point arithmetic with the following values:
- The multiplier has 40 bit resolution. This comes from a maximum audio resolution of 24-Bit, that can be altered in gain with a resolution of 16-Bit (65563 steps) with a fader (24 + 16 = 40.)
- The adder has 36 bit resolution. From these, 7 bit are used for the necessary headroom (up to 52 channels with 6 dB gain can be mixed to one channel.) The audio signal has again 24-Bit resolution, the other 5 bit are used for the LSB to decrease rounding errors.
- The output signal is truncated to 24-Bit without dither.
- Faders: 16-Bit resolution, equals 65536 steps, which are provided following a special function for correct perception. Gain change input and playback channels: +6 dB down to maximum attenuation. Outputs: 0 dB down to maximum attenuation. Because of the screen display, the number of values that can be set with the mouse is dependant on the number of pixels. This is 137. In fine-mode (shift key), this value is multiplied by 8 for 1096 different gain values.
- Pan: pan law 6 dB. This means, the signal is attenuated by 6 dB in center setting. From center to left and right, there are 50 steps on either side. Linearly processed and displayed, from L 1.00 via 0.50 (C) to R 1.00.
Total Overload
As mentioned before, the mixer has two fundamental properties: It can not be overloaded and offers bit-accuracy at unity gain, i. e. it passes 24-Bit CRC tests.
In order to avoid internal overloads when summing (of 52 channels with +6 dB gain each in this case), the 24-Bit resolution of the input signals is not enough. Mixing of signals means adding, i. e. the new signal generally has a higher level than the single input signals. The worst case is completely correlated, in other words identical signals: already for two signals, the output level is twice as high (+6 dB.) With every further addition this factor is decreasing though.
The overload safety of TotalMix can be demonstrated easily even without truck loads of external hardware. The following examples were made using the software HpW Works (to generate and analyze the test signal), a Digiface and a DIGI96/8. The oscilloscope used is a Tektronix TDS 210, connected to the analog output of the Digiface.
First, we digitally generated an interesting test signal (gotta have some fun ...), consisting of several sines with 0dBFS altogether, highest possible digital level in other words. In an application, the recorded signal was then sent to all 26 tracks of the Hammerfall DSP and still played back unaltered. The inputs and outputs of the Digiface used in this test were connected together, applying the played back signal also to all 26 inputs.


