FPGAs for Innovating Digital Communication Interfaces

It’s 11th May, and we just arrived at a client’s studio at 11:45pm. I assure my colleague that we’ll get it right this time. Our job that night was to link two studios over an Ethernet connection. Simple enough despite the fact that neither of us had done it before. We had gone through the manuals over and over again, 4 different manuals in fact, that’s why I felt certain, at least 80% certain it would be possible. In the end, we achieved connecting two LAWO audio engines over a VLAN network that could send and receive digital audio channels over MADI (AES 10). More on that later. After our 5 hour stint, I couldn’t help wonder how even such an interface was achieved. In this post I cover what it takes for hardware and communications engineers to prototype, test and innovate such interfaces using FPGAs.

 

Field Programmable Gate Arrays (FPGAs)

FPGAs, Figure 1, are re-programmable silicon integrated circuits developed by Xilinx in 1984. FPGAs are what exist between ASICs (application specific integrated circuits) and general purpose processors. This means that FPGAs can be programmed to perform one complex task and later be fully reprogrammed to perform another. This flexibility is why FPGAs have become increasingly popular for prototyping and deploying custom functionality.

Figure 1: A Xilinx Spartan FPGA board

 

Programming for FPGAs can be done with low level (digital design) or high level (C code) programming environments. These software then compile the code into a bitstream or configuration file that reconfigures the internal circuitry of the FPGA.

Some advantages of using FPGA technology over the common microprocessor include:

  1. High performance. As FPGAs are custom programmed chips for a specific functionality, data (signal) processing performance is high as applications have full control of processing cycles as well as inputs and outputs.
  2. Rapid prototyping. With the recent improvements in high level design, engineers spend less time developing and prototyping FPGA functionalities. Also, since FPGAs are re-programmable iteration is faster as compared to ASICs.
  3. Low costs. Consider ASICs, they’re manufactured once to handle specific tasks. If a customer’s requirements change they have to obtain a new chip (often a new device altogether) with more functionality. FPGAs recognize the need to change  the functionality of the chip as the user’s requirements change.
  4. Can be used long-term. In this post we are about to discuss FPGA use in digital communication interface design. However, we know that standards are ever changing with the market. Luckily, with FPGAs you can perform field updates years after the initial installation.

 

FPGA use in Digital Communications

Applications for FPGAs span across different industries like medical electronics, aerospace and defense, broadcast and pro A/V, consumer electronics, wired and wireless communication and manufacturing. I take a special interest in communications and will cover that.

You may be wondering, what was I dealing with that night? Who’s MADI? MADI is Multichannel Audio Digital Interface (AES 10) which you can read more about here. In summary, MADI is an interface that can carry multiple channels of digital audio (one interface port can carry 64 mono channels!) over coaxial or optical fiber up to 2km! What the exclamation points signify in the last sentence  is that MADI is a capable system for large pro A/V and broadcast applications. Its scalability has made it increasingly attractive in such applications.

We carried the MADI channels over the RAVENNA (AES67) media-over-IP standard. RAVENNA is an open standard for carrying real-time media over an IP network. With this in mind, we see how such an interface and a network can be made possible with FPGA boards and a can-do attitude.

 

Implementation

To understand how this can be implemented, we start with the understanding what is going on inside FPGAs. A single chip has three parts to it: input/output blocks, logic blocks and programmable routes. During development cycles, you are in full control of these 3 segments to configure to your specific application.

Figure 2: The internal structure of a FPGA chip

 

Then comes the interesting bit of (re)programming. In the not so distant past, FPGAs were mostly programmed using hardware description languages (HDL) such as VHDL and Verilog. That was much harder and not so friendly to most programmers. Only recently have development being made easier with the SDAccel development environment. With this, applications can be built in C/C++. A popular programming and design suite is the Xilinx ISE.

 

Now back to our work today. To start developing for a particular protocol, you need to identify all the technical specifications with that protocol. For MADI you are required to know the electrical characteristics and data organisation, Figure 3, of the protocol.

Figure 3: MADI data flow diagram. Two transmitter and receiver FPGAs can be derived from this.

 

Additional circuitry should also be accounted in design as the final system will be a combination of input and output ports. Then reference the timing diagram to define the logical signal flow.

 

This simple tutorial shows how one can program an FPGA board to accept audio signals and transmit them over a MADI channel.

 

Your Future with FPGA

As we develop more complex systems, we’ll paradoxically need simpler communication interfaces. FPGA based solutions work best when ideas are still experimental and budgets are limited. They provide a simple solution to the interface I described in the first chapter. (FPGAs are just one way they made it possible, in reality it could be with ASICs or DSPs)

In the IoT industry, FPGAs are popular in interface design. Even in processing, FPGAs are currently being used to replace power hungry GPUs and inflexible ASICs. This leads to smaller, power efficient and future-proofed systems. (The IoT industry is shrouded in uncertainty due to continuous development of telecommunication technologies as I discussed before.)

 

When doing this research, I was humbled by the vast information that already existed on this topic. I’ll be sure to dive deeper and experiment with this. The learning curve seems pretty steep, but that’s why I always carry my harness. Badum tss! 

Thank you if you have made it this far. I’ll be happy to know more about this topic from you so let’s talk more in the comment section.

Leave a Reply

Your email address will not be published. Required fields are marked *