做个ZYNQ核心板!

还是先放个成品图😎


Final_Product_1


Final_Product_2
——————————————————分割线——————————————————

前一阵子突然心血来潮,想做一个小小的Zynq核心板,于是便开始了这个项目。

1 架构设计

基本上,因为这里要追求小巧,就按最小系统设计这个核心板。所以,这里我们只把必须的器件放在这个核心板上。
必须的器件有:电源管理,时钟,Nor Falsh,DDR,几个指示LED,BOOT模式选择的拨码开关。
其他引脚统一通过板对板连接器引出,JTAG再单独通过接口引出。
由于基本架构非常简单,这里就不画图了。

2 选芯片

2-1 选ZYNQ

首先我们打开Xilinx官网的选型表,产看ZYNQ 7000以及ZYNQ Ultrascale+系列的选型表,就会发现,小封装的ZYNQ,有7007S/7010的CLG225,和ZU1/2/3的SBVA494和SBVA530。


ZYNQ_7000_Package


ZYNQ_Ultrascale+_Package

由于ZU1/2/3的小封装是0.5球距的且太贵,这里就选CLG225的7010。

2-2 选DDR

ZYNQ上的DDR,见过有人用镁光的,ISSI的,Alliance的,金士顿的,以及南亚的。其中南亚的封装最小,而且好买不贵,就选南亚的。


NT5CC256M16ER-EKI_Package

其实Winbond的DDR比南亚的还小一圈,是7×13mm的,但是有人遇到过Winbond的DDR不兼容ZYNQ的情况,所以这里不用Winbond的。

7000系列支持DDR3与DDR3L,这里对速度没啥要求,就用DDR3L的吧,降低一点功耗。7010-CLG225只支持16Bit的DDR,这里就选一片16Bit的DDR3L就好;容量就选支持的最大的,256Mb×16。速度等级什么的,无所谓,反正ZYNQ跑不满;温度等级选个工业级的。这里最后选了NT5CC256M16ER-EKI。


NT5CC256M16ER-EKI

2-3 选电源管理

电源管理基本上有两种方案,一种是选一个多通道单片的PMIC,很多厂家都提供这种IC,像是MAX20029/EA3059之类的很常见,用起来也比较简单,有的内部都带有上电时序,但是这种PMIC的缺点是它的QFN封装太占地方了,还不如几个分立的加起来省地方,而且方方的一个不好布局。


MAX20029

再另外一种就是几个带有EN和PG引脚的独立BUCK芯片级联了,这里本来想选集成电感的电源模块来着,但是类似TPS82130这样好买到的占板面积太大了,这里也用不到17V输入;MPM3812C/MPM3846C/TPSM82866A这种5V输入且占地小的,目前还买不到。于是这里就打算换成分立式的。


TPSM82866A

由于要追求小,所以IC肯定选WLCSP的,于是上各家官网选型,发现TPS62088不错,带PG带EN,最大输出3A电流,开关频率很高。


TPS62088

用FTC141208SR33MBCA与它搭配,非常合适,IC+电感占地1.5×3×0.8mm,基本上功率密度算是第一梯队了。


FTC141208SR33MBCA

2-4 选Nor Flash

Nor Flash同样,为了更小的占板面积,DFN/SOP统统不要,只要WLCSP的,翻阅Xilinx的支持器件列表,找到MX25U12843GBBI00TR这个又小又薄容量也够,于是就选它了。


MX25U12843GBBI00TR

2-5 选有源晶振

有源晶振当然也是打开立创,选择对应频率和电压,选封装最小的那个。这里需要33.33333MHz给PS,50MHz给PL,分别选用OT201633.3333MJBA4SL与OT201650MJBA4SL。


Crystal_Oscillator

3 选其他组件

3-1 选板对板连接器

板对板连接器之前用过树莓派CM4的那个,感觉不错,这里就选这个系列了,0.4mm的间距以及超低的高度,非常适合这里这种高密度应用。


DF40

3-2 选拨码开关

板对板连接器是1.5mm的合高,这里拨码开关的高度也要1.5mm以下,这里选了CVS-02TB。


CVS

4 设计电路

4-1 ZYNQ核心部分

4-1-1 ZYNQ核心配置

ZYNQ的核心配置其实比较简单,一些上下拉电阻配置一下模式;一些特定的引脚接到LED用作指示或者User LED;BOOT引脚拉到拨码开关选一下启动模式;单独引出JTAG再加个ESD。


ZYNQ_Configuration

4-1-2 ZYNQ核心去耦

核心部分去耦的话,其实就是一堆电容,尽量保证每个电源引脚与地之间都有一个去耦电容。


De_Coupling

这里说一下这个去耦电容取值的问题,首先讲一个概念,PDN,电源分配网络,去耦电容实际上就是让PDN在一个宽带内的阻抗很小,来保证供电电压的稳定,一些高端一些的芯片会要求PDN在各个频段的阻抗不能大于多少。
其中,低频段,比如100kHz以下,PDN的阻抗主要由VRM的EA决定;100kHz-1MHz的,主要由VRM的输出电容决定,因为这些电容通常来说容量较大;1MHz-10MHz的,基本上由去耦电容决定,这里就是BGA背面的电容;10MHz-100MHz的,基本上由PCB寄生电容决定,因为两大块铜箔组成的寄生电容性能比较理想,ESL很小;100MHZ以上,我们不太关心,因为这部分一般由芯片封装基板上的电容(小电容,排容或长款逆转电容),以及芯片内部硅片上的电容决定。
这里,我们关心的主要有两个方面,一个方面是去耦电容在高频下的阻抗。MLCC的ESL基本只与封装有关,同样封装的MLCC,100nF和4.7uF的ESL差不多,所以他们在高频段的阻抗其实是差不多的。
那么,为什么这里要用一堆4.7uF而不是一堆100nF,也不是官方推荐的多个不同容值并联呢?有以下三个原因:
第一,由于板子要小,所以DCDC的输出电容不能占太多地方,所以这里把去耦电容容值加大,部分弥补了这一点。
第二,关于为什么不推荐多个不同容值电容并联,假设用一个1uF与一个100nF并联,那么会在他们各自的谐振点之间产生一个阻抗尖峰,这可能会导致一些问题,甚至大部分情况下并不如两个1uF并联来得好,高频段低频段都是如此;只有在少数频点,例如原100nF电容的谐振点比两个1uF并联性能好,不过这样得不偿失。
第三,是关于瞬态响应的问题,VRM到芯片的寄生电感,相比去耦电容到芯片的寄生电感,要大得多,所以实际上,当芯片供电电流跳变的非常短时间内,变化的电流基本上需要用去耦电容来稳住电压,这时候较大的容值可以产生更低的压差,是更好的。

4-2 DDR部分

4-2-1 DDR配置

DDR这块为了节省面积,选了丐中丐的方式:不用DDR终端稳压器,用电阻分压替代;不加40欧终端电阻,导线直连完事。再加上一些上下拉即可。


DDR_Configuration

4-2-2 DDR连接

这个也没啥说的,就是一些组内交换和整组交换,方便Layout。


ZYNQ_DDR

4-2 电源部分

4-2-1 电源树设计

整个核心板需要以下几个电源轨:
1.0V的BRAM/PS/PL核心供电
1.35V的DDR3L供电
1.8V的AUX/ADC/BATT/PLL/PSIO供电
3.3V的Bank0(JTAG)供电
可调的Bank34/35供电

这些供电有上电时序要求,具体参考Xilinx的手册即可,这里的上电时序是:1.0V→1.8V→1.35V→VADJ→3.3V

4-2-2 Buck设计

为了小小的,这里的Buck选了WLCSP封装,4MHz开关频率的TPS62088,让电源部分占板面积非常小。

为了整体高度够低,也为了有效地给4MHz的Buck滤波,输入输出电容这里用的都是0402的。电感使用的是T-Core的扁铜一体成型电感,DCR与交流损耗都极低。


Buck

4-2-3 LDO设计

由于板上空间紧张,并且Bank0供电要求电流不大,这里就用一个小封装的LDO来产生3.3V


LDO

注意,这里由于Xilinx手册中上电斜率的要求,选了TLV75533PDQNR这颗带内部软启动的LDO,像LP5907这种常见的小封装LDO由于内部没有软启动,不能用在这里。


LDO_Power_Up

4-3 时钟部分

时钟部分很简单,有源晶振加上一个穿心电容滤波即可,注意PL的时钟需要连接到MRCC引脚。


Clock

4-4 Flash部分

Flash也挺简单,对应的数据线连上,加上一些上下拉即可。


Flash

4-5 JTAG

JTAG除了在板对板连接器上引出外,为了方便调试,还在核心板上通过一个2×3P的1.27mm排针引出,这里还加上了ESD二极管来保护。


JTAG

4-6 引出IO

所有其他IO通过板对板连接器引出,为了更好的信号完整性以及更好地散热,所有的信号线旁边都有一个紧邻的地。


BTB

4-7 固定安装孔

为了更好的机械性能,这里还在板子的四个角加上了四个贴片螺母,让安装更稳定。


Spacer

5 Layout

这里用8层板完成了所有连线,层叠结构为:Signal-GND-Signal-Power-Power-Signal-GND-Signal。每个信号线都有相邻的完整地平面或者电源平面,保证信号完整性。


Layer_Stack

高速信号线这里没有用等长,而是通过Vivado导出芯片封装内部延时,让高速差分对的延时匹配;DDR部分由于ZYNQ内部DDR控制器可以提供一些延时匹配,这里不用严格等延时,我这里的延时差控制在50ps以内,剩下的交给DDR控制器自训练即可。


Routing

电源这里,还是反馈节点最近,高di/dt环路最小,高dv/dt面积最小即可;为了节省占板面积,输入/输出电容我放在了背面。


Buck_Layout

去耦电容就放在每个电源BGA焊盘的背后,让寄生电感最小。


De_Coupling_Capacitor_Layout

6 焊接

焊接这里就是先手焊BTB,再用加热台焊正面的元件(ZYNQ,DDR等),再用风枪焊接背面元件即可


PCB


Final_Product_2

7 测试

用PL点了个灯,其中PL的时钟由PS给,这样可以同时测试PS的时钟,PS的DDR,以及PL。
那个微微亮的橙色LED就是PL_UserLED,由于限流电阻取的有点大,所以不太亮,改小一点就好了。


Test

发表回复