When programming an EPCQ device with Raw Programming Data (.rpd) file, Hexadecimal (Intel-Format) (.hex) file, or other file type in an embedded environment outside the Quartus® II software, AS configuration may fail in 28 nm device families (Stratix® V, Arria® V, and Cyclone® V devices).
EPCQ devices have a non-volatile configuration register (NVCR). The NVCR must be set to an appropriate value according to the EPCQ device and configuration mode in 28 nm device families. When using a JTAG Indirect Configuration (.jic) programming file or AS programming mode in the Quartus II software programmer, NVCR is automatically set during programming of the EPCQ device.
You need to set the NVCR to execute the following operation:
- Execute write enable operation: opcode b’0000 0110.
- Execute write non-volatile configuration register operation: opcode b’1011 0001 followed by 16-bit register value.
- Set the 16-bit register value as b’1110_111y_xxxx_1111 where y is the address byte (0 is 4-byte addressing, 1 is 3-byte addressing) and xxxx is the dummy cycles value.
- Use the following 16-bit register values according to the density of the EPCQ device and AS configuration mode (x1 or x4):
EPCQ16, EPCQ32, EPCQ64, and EPCQ128
- AS x1/AS x4 b’1110_1111_1100_1111 (Addressing mode 3-byte / Dummy cycles = 12)
EPCQ256, EPCQ512
- AS x1 b’1110_1110_0100_1111 (Addressing mode 4-byte / Dummy cycles = 4)
- AS x4 b’1110_1110_1010_1111 (Addressing mode 4-byte / Dummy cycles = 10)
Due to the register being non-volatile, you only have to set this register once as long as you do not change the configuration mode.