Host support software

Welcome to Sundance Help File

June 2009.

This document is intended to give you an overview of the hardware, firmware and software available from Sundance.

The aim is to give you a starting point for understanding how the available components fit together to help you build complex processing systems.

We recommend you read this help file.

The finding your feet section gives beginners an overview of how things fit together.


Host support software

Finding your feet

This section is a starting point for people with little or no experience of using Sundance Digital Signal Processor (DSP) products, and gives a basic model of the hardware and software involved. More experienced users may skip this section as everything described here is covered in greater detail elsewhere.

  • Overview

  • The hardware

  • Communication

  • The software


Host support software

Overview

A typical DSP application using Sundance equipment is made up from a host PC holding one or more carrier boards, each supporting one or more processing elements (DSPs, I/O devices, or FPGAs), known as TIM s.

The photo shows a carrier board with one TIM already plugged into a carrier board, and second TIM about to be attached. The carrier boards do not run any programs, they simply hold the TIMs, providing them with power and a means of communicating with the rest of the world. A carrier board plugs into a host PC using a PCI slot.

During development you will use a number of programs on the host PC to develop code for both the DSP and the host PC. You also use the PC to debug your code running on the DSP.


Host support software

The hardware

  • TIM

  • Carrier board

  • Host PC


Host support software

TIM

A TIM (Texas Instruments Module) is the basic building block from which you build your system. You can construct more complicated systems by making connections between TIMs and other devices to allow them to communicate.

Sundance provides three general types of TIM:

  • DSP TIMs (modules with at least one DSP)
  • FPGA TIMs
  • I/O TIMs

Sample:


Host support software

Carrier boards

You cannot use a TIM on its own: you need to supply it with power and have some means of connecting it to the outside world. This is done using a carrier board that is able to communicate with the host PC into which it is plugged.


Host support software

The host PC

The host PC holds your carrier board with its TIMs and supplies them with power. It also runs software that allows you to control the TIMs and run programs on them. The host PC is also where you develop the various programs needed by your application.


Host support software

Communication

There are several ways that the host PC and the TIMs can exchange data. By far the simplest and most convenient is by using ComPorts. A ComPort can be thought of as a data pipe: the transmitting processor pushes words in at one end and the receiving processor pulls them out of the other. Each ComPort can support transfers in both directions at once.

ComPorts are used to communicate between pairs of TIMs. A special comport, the host comport, is used for communication between the host PC and the first TIM in your system (the root TIM).

You can connect ComPorts together using external cables on the back of the carrier board or internal wires that are built into it.

The host ComPort uses your PC’s PCI bus. Simply plugging the carrier board into the PC establishes this connection.

The host PC needs to be able to communicate with your carrier board. It does this by making use of a device driver - software provided by Sundance that runs on the host and understands how to transfer data over the host ComPort.


Host support software

The software

All program development is usually done on your host PC using software packages from Sundance, Texas Instruments and 3L Diamond. To make life easier, Sundance provides an installation wizard that will lead you through the various steps needed to get your hardware and software ready for developing applications. The wizard will take care of installing the following software components:

  • Code Composer Studio (CCS)

  • 3L Diamond

  • Device drivers

  • Sundance utility software

  • Sundance software development kit

  • Sundance software development kit for FPGA-only module

  • Examples


Host support software

Code Composer Studio (CCS)

Code Composer Studio is a Texas Instruments product, but you may purchase it from Sundance. It provides the compiler, assembler, and linker that you will need to be able to generate programs that will execute on DSP TIMs. It also provides software for debugging programs by watching and interacting with their execution. This software needs to be able to communicate with the DSP in a way that does not interfere with other communications. This is done using a separate JTAG connection to gain low-level access to the processors on your TIMs. The wizard will install a device driver (the SMT6012 package) that manages this connection for you.

Code Composer Studio also provides its own development environment that exclusively uses JTAG to load code to particular processors; all the processors in your system must be loaded separately. As this can be inconvenient and error-prone and does not include any support for Sundance peripherals, Sundance recommends that you develop your DSP applications using 3L Diamond.

You write programs as text files using your chosen text editors and then use the Texas Instruments compiler, assembler, and linker from the command line to convert them into executable forms. This process may include making reference to Sundance object libraries and header files. Users of 3L’s Diamond software will also be able to generate programs for multiple processors. Sundance recommends that you develop the code using the Diamond real-time operating system from 3L, as this makes most efficient use of both your time and the DSPs resources.


Host support software

3L Diamond

As an official software partner, 3L Ltd has been working closely with Sundance, and this close relationship has meant that customers get the benefit of a simple-to-use, reliable and flexible development environment that is highly optimised to work well with the Sundance hardware.

We advise our customers to design software solutions for multi-DSP systems, and to implement hardware solutions for mixed multi-FPGA/DSP systems with the 3L Diamond products.

Diamond provides this model by describing multiprocessor systems as a number of independent tasks that communicate over channels. Whether these tasks are executing on DSPs or FPGAs, Diamond manages the interconnections and lets you concentrate on your application. This provides hardware independence that lets you make major changes to the underlying hardware without needing to change any code. Repositioning a task on a different processor can reduce to a tiny change in a single text file. This unique flexibility allows you to develop multiprocessor software on single-processor hardware and then later migrate to a multiprocessor system without code changes, recompilation, or relinking.

There are two Design products:

  • Diamond DSP

  • Diamond FPGA


Host support software

Diamond DSP

Diamond DSP offers the coarse grain parallelism of DSPs by means of an optimised RTOS. Networks of mixed C6000 types are supported by a multi-processor, multi-threading microkernel with pre-emptive, priority-based real-time scheduling.

DSP tasks are created with the standard compiler and linker from TI CCS.

Diamond provides off-the-shelf solutions to loading, communication, and synchronisation problems; built-in drivers provide transparent, deadlock-free communication between processors while bulk data transfers between the Host and the DSP system occur over high-speed inter-processor links, leaving the slow JTAG chain free for debugging.


Host support software

Diamond FPGA

Diamond FPGA works in tandem with Diamond DSP to add the fine grain parallelism of FPGAs to your design. Now you can directly harness the processing power that FPGAs offer and connect FPGA tasks to the rest of the system. Diamond will even allow you to use the FPGAs on the most Sundance DSP TIMs, by automatically adding your tasks to the standard Sundance firmware.

Tasks are created in VHDL or tools such like Xilinx System Generator® or Celoxica's DK suite. They can also be provided as standard netlists files. Diamond automatically adds the logic to allow your tasks to communicate with other tasks then builds a bitstreams with the standard Xilinx ISE tools.

Diamond supports most of the Sundance's high-speed ADC and DAC modules that often contain an FPGA, so you can build state of the art systems with very high performance in a very little time.

The clear Diamond's model leads to designs that are simple and reusable, reducing costs of maintenance and development.

The output of Diamond is a single application file that contains everything needed to load all processors in your system automatically. The application will load the DSPs and reconfigure the FPGAs, and get your system running.


Host support software

Device drivers

The wizard will install the host PC device drivers that Sundance software needs to communicate with the rest of your system. This device drivers are part of the SMT6300 package.


Host support software

Sundance utility software

The wizard will install an utility program that gives you basic control of you hardware.

The Board Info Utility can:

  • display information about the hardware it finds;

  • reset your system;

  • manage the ComPort connections built into the carrier boards; and

  • run a confidence test on your root TIM.


Host support software

Sundance software development kit

Many users will find that the host programs supplied by Sundance and 3L are all they need, and so they will never have to write any host code at all. More advanced applications may need extra programs that will run on the host; these are written in C++ and are built using Microsoft’s Visual Studio. The wizard can install the SMT6025 package to provide support for developing host programs.


Introduction SMT6026

Sundance software development kit for FPGA-only module

Many users will find that the host programs and bitstreams supplied by Sundance are all they need, and so they will never have to write any host code at all. More advanced applications may need extra programs that will run on the host; these are written in C++ and are built using Microsoft’s Visual Studio. The wizard can install the SMT6026 package to provide support for developing host programs.


Introduction SMT6048

Sundance software development kit for USB board

Many users will find that the host programs and bitstreams supplied by Sundance are all they need, and so they will never have to write any host code at all. More advanced applications may need extra programs that will run on the host; these are written in C++ and are built using Microsoft’s Visual Studio. The wizard can install the SMT6048 package to provide support for developing host programs.


Host support software

Examples

Sundance provides sample programs that run on the DSPs and also on the host PC. Several of these are written using 3L Diamond, and most are loaded into the DSPs down the host ComPort. Some of the examples are loaded using CCS directly, but note that these examples are built from the command line.

The examples are designed to give you a starting point for your development.


Host support software

Further information

The rest of this document contains detailed information about all the topics covered in this section. The comprehensive help files included with all Sundance software packages supplement this information.


Hardware section

Hardware

This section provides an overview of the Sundance hardware components and shows how they can be combined to form complete systems. See ‘ Installation and configuration’ for details of installing the hardware.

The picture above shows an SMT310Q carrier board along with three TIMs (actually an SMT370, an SMT376, and an SMT374).

  • Modules

  • Interconnection mechanisms

  • Carrier boards

  • JTAG


Known as TIMs

Modules

Sundance hardware is build around modules that have been designed to a standard format, the TIM. This was originally defined by Texas Instruments, but several of the Sundance TIMs do not carry a Texas Instruments processor (for example, FPGA modules or Analogue to Digital converters).

All of the Sundance TIMs provide mechanisms to transfer data from module to module. The mechanisms are implemented on the TIMs using FPGAs.

Modules are usually combined on one or more carrier boards, which also provide the necessary power and assist with communication. Note that most Sundance modules require a 3.3v supply.

  • Processor TIMs

  • FPGA TIMs

  • Analogue converter TIMs

  • Other TIMs


General overview of processor type TIMs

Processor TIMs

The following diagram gives a general overview of processor TIMs.

The main components of all processor TIMs are a DSP, Flash Memory (ROM) and a FPGA. Some TIMs may have more than one of each component.

Software support for these hardware modules are provided by the SMT6400 software package.


Flash

The Flash

The flash is a ROM that holds data needed to put the TIM into a fully working state. It can hold data in addition to this for use by a running program.

The flash memory on every TIM is programmed with a standard set of data during manufacture. Most users will never need to alter the contents of the flash. For those who do, we have provided a utility program, SMT6001, which may be used to update the flash.

The information held in the flash is divided into three segments:

  • Bootloader
  • FPGA data
  • User data


Bootloader

Before a processor TIM can be used it must be reset; this is usually done by external software, but also happens automatically when power is applied to the module.

Following this reset, the DSP will always load a specific program from the flash and start it executing.

This program is known as the bootloader and is described in detail here. Briefly, it sets the DSP into a standard state, configures the FPGA, and finally loads and executes a user program.


Processor TIM - FPGA data

FPGA data

The FPGA data is information (firmware) that is used by the bootloader to set the FPGA into a state where it is implementing a number of peripheral resources that can be used to communicate with other modules.


Processor TIM - user data

User data

The bootloader and FPGA data only use up a small part of the available space in the flash ROM. The remaining space may be used to hold user information. This may include a program to be loaded by the bootloader following reset, or data to be used by running applications, or both. Most TIMs are shipped with an empty user data area and will load programs from a ComPort.


Processor TIM - The FPGA

The FPGA

A FPGA (Field Programmable Gate Array) is a device that can be configured by software to implement hardware functions. Sundance TIMs use FPGAs to create peripheral devices such as ComPorts.

Before a TIM can access the mechanisms that will allow it to communicate with other modules, the DSP must load the FPGA with appropriate firmware. This firmware is held in the FPGA data segment of the flash, and will be installed in the FPGA each time the bootloader executes.

When the FPGA is in its reset state, one of the LEDs on the TIM will be lit. This LED will go out once the FPGA has been successfully configured.

The standard firmware is all that is necessary for most applications, but it is possible for you to develop variations of this firmware or completely new editions. Please contact Sundance for information about modifying or replacing the firmware.


Processor TIM - The FPGA

Sundance FPGA

The firmware provided by Sundance typically implements some or all of the following communication resources on the processor type TIMs:

  • ComPorts

  • SDB / SHB

  • Rocket-IO Serial Links

  • Global bus

  • Leds

You use the Flash Programming Utility (SMT6001) when it is necessary to program the firmware. Many users should never need to do this.


FPGA only type modules - user data

FPGA TIMs

These modules have been designed to provide custom hardware support for user-specific applications, typically applications that need to sustain a high rate of data processing.

These modules do not have a DSP but contain:

  • control logic,

  • an FPGA used for custom application,

  • dedicated peripheral resources,

  • optional memory.

The control logic is connected to dedicated peripheral devices used to configure the modules and download the FPGA data stream.

The FPGA is also connected to peripherals that may be used to communicate with other modules in the system once the FPGA is configured.

Software support for this type of hardware module is provided by the SMT6500 software package.


FPGA type TIMs - control

Module Control Logic

The control logic normally takes the form of a CPLD (or a microcontroller) that implements standard resources that are used to configure the module. In particular, it implements ComPorts that are used to receive a data stream to configure the FPGA. The control logic cannot be changed.


FPGA type TIMs - The FPGA

The FPGA

The FPGA on an FPGA TIM is available for user algorithms. On some modules the FPGA may already contain basic firmware to allow the FPGA to access to the module's peripheral connections, allowing the implementation of peripheral devices for connecting to other modules in the system. If the firmware provided by Sundance is not used, the entire FPGA is however available for custom firmware implementation.


DAC type modules

Analogue converter TIMs

These modules have an FPGA, which implements a number of communication resources used to connect the module to other modules.

There are ADC modules, DAC modules, and modules with both ADC and DAC.

Some modules also have memory on board.

See the user manual for your module for a more detailed description.

Software support for this type of module is provided by the SMT6600 software package.


ADC type modules

ADC modules

These modules sample an analogue signal and produce digital data that is normally transmitted to other TIMs over a high speed communication resource such as a SHB or a RSL.

Configuration and control of these modules is usually performed by sending data to the TIM over a ComPort.


DAC type modules

DAC modules

These modules take a stream of digital data and convert it into an analogue output signal. Configuration and control of these modules is usually performed by sending data to the TIM over a ComPort.


Other modules

Other TIMs

Sundance also provides other types of module, for example, video imaging type modules, storage and I/O modules. For more information about the range of Sundance products, visit our website at www.sundance.com.


Interconnecion mechanisms

Interconnection mechanisms

There are several different ways to exchange data between Sundance hardware modules and other peripheral devices; the data rate required by your application will usually determine your choice of which to use.

TIMs allow data exchange by providing a number of different sets of signals, most of which are normally present on processor TIMs; some of them may also be available on other types of TIM. The signals give the following data exchange mechanisms:

  • Communication Ports (ComPorts)
  • Sundance Digital Link (SDL)
  • Sundance Digital Bus (SDB)
  • Sundance High-speed Bus (SHB)
  • Rocket-IO Serial Link (RSL)
  • Global Bus.

The SDB, SHB and RSL signals are accessed through connectors on the TIMs themselves.

The Global Bus signals are presented on the Global Bus connector at the back of the TIM. This connects to the carrier board where the signals are passed on to the host interface or used to access the board's resources.

Note that carrier boards only have a global bus connector in the first TIM slot; only TIMs in that slot can access the Global bus.

ComPort signals are passed through the mounting connectors at the back of the TIM and made available on carrier board connectors.

All of these signals are managed by the TIM's FPGA. The signals for ComPorts, the SDBs, the RSLs and the Global Bus are standardised, but the SHB and RSL are more flexible and can be customised to meet the requirements of your application.

Sundance uses these signals to provide communication devices implemented in FPGA firmware. The devices appear to the DSP as sets of memory-mapped status, control, and data registers, which the DSP reads and writes to access the communication resource.

All communication devices appear to the DSP as operating on 32-bit values. The firmware implementation determines how these bits are presented on connectors. Physical devices on the external connectors may receive or present values in different ways (32 bits, pairs of 16 bits,...). For example, the ComPort interface takes the 32 bits and transmits them to the ComPort connectors in four sequential lumps of eight bits.


Sundance Communication Ports

A Sundance communication port, or "ComPort", can connect two TIMs together to provide a bi-directional path for exchanging streams of 32-bit values.

This is the basic communication method for all TIMs and is usually used to load programs into processor TIMs. ComPorts can sustain a data rate of about 20MB/s.

See the ComPort connections section for more information about connecting ComPorts together.


Sundance Digital busses (SDB)

Sundance Digital Link (SDL)

An SDL is similar to a ComPort but faster. SDLs are not compatible with ComPorts.

The SDL implements a synchronous interface.


Sundance high-speed busses (SHB)

Sundance High-speed Bus (SHB)

The SHB is the CONNECTOR shown below along with an example of the SHB cable. The SHB cable transfers 32 bits at a time.

For each 32-bit access made by the DSP, the firmware implementation directly accesses the 32 physical bits provided by the SHB physical device.


Sundance high-speed busses (SHB)

SHB from SDBs

You can combine two SDB connectors to form a single SHB connector by using the connector shown below.

This single SHB connector can then be used with modules that require a SHB connector as shown in the figure below. The two SDB cables combine to produce one 32-bit SHB connector.


Sundance Digital busses (SDB)

Sundance Digital Bus (SDB)

The SDB is a high-speed 16-bit communications device. The DSP accesses this device 32 bits at a time. Such accesses are presented at the connector as pairs of 16-bit accesses.

The SDB is present on many TIMs, but has been superseded by the SHB.

An SDB connector is shown below. For a photo of the SDB cable see this section.


Sundance Digital busses (SDB)

Rocket-IO Serial Link (RSL)

The RSL is a multi-gigabit serial transceiver that powers the Virtex-II pro, and Virtex-4 FPGAs. Each RSL is composed of a full-duplex differential transmitter and receiver lanes that transfers data up to 2.5Gbps in either direction at the same time. Up to four of these link can be combined to form a Rocket-IO Serial Link Communications Channel that is capable of data transfer up to 10Gbps.

The RSL is present on many TIMs based on the Virtex-II pro and Virtex-4 FPGAs.

RSL connectors are shown below.


Carrier boards

A system is built from a number of intercommunicating TIMs. These TIMs need to be mounted on a carrier board, which holds them physically and provides power and some communication paths to other components of the system.

Sundance can supply several different types of carrier board, including stand-alone carriers and others that plug into a host PC using the PCI or Compact PCI standards.

The most popular carrier board, the SMT310Q, is a PCI-type, quad TIM site model and is shown below.

See the user manual for complete details.

For more information on other carrier boards such as the SMT329 VME64 carrier board, SMT410 PMC carrier board and the popular SMT113 stand-alone carrier boards, please see the Sundance website.

  • Root TIM

  • ComPorts

  • Host connection

  • Connecting carrier boards

  • Access to carrier resources


Carrier boards

Root TIM

The first slot on a multi-TIM carrier board has special properties. In particular, it has an extra connector, that is connected to the carrier's host interface and on-board resources. Some TIMs have the matching connector, and can access the carrier board resources when plugged into the first TIM site of the carrier board. A TIM on the first TIM slot of a board is known as the Root TIM.


General notes on connecting TIMs

ComPorts

ComPorts are bi-directional communication links that can transfer streams of 32-bit values. There are no restrictions on the direction of transfer, as the hardware will automatically switch from reading to writing as necessary.

However, when a TIM is reset, the ComPorts will start off in a particular electrical state: ComPorts 0, 1, and 2 always reset to the output state and ComPorts 3, 4, and 5 reset to the input state.

It is important that you only ever connect ComPorts that reset to the opposite state.

For example, you may safely connect ComPort 0 of one TIM to ComPort 5 of another.

Connecting ComPorts that reset to the same state (for example, ComPort 1 to ComPort 2) can damage your hardware.

ComPorts are one of the interconnection mechanisms provided by Sundance.


FMS ComPort connections

On the back of the carrier board you will find a number of FMS connectors. These correspond directly to the ComPorts from the associated TIM sites. These sites are numbered from 1 to 4, with TIM-site 1 being closest to the board's end plate (to the right in the picture below). Each connector is labelled TsCn-r meaning "TIM-site s, Comport n, Reset direction r". So T3C4-I indicates TIM-site 3, ComPort 4, resetting as an Input.

It is possible to create any correct topology by joining pairs of these FMS connectors with FMS cables. You may also connect different boards together in the same way.

There are restrictions on the acceptable lengths of FMS cables: cables longer than 20 cm are not recommended.

The FMS connectors are marked as resetting to inputs or outputs; make sure that you only ever join connectors of opposite direction: an output to an input, or an input to an output.

The cable should be connected with one side showing blue and the other side showing silver as shown in the photo below.


On-board comport connections

Most carriers provide a way of connecting certain ComPorts using wires built into the board itself. These wires are controlled by switches that can be set by host software. Using these switches can reduce the need for FMS cables at the back of the board to make ComPort connections between TIMs.

See the BoardInfo application for information about setting the on-board comport switches and the limited range of connections that is available.

You will need to use FMS cables if you require a topology that is not supported by the on-board connections.


PCI connection

Host connection

The TIM on the first TIM site of a carrier board plugged into a host PC has two ways to communicate with the host:

  • Host comport

  • PCI connection to host


Host ComPort

The host ComPort connection provides a communication path between the host and the TIM in the first site of the carrier board. It typically runs at 2MB/s. The host ComPort link is the standard path down which TIMs are loaded. ComPort 3 of the first TIM site is normally connected to the host ComPort on the carrier board.


PCI connection

PCI connection to host

The Sundance carrier boards include a PCI bridge chip that gives the first TIM access to host resources, such as interrupts, I/O and host memory ranges. The host ComPort link is actually implemented using this PCI connection.

The bridge also gives the host access to resources on the carrier board.

A TIM can use this PCI connection for high-speed data transfer data between the carrier board and the host memory.

For software examples of how this can be done see the software section.


General notes on connecting TIMs

Access to carrier resources

A number of resources are implemented on the carrier board:

  • PCI bridge chip used to connect the carrier board to the PCI host system.

  • SRAM on the carrier board.

It is possible for the root TIM to access these resources by means of the global bus. The host system can also gain access to these board resources.


General notes on connecting TIMs

DSP access

Some processor TIMs have a global bus connector. The global bus is a communication resource that is implemented in the FPGA and controlled by registers that are mapped into the memory space of the DSP. The DSP can use these registers to cross the Global bus connector on the root TIM site and gain access to resources on the carrier board.

Using the global bus, the DSP on the root TIM site is able to access the host system's memory space.

The global bus can not be used to communicate between TIMs.

For more detail about the global bus, see the firmware section.


General notes on connecting TIMs

Host access

The bridge chip on the carrier board allows the host system to access resources on the carrier board directly. These resources are mapped into the memory space of the host system at the location determined by the host operating system.


FMS comport connections

JTAG

The Sundance peripherals provide a way for TIMs to exchange data with other TIMs and with the host. The TIMs can also be connected into the JTAG chain used by TI's Code Composer debugger. The connections are managed by a JTAG Test Bus Controller chip on the carrier board; installing a TIM onto the board automatically inserts it into the board's JTAG chain. The host PC has access to this JTAG chain as well as to the completely separate host ComPort. It is mainly processor TIMs that are inserted into the JTAG chain. FPGA TIMs typically are not.

You should note that communication over JTAG is complex and slow; we recommend that it is only ever used for debugging. Sundance and 3L software does not use JTAG other than indirectly through Code Composer.


Other connections

Off-board JTAG debugging

It is possible to extend the JTAG chain of one carrier board to include the JTAG chain of another.

The carrier board also provides a chained reset signal that can be connected to another carrier board to ensure that all carrier boards in your system reset simultaneously. This is important, as it ensures that cross-board ComPort connections always reset to safe states.

The user manual for your carrier board contains details about the JTAG chain and reset signals.


Hardware section

Firmware

This section describes the overview of Sundance's firmware and gives an overview of the blocks used. The guidelines for integrating custom firmware are described in the SMT6500 help file.

The firmware is represented in VHDL, with the target technologies typically being from Xilinx (Spartan 3, Virtex-II pro, and Virtex-4).

  • What is firmware

  • Basic resource blocks

  • Building more complex resource blocks

  • Connecting firmware to the outside world

  • Implementation

  • Creating custom firmware


Hardware section

What is firmware

Firmware is data that sets programmable logic into a state where it implements a particular hardware design. It starts as a textual description of an electronic circuit, which is processed to produce a binary file. This file can be loaded into a FPGA to realise the design.

Sundance uses modularity in its designs to improve reusability and maintainability. This approach creates a number of resource blocks that are combined to make a complete design. Resource blocks are used to implement the Sundance peripherals: ComPorts, SDBs, RSLs...


Hardware section

Basic resource blocks

Firmware blocks are described in VHDL. Sundance has a library of basic firmware blocks such as ComPorts, SDBs, SHBs, RSLs... These blocks can be used for FPGA-based modules and the source code for them is provided in the SMT6500 module support package, subject to a Non-Disclosure Agreement.


Hardware section

ComPort

Most basic communication resource.

Typical FPGA usage - TBD

Timing data - TBD


Hardware section

SDL - Sundance Digital Link

Similar to ComPorts. Performance about 20 MB/s.

Typical FPGA usage

source : XST report for a VirtexII 2000

SDL

slices 4% (460)

BlockRam 0%

Timing data - TBD


Hardware section

SDB - Sundance Data Bus

Fast communication mechanism - 200 MB/s.

Typical FPGA utilisation

source : XST report for a Virtex-II 2000

SDB16

Slices = 4% (470)

RamBlock=7% (4)

sdb32

slices 4% (478)

BlockRam 3% (2)

Timing data - TBD


Hardware section

SHB - Sundance High-speed Bus

Fast communication mechanism - 400 MB/s. - extends the functionality provided by the SDB.

Typical FPGA usage - TBD

Timing data - TBD


Hardware section

RSL - Rocket-IO Serial Link

Multi-Giga bit serial communication mechanism - 2.5 Gb/s per link.

Typical FPGA usage - TBD

Timing data - TBD


Hardware section

Global bus

The global bus is a communication resource that allows a TIM to access the carrier board resources.

Typical FPGA usage - TBD

Timing data - TBD


Hardware section

Building more complex blocks

Sundance combines the basic blocks and adds extra functionality to them to create the firmware for various processor TIMs. Different processor TIMs may include differing numbers of resources. For example, some processor TIMs contain six ComPorts and two SDBs, while others may contain only four ComPorts. The basic underlying ComPort firmware block is shared amongst these modules.

The implementation section contains more information about creating your own blocks.


Hardware section

Interfacing to a DSP

When creating firmware for processor modules, the DSP is interfaced to the basic firmware blocks by additional blocks, for example, FIFOs for the comports and SDBs.

From the DSP's point of view, the FPGA is mapped into the memory space of the DSP via the External Memory Interface (EMIF) bus, typically operating at 100MHz (or at 133MHz for the newer modules). The DSP accesses the registers implemented in the FPGA by reading and writing this EMIF.


Hardware section

Connecting firmware to the outside world

The FPGA has a number of input and output pins that connect it to the outside world. Sundance provides TIMs, which have several connectors routed to TIM-specific I/O pins on the FPGA.

The default firmware implemented on the TIM connects the signals of the firmware blocks to the appropriate I/O pins of the FPGA, which are in turn connected to the physical connectors. It is possible to change the firmware and thereby change the connection of signals to the outside world into custom user I/O signals.


Hardware section

Implementation

There are two parts to the implementation.

  • Synthesis

  • Place and route


Hardware section

Synthesis

During the synthesis stage, the VHDL sources files are processed by the Xilinx Synthesis Technology tools to produce a net-list file.

Note that the latest versions of Sundance firmware assume the use of Xilinx Synthesis Technology (XST). Older versions of the firmware were generated using FPGA express by Synopsis.


Hardware section

Place and route

Sundance uses the Xilinx ISE place and route tools to generate a bitstream for a specific family of FPGAs.

These tools take the net-list produced by the synthesis tool and apply a constraint file describing timing constraints and pin locations.


Hardware section

Creating custom firmware

The Sundance firmware source is available to customers under a Non-Disclosure Agreement, as a base for making custom designs. Please contact Sundance for more information.

Sundance is not able to offer support for custom firmware designs. We strongly advise our customers to use the 3L Diamond FPGA tool.


Hardware section

Software

This section gives an overview of the software components that are available from Sundance and describes how they interact. “See ‘Installation and configuration’ for details of installing the software.”

  • Overview

  • DSP applications

  • Host software

  • Module support software


Loading DSP applications with CCS

Overview

Applications usually involve two distinct components: the algorithms running in the DSPs and a control program running on the host PC. The control program is responsible for loading the DSP and for providing the user interface to the application. For embedded applications the control program on the host may only exist during development or debugging.

Sundance recommends using the 3L Diamond real-time operating system to build applications, as this efficiently supports the features of Sundance hardware and handles variations between different processor TIMs. Using Diamond, you can easily create and run applications that use multiple TIMs.

  • Assumptions


Loading DSP applications with CCS

Assumptions

Most of the software provided by Sundance assumes that you have access to various tools from Texas Instruments, particularly the C compiler, the assembler, and the linker. A few software components also assume the presence of TI’s Code Composer debugger.

All of these tools are part of TI’s Code Composer Studio product, which may be purchased through Sundance.


Loading DSP applications with CCS

DSP Applications

This section gives an overview of the process of creating a DSP application.

  • Creating applications

  • Loading applications


Loading DSP applications with CCS

Creating Applications

You can create applications for a system of several TIMs by using either Diamond or Code Composer Studio. Diamond will create a single application file that contains everything needed to load and execute your application. Code Composer Studio will typically create one separate executable for each TIM you wish to use.

  • Creating DSP applications with Diamond

  • Creating DSP applications with CCS


Creating DSP applications with Diamond

Diamond provides a convenient way of developing efficient applications that make use of the features of Sundance TIMs. In particular, Diamond was designed for multiprocessor systems and so includes everything you need for programs running on several TIMs. Even if you need only one TIM, using Diamond can reduce the time needed to create a high-performance implementation of your application.

Some of the more important features of Diamond are:

  • a small microkernel, providing support for multiprocessor work, including multi-tasking, multi-threading, inter-processor communication, interrupt handling, events, semaphores, and timer management.
  • an automatic loader, handling the issue of loading multiple processors and starting them in a synchronised manner.
  • optimised interfaces to the Sundance peripherals, such as comports, SDBs and global bus. Simply using these features automatically brings in and initialises the necessary support code. These interfaces have been developed over a long period and have been fine-tuned to maximise performance.
  • placement of software components on the available processors in a straightforward and easy-to-change manner.
  • a single file holding the complete multiprocessor application, removing the possibility of accidentally getting the wrong component on one of your processors.
  • automatic management of differences between TIMs, such as the location of external memory and the addresses of peripheral devices.
  • allocating memory, either fully automatically, semi-automatically, or completely under user control.
Diamond uses the standard TI compiler, assembler, and linker to generate software components (tasks). It adds an additional configuration step to combine and optimise tasks into a final application file. Applications built using Diamond can be debugged using TI's Code Composer debugger.


Creating DSP applications with CCS

To create applications with CCS you need to write a .cmd file that gives the memory layout of each TIM in your system and explicitly allocates the sections of your program to the available memory. The Processor TIM support package, SMT6400, gives examples of how to do this.

For each processor TIM in your system you compile the relevant .c and .h files into .obj object files and then link these into a .out executable file. Note that your source files will probably need to be changed if you move from using one type of TIM to another.

Using CCS you then explicitly load each .out file to the correct DSP and start it running. This loading is done via JTAG.

This is much more difficult and error-prone than the equivalent Diamond procedure.


Loading DSP applications with CCS

Loading Applications

The diagram demonstrates how an application can be loaded into a system made up of four processor TIMs.

A host program starts by resetting the system (thin black arrows). All TIMs in the system are reset at the same time. Taking any processor out of reset causes the bootloader to be loaded from flash ROM and started. This program puts the processor into a working state and waits for activity on a comport.

The host program now sends the application down the host ComPort. By default, this ComPort is connected to ComPort 3 of the first TIM on the carrier board. The bootloader reads some or all of this data to load the relevant part of the application into TIM 1 and start it running. TIM 1 is now responsible for forwarding the rest of the application to the relevant TIMs. This loading is usually done by considering only those ComPorts that make a simple tree that reaches all the TIMs. The ComPorts used for loading in the diagram are marked with thin red arrows. You can see that the ComPort between TIM 3 and TIM 4 is not used for loading.

Once the code for each processor has been loaded, the application starts running properly and can use all of the ComPorts for data transfer.

Applications built with Diamond contain all the necessary code and data to be able to distribute the application across many TIMs. Loading such an application is simply a matter of sending the whole application file down the host ComPort.

You will have to arrange to load applications built using Code Composer Studio yourself. This will usually involve the host in sending down the host ComPort several separate executable files, one for each TIM in the system. The program in each TIM will have to include code to participate in this loading procedure.

If you are prepared to run the application each time from Code Composer, you can load and start each TIM individually over the JTAG connection (not shown in the diagram above). In this case, you will also have to allow each processor to start running first, to allow the bootloader to put the TIM into a working state. JTAG is considerably slower than the host ComPort.

  • The bootloader

  • Loading DSP applications with Diamond

  • Loading DSP applications with CCS


Creating DSP applications with Diamond

The bootloader

The bootloader is a program that is loaded automatically from a flash ROM when a processor TIM is reset. Its purpose is to bring the TIM into a fully working state, ready to load and run a user program. To do this, the bootloader performs the following steps:

1. Initialise various registers in the DSP, particularly the external memory interface (EMIF) registers to make all of the TIM’s memory accessible.

2. Reset the FPGA and load it with firmware from the flash ROM. This creates the Sundance peripherals, such as the ComPorts, SDBs and so on.

3. Load a user program. This program is usually loaded from the first ComPort to present data, but you can also arrange for the program to be taken from the flash ROM. When loading a program from comport, you need to present the data in a standard format. This formatting can be done for you by the Diamond server or functions provided in the SMT6025.

4. Enter the loaded program, passing in various standard parameters (which link was used to load the program, the type of the TIM, the address of the FPGA registers, and so on).


Loading DSP applications with CCS

Bootloader format

The information in this section may not be of interest to many users. The data format used with the bootloader is normally provided by Diamond or functions provided in the SMT6025 SDK.

The bootloader is started when a TIM is taken out of reset. It scans the comports and selects the first to present data as the "boot link". From this link, the bootloader then accepts a program as a sequence of 32-bit words in a particular format and loads it into the TIM.

There are two supported formats:

New format

All of the current Sundance bootloaders accept a format that does not have the limitations of the old format (see later), and can load code and data anywhere within a processor's available memory.

"Safe address for loader" should be the address of a 1KB block of executable memory that will not be overwritten by the incoming code and data. Note that the loader has finished its work before the loaded program starts to execute, so the safe address could be within the program's stack or heap areas.

Word | Meaning
0xBBBB0002 | Specify new format
Safe address for loader | The address where the bootloader should move itself before loading the sections to avoid being overwritten by itself.
Section 1 Size | Size of the section in words
Section 1 Physical address | Where the section is to be loaded to in DSP memory space.
Section 1 Data | The actual section data
... | For all of the sections...
Section N Size | Size of the final section in words
Section N Physical address | Where the section is to be loaded to in DSP memory space.
Section N Data | The actual section data
0x00000000 |
Entry point address | Address where the bootloader should jump to start the loaded program executing.

Old format

This was the original format accepted by the bootloaders and is only retained for backwards compatibility. It has the following limitations:

  • No code or data can be loaded to the part of internal memory from where the loader executes (within addresses 0x00000000—0x00002000).

  • On processors with separate internal program and data spaces (C6x0x) nothing can be loaded into internal program memory.

Word | Meaning
0x00003779 | Specify old format
Discarded value |
Discarded value |
Discarded value |
Entry point address | Address where the bootloader should jump to once the program has been completely loaded.
Discarded value |
Section 1 Size | Size of the section in words
Section 1 Physical address | Where the section is to be loaded to in DSP memory space.
Section 1 Data | The actual section data
.... | For all of the sections ...
Section N size | Size of the final section in words
Section N Physical address |
Section N Data |
0x00000000 | Informs the bootloader there are no more sections, and it should jump to the entry point address.


Loading DSP applications with Diamond

Diamond takes care of this for you. The information needed to load the relevant code and data to the correct processors in your system is built into the .app application file. Note that each processor will be loaded with only the code needed for that processor.

To load a Diamond application, you simply reset the system and send the whole .app file down the host comport. This is usually done for you by the Diamond Windows Server.

If the physical connections in your system are changed, you simply reflect the changes in your .cfg configuration file and build a new application file with the Diamond configurer.

Note that Diamond .app files do not use the Common Object File Format, COFF. This is because COFF does not provide any of the facilities required for multiprocessor operation.


Loading DSP applications with CCS

Code Composer uses the JTAG chain to connect to the DSPs in your system. You load your application one processor at a time with its individual .out file. If your application requires processors to be started in a particular order, you will have to arrange to do that explicitly each time you run it.


Host support software

Host software

The diagram shows the host software structure. Code composer studio uses drivers provided by the SMT6012 to access the Sundance hardware. All other software uses a common device driver layer to access the Sundance hardware. This device driver layer is only installed at once at the beginning of setting up the system, and then is used by all the software. Click on an item in the diagram for more information.

  • Device drivers

  • Code Composer Studio Drivers

  • Diamond Server

  • Software development kit (SDK)

  • Software development kit for FPGA-only module

  • Windows tools


Host driver software (SMT6300)

Device Drivers

Access to the raw hardware is provided through a number of device drivers:

  • SMT6300 - This product provides the device driver used to allow communication between the host and the root TIM in your system. It is used by all Sundance software except the SMT6001. Loading software into TIMs is usually done through this interface.

  • SMT6012 - This product gives the device drivers that are needed by Code Composer and the SMT6001 to reach the TIMs via a JTAG interface. It is possible to use this interface to load and run programs, but it is generally more efficient to use the SMT6300 device driver. JTAG is often left to support debugging.


CCS drivers (SMT6012)

Code Composer Studio drivers (SMT6012)

You will need to install the SMT6012 to use Texas Instruments Code Composer Studio with Sundance hardware.

This provides the CCS “drivers” required to interface with Sundance carrier boards. The SMT6012 is provided free of charge when customers buy CCS from Sundance.

  • What is JTAG

  • Configuring CCS


CCS drivers (SMT6012)

What is JTAG

JTAG is used by Code Composer Studio to load and debug the software in a DSP system. It was originally designed as a boundary scan standard to debug hardware, but has since been used as a mechanism to access processors at the low level needed for software debugging. JTAG connects processors in a chain. The host processor communicates with the DSPs by shifting a bitstream through all the processors in the chain - a complex and very slow process. The host needs to know the number, order, and exact type of the processors in the JTAG chain to make this communication work. This information is given when you configure Code Composer for a particular hardware arrangement.

In some cases you may have a device in the JTAG chain that is to be ignored. To do this you mark the device as a BYPASS during the setup stage.

For more information about JTAG, click here.


CCS drivers (SMT6012)

Configuring Code Composer Studio

CCS needs to be given several parameter before it can work. These include the order and type of processors in the JTAG chain and the I/O address of the carrier board.

You may use the Sundance Wizard to perform the configuration of CCS for you. In some cases you may need to perform the configuration stage manually, for example when you need to specify BYPASS for one or more of the devices in the JTAG chain.

If you need more information about configuring CCS, please refer to the SMT6012 user manual.


Host driver software (SMT6300)

Diamond Server

The Diamond server is a host program that controls the execution of a Diamond application in your DSP network. It includes the following features:

  • Application loading. Code and data are automatically loaded to all the appropriate DSPs in your system;
  • Standard C streams: stdin, stdout, and stderr;
  • C file I/O (fprintf, fopen, fscanf,...).

  • Stand-alone applications


3L Diamond on the host

Stand-alone applications

When a Diamond application executes an I/O call, such as printf, code from the Diamond run-time library communicates with the host server over the host comport. This communication uses a protocol agreed by both the server and the run-time library.

Diamond allows you to specify that an application does not communicate with the host server. Such a stand-alone application does not need to include code on the DSPs to manage the communication protocol and the host comport will be left free for the application's use.

Stand-alone applications are generally used for embedded applications where there will be no host to communicate with, or for applications that will communicate exclusively with user-written code on the host.


Host driver software (SMT6300)

Software development kit (SMT6025)

The SMT6025 is a software development kit that is used to develop host software to interact with a DSP application. The SMT6025 can be used to build windows or simple console applications, and presents an "interface description" to the Sundance hardware, as well as a number of utility functions.

Typically there would be a DSP application that interacts with the host software in some way. This DSP application may most conveniently be developed using 3L Diamond, although this is not a requirement. The SMT6025 provides functions that simplify communicating with Diamond applications as well as functions that support non-Diamond operation.

With the SMT6025 you can:

  • Control the state of the hardware.

  • Exchange data between the host and the DSP.

  • Extend the functionality of the DSP application by adding handlers on the host.

  • Debug the DSP application.


Host driver software (SMT6300)

Controlling the state of the hardware

The SMT6025 SDK is used to reset the carrier board and the TIMs it holds. The bootloaders start to run once the DSP reset has completed.

At this point the host will send an application to the DSP. The application may be either a .app file (3L Diamond), or a .out file (CCS). The SMT6025 provides functions to support both of these.


Host driver software (SMT6300)

Data exchange

An executing DSP application can exchange data with the host program. The SMT6025 provides a number of mechanisms to support this:

  • Host ComPort

  • Mailbox

  • High Speed Channel


Host driver software (SMT6300)

Host ComPort

The host ComPort is the standard mechanism used to communicate with the host, in particular, it is the primary means of loading programs into TIMs. The host ComPort is usually connected to comport 3 of the root TIM.


Host driver software (SMT6300)

Mailboxes

Mailboxes are a way of exchanging single words between the DSP and host, and are often used for synchronisation. Mailbox reads and writes can be made to generate interrupts to allow them to be used efficiently.


Host driver software (SMT6300)

High-speed channel

The High-Speed Channel (HSC) is a software mechanism that is built using the mailboxes and the DSP's global bus to provide a faster data exchange than can be achieved using the host ComPort.


Host driver software (SMT6300)

Handlers

Handlers take the form of user-defined DLLs that are used to extend the functionality of host code. The DSP instructs the host to load a handler and then communicates with it. For example, if a DSP program wishes to write data to a file on the host system, a specific handler can be loaded by the DSP to perform the file access.

Handlers are most easily used in conjunction with 3L Diamond. It is possible to write the handler code without using Diamond, but this would be very complicated.


Host driver software (SMT6300)

Sundance debug library

Many applications with custom host software use the simplicity of the host ComPort for most communication. Adding extra features to this communication to support debugging messages is often difficult. Sundance provides a debug library, both as a useful host output mechanism and as an example of how to write a handler.

The library uses the HSC to output debug information to a window on the host system. The functional interface for the library is shown below; the output functions are similar to the standard C printf() function.

int  dbg_init_known(SC6xSmtI *p);

int  dbg_init      (void);

void dbg_info      (char *format, ...);

void dbg_warn      (char *format, ...);

void dbg_error     (char *format, ...);

void dbg_break     (char *p);


SDK FPGA(SMT6026)

Software development kit for FPGA-only module (SMT6026)

The SMT6026 is a software development kit that is used to develop host software to interact with a FPGA bitstream. The SMT6026 can be used to build windows or simple console applications, and presents an "interface description" to the FPGA-only Sundance modules.

Typically there would be a FPGA bitstream that interacts with the host software in some way. This FPGA bitstream has to embed the basic functionalities of the FPGA-only TIM to stay compatible with the SMT6026 interface. However the user should fell free to add to the basic bitstream his own vhdl cores.

The bitstream may most conveniently be developed and buit using 3L Diamond FPGA, although this is not a requirement.

With the SMT6026 you can exchange data between the host and the FPGA-only module on the first site of a Sundance carrier board to:

  • Configure the FPGA

  • Configure the ADCs/DACs

  • Acquire data


Controlling the state of the hardware (SMT6026)

Controlling the state of the hardware

The SMT6026 SDK is used to reset the carrier board and the FPGA-only TIM it holds.

At this point the host will send a bitstream to the FPGA-only module on the first slot of the Sundance carrier board to configure it. The bitstream may be either a .app file (3L Diamond FPGA), or a .bit file. The SMT6026 provides functions to support both of these format.

Then the host will send control words to the FPGA-only module to configure its ADC/DAC registers.


Data exchange(SMT6026)

Data exchange

A configured FPGA-only module can exchange data with the host program. The SMT6026 provides a number of mechanisms to support this:

  • Host ComPort

  • Host RSL


Host comport(SMT6026)

Host ComPort

The host ComPort is the standard mechanism used to communicate with the host, in particular, it is the primary means of loading bitstream into the FPGA of the FPGA-only module. The host ComPort is usually connected to comport 3 of the root TIM.


Host RSL (SMT6026)

Host RSL

The host RSL can be used to communicate with the host instead of the host comport but the carrier board and the FPGA-only module have to support this feature.


SDK (smt6048)

Software development kit for the USB carrier board (SMT6048)

The SMT6048 is a software development kit that is used to develop host software to interact with a DSP application. The SMT6048 can be used to build windows or simple console applications, and presents an "interface description" to the Sundance hardware, as well as a number of utility functions.

Typically there would be a DSP application that interacts with the host software in some way. This DSP application may most conveniently be developed using 3L Diamond, although this is not a requirement. The SMT6048 provides functions that simplify communicating with Diamond applications as well as functions that support non-Diamond operation.

With the SMT6048 you can:

  • Control the state of the hardware.

  • Exchange data between the host and the DSP.

  • Debug the DSP application.


SDK - SMT6048 - Controlling the state of the HW

Controlling the state of the hardware

The SMT6048 SDK is used to reset the USB carrier board and the TIMs it holds. The bootloaders start to run once the DSP reset has completed.

At this point the host will send an application to the DSP. The application may be either a .app file (3L Diamond), or a .out file (CCS). The SMT6048 provides functions to support both of these.


SDK - SMT6048 - Data Exchange

Data exchange

The host program can exchange data with the carrier board and the DSP application that runs on the TIM. The SMT6048 provides a number of mechanisms to support this:

  • USB data transfer

  • USB device communication

  • Flash access


SDK - SMT6048 - USB Data

USB Data

The USB I/O is the mechanism used to communicate with the host in case of USB carriers. The root TIM usually receive the data on its comport 3.


SDK - SMT6048 - USB Chip

USB Chip

The USB chip fitted on the USB carrier contains some memory to read or write the USB firmware but also to read or write user data. The SMT6048 provides the functions to access this memory.


SDK - SMT6048 - Flash

Flash access

Some USB carrier board are fitted with a flash memory. The SMT6048 provides functions to access the on-board flash.


Host driver software (SMT6300)

Windows Tools (SMT6300)

The SMT6300 package installs a number of host side tools and the documentation for the carrier boards.

The main tools are:

  • BoardInfo application

  • E2P application

  • SmtUSBConsole application.


Host driver software (SMT6300)

SmtBoardinfo Application

BoardInfo is a PC program that can provide information about and configure the carrier boards in your system.

It can:

  • display information about the boards installed in your system;

  • reset a whole board or just the TIMs it holds;

  • configure on-board comport connections;

  • run a simple confidence test.

This utility can be also be called directly from the Diamond server or any other host program. Note that SmtBoardInfo does not use JTAG.

  • Confidence test

  • Help about and version information

  • PCI Information

  • Onboard comport switches


Confidence test

BoardInfo can perform a simple test of the TIM in a carrier board's first slot. The test involves sending a small program to the TIM and confirming that two-way communication can be established using the host ComPort.

During the test, the "Result" output window displays information that shows:

  • if the DSP application was successfully sent to the DSP (meaning that the DSP read all of the application file);
  • if the DSP application started running;
  • the results of a data transfer test.


Boardinfo Application

Help about and version information

Help->About displays information about all the Sundance products you have installed on your PC, including when they were installed. This is a valuable tool for debugging and customer support.

If you are connected to the internet, you can use the Sundance Wizard to update any old versions of Sundance products that are found.


Confidence test

PCI Information display

This dialog displays information about all the PCI devices found on your PC. It can sometimes be useful when diagnosing hardware problems.


Organising the carrier board comport switches

On-board ComPort connections

This dialog allows you to display and change the settings of any ComPort connections implemented on the carrier board. By clicking the buttons between pairs of TIMs you can toggle the on-board connection on and off.

When the connection is turned on, the selected ComPorts on the two TIMs will be connected together; the associated FMS connectors on the back of the carrier board will be disconnected from the ComPorts. When the connection is turned off, the on-board connection will be disabled and the two associated ComPorts will be connected separately to their respective FMS connectors.

You may also use this dialog to control the host connection. By ticking the "Host <-> T1C3" box, you set the carrier board into its default state, with the host ComPort being connected directly to comport 3 of the TIM in slot 1. If the box is cleared, the connection is broken and the two ComPorts are joined instead to connectors on the carrier board.

The settings you select in this dialog will normally be reinstated each time you access the carrier board (from the Diamond server or from a user-program using the SMT6025 SDK). You can prevent this by clearing the box labelled "Restore switch settings automatically", in which case the board will be left in the state into which it was last set explicitly or in its power-up state (host ComPort connected to T1C3 and all other on-board connections disabled).


Host driver software (SMT6300)

E2P Application

This application allows you to reprogram the EEPROM on the Sundance carrier boards in the rare cases when this is necessary.


SmtUSBConsole

SmtUSBConsole Application

SmtUSBConsole is a PC program that can provide information about the USB configuration of the carrier board in your system.

It can:

  • D isplay information about the boards installed in your system;

  • Run USB tests on the carrier board;

  • Info

  • Test


SmtUSBConsole - Info

Info

SmtUSBConsole can display the following information about the USB carrier board:

  • Device properties

  • USB configuration
  • Pipes


SmtUSBConsole - Tests

Tests

The SmtUSBConsole application can perform simple tests on the USB to confirm that the communication with the carrier board is established:

  • Scratch RAM: This test writes random data to the scratch RAM, reads it back and checks for errors.
  • USB Device: This test writes data to the USB device, reads it back and checks for errors.
  • Performance: This test measures the time it takes to read and write data to and from the USB device. It returns the minimal, maximal and average reading and writing speeds.

During the test, information is displayed in the console window.


Host driver software (SMT6300)

Module support software

The following packages support the development of software to run on Sundance TIMs:

  • SMT6400 - Supports all processor TIMs

  • SMT6500 - Supports all FPGA TIMs

  • SMT6600 - Supports all the analogue converter TIMs.


Host driver software (SMT6300)

Processor TIMs (SMT6400)

The SMT6400 software package comes with processor TIMs and includes:

  • SMT6400 help file for all processor TIMs;

  • documentation describing the Sundance firmware;

  • sample code showing how to use the TIM communication resources.


Host driver software (SMT6300)

FPGA TIMs (SMT6500)

The SMT6500 software package comes with FPGA TIMs and includes:

  • SMT6500 help file;

  • a library of hardware cores for Sundance communication interfaces;

  • a library of DSP software used to configure the FPGA bitstream;

  • a windows application for configuring the FPGA module on the first TIM site.


Host driver software (SMT6300)

Analogue coverter TIMs (SMT6600)

This package comes with analogue converter TIMs and includes:

  • documentation for all Sundance ADC/DAC boards;

  • test software illustrating key features of the hardware;

  • example source code;

  • a Matlab application;

  • examples of typical system applications.


The installation wizard

Installation and configuration

This section describes installing and configuring the hardware and software.

  • The Sundance wizard

  • Hardware

  • Software

  • Checking PC and DSP communication


The installation wizard

The Sundance wizard

The wizard can do the following for you:

  • Help you set up and install the hardware.

  • Check that the hardware is configured correctly.

  • Automate the process of installing software.

  • Configure Code Composer Studio for your hardware.

The wizard is the recommended way to install all the Sundance software you require as well as check and configure your hardware. This section describes the various steps the wizard will take and explains the details for those who are unfamiliar with Sundance hardware and software.

  • Using the Sundance wizard


The installation wizard

Using the Sundance wizard

At any point you can get help by clicking the "Help" button at the bottom of the page. If you are not familiar with Sundance products, we suggest you read the "Getting started" section.

The wizard starts by displaying its welcome screen.

You use the next and previous buttons at the bottom of the page to navigate. You may "Quit" the wizard at any point and re-run it later.


The installation wizard

Basic driver software

Sundance hardware is accessed by means of driver software that needs to be installed on your system. The driver software along with some utility software is installed by the SMT6300 product. During this stage, the wizard will check to make sure that you have installed an up-to-date version of the SMT6300.

In the event that the software is not current, you have two choices. You can either install it from a CD or directly over the internet from the Sundance ftp server. The wizard CD includes the SMT6300 software.


The installation wizard

Checking the carrier board

The wizard will check the carrier board's EEPROM and CPLD versions and suggest a suitable course of action if they are not current.

The list shows an entry for each carrier board found in the system and information about it. You can choose to update the EEPROM if it is out of date by clicking the "Update EEPROM" button.

The wizard will not be able to update an out-of-date CPLD for you; you will have to contact Sundance for this. CPLD updates do not occur very frequently, but the wizard will at least make you aware of any new versions.

What is the EEPROM?

The EEPROM on the carrier board contains information used by the PCI bridge chip on the carrier board. When the carrier board is powered up, the PCI bridge chip reads information from the EEPROM. This information describes the kind and amount of system resources required by the carrier board. These are typically memory resources, IO resources, and interrupts.

What happens after I have updated the EEPROM?

In order for the EEPROM changes to take effect, you will need to reboot your system. As soon as the reprogramming has completed, the wizard will take you to a page that will prompt you to reboot the system.

Note that for older carrier boards such as the SMT320 and SMT327, there is no EEPROM or CPLD version.


The installation wizard

No Sundance carriers detected

The wizard can run without any carrier plugged into the Host PC.

If the wizard could not find any Sundance carrier boards in your system, it will suggest that you read the help section about installing the hardware, shut down the machine, insert the hardware, and re-run the wizard.

When you are sure you know how to insert the hardware, click the "Shut down" button to shut down the system.


The installation wizard

Declaring the hardware modules

During this stage the wizard will find out about the hardware modules you have in your system. With this information, the wizard will be able to test and set up the system for you. In most cases it is possible to detect the hardware in the system automatically by clicking the "Detect" button. For older modules, or modules that have an out-of-date bootloader or firmware version, this "Auto detect" feature might not be available. In these cases you will have to specify your hardware manually.

There are two sets of information on this page of the wizard.

On the left is the current system configuration. There is an entry for each of the carrier boards found in the system, and below each appears the TIM modules it contains. The sequence in which the modules are defined is important and should be the same as the sequence in which they appear on the JTAG chain of the carrier board. This normally starts with the processor closest to the carrier's end plate.

On the right is a list of all the module types provided by Sundance. You may define your system manually by dragging modules from the list and dropping them onto the carrier board that will hold them.

It is important to note that the auto-detect feature will not work for all modules. Modules that are not DSP type modules will have to be defined manually.

At this point it is also possible to load a complete system configuration that you may have created previously. This feature is useful for customers who may have several configurations that they need to move amongst on a regular basis. Customers with only one configuration will not need to save or load configurations.

Why do I need to define my hardware configuration?

The wizard uses the configuration you supply to test the system and configure Code Composer Studio for you. Code Composer Studio configuration happens at a later stage during the wizard.

What happens if I don't define my system?

You will need to configure Code Composer Studio manually if you decide not to define your system at this point.


The installation wizard

Multiple CCS drivers specified

The CCS driver needed by some TIMs depends on the silicon revision level of its C6000 processor. As the wizard cannot determine automatically which driver to use, it will present you with a list of driver and ask you to make the choice.

You will need to look at the processor on your TIM and determine its silicon revision level. Unfortunately this is encoded differently for different processor variants. The photo shows a C6416 processor where the code "D11" indicates silicon revision 1.01. Please contact Sundance if you are unsure about determining the revision level of your processors.

Note that this selection process is only informing the wizard of the correct driver to use; the information is not made available to CCS at this stage.

Later on, the wizard will offer to configure CCS for you, and at that point it will configure CCS to use your selected driver.

Similarly, if you re-enter the wizard and explicitly change the driver (by right-clicking on the TIM), you will need to ask the wizard to reconfigure CCS before your change takes effect.


The installation wizard

Describing the JTAG chains

Code Composer Studio uses JTAG to access your processors. You must give CCS the exact details of all the processors on the JTAG chain: their number, type and order on the chain. The information the wizard is gathering here will be used to configure CCS for you automatically.

A carrier board is usually a JTAG master and has its own JTAG chain. This chain may include another carrier board that has been made a JTAG slave. To make a board a slave you drag the board and drop in onto the master board that is to be its master.

This page of the wizard shows information used to configure CCS. The display shows an entry for each JTAG master that will be configured into CCS.

Each JTAG master has a list of all its processors in the order they appear on the JTAG chain. Some modules have more than one processor on them; there will be multiple processors shown for each TIM in such cases.

You can page back to the previous page to change the description of the hardware in your system and then return to this page. You should see the impact of your changes in this view and the processors will automatically be kept up to date.

It is possible to change the names of the boards to something more descriptive if you wish. The names of the processors can also be changed. This information is used later when the wizard configures CCS.

The window below shows the board called "Board_1 SMT310Q" as being a JTAG slave to the first board called "Board_0 SMT320 or SMT327". This means that the second board really gets added to the JTAG chain of the first board. Clearly it requires you to connect a JTAG cable between the two carrier boards - see the user manual for your carrier board for more information on how to accomplish this.

You can save your completed configuration by clicking on the "Save" button. This saved configuration can be reloaded at a later date in the wizard's previous step. This is useful for customers who regularly change configurations.


The installation wizard

Module support software

Several module support packages may need to be installed for the various types of TIMs. The wizard will select the packages you need based on the hardware you specified earlier. You may change the selection and click 'Next' to continue.


The installation wizard

Installing Code Composer Studio

It is usually convenient to be able to debug processor TIMs using Code Composer Studio. Also, CCS is required if you need to update the flash ROMs on your TIMs.

During this stage of the installation, the wizard will check if you have an appropriate version of CCS installed and give you the option of installing it, if necessary. You can purchase CCS from Sundance. You will need to contact TI directly to obtain an update if you have purchased CCS elsewhere or your installation is out-of-date.

The wizard displays information about the current state of the Code Composer Studio installation on your system. If an update is required, please perform it now before continuing; other features of the wizard rely on CCS being available.


The installation wizard

Installing the CCS drivers

Code Composer Studio accesses the Sundance hardware by means of the SMT6012. The SMT6012 is provided to all customers who wish to use CCS with Sundance carrier boards.

The wizard will ensure that you have a valid version of the SMT6012 installed. If the installation is not current, you can update it from the internet by pressing the "Internet update" button; you may also select the "Have CD" button to install from a Sundance CD.

A "pass phrase" is needed to unlock the installation program; Sundance will have issued one to you.

The wizard will now wait until the installation program terminates.


The installation wizard

Configuring Code Composer Studio

Code Composer Studio needs to be configured for the hardware you have in your system. Clicking on the "Auto config" button will instruct the wizard to do this for you, based on the hardware modules specified earlier.

You may need to configure CCS manually if you have a non-standard configuration. Clicking on the "Manual config" button will open the CCS setup window where you can specify your configuration. For more information about how to configure CCS manually see the SMT6012 user manual.

For more information about JTAG click here.


The installation wizard

Installing the flash update utility

The SMT6001 is a product that allows you to update the contents of the flash.

The wizard will ensure that you have a valid version of the SMT6001 installed. If the installation is not current, you can update it from the internet by pressing the "Internet Install" button; you may also select the "Have CD" button to install from a Sundance CD.

The wizard will now wait until the installation program terminates.


The installation wizard-SMT6002

Installing the flash update utility

The SMT6002 is a product that allows you to update the contents of the flash on a FPGA-only module.

The wizard will ensure that you have a valid version of the SMT6002 installed. If the installation is not current, you can update it from the internet by pressing the "Internet Install" button; you may also select the "Have CD" button to install from a Sundance CD.

The wizard will now wait until the installation program terminates.


The installation wizard

Installing the Software Sundance Development Kit (SDK)

The SMT6025 is a software development kit that is used to develop host software to interact with a DSP application. The SMT6025 has to be purchased from Sundance.

The wizard will ensure that you have a valid version of the SMT6025 installed. If the installation is not current, you can update it from the internet by pressing the "Internet Install" button; you may also select the "Have CD" button to install from a Sundance CD.

A "pass phrase" is needed to unlock the installation program; Sundance will have issued one to you.

The wizard will now wait until the installation program terminates.


The installation wizard (SMT6026)

Installing the Software Sundance Development Kit for FPGA-only module

The SMT6026 is a software development kit that is used to develop host software to interact with an FPGA-only module. The SMT6026 has to be purchased from Sundance.

The wizard will ensure that you have a valid version of the SMT6026 installed. If the installation is not current, you can update it from the internet by pressing the "Internet Install" button; you may also select the "Have CD" button to install from a Sundance CD.

A "pass phrase" is needed to unlock the installation program; Sundance will have issued one to you.

The wizard will now wait until the installation program terminates.


The installation wizard (SMT6048)

Installing the Software Sundance Development Kit for USB board

The SMT6048 is a software development kit that is used to develop host software to interact with Sundance USB boards. The SMT6048 has to be purchased from Sundance.

The wizard will ensure that you have a valid version of the SMT6048 installed. If the installation is not current, you can update it from the internet by pressing the "Internet Install" button; you may also select the "Have CD" button to install from a Sundance CD.

A "pass phrase" is needed to unlock the installation program; Sundance will have issued one to you.

The wizard will now wait until the installation program terminates.


The installation wizard

Installing 3L Diamond

Diamond is 3L's multiprocessor real-time operating system for DSPs. Diamond can be used to develop applications on processor TIMs. Many of the Sundance example are built using Diamond. 3L Diamond can be purchased from Sundance.

The wizard will ensure that you have a valid version of Diamond installed. If the installation is not current, you can update it by selecting the "Have CD" button to install from the 3L Diamond CD.

The wizard will now wait until the installation program terminates.


The installation wizard

Installing the DSP module support package

The SMT6400 software provides examples of how to access the resources on DSP TIMs.

The wizard will ensure that you have a valid version of the SMT6400 installed. If the installation is not current, you can update it from the internet by pressing the "Internet Install" button; you may also select the "Have CD" button to install from a Sundance CD.

The wizard will now wait until the installation program terminates.


The installation wizard

Installing the FPGA module support package

The SMT6500 product package provides examples of how to implement the resources into FPGA-based TIMs.

The wizard will ensure that you have a valid version of the SMT6500 installed. If the installation is not current, you can update it from the internet by pressing the "Internet Install" button; you may also select the "Have CD" button to install from a Sundance CD.

The wizard will now wait until the installation program terminates.


The installation wizard

Installing the DAQ module support package

The SMT6600 is the support package for data acquisition TIMs. The wizard will make sure that you have a current version of the SMT6600 installed if you have explicitly requested the installation or if you have specified analogue modules during the declaring the hardware stage.

If the installation is not current, you can update it from the internet by pressing the "Internet Install" button; you may also select the "Have CD" button to install from a Sundance CD.

The wizard will now wait until the installation program terminates.


The installation wizard

System shutdown required

From time to time the wizard may need you to restart the system. Click on the "Shut down now" button to do this and then restart the wizard after rebooting.


The installation wizard

Completion

The wizard has now successfully completed its tasks and may be terminated by clicking the "Finish" button.

You may re-run the wizard whenever you want to ensure that your system is up-to-date; a shortcut will be created on the desktop to make this easier.

If you are unfamiliar with the Sundance range of products, the "Getting started" section will provide you with links to more information.

If you wish, you can click the "Register now" button to register to the Sundance Support Forum.


The installation wizard

Hardware

This section describes how to install and configure the Sundance hardware.

  • Inserting the carrier board

  • Attaching TIMs to the carrier board

  • Connecting carrier boards


Attaching TIMs to the carrier board

Inserting the carrier board

This section gives an example of how to insert a PCI-type carrier board into a host PC once you have attached your TIMs to it. An equivalent procedure should be followed for other types of carrier boards

Turn off the PC!

Select an available PCI slot and insert the carrier as in the photo below.

If you have several carrier boards in the host system, you must ensure that the PC power supply has an adequate current rating. The total current used will be made up of the current used by the carrier boards as well as the current used by the modules attached to the carrier board. The carrier boards do not take much current, but the modules might.

For example, in a system with 3 carrier boards each containing two SMT375 modules, a 20A power supply is needed.

Make sure that the power supply provides 3.3V on the PCI bus. If this is not the case you will have to supply 3.3V directly to the carrier board. See the user manual of your carrier board for more details.


Attaching TIMs to the carrier board

TIMs are attached to the carrier board as shown below. The connectors will only fit one way round, so you should ensure that the TIM's single connector (next to the thumb in the picture) is located on the same edge as the carrier board's edge connector. Fit the TIMs into their connectors with steady pressure; do not force them into place.

Warning: Take anti-static precautions when handling the hardware.

Securely press down on the TIM without forcing it.

Many modules receive their 3.3 Volt supply though the mounting pillars on the module. You need to make sure that the TIM is securely screwed down on the mounting pillars as shown in the photo below.


Other connections

Connecting carrier boards

There are two ways to interconnect carrier boards:

1. If the boards are in the same system, share the same power supply, and are close together, you may use FMS cables;

2. If the boards are further from each other or not in the same system, you can use the external buffered ComPort.


Buffered ComPorts

The buffered ComPort is used when you need to connect two carrier boards that are not part of the same system. The buffered ComPort uses hardware buffers to provide boosted signals and to protect against voltage surges. This allows the buffered ComPort to work over greater distances than normal ComPorts.


The installation wizard

Software

This section describes installing the software and configuring the system.

  • What do I need?

  • Configuring Code Composer Studio

  • Flash configuration

  • Installing the system by hand


The installation wizard

What do I need?

When you receive your hardware from Sundance it should come with the required software on CD.

  • What was I supposed to get?

  • Where can I get the CDs if I don’t have them?

  • PC Requirements


The installation wizard

What was I suppose to get?

You should receive a CD that contains the Sundance wizard and also the software required to configure your system. The wizard will guide you through the installation and configuration process. Note that some software packages may require you to purchase a password.

Some products may be delivered with extra CDs holding less-commonly used components.

The software you need will depend on your hardware configuration. The Sundance wizard will automatically install only the software packages you require.

The main packages are:

  • SMT6001 - Flash programming utility

  • SMT6002 - Flash programming utility for FPGA-only module

  • SMT6012 - Code Composer Studio drivers for Sundance hardware

  • SMT6300 - Basic driver software required for all carrier boards

  • SMT6400 - Module support package for processor-type TIMs

  • SMT6500 - Module support package for FPGA-type TIMs

  • SMT6600 - Module support package for Analogue-type TIMs


The installation wizard

Where can I find the CDs if I don't have them?

You should contact Sundance if you think you have not received the correct CDs.

Most of the software can also be downloaded from the Internet by first registering on the Sundance Support Forum.


Loading DSP applications with CCS

PC requirements

PC Minimum requirements

  • Hardware: 133MHz Pentium

  • Memory: 32MB of RAM

  • Operating system: Windows ME, Windows NT4 SP6, Windows 2000, Windows XP Home or Windows XP Pro. (Windows 3.x, Windows 95, and Windows 98 are not supported.)

Recommended minimum requirements

  • Hardware: 233MHz Pentium

  • Memory: 64MB of RAM

  • Operating system: Windows ME, Windows NT4 SP6, Windows 2000, Windows XP Home or Windows XP Pro. ( Windows 3.x, Windows 95, and Windows 98 are not supported.)

Disk space

The hard disk space requirements depends on the software you choose to install and the options selected. The host software needs approximately 50MB. The SMT6500 FPGA board installation requires up to 100MB. The SMT6600 ADC/DAC board installation requires up to 100MB.


The installation wizard

How do I make sure I have the latest software?

You can make sure your software is up to date by:

  • running the Sundance wizard.

When you run the wizard, you will be given the option to check using the Internet that you have the current versions of the software. You can run the wizard as often as you please.


The installation wizard

Configuring Code Composer Studio

Texas Instruments Code Composer Studio is an integrated environment for debugging DSP applications. It communicates with processor-type TIMs using JTAG, leaving the host ComPort free for the application.

We strongly recommend that you have CCS available. Although you can use Sundance products without having CCS, its presence is required for debugging DSP programs and managing the flash ROM using the SMT6001.

  • Installing CCS

  • Configuring CCS with the Sundance wizard

  • Configuring CCS by hand


The installation wizard

Installing CCS

You need to make sure that you have a full version of CCS v2.21 or above;

an evaluation system is not adequate.

Install Code Composer Studio by running Setup.exe from the installation CD.

Having done this, you will need to install the SMT6012 Driver package in order to use CCS with Sundance hardware. You may do this with the Sundance wizard or by installing the SMT6012 directly from the CD provided.

The wizard will have helped you configure Code Composer Studio, but if you are installing without using the Sundance wizard, you will need to configure CCS by hand.

CCS works best when several environment variables are defined, so we recommend that you set them up permanently on your PC. The file {TI CCS ROOT}\dosrun.bat, installed with CCS, contains the environment variables and their values.

As an example the following shows how to set the variables under Windows XP. The procedure will be similar but slightly different on other operating systems.

To set the environment variables, right-click on the "My computer" icon on the desktop and select "Properties" from the menu. Select the "Advanced" tab as shown.

Next select the "Environment Variables" button. Enter all of the environment variables as listed in {TI CCS ROOT}\dosrun.bat.


The installation wizard

Configuring CCS with the Sundance wizard

The wizard simplifies configuring CCS for you as follows:

  1. You declaring the hardware in your system;

  2. The wizard then describes the JTAG chain with the required processors for your system;

  3. Using this description, the wizard then configures CCS for you.


The installation wizard

Configuring CCS by hand

It is possible to configure CCS by hand but we strongly recommend that you use the Sundance wizard as it can help to prevent common mistakes and detect potential problems.

The procedure to configure CCS by hand is fully described in the user manual of the SMT6012 software package.

Things to check are:

  • Make sure you specify the correct board configuration (.cfg) file for the carrier board you have.

  • Make sure you specify the correct IO Base address for the carrier board. Use the SmtBoardInfo utility to obtain this IO base address.


The installation wizard

Changing your configuration

When ever you add or remove processor-type TIMs from your system, you need to change the CCS configuration to match. You will not be able to start CCS unless its configuration matches the actual hardware.


The flash maintenance utility (SMT6001)

Flash configuration

The flash ROMs on the TIMs are delivered with standard contents that will be adequate for most users. Changes and corrections to the contents of the flash are made using the SMT6001 package for the processor modules and the SMT6002 package for the FPGA-only modules.

Note: It is possible to corrupt the contents of the flash by writing invalid data using these utilities. Normally this can be resolved by writing correct data, but sometimes incorrect data can prevent the DSP from doing anything. If this happens, you must disable the module's FPGA using a TIM-specific jumper. The location of this jumper is described in the documentation for the module. Be sure to remove this jumper before trying to use the module after correcting the contents of the flash. Please contact Sundance for further information.

  • Using the SMT6001
  • Using the SMT6002


The flash maintenance utility (SMT6001)

Using the SMT6001

The dialog shows the user interface for the SMT6001 flash programming utility. For complete details of the operation of this utility see the help file installed with the SMT6001.


The flash maintenance utility (SMT6002)

Using the SMT6002

The dialog shows the user interface for the SMT6002 flash programming utility. For complete details of the operation of this utility see the help file installed with the SMT6002.


The installation wizard

Installing the system by hand

It is possible to install the software by hand using the CDs provided. Nevertheless, we strongly recommend that you use the Sundance wizard as this can help prevent common mistakes and detect potential problems.

In which order should I install the software?


The installation wizard

In which order should I install the software

If you use the Sundance wizard everything will be installed automatically in a sensible sequence.

If you do not wish to use the wizard, we would suggest that you:

  1. install the SMT6012 CCS drivers. These are required to make CCS work with Sundance hardware;

  2. install and configure Code Composer Studio;

  3. check that CCS works;

  4. install the SMT6300 to obtain the basic driver software;

  5. install any remaining software.


The installation wizard

Checking PC and DSP communication

This section deals with ways that you can check that your PC and DSP can communicate. At this stage we can only test that the PC can communicate with a processor-type TIM in the root TIM site.

There are two communication paths between the PC and DSP: The host comport and the JTAG link.

  1. Checking the host ComPort;

  2. Checking the JTAG link.


The installation wizard

Checking the host ComPort

The host ComPort is used by most Sundance software as well as 3L Diamond.

Installing the SMT6300 provides you with a utility program, SmtBoardInfo, that can perform a confidence test using the host ComPort.

The test loads a simple program to the root TIM and then checks that the processor is able to respond correctly. The confidence test performs further data transfers with the root processor and checks that the data are as expected.


The installation wizard

Checking the JTAG link

JTAG is a communication mechanism used by Code Composer Studio to access DSPs at a very low level. You can use CCS to verify that the JTAG connection to your DSP is intact and is operating as expected.

To check your JTAG connection is operating correctly, make sure you have configured CCS and then run it. Select "view->disassembly" from the menu. You should see the dialog shown.

Using F8, you should be able to step the processor and see the that the program counter changes.

This indicates that CCS started up correctly, and is able to communicate with the DSP.


Automatic updates

Support

  • Support forum

  • Contacting Sundance


Support forum

All support issues are handled on the Sundance support forum.

Please register on this site if you need support.

Once you have been registered you will be able to send support questions to Sundance's technical staff. We will be notified that you have posted a question, and you will receive an answer on the forum and by email.


Contacting Sundance

Sundance has offices in the UK, Europe, USA and Asia. Please see our website for contact details and sales information.

For support, we recommend you register on our support forum.


The installation wizard

Typical applications

This section provides some examples of typical applications where Sundance products have been used to provide the solution.

  • Analogue applications

  • Control applications

Note: Sundance publishes case studies, and we welcome your own technical papers based on our hardware and software.


The installation wizard

Typical analogue applications

  • The SMT8036


The installation wizard

SMT8036

The SMT8036 is a demonstration software package for the evaluation of SMT365 and SMT370 modules hosted on an SMT310Q PCI Carrier in a PC.

It can be used for prototyping high-speed data acquisition systems, with or without digital processors, and 3rd generation (3G) telephone systems.

  • Hardware description

  • Software description


The installation wizard

Hardware description

The SMT8036 is built around two main modules plugged into an SMT310Q PCI carrier board. The two modules need to be connected with FMS cables, SHB to SHB cables (or Dual SHB to SHB PCB connector), or MMBX to MMBX cables.

Front view of the SMT8036 system

Back view of the SMT8036 system


The installation wizard

Software description

Versions of the demonstration software for the SMT8036 are available for 3L Diamond, and Simulink (SMT6050).

  • 3L Diamond

  • SMT6050


The installation wizard

Diamond

A simple application using 3L Diamond can be loaded into the SMT365 using the 3L Diamond Server.

The application allows users to execute simple commands, such as configuring the DAC, configuring the clock synthesizers, and capturing data.

The SMT365 initialises the SMT370 with a sine-wave pattern. The SMT370 then repeatedly sends this pattern to its DAC. The analogue output from the DAC is connected to the analogue input of the SMT370's ADC. The digital data produced by the ADC are presented via an SHB cable to the SMT365 for output to a file on the host. The contents of the file may be examined separately in various ways, for example using Matlab.


The installation wizard

SMT6050

A simple application using SMT6050 can be loaded into the SMT365 using the modelling MATLAB® and Simulink® toolbox for the Sundance hardware.

The application allows users with the flexibility to generate optimised C source code compatible for running on the DSP from Simulink models.

The SMT365 initialises the SMT370 with a sine-wave pattern. The SMT370 then repeatedly sends this pattern to its DAC. The analogue output from the DAC is connected to the analogue input of the SMT370's ADC. The digital data produced by the ADC are presented via an SHB cable to the SMT365 for output to a MATLAB graph on the host, a FFT on the signal is also represented.


The installation wizard

Typical control applications

Sundance products are ideally suited to control applications.

  • Cavity Synchronization


The installation wizard

Cavity synchronization

One of Sundance's customers have implemented the cavity synchronization system described here.

Block Diagram of Overall System

Synchrotrons accelerate charged particles by electric fields generated in cavities. There are usually several cavities in a synchrotron ring and these need to be synchronized to make sure that particles always see the right accelerating voltage. This synchronization requires a great deal of flexibility: the RF frequency used for acceleration must increase as the particles get faster, the phase between cavity signals does not necessarily have to be 0°, and different cavities may operate at different harmonics.

One important closed-loop control in synchrotrons is the beam phase control. In this case a cavity is not synchronized with another cavity but with a beam signal. To simplify the understanding of the main task it will be assumed here that two cavities have to be forced into synchronism (0°) and that both cavities work at the same RF frequency. It should be kept in mind that the system actually must provide the flexibility mentioned above.

The figure shows a block diagram of the required system. The RF signal used to feed a cavity is generated in a DDS (direct digital synthesis) module. The central control system provides the DDS with a digital frequency word. The two DDS units of the two cavities get the same frequency information, but since the cavity systems (driver, power amplifier, control-loops, etc.) have slightly different characteristics, the phase between the voltages induced in the cavities will not be 0°. The task is now to modify the phase of DDS 1 in such a way that synchronism is reached. It was decided not to digitise the RF signals directly. The DSP load can be reduced significantly if the DSP works with fixed-frequency signals. Therefore, the cavity signals are converted to a fixed-frequency IF. This also has the advantage that both cavities may work at different harmonics. The task of the DSP system is to detect the phase between the two analog IF signals and to output digital correction data which modify the frequency of DDS 1. Such a frequency offset will smoothly shift the phase of cavity 1 (slave) to that of cavity 2 (master).


The installation wizard

Requirements

For this project the following requirements were identified:

Speed

Beam-phase control is much more critical with respect to closed-loop control stability than cavity synchronization, and therefore determines the maximum delay which will guarantee loop stability. This maximum delay is 10ms from analog signal input (ADC) to analog signal output (DDS). Taking into account delays in external components, this leads to a maximum delay of about 5ms in the DSP system. This was one of the main requirements during the selection of the DSP system. There are many DSP systems on the market, but such a fast coupling between ADC, DSP and DAC is one of the strengths of Sundance systems.

Scalability and Modularity

The next requirement was the commercial availability of different ADC and DAC modules that can be used with the same DSP modules for future applications. Also the DSP modules should be exchangeable while keeping the ADC and DAC modules. This modularity is a general strategy of Sundance.

DSP Architecture

It is not sufficient simply to solve the closed-loop control task; diagnostic data are of high importance. Therefore, the DSP system has to be capable of logging all the real-time data without disturbing the real-time closed-loop control. It must be possible to modify the firmware of the DSP system in case new hardware functionality has to be added. These requirements were satisfied by selecting a dual-DSP module where all interfacing is located in a large FPGA.

Interfacing

The system has to provide a number of fast standardized external interfaces. In contrast to standard DSP applications, the primary concern here is not the bandwidth but the delay through the system. This concern is met by Communication Ports (ComPorts), which are available in sufficient quantity in Sundance systems (usually 6), and Sundance High-speed Buses (SHBs). Integration into a Windows environment has to be possible with low effort. The operation of the DSP system, however, has to be guaranteed even if Windows crashes. These requirements are also fulfilled by Sundance systems.


The installation wizard

Realization

The SMT374 was selected as the DSP module since it includes two independent DSPs. All interfacing is realized by a large FPGA. Since two ADC channels and at least one DAC channel were required, the SMT370 was a suitable candidate. Both modules are located on an SMT310Q carrier board which my be plugged into a PCI slot of a standard PC. A cable set is also required to make the internal analog connections available to the outside world (as BNC). For the digital interfaces, a dedicated customer solution was chosen. The system is shown in the figure .

Implementation

DSP_A of the SMT374 communicates with the PC. The Diamond RTOS is used on this DSP in order to simplify application development. The phase detection algorithm and the calculation of correction data is running on DSP_B. This is done without RTOS, and the code is hand-optimized TMS320C67xx assembler. SHB_A is used to transfer ADC data from the SMT370 to DSP_B. DSP_B transmits DAC data via SHB_B to the SMT370.

An external 28.533MHz clock was used for both ADC and DAC. One of the big advantages of the SMT374 is that SHB and ComPort routing is very flexible. This allows one to read in the same data which are used on DSP_B (word-by-word with high frequency) for real-time control into DSP_A for diagnostics purposes (huge data packages but low frequency). EDMA is used to reach sufficient performance.

In the first implementation the DDS did not provide a parallel interface for correction data. Since two TTL pins were available both on the SMT374 and on the DDS unit, a serial transmission was implemented. In future, this will be replaced by a modified comport connection. The modified comport will also be used to read in data delivered by the central control system. This makes it possible to create a correlation between the diagnostics data and the data delivered by the central control system.

Future major development effort will concentrate on interfacing, triggering and data transfer. Also, the closed-loop parameters will have to be modified by the central control system during operation. In this context, the comports are a good basis to rely on-even if the FPGA implementation may have to be modified.


Troubleshooting carriers

Troubleshooting

This section provides assistance to customers who are experiencing difficulties with Sundance hardware or software, and presents a checklist for the most common issues. More information and advices are available in the Sundance Knowledge Database of answers.

Throughout we assume that the hardware has not been damaged (by static discharge, for example). Please contact Sundance or use the support forum if nothing here helps you to resolve your problem.

We also assume that you have managed to install the hardware and software as described in the installation section.

We recommend that you become familiar with the overview of Sundance hardware and software before considering the points in this section

  • Is my hardware working?

  • Are my processor TIMs correctly configured?

  • My computer won’t boot with the hardware installed.

  • Code Composer Studio


Troubleshooting carriers

Is my hardware working?

This section addresses common issues that might occur following the installation of your hardware and software.

  • How do I know that my processor TIMs are working?

  • How do I know my carrier board is working?

  • My TIMs don’t seem to be working.


Troubleshooting carriers

How do I know that my processor TIMs are working

You can make two tests to check the basic functionality of processor TIMs:

They are the

  1. Checking the host ComPort;

  2. Checking the JTAG.


Troubleshooting carriers

How do I know that my carrier board is working

The SMT6300 software package installs a utility program called SmtBoardInfo that you can use to check the state of the carrier boards in the system.

Use the utility program called SmtUSBConsole for carrier board connected to the PC by USB.


Troubleshooting carriers

My TIMs don’t seem to be working

  • Check the TIMs are securely pressed down into their connectors.

  • Ensure that the mounting screws are in position and securely tightened.

  • Most Sundance TIMs require 3.3V to operate, and the carrier board passes this voltage to the TIMs using the mounting screws. Check that your host system is providing this voltage.

  • Check that your PC is supplying enough power to drive your hardware. This will depend on how many hardware devices are being driven, but typically for three carrier boards populated with TIMs you may require a 20 Amp (3.3V) power supply.


Troubleshooting carriers

Are my processor TIMs correctly configured?

Processor TIMs are controlled by information held in a Flash ROM. Your TIMs may not work at all if this information is incorrect or outdated.

  • Is there any indication of a problem?

  • How do I check the contents of the Flash ROM?


Troubleshooting carriers

Is there any indication of a problem?

Most processor TIMs have a LED that shows the state of the on-board FPGA. This LED should come on for a short time when you power-up or reset the module, and is turned off when the FPGA has started working correctly.

You know there is a problem with the information in the flash if the LED does not go out within a few seconds (this can take up to a minute on some modules).

  • The LED does not go out

  • The LED does go out


Troubleshooting carriers

The LED does not go out

If Code Composer is running you should check that it has not halted your processors. Close Code Composer (perhaps using the Windows Task Manager in extreme cases) and then use SmtBoardInfo to reset the carrier board and TIMs by selecting "Special reset" from the menu.

Most processor TIMs have a jumper that can be used to prevent the FPGA from activating. This is sometimes necessary to correct a catastrophic corruption in the flash ROM. Check your TIM documentation for the position of this jumper and ensure it is not fitted.

The only other reason for the LED to remain lit is that the flash contents are incorrect.


Troubleshooting carriers

The LED goes out

This means that the FPGA has accepted the data from the Flash ROM, so is unlikely to be corrupt. However, it may be out of date and need to be updated using the SMT6001.


Troubleshooting carriers

How do I check the contents of the Flash ROM?

Installation of the SMT6001 will have given you a Flash ROM management utility called Flash Programming Utility, and a number of standard data files.

The Flash Programming Utility uses Code Composer Studio to access the Flash ROM. Check that CCS has been installed, has been configured for your hardware, and runs correctly. You may leave CCS running while you start the Flash Programming Utility if you wish.

The Flash Programming Utility has help information that will show you how to check the contents of the Flash ROM and correct any problems.


Troubleshooting carriers

My computer won’t boot with the hardware installed

Make sure you have 3.3V supplied to the carrier board.


Troubleshooting carriers

Troubleshooting CCS

  • Basic checklist


Troubleshooting carriers

Basic checklist

There are a few things that you need to check.

Are you using the correct version of CCS?

Are you using the correct CCS driver file?

Did you declare all the processors in the JTAG chain?


Troubleshooting carriers

Are you using the correct version of CCS?

You need to use CCS version 2.21 or later for Sundance software to function correctly.

Note: you have to connect manually the target DSP with CCS version 3.x (Select "Connect" from the menu "Debug", or select "Connect to the target when a control window is opened" in the tab "Debug Properties" of the menu Options->Customize of CCS).


Troubleshooting carriers

Are you using the correct CCS driver file?

Code composer studio uses driver files to access the different types of DSP. You need to have CCS configured correctly for the hardware you are using. This is done for you automatically by the Sundance wizard, but you could also configure CCS by hand.

The particular driver a TIM needs depends on the revision of silicone used in the DSP. The wizard will usually select the most current driver but for certain TIMs you may need to specify a particular driver.

For example, current C64 DSPs have revision numbers 1.1 or greater and use the driver tixds6400_11.dvr. This is the driver that the wizard will select. However, C64 DSPs with revision numbers below 1.1 must use tixds6400.dvr and you will need to configure CCS for this by hand.


Troubleshooting carriers

Did you declare all the processors in the JTAG chain?

Code Composer Studio uses the JTAG chain to communicate with the DSPs on the carrier board. JTAG requires all the DSPs in the chain to be specified. CCS will only start if you have correctly specified all of the DSPs.


Troubleshooting carriers

Command line

To use the Code Composer studio compiler and linker from the command line, you need to set up a number of environment variables. Many Sundance examples are compiled from the command line so we recommend that you follow the instructions on setting the environment variables.


Troubleshooting carriers

Carrier board CPLD update required

The SMT310Q' series carrier board are populated with two Xilinx CPLDs (XC95144XL and XC95288XL) that act as an on-board arbitration unit that control which device has access to the Local Bus resources. These devices are very important on the carrier board, and it is necessary to keep these devices up-to-date.

From time to time, Sundance might issue a CPLD update. The Sundance wizard will alert you when you need to update your CPLD. You have one of two choices.

  1. Contact Sundance, and arrange for the CPLD update to be performed.

  2. Perform the update yourself.

To update the firmware, Xilinx JTAG programming software is required together with a lead to connect to the SMT310Q header. The image below shows the location of the pin number 1 of the JTAG connector J21. This is a (2x3) 2mm pin header:

The following table shows the location of the JTAG signals on the header:

There are 4 things that you require to update the CPLDs on a SMT310Q:

  • The Xilinx IMPACT tool. If you do not have IMPACT, you need to download the software package from Xilinx called Xilinx Webpack. It is free and it includes the Xilinx IMPACT tool that will allow you to reprogram the CPLDs on the SMT310Q carrier board.

  • The JTAG programming cable named the Xilinx Parallel Cable IV (from Xilinx)

  • The adaptor to connect the Parallel Cable IV to the header J21 of the SMT310Q as shown in the table above.

  • The files needed for the update can be downloaded here.

CPLDs updating

To access the CPLDs you need both the Xilinx Parallel Programming cable IV, and the Xilinx ISE version 6.3 or later.

Note: The earlier versions of IMPACT do not support the type of CPLDs on-board the SMT310Q.

The CPLDs can be accessed through the JTAG connector J21:

After the JTAG cable has been connected the user should run the IMPACT tool. Once the connection has been detected and setup IMPACT will show that there are two different CPLDs:

The CPLD code that you have downloaded is included in the package you download from Sundance. You can check the CPLD versions in the file ReadMe.txt that accompany this package.

The first CPLD (XC95144XL) in the JTAG chain needs to be loaded with the file named "pciarb.jed". For the second CPLD (XC95288XL) the user will want to load the file "comm.jed".

Important:

After the CPLDs have been programmed, you have to run the SetCpld.exe utility contained in the package. This utility is run from a command line, and will change the CPLD version number stored on the carrier board. This version information is used by the Sundance wizard and other Sundance software to know the features of the carrier board.

At this point you should reboot the PC and run the SMTBoardInfo utility tool (SMT6300). Place a Sundance DSP module on the first TIM site of the carrier board and run the confidence test, which is part of SMTBoardInfo program. If this test passes, the CPLDs update has been successful.

If you do encounter any difficulties, please report them to the Sundance Support Team via the Support Forum.


Troubleshooting installation problems

I have software installation problems

Choose the problem you are having with your installation:

  1. The SMT6300 installation gets stuck ;

  2. Error reading the installation file


Troubleshooting - installation problems - the installation gets stuck

The SMT6300 installation gets stuck

Problem:
The installation gets stuck and the progress bar shows the following message: "Removing Windriver service ..."

Cause:
Another device in your system is using Windriver such as Xilinx Platform Cable USB.

Solution:
Pressing the button cancel will not terminate the installation. You need to follow the following steps:
1- Stop your device that uses Windriver in "Device Manager".
2- Open a "Windows Task Manager" (ctrl+alt+delete).
3- In the tab "Applications" select "SMT6300 - InstallShieldWizard" and press "End Task".
4- In the tab "Processes" select "wdreg.exe" and press "End Process".
5- If the "Found new hardware wizard" starts, ignore it by closing it.
6- Run the setup.exe and select remove.
7- Run the setup.exe again for a proper installation.


Troubleshooting - installation problems - Error reading the installation file

Error reading the installation file

Problem:
The following error appears when running the installation file:

"Error reading the setup initialization file"

Cause:
If the internet connection is lost while downloading the installation package, the PC can be left in a state where running the installation package again will give an error message whatever uninstall/reinstall is attempted. This error will happen if the internet connection is broken when using the Sundance wizard.

Solution:

This problem comes from the internet cache that keeps a corrupt copy of an install package. Therefore the internet cache should be cleared before reattempting to run the installation package.


Hardware section

Connectors

The following types of connector are found on Sundance TIMs.

To be done.


The installation wizard

How do I configure the system?

  • The Sundance Wizard

  • Configuring the system by hand

  • Flash configuration


Host driver software (SMT6300)

Pegasus

Note: the Pegasus software is not supported anymore by Sundance.

The Pegasus software development environment is a complete tool set for creating real-time and digital signal processing applications. Pegasus automatically generates application code for DSP processors as well as code for data exchange with a host computer. It produces optimised, compiled code running on one or more target devices under the control of a real-time operating system.

Pegasus addresses the entire product development cycle, from simulation to finished product:

To begin Pegasus uses a block diagram (Hyperconception tool) to create the graphical description of the application. The Block Diagram software also provides a (host-based) simulation environment.

When the worksheet is drawn, any primitive blocks placed on it execute as part of a DSP task, unless the block is a host block (like a display or control widget), in which case Pegasus ‘moves’ the block to the host in the target application.

The Block Diagram allows users to map the code onto hardware containing any number of processor chips, or to a different processor, without editing source code.

Each Block contains some C source code, which implement whatever function is needed.

The code for the block is then compiled using the Microsoft Visual C/C++ environment.

From the block diagram, C Source code is generated, optimised for multi-tasking and/or multi-processor real-time operation, compiled, linked, and configured into a downloadable DSP application file. For non-embedded applications, a host side supporting a graphical user interface is automatically integrated with the DSP application.

The DSP source code is produced by converting the single-threaded C code produced by the C Code generator tool into a target OS (3L Diamond ) compatible application targeted for a specific target device.

The Texas Instruments tools are used by Pegasus for generating object code.

For more information go to ftp://ftp2.sundance.com/Pub/documentation/pdf-files/Pegasus_rev1c_8.5x11.pdf


Loading DSP applications with CCS

PC Minimum requirements

133MHz Pentium with 32MB of RAM, and one of Windows 95SE, Windows ME, Windows NT4 SP6, Windows 2000, Windows XP Home or Windows XP Pro.
Note: Windows 3.x and Windows 98 (first edition) are not supported although they may work.

Hard disk space required depends on the software installed and the options selected:
Host software requires up to 50MB.

Users will obviously experience better responsiveness from a faster PC than the minimum, particularly with the more recent operating systems. Indeed, Windows XP requires at least a 233MHz Pentium and 64MB RAM. See http://www.microsoft.com/windowsxp/home/evaluation/sysreqs.asp for details. However, for the purposes of the Sundance software itself, a machine fitting the description above will suffice.


Automatic updates

Sundance uses an automatic update feature to simplify keeping software current. Click on "Start" and follow the menus to the particular Sundance application where there should be a "check for updates" option. This option is also available in the about box for each product.

Automatic update will use the internet to check Sundance's database of products; you will be informed if a new version of a software package is available and will be given an option to install the update.

Sundance may also from time to time use this automatic update system to send important messages about its products.


The installation wizard

Pegasus application

Note: The Pegasus application is not provided or supported anymore by Sundance.

The SMT8036 comes with a Pegasus application to demonstrate the dynamic performance of the system.

The SMT365 configures the SMT370 as a pattern generator, producing a sine wave on each of its outputs. Both DAC outputs are looped-back to the corresponding ADC inputs. The SMT365 captures samples from the ADCs via the SHB.

The SMT365 continuously reads blocks of 1024 samples and performs a 10-point FFT on each block.

The results are sent to the PC to be displayed in real-time.