AMD Kintex Ultrascale FPGA Board

Neutron KU60 System Controller

0 views May 18, 2026 gayathri-ks 0

Introduction

The Neutron KU60 Development Board is a multi-FPGA platform designed to support flexible system configuration, control, and high-speed inter-device communication. In the Neutron architecture, the Kintex UltraScale FPGA (XCKU060-1FFVA1517I) serves as the high-performance processing device, while the Spartan-7 FPGA (XC7S50-1CSGA324C) is used for system management and configuration control (system controller).

The on-board Spartan-7 FPGA functions as the system controller for SelectMAP-based configuration of the Kintex UltraScale KU60 FPGA. It operates in SelectMAP master mode, managing the parallel configuration interface  and generating the configuration clock (CCLK).

The SelectMAP configuration interface is a parallel configuration mode used for programming AMD FPGAs, enabling high-throughput bitstream transfer under external master control. In this configuration scheme, the Spartan-7 FPGA operates as the configuration master, controlling the configuration sequence, while the Kintex UltraScale FPGA functions as the slave device, receiving configuration data and control signals through the SelectMAP interface.

Block Design

This diagram illustrates the master-slave configuration relationship where Spartan-7 controls KU60 programming through a dedicated 8-bit/16-bit parallel bus with key control and status signals.

SelectMAP

In the Neutron KU60 FPGA development board, the Spartan-7 FPGA operates as the system controller and SelectMAP master, responsible for configuring the Kintex UltraScale KU60 FPGA.

The configuration is performed using the SelectMAP interface in parallel mode (e.g., x8 & x16mode), where the Spartan-7 generates the configuration clock (CCLK) and drives the data bus. It controls configuration signals such as PROGRAM_B and monitors INIT_B and DONE to manage and verify the configuration process.

The Spartan-7 reads the configuration bitstream from onboard memory and transfers it to the KU60, ensuring proper sequencing and error handling during configuration.

Sl. No.SelectMAP Pin NameKU060 PinSpartan 7 Pin
1DONEAF11V14
2INIT_B
R11P13
3RDWRAB9U17
4CSI_BAL15U16
5PROGRAM_BAA9V15
6CCLKAC11R16
7DATA0AE11R14
8DATA1AD10T14
9DATA2AC9N15
10DATA3AD9P16
11DATA4AF14L17
12DATA5AG14L18
13DATA6AE13M14
14DATA7AF13N14
15DATA8AF15N13
16DATA9AG15M16
17DATA10AG12M17
18DATA11AH12M18
19DATA12AK13N18
20DATA13AK12P18
21DATA14AH13R18
22DATA15AJ13T18

SelectMAP Configuration Procedure

In the Neutron KU60 development board, the KU60 FPGA is configured using the SelectMAP interface, where the Spartan-7 FPGA acts as the configuration master and the KU60 operates as the slave device. The configuration bitstream (.bin file) for the KU60 is pre-stored in the QSPI flash memory connected to the Spartan-7.

The configuration process is initiated by the Spartan-7 through a bootloader application developed in Vitis. This application reads the bitstream data and its size from the external memory and prepares the SelectMAP interface for data transfer. The KU60 configuration logic is first reset by asserting the PROGRAM_B signal, and the interface control signals such as RDWR_B (set to write mode) and CSI_B (chip select) are configured accordingly. The system then waits for the INIT_B signal from the KU60 to go High, indicating that the device is ready to receive configuration data.

Once initialization is complete, the Spartan-7 begins transferring the bitstream to the KU60 over the parallel SelectMAP data bus. The data is sent sequentially in synchronization with the configuration clock (CCLK), ensuring proper timing and reliable communication. During this phase, the INIT_B signal is continuously monitored to detect any configuration errors that may occur while transmitting the bitstream.

After the complete bitstream has been successfully transmitted, additional clock cycles are provided to finalize the startup sequence. The DONE signal from the KU60 is then monitored to confirm successful configuration. A High state on the DONE signal indicates that the FPGA has been properly programmed and is ready for normal operation. This SelectMAP-based approach enables efficient, high-speed configuration of the KU60 FPGA under the control of the Spartan-7 master device.

Generating BIN File for SelectMAP Configuration

Step 1:

In Vivado, open the Generate Memory Configuration File utility from:

Tools → Generate Memory Configuration File

Step 2:

Select the file Format as BIN and choose the exact SPI Flash Memory Part used in the design. Provide a suitable name for the output file.

Enable Load bitstream files and add the generated download.bit file. Place the SelectMAP bootloader bitstream at the required flash start address and allocate the application BIN/bitstream file to a different flash location with sufficient reserved memory space.

Check Disable bit swapping, as this setting is mandatory for proper SelectMAP data transfer.

Step 3:

Verify all the settings and click OK or Generate to create the BIN file for the SelectMAP-based FPGA configuration.

System Controller Hardware Interfaces

Quad SPI FLASH

Quad SPI NOR flash memory device (MT25QL256ABA8E12-0AAT) is connected to the Spartan 7 FPGA, with a capacity of 256 Mbit.
The flash memory operates at 3.3 V and is used for FPGA configuration storage and non-volatile data storage.

BankFPGA PinSignal NameFunction
14K17IO_L1P_T0_D00_MOSI_14SPI_DQ0
14K18IO_L1N_T0_D01_DIN_14SPI_DQ1
14L14IO_L2P_T0_D02_14SPI_DQ2
14M15IO_L2N_T0_D03_14SPI_DQ3
14M13IO_L6P_T0_FCS_B_1SPI_CS_N
14P14IO_L11P_T1_SRCC_14SPI_RST
0C8CCLK_0SPI_SCK

IO reset switch

The Spartan 7 FPGA has a Push-button SW6, typically used as a “Reset” signal for designs running on the FPGA. Push-button SW6 is connected to FPGA pin T12. Push-button SW6 is active-high. This pushbutton can also be used for any other input and is not just limited to being used as a Reset signal.

System clock

The Spartan-7 System Controller is provided with a dedicated 200 MHz differential system clock (P: D14, N: D14). This clock ensures stable and reliable operation of the system controller functions, including FPGA configuration and system management tasks.

UART

The board uses an FTDI FT4232HL USB interface device.
Channel B of the FTDI is configured as a UART interface, and the associated signal connections are listed below.

BankFPGA pinSignal nameFunction
14U12IO_L21P_T3_DQS_14TXD
14V13IO_L21N_T3_DQS_D22_14RXD

 

Contact us for more details about the system controller.

User IO Header

The Spartan-7 FPGA provides a 6-pair differential user I/O header connected to Bank 35, which operates at an I/O voltage of 3.3 V. These pins can be configured as differential or single-ended general-purpose I/O (GPIO) and may be used to interface with external modules, custom hardware, or other user-defined peripherals. The pin assignments for the user I/O header are provided in the table below.

Pin No. On The HeaderHeader Pin NameFPGA PINPin descriptionPin No. On The HeaderHeader Pin NameFPGA PINPin description
1VCCIO_3V3VCCIO_3V32VCC
3IO1_35_PC3IO_L8P_T1_AD14P_354IO0_35_PC4IO_L7P_T1_AD6P_35
5IO1_35_NB3IO_L8P_T1_AD14N_356IO0_35_NB4IO_L7P_T1_AD6N_35
7IO3_35_PF4IO_L13P_T2_MRCC_358IO2_35_PC1IO_L12P_T1_MRCC_35
9IO3_35_NE4IO_L13N_T2_MRCC_3510IO2_35_NB1IO_L12N_T1_MRCC_35
11IO5_35_PH5IO_L22P_T3_3512IO4_35_PG2IO_L21P_T3_DQS_35
13IO5_35_NH4IO_L22N_T3_3514IO4_35_NG1IO_L21N_T3_DQS_35
15GNDGND16GNDGND
17GNDGND18GNDGND

SelectMap Header (SMAP HDR)

The board provides a dedicated SelectMAP x8 header that exposes the FPGA’s SelectMAP x8 interface signals for external connectivity.  The pin assignments for the SelectMAP x8 header are provided in the table below.

Pin No. On The HeaderHeader Pin NameSpartan FPGA PINFPGA Pin DescriptionKU FPGA PINFPGA Pin DescriptionPin No. On The HeaderHeader Pin NameSpartan FPGA PINFPGA Pin DescriptionKU FPGA PINFPGA Pin Description
1VCCIO_3V3VCCIO_3V32VCC
3DATA1T14IO_L13N_T2_MRCC_14AD10D01_DIN_04DATA0R14IO_L13P_T2_MRCC_14AE11D00_MOSI_0
5DATA3P16IO_L12N_T1_MRCC_14AD9D03_06DATA2N15IO_L12P_T1_MRCC_14AC9D02_0
7DATA5L18IO_L4N_T0_D05_14AG14IO_L22N_T3U_N7_DBC_AD0N_D05_658DATA4L17IO_L4P_T0_D04_14AF14IO_L22P_T3U_N6_DBC_AD0P_D04_65
9DATA7N14IO_L5N_T0_D07_14AF13IO_L21N_T3L_N5_AD8N_D07_6510DATA6M14IO_L5P_T0_D06_14AE13IO_L21P_T3L_N4_AD8P_D06_65
11RDWRU17IO_L15P_T2_DQS_RDWR_B_14AB9RDWR_FCS_B_012INIT_BP13IO_L19P_T3_D26_14R11INIT_B_0
13CSI_BU16IO_L16P_T2_CSI_B_14AL15IO_T2U_N12_CSI_ADV_B_6514DONEV14IO_L20P_T3_D24_14AF11DONE_0
15PROGRAM_BV15IO_L20N_T3_D23_14AA9PROGRAM_B_016SYS_CCLKR16IO_L14P_T2_SRCC_14AC11CCLK_0
17GNDGND18GNDGND
Help Guide Powered by Documentor
Suggest Edit