Introducing Wave Capture in the Mojo IDE B1.3.0

Justin Rajewski

The Mojo IDE has been updated to version B1.3.0. This release brings a handful of new features and many bug fixes, but the most notable new feature is the Wave Capture tool.

There is a new component called reg_interface_debug. This component is nearly identical to it's _debugless counter part from the Register Interface Tutorial with two major differences. The first is that addresses 0xfffffff0 through 0xffffffff can no longer be used. This is because these are reserved for the new debug input. This input allows you to feed up to 32 bits into reg_interface_debug that can then be viewed using the Wave Capture tool built into the Mojo IDE.

Take a look at this quick demo of the output of the pn_gen (pseudo-random number generator) component being captured.

The number of bits and the number of samples to capture are configurable. Currently you are limited from 1-32 bits and the number of samples is only limited by the available RAM in the FPGA.

With your FPGA project setup, to capture data you simply need to click the connect button followed by the capture button. The connect button tells the IDE to connect to the FPGA and read in some configuration data such as the number of bits and samples to capture as well as the version of the reg_interface_debug module (the version is shown in the top right corner). Once connected, the capture button sends the trigger settings to the FPGA and then starts a capture.

On the left, you can see four little icons. These are to set the conditions upon which a capture should start. You can select (from left to right) rising edges, falling edges, high-level, or low-level. You can toggle these on and off for any signal by simply clicking them. If you have multiple triggers in a signal selected then any of those will be interpreted as a start condition. However, if you have triggers set on multiple signals, all of them must be fulfilled to start a capture.

For example, if Bit 0 has rising and falling edges enabled, then either edge will trigger a capture. If you then enable high-level on Bit 1, a rising or falling edge on Bit 0 will only start a capture if Bit 1 is high when the edge occurs.

It's important to note that depending on what signals are being captured, it is possible to setup conditions that will never trigger. In that case you can simply cancel the capture (by clicking the capture icon again) and change your trigger conditions.

If you don't set any trigger conditions, it will start the capture as soon as possible.

To get started, check out the new Lucid example project, Wave Capture. This project shows how to hook up and use the new component.

This is the very first version of this tool so don't worry, we have many more features planned!

This version of the IDE adds a feedback form accessible from the Help menu (Help->Send Feedback...). We'd love to hear from you!