The second project was to learn how to work with EMIO. This ended up being both simpler and much more powerful than I realized, but it was a long path getting to a simple and elegant solution.
It boils down to this. You can take Vivado, pull in a Zynq block, enable as many EMIO pin as you want, then just declare that they all connect to external ports. Write a constraint file that connects the signals to the device pins and you are done.
For the Antminer S9, we have four onboard LEDs and 54 pins in the 9 connectors J1 through J9. 58 pins in all (and we have 64 EMIO signals available).
Tom's Computer Info / tom@mmto.org