How to have an in-system check in an FPGA based system that it has been reset?
Important note: this is impossible to solve. As I mentioned in a comment: expecting internal state to be corrupted and adding more internal state to detect corruption invariably leads to a hornet's nest.

That being said, there's precedent to doing this: spaaaaace. Chips being sent into space require that any internal state can be corrupted in any way without it blocking the chip. Generally only single bit errors are required to be detected and repaired by ESA/NASA standards, but code will be written to detect as many of them as possible.

Solutions have to take into account two main corruptions:

One hot encoding for state machines with a safe state Encode all of your FSMs using a one hot encoding technique and start from a safe reset state that precedes your initial state. When you detect an impossible encoding, always revert to that reset state. Be aware that this does not mean you cannot use self-defined types for states in VHDL, proper use of when others =&gt; and your synthesis tools can do this for you.

Checksum your data Have an extra condition when writing data to the following system: the data you prepare to send checks out. If it doesn't, you reload. Since this checksum can be done on the fly in basically all modern FPGAs, you don't require extra state. CRC packages can be downloaded across the web (e.g. here)

These two solutions combined with a clean design catch all state that the system you describe should contain, if there's more, that's just bad design. Of course, power glitches won't even give you a guarantee that your bitstream survived on a MAX10.