目录
- PCB模块化设计13——FLASH和DDR高速PCB布局布线设计规范
- 一、Flash高速PCB布局布线设计规范
- 1、Flash介绍
- 2、NOR和NAND性能比较
- 3、 NAND Flash的用途
- 4、FLASH管脚定义
- 5、Nand Flash数据读取操作的时序图
- 6、FLASH参考原理图
- 7、 PCB布局布线设计指南
- 1)布局:
- 2) 信号线走线要求:
- FLASH实战案例展示
- 二、DDR高速PCB布局布线设计规范
- 1、DDR是什么?
- 2、DDR的引脚定义
- 3、DDR的PCB布局规则
- 1、一片DDR
- 2、两片DDR
- 3、四片DDR及以上
- 4、DDR的PCB走线原则
- 5、DDR PCB设计布线时,拓扑结构的选择
- 三、EMMC高速PCB布局布线设计规范
- 1、简介
- 2、eMMC信号大体介绍
- 3、eMMC封装
- 4、硬件电路设计
- 5、PCB Layout建议
PCB模块化设计13——FLASH和DDR高速PCB布局布线设计规范
一、Flash高速PCB布局布线设计规范
1、Flash介绍
目前Flash主要有两种NOR Flash和NADN Flash
NOR Flash的读取和我们常见的SDRAM的读取是一样,用户可以直接运行装载在NOR FLASH里面的代码,这样可以减少SRAM的容量从而节约了成本。
NAND Flash没有采取内存的随机读取技术,它的读取是以一次读取一块的形式来进行的,通常是一次读取512个字节,采用这种技术的Flash比较廉价。
一般小容量的用NOR Flash,因为其读取速度快,多用来存储操作系统等重要信息,
而大容量的用NAND FLASH,最常见的NAND FLASH应用是嵌入式系统采用的DOC(Disk On Chip)和我们通常用的"闪盘",可以在线擦除。
FLASH:是一种非易失性内存,闪存的物理特性与常见的内存有根本性的差异:
目前各类 DDR 、 SDRAM 或者 RDRAM 都属于挥发性内存,只要停止电流供应内存中的数据便无法保持,因此每次电脑开机都需要把数据重新载入内存;闪存在没有电流供应的条件下也能够长久地保持数据,其存储特性相当于硬盘,这项特性正是闪存得以成为各类便携型数字设备的存储介质的基础。
NOR FLASH:它的特点就是可以在芯片内执行,应用程序可以直接在闪存中运行,不必把代码读入系统RAM。
在1~16M下的小容量有很高的的成本效益,但是很低的写入和擦除 速度大大影响了它的性能。
他的读取和我们常见的SDRAM的读取是一样。
NAND FLASH:Nand-flash存储器具有容量较大,改写速度快等优点,适用于大量数据的存储,如嵌入式产品中包括数码相机、MP3随身听记忆卡、体积小巧的U盘等。
读取是以一次读取一块的形式来进行的,通常是一次读取512个字节。
用户不能直接运行NAND Flash上的代码,因此好多使用NAND Flash还作上了一块小的NOR Flash来运行启动代码。
2、NOR和NAND性能比较
FLASH闪存是非易失存储器,可以对称为块的存储器单元块进行擦写和再编程。任何flash器件的写入操作只能在空或已擦除的单元内进行,所 以大多数情况下,在进行写入操作之前必须先执行擦除。NAND器件执行擦除操作是十分简单的,而NOR则要求在进行擦除前先要将目标块内所有的位都写为 1。
由于擦除NOR器件时是以64~128KB的块进行的,执行一个写入/擦除操作的时间为5s,与此相反,擦除NAND器件是以8~32KB的块进行的,执行相同的操作最多只需要4ms。
执行擦除时块尺寸的不同进一步拉大了NOR和NADN之间的性能差距,统计表明,对于给定的一套写入操作(尤其是更新小文件时),更多的擦除操作必须在基于NOR的单元中进行。这样,当选择存储解决方案时,设计师必须权衡以下的各项因素:
● NOR的读速度比NAND稍快一些。
● NAND的写入速度比NOR快很多。
● NAND的4ms擦除速度远比NOR的5s快。
● 大多数写入操作需要先进行擦除操作。
● NAND的擦除单元更小,相应的擦除电路更少。
(注:NOR FLASH SECTOR擦除时间视品牌、大小不同而不同,比如,4M FLASH,有的SECTOR擦除时间为60ms,而有的需要最大6s。)
3、 NAND Flash的用途
HDD是指机械硬盘,是传统普通的硬盘,包括:盘片、磁头、磁盘旋转轴及控制电机、磁头控制器、数据转接器、接口、缓存。
SDD(Solid State Drives)是固态硬盘,包括:控制单元、存储单元(DRAM芯片/FLASH芯片)。
区别:HDD是机械式寻找数据,所以防震远低于SSD,数据寻找时间也远低于SSD。
4、FLASH管脚定义
根据上图翻译如下:
- I/O0 ~ I/O7:用于输入地址/数据/命令,输出数据。
- CLE:Command Latch Enable,命令锁存使能,在输入命令之前,要先在模式寄存器中,设置CLE使能
- ALE:Address Latch Enable,地址锁存使能,在输入地址之前,要先在模式寄存器中,设置ALE使能
- CE#:Chip Enable,芯片使能,在操作Nand Flash之前,要先选中此芯片,才能操作
- RE#:Read Enable,读使能,在读取数据之前,要先使CE#有效。
- WE#:Write Enable,写使能,在写取数据之前,要先使WE#有效。
- WP#:Write Protect,写保护
- R/B#:Ready/Busy Output,就绪/忙,主要用于在发送完编程/擦除命令后,检测这些操作是否完成,忙,表示编程/擦除操作仍在进行中,就绪表示操作完成.
- Vcc:Power,电源
- Vss:Ground,接地
- N.C:Non-Connection,未定义,未连接。
5、Nand Flash数据读取操作的时序图
6、FLASH参考原理图
7、 PCB布局布线设计指南
1)布局:
(1) NAND 应靠近主控摆放;
(2)去耦电容均靠近 NAND 摆放;
(3) RE、 WE、 DQS 信号串接电阻靠近主控摆放,串阻与主控连接走线距离≤300mil;
2) 信号线走线要求:
(1) NAND 与主控走线间走线≤2000mil;
(2) 走线阻抗 50 欧;
(3)线间距≥2 倍线宽;
(4) D0~D7、 RE、 WE 相对于 DQS 做等长,控制≤300mil;
(5) D0~D7 上使用过孔的数量尽量相同;
(6)务必保证走线参考平面完整;
(7)走线尽量避开高频信号;
(8) VCC/VCCQ 线宽不小于 12mil,或直接使用敷铜代替电源走线;电源线上如有过孔,则过孔数量不少于 2 个,避免过孔限流影响供电;
FLASH实战案例展示
二、DDR高速PCB布局布线设计规范
1、DDR是什么?
DDR=Double Data Rate双倍速率,DDR SDRAM=双倍速率同步动态随机存储器,人们习惯称为DDR,其中,SDRAM 是Synchronous Dynamic Random Access Memory的缩写,即同步动态随机存取存储器。而DDR SDRAM是Double Data Rate SDRAM的缩写,是双倍速率同步动态随机存储器的意思。DDR内存是在SDRAM内存基础上发展而来的,仍然沿用SDRAM生产体系,因此对于内存厂商而言,只需对制造普通SDRAM的设备稍加改进,即可实现DDR内存的生产,可有效的降低成本。
DDR的一些工作条件:
还是可以看出,随着DDR的更新换代,总线时钟频率越来越高,并且传输速率也越来越快,工作电压越来越低,逐渐朝着低功耗、高速率的方向发展,这也为了DDR布线布局带来了较高要求的阻抗匹配。
2、DDR的引脚定义
下图是一般的DDR引脚定义,可以将DDR的引脚划分为3类,第一类为电源线,VDDQ、VSSQ、VDD、VSS、VREF都是电源线;
第二类为数据线,由高低8位数据线为一组,D0-D7+LDM+数据差分对以及D8-D15+UDM+数据差分对组成,一般11条线为一组数据线;
第三类为地址线,除去数据线和电源线,余下部分都统一划分为地址线,有一对时钟差分。
3、DDR的PCB布局规则
可以按照DDR的个数分别进行布局:
1、一片DDR
一片DDR时,点对点布局,留出一定的绕线空间
2、两片DDR
两片DDR时,相对于CPU对应DDR引脚的中心位置对称,留出一定的绕线空间,同时注意串接电阻、并联电阻的位置
中间有排阻时,DDR相对于中心距离:800~1000mil
中间无排阻时,DDR相对于中心距离:600~800mil
要合理的规划走线布局结构,按照前言所说的,两片DDR最少需要三个走线层,假设是一个6层板,三个走线层,以走T点结构为例:
图中可以看出,因为是BGA封装,表层很难直接走线,同时高八位数据与低八位数据两两互相交叉,理论上布局一下是可以一层走完数据线的,但是既然地址线必须要用到至少两个走线层,也没必要在手头宽裕的情况下吝啬走线,高低八位各一个走线层搞定,同时还要注意的是,一般T点中心结构走的是内层,所以尽量不要让内层数据线与内层地址线在DDR内部走线时有冲突,即如下:
左边是数据走线,用底层蓝色走,右边是T点,用内层黄褐色走,如果你都用黄褐色走线的话
,理论上来说完全没问题,但是尽量错峰出行,避免走线空间太少了!!!
这边添加一下T如何出线,基本上如果是两片DDR,一定是要先走DDR内部的T点,然后再走外部的T点,最好的分配就是,两侧的点交互错开放置,放两派,然后一般来说两边的地址线出线是不平均的,T的两排过孔尽量控制的平均分配一下,T点中过孔与过孔之间的间距一般就是你扇出的那个DDR焊盘过孔之间的间距,不然就不太好出现了,添加的这一点要记住,间距最好与DDR的过孔出线保持一致
然后就是T点走线,基本上吧,你是不可能在T点这边满足3W原则,就跟你BGA出现不可能满足3W原则一样,你要是能满足,你也牛逼,我佩服你,嘻嘻嘻,T点这边,很难很难,基本上你知道走T点,但是扇孔时,分配孔也是门学问,这个要自己在实践中领悟了。
然后就是CPU走线引出到DDR的T点这边,其实没什么讲究,表层尽量走出来,走不出来的走底层,交错的就用第三层交换位置走线,留足绕等长的空间。(理论上四个走线层最舒服,要基于成本考虑捏)
3、四片DDR及以上
四片DDR或8片DDR时,一般两两顶底对贴,跟两片DDR一个道理,没啥新东西说,意思意思到位吧,
4、DDR的PCB走线原则
布线要求(推荐以Layout Guide或仿真结果为准)
特性阻抗:单端50欧,差分100欧
数据线每10根尽量走在同一层(DO-D7,LDM,LDQS),(D8-D15.UDM,UDQS)
信号线的间距满足3W原则,数据线、地址(控制)线、时钟线之间的距离保持20mi以上或至少3W
空间允许的情况下,应该在它们走线之间加一根地线进行隔离。地线宽度推荐为15-30mil
VREF电源走线先经过电容再进入管脚,Vre电源走线线宽推荐不小于20mil,与同层其他信号线间距最好20mil上
所有信号线都不得跨分割,且有完整的参考平面,换层时,如果改变了参考层,要注意考虑增加回流地过孔或退藕电容
两片以上的DDR布线拓扑结构优选远端分支,T点的过孔打在两片DDR中间
菊花链需得到仿真验证或芯片Layout Guide要求。(一般主控支持读写平衡的才支持菊花链)
所有DDR信号距离相应参考平面边沿至少30-40mil。任何非DDR部分的信号不得以DDR电源为参考
等长规则
数据线以DQS为基准等长,地址线、控制线、时钟线以时钟线为基准等长,若软件中没有以时钟线为基准的,要手动将其选为基准线。
数据线最大长度尽量不超过2500mil,组内长度误差范围控制在+/- 25ml,DQS与时钟线长度误差控制在+/-250mil,单片DDR的最大误差不超过1000mil:
地址线误差范围控制在+/-100mil:DQS、时钟差分对内误差范围控制在+/-5mil,设计阻抗时,使对内间距不超过2倍线宽。信号实际长度应当包括零件管脚的长度,尽量取得零件管脚长度,并导入软件中。
总结
如果你直接布线不考虑一个总体的规划,等于浪费时间。
5、DDR PCB设计布线时,拓扑结构的选择
在PCB设计时我们在处理DDR部分的时候都会进行一个拓扑的选择,一般DDR有T点和Fly-by两种拓扑结构,那么这两种拓扑结构的应用场景和区别有哪些呢?
T点拓扑结构:CPU出来的信号线经过一个过孔后分别向两边进行连接,分叉点一般在信号的中心位置
Fly-by拓扑结构:通常是信号从芯片出来之后先经过第一个信号点如何再经过第二个信号点依次连接下去,直至结束
站在我们布线及等长的角度下来说:一般还是建议采用Fly-by拓扑结构,T点在等长时候不太好处理,那么我们在板子空间充足的情况下尽量是考虑T点拓扑结构,这样信号线的长度也会更短,能更好的保证信号的质量,一般我们在四片及四片一下DDR的时候采用T点和Fly-by都是可以的,如果超过四片DDR建议还是采用Fly-by拓扑结构,或者采用T点DDR顶底贴进行一个处理,顶底贴的两片DDR采用T点连接,连接之后再把线拉到DDR的对称中心处进行T点连接。
站在我们的时序要求角度来说:我们要看DDR是否支持读写平衡,如果不支持读写平衡的情况下 ,那么我们就不可以采用Fly-by拓扑结构,采用T点结构的好处在于时序信号能同时到达,而采用Fly-by拓扑结构时,支持读写平衡的DDR即使在你不能同时到达的情况下,也可以再内部进行一个调整。
如果我们在不支持读写平衡的DDR当中使用Fly-by拓扑结构就会出现运行不到额定功率的情况,速率会达不到要求,也许需要降低频率才能正常工作,所以这也是DDR设计中会经常遇到的一些问题,稍微处理不好就会导致DDR不能正常工作。
那么我们在处理DDR的时候有我们要注意哪些点呢:
1、我们需要保证我们的DDR信号有完整的参考平面。
2、DDR的等长要符合数据手册上面的要求,在空间充足的情况下把误差做小一点。
3、等长的时候需要满足3W原则。
4、与DDR无关的信号与电源不可以跨越DDR的区域。
5、等长时候尽量不要在BGA里面绕线。
6、重要信号,如差分在空间允许的情况下做包地处理。
7、任何非DDR部分的信号,不得以DDR电源作为参考平面。
8、所有DDR信号举例参考平面的边缘要保持40mil左右的间距
9、DDR做完之后给DDR区域打上一圈地过孔。
10、所有DDR信号需要严格按照数据手册上面的阻抗要求来进行设计。
11、DDR部分在布局的时候应该做到远离干扰源。
三、EMMC高速PCB布局布线设计规范
1、简介
eMMC(Embedded Multi Media Card)是嵌入式多媒体卡的简称,主要是针对只能手机和平板电脑特点二设计的。
它的实质是在NAND Flash的基础上增加了一个控制器,并预留了一个标准接口。
2、eMMC信号大体介绍
eMMC颗粒的PIN脚主要分为三组:电源引脚、控制信号引脚、数据信号引脚。
电源引脚
VCCQ电压:该电压由CPU的数据总线的VCCIO决定(eMMC总线VCCIO值必须与VCCQ保持一致)
VCC电压:该电压为核心电压;
VDDIM:内部与内核供电端相连,主要功能是稳定内核电压,该PIN脚直接连接一个对地的1μF电容。
控制信号引脚
CLK:从Host输出的时钟信号,用于数据的同步。
CMD:主要用于Host向eMMC发送指令以及eMMC向Host发送请求。
DS时钟:DS时钟由eMMC发送给Host,用于Host与eMMC进行数据接收同步。只有在HS400模式下,才需要使用DS引脚。
注意:HS200模式下,需要使用CLK、CMD、D[3…0];HS400模式下,需要使用CLK、CMD、D[7…0]、DS。
控制信号引脚
CLK:从Host输出的时钟信号,用于数据的同步。
CMD:主要用于Host向eMMC发送指令以及eMMC向Host发送请求。
DS时钟:DS时钟由eMMC发送给Host,用于Host与eMMC进行数据接收同步。只有在HS400模式下,才需要使用DS引脚。
3、eMMC封装
针对eMMC的封装,根据PIN脚可以分为153ball和169ball,但是这两种的引脚是兼容的,知识后者多了16个空脚,用于芯片的固定,没有任何信号定义。芯片封装万科的尺寸由:
11.5*13
12*16
14*18
16*20
实物如下:
通常,我们在PCB Layout时,会预留最大的尺寸,焊盘会绘制成169ball,这样可以兼容153ball的芯片。
4、硬件电路设计
电源部分电路
控制和数据引脚
其他部分
5、PCB Layout建议
关于eMMC5.1版本的PCB走线layout和滤波电容摆放建议如下:
Recommended decoupling capacitors:
— VCCQ ≥ 0.1 uF x1 and 2.2 uF x1 (this cap should be as close as possible to the C6 ball) and 1 x 1uF
— VCC ≥ 0.1uF x1 and 2.2uF x1
— VDDI ≥ 0.1uF x1 and 2.2uF x1
原理图参考设计如下:
PCB layout参考设计
参考设计1
参考设计2
参考设计3
参考设计4
参考设计5
前面的参考设计显示了v5.x eMMC设备使用大致6mil宽度布线和12mil/24mil过孔的示例布线。需要注意的一点是,由于eMMC球的间距,可能需要调整线宽,以使线可以通过“NC”球。从参考设计1-4都采用了为了躲避NC进行线缆的粗细调整,参考设计5采用直接穿过NC PIN的layout方式,关于参考设计5,从厂家给的建议如下:
e·MMC signals can be fanned out through NC pins. No internal connection is present for NC pins. Micron recommends that e·MMC signals not be fanned out through RFU pins.
e·MMC信号可以通过NC引脚扇出。NC引脚不存在内部连接。Micron建议不要通过RFU引脚扇出e·MMC信号。
大家可以根据自己的认识对eMMC进行pcb layout,此文章只是作为参考。enjoy it