Guide to building a System-on-Chip in python with Migen