NanoBoard 3000 - Board Communications

Frozen Content

Parent article: NanoBoard 3000

Communications between the various devices within the system makes extensive use of the technology defined by IEEE Standard 1149.1 – commonly referred to as JTAG. The NanoBoard 3000 is connected to your PC using a USB connection. When you start Altium Designer, a driver is loaded that configures the relevant port to run as a single multiplexed JTAG link between the NanoBoard 3000 and the PC.

Local to the NanoBoard 3000 itself, there are in fact multiple JTAG 'chains' present. These chains provide the communications paths between the various devices in the system. Within Altium Designer, interaction with these chains is performed through the Devices view, accessed by choosing View » Devices View from the main menus. The view can be configured to show:

  • All Connected Devices – all hardware connected to the PC (via USB and/or Parallel ports)
  • A Single Specific Device – hardware connected to the PC via a specific port only (e.g. a 3000-series NanoBoard connected to a specific USB port)
  • Virtual Device List – ability to work with physical devices in an 'offline' mode, without connecting specific hardware to the PC.

Various JTAG chains presented in the Devices view within Altium Designer.

The Devices view presents three JTAG chains, which collectively show all JTAG-compliant devices attached to the system on the nominated port (or all ports). Each device in each chain is represented by its appropriate icon. Controls for a device can be accessed through interaction (double-click, right-click) with its icon, giving full control over all JTAG devices in the system.

The following sections take a closer look at the three chains presented in the Devices view, as well as information on Altium's proprietary communications protocol – NanoTalk.

The NanoBoard Chain

The NanoBoard chain displays an icon for the connected (and powered-up) NanoBoard 3000, detected by the system on the corresponding PC port. This chain essentially detects the presence of the NanoBoard's controller device, or NanoTalk Controller. As a result it is often referred to as the NanoBoard Controllers chain.

Controls associated with the icon allow you to communicate and control various on-board SPI-based devices, such as the programmable clock and the SPI Flash memory.

The NanoBoard chain showing detection of a connected 3000-series NanoBoard.

The Hard Devices Chain

The Hard Devices chain shows the User FPGA device on the NanoBoard 3000, detected by the system. This target physical device – programmable from within Altium Designer – will have a Process Flow associated to it. The stages in this flow are used to interactively compile, synthesize, build and ultimately program the device, all from within the Devices view.

The Hard Devices chain, showing the detected physical Xilinx Spartan-3AN device on a connected 3000-series NanoBoard (NB3000XN).

The Soft Devices Chain

The Soft Devices chain shows all Nexus-enabled devices, such as 'soft' processors and virtual instruments, found in the FPGA design project targeting the programmable device in the Hard Devices chain. When you use Nexus components in your design at the schematic level, the system automatically connects the TDI and TDO lines of each component's JTAG port, to form a continuous JTAG chain.

The Soft Devices chain, showing a TSK3000A processor resident in the design running in the physical FPGA device.

Note: The Soft Devices chain only becomes populated with the Nexus-enabled devices for a design, once that design has been programmed into the target device.


The NanoBoard 3000 includes Altium's proprietary communications protocol, referred to as NanoTalk. This protocol defines and provides a communication path between a PC running Altium Designer and the NanoBoard 3000. NanoTalk is implemented as part of the firmware running in the Host FPGA Controller device on the motherboard. This device is commonly referred to as the NanoTalk (or NanoBoard) Controller.

The NanoTalk Controller manages the routing of the multiple JTAG chains that communicate with both the physical devices on the board and the soft devices contained within your design running on the User FPGA. It also handles the multiplexing of these various chains for transmission to the software running on the PC, over the USB link.

NanoTalk has been designed to be plug-and-play, in the sense that all NanoTalk communications paths automatically configure, for example when attaching a peripheral board to the motherboard. Altium Designer scans the NanoTalk system and automatically maintains a map of all Hard JTAG and Soft JTAG devices.

NanoTalk Installation

Related article: Host Controller Configuration Flash Memory

NanoTalk is field-upgradeable, by using Altium Designer to install configuration data – the NanoBoard firmware – into an M25P80 8-Mbit serial Flash memory device. The configuration data consists of the FPGA programming file, as well as the embedded application code (Hex file), combined together into a .bin file.

Upon power-up, the firmware is loaded into the NanoTalk Controller. The embedded software code will be loaded into the independent SRAM (U47) accessible by the Host Controller.

The Spartan-3AN device used as the Host Controller on the Xilinx variant (NanoBoard 3000XN) has a built-in Flash memory. This is used to store the 'Primary' boot image for the board and, as such, the M25P80 device (U51) is not used.

The NanoBoard 3000 is shipped with the firmware already pre-installed, but future revisions can be installed at any time. The NanoBoard 3000 has been designed so that the firmware can be updated in the field, over the standard PC-NanoBoard USB connection, without the need for a parallel port or Altium's USB JTAG Adapter (DT01). To accomplish this, the NanoBoard 3000 employs a dual boot system for configuring the board's Host (NanoTalk) Controller FPGA. Either the normal firmware can be loaded, or a version of firmware that enables the normal firmware to be upgraded. These two versions of the firmware are referred to as the 'Primary' and 'Golden' boot images respectively. The version of firmware loaded into the Host Controller is controlled by placement of a jumper on the board.

For information on how to update the normal firmware on the board, see NanoBoard 3000 - Firmware Updates.

You are reporting an issue with the following selected text and/or image within the active document: