Forum Discussion

Leslie_Dai's avatar
Leslie_Dai
Icon for New Member rankNew Member
3 hours ago

port programming process from ep4ce40 to 5CEBA4

echo "load system sof"

cp "C:/intelFPGA/16.1/quartus/common/devinfo/programmer/sfl_enhanced_ep4ce40.sof" "./sfl_enhanced_ep4ce40.sof"

quartus_pgm -m jtag -c USB-Blaster[USB-0] -o "p;sfl_enhanced_ep4ce40.sof"

 

echo "programming..."

quartus_pgm -m jtag -c USB-Blaster[USB-0] -o "p;./output_files/output_file.jic"

This is the process I used for ep4ce40. now I am working on 5CEBA4, but I cannot find the related default sof (like sfl_enhanced_ep4ce40.sof) for 5CEBA4. Any suggestion for this issue?

1 Reply

  • Farabi_Altera's avatar
    Farabi_Altera
    Icon for Regular Contributor rankRegular Contributor

    Good question — the workflow is slightly different for Cyclone V compared to Cyclone IV, and that's why you're not finding a pre-built `sfl_enhanced_*.sof` for the 5CEBA4 in the `devinfo/programmer` directory.

    Why the flow differs for Cyclone V



    For Cyclone V, using the JTAG interface to program an EPCS or EPCQ device requires an Altera IP called the Serial Flash Loader (SFL) to be downloaded into the Cyclone V device to form a bridge between the JTAG interface and the EPCS or EPCQ. Cyclone V · Config/RSU However, rather than relying on a pre-built device-specific SOF from the Quartus installation directory, the recommended approach for Cyclone V is to let the Quartus Prime Programmer handle this automatically, or to generate the SFL image yourself.



    Recommended approach: Use the Convert Programming Files tool to generate the .jic, then let the Programmer load the SFL automatically



    The standard Cyclone V JIC programming flow is:




    1. In Quartus Prime, click File → Convert Programming Files… and set:

      • Programming file type: JTAG Indirect Configuration File (.jic)

      • Configuration device: e.g. EPCQ256

      • Mode: Active Serial x4

      • Add a SOF Data Page_0 with the .sof from your Quartus compilation.

      Cyclone V · General

    2. Add the flash loader for the device 5CSXFC6D6 (substitute your 5CEBA4) and click Generate. Cyclone V · General The Flash Loader entry in the Convert Programming Files dialog is where you specify your exact Cyclone V device — this embeds the correct SFL into the .jic itself.



    When you then program the .jic via quartus_pgm, the Programmer performs JTAG programming of the flash memory via the Factory default SFL image, which enables communication between the JTAG pins and the flash memory device's serial interface. Generic Flash Programming (Convert Programming File Dialog Box)



    Alternatively, if you want to attach the flash device manually and let the Programmer load the SFL for you: in the Programmer, right-click the target FPGA device, then click Edit → Attach Flash Device, select the appropriate flash device from the list, and the Factory Default Serial Flash Loader loads for the FPGA automatically. Full Erase of Flash Memory Sectors



    If you specifically need a standalone SFL SOF for 5CEBA4



    There is a known issue where, due to a problem in the factory default SFL image in Quartus Prime Software, the Programmer will not detect the Flash Loader IP (which creates the bridge between JTAG and the flash device). This issue is specific to the Cyclone V E - Member Code A5. Cyclone V · Config/RSU The 5CEBA4 is a Cyclone V E device with member code A4, so check whether this errata applies to your exact variant.



    The workaround documented for the affected A5 variant is: generate a bitstream image with only one instance of the SFL IP for your specific device, then program the generated image before your JIC file. Cyclone V · Config/RSU You can generate this SFL SOF yourself in Quartus Prime by instantiating the Serial Flash Loader IP targeting the 5CEBA4 and compiling a minimal project — there is no pre-built `sfl_enhanced_5ceba4.sof` equivalent in the devinfo directory the way there is for Cyclone IV.



    Summary of your command-line flow for 5CEBA4



    Your two-step quartus_pgm approach (load SFL SOF first, then program JIC) is valid. For the 5CEBA4, generate the SFL SOF by creating a Quartus project targeting the 5CEBA4, instantiating the Serial Flash Loader IP (set to your flash device, e.g. EPCQ), compiling it, and using that .sof in place of sfl_enhanced_ep4ce40.sof. Then your second quartus_pgm step programming the .jic remains unchanged.