Proof-of-Work was implemented in VHDL between 26th April '18 and 26th Aug '18 and became the PiDiver: https://github.com/shufps/iota_vhdl_pow (Source: https://gitlab.com/iccfpga/iccfpga-core/wikis/home)
Micro-controllers and PoW are not the best combination, one solution to it is Azimuth
I'll try to answer.
1) The "M-bug" is effectively the normalized bundle-hash containing the character M.
More information about it here:
Why is the normalized hash considered insecure when containing the char 'M'
2) Proof-of-Work was implemented in VHDL between 26th April '18 and 26th Aug '18 and became the PiDiver: https://github.com/shufps/...
The Crypto Core is a FPGA system which consists of Cortex M1 soft-cpu and specialized logic for accelerating algorithms like hashing (and also PoW) or type-conversions.
So, it's both - microcontroller in an FPGA and it can do PoW very fast :)
1) In mid 2017 the M-Bug was found and the work-around for it is (inoficially) called "Mini-PoW". It could happen that a Bundle-Hash contained "M" which exposed a private key (and all following keys) directly and weakened signatures significantly. The Workaround simply recreates bundle-hashs until no "M" is contained within the hash. This is a brute-force ...