Altera has created EPCS and EPCQ devices, can only these be used to store FPGA configuration data?











up vote
1
down vote

favorite












FPGA configuration data must be stored in external non-volatile memory. Can we use just any flash memory or only specific types? What about EEPROMs or any other nonvolatile memory device?



Edit: I am referring to active configuration where the FPGA configures itself, by itself, without support of an external device like a microcontroller or microprocessor.










share|improve this question




























    up vote
    1
    down vote

    favorite












    FPGA configuration data must be stored in external non-volatile memory. Can we use just any flash memory or only specific types? What about EEPROMs or any other nonvolatile memory device?



    Edit: I am referring to active configuration where the FPGA configures itself, by itself, without support of an external device like a microcontroller or microprocessor.










    share|improve this question


























      up vote
      1
      down vote

      favorite









      up vote
      1
      down vote

      favorite











      FPGA configuration data must be stored in external non-volatile memory. Can we use just any flash memory or only specific types? What about EEPROMs or any other nonvolatile memory device?



      Edit: I am referring to active configuration where the FPGA configures itself, by itself, without support of an external device like a microcontroller or microprocessor.










      share|improve this question















      FPGA configuration data must be stored in external non-volatile memory. Can we use just any flash memory or only specific types? What about EEPROMs or any other nonvolatile memory device?



      Edit: I am referring to active configuration where the FPGA configures itself, by itself, without support of an external device like a microcontroller or microprocessor.







      fpga intel-fpga configuration intel






      share|improve this question















      share|improve this question













      share|improve this question




      share|improve this question








      edited 5 hours ago

























      asked 5 hours ago









      quantum231

      3,7141254109




      3,7141254109






















          2 Answers
          2






          active

          oldest

          votes

















          up vote
          2
          down vote













          You can use any types you like, as long as you provide some circuit that can read the memory and then control the FPGAs configuration interface in an appropriate way to configure the device according to the data in the memory.



          For example, a microcontroller could read the flash and send it to the FPGA on its serial or parallel configuration interface.



          Or a PC could store the configuration on a hard disk, and send it to a circuit on the PCB with the FPGA, which delivers the data to the FPGA's configuration interface.



          The FPGA may also have a built in state machine that can read memory with a specified interface directly, eliminating the need for an external micro or CPLD to operate the configuration interface. The requirements on the flash interface for the FPGA to do this will be spelled out in the documentation for the FPGA. (For Xilinx, there will be a document called the Configuration Guide, but Intel might have a different name for this document or combine it in a general Users Guide).






          share|improve this answer





















          • Yes, the question was meant for active configuration where the FPGA on its own, configures itself. I shall change the question.
            – quantum231
            5 hours ago










          • @quantum231 The last paragraph of this answer addresses this case.
            – DoxyLover
            3 hours ago


















          up vote
          1
          down vote













          I recently experimented with exactly this stuff. My design uses EPCS16, and I upgraded it to W25Q128FV. It works, but you should know limitations:




          1. Command set must be compatible with EPCS devices. Actually EPCS16 appears to be manufactured by GigaDevice (manufacturer code 0xc8);

          2. "Stacked die" devices are claimed as not working for configuration. I can not comment on it as did not use such serial flash devices, but you must keep it in mind. If you decide to use such, further investigation will be needed;

          3. FPGA will not configure from non-EPCS device if you do not disable checking for silicon ID when making POF file using programming file converter in Quartus software;

          4. As far as I experienced, Quartus refuses to flash non-EPCS devices with its Quartus programmer in AS mode. I used versions 12 and 13, probably newer versions do allow this (I use BB II, thus forced to use older versions of Quartus software);

          5. Standard ASMI IP does not allow reading manufacturer ID and bits ID[15:8] from the flash device. Silicon ID and capacity ID are only available. Of course it is possible to modify ASMI module design;

          6. Last, but very important: reference circuit for EPCS requires some non-power pins - WP and HOLD - connecting to the Vcc. They confirmed it here. If you are going to replace chip with non-Altera one working in x1 mode, you must use 10K resistor pull-ups instead of connecting these pins to Vcc directly.






          share|improve this answer























            Your Answer





            StackExchange.ifUsing("editor", function () {
            return StackExchange.using("mathjaxEditing", function () {
            StackExchange.MarkdownEditor.creationCallbacks.add(function (editor, postfix) {
            StackExchange.mathjaxEditing.prepareWmdForMathJax(editor, postfix, [["\$", "\$"]]);
            });
            });
            }, "mathjax-editing");

            StackExchange.ifUsing("editor", function () {
            return StackExchange.using("schematics", function () {
            StackExchange.schematics.init();
            });
            }, "cicuitlab");

            StackExchange.ready(function() {
            var channelOptions = {
            tags: "".split(" "),
            id: "135"
            };
            initTagRenderer("".split(" "), "".split(" "), channelOptions);

            StackExchange.using("externalEditor", function() {
            // Have to fire editor after snippets, if snippets enabled
            if (StackExchange.settings.snippets.snippetsEnabled) {
            StackExchange.using("snippets", function() {
            createEditor();
            });
            }
            else {
            createEditor();
            }
            });

            function createEditor() {
            StackExchange.prepareEditor({
            heartbeatType: 'answer',
            convertImagesToLinks: false,
            noModals: true,
            showLowRepImageUploadWarning: true,
            reputationToPostImages: null,
            bindNavPrevention: true,
            postfix: "",
            imageUploader: {
            brandingHtml: "Powered by u003ca class="icon-imgur-white" href="https://imgur.com/"u003eu003c/au003e",
            contentPolicyHtml: "User contributions licensed under u003ca href="https://creativecommons.org/licenses/by-sa/3.0/"u003ecc by-sa 3.0 with attribution requiredu003c/au003e u003ca href="https://stackoverflow.com/legal/content-policy"u003e(content policy)u003c/au003e",
            allowUrls: true
            },
            onDemand: true,
            discardSelector: ".discard-answer"
            ,immediatelyShowMarkdownHelp:true
            });


            }
            });














            draft saved

            draft discarded


















            StackExchange.ready(
            function () {
            StackExchange.openid.initPostLogin('.new-post-login', 'https%3a%2f%2felectronics.stackexchange.com%2fquestions%2f412518%2faltera-has-created-epcs-and-epcq-devices-can-only-these-be-used-to-store-fpga-c%23new-answer', 'question_page');
            }
            );

            Post as a guest















            Required, but never shown

























            2 Answers
            2






            active

            oldest

            votes








            2 Answers
            2






            active

            oldest

            votes









            active

            oldest

            votes






            active

            oldest

            votes








            up vote
            2
            down vote













            You can use any types you like, as long as you provide some circuit that can read the memory and then control the FPGAs configuration interface in an appropriate way to configure the device according to the data in the memory.



            For example, a microcontroller could read the flash and send it to the FPGA on its serial or parallel configuration interface.



            Or a PC could store the configuration on a hard disk, and send it to a circuit on the PCB with the FPGA, which delivers the data to the FPGA's configuration interface.



            The FPGA may also have a built in state machine that can read memory with a specified interface directly, eliminating the need for an external micro or CPLD to operate the configuration interface. The requirements on the flash interface for the FPGA to do this will be spelled out in the documentation for the FPGA. (For Xilinx, there will be a document called the Configuration Guide, but Intel might have a different name for this document or combine it in a general Users Guide).






            share|improve this answer





















            • Yes, the question was meant for active configuration where the FPGA on its own, configures itself. I shall change the question.
              – quantum231
              5 hours ago










            • @quantum231 The last paragraph of this answer addresses this case.
              – DoxyLover
              3 hours ago















            up vote
            2
            down vote













            You can use any types you like, as long as you provide some circuit that can read the memory and then control the FPGAs configuration interface in an appropriate way to configure the device according to the data in the memory.



            For example, a microcontroller could read the flash and send it to the FPGA on its serial or parallel configuration interface.



            Or a PC could store the configuration on a hard disk, and send it to a circuit on the PCB with the FPGA, which delivers the data to the FPGA's configuration interface.



            The FPGA may also have a built in state machine that can read memory with a specified interface directly, eliminating the need for an external micro or CPLD to operate the configuration interface. The requirements on the flash interface for the FPGA to do this will be spelled out in the documentation for the FPGA. (For Xilinx, there will be a document called the Configuration Guide, but Intel might have a different name for this document or combine it in a general Users Guide).






            share|improve this answer





















            • Yes, the question was meant for active configuration where the FPGA on its own, configures itself. I shall change the question.
              – quantum231
              5 hours ago










            • @quantum231 The last paragraph of this answer addresses this case.
              – DoxyLover
              3 hours ago













            up vote
            2
            down vote










            up vote
            2
            down vote









            You can use any types you like, as long as you provide some circuit that can read the memory and then control the FPGAs configuration interface in an appropriate way to configure the device according to the data in the memory.



            For example, a microcontroller could read the flash and send it to the FPGA on its serial or parallel configuration interface.



            Or a PC could store the configuration on a hard disk, and send it to a circuit on the PCB with the FPGA, which delivers the data to the FPGA's configuration interface.



            The FPGA may also have a built in state machine that can read memory with a specified interface directly, eliminating the need for an external micro or CPLD to operate the configuration interface. The requirements on the flash interface for the FPGA to do this will be spelled out in the documentation for the FPGA. (For Xilinx, there will be a document called the Configuration Guide, but Intel might have a different name for this document or combine it in a general Users Guide).






            share|improve this answer












            You can use any types you like, as long as you provide some circuit that can read the memory and then control the FPGAs configuration interface in an appropriate way to configure the device according to the data in the memory.



            For example, a microcontroller could read the flash and send it to the FPGA on its serial or parallel configuration interface.



            Or a PC could store the configuration on a hard disk, and send it to a circuit on the PCB with the FPGA, which delivers the data to the FPGA's configuration interface.



            The FPGA may also have a built in state machine that can read memory with a specified interface directly, eliminating the need for an external micro or CPLD to operate the configuration interface. The requirements on the flash interface for the FPGA to do this will be spelled out in the documentation for the FPGA. (For Xilinx, there will be a document called the Configuration Guide, but Intel might have a different name for this document or combine it in a general Users Guide).







            share|improve this answer












            share|improve this answer



            share|improve this answer










            answered 5 hours ago









            The Photon

            82.5k396194




            82.5k396194












            • Yes, the question was meant for active configuration where the FPGA on its own, configures itself. I shall change the question.
              – quantum231
              5 hours ago










            • @quantum231 The last paragraph of this answer addresses this case.
              – DoxyLover
              3 hours ago


















            • Yes, the question was meant for active configuration where the FPGA on its own, configures itself. I shall change the question.
              – quantum231
              5 hours ago










            • @quantum231 The last paragraph of this answer addresses this case.
              – DoxyLover
              3 hours ago
















            Yes, the question was meant for active configuration where the FPGA on its own, configures itself. I shall change the question.
            – quantum231
            5 hours ago




            Yes, the question was meant for active configuration where the FPGA on its own, configures itself. I shall change the question.
            – quantum231
            5 hours ago












            @quantum231 The last paragraph of this answer addresses this case.
            – DoxyLover
            3 hours ago




            @quantum231 The last paragraph of this answer addresses this case.
            – DoxyLover
            3 hours ago












            up vote
            1
            down vote













            I recently experimented with exactly this stuff. My design uses EPCS16, and I upgraded it to W25Q128FV. It works, but you should know limitations:




            1. Command set must be compatible with EPCS devices. Actually EPCS16 appears to be manufactured by GigaDevice (manufacturer code 0xc8);

            2. "Stacked die" devices are claimed as not working for configuration. I can not comment on it as did not use such serial flash devices, but you must keep it in mind. If you decide to use such, further investigation will be needed;

            3. FPGA will not configure from non-EPCS device if you do not disable checking for silicon ID when making POF file using programming file converter in Quartus software;

            4. As far as I experienced, Quartus refuses to flash non-EPCS devices with its Quartus programmer in AS mode. I used versions 12 and 13, probably newer versions do allow this (I use BB II, thus forced to use older versions of Quartus software);

            5. Standard ASMI IP does not allow reading manufacturer ID and bits ID[15:8] from the flash device. Silicon ID and capacity ID are only available. Of course it is possible to modify ASMI module design;

            6. Last, but very important: reference circuit for EPCS requires some non-power pins - WP and HOLD - connecting to the Vcc. They confirmed it here. If you are going to replace chip with non-Altera one working in x1 mode, you must use 10K resistor pull-ups instead of connecting these pins to Vcc directly.






            share|improve this answer



























              up vote
              1
              down vote













              I recently experimented with exactly this stuff. My design uses EPCS16, and I upgraded it to W25Q128FV. It works, but you should know limitations:




              1. Command set must be compatible with EPCS devices. Actually EPCS16 appears to be manufactured by GigaDevice (manufacturer code 0xc8);

              2. "Stacked die" devices are claimed as not working for configuration. I can not comment on it as did not use such serial flash devices, but you must keep it in mind. If you decide to use such, further investigation will be needed;

              3. FPGA will not configure from non-EPCS device if you do not disable checking for silicon ID when making POF file using programming file converter in Quartus software;

              4. As far as I experienced, Quartus refuses to flash non-EPCS devices with its Quartus programmer in AS mode. I used versions 12 and 13, probably newer versions do allow this (I use BB II, thus forced to use older versions of Quartus software);

              5. Standard ASMI IP does not allow reading manufacturer ID and bits ID[15:8] from the flash device. Silicon ID and capacity ID are only available. Of course it is possible to modify ASMI module design;

              6. Last, but very important: reference circuit for EPCS requires some non-power pins - WP and HOLD - connecting to the Vcc. They confirmed it here. If you are going to replace chip with non-Altera one working in x1 mode, you must use 10K resistor pull-ups instead of connecting these pins to Vcc directly.






              share|improve this answer

























                up vote
                1
                down vote










                up vote
                1
                down vote









                I recently experimented with exactly this stuff. My design uses EPCS16, and I upgraded it to W25Q128FV. It works, but you should know limitations:




                1. Command set must be compatible with EPCS devices. Actually EPCS16 appears to be manufactured by GigaDevice (manufacturer code 0xc8);

                2. "Stacked die" devices are claimed as not working for configuration. I can not comment on it as did not use such serial flash devices, but you must keep it in mind. If you decide to use such, further investigation will be needed;

                3. FPGA will not configure from non-EPCS device if you do not disable checking for silicon ID when making POF file using programming file converter in Quartus software;

                4. As far as I experienced, Quartus refuses to flash non-EPCS devices with its Quartus programmer in AS mode. I used versions 12 and 13, probably newer versions do allow this (I use BB II, thus forced to use older versions of Quartus software);

                5. Standard ASMI IP does not allow reading manufacturer ID and bits ID[15:8] from the flash device. Silicon ID and capacity ID are only available. Of course it is possible to modify ASMI module design;

                6. Last, but very important: reference circuit for EPCS requires some non-power pins - WP and HOLD - connecting to the Vcc. They confirmed it here. If you are going to replace chip with non-Altera one working in x1 mode, you must use 10K resistor pull-ups instead of connecting these pins to Vcc directly.






                share|improve this answer














                I recently experimented with exactly this stuff. My design uses EPCS16, and I upgraded it to W25Q128FV. It works, but you should know limitations:




                1. Command set must be compatible with EPCS devices. Actually EPCS16 appears to be manufactured by GigaDevice (manufacturer code 0xc8);

                2. "Stacked die" devices are claimed as not working for configuration. I can not comment on it as did not use such serial flash devices, but you must keep it in mind. If you decide to use such, further investigation will be needed;

                3. FPGA will not configure from non-EPCS device if you do not disable checking for silicon ID when making POF file using programming file converter in Quartus software;

                4. As far as I experienced, Quartus refuses to flash non-EPCS devices with its Quartus programmer in AS mode. I used versions 12 and 13, probably newer versions do allow this (I use BB II, thus forced to use older versions of Quartus software);

                5. Standard ASMI IP does not allow reading manufacturer ID and bits ID[15:8] from the flash device. Silicon ID and capacity ID are only available. Of course it is possible to modify ASMI module design;

                6. Last, but very important: reference circuit for EPCS requires some non-power pins - WP and HOLD - connecting to the Vcc. They confirmed it here. If you are going to replace chip with non-Altera one working in x1 mode, you must use 10K resistor pull-ups instead of connecting these pins to Vcc directly.







                share|improve this answer














                share|improve this answer



                share|improve this answer








                edited 2 hours ago

























                answered 2 hours ago









                Anonymous

                5,0451729




                5,0451729






























                    draft saved

                    draft discarded




















































                    Thanks for contributing an answer to Electrical Engineering Stack Exchange!


                    • Please be sure to answer the question. Provide details and share your research!

                    But avoid



                    • Asking for help, clarification, or responding to other answers.

                    • Making statements based on opinion; back them up with references or personal experience.


                    Use MathJax to format equations. MathJax reference.


                    To learn more, see our tips on writing great answers.





                    Some of your past answers have not been well-received, and you're in danger of being blocked from answering.


                    Please pay close attention to the following guidance:


                    • Please be sure to answer the question. Provide details and share your research!

                    But avoid



                    • Asking for help, clarification, or responding to other answers.

                    • Making statements based on opinion; back them up with references or personal experience.


                    To learn more, see our tips on writing great answers.




                    draft saved


                    draft discarded














                    StackExchange.ready(
                    function () {
                    StackExchange.openid.initPostLogin('.new-post-login', 'https%3a%2f%2felectronics.stackexchange.com%2fquestions%2f412518%2faltera-has-created-epcs-and-epcq-devices-can-only-these-be-used-to-store-fpga-c%23new-answer', 'question_page');
                    }
                    );

                    Post as a guest















                    Required, but never shown





















































                    Required, but never shown














                    Required, but never shown












                    Required, but never shown







                    Required, but never shown

































                    Required, but never shown














                    Required, but never shown












                    Required, but never shown







                    Required, but never shown







                    Popular posts from this blog

                    Quarter-circle Tiles

                    build a pushdown automaton that recognizes the reverse language of a given pushdown automaton?

                    Mont Emei