Intel® Cyclone® 10 LP Core Fabric and General Purpose I/Os Handbook

ID 683777
Date 2/15/2023
Public
Document Table of Contents

6.1.4.7.1. CONFIG_IO

Use the CONFIG_IO instruction to reconfigure the I/O configuration shift register (IOCSR) chain.

This instruction allows you to perform board-level testing before configuring the Intel® Cyclone® 10 LP device or waiting for a configuration device to complete configuration. After the configuration is interrupted and JTAG testing is complete, you must reconfigure the part through the PULSE_NCONFIG JTAG instruction or by pulsing the nCONFIG pin low.

You can issue the CONFIG_IO instruction any time during user mode.

You must meet the following timing restrictions when using the CONFIG_IO instruction:
  • The CONFIG_IO instruction cannot be issued when the nCONFIG pin is low.
  • You must observe a 230µs minimum wait time after any of the following conditions:
    • nCONFIG pin goes high
    • Issue the PULSE_NCONFIG instruction
    • Issue the ACTIVE_ENGAGE instruction, before issuing the CONFIG_IO instruction
  • You must wait 230 µs after power up, with the nCONFIG pin high before issuing the CONFIG_IO instruction (or wait for the nSTATUS pin to go high).

Use the ACTIVE_DISENGAGE instruction with the CONFIG_IO instruction to interrupt configuration.

Table 41.  JTAG CONFIG_IO (without JTAG_PROGRAM) Instruction FlowsThe table below lists the sequence of instructions to use for various CONFIG_IO usage scenarios. The list shows the configuration scheme and current state of the device.
Note: R indicates that the instruction must be executed before the next instruction, O indicates the optional instruction, A indicates that the instruction must be executed, and NA indicates that the instruction is not allowed in this mode.
JTAG Instruction Prior to User Mode(Interrupting Configuration) User Mode Power Up
PS FPP AS PS FPP AS PS FPP AS
ACTIVE_DISENGAGE O O O O O O
CONFIG_IO R R R R R R NA NA NA
JTAG Boundary Scan Instructions (no JTAG_PROGRAM ) O O O O O O
ACTIVE_ENGAGE A A R 27 A A R 27
PULSE_nCONFIG A 28 O
Pulse nCONFIG pin A 28 O
JTAG TAP Reset R R R R R R
The CONFIG_IO instruction does not hold nSTATUS low until reconfiguration. You must disengage the AS configuration controller by issuing the ACTIVE_DISENGAGE and ACTIVE_ENGAGE instructions when active configuration is interrupted. You must issue the ACTIVE_DISENGAGE instruction alone or prior to the CONFIG_IO instruction if the JTAG_PROGRAM instruction is to be issued later. This puts the active configuration controllers into the idle state. The active configuration controller is reengaged after user mode is reached through JTAG programming.
Note: While executing the CONFIG_IO instruction, all user I/Os are tri-stated.

If reconfiguration after interruption is performed using configuration modes (rather than using JTAG_PROGRAM), it is not necessary to issue the ACTIVE_DISENGAGE instruction prior to CONFIG_IO. You can start reconfiguration by either pulling nCONFIG low for at least 500 ns or issuing the PULSE_NCONFIG instruction. If the ACTIVE_DISENGAGE instruction was issued and the JTAG_PROGRAM instruction fails to enter user mode, you must issue the ACTIVE_ENGAGE instruction to reactivate the active configuration controller. Issuing the ACTIVE_ENGAGE instruction also triggers reconfiguration in configuration modes; therefore, it is not necessary to pull nCONFIG low or issue the PULSE_NCONFIG instruction.

27 Required if you use ACTIVE_ENGAGE.
28 Not required if you use ACTIVE_ENGAGE.