Site Search

Hello, I'm Hachi and I'm currently studying Altera® FPGAs.

In this article, we will study the configuration sequence in AS mode for Cyclone® IV devices.

 

As described in "Configuration Time", EPCS and Cyclone IV are connected as shown in the figure below.

What does each signal mean?

I have summarized them in a table.

 

Cyclone IV pin names

Overview

nCONFIG Configuration control pin
nSTATUS Configuration status pin
nCE Chip enable pin
DATA[0] Configuration data pin
DCLK Configuration clock input/output pin
nCSOs Chip enable output pin
ASDO Configuration control pin

 

 

As noted in Initialization Time, configuration data is typically loaded into the Cyclone IV from the EPCS after powering up the board.

Based on my own experience, I came up with the following three patterns for possible cases of the configuration sequence.

 

◆ Supplying power to the board

◆ Run configuration again

◆ Execute reconfiguration when a configuration error occurs

The movement of each pin during configuration is shown in the table below.

 

Signal name

attribute

value

explanation

nCONFIG input

High

start configuration

Low

FPGA in reset state (POR in progress)
nSTATUS Bi-directional open-drain

出力 = High

Normal configuration state

出力 = Low

configuration error

Input = High

Normal configuration state

入力 = Low

error state
CONF_DONE  Bi-directional open-drain

Output = High (released)

Configuration data reception complete

出力 = Low

Before/during configuration

 

Let's take a look at the configuration sequence for the three patterns.

Configuration sequence from power-on to end of configuration

 

1. POR circuit monitors VCCINT, VCCIO, VCCA

2. The nCONFIG pin is pulled-up to VCCIO and is in a high state.

3. The nSTATUS pin is pulled-up to VCCIO to a high state.

4. DCLK and ASDO are output and data is sent on DATA0.

5. After receiving data, release CONF_DONE and pull-up to VCCIO to high state.

Configuration sequence when reconfiguring

 

1. Drive nCONFIG low for more than 500ns

2. nCONFIG low to high

3. nSTATUS from Low to High

4. DCLK and ASDO are output and data is sent on DATA0.

5. After receiving data, release CONF_DONE and pull-up to VCCIO to high state.

Configuration sequence when configuration fails

 

1. POR circuit monitors VCCINT, VCCIO, VCCA

2. The nCONFIG pin is pulled-up to VCCIO and is in a high state.

3. The nSTATUS pin is pulled-up to VCCIO to a high state.

4. DCLK and ASDO are output and data is sent on DATA0.

5. nSTATUS low

What Causes Configuration to Fail

What could be the reason for configuration failure? There seem to be two main reasons for this.

● Mistakes during tool operation

⇒ This is an artificial problem such as creating a sof file or setting the pinout constraints to a state different from that of the board.

 

● Substrate related issues

⇒ Two issues with signal quality and connectivity.

 

1) Problems with signal quality

This is when errors occur due to garbled configuration data due to reflections, crosstalk, noise, etc.

As a countermeasure, it seems necessary to consider the impedance and wiring length of the board wiring.

 

2. Connection problems

If the MSEL is not in AS mode, the AS mode configuration will fail.

Also, since nSTATUS and CONF_DONE are open-drain, there are connections required for configuration, such as requiring a pull-up resistor.

(Click here for configuration mode)

 

When I made a mistake in the production practice, I forgot to put a 25Ω series resistor on the DATA line of the Cyclone IV and had a hard time configuring it.

If the board is connected incorrectly, the following phenomenon will occur, resulting in a configuration error.

・ Does not recognize the configuration chain

・n STATUS stuck at High or Low

・ CONF_DONE does not go High

- DATA is not sent

・ DCLK is not output

 

After all, it is a deep configuration. . .