Understanding the NanoBoard 3000 Constraint System
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
- Connection of a satellite peripheral board to the NanoBoard 3000 motherboard.
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.
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 | Targets | Description |
---|---|---|
A | 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. |
B | 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. |
C | Peripheral board-to-motherboard interface | Declares the following:
|
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.