One Enterprise, Aliso Viejo,
CA 92656 USA
Within the USA: +1 (800) 713-4113
Outside the USA: +1 (949) 380-6100
Sales: +1 (949) 380-6136
Fax: +1 (949) 215-4996
Email: sales.support@microsemi.com
Microsemi makes no warranty, representation, or guarantee regarding the information contained herein or the suitability of
its products and services for any particular purpose, nor does Microsemi assume any liability whatsoever arising out of the
application or use of any product or circuit. The products sold hereunder and any other products sold by Microsemi have
been subject to limited testing and should not be used in conjunction with mission-critical equipment or applications. Any
performance specifications are believed to be reliable but are not verified, and Buyer must conduct and complete all
performance and other testing of the products, alone and together with, or installed in, any end-products. Buyer shall not
rely on any data and performance specifications or parameters provided by Microsemi. It is the Buyer’s responsibility to
independently determine suitability of any products and to test and verify the same. The information provided by Microsemi
hereunder is provided “as is, where is” and with all faults, and the entire risk associated with such information is entirely
with the Buyer. Microsemi does not grant, explicitly or implicitly, to any party any patent rights, licenses, or any other IP
rights, whether with regard to such information itself or anything described by such information. Information provided in this
document is proprietary to Microsemi, and Microsemi reserves the right to make any changes to the information in this
document or to any products and services at any time without notice.
About Microsemi
Microsemi, a wholly owned subsidiary of Microchip Technology Inc. (Nasdaq: MCHP), offers a comprehensive portfolio of
semiconductor and system solutions for aerospace & defense, communications, data center and industrial markets.
Products include high-performance and radiation-hardened analog mixed-signal integrated circuits, FPGAs, SoCs and
ASICs; power management products; timing and synchronization devices and precise time solutions, setting the world's
standard for time; voice processing devices; RF solutions; discrete components; enterprise storage and communication
solutions, security technologies and scalable anti-tamper products; Ethernet solutions; Power-over-Ethernet ICs and
midspans; as well as custom design capabilities and services. Learn more at www.microsemi.com.
Microsemi ProprietaryUG0446 User Guide Revision 7.0xi
Revision History
1Revision History
The revision history describes the changes that were implemented in the document. The changes are
listed by revision, starting with the most current publication.
1.1Revision 7.0
The following is a summary of the changes in this revision.
•Read and Write leveling is not supported. Removed information about all the Read and Write
leveling registers.
•Most of the PHY registers have been reserved.
1.2Revision 6.0
The following is a summary of the changes in this revision.
Microsemi Proprietary UG0446 User Guide Revision 7.02
Overview
2Overview
This user guide describes the high speed memory interfaces in SmartFusion®2 System-on-Chip (SoC)
field programmable gate array (FPGA) and IGLOO
microcontroller/memory subsystem double-data rate (MDDR) subsystem and fabric DDR (FDDR)
subsystem provide access to DDR memories for high-speed data transfers. The DDR subsystems
functionality, configurations, and their use models are discussed in this user guide.
The following table describes additional documentation available for the SmartFusion2 and IGLOO2
devices. For more information, refer to the SmartFusion2 Documentation Page and IGLOO2
UG0445: IGLOO2 FPGA and SmartFusion2 SoC
FPGA Fabric User Guide
UG0331: SmartFusion2 Microcontroller Subsystem
User Guide
UG0448: IGLOO2 High Performance Memory
Subsystem User Guide
This product brief provides an overview of SmartFusion2 and
IGLOO2 family, features, and development tools.
switching characteristics.
outline drawings, and links to pin tables in Excel format.
outline drawings, and links to pin tables in Excel format.
SmartFusion2 and IGLOO2 FPGAs integrate fourth generation
flash-based FPGA fabric. The FPGA fabric is comprised of Logic
Elements which consist of a 4 input look up table (LUT), includes
embedded memories and Mathblocks for DSP processing
capabilities. This document describes the SmartFusion2 and
IGLOO2SmartFusion2 and IGLOO2 FPGA fabric architecture,
embedded memories, Mathblocks, fabric routing, and I/Os.
SmartFusion2 devices integrate a hard microcontroller
subsystem (MSS). The MSS consists of a ARM Cortex-M3
processor with embedded trace macrocell (ETM), instruction
cache, embedded memories, DMA engines, communication
peripherals, timers, real-time counter (RTC), general purpose
I/Os, and FPGA fabric interfaces. This document describes the
SmartFusion2 MSS and its internal peripherals.
IGLOO2 devices integrate a hard high performance memory
subsystem (HPMS) consists of embedded memories, DMA
engines, and FPGA fabric interfaces. This document describes
the IGLOO2 HPMS and its internal peripherals.
Microsemi Proprietary UG0446 User Guide Revision 7.03
Overview
Table 1 • Additional Documents (continued)
DocumentDescription
UG0447: IGLOO2 and SmartFusion2 High Speed
Serial Interfaces User Guide
SmartFusion2 and IGLOO2 devices integrate hard high-speed
serial interfaces (PCIe, XAUI/XGXS, SERDES). This document
describes the SmartFusion2 and IGLOO2SmartFusion2 and
IGLOO2 high-speed serial interfaces.
UG0449: SmartFusion2 and IGLOO2 Clocking
Resources User Guide
SmartFusion2 and IGLOO2 clocking resources include on-chip
oscillators, FPGA fabric global network, and clock conditioning
circuitry (CCCs) with dedicated phase-locked loops (PLLs).
These clocking resources provide flexible clocking schemes to
the on-chip hard IP blocks—HPMS, fabric DDR (FDDR)
subsystem, and high-speed serial interfaces (PCIe, XAUI/XGXS,
SERDES)—and logic implemented in the FPGA fabric.
UG0444: SmartFusion2 and IGLOO2 Low Power
Design User Guide
In addition to low static power consumption during normal
operation, the SmartFusion2 and IGLOO2 devices support an
ultra-low-power Static mode (Flash*Freeze mode) with power
consumption less than 1 mW. Flash*Freeze mode retains all the
SRAM and register data which enables fast recovery to Active
mode. This document describes the SmartFusion2 and IGLOO2
Flash*Freeze mode entry and exit mechanisms.
UG0443: SmartFusion2 and IGLOO2 FPGA
Security and Reliability User Guide
The SmartFusion2 and IGLOO2 devices incorporate essentially
all the security features that made third generation Microsemi
SoC devices the gold standard for security in the PLD industry.
Also included are unique design and data security features and
use models new to the PLD industry. SmartFusion2 and IGLOO2
flash-based FPGA fabric has zero FIT configuration rate due to
its single event upset (SEU) immunity, which is critical in reliability
applications. This document describes the SmartFusion2 and
IGLOO2 security features and error detection and correction
(EDAC) capabilities.
UG0450: SmartFusion2 SoC and IGLOO2 FPGA
System Controller User Guide
The system controller manages programming of the
SmartFusion2 and IGLOO2 devices and handles system service
requests. The subsystems, interfaces, and system services in the
system controller are discussed in this user guide.
UG0450: SmartFusion2 SoC and IGLOO2 FPGA
System Controller User Guide
Describes different programming modes supported in the
SmartFusion2 and IGLOO2 devices. High level schematics of
these programming methods are also provided as a reference.
Important board-level considerations are discussed.
®
Libero SoC User GuideLibero
System-on-Chip (SoC) is the most comprehensive and
powerful FPGA design and development software available,
providing start-to-finish design flow guidance and support for
novice and experienced users alike. Libero SoC combines
Microsemi SoC Products Group tools with such EDA
powerhouses as Synplify
discusses the usage of the software and design flow.
and ModelSim. This user guide
Microsemi Proprietary UG0446 User Guide Revision 7.04
MDDR Subsystem
3MDDR Subsystem
The MDDR is a hardened ASIC block for interfacing the DDR2, DDR3, and LPDDR1 memories. The
MDDR subsystem is used to access DDR memories for high-speed data transfers and code execution.,
and includes a DDR memory controller, DDR PHY, and arbitration logic to support multiple masters. DDR
memory connected to the MDDR subsystem can be accessed by the MSS/HPMS masters and master
logic implemented in the FPGA fabric (FPGA fabric master).
The MSS/HPMS masters communicate with the MDDR subsystem through an MSS/HPMS DDR bridge
that provides an efficient access path. FPGA fabric masters communicate with the MDDR subsystem
through AXI or AHB interfaces.
3.1Features
•Integrated on-chip DDR memory controller and PHY
•Capable of supporting LPDDR1, DDR2, and DDR3 memory devices
•Up to 667 Mbps (333.33 MHz DDR) performance
•Supports memory densities upto 4GB
•Supports 8/16/32-bit DDR standard dynamic random access memory (SDRAM) data bus width
modes
•Supports a maximum of 8 memory banks
•Supports single rank memory
•Single error correction and double error detection (SECDED) enable/disable feature
•Supports DRAM burst lengths of 4, 8, or 16, depending on the bus-width mode and DDR type
configuration
•Support for sequential and interleaved burst ordering
•Programs internal control for ZQ short calibration cycles for DDR3 configurations
•Supports dynamic scheduling to optimize bandwidth and latency
•Supports self refresh entry and exit on command
•Supports deep power-down entry and exit on command
•Flexible address mapper logic to allow application specific mapping of row, column, bank, and rank
bits
•Configurable support for 1T or 2T timing on the DDR SDRAM control signals
•Supports autonomous DRAM power-down entry and exit caused by lack of transaction arrival for
programmable time
The following illustration shows the system level block diagram of the MDDR subsystem.
Microsemi Proprietary UG0446 User Guide Revision 7.05
MDDR Subsystem
Cache
Controller
SD IC
Cortex-M3
Microcontroller
SD I
IDC
DS
FIC_0FIC_1
AHB Bus Matrix
DDR
I/O
FPGA Fabric
AXI/AHB
Master
MSS/HPMS
DDR
Bridge
SmartFusion2/IGLOO2
Blocks in SmartFusion2
DDR
Controller
DDR
PHY
APB Config.
Register
MDDR
AXI
Transaction
Controller
DDR_FIC
64-Bit AXI
HPDMA
MSS/HPMS
DDR
SDRAM
APB
Master
64-Bit AXI /
Single 32-Bit AHBL /
Dual 32-Bit AHBL
16-Bit APB
APB_2
Figure 1 • System Level MDDR Block Diagram
The MDDR subsystem accepts data transfer requests from AXI or AHB interfaces. Any read/write
transactions to the DDR memories can occur from the following four paths:
•High performance DMA (HPDMA) controller can access DDR memories through the MSS/HPMS
DDR bridge for high speed data transactions.
•Other MSS/HPMS masters (for example, FIC_0, FIC_1, and PDMA) can access DDR memories
through the MSS/HPMS DDR bridge.
•AXI or AHBL masters in the FPGA fabric can access DDR memories through DDR_FIC interface.
Note: The Cortex-M3 processor can access DDR memories through the MSS DDR bridge for data and code
execution in SmartFusion2.
Note: The maximum DDR3 data rate supported by MDDR is 333MHz/667Mbps. Therefore, Write Leveling is
not mandatory and the interface works if the board layout includes length matching and follows AC393
SmartFusion2 and IGLOO2 Board Design Guidelines Application Note. For Read Leveling, Libero SOC
auto-generates pre-defined static delay ratios for MDDR initialization. These delay values are sufficient if
the board layout follows the SmartFusion2/IGLOO2 board-level guidelines.
3.2Memory Configurations
The SmartFusion2 and IGLOO2 FPGA MDDR subsystem supports a wide range of common memory
types, configurations, and densities, as shown in the following table. If SECDED mode is enabled in the
MDDR controller, the external memory module must be connected to the following:
•Data lines MDDR_DQ_ECC[3:0] when data width is x32
•Data lines MDDR_DQ_ECC[1:0] when data width is x16
Microsemi Proprietary UG0446 User Guide Revision 7.06
MDDR Subsystem
•Data line MDDR_DQ_ECC[0] when data width is x8
Table 2 • Supported Memory (DDR2, DDR3 and LPDDR1) Configurations
SmartFusion2 and IGLOO2 Devices
Width
(in
Memory
DepthWidth
128M or
Less
256M×32×36––✔✔
512M×32×36––✔✔
1G×32×36––✔✔
×32×36––✔✔
×16×18✔✔✔✔
×8×9✔––✔
×16×18✔✔✔✔
×8×9✔––✔
×16×18✔✔✔✔
×8×9✔––✔
×16×18✔✔✔✔
x8×9✔––✔
SECDED
Mode)
M2S/M2GL
005/010/025/060/090
M2S/M2GL150FCV484
M2S/M2GL 050
(FCS325,
VF400, FG484)
M2S/M2GL 050
(FG896)M2S/M2GL150(FC1152)
3.3Performance
The following table shows the maximum data rates supported by MDDR subsystem for supported
memory types.
For more Information, refer to the "DDR Memory Interface Characteristics" section in DS0128: IGLOO2
The following table lists the I/O utilization for the SmartFusion2 and IGLOO2 devices corresponding to
supported bus widths. The remaining I/Os in Bank 0 can be used for general purposes.
Table 4 • I/O Utilization for SmartFusion2 and IGLOO2 Devices
The DDR_FIC facilitates communication between the FPGA fabric masters and AXI transaction
controller. The DDR_FIC can be configured to provide either one 64-bit AXI slave interface or two
independent 32-bit AHB-Lite (AHBL) slave interfaces to the FPGA fabric masters.
The AXI transaction controller receives read and write requests from AXI masters (MSS/HPMS DDR
bridge and DDR_FIC) and schedules for the DDR controller by translating them into DDR controller
commands.
The DDR controller receives the commands from the AXI transaction controller. These commands are
queued internally and scheduled for access to the DDR SDRAM while satisfying DDR SDRAM
constraints, transaction priorities, and dependencies between the transactions. The DDR controller in
turn issues commands to the PHY module, which launches and captures data to and from the DDR
SDRAM.
DDR PHY receives commands from the DDR controller and generates DDR memory signals required to
access the external DDR memory.
The 16-bit APB configuration bus provides an interface to configure the MDDR subsystem registers. The
MDDR subsystem operates on MDDR_CLK. MSS/HPMS CCC generates the MDDR_CLK using MPLL.
For more details on MSS/HPMS CCC refer UG0449: SmartFusion2 and IGLOO2 Clocking Resources
User Guide.
Configuration Registers
Microsemi Proprietary UG0446 User Guide Revision 7.08
MDDR Subsystem
3.5.2Port List
Table 5 • MDDR Subsystem Interface Signals
Signal NameTypePolarityDescription
APB_S_PCLKIn–APB clock. This clock drives all the registers of the
APB interface.
APB_S_PRESET_NInLowAPB reset signal. This is an active low signal. This
drives the APB interface and is used to generate the
soft reset for the DDR controller as well.
MDDR_DDR_CORE_RESET_NInLowGlobal reset. This resets the
DDR_FIC/DDRC/PHY/DDRAXI logic.
MDDR_DDR_AXI_S_RMWInHighAXI mode only Indicates whether all bytes of a
64-bit lane are valid for all beats of an AXI transfer.
0: Indicates that all bytes in all beats are valid in the
burst and the controller should default to write
commands.
1: Indicates that some bytes are invalid and the
controller should default to RMW commands. This
is classed as an AXI write address channel
sideband signal and is valid with the AWVALID
signal.
MDDR_RAS_NOutLowDRAM RASN
MDDR_ RESET_NOutLowDRAM reset for DDR3
MDDR_WE_NOutLowDRAM WEN
Out–This output clock is derived from the MDDR_CLK
and is based on the DDR_FIC divider ratio. This is
the clock that should be used for the AXI or AHB
slave interfaces to move data in and out of the
MDDR.
Out–This indicates the lock from FCCC which generates
HPMS_DDR_FIC_SUBSYSTEM_CLK for IGLOO2
and MSS_DDR_FIC_SUBSYSTEM_LOCK in
SmartFusion2.
Bus–AXI slave interface 1.0 bus
Bus–AHB0 slave interface 3.0 bus
Bus–AHB1 slave interface 3.0 bus
0: Termination Off
1: Termination On
Microsemi Proprietary UG0446 User Guide Revision 7.09
MDDR_ADDR[15:0]Out–Dram address bits
MDDR_BA[2:0]Out–Dram bank address
MDDR_DM_RDQS[3:0]In/out–DRAM data mask – from bidirectional pads
MDDR_DQS[3:0]In/out–DRAM single-ended data strobe output – for
bidirectional pads
MDDR_DQS_N[3:0]In/out–DRAM single-ended data strobe output – for
bidirectional pads
MDDR_DQ[31:0]In/out–DRAM data input/output – for bidirectional pads
MDDR_DQ_ECC[3:0]In/out–DRAM data input/output for SECDED
MDDR_DM_RDQS_ECCIn/outHighDRAM single-ended data strobe output – for
bidirectional pads
MDDR_DQS_ECCIn/outHighDRAM single-ended data strobe output – for
bidirectional pads
MDDR_DQS_ECC_NIn/outLowDRAM data input/output – for bidirectional pads
MDDR_DQS_TMATCH_0_INInHighDQS enables input for timing match between DQS
and system clock. For simulations, tie to
MDDR_DQS_TMATCH_0_OUT.
MDDR_DQS_TMATCH_1_INInHigh DQS enables input for timing match between DQS
and system clock. For simulations, tie to
MDDR_DQS_TMATCH_1_OUT.
MDDR_DQS_TMATCH_0_OUTOutHighDQS enables output for timing match between DQS
and system clock. For simulations, tie to
MDDR_DQS_TMATCH_0_IN.
MDDR_DQS_TMATCH_1_OUTOutHighDQS enables output for timing match between DQS
and system clock. For simulations, tie to
MDDR_DQS_TMATCH_1_IN.
MDDR_DQS_TMATCH_ECC_INInHighDQS enables input for timing match between DQS
and system clock. For simulations, tie to
MDDR_DQS_TMATCH_ECC_OUT.
MDDR_DQS_TMATCH_ECC_OUTOutHighDQS enables output for timing match between DQS
and system clock.
For simulations, tie to
MDDR_DQS_TMATCH_ECC_IN.
Note:1 AXI or AHB interface, depending on configuration.
2
MDDR_DQS_N[3:0] signals are not available for LPDDR.
3
TMATCH_IN and TMATCH_OUT pins are required to be connected together outside the device. They
are used for gate training as part of the read data capture operation. The two pins create an internal DQS
Enable signal that is used to calibrate the flight path. DQS needs to be gated to prevent false triggering of
the FIFO write clock. This DQS Enable signal is derived from the system clock and physically matches
the clock output buffer and DQS input buffer to compensate for I/O buffer uncertainty due to ProcessVoltage-Temperature (PVT) changes. Without this connection, the circuit is not operable.
Microsemi Proprietary UG0446 User Guide Revision 7.010
MDDR Subsystem
3.5.2.1AXI Slave Interface
The following table describes the MDDR AXI slave interface signals. These signals will be available only
if the MDDR interface is configured for AXI mode. For more AXI protocol details, refer to AMBA AXI v1.0
protocol specification.
Table 6 • AXI Slave Interface Signals
Signal NameDirection PolarityDescription
MDDR_DDR_AXI_S_ARREADYOutputHighIndicates whether or not the slave is
ready to accept an address and
associated control signals.
1: Slave ready
0: Slave not ready
MDDR_DDR_AXI_S_AWREADYOutputHighIndicates that the slave is ready to
accept an address and associated
control signals.
1: Slave ready
0: Slave not ready
MDDR_DDR_AXI_S_BID[3:0]OutputIndicates response ID. The
identification tag of the write response.
MDDR_DDR_AXI_S_BRESP[1:0]OutputIndicates write response. This signal
indicates the status of the write
transaction.
00: Normal access okay
01: Exclusive access okay
10: Slave error
11: Decode error
MDDR_DDR_AXI_S_BVALIDOutputHighIndicates whether a valid write
response is available.
1: Write response available
0: Write response not available
MDDR_DDR_AXI_S_RDATA[63:0]OutputIndicates read data.
MDDR_DDR_AXI_S_RID[3:0]OutputRead ID tag. This signal is the ID tag of
the read data group of signals.
MDDR_DDR_AXI_S_RLASTOutputHighIndicates the last transfer in a read
burst.
MDDR_DDR_AXI_S_RRESP[1:0]OutputIndicates read response. This signal
indicates the status of the read transfer.
00: Normal access
01: Exclusive access
10: Slave error
11: Decode error
MDDR_DDR_AXI_S_RVALIDOutputIndicates whether the required read
data is available and the read transfer
can complete.
1: Read data available
0: Read data not available
MDDR_DDR_AXI_S_WREADYOutputHighIndicates whether the slave can accept
the write data.
1: Slave ready
0: Slave not ready
Microsemi Proprietary UG0446 User Guide Revision 7.011
MDDR Subsystem
Table 6 • AXI Slave Interface Signals (continued)
Signal NameDirection PolarityDescription
MDDR_DDR_MDDR_DDR_AXI_S_ARADDR[31:0]InputIndicates initial address of a read burst
transaction.
Note: DDR_FIC AXI interface
supports only 64-bit
aligned addresses.
MDDR_DDR_AXI_S_ARBURST[1:0]InputIndicates burst type. The burst type,
coupled with the size information,
details how the address for each
transfer within the burst is calculated.
00: FIXED - Fixed-address burst FIFO
type (Not Supported)
01: INCR - Incrementing-address burst
normal sequential memory
10: WRAP - Incrementing-address
burst that wraps to a lower address at
the wrap boundary
11: Reserved
MDDR_DDR_AXI_S_ARID[3:0]InputIndicates identification tag for the read
address group of signals.
MDDR_DDR_AXI_S_ARLEN[3:0]InputIndicates burst length. The burst length
gives the exact number of transfers in a
burst.
0000: 1
0001: 2
0010: 3
0011: 4
0100: 5
0101: 6
0110: 7
0111: 8
1000: 9
1001: 10
1010: 11
1011: 12
1100: 13
1101: 14
1110: 15
1111: 16
MDDR_DDR_AXI_S_ARLOCK[1:0]InputIndicates lock type. This signal provides
additional information about the atomic
characteristics of the read transfer.
00: Normal access
01: Exclusive access
10: Locked access
11: Reserved
MDDR_DDR_AXI_S_ARSIZE[1:0]InputIndicates the maximum number of data
bytes to transfer in each data transfer,
within a burst.
00: 10 : Not Supported
11: 8
Microsemi Proprietary UG0446 User Guide Revision 7.012
MDDR Subsystem
Table 6 • AXI Slave Interface Signals (continued)
Signal NameDirection PolarityDescription
MDDR_DDR_AXI_S_ARVALIDInputHighIndicates the validity of read address
and control information.
1: Address and control information valid
0: Address and control information not
valid
MDDR_DDR_AXI_S_AWADDR[31:0]InputIndicates write address. The write
address bus gives the address of the
first transfer in a write burst transaction.
Note: DDR_FIC AXI interface
supports only 64-bit
aligned addresses
MDDR_DDR_AXI_S_AWBURST[1:0]InputIndicates burst type. The burst type,
coupled with the size information,
details how the address for each
transfer within the burst is calculated.
00: FIXED - Fixed-address burst FIFO-
type (Not Supported)
01: INCR - Incrementing-address burst
normal sequential memory
10: WRAP - Incrementing-address
burst that wraps to a lower address at
the wrap boundary
11: Reserved
MDDR_DDR_AXI_S_AWID[3:0]InputIndicates identification tag for the write
address group of signals.
MDDR_DDR_AXI_S_AWLEN[3:0]InputIndicates burst length. The burst length
gives the exact number of transfers in a
burst. This information determines the
number of data transfers associated
with the address.
0000: 1
0001: 2
0010: 3
0011: 4
0100: 5
0101: 6
0110: 7
0111: 8
1000: 9
1001: 10
1010: 11
1011: 12
1100: 13
1101: 14
1110: 15
1111: 16
MDDR_DDR_AXI_S_AWLOCK[1:0]InputIndicates lock type. This signal provides
additional information about the atomic
characteristics of the write transfer.
00: Normal access
01: Exclusive access
10: Locked access
11: Reserved
.
Microsemi Proprietary UG0446 User Guide Revision 7.013
MDDR Subsystem
Table 6 • AXI Slave Interface Signals (continued)
Signal NameDirection PolarityDescription
MDDR_DDR_AXI_S_AWSIZE[1:0]InputIndicates the maximum number of data
bytes to transfer in each data transfer,
within a burst.
00 to 10 : Not Supported
11: 8
MDDR_DDR_AXI_S_AWVALIDInputHighIndicates whether or not valid write
address and control information are
available.
1: Address and control information
available
0: Address and control information not
available
MDDR_DDR_AXI_S_BREADYInputHighIndicates whether or not the master can
accept the response information.
1: Master ready
0: Master not ready
MDDR_DDR_AXI_S_RREADYInputHighIndicates whether or not the master can
accept the read data and response
information.
1: Master ready
0: Master not ready
MDDR_DDR_AXI_S_WDATA[63:0]InputIndicates write data.
MDDR_DDR_AXI_S_WID[3:0]InputIndicates response ID. The
identification tag of the write response.
MDDR_DDR_AXI_S_WLASTInputHighIndicates the last transfer in a write
burst.
MDDR_DDR_AXI_S_WSTRB[7:0]InputIndicates which byte lanes to update in
memory.
MDDR_DDR_AXI_S_WVALIDInputHighIndicates whether or not valid write data
and strobes are available.
1: Write data and strobes available
0: Write data and strobes not available
3.5.2.2AHB Slave Interface
The following table describes the MDDR AHB slave interface signals. These signals are available only if
MDDR interface is configured for single or dual AHB mode. For more AHB protocol details, refer to
AMBA AHB v3.0 protocol specification.
Table 7 • AHB Slave Interface Signals
Signal NameDirectionPolarity Description
MDDR_DDR_AHBx_S_HREADYOUTOutputHighIndicates that a transfer has finished on the
bus. The signal is asserted Low to extend a
transfer. Input to Fabric master.
MDDR_DDR_AHBx_S_HRESPOutputHighIndicates AHB transfer response to Fabric
master.
MDDR_DDR_AHBx_S_HRDATA[31:0]OutputIndicates AHB read data to Fabric master.
MDDR_DDR_AHBx_S_HSELInputHighIndicates AHB slave select signal from Fabric
master.
Microsemi Proprietary UG0446 User Guide Revision 7.014
MDDR Subsystem
Table 7 • AHB Slave Interface Signals (continued)
Signal NameDirection PolarityDescription
MDDR_DDR_AHBx_S_HADDR[31:0]InputIndicates AHB address initiated by Fabric
master.
MDDR_DDR_AHBx_S_HBURST[2:0]InputIndicates AHB burst type from Fabric master.
000: Single burst
001: Incrementing burst of undefined length
010: 4-beat wrapping burst
011: 4-beat incrementing burst
100: 8-beat wrapping burst
101: 8-beat incrementing burst
110: 16-beat wrapping burst
111: 16-beat incrementing burst
MDDR_DDR_AHBx_S_HSIZE[1:0]InputIndicates AHB transfer size from Fabric master.
00: 8 Byte
01: 16 Halfword
10: 32 Word
MDDR_DDR_AHBx_S_HTRANS[1:0]InputIndicates AHB transfer type from Fabric
master.
00: IDLE
01: BUSY
10: NONSEQUENTIAL
11: SEQUENTIAL.
MDDR_DDR_AHBx_S_HMASTLOCKInputHighIndicates AHB master lock signal from Fabric
master.
MDDR_DDR_AHBx_S_HWRITEInputHighIndicates AHB write control signal from Fabric
master.
MDDR_DDR_AHBx_S_HREADYInputHighIndicates that a transfer has finished on the
bus. Fabric master can drive this signal Low to
extend a transfer.
MDDR_DDR_AHBx_S_HWDATA[31:0]InputIndicates AHB write data from Fabric master.
Note: AHBx indicates AHB0 or AHB1.
3.5.2.3APB Slave Interface
The following table describes the MDDR APB slave interface signals. For more APB protocol details,
refer to AMBA APB v3.0 protocol specification.
Table 8 • MDDR APB Slave Interface Signals
Signal NameDirectionPolarityDescription
MDDR_APB_S_PREADYOutputHighIndicates APB Ready signal to Fabric master.
MDDR_APB_S_PSLVERROutputHighIndicates error condition on an APB transfer to
Fabric master.
MDDR_APB_S_PRDATA[15:0]OutputIndicates APB read data to Fabric master.
MDDR_APB_S_PENABLEInputHighIndicates APB enable from Fabric master. The
enable signal is used to indicate the second cycle
of an APB transfer.
MDDR_APB_S_PSELInputHighIndicates APB slave select signal from Fabric
master
Microsemi Proprietary UG0446 User Guide Revision 7.015
MDDR_APB_S_PWRITEInputHighIndicates APB write control signal form Fabric
master
MDDR_APB_S_PADDR[10:2]InputIndicates APB address initiated by Fabric master.
MDDR_APB_S_PWDATA[15:0]InputIndicates APB write data from Fabric master.
3.5.3Initialization
After power-up, the MDDR needs to have all of the configuration registers written to establish the
operating modes of the blocks. When using the System Builder design flow through Libero SoC, this is all
handled for the user through the use of the System Builder module. All of the configuration register
values are selected by the user and stored in a special portion of the embedded non-volatile memory
(eNVM). Before the MDDR subsystem is active, it goes through an initialization phase and this process
starts with a reset sequence. For DDR3 memories, the initialization phase also includes ZQ calibration
and DRAM training.
3.5.3.1Reset Sequence
The following illustration shows the reset sequence for the MDDR subsystem from the power on reset
stage. The MDDR subsystem comes out of reset after MPLL Lock is asserted by the MSS/HPMS_CCC.
De-assertion of MDDR_AXI_RESET_N signifies the end of the reset sequence. The MDDR reset can be
generated by asserting MDDR_CTLR_SOFTRESET bit in SOFT_RESET_CR to 1. The DDR controller
performs external DRAM memory reset and initialization as per the JEDEC specification, including reset,
refresh, and mode registers.
3.5.3.2DDRIO Calibration
Each DDRIO has an ODT feature, which is calibrated depending on the DDR I/O standard. DDR I/O
calibration occurs after the DDR I/Os are enabled. If the impedance feature is enabled, impedance can
be programmed to the desired value in three ways:
•Calibrate the ODT/driver impedance with a calibration block (recommended)
•Calibrate the ODT/driver impedance with fixed calibration codes
•Configure the ODT/driver impedance to the desired value directly
The system register, MDDR_IO_CALIB_CR, can be configured for changing the ODT value to the
desired value.
The I/O calibration is always enabled when the DDR subsystem is configured for DDR2 and DDR3
memories.
The I/O calibration can be disabled or enabled using the DDR configurator when the DDR subsystem is
configured for LPDDR memories.
Note: If I/O calibration is enabled, all I/Os in the DDR bank are calibrated even though the DDR controller is not
using all I/Os in the bank.
For more information on DDR I/O calibration, refer to the Configurable ODT and Driver Impedance
section of the I/Os chapter in the UG0445: IGLOO2 FPGA and SmartFusion2 SoC FPGA Fabric User
Guide.
Microsemi Proprietary UG0446 User Guide Revision 7.016
MDDR Subsystem
Figure 3 • Reset Sequence
PO_RESET_N
50 MHz Clock
Enable
Enable I/Os
DDRIO
Calibration
SC_HPMS_RESET_N
SC_MSS_RESET_N
or,
(for IGLOO2)
(for SmartFusion2)
MPLL Lock
MDDR_AXI_RESET_N
3.5.3.3ZQ Calibration
This is applicable for DDR3 only. The ZQ calibration command is used to calibrate DRAM output drivers
) and on-die termination (ODT) values. The DDR3 SDRAM needs a longer time to calibrate RON
(R
ON
and ODT at initialization and a relatively smaller time to perform periodic calibrations.
The DDR controller performs ZQ calibration by issuing a ZQ calibration long (ZQCL) command and ZQ
calibration short (ZQCS) command.
ZQCL is used to perform initial calibration during the power-up initialization sequence. This command is
allowed for a period of t
through register bits REG_DDRC_T_ZQ_LONG_NOP.
The ZQCS command is used to perform periodic calibration to account for voltage and temperature
variations. A shorter timing window is provided to perform calibration and transfer of values as defined by
timing parameter tZQCS. The tZQCS parameter can be modified through register bits
REG_DDRC_T_ZQ_SHORT_NOP.
Other activities are not performed by the controller for the duration of t
are precharged and tRP is met before ZQCL or ZQCS commands are issued by the DDR controller.
3.5.3.4DRAM Training
High Speed DDR3 memories typically requires the DDR controller to implement Write-Leveling, Read
DQS Gate Training, and Read Data Eye Training. However, MDDR only supports a maximum data rate
of 333 MHz/667 Mbps, which means the clock period and data window are relatively large compared to
high-speed DDR3 memory interfaces. Therefore dynamic write-leveling and read training are not
performed. The following sections describe how write-leveling and read training are addressed by the
MDDR.
, as specified by memory vendor. The value of t
ZQinit
can be modified
ZQinit
and tZQCS. All DRAM banks
ZQinit
3.5.3.4.1Write Leveling
Dynamic write-leveling is not required for the MDDR controller. The board-layout needs to follow AC393
SmartFusion2 and IGLOO2 Board Design Guidelines Application Note to keep the skew between DQS
and CK within the JEDEC DDR3 tDQSS limit of +/- 750ps at each memory device. For board layouts
which do not meet the Board Design Guidelines, the MDDR controller allows static delay ratios which
delays DQS for each byte lane so that the skew between DQS and CK is kept within JEDEC limits.
333 MHz/667 Mbps is the maximum DDR3 rate MDDR supports. Leveling is not mandatory and the
interface will work if the board layout guidelines are followed and length matching is done.
Microsemi Proprietary UG0446 User Guide Revision 7.017
MDDR Subsystem
3.5.3.4.2Read Leveling
MDDR does not perform dynamic Read DQS Gate Training and Data Eye Training. Instead, these
functions are achieved by using built-in static delay values automatically generated by Libero SoC for the
MDDR automatic register initialization.
3.5.3.4.3Read Gate
The DQS gate is aligned by the Libero SoC auto-generated MDDR initialization code containing fixed
delay ratios to account for board round-trip time between FPGA and the DDR3 memory. The
TMATCH_OUT and TMATCH_IN signals are shorted close to the FPGA balls to remove the FPGA
output and input delays from the round trip delay time. Therefore, the fixed delay ratios represent only the
board delay.
The fixed delay ratios work in combination with board layouts which follow the SmartFusion2/IGLOO2
Board Design Guidelines (refer AC393: Board Design Guidelines for SmartFusion2/IGLOO2 FPGA
Application Note).
3.5.3.4.4DQS Alignment within Data Eye
The incoming read DQS is internally centered within the read DQ data window using a static delay ratio.
This static delay is applied by the Libero SoC auto-generated MDDR initialization code. The fixed delay
ratios work in combination with board layouts which follow the SmartFusion2/IGLOO2 Board Design
Guidelines (refer AC393: Board Design Guidelines for SmartFusion2/IGLOO2 FPGA Application Note).
Note: The Libero SOC auto-generated delay ratio for read DQS data eye centering is written to the required
register.
3.5.3.5DDR Memory Initialization Time
The time to initialize the DDR memory depends on the following factors:
•Power-up and register initialization by system controller. It depends on the power on reset delay
configuration in the Libero project (Project > Project Settings > Device settings).
•DDR controller and PHY configuration registers initialization. In SmartFusion2 devices, the CortexM3 initializes these registers. In IGLOO2 devices, the ConfigMaster in the FPGA fabric initializes
these registers.
•DDR memory initialization by the DDR Controller according to the JEDEC standard (mode register
configuration and training).
•DDR memory settling time configured in the System Builder memory configuration window.
3.5.4Details of Operation
This section provides a functional description of each block in the MDDR subsystem.
3.5.4.1DDR_FIC
The following illustration shows the DDR_FIC block diagram.
Figure 4 • DDR_FIC Block Diagram
AHB
64-Bit AXI / Single
32-Bit AHBL /
Dual 32-Bit AHBL
Slave Interface
16-Bit APB
Configuration Bus
MUX
Configuration
Registers
AHB
AXI
Synchronous
DDR Bridge
AXI-AXI
Bridge
AXI
AXI
MUX
AXI Transaction
Controller
Fabric masters can access the MDDR subsystem in the following ways:
•Single AXI-64 interface
•Single AHB-32 interface
Microsemi Proprietary UG0446 User Guide Revision 7.018
MDDR Subsystem
•Dual AHB-32 bit interfaces
If the AXI-64 interface is selected, the DDR_FIC acts as an AXI to AXI synchronous bridge. In this mode,
DDR_FIC provides FPGA fabric masters to access the MDDR subsystem through locked transactions.
For this purpose, a user configurable 20-bit down counter keeps track of the duration of the locked
transfer. If the transfer is not completed before the down counter reaches zero, a single clock cycle pulse
interrupt is generated to the fabric interface.
If single or dual AHB-32 interfaces are selected, DDR_FIC converts the single/dual 32-bit AHBL master
transactions from the FPGA fabric to 64-bit AXI transactions. In this mode the DDR bridge, embedded as
part of the DDR_FIC, is enabled. The DDR bridge has an arbiter, which arbitrates read and write
requests from the two AHB masters on a round robin priority scheme. Refer to the "DDR Bridge Control
Registers in MDDR and FDDR" chapter on page 216 for a detailed description.
The DDR_FIC input interface is clocked by the FPGA fabric clock and the MDDR is clocked by
MDDR_CLK from the MSS/HPMS CCC. Clock ratios between MDDR_CLK and DDR_FIC clock can
vary. The following table lists supported ratios. Clock ratios can be configured through Libero System-onChip (SoC) software or through system register MSSDDR_FACC1_CR. For more information, refer to
the "MDDR Configuration Registers" section on page 61.
Table 9 • MDDR_CLK to FPGA Fabric Clock Ratios
DIVISOR_A[1:0]FIC64_DIVISOR[2:0]MDDR_CLK: FPGA FABRIC Clock Ratio
The AXI transaction controller receives 64-bit AXI transactions from various masters (MSS/HPMS DDR
bridge and DDR_FIC) and translates them into DDR controller transactions. The following illustration
shows the block diagram of the AXI transaction controller interfaced with the DDR controller.
The AXI transaction controller performs arbitration of the read/write requests initiated by AXI compliant
masters.
Microsemi Proprietary UG0446 User Guide Revision 7.019
Loading...
+ 210 hidden pages
You need points to download manuals.
1 point = 1 manual.
You can buy points or you can get point for every manual you upload.