tyron's page 不断探索是一件好事,学无止境!

R-Car与LPDDR4应用

2019-10-10
David

LPDDR4基本知识

  • 释义

LPDDR4, Low Power Double-Data-Rate 4th Generation Synchronous Dynamic Random Access Memory。

属于SDRAM(结构是1个transistor+1个capacitor)。

这里有一些DDR的基本知识说明

  1. DDR中的一些知识点说明
  2. DDR4设计概述以及分析仿真案例
  3. DDR4 SDRAM - Initialization, Training and Calibration
  4. LPDDR4x 的 学习总结(6) - initialization & training
  5. [JESD209-4C_WG, 3.3 Power-up, Initialization and Power-off Procedure]

最初是为移动装置设计的,后来推出了满足汽车温度等级的LPDDR4 SDRAM。

将来的后续发展是LPDDR4X,LPDDR5.

从CPU到DRAM颗粒之间依次按层级由大到小分为channel > DIMM > rank > chip > bank > row/column。

  • 特点

天然2通道,有2套命令地址(CA)输入和2套数据总线(DQ)。

功耗比DDR2/DDR3/DDR4更低,如引入DBI(Data Bus Inversion)特性。

DDR4设计概述以及分析仿真案例

为使功耗降低,LPDDR4将Data IO从

SSTL(终端电压是VDD/2)

->

POD(Pseudo Open Drain,(终端电压是VDD))

意味着,当总线上是高电平时,无电流流动。

这也是DBI(Data Bus Inversion)实现的基础。

DBI - 让高电平尽可能的多(无电流流动,功耗就低了),至少5bit低电平时,对所有的信号进行反转,同时,DBI=’0’(低电平)。

由于结构(1个transistor+1个capacitor)原因,会有泄漏电荷,所以需要定期刷新(refresh)来避免数据的丢失。而且,温度越高,要求刷新频率越频繁。

  • 车用LPDDR4

需要具有更高温度抗性的位单元。

引入纠错机制(注:是内联ECC,不是ECC),将(64data+8Hamming ECC)同时存放在同一memory内,所以在传输时,相比与ECC,带宽利用率较低。

与SOC互联时,要求SOC满足特定的汽车可靠性标准。

- AE-Q100,专注于可靠性和温度方面。

- ISO26262,专注于设计流程,设计和认证。

目前主要生产厂家:Micron, Hynix, Samsung。

R-Car的LPDDR4控制器

R-Car系列支持的LPDDR4通道数量不同(32bits/通道)。

H3 M3 M3N
4 2 1

最大连接8GBytes。

R-Car与LPDDR4互联

  • 连接

LPDDR4的双通道连接方式有以下四种。

LPDDR4的双通道连接方式

在R-Car开发板中采用的连接是“共享CA”方式。

R-Car与LPDDR4的连接

code修改(DDR for Yocto v3.15)

  • 为什么要修改

实际应用中,用户根据需要选择适合自己的LPDDR4(厂家,容量,速率,等等),并搭建自己的连接,如果与Renesas官方学习板不同,就需要对代码进行修改,并且更改后要进行足够的评估。

  • 代码结构

以下是Yocto v3.15 DDR部分的目录结构和DDR的初始化流程(包括四部分内容:PHY、DRAM、Training、DBSC),供参考。

Yocto v3.15中DDR部分目录结构

Yocto v3.15中DDR init flow

  • 修改点(总)

用户只需关心修改文件“boot_init_dram_config.c”以适应实际的硬件连接。

  • boardcnf_get_brd_type()——board type and Configuration of LPDDR4
  • boardcnf_get_brd_clk()——frequency of the source clock(EXTAL)
  • boardcnf_get_ddr_mbps()——access rate of LPDDR4

如果用到DRAM backup(fastboot中会用到),还需关心修改文件“dram_sub_func.c/.h”,有几个选项需要修改。

详细情况,请参考文档“引用7”。

  • 修改(定制)点(详细)
索引 更改点 文件 说明
1 宏 DBSC_REFINTS boot_init_dram_regdef.h 或 build option(RCAR_REF_INT) DBRFCNF1/2 register相关。refresh模式,会影响到QoS
2 宏 BOARDNUM boot_init_dram_config.c Renesas评估板编号0~21
3 宏 BOARD_JUDGE_AUTO boot_init_dram_config.c 自动识别board
4 boardcnf.phyvalid boot_init_dram_config.c PHY通道是否valid
5 boardcnf.dbi_en boot_init_dram_config.c DBI模式
6 boardcnf.cacs_dly/_adj boot_init_dram_config.c CA/CS delay及调整
7 boardcnf.dqdm_dly_w/r boot_init_dram_config.c DQ W/R delay
8 boardcnf.channel.ddr_density boot_init_dram_config.c density of every channel(每个通道有2个CS端)。例:LPDDR4 DRAM内部有2 dies, 每个die容量8Gbit,2ranks, 总容量就是16Gbits. 设置为{0x02, 0x02}. First field: rank-1 (CS0) DRAM容量 die Second field: rank-2 (CS1) DRAM容量
9 boardcnf.channel.ca/dqs/dq/dm_swap boot_init_dram_config.c swap(CA,DQS,DQ,DM),和实际物理连接顺序有关
10 宏 WDQLVL_PAT boot_init_dram_config.c data patterns for DQ/DM
11 boardcnf.channel.cacs_adj boot_init_dram_config.c 可以通过Eye Opening Tool查看调整后效果
12 boardcnf.channel.dm_adj\w/r boot_init_dram_config.c DM调整。可以通过Eye Opening Tool查看调整后效果
13 boardcnf.channel.dqdm_adj\w/r boot_init_dram_config.c DQ调整。可以通过Eye Opening Tool查看调整后效果
14 宏 _def_LPDDR4_ODT boot_init_dram_config.c MR11 register相关
15 宏 _def_LPDDR4_VREFCAT boot_init_dram_config.c MR12 register相关
16 宏 JS2_DERATE boot_init_dram_config.c 在温度区间[85~105 摄氏度]添加额外的timing margin
17 宏 DDR_FAST_INIT boot_init_dram_config.c 初始化时间会快一点
18 CLK & DIV boot_init_dram_config.c Extal时钟相关。MD14/MD13引脚相关
19 宏 DDR_FAST_INIT boot_init_dram_config.c MD17/MD19引脚相关,调整DDR速率

引用:

  1. Memory中的Channel/Rank/Bank解析
  2. DDR4 SDRAM wiki
  3. 理解汽车DDR DRAM
  4. 使用多通道体系结构优化LPDDR4的性能和功耗
  5. Architectural Options for LPDDR4 Implementation in your next chip design
  6. R-Car Hardware Manual, Rev.2.00
  7. AISM-AB-18-0036_R-CarGen3 How to modify LPDDR4 SDRAM initialize code rev0p29.pdf
  8. r01an4237ej0200-rcg3-initialization-sequence-lpddr4-if.pdf

Comments

Content