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












1














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





























    1














    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



























      1












      1








      1







      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 Dec 16 at 17:33

























      asked Dec 16 at 17:18









      quantum231

      3,7291354110




      3,7291354110






















          2 Answers
          2






          active

          oldest

          votes


















          3














          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
            Dec 16 at 17:32










          • @quantum231 The last paragraph of this answer addresses this case.
            – DoxyLover
            Dec 16 at 19:32



















          2














          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























          • What exactly is it that makes other flash memories incompatible? As far as I am aware, flash memories requires commands to be sent to them to read/write data, data is stored in sectors, there are some special features like read manufacturer ID e.t.c. But really, what makes EPCS the only "fully supported" flash?
            – quantum231
            Dec 18 at 20:16






          • 1




            Business model. E.g. if you are manufacturer, you can certify specific devices for your appliances. These devices can be yours, or third party. Of course if you do not certify 3rd parties, all customers are locked to buy your devices. I think Altera/Intel started to relax this changing business model a little allowing using 3rd party flash chips. I would call their state of mind as "hesitant", but not completely against. Of course there could be technically incompatible devices - with different command set and protocol. Just compare to EPCS datasheet to get an understanding if device fits.
            – Anonymous
            Dec 18 at 21:16













          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',
          autoActivateHeartbeat: false,
          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









          3














          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
            Dec 16 at 17:32










          • @quantum231 The last paragraph of this answer addresses this case.
            – DoxyLover
            Dec 16 at 19:32
















          3














          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
            Dec 16 at 17:32










          • @quantum231 The last paragraph of this answer addresses this case.
            – DoxyLover
            Dec 16 at 19:32














          3












          3








          3






          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 Dec 16 at 17:24









          The Photon

          83k396194




          83k396194












          • Yes, the question was meant for active configuration where the FPGA on its own, configures itself. I shall change the question.
            – quantum231
            Dec 16 at 17:32










          • @quantum231 The last paragraph of this answer addresses this case.
            – DoxyLover
            Dec 16 at 19:32


















          • Yes, the question was meant for active configuration where the FPGA on its own, configures itself. I shall change the question.
            – quantum231
            Dec 16 at 17:32










          • @quantum231 The last paragraph of this answer addresses this case.
            – DoxyLover
            Dec 16 at 19:32
















          Yes, the question was meant for active configuration where the FPGA on its own, configures itself. I shall change the question.
          – quantum231
          Dec 16 at 17:32




          Yes, the question was meant for active configuration where the FPGA on its own, configures itself. I shall change the question.
          – quantum231
          Dec 16 at 17:32












          @quantum231 The last paragraph of this answer addresses this case.
          – DoxyLover
          Dec 16 at 19:32




          @quantum231 The last paragraph of this answer addresses this case.
          – DoxyLover
          Dec 16 at 19:32













          2














          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























          • What exactly is it that makes other flash memories incompatible? As far as I am aware, flash memories requires commands to be sent to them to read/write data, data is stored in sectors, there are some special features like read manufacturer ID e.t.c. But really, what makes EPCS the only "fully supported" flash?
            – quantum231
            Dec 18 at 20:16






          • 1




            Business model. E.g. if you are manufacturer, you can certify specific devices for your appliances. These devices can be yours, or third party. Of course if you do not certify 3rd parties, all customers are locked to buy your devices. I think Altera/Intel started to relax this changing business model a little allowing using 3rd party flash chips. I would call their state of mind as "hesitant", but not completely against. Of course there could be technically incompatible devices - with different command set and protocol. Just compare to EPCS datasheet to get an understanding if device fits.
            – Anonymous
            Dec 18 at 21:16


















          2














          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























          • What exactly is it that makes other flash memories incompatible? As far as I am aware, flash memories requires commands to be sent to them to read/write data, data is stored in sectors, there are some special features like read manufacturer ID e.t.c. But really, what makes EPCS the only "fully supported" flash?
            – quantum231
            Dec 18 at 20:16






          • 1




            Business model. E.g. if you are manufacturer, you can certify specific devices for your appliances. These devices can be yours, or third party. Of course if you do not certify 3rd parties, all customers are locked to buy your devices. I think Altera/Intel started to relax this changing business model a little allowing using 3rd party flash chips. I would call their state of mind as "hesitant", but not completely against. Of course there could be technically incompatible devices - with different command set and protocol. Just compare to EPCS datasheet to get an understanding if device fits.
            – Anonymous
            Dec 18 at 21:16
















          2












          2








          2






          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 Dec 16 at 20:35

























          answered Dec 16 at 20:27









          Anonymous

          5,0701729




          5,0701729












          • What exactly is it that makes other flash memories incompatible? As far as I am aware, flash memories requires commands to be sent to them to read/write data, data is stored in sectors, there are some special features like read manufacturer ID e.t.c. But really, what makes EPCS the only "fully supported" flash?
            – quantum231
            Dec 18 at 20:16






          • 1




            Business model. E.g. if you are manufacturer, you can certify specific devices for your appliances. These devices can be yours, or third party. Of course if you do not certify 3rd parties, all customers are locked to buy your devices. I think Altera/Intel started to relax this changing business model a little allowing using 3rd party flash chips. I would call their state of mind as "hesitant", but not completely against. Of course there could be technically incompatible devices - with different command set and protocol. Just compare to EPCS datasheet to get an understanding if device fits.
            – Anonymous
            Dec 18 at 21:16




















          • What exactly is it that makes other flash memories incompatible? As far as I am aware, flash memories requires commands to be sent to them to read/write data, data is stored in sectors, there are some special features like read manufacturer ID e.t.c. But really, what makes EPCS the only "fully supported" flash?
            – quantum231
            Dec 18 at 20:16






          • 1




            Business model. E.g. if you are manufacturer, you can certify specific devices for your appliances. These devices can be yours, or third party. Of course if you do not certify 3rd parties, all customers are locked to buy your devices. I think Altera/Intel started to relax this changing business model a little allowing using 3rd party flash chips. I would call their state of mind as "hesitant", but not completely against. Of course there could be technically incompatible devices - with different command set and protocol. Just compare to EPCS datasheet to get an understanding if device fits.
            – Anonymous
            Dec 18 at 21:16


















          What exactly is it that makes other flash memories incompatible? As far as I am aware, flash memories requires commands to be sent to them to read/write data, data is stored in sectors, there are some special features like read manufacturer ID e.t.c. But really, what makes EPCS the only "fully supported" flash?
          – quantum231
          Dec 18 at 20:16




          What exactly is it that makes other flash memories incompatible? As far as I am aware, flash memories requires commands to be sent to them to read/write data, data is stored in sectors, there are some special features like read manufacturer ID e.t.c. But really, what makes EPCS the only "fully supported" flash?
          – quantum231
          Dec 18 at 20:16




          1




          1




          Business model. E.g. if you are manufacturer, you can certify specific devices for your appliances. These devices can be yours, or third party. Of course if you do not certify 3rd parties, all customers are locked to buy your devices. I think Altera/Intel started to relax this changing business model a little allowing using 3rd party flash chips. I would call their state of mind as "hesitant", but not completely against. Of course there could be technically incompatible devices - with different command set and protocol. Just compare to EPCS datasheet to get an understanding if device fits.
          – Anonymous
          Dec 18 at 21:16






          Business model. E.g. if you are manufacturer, you can certify specific devices for your appliances. These devices can be yours, or third party. Of course if you do not certify 3rd parties, all customers are locked to buy your devices. I think Altera/Intel started to relax this changing business model a little allowing using 3rd party flash chips. I would call their state of mind as "hesitant", but not completely against. Of course there could be technically incompatible devices - with different command set and protocol. Just compare to EPCS datasheet to get an understanding if device fits.
          – Anonymous
          Dec 18 at 21:16




















          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

          Probability when a professor distributes a quiz and homework assignment to a class of n students.

          Aardman Animations

          Are they similar matrix