Support|documentation

  Xcell Journal Online
  Xcell Journal Archives
   
  Writing for Xcell
  Advertising in Xcell
  FREE Subscription
   
  Partner Yellow Pages
  Reference Pages
  Contact Us

    

Home : Documentation : Xcell Journal Online : Article
Speed FPGA Debug with Mixed-Signal Oscilloscopes



by Joel Woodward, Senior Product Manager, Agilent Technologies
joel_woodward@agilent.com (7/11/05)


You can make internal measurements using Agilent scopes and the Xilinx ChipScope Pro analyzer.
article link to PDF
Article PDF 240 KB


Digital designers have long reached for an oscilloscope for debug. As FPGAs have become the centerpiece of digital design, the need to quickly debug systems that include programmable logic is stronger than ever. However, traditional oscilloscope technology has not kept up with the functional debug of FPGAs. A new breed of oscilloscopes known as mixed-signal oscilloscopes (or MSOs for short) delivers vital capabilities if you are developing systems with FPGAs.

Like traditional oscilloscopes, MSOs offer the same rich feature set for taking parametric measurements to measure signal integrity, jitter, and signal characterization. You can choose between versions that have either two or four analog input channels. MSOs come in a variety of bandwidths ranging from 300 MHz to 1 GHz bandwidth; these capabilities are important for checking signal parametrics. For example, you can readily change I/O standards and drive strengths using Xilinx® FPGA Editor and measure the real-world I/O characteristics using an MSO’s scope channels.

The major difference between MSOs and traditional DSOs (digital storage oscilloscopes) is the addition of 16 digital asynchronous sampling channels on the MSO. Plus, you can choose how fast these digital channels sample. The digital channels offer deep memory storage independent of the analog channel memory storage. You can employ the capabilities of the digital channels in a number of different ways that are particularly valuable for developing systems that incorporate FPGAs.

Bus Triggering and Display
Traditional oscilloscopes provide digital triggering capabilities that allow them to trigger on patterns across analog channels. With a four-channel oscilloscope, you can trigger on a single pattern that is as wide as four signals.

Debug often requires looking at buses using a specific event as the trigger condition. Using an MSO’s digital channels, you can trigger on a digital pattern as wide as 16 signals. This can be a powerful capability if you need to look at a state machine, an embedded microcontroller, or a data bus. In addition, you can also trigger and capture measurements across all four analog channels, extending the trigger width up to 20 signals, as shown in Figure 1.

Correlating Analog and Digital Measurements
Although you can use the digital channels to make strictly digital measurements, their capabilities are best employed for looking at problems that are both functional and parametric in nature – for example, triggering on a digital bus and having this trigger condition arm the scope measurement.

At Agilent, one of our design teams experienced an infrequent software glitch on an embedded product under development. This anomaly manifested itself very infrequently – about once a week. The software team developed diagnostics that caused the problem to happen on a more frequent basis. With this diagnostic software, they found that the problem occurred during read cycles on a PCI bus embedded in an FPGA.

The team routed PCI status signal out to pins and connected the MSO’s digital channels to these signals. Engineers quickly set up the MSO digital trigger on a PCI read cycle and then set the MSO scope channels to acquire when the MSO digital channels recorded a PCI bus read cycle.

With the ability to trigger on a specific bus cycle, the team was quickly able to resolve the problem. They found a clock with a too-slow rise time that impacted primarily read cycles. The team modified the design and downloaded a new configuration file into the FPGA. The combination of reprogrammable FPGAs and MSO measurements allowed the design team to fix the problem and ship the product on schedule.

Extensive Internal Visibility
To access internal signals, you might typically use the route-out approach to bring signals to pins that can be probed using an oscilloscope. Using traditional oscilloscopes, you would have access to either two or four signals at a time. This narrow signal visibility can complicate debug, as a number of problems require simultaneous visibility across a higher number of signals. To access new signals, you must change the design, re-synthesize, and run a new place and route to make your signals accessible to the oscilloscope. This process can take hours.

With the digital channels of an MSO, you have visibility of as many as 16 internal FPGA signals at a time. The power of the MSO’s digital channels can be further extended when combined with on-chip technologies such as the Xilinx ChipScope™ Pro tool and Agilent FPGA Dynamic Probe.

The ChipScope Pro analyzer allows design teams to incorporate an Agilent debug core in their FPGA designs. The debug core, known as ATC2, provides an easy way to route signals to pins, enables a faster setup of the MSO, and allows you to quickly measure new groups of internal signals. This capability extends the reach of the 16 digital channels into the FPGA design.

Let’s look at a simple communication system to illustrate the value of an MSO’s digital channels for FPGA debug. A state machine drives the process of sending out packets of 16-bit data along with a transaction ID. Parallel data is serialized, sent on a serial channel, de-serialized, and brought into a monitor. A second state machine at the monitor drives the process of receiving the packets and strips off the data and transaction IDs so that the packets can be pulled off to external memory. This state machine also generates acknowledge IDs that are fed back to the transmit side to communicate that data was received. The design originally dedicated 16 pins for a debug port.

Using the ChipScope Pro core inserter, you can parameterize an ATC2 core. A benefit of the core inserter is that you need not modify the original HDL design, as core insertion occurs post-synthesis and before place and route. You would simply specify, using the core inserter, which internal signals to group together as an active signal bank. Place and route uses the original user constraint file, so no additional work is required.

The core inserter also produces a small file that contains the specified signal names and groups. This file, known as a .cdc, is read by the FPGA Dynamic Probe application running on the MSO. When changing which signal group is presented to the MSO, the instrument automatically uses this signal naming file to correctly update signal names on the display. As opposed to the route-out approach, which can take hours to bring new signals to pins, the FPGA Dynamic Probe allows you to access a new group of internal signals in about one second.

For fast debug, the design team needed visibility into four sections of the design. The designer thus created a core with four signal banks to give access to 64 signals, 16 at a time, over the 16-pin debug port (as shown in Figure 2). ATC2 cores can be parameterized to have as many as 64 signal banks, providing access to 1,024 internal signals with the MSO’s 16 digital channels.

Timing Cores
You can configure ATC2 cores as either timing (asynchronous) or state (synchronous) cores; both types of cores are supported with the MSO. The core inserter injects a core into a design post-synthesis and before place and route. If you specified a timing core, the place and route tools do not put any flops between the signal being probed and the output pin; the routing of the signal to pin for measurement is treated as a false path. This allows the place and route tools to ignore any speed constraints associated with routing a specific signal to a pin.

The timing core does include a JTAG controller, but the controller typically runs very slowly (<5 MHz), as it is only used for small information exchanges such as selecting a new signal bank. Timing cores can be effective, as they allow you to look at signals across multiple clock domains or at anomalies that have a duration of less than one clock cycle. The primary trade-off associated with timing cores is that skew will exist between signal paths.

State Cores
Traditional oscilloscopes as well as MSOs provide asynchronous acquisition. Samples are stored using an adjustable clock reference internal to the scope. This can make it difficult to accurately capture and decipher synchronous events as the instrument captures invalid transitions between clock cycles.

A more effective way to capture synchronous information on a single clock domain is to parameterize the ATC2 core as a state core. A state core will have minimal impact on design timing because of its pipelined architecture. A total of four flops are placed between the signal being probed and an output pad (Figure 3). The design tools place the first flop as close as possible to the signal being probed. The additional three stages of pipelining allow the signal three clock cycles before reaching the output pad. The pipelined architecture of the ATC2 core allows the place and route tools to have a much greater probability of meeting the original timing goals of the design.

As the core is synchronous, the place and route tools eliminate skew between signal paths. The primary trade-off with a state core is that it works with a single time domain. Using the state core approach, you can measure across clock domains by inserting multiple state cores. The MSO can access multiple ATC2 cores, one at a time, in a single FPGA or distributed across multiple FPGAs on a single scan chain.

The MSO’s digital channels provide exclusively asynchronous acquisition. For FPGA debug, a method exists for allowing the MSO to display synchronous measurements, even though the initial acquisition occurs asynchronously. The ATC2 state core outputs a clock signal and signal states synchronous with the clock. The MSO’s digital channels acquire this pre-formatted state information. Then the MSO post-processes this measurement using a state display feature that allows you to specify one signal as the clock. The MSO filters out to all transitions between valid states. This makes it possible to make synchronous measurements internal to the FPGA.

Conclusion
The reprogrammable nature of FPGA technology makes rapid iterative real-world debug a great companion to simulation. As FPGAs become even more sophisticated, the need for efficient internal visibility increases. Mixed-signal oscilloscopes provide unique measurement capabilities that align with the needs of those designing systems that incorporate FPGAs. Applications that help you exploit the digital measurement capabilities of MSOs are a catalyst for shorter development cycles and higher quality designs.

For more information about the FPGA Dynamic Probe for Agilent MSOs, visit www.agilent.com/find/msoFPGA.

Printable PDF version of this article with graphics. PDF logo (7/11/05) 240 KB

 
/csi/footer.htm