The UART seems to be working correctly in that I can write the registers (I'm toggling OUT1 and OUT2 etc) but the baudout pin is constantly high and the transmitter empty flag never clears. I guess the baud generator isn't working or I'm missing something else. I have tried a few external crystals and they seem to oscillate correctly (I can see the clock via my logic analyser) and I've tried hooking up the clock input to a clock generated from the FPGA. In both cases baudout is constantly high, the transmitter empty flag never clears and nothing seems to get transmitted.
I have tried about 8 different chips.. so unless I have a really bad batch I don't think it's an issue with the UART itself. I thought it could be that the UART disables the baud generator when the carrier detect etc signals aren't right so I wired everything on the board to look like a null modem. Still no joy. :(