The Serial Interface Adapter (SIA) core is coming along nicely, if a bit slowly.
I've just implemented the Wishbone slave port for it. It exposes 16 bytes to the programmer, with 16-bit wide registers. Here's the register map for the core (with byte offsets), taken from the Verilog sources as of this posting. Not everything is implemented yet; I still need to finish the transmitter section, for example. Also, SPI features of my XST core aren't exposed and will be removed if not optimized away by synthesis tools. (As you can imagine, this is all quite preliminary still.)
// +0 CONFIG (R/W)
// ...........11111 Specifies character frame length,
// including start, stop, and parity bits.
// ........000..... Undefined.
// .......1........ Enable RXC edge sensitivity.
// ......1......... Enable RXD edge sensitivity.
// ...111.......... TXC mode.
// 000 Hardwired 0.
// 001 Hardwired 1.
// 010 IEEE-1355 Strobe (*)
// 011 Undefined.
// 100 Idles low; TXD transitions on rising edge.
// 101 Idles high; TXD transitions on falling edge.
// 110 Idles low; TXD transitions on falling edge.(*)
// 111 Idles high; TXD transitions on rising edge.(*)
// * - reserved for this purpose, but might not be implemented.
// ..1............. RXC edge polarity
// 0 Idles low; sensitive on rising edge.
// 1 Idles high; sensitive on falling edge.
// 00.............. Undefined.
//
// +2 STATUS (R/O)
// ...............1 RX FIFO *not* empty.
// ..............1. RX FIFO is full.
// .............1.. TX FIFO *is* empty.
// ............1... TX FIFO is *not* full.
// .00000000000.... Undefined.
// 1............... One or more other bits set.
//
// +4 INTENA (R/W)
// ...............1 RX FIFO *not* empty.
// ..............1. RX FIFO is full.
// .............1.. TX FIFO *is* empty.
// ............1... TX FIFO is *not* full.
// 000000000000.... Undefined.
//
// +6 RCVDAT (R/O)
// +6 SNDDAT (W/O)
//
// +8 UNUSED Unused; hardwired 0.
// +10 UNUSED Unused; hardwired 0.
//
// +12 BITRATL Baud rate generator.
// +14 BITRATH
// 1111111111111111 Lower bits of divisor.
// 0000000000001111 Upper bits of divisor.
// Bit rate = 100Mbps / (divisor + 1)
Discussions
Become a Hackaday.io Member
Create an account to leave a comment. Already have an account? Log In.