Добавил:
Опубликованный материал нарушает ваши авторские права? Сообщите нам.
Вуз: Предмет: Файл:
ARM PrimeCell synchronous static memory controller technical reference manual.pdf
Источник:
Скачиваний:
21
Добавлен:
23.08.2013
Размер:
1.4 Mб
Скачать

Functional Overview

2.3System-on-chip design considerations

This section describes the following design considerations:

Byte lane control

Clock feedback in SSMC on page 2-48.

2.3.1Byte lane control

The PrimeCell SSMC generates byte lane control signals nSMBLS[3:0] according to:

little or big-endian operation

AMBA transfer width (indicated by HSIZE[2:0])

external memory bank data bus width, defined within each control register

external memory bank type, either byte, halfword or word

the decoded HADDR[1:0] value for write accesses only.

Word transfers are the largest size transfers supported by the PrimeCell SSMC, any access attempted with a size greater than a word causes an error response to be generated. Each memory bank can either be 8, 16, or 32 bits wide. The memory configuration for a particular bank determines how the nSMWEN and nSMBLS signals are connected to provide byte, halfword and word access. For read accesses, it is necessary to control the nSMBLS signals by driving them either all HIGH, or all LOW.

This control is achieved by programming the Read Byte Lane Enable (RBLE) bit in each control register. Accesses to memory banks constructed from 8-bit or non byte-partitioned memory devices and Accesses to memory banks constructed from 16 or 32-bit memory devices on page 2-41 explain why different connections in respect of nSMWEN and nSMBLS[3:0] are needed for different memory configurations.

Accesses to memory banks constructed from 8-bit or non byte-partitioned memory devices

For memory banks constructed from 8-bit or non byte-partitioned memory devices, it is important that the RBLE bit is cleared to zero within the respective memory bank control register. This forces all nSMBLS[3:0] lines HIGH during a read access to that particular bank, as the byte lane selects are connected to the device write enables.

Figure 2-31 on page 2-40 shows 8-bit memory devices being used to configure memory banks that are 8, 16, and 32 bits wide. In each of these configurations, the nSMBLS[3:0] signals are connected to the write enable (nWE) inputs of each 8-bit memory.

ARM DDI 0236A

Copyright © 2001. All rights reserved.

2-39

Functional Overview

Note

The nSMWEN signal from the PrimeCell SSMC is not used in this configuration.

For write transfers, the relevant nSMBLS[3:0] byte lane signals are asserted LOW, and steer the data to the addressed bytes.

For read transfers, all nSMBLS[3:0] lines are deasserted HIGH. This allows the external bus to be defined for at least the width of the accessed memory.

Address bit SMADDR[0] is used according to which type of external address bus is selected:

the byte for an 8-bit bus

the halfword for a 16-bit bus

the word for a 32-bit bus.

SMCS

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

nSMOEN

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

nCE

 

 

 

nCE

 

 

 

nCE

 

 

 

nCE

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

nOE

 

 

 

nOE

 

 

 

nOE

 

 

 

nOE

nSMBLS[3]

 

nSMBLS[2]

 

nSMBLS[1]

 

nSMBLS[0]

 

 

nWE

 

nWE

 

nWE

 

nWE

 

 

 

 

SMDATA[31:24]

 

IO[7:0]

SMDATA[23:16]

 

IO[7:0]

SMDATA[15:8]

 

IO[7:0]

SMDATA[7:0]

 

IO[7:0]

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

32-bit bank consisting of four 8-bit devices

SMCS

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

nSMOEN

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

nCE

 

 

 

nCE

 

 

 

 

SMCS

 

nCE

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

nOE

 

 

 

nOE

 

 

 

 

nSMOEN

 

nOE

 

 

 

 

 

 

 

 

 

 

 

 

nSMBLS[1]

 

nWE

nSMBLS[0]

 

nWE

 

 

 

 

nSMBLS[0]

 

nWE

 

 

 

 

 

 

 

SMDATA[15:8]

 

IO[7:0]

SMDATA[7:0]

 

IO[7:0]

 

 

 

 

SMDATA[7:0]

 

IO[7:0]

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

16-bit bank consisting of two 8-bit devices

 

 

 

8-bit bank consisting of one 8-bit device

Figure 2-31 Memory banks constructed from 8-bit memory

2-40

Copyright © 2001. All rights reserved.

ARM DDI 0236A

Functional Overview

Accesses to memory banks constructed from 16 or 32-bit memory devices

For memory banks constructed from 16 or 32-bit memory devices, it is important that the RBLE bit is set to one within the respective memory bank control register. This asserts all nSMBLS[3:0] lines LOW during a read access to that particular bank, as during a read all bytes of the devices must be selected to avoid undriven byte lanes on the read data value.

For 16 and 32-bit wide memory devices, byte select signals exist and these must be appropriately controlled, as shown in Figure 2-32 and Figure 2-33.

SMCS

 

 

 

 

 

 

 

 

 

 

 

 

nSMOEN

 

 

 

 

 

 

 

 

 

 

 

 

 

nSMWEN

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

nCE

 

 

 

 

nCE

SMCS

 

nCE

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

nOE

 

 

 

 

nOE

nSMOEN

 

nOE

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

nWE

 

 

 

 

nWE

nSMWEN

 

nWE

 

 

 

 

 

 

 

 

 

 

nSMBLS[3]

 

nUB

nSMBLS[1]

 

nUB

nSMBLS[1]

 

nUB

 

 

 

nSMBLS[2]

 

nLB

nSMBLS[0]

 

nLB

nSMBLS[0]

 

nLB

 

 

 

SMDATA[31:16]

 

IO[15:0]

SMDATA[15:0]

 

IO[15:0]

SMDATA[15:0]

 

IO[15:0]

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

32-bit bank consisting of two 16-bit devices

16-bit bank consisting of one 16-bit device

Figure 2-32 Memory banks constructed from 16-bit memory

SMCS nCE nSMOEN nOE nSMWEN nWE nSMBLS[3] nB3 nSMBLS[2] nB2 nSMBLS[1] nB1 nSMBLS[0] nB0

SMDATA[31:0] IO[31:0]

32-bit bank consisting of one 32-bit device

Figure 2-33 Memory banks constructed from 32-bit memory

ARM DDI 0236A

Copyright © 2001. All rights reserved.

2-41

Functional Overview

Figure 2-34 shows connections for a typical memory system with different data width memory devices.

SMADDR[25:0]

SMADDR[20:0]

A[20:0]

Q[31:0]

SMDATA[31:0]

SMDATA[31:0]

SMCS0

 

nCE

 

 

 

nSMOEN

 

nOE

 

 

 

 

 

2Mx32 Burst Mask ROM

 

 

SMADDR[15:0]

A[15:0]

IO[15:0]

SMDATA[31:16]

 

SMCS1

 

nCE

 

 

 

 

 

nOE

 

 

 

nSMWEN

 

nWE

 

 

 

 

 

nUB

 

 

 

 

 

nLB

 

 

 

 

SMADDR[15:0]

A[15:0]

IO[15:0]

SMDATA[15:0]

 

 

 

nCE

 

 

 

 

 

nOE

 

 

 

 

 

nWE

 

 

 

 

 

nUB

 

 

 

 

 

nLB

 

 

 

 

 

64Kx16 SRAM, two off

 

 

SMADDR[16:0]

A[16:0]

IO[7:0]

SMDATA[31:24]

 

SMCS2

 

nCE

 

 

 

 

 

nOE

 

 

 

nSMBLS[2]

 

nWE

 

 

 

 

SMADDR[16:0]

A[16:0]

IO[7:0]

SMDATA[23:16]

 

 

 

nCE

 

 

 

 

 

nOE

 

 

 

nSMBLS[3]

 

nWE

 

 

 

 

SMADDR[16:0]

A[16:0]

IO[7:0]

SMDATA[15:8]

 

 

 

nCE

 

 

 

 

 

nOE

 

 

 

nSMBLS[1]

 

nWE

 

 

 

 

SMADDR[16:0]

A[16:0]

IO[7:0]

SMDATA[7:0]

 

 

 

nCE

 

 

 

 

 

nOE

 

 

 

nSMBLS[0]

 

nWE

 

 

 

128Kx8 SRAM, four off

Figure 2-34 Typical memory connection

2-42

Copyright © 2001. All rights reserved.

ARM DDI 0236A