Hardware Petri Nets on Programmable Devices