Hardware design came first but the design did have to take into account some of the constraints of programming PIO. I had to make sure certain signals were on adjacent pins, since the range of pins you must set for in, out, set, or sideset pins in a PIO program must be contiguous. I did have to do another board spin when I realized an error I made with some of my pin orderings.
I went for an 8-bit mux/demux to multiplex the 8 data pins and lower 8 bits of the address because I thought it'd be faster, but I do have to delay quite a bit in the PIO program while I wait for the mux to switch. Given the very high speed that you can feed serial data into a PIO, a couple of high speed shift registers might have worked just as well and would have saved on GPIO pins which are a very precious resource.