Munch Man munches data as fast as he can
Inspired by the classic 80's game of the same name for the TI-99/4a.
Munch Man is a ClusterFigher. The plan is to start simple and level up over time.
Level_1_Spinny : Python scripts for generating a manifest of the Project Guttenberg dataset, selecting a random string from the dataset and returns the md5 hash, and finding a string from the dataset the matches a given md5 hash.
Level_2_Ducky : Development of a verilog md5 hash core. Initially attempt to target the Lattice ICE40HX8K breakout board but the core was too big. Switched to the Digilent ArtyS7 fpga board. Used USB to communicate between the raspberry pi and ArtyS7 board. But USB 2.0 was too slow for real acceleration.
Level_3_MiniWheat : Developed an 8-bit parallel interface between the raspberry pi and the ArtyS7 board. This configuration was able to stream text from the RPI to the ArtyS7 and perform 5.4M hashes per second. This was good enough to win 2 out of 3 rounds at the ClusterFight held on 01/26/2019.
Level_4_Blinky : Updated the md5 hash algorithm to support hashing strings of length 2 to 55 characters. Developed a 16-bit parallel interface with dedicated done and match signals. Capable of almost 60M hashes per second. Over 10x improvement of level3.