element14 Community
element14 Community
    Register Log In
  • Site
  • Search
  • Log In Register
  • About Us
  • Community Hub
    Community Hub
    • What's New on element14
    • Feedback and Support
    • Benefits of Membership
    • Personal Blogs
    • Members Area
    • Achievement Levels
  • Learn
    Learn
    • Ask an Expert
    • eBooks
    • element14 presents
    • Learning Center
    • Tech Spotlight
    • STEM Academy
    • Webinars, Training and Events
    • Learning Groups
  • Technologies
    Technologies
    • 3D Printing
    • FPGA
    • Industrial Automation
    • Internet of Things
    • Power & Energy
    • Sensors
    • Technology Groups
  • Challenges & Projects
    Challenges & Projects
    • Design Challenges
    • element14 presents Projects
    • Project14
    • Arduino Projects
    • Raspberry Pi Projects
    • Project Groups
  • Products
    Products
    • Arduino
    • Avnet Boards Community
    • Dev Tools
    • Manufacturers
    • Multicomp Pro
    • Product Groups
    • Raspberry Pi
    • RoadTests & Reviews
  • Store
    Store
    • Visit Your Store
    • Choose another store...
      • Europe
      •  Austria (German)
      •  Belgium (Dutch, French)
      •  Bulgaria (Bulgarian)
      •  Czech Republic (Czech)
      •  Denmark (Danish)
      •  Estonia (Estonian)
      •  Finland (Finnish)
      •  France (French)
      •  Germany (German)
      •  Hungary (Hungarian)
      •  Ireland
      •  Israel
      •  Italy (Italian)
      •  Latvia (Latvian)
      •  
      •  Lithuania (Lithuanian)
      •  Netherlands (Dutch)
      •  Norway (Norwegian)
      •  Poland (Polish)
      •  Portugal (Portuguese)
      •  Romania (Romanian)
      •  Russia (Russian)
      •  Slovakia (Slovak)
      •  Slovenia (Slovenian)
      •  Spain (Spanish)
      •  Sweden (Swedish)
      •  Switzerland(German, French)
      •  Turkey (Turkish)
      •  United Kingdom
      • Asia Pacific
      •  Australia
      •  China
      •  Hong Kong
      •  India
      •  Korea (Korean)
      •  Malaysia
      •  New Zealand
      •  Philippines
      •  Singapore
      •  Taiwan
      •  Thailand (Thai)
      • Americas
      •  Brazil (Portuguese)
      •  Canada
      •  Mexico (Spanish)
      •  United States
      Can't find the country/region you're looking for? Visit our export site or find a local distributor.
  • Translate
  • Profile
  • Settings
FPGA
  • Technologies
  • More
FPGA
Blog LPDDR4 timing parameters for Zynq UltraScale+ MPSoC in Vivado (Based on Ultra96)
  • Blog
  • Forum
  • Documents
  • Quiz
  • Events
  • Polls
  • Files
  • Members
  • Mentions
  • Sub-Groups
  • Tags
  • More
  • Cancel
  • New
Join FPGA to participate - click to join for free!
  • Share
  • More
  • Cancel
Group Actions
  • Group RSS
  • More
  • Cancel
Engagement
  • Author Author: bhfletcher
  • Date Created: 31 Jul 2018 5:11 AM Date Created
  • Views 6612 views
  • Likes 3 likes
  • Comments 0 comments
  • micron
  • lpddr4
  • avnet
  • vivado
  • ultra96
  • xilinx;
Related
Recommended

LPDDR4 timing parameters for Zynq UltraScale+ MPSoC in Vivado (Based on Ultra96)

bhfletcher
bhfletcher
31 Jul 2018

Note: The v1.0 Ultra96 board definition files (BDF) embedded in Vivado 2018.1 and 2018.2 have a bug. The latest BDF is on the Avnet GitHub here: https://github.com/Avnet/bdf . The article below describes the parameters included in the v1.2 board definition file.

 

The Avnet Ultra96 board from Avnet has 2 GB of LPDDR4 RAM that is interfaced to the Zynq UltraScale+ MPSoC's Processing System (PS) DDR Controller. This versatile controller is described in Chapter 17 of the ZU+ Technical Reference Manual (UG1085). The DDR subsystem supports DDR3, DDR3L, LPDDR3, DDR4, and LPDDR4. In order to support all these memories at many different interface speeds, it is critical that the hardware designer enter correct parameters into the Vivado Block Design.

 

Ultra96 uses Micron MT53B512M32D2NP-062 WT, which is a 16 Gbit component consisting of two 8 Gbit die. This -062 rating stands for 625 ps clock period, which is 1600 MHz. Because it is double data-rate, this is considered a 3200 Mbps device.

 

The MPSoC on Ultra96 is the XCZU3EG-1SBVA484E. This cost-optimized package supports an LPDDR4 maximum interface rate of 1066 Mbps. Therefore, the ideal clock rate is 533 MHz. In version 1.0 of the BDF, Vivado is instructed to automatically calculate the PLL parameters, which results in an actual output clock frequency of 525 MHz. The v1.2 BDF explicitly sets the PLL parameters to produce 533.3333 MHz. Therefore, the clock period tCK = 1.875 ns.

 

In Vivado Block Design for Zynq UltraScale+, the DDR Configuration dialog expects several parameters in the DDR Memory Options section. These parameters can be found using the Micron LPDDR4 datasheet, knowing what the memory clock period tCK (1.875 ns) is for this particular design.

  • RAS to CAS Delay (cycles), abbreviated tRCD.
    • tRCD (ns) = MAX(18ns, 4nCK)
      • 4nCK = 4 * tCK = 7.5ns
      • MAX(18ns, 4nCK) = 18ns
    • 18ns/tCK = 9.6, so round up to 10
    • tRCD (cycles) = 10 cycles
  • Precharge Time (cycles), abbreviated tRP
    • Micron provides both an All Bank precharge (tRPab) and a Per Bank precharge (tRPpb). We will find the maximum.
      • tRPab (ns) = MAX(21ns, 3nCK)
        • 3nCK = 5.715ns
        • MAX(21ns, 3nCK) = 21ns
      • tRPpb = MAX(18ns, 3nCK)
        • 3nCK = 5.715ns
        • MAX(18ns, 3nCK) = 18ns
    • tRP (ns) = MAX(tRPab, tRPpb) = 21ns
    • 21ns/tCK = 11.2, so round up to 12
    • tRP (cycles) = 12 cycles
  • Row active time, abbreviated tRAS (ns)
    • tRAS = MAX(42ns, 3nCK) = 42ns
  • ACTIVATE-to-ACTIVATE command period (same bank), abbreviated tRC (ns)
    • tRC (ns) = MAX{[tRAS + tRPab (with all-bank precharge)], [tRAS + tRPpb (with per-bank precharge)]}
      • tRAS + tRPab = 42ns + 21ns = 63ns
      • tRAS + tRPpb = 42ns + 18ns = 60ns
    • tRC (ns) = 63ns
  • Four-bank activate window, abbreviated tFAW (ns)
    • tFAW (1066 Data Rate) = 40ns
  • DRAM IC Bus Width (per die)
    • 32 bits, based on the Part Number MT53B512M32D2
  • DRAM Device Capacity (per die, so use 16 instead of 32)
    • 512 Meg * 16 bits = 8192 Mbits
    • Also shown in Table 2 as "Density per die"
  • Row Address Count (bits)
    • Table 2, x16 Row addresses for 512M32 (16Gb) device = R[14:0] = 15
  • Dual Rank
    • Yes, checked, since Table 2 Configuration for 512M32 (16Gb) device shows "32Mb x 16 DQ x 8 banks x 2 channels x 2 ranks"

 

The resulting preset provides an LPDDR4 configuration in the block design that looks like this in Vivado:

image

 

  • Sign in to reply
element14 Community

element14 is the first online community specifically for engineers. Connect with your peers and get expert answers to your questions.

  • Members
  • Learn
  • Technologies
  • Challenges & Projects
  • Products
  • Store
  • About Us
  • Feedback & Support
  • FAQs
  • Terms of Use
  • Privacy Policy
  • Legal and Copyright Notices
  • Sitemap
  • Cookies

An Avnet Company © 2025 Premier Farnell Limited. All Rights Reserved.

Premier Farnell Ltd, registered in England and Wales (no 00876412), registered office: Farnell House, Forge Lane, Leeds LS12 2NE.

ICP 备案号 10220084.

Follow element14

  • X
  • Facebook
  • linkedin
  • YouTube