Page 2
X5-210M User's Manual X5-210M User's Manual The X5-210M User's Manual was prepared by the technical staff of Innovative Integration on February 5, 2009. For further assistance contact: Innovative Integration 2390-A Ward Ave Simi Valley, California 93065 (805) 578-4260 FAX: (805) 578-4225 email: techsprt@innovative-dsp.com...
What is C++ Builder?............................10 What is DialogBlocks?............................10 What is wxWidgets?.............................11 What is Microsoft MSVC?...........................11 What kinds of applications are possible with Innovative Integration hardware?..........11 Why do I need to use Malibu with my Baseboard?....................11 Finding detailed information on Malibu.......................12 Online Help..................................12 Innovative Integration Technical Support........................12...
Page 4
Table of Contents X5-210M User's Manual System Requirements................................29 Power Considerations................................29 Mechanical Considerations..............................30 About the X5 XMC Modules..............................31 X5 XMC Architecture.................................31 X5 Computing Core................................32 X5 PCI Express Interface..............................34 Data Buffering and Memory Use............................35 Computational SRAM............................35 Data Buffer DRAM..............................35 Serial EEPROM Interface..............................35 EEPROM................................35...
Page 5
Summary....................................19 Applets....................................20 Common Applets.................................20 Registration Utility (NewUser.exe)..........................20 Reserve Memory Applet (ReserveMemDsp.exe)......................20 Data Analysis Applets................................21 Binary File Viewer Utility (BinView.exe)........................21 Applets for the X5-210M Baseboard..........................22 Logic Update Utility (VsProm.exe)..........................22 Finder....................................23 X5-210M XMC Module...............................24 Introduction..................................24 Hardware Features................................25 A/D Converters................................25 A/D Front End..................................26 Input Range and Conversion Codes..........................27...
Introduction Real Time Solutions! Thank you for choosing Innovative Integration, we appreciate your business! Since 1988, Innovative Integration has grown to become one of the world's leading suppliers of DSP and data acquisition solutions. Innovative offers a product portfolio unrivaled in its depth and its range of performance and I/O capabilities .
What is Malibu? Malibu is the Innovative Integration-authored component suite, which combines with the Borland, Microsoft or GNU C++ compilers and IDEs to support programming of Innovative hardware products under Windows and Linux. Malibu supports both high-speed data streaming plus asynchronous mailbox communications between the DSP and the Host PC, plus a wealth of Host functions to visualize and post-process data received from or to be sent to the target DSP.
DC to RF frequency applications, video or audio processing. Additionally, multiple Innovative Integration baseboards can be used for a large channel or mixed requirement systems and data acquisition cards from Innovative can be integrated with Innovative's other DSP or data acquisition baseboards for high- performance signal processing.
Also, feel free to register and browse our product forums at http://forum.iidsp.com/, which are an excellent source of FAQs and information submitted by Innovative employees and customers. Innovative Integration Web Site Additional information on Innovative Integration hardware and the Malibu Toolset is available via the Innovative Integration website at www.innovative-dsp.com X5-210M User's Manual...
Table of Contents X5-210M User's Manual Typographic Conventions This manual uses the typefaces described below to indicate special text. Typeface Meaning Text in this style represents text as it appears onscreen or in code. It Source Listing also represents anything you must type.
If these items are not installed prior to running the Innovative Integration install, the installation program will not permit installation of the associated development libraries. However, drivers and DLLs may be installed to facilitate field deployment.
Table of Contents X5-210M User's Manual Starting the Installation To begin the installation, start Windows. Shut down all running programs and disable anti-virus software. Insert the installation DVD. If Autostart is enabled on your system, the install program will launch. If the DVD does not Autostart, click on Enter the path to the Setup.bat program located at the root of your DVD-ROM drive (i.e.
Table of Contents X5-210M User's Manual Figure 2. Innovative Install Program Using this interface, specify which product to install, and where on your system to install it. 1) Select the appropriate product from the Product Menu. 2) Specify the path where the development package files are to be installed. You may type a path or click “Change” to browse for, or create, a directory.
Table of Contents X5-210M User's Manual The installation will display a progress window, similar to the one shown below, for each item checked. Figure 3. Progress is shown for each section. Tools Registration At the end of the installation process you will be prompted to register. If you decide that you would like to register at a later time, click “Register Later”.
It is recommend that you completely fill out this form and return it to Innovative Integration, via email or fax. Upon receipt, Innovative Integration will provide access codes to enable technical support and unrestricted access to applets.
Table of Contents X5-210M User's Manual Figure 6. Installation complete Click the “Shutdown Now” button to shut down your computer. Once the shutdown process is complete unplug the system power cord from the power outlet and proceed to the next section, “Hardware Installation.”...
Table of Contents X5-210M User's Manual Innovative Integration boards are plug and play compliant, allowing Windows to detect them and auto-configure at start-up. Under rare circumstances, Windows will fail to auto-install the device-drivers for the JTAG and baseboards. If this happens, please refer to the “TroubleShooting”...
Table of Contents X5-210M User's Manual Installation on Linux This chapter contains instruction on the installation of the baseboard software for Linux operating systems. Software installation on Linux is performed by loading a number of packages. A Package is a special kind of archive file that contains not only the files that are to be installed, but also installation scripts and dependency information to allow a smooth fit into the system.
Table of Contents X5-210M User's Manual intel-ipp_rti-5.3p.x32.rpm Installs Intel IPP library redistributable files. The installation CD, or the web site contains a file called LinuxNotes.pdf giving instructions on how to load these packages and how to install the drivers onto your Linux machine. This file is also loaded onto the target machine by the the Malibu- LinuxRed RPM.
Table of Contents X5-210M User's Manual Each of these packages automatically extract files into the folder, herein referred to as the Innovative /usr/Innovative root folder in the text that follows. For example, the X5-400 RPM extracts into /usr/Innovative/X5-400-[ver] symbolic link named...
Table of Contents X5-210M User's Manual Creating Symbolic Links The example programs assume that the user has created symbolic links for the installed board packages. A script file is provided to simplify this operation by the Malibu Red package. In the MalibuRed/KerPlug directory, there is a script called quicklink.
Table of Contents X5-210M User's Manual Hardware This directory contains files associated with programming the board Logic and any logic images provided. X5-210M User's Manual...
Table of Contents X5-210M User's Manual Hardware Installation The X5 XMC cards may be used on a variety of host cards supporting an XMC.3 PCI Express (VITA standard 42.3 compatible) site. XMC P16 is also used for system integration including use as a dedicated data channel.
Table of Contents X5-210M User's Manual XMC systems should be be compatible with VITA 42.3 specification for P15. The P16 interface can only be used when the PCI Express interface is present and active. The XMC P16 interface to the host may be customized in the Application Logic.
Table of Contents X5-210M User's Manual The X5 XMCs are designed to operate over the typical commercial temperature range of 0 to 70 C, but this relies on sufficient forced air cooling for most installations and modules. At the lower temperatures, it is also required that the environment be non-condensing for the standard commercial modules.
Table of Contents X5-210M User's Manual About the X5 XMC Modules Chapter 1. In this chapter, we will discuss the common features of the X5 module family. Specifics on each module are covered in later chapters. X5 XMC Architecture The X5 XMC modules share a common architecture and many features such as the PCI Express interface, data buffering features, the Application Logic, and other system integration features.
Table of Contents X5-210M User's Manual (4Gbits in a x64 configuration), and two banks of QDR2 SRAM (32Mbits total in two x32 dual-ported banks). The FPGA uses the memories for data buffering and computational workspace. Table 6. X5 Computing Core Devices...
Table of Contents X5-210M User's Manual X5 PCI Express Interface The X5 module family has a PCI Express interface that provides a lane, 2.5 Gbps full duplex link to the host computer. The interface is compatible with industry standard PCI Express systems and may be used in a variety of host computers. The following standards govern the PCI Express interface on the X5 XMC modules.
Table of Contents X5-210M User's Manual Data Buffering and Memory Use There are two sets of memory devices attached to the application FPGA that provide data buffering and computational RAM for FPGA applications. Computational SRAM The SRAM on the X5 series is a 4Mbyte memory dedicated as FPGA local memory. Applications in the FPGA may use the SRAM as a local buffer memory if the data buffer is too large to fit in FPGA block RAMs, or as memory for an embedded processor in the FPGA.
Table of Contents X5-210M User's Manual The I2C bus is slow and the calibration is read out of the EEPROM at initialization time by the application software and written into registers in the application logic for real-time error correction. The EEPROM also has a write cycle limit of 100K cycles, so it should only be written to when calibration is performed or configuration information changes.
Table of Contents X5-210M User's Manual The DIO port is presented on P16. See the connectors section of this chapter the connector pin out and information about the connector. Software Support The digital I/O hardware is controlled by the class. Its properties: IUsesDioPort Table 9.
Table of Contents X5-210M User's Manual Function 31..6 Figure 13. DIO Control Register (BAR1+0x14) Port Address DIO_L BAR1+0x13 DIO_H BAR1+0x16 Figure 14. Digital IO Port Addresses Data may be written to/read from the digital I/O port using the digital I/O port data registers. Data written to ports bits which are set for output mode will be latched and driven to the corresponding port pins, while data written to input bits will be ignored.
Table of Contents X5-210M User's Manual P16 Signal Virtex-5 FG1136 Pin Number Virtex-5 MGT Signal Identifier RXP7 MGT_126_RXN0 RXN7 MGT_126_RXP0 Figure 15. Virtex-5 Rocket I/O assignments for P16 signals Note that the positive and negative polarities of the individual lanes are reversed between the polarity notation on the P16 connector versus the polarity notation on the Rocket I/O pin pairs.
Table of Contents X5-210M User's Manual // Read/write current warning temperature float t = Module.LogicWarningTemperature(); Module.LogicWarningTemperature(70.0); // Read current failure temperature float t = Module.LogicFailureTemperature(); // See if the module is in thermal shutdown bool state = Module.Failed(); Thermal Failures The X5 modules will shut down if the Virtex-5 die temperature exceeds 85 degrees Celsius.
Table of Contents X5-210M User's Manual Custom logic designs can use it for any purpose. When using the stock firmware, the state of user logic LEDs can be controlled using the property. Innovative::X5_400M::Led() JTAG Scan Path X5 modules have a JTAG scan path for the Xilinx devices on the module. This is used for logic development tools such as Xilinx ChipScope and System Generator, and for initial programming of the PCI FPGA configuration FLASH ROM.
Table of Contents X5-210M User's Manual Integrating with Host Cards and Systems The X5 XMCs may be directly integrated PCI Express systems that support VITA 42.3 XMC modules. The host card must be both mechanically and electrically compatible or an adapter card must be used.
Table of Contents X5-210M User's Manual Updating the XMC logic Configuration EEPROM Virtex-5 configuration data is stored in an onboard flash EEPROM which may be updated using software provided by Innovative. Logic images may come as updates from Innovative, or be generated by a user developing custom functionality.
Page 46
Table of Contents X5-210M User's Manual module on the PCIE bus. Once this is accomplished, a known-good image may be reprogrammed into the EEPROM using the VsProm.exe tool. X5-210M User's Manual...
Table of Contents X5-210M User's Manual Writing Custom Applications Most scientific and engineering applications require the acquisition and storage of data for analysis after the fact. Even in cases where most data analysis is done in place, there is usually a requirement that some data be saved to monitor the system.
Table of Contents X5-210M User's Manual On the host side, the Malibu library is provided in source form, plus pre-compiled Microsoft, Borland or GCC libraries. The application code that implements the entirety of the board-specific functionality of example is factored into the unit.
Table of Contents X5-210M User's Manual device from those present in the system. All X5 family devices of whatever type share a sequence of target number identifiers. The first board found is Target 0, the second Target 1, and so on.
Table of Contents X5-210M User's Manual The module supports a test mode for module debugging and system test. The Test Counter Enable is used to turn on test mode and substitutes a ramp signal with channel number in the upper byte of the data. The Decimation section sets up the decimation logic to discard data, reducing the incoming data rate.
Table of Contents X5-210M User's Manual The predefined IUserInterface interface class is defined in ApplicationIo.h. The constructor of ApplicationIo requires a pointer to the interface, which is saved and used to perform the actual updates to the UI inside of ApplicationIo's methods.
Page 52
Table of Contents X5-210M User's Manual Configure Module Event Handlers Module.OnBeforeStreamStart.SetEvent(this, &ApplicationIo::HandleBeforeStreamStart); Module.OnBeforeStreamStart.Synchronize(); Module.OnAfterStreamStart.SetEvent(this, &ApplicationIo::HandleAfterStreamStart); Module.OnAfterStreamStart.Synchronize(); Module.OnAfterStreamStop.SetEvent(this, &ApplicationIo::HandleAfterStreamStop); Module.OnAfterStreamStop.Synchronize(); Similarly, HandleBeforeStreamStart, HandleAfterStreamStart and HandleAfterStreamStop handle events issued on before stream start, after stream start and after stream stop respectively. These handlers could be designed to perform multiple tasks as event occurs including displaying messages for user.
Page 53
Table of Contents X5-210M User's Manual handler in the main UI thread context. This results in a slight performance penalty, but allows us to call UI methods in the event handler freely. The Timer uses a similar synchronization method, Thunk(). Here the event is called in the main thread context, but the issuing thread does not wait for the event to be handled before proceeding.
Table of Contents X5-210M User's Manual //--------------------------------------------------------------------------- void ApplicationIo::Close() Stream.Disconnect(); StreamConnected = false; Opened = false; UI->Status("Stream Disconnected..."); Starting Data flow After downloading interface logic user can setup clocking and triggering options. The stream button then can be used to start streaming and thus data flow.
Page 55
Table of Contents X5-210M User's Manual return; The module supports both framed and continuous triggering. In framed mode, each trigger event, whether external or software initiated, results in the acquisition of a fixed number of samples. In continuous mode, data flow continues whenever the trigger is active, and pauses while the trigger is inactive.
Page 56
Table of Contents X5-210M User's Manual notification on each acquired frame. In other applications, such as when an FFT is embedded within the FPGA, the packet size can be programmed to match the processing block size from the algorithm within the FPGA.
Table of Contents X5-210M User's Manual enum IUsesX5Alerts::AlertType Alert[] = { IUsesX5Alerts::alertTimeStampRollover, IUsesX5Alerts::alertSoftware, IUsesX5Alerts::alertWarningTemperature, IUsesX5Alerts::alertInputFifoOverrun, IUsesX5Alerts::alertInputTrigger, IUsesX5Alerts::alertInputOverrange }; for (unsigned int i = 0; i < Settings.AlertEnable.size(); ++i) Module.Alerts().AlertEnable(Alert[i], Settings.AlertEnable[i] ? true : false); The fragment above enables alert generation by the module. The GUI control includes check boxes for each of the types of alerts of which the module is capable.
Page 58
Table of Contents X5-210M User's Manual When the event is signaled, the data buffer must be copied from the system bus-master pool into an application buffer. The preceding code copies the packet into the local Buffer called Packet. Since data sent from the hardware can be of arbitrary type (integers, floats, or even a mix, depending on the board and the source), Buffer objects have no assumed data type and have no functions to access the data in them.
Table of Contents X5-210M User's Manual Configure Tab As soon as the application is launched, the Configure tab is displayed. In this tab, a combo box is available to allow the selection of the device from those present in the system. All X5 family devices of whatever type share a sequence of target number identifiers.
Table of Contents X5-210M User's Manual Setup Tab This tab has a set of controls that hold the parameters for transmission. These settings are delivered to the target and configure the target accordingly. This tab has several sections. The Clock section offers configurations and routing of the clock.
Table of Contents X5-210M User's Manual Stream Tab The two buttons in the button bar start and stop data streaming. Press the running man button to start streaming data. Press the stop button to stop streaming, unless the stream has stopped itself.
Page 65
Table of Contents X5-210M User's Manual // ApplicationIo::StartStreaming() //--------------------------------------------------------------------------- void ApplicationIo::StartStreaming() if (!FStreamConnected) UI->Log("Stream not connected! -- Open the boards"); return; // Make sure packets fit nicely in BM region. if (FBmSizeWords/8 < (unsigned int)Settings.StreamPacketSize) UI->Log("Error: Packet size is larger than recommended size");...
Page 66
Table of Contents X5-210M User's Manual FStreaming = true; // Set Decimation Factor int factor = Settings.DecimationEnable ? Settings.DecimationFactor : 0; Module.Output().Decimation(factor); // All channels trigger together Module->Output().ExternalTrigger((Settings.ExternalTrigger == 1)); // Frame count in units of packet elements if (Settings.Framed) Module->Output().Framed(Settings.FrameCount);...
Table of Contents X5-210M User's Manual Data Required Event Handler When the output stream needs additional data, the Data Required event is signalled. The Wave application uses this call to generate new blocks for each channel and send them to the output via the SendOneBlock() method.
Table of Contents X5-210M User's Manual The Wave Example for Linux With the release of Linux support for Malibu and for Innovative products, there are versions of the example programs for this platform. This section discusses the Linux Wave example.
Table of Contents X5-210M User's Manual Developing Host Applications Developing an application will more than likely involve using an integrated development environment (IDE) , also known as an integrated design environment or an integrated debugging environment. This is a type of computer software that assists computer programmers in developing software.
Table of Contents X5-210M User's Manual Error: First chance exception at $xxxxxxxx. Exception class EAccessViolation with message “Access Violation!” Process ???.exe (nnnn) Other considerations: Project Options ++ Compiler (bcc32) Output Settings check – Specify output directory for object files(-n) (release build) Release...
Page 72
Table of Contents X5-210M User's Manual Microsoft Visual Studio 2005 Microsoft Visual C++ 2005 (version 8) Project Properties When creating a new application with File, New, Project with Widows Forms Application: X5-210M User's Manual...
Page 73
Table of Contents X5-210M User's Manual Project Properties (Alt+F7) Configuration Properties General Additional Include Directories Malibu PlotLab/Include – for graph/scope display Code Generation Run Time Library Multi-threaded Debug DLL (/Mdd) Precompiled Headers Create/Use Precompile Headers Not Using Precompiled Headers Linker...
Table of Contents X5-210M User's Manual Applets The software release for a baseboard contains programs in addition to the example projects. These are collectively called “applets”. They provide a variety of services ranging from post analysis of acquired data to loading programs and logic to a full replacement host user interface.
Table of Contents X5-210M User's Manual Each Innovative PCI-based DSP baseboard requires 2 to 8 MB of memory to be reserved for its use, depending on the rates of bus-master transfer traffic which each baseboard will generate. Applications operating at transfer rates in excess of 20 MB/sec should reserve additional, contiguous busmaster memory to ensure gap-free data acquisition.
Table of Contents X5-210M User's Manual Applets for the X5-210M Baseboard Logic Update Utility (VsProm.exe) The Logic Update Utility applet is designed to allow field- upgrades of the logic firmware on the 210M module. The utility permits an embedded firmware logic update file to reprogrammed into the baseboard Flash ROM, which stores the "personality"...
Table of Contents X5-210M User's Manual Finder The Finder is designed to help correlate board target numbers against PCI slot numbers in systems employing multiple boards. Target Number Select the Target number of the board you wish to identify using the Target Number combo box.
X5-210M XMC Module Introduction The X5-210M is a member of the X5 XMC family that has four channels of 14-bit 250 MHz A/D conversion with DC coupled inputs. A high performance computing core for signal processing, data buffering and system IO is built around a Virtex-5 FPGA.
Hardware Features A/D Converters The X5-210M has four channels of 14-bit A/D sampling at up to 250 MSPS using Texas Instruments ADS6149 converters. Minimum sample rate is 1 MHz, and the X5-210M implements a DC-coupled 50 ohm terminated SMA connector-based front end.
Non-volatile EEPROM coefficient memory. Table 13. X5-210M A/D Features Conversion clocking is provided by either a low jitter fixed on board oscillator or an external clock input. The clock buffering is designed to minimize jitter and maximum acquired signal quality. See the clock discussion for more details.
Table of Contents X5-210M User's Manual Figure 1. X5-210M A/D Channel 0 Front End Input bandwidth measurement is shown in the data section of this chapter. Input Range and Conversion Codes Each A/D input has a +1V to -1V single-ended input with 50 ohm input impedance. Other input ranges may be custom ordered.
Conversion clock sources on the X5-210M include an external clock input and provision for an on-board oscillator. Clocks used to drive the X5-210M must be extremely low jitter in order to yield good signal to noise ratio, noise floor, and spur performance.
Triggering The X5-210M has a trigger control component in the FPGA that controls the data acquisition process. The sample clock specifies the instant in time when data is sampled, whereas triggering specifies when data is kept. This allows the application to collect data at the desired rate, and keep only the data that is required.
Table of Contents X5-210M User's Manual Trigger Mode Data Collected/Played Back Start Trigger Stop Trigger Continuous All enabled channel pairs Software or rising edge of Software or falling edge of external trigger external trigger Framed N sample points for each of...
The FrameWork Logic implements a data flow for the X5-210M that supports standard data acquisition functionality. This data flow, when used with the supporting software, allows the X5-210M to act as a data acquisition card with 512MB of data buffering and high speed data streaming to the host PCI Express. The example software for the X5-210M demonstrates data flow control, logic loading and data logging.
The Board Basics and Host Communications chapters of this manual discuss the use of the packet data system used on the X5 module family. The X5-210M module FrameWork Logic connects the data from A/D interface to the packet system by forming the data into 32-bit words of consecutive enabled channels.
System Thermal Design The X5-210M can dissipate upwards of 25 watts depending on the features in use and details of the logic design, such as amount and rate of data processing. Forced air cooling may be required depending on the power dissipation and the ambient operating temperatures.
Table of Contents X5-210M User's Manual quality. Monitoring functions can be created in custom logic that triggers only when the digitized data shows that something interesting happened. Alerts make this type of application easier for the host to implement since they don't require host activity until the event occurs.
Table of Contents X5-210M User's Manual Dword # Description Header 1: PDN & Total #, N, of Dwords in packet ( e.g. Headers + data payload ) Header 2: 0x00000000 Alerts Signaled Timestamp Software Word 10..6 X"1303000" & "000" & mq_overflow(0);...
Page 91
Where to start? The best place to start with the X5-210M module is to install the module and use the SNAP example to acquire some data. This program lets you log data from the module and use all the features like triggering, clocks, alerts and calibration ROM.
Page 92
X5-210M User's Manual Calibration Each X5-210M is calibrated as part of the production tests performed. The calibration results are provided on the production test report with each module. The results of the calibration are stored in the on-board EEPROM memory. These calibration values are used by the logic to correct the analog errors and are loaded into the A/D as part of the initialization by the software.
Performance Data Power Consumption The X5-210M requires the following power for typical operation with when using the FrameWork Logic. This typical number assumes a 250 MHz system clock rate and 125 MSPS A/D data rates for the application logic. Table 1. X5-210M Power Consumption...
2.2 Analog Input A summary of the analog performance follows for the X5-210M module. All tests performed at room temperature, with no forced air cooling unless noted. Test environment was PCIe adapter card in PC running testbed software using FrameWork Logic.
Page 95
Table of Contents X5-210M User's Manual Test Group Parameter Measured Units Test Conditions Analog Input Crosstalk Worst case, Fin = 70 MHz, 2V p-p input Analog Input Amplitude 0 to 150 MHz, 500 mVp-p sine Variation X5-210M User's Manual...
Page 104
Table of Contents X5-210M User's Manual Connectors RF Connectors J1-J6 J1-J6connectors are positioned on the front panel and allow input, output, clock and trigger signals to be connected to the module. Connector Type: SMA 50 ohm Number of Connections: 1 per signal...
ROOT# FAN** Table 1. X5-210M XMC Connector P15 Pinout Note: All unlabeled pins are not used by X5 modules but may defined in VITA42 and VITA42.3 specifications. **Note:LED_N and FAN are special purpose pins that support Innovative adapter card functions. These are reserved pins on the VITA42.3 specification.
Table of Contents X5-210M User's Manual Table 2. P16 Signal Descriptions Signal Description Digital IO 0-15 DIO0 TXP0-7 SERDES transmit positive TXN0-7 SERDES transmit negative SERDES receive positive RXP0-7 SERDES receive negative RXN0-7 Xilinx JTAG Connector JP1 is used for the Xilinx JTAG chain. It connects directly with Xilinx JTAG cables such as Parallel Cable IV or Platform USB.
Mechanicals The following diagrams show the X5-210M connectors and physical locations. The XMC conforms to IEEE 1386 form factor, 75mm x 150mm. The spacing to the host card is 10 mm and consumes a single slot in desktop and Compact PCI/PXI chassis.
Need help?
Do you have a question about the X5-210M and is the answer not in the manual?
Questions and answers