Understanding the NanoBoard 3000 Constraint System

Frozen Content

Parent article: NanoBoard 3000

The process of mapping or constraining a design to its physical implementation is done by creating constraint files – files that specify implementation detail such as the target device, the port-to-pin mapping, pin IO standards and so on. The minimum information required to synthesize a design is the device specification.

Sets of constraint files are targeted to a design by creating a configuration, which is simply a named list of constraint files.

Constraint System Overview

The constraint system in place for the NanoBoard 3000 utilizes various constraint files covering:

  • Resources and pin-mapping local to the NanoBoard 3000 motherboard and satellite peripheral board

The following image indicates the base set of constraint files used for a design targeting the User FPGA device – resident on the motherboard – and where that design utilizes additional peripherals located on a plug-in peripheral board.

Constraint files used for a design targeted to the NanoBoard 3000.

The following table summarizes these base constraint files. Together, they ultimately map the resources available (on motherboard and peripheral board) to the physical pins of the User FPGA.

Constraint File

Peripheral board PBxx

Defines the peripheral board and its connector, as well as the mapping of all resources on that board to pins of that connector.


NanoBoard 3000 motherboard

Defines the motherboard, the physical User FPGA device and peripheral board connector; the mapping of pins between peripheral board connector and User FPGA; and the mapping of all motherboard resources to pins of the User FPGA.


Peripheral board-to-motherboard interface

Declares the following:

  • NanoBoard instance
  • Peripheral board instance
  • Peripheral board-to-motherboard connector mapping.


Additional constraint files may be included/used, such as a file for timing-related constraints.
Constraint file C is commonly referred to as the 'Board Mapping constraint file'. It does not exist as part of the installation, but rather is created on-the-fly, in accordance with the hardware in the system.

Project Configuration

Main article: Configuring an FPGA Project Automatically

Setting up to implement a design on the NanoBoard 3000 is simplified through provision of constraint files as part of the installation. These can be found in the \Library\Fpga folder of the installation.

Although an FPGA design project targeting the NanoBoard 3000 can be configured manually – by adding a configuration, assigning the required board constraint files and creating a mapping constraint file by hand – the process is greatly simplified through use of an auto-configuration feature.

Using this feature, a target configuration for the FPGA design project is automatically created. The required board-level constraint files are then automatically determined and added to this configuration, based on the hardware (motherboard and peripheral board) detected in your system. Where a peripheral board has been attached to the motherboard and detected, an additional board mapping constraint file is also generated and added to the configuration, which handles connection of that peripheral board to the main motherboard.

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