Can you actually break an FPGA by programming it wrong?Protecting fpga / ram against mistakesHow is ASIC design different from FPGA HDL synthesis?Open Source verilog synthesizerTransferring data from FPGA to PC (new to FPGAs)FPGA - Data transfer via EthernetFPGA input pin internal floatingUse ancient Altera MAX II board in modern environmentConfigure (upload bitstream) to MAX10 without Altera tools using LinuxAre there CPLD / FPGA toolchains and workflows that bypass vendor IDEs?Systemverilog code reuse, minimizing reuse error, and FPGA internal resource optimization

Could human civilization live 150 years in a nuclear-powered aircraft carrier colony without resorting to mass killing/ cannibalism?

Chords behaving as a melody

Could the Q destroy the universe?

One folder having two different locations on Ubuntu 18.04

Why do changes to /etc/hosts take effect immediately?

Find first and last non-zero column in each row of a pandas dataframe

Can Aziraphale and Crowley actually become native?

Losing queen and then winning the game

Why were the first airplanes "backwards"?

How did researchers find articles before the Internet and the computer era?

How can a valley surrounded by mountains be fertile and rainy?

Do the 26 richest billionaires own as much wealth as the poorest 3.8 billion people?

Should fiction mention song names and iPods?

If two black hole event horizons overlap (touch) can they ever separate again?

Step into the Octagram

Can a function nowhere continuous have a connected graph?

What does grep -v "grep" mean and do?

Can two or more lightbeams (from a laser for example) have visible interference when they cross in mid-air*?

Details of video memory access arbitration in Space Invaders

Why do I need two parameters in an HTTP parameter pollution attack?

Why would anyone even use a Portkey?

Is there a canon reason why Klingon and Romulan vessels are so similar in shape?

I'm reinstalling my Linux desktop, how do I keep SSH logins working?

Integral from infinity to infinity



Can you actually break an FPGA by programming it wrong?


Protecting fpga / ram against mistakesHow is ASIC design different from FPGA HDL synthesis?Open Source verilog synthesizerTransferring data from FPGA to PC (new to FPGAs)FPGA - Data transfer via EthernetFPGA input pin internal floatingUse ancient Altera MAX II board in modern environmentConfigure (upload bitstream) to MAX10 without Altera tools using LinuxAre there CPLD / FPGA toolchains and workflows that bypass vendor IDEs?Systemverilog code reuse, minimizing reuse error, and FPGA internal resource optimization






.everyoneloves__top-leaderboard:empty,.everyoneloves__mid-leaderboard:empty,.everyoneloves__bot-mid-leaderboard:empty margin-bottom:0;








7












$begingroup$


Can you actually break an FPGA by programming it incorrectly?



I'm a software guy really. It's no secret that if your software is wrong, you could destroy all sorts of important data, and perhaps even crash the whole machine. But it's really difficult to physically damage a computer just by programming it.



(There are endless rumous of a Halt-And-Catch-Fire instruction, or being able to reflash the system firmware to brick the motherboard, or programming incorrect values into the graphics card to fry your monitor. But these all seem to be exactly that: rumours. And all about long-obsolete hardware. It seems really, really hard to break modern computer equipment with bad programming.)



With an FPGA, you are (at least nominally) wiring individual circuits together. It seems completely plausible that physical damage might occur in case of a mistake.



For example, you could write some VHDL requesting that two outputs get tied together. If they output different logic levels, I imagine that would probably fry something. (I would hope that your synthesis tool would scream at you to not do this... but I don't know if such tools actually implement that level of error checking.)



It also seems quite possible to accidentally pick the wrong model of FPGA in the synthesis tool, and thus ending up trying to program your chip with a bitstream intended for some totally different model. I don't know what that would do, but I suspect it would be "bad".



For that matter, you could definitely connect the FPGA chip to the rest of the circuit incorrectly. E.g., if you mess up the pin numbers, you might end up with the board trying to drive an I/O pin that the FPGA itself is also trying to drive. Do the I/O pins typically have any "protection" against such a mistake? Or will the chip just fry?










share|improve this question









$endgroup$


















    7












    $begingroup$


    Can you actually break an FPGA by programming it incorrectly?



    I'm a software guy really. It's no secret that if your software is wrong, you could destroy all sorts of important data, and perhaps even crash the whole machine. But it's really difficult to physically damage a computer just by programming it.



    (There are endless rumous of a Halt-And-Catch-Fire instruction, or being able to reflash the system firmware to brick the motherboard, or programming incorrect values into the graphics card to fry your monitor. But these all seem to be exactly that: rumours. And all about long-obsolete hardware. It seems really, really hard to break modern computer equipment with bad programming.)



    With an FPGA, you are (at least nominally) wiring individual circuits together. It seems completely plausible that physical damage might occur in case of a mistake.



    For example, you could write some VHDL requesting that two outputs get tied together. If they output different logic levels, I imagine that would probably fry something. (I would hope that your synthesis tool would scream at you to not do this... but I don't know if such tools actually implement that level of error checking.)



    It also seems quite possible to accidentally pick the wrong model of FPGA in the synthesis tool, and thus ending up trying to program your chip with a bitstream intended for some totally different model. I don't know what that would do, but I suspect it would be "bad".



    For that matter, you could definitely connect the FPGA chip to the rest of the circuit incorrectly. E.g., if you mess up the pin numbers, you might end up with the board trying to drive an I/O pin that the FPGA itself is also trying to drive. Do the I/O pins typically have any "protection" against such a mistake? Or will the chip just fry?










    share|improve this question









    $endgroup$














      7












      7








      7





      $begingroup$


      Can you actually break an FPGA by programming it incorrectly?



      I'm a software guy really. It's no secret that if your software is wrong, you could destroy all sorts of important data, and perhaps even crash the whole machine. But it's really difficult to physically damage a computer just by programming it.



      (There are endless rumous of a Halt-And-Catch-Fire instruction, or being able to reflash the system firmware to brick the motherboard, or programming incorrect values into the graphics card to fry your monitor. But these all seem to be exactly that: rumours. And all about long-obsolete hardware. It seems really, really hard to break modern computer equipment with bad programming.)



      With an FPGA, you are (at least nominally) wiring individual circuits together. It seems completely plausible that physical damage might occur in case of a mistake.



      For example, you could write some VHDL requesting that two outputs get tied together. If they output different logic levels, I imagine that would probably fry something. (I would hope that your synthesis tool would scream at you to not do this... but I don't know if such tools actually implement that level of error checking.)



      It also seems quite possible to accidentally pick the wrong model of FPGA in the synthesis tool, and thus ending up trying to program your chip with a bitstream intended for some totally different model. I don't know what that would do, but I suspect it would be "bad".



      For that matter, you could definitely connect the FPGA chip to the rest of the circuit incorrectly. E.g., if you mess up the pin numbers, you might end up with the board trying to drive an I/O pin that the FPGA itself is also trying to drive. Do the I/O pins typically have any "protection" against such a mistake? Or will the chip just fry?










      share|improve this question









      $endgroup$




      Can you actually break an FPGA by programming it incorrectly?



      I'm a software guy really. It's no secret that if your software is wrong, you could destroy all sorts of important data, and perhaps even crash the whole machine. But it's really difficult to physically damage a computer just by programming it.



      (There are endless rumous of a Halt-And-Catch-Fire instruction, or being able to reflash the system firmware to brick the motherboard, or programming incorrect values into the graphics card to fry your monitor. But these all seem to be exactly that: rumours. And all about long-obsolete hardware. It seems really, really hard to break modern computer equipment with bad programming.)



      With an FPGA, you are (at least nominally) wiring individual circuits together. It seems completely plausible that physical damage might occur in case of a mistake.



      For example, you could write some VHDL requesting that two outputs get tied together. If they output different logic levels, I imagine that would probably fry something. (I would hope that your synthesis tool would scream at you to not do this... but I don't know if such tools actually implement that level of error checking.)



      It also seems quite possible to accidentally pick the wrong model of FPGA in the synthesis tool, and thus ending up trying to program your chip with a bitstream intended for some totally different model. I don't know what that would do, but I suspect it would be "bad".



      For that matter, you could definitely connect the FPGA chip to the rest of the circuit incorrectly. E.g., if you mess up the pin numbers, you might end up with the board trying to drive an I/O pin that the FPGA itself is also trying to drive. Do the I/O pins typically have any "protection" against such a mistake? Or will the chip just fry?







      fpga






      share|improve this question













      share|improve this question











      share|improve this question




      share|improve this question










      asked 8 hours ago









      MathematicalOrchidMathematicalOrchid

      6991 gold badge7 silver badges13 bronze badges




      6991 gold badge7 silver badges13 bronze badges




















          3 Answers
          3






          active

          oldest

          votes


















          9












          $begingroup$


          It also seems quite possible to accidentally pick the wrong model of FPGA in the synthesis tool, and thus ending up trying to program your chip with a bitstream intended for some totally different model.




          Typically the programming software will query the part being programmed for its part number, and refuse to program in a bitstream meant for a different model of FPGA.



          The part itself will also generally refuse to start up if programmed with a bitstream that isn't exactly the correct length (and it's very uncommon for bitstreams for different chips to be the same length).




          you could definitely connect the FPGA chip to the rest of the circuit incorrectly. E.g., if you mess up the pin numbers, you might end up with the board trying to drive an I/O pin that the FPGA itself is also trying to drive.




          This is the most likely way to damage an FPGA with wrong programming.



          Another way could be to program a very resource intensive design and run it at a high frequency (so that a high power is consumed), and then run it on an FPGA without an adequate heat sink.




          Do the I/O pins typically have any "protection" against such a mistake? Or will the chip just fry?




          Output pins will "often" survive a short circuit condition for a few seconds or even minutes. But nothing is guaranteed.






          share|improve this answer











          $endgroup$












          • $begingroup$
            Interesting. Is it usual for FPGAs to need active cooling? Oh, I suppose that's an entire question in its own right. (And I guess the answer depends on many things — such as whether you bought a £15 or a £15,000 FPGA!)
            $endgroup$
            – MathematicalOrchid
            7 hours ago






          • 1




            $begingroup$
            @MathematicalOrchid, Not necessarily active cooling, but heatsinks and forced air are pretty common. The FPGA vendors usually provide a very complex spreadsheet to help determine (based on the part, the design, the clock frequency, etc) how big a heat sink and how big a fan are needed.
            $endgroup$
            – The Photon
            7 hours ago


















          6












          $begingroup$

          With a few noted exceptions, tools don't generally give you access to the actual silicon primitives, so it's hard for an end-user engineer to load an electrically invalid design* into an SRAM-based FPGA, except perhaps by inadvertently discovering a tool bug.



          Flash based FPGAs might conceivably have their re-programmability damaged by certain invalid loads. OTP FPGAs implicitly are "damaged" by even a valid configuration load, as it can never be changed.



          Ultimately what comes closest to what you are seeming to ask, and to your HCF example, would be a configuration which produced intolerable thermal stress. Power consumption is quite directly driven by clock rate and volume * activity of utilized logic, so if you can trick the tools into uselessly toggling most of the flip flops on the chip at maximum clock (there are ways...) then you can produce a pretty effective heater that would exceed most cooling systems for ordinary usage. Then it's just a question if something protectively shuts it down before it cooks. And of course there are power estimation models in the tools, which are likely reasonably predictive if you're not lying to them about the clock signal provided.



          (* There is one interesting class of not-a-bug electrical issue you can cause by lying to the tools, that is not necessarily physically destructive, but still surprising. If you feed a clock different than you said you would or simply unstable, you can violate address setup timing on the synchronous block RAM cells, and do something along the lines of shorting them and corrupting their contents - so you can for example see the contents of something designated a ROM in the design actually change at runtime just by trying to read it with a bad clock. But I don't believe this is physically destructive)






          share|improve this answer









          $endgroup$




















            2












            $begingroup$

            The most likely thing is violating the current rating on GPIO's by driving a pin that is already being driven. Some FPGA's have settable current limits or changeable output drivers, so this can either help/hurt you if you don't get your port map done right. You should be double checking your port list anyway before programming as mistakes like swapping pins can take hours to resolve, it's best to get ahead of the mistakes and know exactly what the firmware was intended to do. (unless you like the thrill of finding an error)



            HDL's by themselves usually don't let you connect two output's to the same wire and will stop synthesizing and make you fix your mistake if you do have code that does that.



            One place that could cause problems is bi-directional ports, but you should have current limiting resistors on those.






            share|improve this answer









            $endgroup$















              Your Answer






              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%2f445323%2fcan-you-actually-break-an-fpga-by-programming-it-wrong%23new-answer', 'question_page');

              );

              Post as a guest















              Required, but never shown

























              3 Answers
              3






              active

              oldest

              votes








              3 Answers
              3






              active

              oldest

              votes









              active

              oldest

              votes






              active

              oldest

              votes









              9












              $begingroup$


              It also seems quite possible to accidentally pick the wrong model of FPGA in the synthesis tool, and thus ending up trying to program your chip with a bitstream intended for some totally different model.




              Typically the programming software will query the part being programmed for its part number, and refuse to program in a bitstream meant for a different model of FPGA.



              The part itself will also generally refuse to start up if programmed with a bitstream that isn't exactly the correct length (and it's very uncommon for bitstreams for different chips to be the same length).




              you could definitely connect the FPGA chip to the rest of the circuit incorrectly. E.g., if you mess up the pin numbers, you might end up with the board trying to drive an I/O pin that the FPGA itself is also trying to drive.




              This is the most likely way to damage an FPGA with wrong programming.



              Another way could be to program a very resource intensive design and run it at a high frequency (so that a high power is consumed), and then run it on an FPGA without an adequate heat sink.




              Do the I/O pins typically have any "protection" against such a mistake? Or will the chip just fry?




              Output pins will "often" survive a short circuit condition for a few seconds or even minutes. But nothing is guaranteed.






              share|improve this answer











              $endgroup$












              • $begingroup$
                Interesting. Is it usual for FPGAs to need active cooling? Oh, I suppose that's an entire question in its own right. (And I guess the answer depends on many things — such as whether you bought a £15 or a £15,000 FPGA!)
                $endgroup$
                – MathematicalOrchid
                7 hours ago






              • 1




                $begingroup$
                @MathematicalOrchid, Not necessarily active cooling, but heatsinks and forced air are pretty common. The FPGA vendors usually provide a very complex spreadsheet to help determine (based on the part, the design, the clock frequency, etc) how big a heat sink and how big a fan are needed.
                $endgroup$
                – The Photon
                7 hours ago















              9












              $begingroup$


              It also seems quite possible to accidentally pick the wrong model of FPGA in the synthesis tool, and thus ending up trying to program your chip with a bitstream intended for some totally different model.




              Typically the programming software will query the part being programmed for its part number, and refuse to program in a bitstream meant for a different model of FPGA.



              The part itself will also generally refuse to start up if programmed with a bitstream that isn't exactly the correct length (and it's very uncommon for bitstreams for different chips to be the same length).




              you could definitely connect the FPGA chip to the rest of the circuit incorrectly. E.g., if you mess up the pin numbers, you might end up with the board trying to drive an I/O pin that the FPGA itself is also trying to drive.




              This is the most likely way to damage an FPGA with wrong programming.



              Another way could be to program a very resource intensive design and run it at a high frequency (so that a high power is consumed), and then run it on an FPGA without an adequate heat sink.




              Do the I/O pins typically have any "protection" against such a mistake? Or will the chip just fry?




              Output pins will "often" survive a short circuit condition for a few seconds or even minutes. But nothing is guaranteed.






              share|improve this answer











              $endgroup$












              • $begingroup$
                Interesting. Is it usual for FPGAs to need active cooling? Oh, I suppose that's an entire question in its own right. (And I guess the answer depends on many things — such as whether you bought a £15 or a £15,000 FPGA!)
                $endgroup$
                – MathematicalOrchid
                7 hours ago






              • 1




                $begingroup$
                @MathematicalOrchid, Not necessarily active cooling, but heatsinks and forced air are pretty common. The FPGA vendors usually provide a very complex spreadsheet to help determine (based on the part, the design, the clock frequency, etc) how big a heat sink and how big a fan are needed.
                $endgroup$
                – The Photon
                7 hours ago













              9












              9








              9





              $begingroup$


              It also seems quite possible to accidentally pick the wrong model of FPGA in the synthesis tool, and thus ending up trying to program your chip with a bitstream intended for some totally different model.




              Typically the programming software will query the part being programmed for its part number, and refuse to program in a bitstream meant for a different model of FPGA.



              The part itself will also generally refuse to start up if programmed with a bitstream that isn't exactly the correct length (and it's very uncommon for bitstreams for different chips to be the same length).




              you could definitely connect the FPGA chip to the rest of the circuit incorrectly. E.g., if you mess up the pin numbers, you might end up with the board trying to drive an I/O pin that the FPGA itself is also trying to drive.




              This is the most likely way to damage an FPGA with wrong programming.



              Another way could be to program a very resource intensive design and run it at a high frequency (so that a high power is consumed), and then run it on an FPGA without an adequate heat sink.




              Do the I/O pins typically have any "protection" against such a mistake? Or will the chip just fry?




              Output pins will "often" survive a short circuit condition for a few seconds or even minutes. But nothing is guaranteed.






              share|improve this answer











              $endgroup$




              It also seems quite possible to accidentally pick the wrong model of FPGA in the synthesis tool, and thus ending up trying to program your chip with a bitstream intended for some totally different model.




              Typically the programming software will query the part being programmed for its part number, and refuse to program in a bitstream meant for a different model of FPGA.



              The part itself will also generally refuse to start up if programmed with a bitstream that isn't exactly the correct length (and it's very uncommon for bitstreams for different chips to be the same length).




              you could definitely connect the FPGA chip to the rest of the circuit incorrectly. E.g., if you mess up the pin numbers, you might end up with the board trying to drive an I/O pin that the FPGA itself is also trying to drive.




              This is the most likely way to damage an FPGA with wrong programming.



              Another way could be to program a very resource intensive design and run it at a high frequency (so that a high power is consumed), and then run it on an FPGA without an adequate heat sink.




              Do the I/O pins typically have any "protection" against such a mistake? Or will the chip just fry?




              Output pins will "often" survive a short circuit condition for a few seconds or even minutes. But nothing is guaranteed.







              share|improve this answer














              share|improve this answer



              share|improve this answer








              edited 8 hours ago

























              answered 8 hours ago









              The PhotonThe Photon

              90.3k3 gold badges105 silver badges210 bronze badges




              90.3k3 gold badges105 silver badges210 bronze badges











              • $begingroup$
                Interesting. Is it usual for FPGAs to need active cooling? Oh, I suppose that's an entire question in its own right. (And I guess the answer depends on many things — such as whether you bought a £15 or a £15,000 FPGA!)
                $endgroup$
                – MathematicalOrchid
                7 hours ago






              • 1




                $begingroup$
                @MathematicalOrchid, Not necessarily active cooling, but heatsinks and forced air are pretty common. The FPGA vendors usually provide a very complex spreadsheet to help determine (based on the part, the design, the clock frequency, etc) how big a heat sink and how big a fan are needed.
                $endgroup$
                – The Photon
                7 hours ago
















              • $begingroup$
                Interesting. Is it usual for FPGAs to need active cooling? Oh, I suppose that's an entire question in its own right. (And I guess the answer depends on many things — such as whether you bought a £15 or a £15,000 FPGA!)
                $endgroup$
                – MathematicalOrchid
                7 hours ago






              • 1




                $begingroup$
                @MathematicalOrchid, Not necessarily active cooling, but heatsinks and forced air are pretty common. The FPGA vendors usually provide a very complex spreadsheet to help determine (based on the part, the design, the clock frequency, etc) how big a heat sink and how big a fan are needed.
                $endgroup$
                – The Photon
                7 hours ago















              $begingroup$
              Interesting. Is it usual for FPGAs to need active cooling? Oh, I suppose that's an entire question in its own right. (And I guess the answer depends on many things — such as whether you bought a £15 or a £15,000 FPGA!)
              $endgroup$
              – MathematicalOrchid
              7 hours ago




              $begingroup$
              Interesting. Is it usual for FPGAs to need active cooling? Oh, I suppose that's an entire question in its own right. (And I guess the answer depends on many things — such as whether you bought a £15 or a £15,000 FPGA!)
              $endgroup$
              – MathematicalOrchid
              7 hours ago




              1




              1




              $begingroup$
              @MathematicalOrchid, Not necessarily active cooling, but heatsinks and forced air are pretty common. The FPGA vendors usually provide a very complex spreadsheet to help determine (based on the part, the design, the clock frequency, etc) how big a heat sink and how big a fan are needed.
              $endgroup$
              – The Photon
              7 hours ago




              $begingroup$
              @MathematicalOrchid, Not necessarily active cooling, but heatsinks and forced air are pretty common. The FPGA vendors usually provide a very complex spreadsheet to help determine (based on the part, the design, the clock frequency, etc) how big a heat sink and how big a fan are needed.
              $endgroup$
              – The Photon
              7 hours ago













              6












              $begingroup$

              With a few noted exceptions, tools don't generally give you access to the actual silicon primitives, so it's hard for an end-user engineer to load an electrically invalid design* into an SRAM-based FPGA, except perhaps by inadvertently discovering a tool bug.



              Flash based FPGAs might conceivably have their re-programmability damaged by certain invalid loads. OTP FPGAs implicitly are "damaged" by even a valid configuration load, as it can never be changed.



              Ultimately what comes closest to what you are seeming to ask, and to your HCF example, would be a configuration which produced intolerable thermal stress. Power consumption is quite directly driven by clock rate and volume * activity of utilized logic, so if you can trick the tools into uselessly toggling most of the flip flops on the chip at maximum clock (there are ways...) then you can produce a pretty effective heater that would exceed most cooling systems for ordinary usage. Then it's just a question if something protectively shuts it down before it cooks. And of course there are power estimation models in the tools, which are likely reasonably predictive if you're not lying to them about the clock signal provided.



              (* There is one interesting class of not-a-bug electrical issue you can cause by lying to the tools, that is not necessarily physically destructive, but still surprising. If you feed a clock different than you said you would or simply unstable, you can violate address setup timing on the synchronous block RAM cells, and do something along the lines of shorting them and corrupting their contents - so you can for example see the contents of something designated a ROM in the design actually change at runtime just by trying to read it with a bad clock. But I don't believe this is physically destructive)






              share|improve this answer









              $endgroup$

















                6












                $begingroup$

                With a few noted exceptions, tools don't generally give you access to the actual silicon primitives, so it's hard for an end-user engineer to load an electrically invalid design* into an SRAM-based FPGA, except perhaps by inadvertently discovering a tool bug.



                Flash based FPGAs might conceivably have their re-programmability damaged by certain invalid loads. OTP FPGAs implicitly are "damaged" by even a valid configuration load, as it can never be changed.



                Ultimately what comes closest to what you are seeming to ask, and to your HCF example, would be a configuration which produced intolerable thermal stress. Power consumption is quite directly driven by clock rate and volume * activity of utilized logic, so if you can trick the tools into uselessly toggling most of the flip flops on the chip at maximum clock (there are ways...) then you can produce a pretty effective heater that would exceed most cooling systems for ordinary usage. Then it's just a question if something protectively shuts it down before it cooks. And of course there are power estimation models in the tools, which are likely reasonably predictive if you're not lying to them about the clock signal provided.



                (* There is one interesting class of not-a-bug electrical issue you can cause by lying to the tools, that is not necessarily physically destructive, but still surprising. If you feed a clock different than you said you would or simply unstable, you can violate address setup timing on the synchronous block RAM cells, and do something along the lines of shorting them and corrupting their contents - so you can for example see the contents of something designated a ROM in the design actually change at runtime just by trying to read it with a bad clock. But I don't believe this is physically destructive)






                share|improve this answer









                $endgroup$















                  6












                  6








                  6





                  $begingroup$

                  With a few noted exceptions, tools don't generally give you access to the actual silicon primitives, so it's hard for an end-user engineer to load an electrically invalid design* into an SRAM-based FPGA, except perhaps by inadvertently discovering a tool bug.



                  Flash based FPGAs might conceivably have their re-programmability damaged by certain invalid loads. OTP FPGAs implicitly are "damaged" by even a valid configuration load, as it can never be changed.



                  Ultimately what comes closest to what you are seeming to ask, and to your HCF example, would be a configuration which produced intolerable thermal stress. Power consumption is quite directly driven by clock rate and volume * activity of utilized logic, so if you can trick the tools into uselessly toggling most of the flip flops on the chip at maximum clock (there are ways...) then you can produce a pretty effective heater that would exceed most cooling systems for ordinary usage. Then it's just a question if something protectively shuts it down before it cooks. And of course there are power estimation models in the tools, which are likely reasonably predictive if you're not lying to them about the clock signal provided.



                  (* There is one interesting class of not-a-bug electrical issue you can cause by lying to the tools, that is not necessarily physically destructive, but still surprising. If you feed a clock different than you said you would or simply unstable, you can violate address setup timing on the synchronous block RAM cells, and do something along the lines of shorting them and corrupting their contents - so you can for example see the contents of something designated a ROM in the design actually change at runtime just by trying to read it with a bad clock. But I don't believe this is physically destructive)






                  share|improve this answer









                  $endgroup$



                  With a few noted exceptions, tools don't generally give you access to the actual silicon primitives, so it's hard for an end-user engineer to load an electrically invalid design* into an SRAM-based FPGA, except perhaps by inadvertently discovering a tool bug.



                  Flash based FPGAs might conceivably have their re-programmability damaged by certain invalid loads. OTP FPGAs implicitly are "damaged" by even a valid configuration load, as it can never be changed.



                  Ultimately what comes closest to what you are seeming to ask, and to your HCF example, would be a configuration which produced intolerable thermal stress. Power consumption is quite directly driven by clock rate and volume * activity of utilized logic, so if you can trick the tools into uselessly toggling most of the flip flops on the chip at maximum clock (there are ways...) then you can produce a pretty effective heater that would exceed most cooling systems for ordinary usage. Then it's just a question if something protectively shuts it down before it cooks. And of course there are power estimation models in the tools, which are likely reasonably predictive if you're not lying to them about the clock signal provided.



                  (* There is one interesting class of not-a-bug electrical issue you can cause by lying to the tools, that is not necessarily physically destructive, but still surprising. If you feed a clock different than you said you would or simply unstable, you can violate address setup timing on the synchronous block RAM cells, and do something along the lines of shorting them and corrupting their contents - so you can for example see the contents of something designated a ROM in the design actually change at runtime just by trying to read it with a bad clock. But I don't believe this is physically destructive)







                  share|improve this answer












                  share|improve this answer



                  share|improve this answer










                  answered 8 hours ago









                  Chris StrattonChris Stratton

                  24.4k2 gold badges30 silver badges68 bronze badges




                  24.4k2 gold badges30 silver badges68 bronze badges





















                      2












                      $begingroup$

                      The most likely thing is violating the current rating on GPIO's by driving a pin that is already being driven. Some FPGA's have settable current limits or changeable output drivers, so this can either help/hurt you if you don't get your port map done right. You should be double checking your port list anyway before programming as mistakes like swapping pins can take hours to resolve, it's best to get ahead of the mistakes and know exactly what the firmware was intended to do. (unless you like the thrill of finding an error)



                      HDL's by themselves usually don't let you connect two output's to the same wire and will stop synthesizing and make you fix your mistake if you do have code that does that.



                      One place that could cause problems is bi-directional ports, but you should have current limiting resistors on those.






                      share|improve this answer









                      $endgroup$

















                        2












                        $begingroup$

                        The most likely thing is violating the current rating on GPIO's by driving a pin that is already being driven. Some FPGA's have settable current limits or changeable output drivers, so this can either help/hurt you if you don't get your port map done right. You should be double checking your port list anyway before programming as mistakes like swapping pins can take hours to resolve, it's best to get ahead of the mistakes and know exactly what the firmware was intended to do. (unless you like the thrill of finding an error)



                        HDL's by themselves usually don't let you connect two output's to the same wire and will stop synthesizing and make you fix your mistake if you do have code that does that.



                        One place that could cause problems is bi-directional ports, but you should have current limiting resistors on those.






                        share|improve this answer









                        $endgroup$















                          2












                          2








                          2





                          $begingroup$

                          The most likely thing is violating the current rating on GPIO's by driving a pin that is already being driven. Some FPGA's have settable current limits or changeable output drivers, so this can either help/hurt you if you don't get your port map done right. You should be double checking your port list anyway before programming as mistakes like swapping pins can take hours to resolve, it's best to get ahead of the mistakes and know exactly what the firmware was intended to do. (unless you like the thrill of finding an error)



                          HDL's by themselves usually don't let you connect two output's to the same wire and will stop synthesizing and make you fix your mistake if you do have code that does that.



                          One place that could cause problems is bi-directional ports, but you should have current limiting resistors on those.






                          share|improve this answer









                          $endgroup$



                          The most likely thing is violating the current rating on GPIO's by driving a pin that is already being driven. Some FPGA's have settable current limits or changeable output drivers, so this can either help/hurt you if you don't get your port map done right. You should be double checking your port list anyway before programming as mistakes like swapping pins can take hours to resolve, it's best to get ahead of the mistakes and know exactly what the firmware was intended to do. (unless you like the thrill of finding an error)



                          HDL's by themselves usually don't let you connect two output's to the same wire and will stop synthesizing and make you fix your mistake if you do have code that does that.



                          One place that could cause problems is bi-directional ports, but you should have current limiting resistors on those.







                          share|improve this answer












                          share|improve this answer



                          share|improve this answer










                          answered 8 hours ago









                          laptop2dlaptop2d

                          32.9k12 gold badges39 silver badges99 bronze badges




                          32.9k12 gold badges39 silver badges99 bronze badges



























                              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.




                              draft saved


                              draft discarded














                              StackExchange.ready(
                              function ()
                              StackExchange.openid.initPostLogin('.new-post-login', 'https%3a%2f%2felectronics.stackexchange.com%2fquestions%2f445323%2fcan-you-actually-break-an-fpga-by-programming-it-wrong%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

                              Invision Community Contents History See also References External links Navigation menuProprietaryinvisioncommunity.comIPS Community ForumsIPS Community Forumsthis blog entry"License Changes, IP.Board 3.4, and the Future""Interview -- Matt Mecham of Ibforums""CEO Invision Power Board, Matt Mecham Is a Liar, Thief!"IPB License Explanation 1.3, 1.3.1, 2.0, and 2.1ArchivedSecurity Fixes, Updates And Enhancements For IPB 1.3.1Archived"New Demo Accounts - Invision Power Services"the original"New Default Skin"the original"Invision Power Board 3.0.0 and Applications Released"the original"Archived copy"the original"Perpetual licenses being done away with""Release Notes - Invision Power Services""Introducing: IPS Community Suite 4!"Invision Community Release Notes

                              Canceling a color specificationRandomly assigning color to Graphics3D objects?Default color for Filling in Mathematica 9Coloring specific elements of sets with a prime modified order in an array plotHow to pick a color differing significantly from the colors already in a given color list?Detection of the text colorColor numbers based on their valueCan color schemes for use with ColorData include opacity specification?My dynamic color schemes

                              Ласкавець круглолистий Зміст Опис | Поширення | Галерея | Примітки | Посилання | Навігаційне меню58171138361-22960890446Bupleurum rotundifoliumEuro+Med PlantbasePlants of the World Online — Kew ScienceGermplasm Resources Information Network (GRIN)Ласкавецькн. VI : Літери Ком — Левиправивши або дописавши її