DDR memory controller (MPMC)
RM0082
110/844
Doc ID 018672 Rev 1
10.4.1 AHB-Memory
controller interfaces
The Memory Controller core interfaces with 5 AHB data ports and 1 AHB register port. The
AHB data ports function as AHB slaves to external AHB masters such as CPUs, DMAs,
DSPs, and other peripherals. The port implementation is restricted to support the AHB-lite
protocol and is designed for Multi-Layer AHB architectures. This implies that an AHB slave
port will never respond with a SPLIT or a RETRY response type. Early termination of AHB
bursts is fully supported.
Note:
An AHB slave port can be used in a system with masters that support the full AHB protocol
as long as the system is Multi-Layer AHB.
AHB-Memory Controller interfaces handle all communication between the AHB bus and the
Memory Controller core. An incoming AHB transaction is first synchronized from the AHB
clock domain to the Memory Controller core clock domain, then mapped into a Memory
Controller core-level transaction, and finally stored in the AHB port FIFOs. From the AHB
FIFOs, the transaction is presented to the Arbiter which arbitrates requests from all ports
and forwards a single transaction to the Memory Controller core.
Configured options
Each AHB port in the Memory Controller has been defined for the requirements of the
intended system. The configured options are:
Type of interface to the memory controller core clock
All ports of this Memory Controller are clock domain programmable relative to the main
Memory Controller core clock. These ports initialize in asynchronous operation, but can be
changed by programming the associated ahbY_fifo_type_reg parameter. For more
information on the setting of this parameter, refer to Port clocking.
Asynchronous FIFOs handle the clock domain crossing when operating in any of the non
synchronous modes. Refer
to
Table 55: Configured AHB settings
, for the clock relativity for
each port.
Note:
When switching between asynchronous and synchronous mode of operation, ensure that
there are no outstanding transactions on the port whose behaviour is being changed. If
transactions are waiting, there may be unexpected loss of data or a lockout condition on that
AHB port.
Datapath width
Each port has a data interface width of 32 bits.
READ and WRITE command Lengths for INCR Operations
AHB ports handle sequential requests of unspecified length (INCR) by issuing block data
requests of the size programmed in the associated ahbX_wrcnt or ahbX_rdcnt parameter
(where X is the port number). If the request is larger than the value programmed in that
parameter, the request will be divided into multiple requests. Subsequent read commands
will be issued when the last word of data has been delivered back to the requesting AHB
port. Subsequent WRITE commands will be issued after the last data word of the previous
request has been transferred from the AHB interface to the Memory Controller core. The
value defined in each parameter should be a multiple of the number of bytes in the AHB bus
width. For this Memory Controller, since the AHB bus width is 32 bits, these parameters
should be programmed to 4, 8, 12, 16, etc. up to 1024 bytes.