In case anyone looks here for advice on using PmodOLEDrgb with Arty, I found (similar to SteveD's March 14 post) that I could get everything to upload to the FPGA and "run" but have nothing on the display (Vivado 2016.2 on Win 7). After a bit of searching around, it seems the code was running, but the calls to usleep() were being macro'ed to millisecond sleeps not microsecond, so it was running 1000x slower than intended. Dropping all calls to usleep() by 1000x made it run fine.