1313| | `sdi_dat_i` | 1-bit serial data input
1414| | `sdi_csn_i` | 1-bit chip-select input (low-active)
1515| Configuration generics: | `IO_SDI_EN` | implement SDI controller when `true`
16- | | `IO_SDI_FIFO` | data FIFO size, has to a power of two, min 1
16+ | | `IO_SDI_FIFO` | data FIFO size, has to be a power of two, min 1
1717| CPU interrupts: | fast IRQ channel 11 | configurable SDI interrupt (see <<_processor_interrupts>>)
1818|=======================
1919
2020**Key Features**
2121
2222* SPI-compatible device-side controller
2323* Programmable SPI clock polarity
24- * Optional data RX/TY FIFO
24+ * Optional data RX/TX FIFO
2525* Interrupt based on FIFO status
2626
2727
2828**Overview**
2929
3030The serial data interface module provides a **device-side** SPI interface to receive communications from an
31- **external SPI host** , which is responsible of performing the actual transmission (i.e. the host generates the
31+ **external SPI host** , which is responsible for performing the actual transmission (i.e. the host generates the
3232SPI clock and control the chip-select line). An optional receive/transmit FIFO can be configured via the
3333`IO_SDI_FIFO` generic to support transmissions without CPU interaction.
3434
@@ -37,7 +37,7 @@ SPI clock and control the chip-select line). An optional receive/transmit FIFO c
3737The NEORV32 SDI module only supports _device mode_ . If you are looking for a _host-mode_ serial peripheral
3838interface (transactions performed by the NEORV32) check out the <<_serial_peripheral_interface_controller_spi>>.
3939
40- The SDI module provides a single control register `CTRL` to configure the module and to check it's status and a
40+ The SDI module provides a single control register `CTRL` to configure the module and to check its status and a
4141single data register `DATA` for receiving/transmitting data. Any access to the `DATA` register actually accesses
4242the internal RX/TX FIFO.
4343
@@ -52,7 +52,7 @@ FIFO. This TX data will be sent back to the external host during an SPI transfer
5252TX FIFO all-zero is sent. Received bytes are pushed to the RX FIFO and can be retrieved by reading the RX FIFO via
5353the `DATA` register. Data is always transferred MSB-first. The current state of these FIFOs is available via the
5454control register's `SDI_CTRL_RX_*` and `SDI_CTRL_TX_*` status flags. The RX/TX FIFOs can be cleared at any time by
55- the `SDR_CTRL_CLR_ *` control register bits.
55+ the `SDI_CTRL_CLR_ *` control register bits.
5656
5757Data is only transferred (and pushed to the RX FIFO / popped from the TX FIFO) when the chip-select input `sdi_csn_i`
5858is active (low-active). If the external SPI host aborts the transmission by setting the chip-select signal high again
@@ -66,7 +66,7 @@ supported yet. However, experiments have shown that the SDI module can also deal
6666
6767All SDI operations are clocked by the external `sdi_clk_i` signal. This signal is synchronized to the processor's
6868clock domain to simplify timing behavior. This clock synchronization requires the external SDI clock (`sdi_clk_i` )
69- to not **not exceed 1/4 of the processor's main clock** .
69+ to **not exceed 1/4 of the processor's main clock** .
7070
7171
7272**SDI Interrupt**
@@ -86,8 +86,8 @@ of the interrupt is resolved.
8686|=======================
8787| Address | Name [C] | Bit(s), Name [C] | R/W | Function
8888.16+<| `0xfff70000` .16+<| `CTRL` <|`0` `SDI_CTRL_EN` ^| r/w <| SDI module enable
89- <|`1` `SDR_CTRL_CLR_RX ` ^| -/w <| clear RX FIFO, flag auto-clears
90- <|`2` `SDR_CTRL_CLR_TX ` ^| -/w <| clear TX FIFO, flag auto-clears
89+ <|`1` `SDI_CTRL_CLR_RX ` ^| -/w <| clear RX FIFO, flag auto-clears
90+ <|`2` `SDI_CTRL_CLR_TX ` ^| -/w <| clear TX FIFO, flag auto-clears
9191 <|`3` - ^| r/- <| _reserved_ , read as zero
9292 <|`7:4` `SDI_CTRL_FIFO_MSB : SDI_CTRL_FIFO_LSB` ^| r/- <| FIFO depth; log2(_IO_SDI_FIFO_ )
9393 <|`15:8` - ^| r/- <| reserved, read as zero
0 commit comments