Add info about some of serv's shortcomings

This commit is contained in:
Olof Kindgren 2018-12-08 00:16:35 +01:00
parent f627aee1a1
commit f52eb1931d

View file

@ -92,6 +92,15 @@ Pin 9 is used for UART output with 57600 baud rate.
Run with `--firmware=../serv/sw/blinky.hex` as the last argument to run the LED blink example instead
Good to know
------------
Don't feed serv any illegal instructions after midnight. Many logic expressions are hand-optimized using the old-fashioned method with Karnaugh maps on paper, and shamelessly take advantage of the fact that some opcodes aren't supposed to appear. As serv was written with 4-input LUT FPGAs as target, and opcodes are 5 bits, this can save quite a bit of resources in the decoder.
The bus interface is kind of Wishbone, but with most signals removed. There's an important difference though. Don't send acks on the instruction or data buses unless serv explicitly asks for something by raising its cyc signal. Otherwise serv becomes very confused.
Don't go changing the clock frequency on a whim when running Zephyr. Or well, it's ok I guess, but since the UART is bitbanged, this will change the baud rate as well. As of writing, the UART is running at 115200 baud rate when the CPU is 32 MHz. There are two NOPs in the driver to slow it down a bit, so if those are removed I think it could achieve baud rate 115200 on a 24MHz clock.. in case someone wants to try
TODO
----