AN 370: Using The Intel FPGA Serial Flash Loader With The Intel Quartus Prime Software
AN 370: Using The Intel FPGA Serial Flash Loader With The Intel Quartus Prime Software
Contents
1. Using the Intel® FPGA Serial Flash Loader IP Core with the Intel® Quartus® Prime
      Software.................................................................................................................... 3
        1.1. Features...............................................................................................................3
        1.2. Overview..............................................................................................................4
        1.3. Programming Single and Multiple Serial Configuration Devices with the Intel FPGA
               Serial Flash Loader IP Core.................................................................................. 4
        1.4. Using the Intel FPGA Serial Flash Loader IP Core in the Intel Quartus® Prime Software... 7
               1.4.1. Instantiating the Intel FPGA Serial Flash Loader IP Core..................................8
        1.5. Generating .jic and .jam Programming Files in the Intel Quartus® Prime Software.......... 8
               1.5.1. Converting .sof to .jic Files in the Intel Quartus Prime Software....................... 8
               1.5.2. Converting .jic Files to .jam Files in the Intel Quartus Prime Software............... 9
        1.6. Programming Serial Configuration Devices with the Intel Quartus Prime Programmer.... 10
               1.6.1. Programming Serial Configuration Devices Using the Intel Quartus Prime
                      Programmer and .jic Files..........................................................................10
               1.6.2. Programming Serial Configuration Devices Using the Intel Quartus Prime
                      Programmer and .jam Files....................................................................... 11
        1.7. Features for Intel Arria 10 and Intel Cyclone 10 GX Devices.......................................11
               1.7.1. Multiple Configuration Devices Support....................................................... 11
               1.7.2. Boot Page Selection..................................................................................12
        1.8. Intel FPGA Serial Flash Loader IP Core Parameter.....................................................12
        1.9. Intel FPGA Serial Flash Loader IP Core Signals......................................................... 12
        1.10. Document Revision History for AN 370: Using the Intel FPGA Serial Flash Loader
               IP Core with the Intel Quartus Prime Software...................................................... 14
AN 370: Using the Intel FPGA Serial Flash Loader with the Intel Quartus                                            Send Feedback
Prime Software
2
 AN-370 | 2019.02.18
Send Feedback
                 To use the JTAG interface to program your serial configuration device, you must create
                 an instance of the Intel FPGA Serial Flash Loader IP core into your FPGA to form a
                 bridge between the FPGA JTAG hard logic and the FPGA active serial memory interface
                 (ASMI) hard logic. You can then use a download cable (Intel FPGA Parallel Port Cable,
                 Intel FPGA Download Cable), production tester, and other tools that support JTAG to
                 program your serial configuration device.
1.1. Features
                 The Intel FPGA Serial Flash Loader IP core allows you to:
                 •    Configure your FPGA and program your serial configuration devices using the
                      same JTAG interface.
                 •    Correctly interpret extra padding bits introduced by third-party programmer tools
                      to ensure successful serial configuration device programming using the Use
                      enhanced mode SFL parameter.
                 The Intel FPGA Serial Flash Loader IP core supports Intel Arria® 10 and Intel Cyclone®
                 10 GX devices with the following features:
                 •    Multiple serial configuration devices—up to three cascaded identical serial
                      configuration devices can be used to store a single configuration file.
                 •    Multiple-die serial configuration devices—up to four stacked-die serial
                      configuration device can be used to store a single configuration file.
                 •    Boot page selection—specify the boot page for design multiple SRAM object file
                      (.sof).
  Intel Corporation. All rights reserved. Intel, the Intel logo, Altera, Arria, Cyclone, Enpirion, MAX, Nios, Quartus
  and Stratix words and logos are trademarks of Intel Corporation or its subsidiaries in the U.S. and/or other
  countries. Intel warrants performance of its FPGA and semiconductor products to current specifications in               ISO
  accordance with Intel's standard warranty, but reserves the right to make changes to any products and services          9001:2015
  at any time without notice. Intel assumes no responsibility or liability arising out of the application or use of any   Registered
  information, product, or service described herein except as expressly agreed to in writing by Intel. Intel
  customers are advised to obtain the latest version of device specifications before relying on any published
  information and before placing orders for products or services.
  *Other names and brands may be claimed as the property of others.
                            1. Using the Intel® FPGA Serial Flash Loader IP Core with the Intel® Quartus® Prime Software
                                                                                                                                AN-370 | 2019.02.18
1.2. Overview
Figure 1.         In-System Programming Method
                  This figure shows the in-system programming method using the Intel FPGA Serial Flash Loader IP core.
Block Description
JTAG This block refers to the FPGA internal JTAG hard logic.
     Intel FPGA Serial Flash          The IP core instantiates serial flash loader (SFL) image into your design to bridge the JTAG
     Loader IP core                   and ASMI interfaces. This feature allows you to perform SFL programming without resetting
                                      your design in the FPGA.
     Serial Configuration             This block refers to the following serial configuration devices:
     Device                           • EPCS1, EPCS4, EPCS16, EPCS64, and EPCS128.
                                      • EPCQ16, EPCQ32, EPCQ64, EPCQ128, and EPCQ256.
                                      • EPCQL256, EPCQL512, and EPCQL1024.
                                      • EPCQ4A, EPCQ16A, EPCQ32A, EPCQ64A, EPCQ128A, and EPCQ512A.
                  Related Information
                  Device Configuration Support Center
                     Provides more information on the latest configuration devices supported by Intel.
                     For details, refer to the Intel Supported Configuration Devices tab in the
                     Device Configuration Support Center page.
AN 370: Using the Intel FPGA Serial Flash Loader with the Intel Quartus                                                              Send Feedback
Prime Software
4
1. Using the Intel® FPGA Serial Flash Loader IP Core with the Intel® Quartus® Prime Software
AN-370 | 2019.02.18
                     Note: You can include the Intel FPGA Serial Flash Loader IP core in your new
                           configuration data to allow programming the serial configuration device
                           when your FPGA is in user mode.
Figure 2.       Programming Serial Configuration Devices with the Intel FPGA Serial Flash
                Loader IP Core Programming Flow
                This figure shows the general programming flow to program serial configuration devices with the Intel FPGA
                Serial Flash Loader IP core.
Start
                                                                                        Yes
                                                            SFL Image Exists in
                                                                your FPGA?
No
     Send Feedback                                      AN 370: Using the Intel FPGA Serial Flash Loader with the Intel Quartus
                                                                                                                Prime Software
                                                                                                                             5
                         1. Using the Intel® FPGA Serial Flash Loader IP Core with the Intel® Quartus® Prime Software
                                                                                                                                                 AN-370 | 2019.02.18
Figure 3.         Programming a Single Serial Configuration Device with the Intel FPGA Serial
                  Flash Loader IP Core Programming Flow
                  This figure shows the programming flow to program a single serial configuration device with the Intel FPGA
                  Serial Flash Loader IP core.
                        Step 1: Configure your FPGA with the Intel FPGA Serial Flash Loader IP Core or a design containing the Intel FPGA Serial Flash Loader IP Core
                                                                         You can bypass this step if the SFL image exists in your FPGA
Step 2: Program Your Serial Configuration Device with the FPGA Configuration Image
AN 370: Using the Intel FPGA Serial Flash Loader with the Intel Quartus                                                                               Send Feedback
Prime Software
6
1. Using the Intel® FPGA Serial Flash Loader IP Core with the Intel® Quartus® Prime Software
AN-370 | 2019.02.18
Figure 4.       Programming Multiple Serial Configuration Devices with the Intel FPGA Serial
                Flash Loader IP Core Programming Flow
                This figure shows the programming flow to program multiple serial configuration devices with the Intel FPGA
                Serial Flash Loader IP core.
                                      Step 1: Configure your FPGA with the Intel FPGA Serial Flash Loader IP Core or a design containing the
                                                                        Intel FPGA Serial Flash Loader IP Core
                                                           You can bypass this step if the SFL image exists in your FPGA
                                     JTAG Chain
                                              Serial                                                 Serial
                                           Configuration                                          Configuration
                                             Device #1                                              Device #2
                                              Step 2: Program your Serial Configuration Devices with the FPGA Configuration Image
                                     JTAG Chain
                                     JTAG
                                              Serial                                                 Serial
                                           Configuration                                          Configuration
                                             Device #1                                              Device #2
                                              Serial                                                 Serial
                                           Configuration                                          Configuration
                                             Device #1                                              Device #2
1.4. Using the Intel FPGA Serial Flash Loader IP Core in the Intel
Quartus® Prime Software
                Use the Intel FPGA Serial Flash Loader IP core to create a dedicated FPGA image that
                you use only when programming a serial configuration device. For example, configure
                your FPGA with this dedicated FPGA image only when you want to program the
     Send Feedback                                               AN 370: Using the Intel FPGA Serial Flash Loader with the Intel Quartus
                                                                                                                         Prime Software
                                                                                                                                               7
                         1. Using the Intel® FPGA Serial Flash Loader IP Core with the Intel® Quartus® Prime Software
                                                                                                AN-370 | 2019.02.18
                  Alternatively, you can instantiate the Intel FPGA Serial Flash Loader IP core in your
                  FPGA image. This allows you to program your serial configuration device at any time
                  without interrupting your design. The internal logic can access and read and/or write
                  the serial configuration device at any time using the Share ASMI interface with
                  your design parameter in the Intel FPGA Serial Flash Loader IP core.
1.5.1. Converting .sof to .jic Files in the Intel Quartus Prime Software
                  To convert a .sof to a .jic file, perform the following steps:
AN 370: Using the Intel FPGA Serial Flash Loader with the Intel Quartus                               Send Feedback
Prime Software
8
1. Using the Intel® FPGA Serial Flash Loader IP Core with the Intel® Quartus® Prime Software
AN-370 | 2019.02.18
                Related Information
                Programming Serial Configuration Devices with the Intel Quartus Prime Programmer
                on page 10
1.5.2. Converting .jic Files to .jam Files in the Intel Quartus Prime
Software
                To convert a .jic to a .jam file in the Intel Quartus Prime software, perform the
                following steps:
Note:           With the same steps outlined above, you can generate a .jbc or .svf file from
                the .jic file.
     Send Feedback                                 AN 370: Using the Intel FPGA Serial Flash Loader with the Intel Quartus
                                                                                                           Prime Software
                                                                                                                        9
                         1. Using the Intel® FPGA Serial Flash Loader IP Core with the Intel® Quartus® Prime Software
                                                                                                AN-370 | 2019.02.18
                  As long as the JTAG interface of the FPGA is accessible for programming, you can use
                  the factory default enhanced SFL image that is run directly from the Intel Quartus
                  Prime programmer for your application. If you enable tamper protection in design
                  security feature, JTAG configuration is disabled. However, the serial configuration
                  device is still accessible from JTAG interface if the FPGA is configured with encrypted
                  configuration image that contains Intel FPGA Serial Flash Loader IP core.
Note:             If the Program/Configure check boxes are not specified, the Intel Quartus Prime
                  programmer bypasses the request. Also, if the FPGA does not have the SFL image
                  when the serial configuration device data is programmed through the JTAG interface,
                  the programming process fails.
                  You can program multiple serial configuration devices by including more than
                  one .jic file in the Intel Quartus Prime programmer.
Note:             Your FPGA must be in active serial configuration mode to enable the Intel FPGA Serial
                  Flash Loader IP core to program.
AN 370: Using the Intel FPGA Serial Flash Loader with the Intel Quartus                               Send Feedback
Prime Software
10
1. Using the Intel® FPGA Serial Flash Loader IP Core with the Intel® Quartus® Prime Software
AN-370 | 2019.02.18
                To program serial configuration devices with .jam file, perform the following steps:
                1.   When the .jic-to-.jam file conversion is complete, add the .jam file to the Intel
                     Quartus Prime programmer window:
                     a.   In the Tools menu, select Programmer. The Chain1.cdf dialog box appears.
                     b.   Click Add File. In the Select Programming File dialog box, browse to
                          the .jam file.
                     c.   Click Open.
                2. Configure the FPGA with the SFL image, and program the serial configuration
                   device by turning on the FPGA Program/Configure check box. This process
                   corresponds to Step 1 and Step 2 of Figure 3 on page 6.
                3.   Click Start.
                     Note: The .jam file is generated from the .jic file through the chain description
                           file (.cdf). For more information, refer to Intel Quartus Prime Help.
                             You can program multiple serial configuration devices with one .jam file in
                             the Intel Quartus Prime programmer.
EPCQ-L256 Larger than 256 Mbit and smaller than 512 MBit 2
EPCQ-L256 Larger than 512 Mbit and smaller than 768 MBit 3
Note:           The Intel Quartus Prime Convert Programming File tool creates a .jic file based on
                the setting you set. Configuration will fail if the wrong configuration device type
                selected in the Convert Programming File tool. However, configuration will work if the
                configuration devices on your board are more than to the configuration devices
                required by the generated configuration file.
                The Intel Quartus Prime programmer sees multiple configuration devices as a big
                storage unit. It spans across the flash boundary automatically when the content to be
                stored exceeds a particular flash capacity.
     Send Feedback                                      AN 370: Using the Intel FPGA Serial Flash Loader with the Intel Quartus
                                                                                                                Prime Software
                                                                                                                            11
                             1. Using the Intel® FPGA Serial Flash Loader IP Core with the Intel® Quartus® Prime Software
                                                                                                             AN-370 | 2019.02.18
                        For example, in Table 2 on page 11, only a single JIC file will be generated. For RPD
                        file generation, multiple RPD files will be generated because the RPD files is
                        programmed directly to the flash with other tools, such as third-party programmer.
                        You must manage the RPD files and determine the right RPD to be programmed into
                        each flash.
        Share ASMI interface with          Turn On, Turn Off                  Turn on the Share ASMI interface in your design
        your design                                                           parameter if you must share the ASMI interface
                                                                              with your FPGA design. This option provides
                                                                              additional control pins for controlling the ASMI
                                                                              interface to access external serial configuration
                                                                              device from core logic.
        Use enhanced mode SFL              Turn On, Turn Off                  The Use enhanced mode SFL parameter is
                                                                              enabled by default. This option provides more
                                                                              flexibility for JTAG cascading environment and the
                                                                              usage of the SFL with a third-party programmer
                                                                              tool. Turn off the Use enhanced mode SFL
                                                                              parameter if you do use enhanced SFL.
                                                                              For Arria V, Arria V GZ, Intel Arria 10, Intel Cyclone
                                                                              10 GX, Cyclone V, and Stratix® V devices, you
                                                                              cannot disable this parameter.
        dclk_in   (1)                        Input                  1           Clock signal from your FPGA design to the
                                                                                external DCLK pin through the ASMI hard logic.
                                                                                The clock frequency of the dclk_in signal
                                                                                depends on your design and the flash frequency.
                                                                                Both inputs and output must be synchronous to
                                                                                dclk_in.
        ncso_in(1)                           Input                  1           Control signal from your FPGA design to the nCSO
                                                                                pin. A low signal enables the serial configuration
                                                                                device.
                                                                                Note: This signal is 3 bits width for Intel Arria 10
                                                                                      and Intel Cyclone 10 GX devices.
                                                                                                                      continued...
  (1)    Available for all device families when you turn on the Share ASMI interface with your
         design parameter.
AN 370: Using the Intel FPGA Serial Flash Loader with the Intel Quartus                                             Send Feedback
Prime Software
12
1. Using the Intel® FPGA Serial Flash Loader IP Core with the Intel® Quartus® Prime Software
AN-370 | 2019.02.18
       asdo_in   (2)                  Input                1           Control signal from your FPGA design to the ASDO
                                                                       pin for sending data into the serial configuration
                                                                       device.
       asmi_access_granted(1)         Input                1           Control signal to allow the Intel FPGA Serial Flash
                                                                       Loader IP core to access the following pins using
                                                                       the ASMI interface:
                                                                       • dclk_in
                                                                       •   ncso_in
                                                                       •   asdo_in
                                                                       •   data0_out
                                                                       •   data_in
                                                                       •   data_oe
                                                                       •   data_out
                                                                       A high signal allows the Intel Serial Flash Loader
                                                                       IP core to access the ASMI interface. A low signal
                                                                       allows your FPGA design to access the ASMI
                                                                       interface.
                                                                       Always keep this signal low. The user logic must
                                                                       always monitor the asmi_access_request
                                                                       signal. If the asmi_access_request signal is
                                                                       asserted, the user logic may assert the
                                                                       asmi_access_granted signal to allow the JTAG
                                                                       interface to access the Intel FPGA Serial Flash
                                                                       Loader IP core.
                                                                       The user logic must continue to drive the
                                                                       asmi_access_granted signal until the Intel
                                                                       FPGA Serial Flash Loader IP core deasserts the
                                                                       asmi_access_request signal.
                                                                       This signal is not synchronous with the dclk_in
                                                                       signal.
                                                                       Note: The user interface is the master and the
                                                                             JTAG interface is the slave.
data0_out(2) Output 1 Signal from the DATA0 pin to your FPGA design.
       asmi_access_request(1)        Output                1           A high signal indicates that the Intel FPGA Serial
                                                                       Flash Loader IP core is requesting ASMI interface
                                                                       access. The Intel FPGA Serial Flash Loader IP
                                                                       core starts accessing the ASMI interface when the
                                                                       ASMI_ACCESS_GRANTED is high. The
                                                                       asmi_access_request signal stays high until
                                                                       the Intel FPGA Serial Flash Loader IP core
                                                                       operation ends, such as Program/Configure,
                                                                       Verify, Blank Check, Examine, Erase and Auto-
                                                                       detect. If the asmi_access_granted signal is
                                                                       not asserted five seconds after the
                                                                                                            continued...
 (2)    Available for Arria II, Intel Cyclone 10 LP, Cyclone IV, and Stratix IV device families when you
        turn on the Share ASMI interface with your design parameter.
        Send Feedback                              AN 370: Using the Intel FPGA Serial Flash Loader with the Intel Quartus
                                                                                                           Prime Software
                                                                                                                         13
                             1. Using the Intel® FPGA Serial Flash Loader IP Core with the Intel® Quartus® Prime Software
                                                                                                               AN-370 | 2019.02.18
data_out[](3) Output 4 Signal from the AS data pin to your FPGA design.
1.10. Document Revision History for AN 370: Using the Intel FPGA
Serial Flash Loader IP Core with the Intel Quartus Prime Software
          Document                                                         Changes
           Version
2019.02.18 Added reference to the supported configuration devices in the Overview section.
        May 2016                     2016.05.02         •   Added note to Programming Single and Multiple Serial Configuration
                                                            Devices with the Altera Serial Flash Loader IP Core mentioning data
                                                            width during configuration device programming.
        July 2015                    2015.07.01         •   Updated figures Programming Serial Configuration Devices with the
                                                            Altera Serial Flash Loader IP Core Programming Flow by resizing it.
                                                        •   Removed redundant table description in Table 2: Altera Serial Flash
                                                            Loader IP Core Parameter and Table 3: Altera Serial Flash Loader IP
                                                            Core Signals.
                                                        •   Corrected typo's and defining .jic, .jam and .jbc files.
                                                                                                                     continued...
  (3)    Available for Arria V, Arria V GZ, Intel Arria 10, Intel Cyclone 10 GX, Cyclone V, and Stratix V
         devices only when you turn on the Share ASMI interface with your design parameter.
AN 370: Using the Intel FPGA Serial Flash Loader with the Intel Quartus                                             Send Feedback
Prime Software
14
1. Using the Intel® FPGA Serial Flash Loader IP Core with the Intel® Quartus® Prime Software
AN-370 | 2019.02.18
    July 2014                2014.07.04        •   IP core name changed from SFL megafunction to Altera Serial Flash
                                                   Loader IP core to reflect the change in 14.0 release.
                                               •   Listed IP core parameter settings.
                                               •   Listed Arria V, Cyclone V, and Stratix V specific signals.
                                               •   Updated figures to reflect the correct JTAG-ASMI bridge.
                                               •   Included EPCQ devices information.
                                               •   Updated content to reflect the IP Catalog changes.
                                               •   Rewrite content to improve readability.
                                               •   Updated template.
                                               •   Removed outdated screen shots.
    October 2012             3.2               Updated “Programming Single and Multiple Serial Configuration Devices
                                               with the SFL Solution” on page 3 to fix step error.
                                               Updated “Programming Serial Configuration Devices Using the Quartus II
                                               Programmer and .jic Files” on page 17 to fix step error.
                                               Updated template.
    July 2006                3.0               Updated the first paragraph in the “Introduction” section
                                               Updated the first column of Table 1
                                                                                                             continued...
     Send Feedback                                  AN 370: Using the Intel FPGA Serial Flash Loader with the Intel Quartus
                                                                                                            Prime Software
                                                                                                                          15
                         1. Using the Intel® FPGA Serial Flash Loader IP Core with the Intel® Quartus® Prime Software
                                                                                                       AN-370 | 2019.02.18
     June 2008                   2.0                Updated the first and forth paragraph and the bulleted list in the
                                                    “Introduction”section
                                                    Updated column one of Table 1
                                                    Updated steps 2 and 3 in the “Steps for Programming Single and Multiple
                                                    Serial Configuration Devices with the SFL Solution” section
AN 370: Using the Intel FPGA Serial Flash Loader with the Intel Quartus                                       Send Feedback
Prime Software
16