Overview

SDRAM Controller Component

The SDRAM module is designed for 16 bit read and write access of arbitrary length at up to 50MHz clock rates. It uses an optimised pinout with address and data lines overlaid along with other pinout optimisations in order to implement 16 bit read/write with up to 13 address lines in just 20 pins.

The module currently targets the ISSI 6400 SDRAM but is easily specialised for the smaller and larger members of this family as well as single data rate SDRAM memory from other manufacturers.

SDRAM Component Features

The SDRAM component has the following features:

  • Configurability of
    • SDRAM geometry,
    • clock rate,
    • refresh properties,
    • server commands supported,
    • port mapping of the SDRAM.
  • Supports
    • buffer read,
    • buffer write,
    • full row(page) read,
    • full row(page) write,
    • refresh handled by the SDRAM component itself.
  • Requires a single core for the server.
    • The function sdram_server requires just one core, the client functions, located in sdram.h are very low overhead and are called from the application.

Memory requirements

Resource

Usage

Stack

256 bytes

Program

10272 bytes

Resource requirements

Resource

Usage

Channels

1

Timers

1

Clocks

1

Logical Cores

1

Performance

The achievable effective bandwidth varies according to the available XCore MIPS. This information has been obtained by testing on real hardware.

XCore MIPS

Cores

System Clock

Max Read (MB/s)

Max Write (MB/s)

50

8

400MHz

66.84

70.75

57

7

400MHz

68.13

71.68

66

6

400MHz

69.83

73.41

80

5

400MHz

71.68

74.99

100

4

400MHz

71.89

75.22

100

3

400MHz

71.89

75.22

100

2

400MHz

71.89

75.22

62.5

8

500MHz

66.82

70.34

83

7

500MHz

68.08

71.47

100

6

500MHz

69.83

73.19

125

5

500MHz

71.68

74.76

125

4

500MHz

71.89

74.99

125

3

500MHz

71.89

74.99

125

2

500MHz

71.89

74.99

SDRAM Memory Mapper

A memory mapper module called module_sdram_memory_mapper may be used in order to abstract the physical geometry of the SDRAM from the application. Its only function is to map the physical geometry of the SDRAM to a virtual byte addresses that the application can use.

Memory requirements

Resource

Usage

Stack

0 bytes

Program

32 bytes

Resource requirements

Resource

Usage

Channels

0

Timers

0

Clocks

0

Logical Cores

0

See Also