* This bug has been resolved in the following Quartus Prime. For more information, please see the FAQ below.

・Intel® Quartus® Prime Standard Edition Software v21.1 and later
・Intel® Quartus® Prime Pro Edition Software v21.3 and later

[FAQ] Why does programming a configuration device with Cyclone® IV E EP4CE75 devices fail when a jtag indirect configuration (.jic) file is used?

 

--------------------------------------------------------------------------------------------------------

 

hello.

My name is Intel F. Hanako and I provide technical support for Intel® FPGA products at Macnica.

 

A must-see for users using Cyclone ® IV EP4CE75!

Here is a workaround for a bug that occurs when writing a jic file to the configuration ROM via FPGA.

Defect situation

Problems have been confirmed under the following conditions.

Tools

Quartus® II 13.1.4 or later

(includes Quartus Prime Standard and Lite Editions)

FPGA EP4CE75
File format to transfer .jic
Execution content

Execute the Program option using the Factory Enhanced SFL image to transfer the jic file to the configuration ROM.

 

<Programmer GUI image>

in Programmer

Occur

Error message

Error (209025) Can't recognize silicon ID for device …

Defect factor

There is a bug in the Enhanced Serial Flash Loader (hereafter Enhanced SFL) image for EP4CE75 shipped with Quartus II 13.1.4 and later and Quartus Prime Programmer.

It is not improved in ver.20.1 of Quartus Prime Standard and Lite Editions.

▲ Return to page top

Workaround

Create your own SFL IP for EP4CE75and transfer the jic file to the configuration ROM with the sof file.

 

The work procedure is as follows.

  1. Create SFL IP
  2. Implement SFL IP in top design
  3. Add timing constraints for your own SFL IP
  4. compile
  5. Download sof file to EP4CE75
  6. Download jic-file

 

Let's take a look at this work.

▲ Return to page top

1. Create SFL IP

In Quartus Prime, create a new workaround project and select EP4CE75 as the target device.

 

In the Tools menu > IP Catalog, select "Serial Flash Loader Intel FPGA IP".

(When creating with Quartus Prime ver.17.1 or earlier, the IP name is Altera Serial Flash Loader IP.)

IP Catalog

Specify an arbitrary name and folder to generate for the IP and enable the following options on the General tab.


Use enhanced mode SFL = On

 

Serial Flash Loader Intel FPGA IP

Click the Generate HDL button and specify the language to generate.

select a language

Click the Generate button to generate the SFL IP.

▲ Return to page top

2. Implement SFL IP in top design

Open a blank design file via File menu > New to create a top-level design.

Entity name is arbitrary.

Implement the SFL IP created in step 1 in your top-level design.

(You may find it useful to leverage the templates for instances in the IP's generated folder.)

 

Connect the input noe_in port to GND to enable the SFL IP.

Below is an example design in VHDL.

Design example (VHDL)

Assignments menu > Device > Device and Pin Options > Unused Pins

Configure unused user I/O pins as follows:

 

Reserved all unused pins: As input tri-stated with weak pull-up

Reserved all unused pins

▲ Return to page top

3. Add timing constraints for your own SFL IP

Create a timing constraint file (.sdc) for the SFL IP.

Please refer to the limitations published on the manufacturer's web page Knowledge Base.

## 参考例 create_clock -name {altera_reserved_tck} -period 100.000 -waveform { 0.000 50.000 } [get_ports {altera_reserved_tck}] create_generated_clock -name {ALTERA_DCLK} -source [get_ports {altera_reserved_tck}] -master_clock {altera_reserved_tck} \ [get_ports {*altserial_flash_loader_component|\GEN_ASMI_TYPE_1:asmi_inst~ALTERA_DCLK}] ## set_input_delay -add_delay -clock [get_clocks {altera_reserved_tck}] 20.000 [get_ports {altera_reserved_tdi}] set_input_delay -add_delay -clock [get_clocks {altera_reserved_tck}] 20.000 [get_ports {altera_reserved_tms}] set_input_delay -add_delay -clock [get_clocks {ALTERA_DCLK}] 11.000 [get_ports \ {*altserial_flash_loader_component|\GEN_ASMI_TYPE_1:asmi_inst~ALTERA_DATA0}] ## set_output_delay -add_delay -clock [get_clocks {altera_reserved_tck}] 20.000 [get_ports {altera_reserved_tdo}] set_output_delay -add_delay -max -clock [get_clocks {ALTERA_DCLK}] 0.000 [get_ports \ {*altserial_flash_loader_component|\GEN_ASMI_TYPE_1:asmi_inst~ALTERA_DCLK}] set_output_delay -add_delay -clock_fall -clock [get_clocks {ALTERA_DCLK}] 0.000 [get_ports \ {*altserial_flash_loader_component|\GEN_ASMI_TYPE_1:asmi_inst~ALTERA_DCLK}] set_output_delay -add_delay -clock [get_clocks {ALTERA_DCLK}] 13.000 [get_ports \ {*altserial_flash_loader_component|\GEN_ASMI_TYPE_1:asmi_inst~ALTERA_SCE}] set_output_delay -add_delay -clock [get_clocks {ALTERA_DCLK}] 8.000 [get_ports \ {*altserial_flash_loader_component|\GEN_ASMI_TYPE_1:asmi_inst~ALTERA_SDO}] ## remove_clock_groups -all ## set_false_path -from [get_ports {altera_reserved_tck}] -through [get_nets \ {*altserial_flash_loader_component|\ENHANCED_PGM:sfl_inst_enhanced|dclkin~0}] -to [get_keepers \ {*altserial_flash_loader_component|\GEN_ASMI_TYPE_1:asmi_inst~ALTERA_DCLK}]

[Note] The ending number of \GEN_ASMI_TYPE_1may be different.

 

After creating and saving the sdc file, register the .sdc to the project using the menu below.

Assignments menu > Settings > Timing Analyzer category

▲ Return to page top

4. Compile

Compile.

Processing menu > Start Compilation

▲ Return to page top

5. Download sof file to EP4CE75

Start Programmer. (Tools menu > Programmer)

Set Hardware Setup and select JTAG for Mode.

Set the compiled sof file and enable (On) the Program/Configure option.

Programmer (set .sof for SFL)

Click the [Start] button to transfer data to the EP4CE75.

After writing is completed, delete the sof file from the Programmer screen using the [Delete] button.

▲ Return to page top

6. Download the jic file

Register the jic file created in advance in the Programmer.

Enable (On) the Program/Configure option in the jic file.

Programmer (set .jic)

[Reference: Creating a jic file]

Quartus® Guide - Convert Programming Files

Programming to EPCQ devices via FPGA (JIC programming)

 

Only disable (Off) the Program/Configure option for the Factory default enhanced SFL image.

* By step 5, the SFL image has already been downloaded to EP4CE75.

Programmer (only transfer jic files)

Click the Start button to download only the jic file.

 

This completes the work.

Please use this method when writing the jic file to the configuration ROM via EP4CE75.

 ▲ Return to page top

Click here for recommended articles/materials

Intel® FPGA Development Flow/FPGA Top Page

Quartus ® Guide - Convert Programming Files

Programming to EPCQ device via FPGA (JIC programming)

 

Click here for recommended FAQ

Intel® FPGA FAQs

jic file / Programmer related FAQ