SPI Master IP Core (DO-254)

As the name implies, the Serial Peripheral Interface (SPI) is primarily used to allow a microcontroller unit (MCU) to communicate with peripheral devices.
The SPI Master IP Core is flexible enough to interface directly with numerous standard product peripherals (slaves) from several manufacturers.
Clock control logic allows a selection of clock polarity and a choice of two fundamentally different clocking protocols to accommodate most available synchronous serial peripheral devices.
The SPI Master Core has been developed to DAL A according to the DO-254. For lower DAL levels reduced documentation sets are available. The cores are also available as a netlist for DAL D or projects not needing the full RTL source.
Develeast provides two separate IP Cores, one for the SPI Master Coreand one for the SPI Slave Core

SPI Master IP Core Block Diagram
KEY FEATURES:
- Fully compliant to the SPI Standard (Motorola’s M
68H11 Reference Manual).
- Developed to DAL A (Design Assurance Level) according to RTCA DO-254/ED-80 (April, 2000)
- Configurable data rate (up to 1/1 with the clock input).
- Configurable:
- phase (0 or 1)
- polarity (0 or 1)
- word size (any number of bits)
- Configurable number of slaves (any number).
- Simple interface to user’s logic.
- TMR (Triple Modular Redundancy) coded for SEU immunity (optional).
- Technology independent, can be synthesized to any FPGA/CPLD vendor.
IMPLEMENTATION DETAILS:
The following tables show some examples of implementing the SPI Master Core in different technologies and devices. Note that the SPI Master Core is technology independent, and therefore it can be implemented in any technology/device as long as it contains enough resources (Flip-Flops, gates, pins, etc.).
Unless otherwise specified all the runs have been performed with the default options of the respective tool. Register placement on the IO has been disabled.
No constraints were added, so the results listed under the column "Maximum 'clk' Frequency" are the worst case scenario (no multicycle, false paths, etc. defined).
The following results are for an SPI Master Core with:
- g_SPI_WORD_LENGTH: 8
- g_NUM_OF_SLAVES: 1
- g_SCK_DIVIDER: 15
- without TMR
ACTEL
|
FPGA Type
|
Maximum 'clk' Frequency
|
Logic Modules (CORE)
|
|
ProASIC3
(A3P015 68QFN I Std)
|
110 MHz
|
106
|
|
IGLOO
(AGL030V5 100VQFP I Std)
|
116 MHz
|
103
|
|
Fusion
(AFS090 180QFN I Std)
|
110 MHz
|
106
|
|
Axcelerator
(RTAX250S 208CQFP Mil Std)
|
144 MHz
|
SEQUENTIAL (R-cells): 36
COMB (C-cells): 39
|
ALTERA
|
FPGA Type
|
Maximum 'clk' Frequency
|
Flip-Flops
|
ALUTs
|
ALMs
|
Logic Cells
|
|
MAX II
(EPM240F100I5)
|
150 MHz
|
34
|
-
|
-
|
53
|
|
Cyclone III
(EP3C5E144I7)
|
317 MHz
|
34
|
-
|
-
|
58
|
|
Stratix II
(EP2S60F484I4)
|
336 MHz
|
34
|
33
|
25
|
-
|
|
Stratix III
(EP3SE110F780I3)
|
> 550 MHz
|
34
|
33
|
24
|
-
|
|
Stratix IV
(EP4SGX70HF35C2)
|
> 650 MHz
|
34
|
33
|
25
|
-
|
XILINX
|
FPGA Type
|
Maximum 'clk' Frequency
|
Flip-Flops
|
4-LUTs
|
Slices
|
Macrocells
|
|
CoolRunnerII
(XC2C128-6-TQ144)
|
87 MHz
|
33
|
-
|
-
|
36
|
|
Spartan3
(XC3S50-4PQ208)
|
187 MHz
|
30
|
80
|
50
|
-
|
|
Virtex2
(XC2V40-4FG256)
|
206 MHz
|
30
|
80
|
50
|
-
|
|
Virtex4
(XC4VLX15-12SF363)
|
> 390 MHz
|
32
|
80
|
51
|
-
|
|
Virtex5
(XC5VLX30-3FF324)
|
> 550 MHz
|
33
|
-
|
17
|
-
|
IP Cores: read more... Contact
|