The SpartanMC SoC-Kit contains the following commonly needed
peripherals. Each peripheral can be instantiated as often as
required. An appropriate address mapping is created by the system
builder.
![+](img/icons/expand.png)
UART
![-](img/icons/collapse.png)
UART
For communication with external devices (e.g. host PCs) the
SpartanMC SoC-Kit provides an Universal Asynchronous Reseiver
Transmitter (UART) interface.
Complex UART
The Complex UART peripheral allows the configuration of frame length
and baud rate at runtime. The depth of the input and output FIFO
bufferes is configurable via module parameters.
Simple UART
The Simple UART peripheral provides a very small resource footprint
but uses a fixed frame length configuration. The depth of the
input and output FIFO bufferes and the baud rate is configurable
via module parameters.
![+](img/icons/expand.png)
I2C
![-](img/icons/collapse.png)
I2C
The two wire I2C bus can be instantiated as
master or as slave module (slave currently not tested).
General information about I2C can be found under:
![+](img/icons/expand.png)
SPI
![-](img/icons/collapse.png)
SPI
For communication using the Serial Peripheral Interface (SPI)-bus we provide an SPI master
peripheral which can be connected with up to 15 SPI-slaves.
General information about SPI can be found under:
![+](img/icons/expand.png)
Timer
![-](img/icons/collapse.png)
Timer
The SpartanMC timer bases upon an 18 bit counter. The input clock
can be take from different sources e.g. external clock, DCM or
another timer and can be devided by a configurable prescaler.
In combination with the timer module it is possible to generate
an arbitrary number of RTI-, Watchdog-, Capture-, Compare-
und Pulse Accumulator modules.
Note: Some timer components e.g. the capture or compare
module are not stand alone peripherals. They always require a
basic timer as input source. Other timer components e.g. the
Pulse Accumulator Module could work autonomously an an exteranl
input source.
![+](img/icons/expand.png)
Digital IO
![-](img/icons/collapse.png)
Digital IO
For the SpartanMC there are three types of digital IO-Modules
availible: input-, output- and bidirectional-ports (PortIn-, PortOut-,
PortBi-Module). Each of that port modules provides up to 18 IO
lines. The trigger condition of input signals can be configured
at runtime.
![+](img/icons/expand.png)
IRQ Controller
![-](img/icons/collapse.png)
IRQ Controller
The SpartanMC interrupt controller supports 18 interrupt signals
and propegates the interrupt with the highest priority to the CPU.
The interrupt controller is available in two versions. The
first version can not be interrupted during interrupt execution
by a pending interrupt of higher priority (Simple Interrupt
Controller). The second version is interruptable with the drawback
of higher hardware effort (Complex Interrupt Controller).