In this series:
- A Step by Step ADC/DAC Tutorial Series Part 1: Introduction
- A Step by Step ADC/DAC Tutorial Series Part 3: Software installation validation and the first steps with MBDK
- A Step by Step ADC/DAC Tutorial Series Part 4: Project definition
- A Step by Step ADC/DAC Tutorial Series Part 5
In my previous blog post, I introduced myself and outlined a short project in which I would use a µDigitizer system from Nutaq. In this post, I briefly describe the µDigitizer and document the installation of the software package. I then explore the included software and give my first impressions. Finally, I finish with an overview of the Nutaq Model-Based Design Kit (MBDK).
The µDigitizer package
I received the µDigitizer as a finished product. All the ordered parts were pre-installed at Nutaq and I only needed to plug it in. But, if you're curious like me, you want to open the chassis and see what's inside. First of all, what is called µDigitizer is in fact a chassis with two basic components: an FPGA carrier board and a mezzanine card for data acquisition. The chassis has two AMC µTCA slots as depicted below .
Figure 1: Overview of the µDigitizer
When you first look at the µDigitizer, you'll notice seven MMCX connectors. On top of the Perseus FPGA carrier board is the ADAC250 mezzanine A/D and D/A card. It's capable of sampling data at a rate of 250 mega samples per second (MSPS) on each channel and sending the data to the FPGA for further processing through a high pin count (HPC) connector.
Nutaq's ADAC250 FMC has two input A/D channels (#6) and two output D/A channels (#8), as shown in Figure 1. It can input an external clock source for synchronization functions (#2) and can output a clock signal for use by other hardware (#3). There is also a trigger that can be used to discipline the internal reference clock (#4).
The MMCX connectors for the data and clock inputs/outputs really got my attention when I opened the box, as they may be useful later in my project.
Installation of ADP tools package
After setting up the hardware, one needs to install the third-party software and update the Nutaq µTCA firmware, if required. It's important to note that the third-party software must be installed before updating the µTCA software. Also, the µDigitizer is shipped with the latest version of firmware, so there is usually no need to install it. However, should the version change, an install may be required.
Figure 2. Xilinx ISE installation wizard
To install the µTCA software, I visited Nutaq's website and found the required software installation package after looking around a bit. I clicked on the Support tab, then on "Latest µTCA edition." I scrolled down and clicked the download link.
The download is 200 MB and the installation process is quite simple. I chose to install Nutaq's MBDK, BSDK and the OFDM reference design. When this was done, the install assistant launched a batch file to link to Matlab.
Upon completion, I browsed the folder structure. The folder structure is easily understood; there is a documentation folder, an examples folder (containing a workspace for the running example to store the acquired data), and an FPGA folder (containing pre-generated bitstreams for the FPGA and some data for the MBDK to work with System Generator). A Matlab folder contains all the examples that can be launched from the Matlab's online help.
While looking at the different folders, I found an awesome CLI tool that lets you connect to the FPGA (once PetaLinux has been installed) and communicate directly with the system.
With a simple command like connect <ipaddress>, you can connect to the device and write directly to the registers. It's also possible to perform tasks like accessing memory or getting a device's MAC or IP address. The CLI is also useful for running batch files that configure multiple parameters or for running calibration algorithms on radio cards.
The user guide for the CLI can be found in C:NutaqADP6ADP_MicroTCAdocumentationpdfAPI. I plan on studying the CLI closely as it may prove useful for the next steps of my project.
Figure 3. CLI for communication with the carrier board
Matlab and Simulink: Browsing through the examples
After installing the required µTCA and third-party software (Matlab, Simulink, and Xilinx ISE), I could browse the X:Nutaq folder. In X: NutaqADP6ADP_MicroTCAdocumentationpdf, I found a user guide explaining Nutaq's tools. The most interesting part is when you open Matlab and go to the Help menu. You can also type "demo" from Matlab's command prompt to access the available hardware functional examples, as shown in Figure 4.
Figure 4. Documentation for the Matlab Record/Playback example
Clicking on "Open this model" displays the actual Simulink model. The graphical simplicity of the model lets me dream of all the things that I could do with such a powerful tool. It really can accelerate development. Having no previous experience with VHDL but understanding how complex it is, seeing the model on screen makes me understand its appeal. It's hard to believe that these Simulink blocks will do more than just simulate, that they will program the FPGA as if I had hand-coded everything in VHDL. After opening the model, a simple click on the System Generator icon provides you with instructions on how to generate the bitstream required to program the FPGA.
In this second blog post, I wrote about my initial µDigitizer impressions. I walked through the software installation process and noted how I impressed I was by the simplicity of the MBDK model.
Sometimes what appears to be simple at first turns out to be complex afterwards, so I will try in my next blog post to understand Nutaq's MBDK and see how the Record/Playback example can be applied to my FPGA-based ADC-DAC project.