PDF Print E-mail

SPI Master IP Core (DO-254)

 

SPI Master IP Core Fact Sheet VHDL Example

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 Core and one for the SPI Slave Core. If the system needs to be configurable as master or slave both cores can easily be combined (VHDL code provided here).

 


SPI Master Block Diagram

SPI Master IP Core Block Diagram

KEY FEATURES:

 

  • Fully compliant to the SPI Standard (Motorola’s M68H11 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