&gt; FPGAs are inherently very regular in structure, so figuring out which bit goes where is pretty trivial.<p>That is ignoring all the complexity that makes modern FPGAs what they are. Three different variants of LUTs, on board block RAMs, Hard IP blocks, or even a whole ARM subsystem. Even your quoted article says that the reverse engineering was possible because &quot;There are not many different kinds of tiles or special function units&quot;.<p>The interfaces to all of these are complex and change regularly as they release new variants.<p>You might, with the right team, and after many many months of effort work out most of what you need to program one of the simpler Altera&#x2F;Xilinx devices. But they&#x27;re a moving target.<p>The best analogy I can think of is that every month ARM releases a processor with some changes to the instruction set. Tracking that with an open source compiler if you DID have documentation would be hard enough.