Sub-megabit serial buses can be found in most embedded FPGA designs. Multi-gigabit serial bus inclusion in FPGAs is gaining traction. Serial buses' ease-of-implementation, low cost, and ties with legacy design blocks make them ideal for a wide variety of applications across a broad number of industries. Low-speed serial buses remain prevalent in computer, semiconductor, aero/defense, communications, consumer automotive, medical, test and measurement industries.
Serial buses such as I2C, SPI, CAN, LIN, and RS-232 are often key points for debugging designs with FPGAs which higher speed serial buses quickly pass data from chip to chip. Historically, capturing and decoding the information required significant manual effort if using an oscilloscope or the purchase of custom tools. Oscilloscope vendors now incorporate significant application technology that simplifies debug of low-speed serial buses.
The reprogrammable nature of FPGAs makes iterative debug effective and it's often advantageous to move quickly from simulation to prototyping. Digital oscilloscopes (DSOs) and mixed signal oscilloscopes (MSOs) naturally make good tools to probe low-speed serial interfaces. Offering 16 or more digital channels in addition to scope channels, MSOs have the added advantage of allowing for debug of internal parallel data buses, state machines, control signals, and parallel I/O interfaces that are problematic for DSOs' limited nature of scope channels only.
For low-speed serial buses in FPGAs there are a couple of types of common debugging issues. The first is related to electrical characteristics of the bus. Many engineers tend to let their guard down, thinking, "It's a very slow bus—what could go wrong?" Using traditional debugging techniques, the use of scope channels can help users resolve a myriad of electrical issues that result from choosing an inappropriate IO standard or the absence of a pull-up resistor. These are typically easy to find and resolve.
For a second class of issues, viewing the contents of the serial bus is required. FPGAs interact intensively with the surround system and these interactions are difficult to simulate extensively. A portion of these interactions is often implemented using low-speed serial buses used to communicate to adjacent chips. For example, is the microprocessor embedded in the FPGA passing the right values to a peripheral? Low-speed serial buses may also provide communication between functional blocks within a single FPGA.
Viewing data captured from the scope, users manually decode the captured waveform to discover the content. Let's take a simple a simple case using I2C as an example. After capturing the data using a single shot acquisition, a user must manually determine if the serial data stream is a 1 or a 0 on each clock edge and document this sequence of 1's and 0's. It is easiest to print out the image before starting so the user can write "1" or "0" next to the waveform. Next, segment the 1's and 0's to match the protocol of the bus, and finally convert each field into a useful HEX equivalent.
You've now decoded a single screen shot. This process can take hours if multiple packets need to be decoded, and the brain-numbing dull nature of the task makes it error prone. Worse, it's manually impossible to do while the scope is running repetitively and thus restricts debug to static single-shot measurements. Yet, it remains the most common method today for low-speed serial protocol decode. Triggering on packet contents is even more difficult as it requires multistage sequencing not found in oscilloscopes.
Digital oscilloscopes from most vendors have recently added serial application packages. These application packages can be used with scope channels, or in the case of MSOs, digital channels can be used for serial acquisition. This preserves the scope channels to look at analog activity providing debug across the analog, digital, and serial domains.
These serial application packages typically add another 10% to the price of the scope and save hours to days of time when working with low speed serial buses. Users should strongly consider adding serial capabilities when purchasing new oscilloscopes. These serial application packages, unique to specific buses or combinations of buses, add two primary values — decode and triggering.