资讯动态

Zynq-7020核心板硬件启动链路原理图深度拆解

发布时间:2026/10/26 6:33:18 来源:尧图企业网站定制
简介这份资源为Xilinx Zynq-7020芯片开发板原理图面向嵌入式系统、FPGA及硬件设计方向的工程师与学习者可用于参考Zynq-7000平台的板级设计思路与接口电路实现。压缩包内共1个PDF文件约417KB以原理图图纸形式呈现便于直接查阅与打印。图纸按功能模块划分涵盖POWER电源部分含POWER_INPUT及1V0、1V5、1V8、3V3等多路电压输出与参考电压设计、ZYNQ7010_POWER供电与配置电源、DDR3内存、USB TO UART、USB OTG、HDMI接口、EEPROM与QSPI Flash、SD卡与LED、WIFI与蓝牙、USB TO JTAG等模块并附有整体架构框图可帮助读者理解各接口与电源域的连接关系。目前已有3667人学习下载适合作为嵌入式开发板硬件设计、原理图阅读与二次开发的参考材料。1. 一块核心板能不能跑起来原理图里早就写好了答案很多人拿到 Zynq 开发板的第一反应是插电、接串口、看有没有打印。但真正决定这块板子能不能稳定跑 Linux、DDR3 能不能跑到 1066 Mbps、USB 能不能识别、SD 卡能不能启动的不是 Vivado 里那个 Block Design而是那张看起来密密麻麻、全是网络标号的原理图。Zynq-7020 这类 SoC 把 ARM 处理器和 FPGA fabric 塞进同一颗芯片PS 侧和 PL 侧各有各的电源域、时钟域和复位域任何一处供电时序或参考电压出问题表现都是“板子能上电但起不来”这种玄学故障。这份原理图把 17 页的电源树、DDR3 拓扑、MIO 分配、配置电路全部摊开本质上是一份“硬件启动链路”的完整说明书。搞懂它你才能从“照着教程点灯”变成“知道为什么这盏灯能亮”。2. 电源树为什么 Zynq 的供电不是“给个 3.3V 就行”Zynq-7020 的电源引脚数量在 400 球 BGA 封装里占了相当比例这不是设计者想多放几个电容而是因为 PS 和 PL 对电压、纹波、上电顺序的要求完全不同。原理图第 2 页到第 3 页把整个电源树拆成了 POWER_INPUT、POWER_1V0、POWER_1V5、POWER_1V8、POWER_3V3、POWER_VIO 几个域每个域背后都是一组 MP2143 这类同步降压芯片加 LDO 的组合。2.1 五路核心电压的分工与上电顺序先看电压清单。VDD_1V0 主要给 PS 的 CPU 核心和 PL 的 VCCINT 供电这是整个芯片里电流最大、对纹波最敏感的一路。VDD_1V8 负责 DDR3 的 VDD 和部分 MIO bank 的 VCCO。VDD_1V5 是 DDR3 的 VTT 端接电压来源同时给 VCCAUX 供电。VDD_3V3 覆盖 USB PHY、HDMI、SD 卡和大部分外设 IO。VDD_VIO 则是 PL 侧 bank 的 IO 电压可以通过跳线或电阻选择 1.8V/2.5V/3.3V。上电顺序不是随便排的。常见的实现思路是VCCINT1.0V先建立然后是 VCCAUX1.8V最后才是 VCCO3.3V 或 VIO。原理图里用 PG_1V0、PG_1V8、PG_1V5、PG_3V3 这些电源良好信号做级联使能前一路的 PGOOD 拉高后才释放下一路的 EN 引脚。如果顺序反了芯片内部 ESD 保护二极管可能被正向偏置轻则漏电大重则锁死。# 典型的上电时序检查点以原理图网络标号为准 # 1. 测 VDD_1V0 是否在 10ms 内达到 0.95V 以上 # 2. 测 PG_1V0 是否在 1V0 稳定后 5ms 内拉高 # 3. 测 VDD_1V8 是否在 PG_1V0 拉高后 10ms 内建立 # 4. 最后确认 VDD_3V3 和 VDD_VIO 的上升沿不早于 1V8这段检查逻辑对应的是原理图里 U8、U9、U10 几颗 MP2143 的 EN 引脚连接关系。MP2143 的 EN 阈值典型值是 1.2V所以前级 PGOOD 输出需要经过分压或直接驱动。如果发现某路电压起不来先量 EN 脚电压再量 FB 脚反馈电阻是否虚焊——这是血泪经验里排第一的故障点。2.2 DDR3 的 VTT 与 VREF为什么 0.6V 参考电压不能省原理图第 7 页专门有一块 POWER_VTTREF 电路核心是一颗 TPS51200。这颗芯片输出 VTT_DDR3 和 VREF_DDR3VTT 跟踪 VREF 的一半也就是 DDR3 的 VDD/2。DDR3 的 VREF 是输入缓冲器的判决门限如果 VREF 漂移超过 ±2%数据采样就会随机出错表现是内存测试偶尔过、偶尔不过或者跑一段时间后内核 panic。TPS51200 的 REFIN 引脚通过两个 80.6kΩ 电阻分压得到 0.6V这个 0.6V 再经过内部缓冲输出 VREF。VTT 则通过内部 LDO 产生能吸收和灌入电流用来匹配 DDR3 端接电阻上的反射。原理图里 C109、C110、C111 这几颗 10uF 和 0.1uF 电容就是给 VTT 和 VREF 做去耦的位置必须尽量靠近 DDR3 颗粒的 VREF 引脚。注意VREF 的走线要包地不能和 DDR3 的时钟线或地址线平行走太长。如果 VREF 上看到几十毫伏的开关噪声先查去耦电容的地回路是不是太长。2.3 电源域与 IO 电平的对应关系Zynq 的 MIO bank 和 PL bank 的 VCCO 决定了该 bank 的 IO 电平标准。原理图第 6 页把 PS_MIO0 到 PS_MIO53 分成了 MIO0_500 和 MIO1_501 两组分别由 VCCO_MIO0_500 和 VCCO_MIO1_501 供电。MIO0 组通常接 QSPI、SD 卡和 UART电压是 1.8V 或 3.3VMIO1 组接 USB、以太网和 GPIO电压也是独立可选的。PL 侧的 bank 34、bank 35 的 VCCO 来自 VDD_VIO原理图里通过 R173、R174 这些 0Ω 电阻做选择。如果你把 bank 34 的 VCCO 设成 1.8V但外接了一个 3.3V 的 HDMI 电平信号IO 缓冲器的上管会一直导通芯片发热甚至损坏。所以看原理图时先确认每个 bank 的 VCCO 网络标号再对照外设的电平要求。3. DDR3 接口等长、端接和 VREF 到底在解决什么问题DDR3 是 Zynq PS 侧唯一的高速并行总线频率可以到 533MHz数据率 1066Mbps。原理图第 7 页和第 8 页把 PS_DDR3 的地址线、数据线、控制线、时钟线全部分组标出每组都对应一个 DQS 差分对。这不是为了好看而是因为 DDR3 的时序收敛依赖两个东西Fly-by 拓扑和 Write Leveling。3.1 Fly-by 拓扑与端接电阻的位置DDR3 的地址、命令、控制信号采用 Fly-by 走线从 Zynq 的 PS_DDR 引脚出发依次经过每一颗 DDR3 颗粒最后在末端用一颗电阻端接到 VTT。原理图里 R200、R202 这两颗 80.6Ω 电阻就是端接电阻它们把信号能量吸收掉防止反射回来干扰后续颗粒的采样。数据线则不同每 8 位数据加一对 DQS 构成一个字节通道点对点连接到颗粒。原理图里 PS_DDR3_DQ0 到 DQ7 对应 DQS_P0/N0DQ8 到 DQ15 对应 DQS_P1/N1以此类推。每个字节通道内部要求等长误差控制在 ±5mil 以内通道之间可以有不同的延迟靠 Zynq 内部的 IDELAY 和 Write Leveling 来补偿。# 用 Python 粗略估算 DDR3 走线延迟匹配 # 假设 FR4 内层走线延迟约 180ps/inch trace_lengths { DQ0: 1.250, # 单位inch DQ1: 1.248, DQ2: 1.252, DQS_P0: 1.249, } max_len max(trace_lengths.values()) min_len min(trace_lengths.values()) skew_ps (max_len - min_len) * 180 print(f字节通道内偏斜{skew_ps:.1f} ps) # 如果偏斜超过 50psDDR3 眼图会明显收窄这段代码只是示意实际 PCB 设计里会用阻抗测试和 TDR 来验证。原理图给出的网络标号是约束文件的依据Vivado 里要写 set_input_delay 和 set_output_delay这些值来自 DDR3 颗粒的 datasheet 和 PCB 走线报告。3.2 VREF 与 ODT 的配合DDR3 颗粒内部有 ODTOn-Die Termination通过 MR1 寄存器设置 RTT_NOM、RTT_WR 等值。原理图里 PS_DDR3_ODT 网络从 Zynq 连到颗粒的 ODT 引脚控制器根据读写状态动态切换端接电阻。VREF 则提供判决门限ODT 提供阻抗匹配两者配合才能让眼图张开。如果 VREF 偏离 VDD/2 超过 2%或者 ODT 设置不对读写窗口会偏移。常见的调试手段是跑 Zynq 自带的 DDR3 校准看校准报告里的读窗口和写窗口是否居中。如果窗口偏向一边先查 VREF 电压再查 ODT 配置。3.3 地址线的 VREF 与数据线的 VREF 为什么分开原理图里 PS_DDR_VREF0_502 和 PS_DDR_VREF1_502 是两个独立的 VREF 引脚分别给地址/命令组和数据组。这是因为地址线是 Fly-by 拓扑数据线是点对点两者的噪声环境不同。分开供电可以避免数据翻转时对地址 VREF 的干扰。PCB 上这两个 VREF 网络要各自走线不能合并。4. 配置与启动QSPI、SD 和 JTAG 的优先级怎么定Zynq 的启动模式由 MIO[8:2] 这几个引脚在上电复位时的电平决定。原理图第 6 页把 PS_MIO8 和 PS_MIO7 引到了 BOOT_OPTION 区域通过电阻上拉或下拉来设置启动介质。QSPI、SD 卡、NAND、JTAG 这几种模式的选择逻辑就藏在这几个电阻里。4.1 MIO 引脚的分工与 BOOT_OPTION 电阻MIO[8:7] 决定启动设备00 是 JTAG01 是 QSPI10 是 SD 卡11 是 NAND。MIO[6:5] 决定 QSPI 的反馈时钟源和总线宽度。MIO[4:3] 决定 PLL 旁路和加密使能。原理图里 R191、R192、R193、R194 这几颗 20kΩ 电阻就是用来设置这些电平的。如果板子插了 SD 卡但启动不了先量 MIO[8:7] 在上电瞬间的电平。有些设计用拨码开关代替电阻开关接触不良会导致启动模式随机跳变。更隐蔽的问题是 MIO 引脚在复位释放后会被外设驱动如果 SD 卡的 DAT3 引脚被拉低可能干扰 MIO[8] 的采样。4.2 QSPI 与 SD 的引脚复用原理图第 6 页显示 QSPI_DQ0 到 QSPI_DQ3、QSPI_CLK、QSPI_CS 这六根线接在 MIO0 组SD 卡的 CLK、CMD、DATA0 到 DATA3 也接在 MIO0 组。这两组信号在 Zynq 内部是复用的不能同时使用。所以启动模式选择不仅是软件配置硬件上也要确认外设没有冲突。常见的实现思路是QSPI 用于存放 BootROM 和 FSBLSD 卡用于存放 Linux 内核和文件系统。启动时 BootROM 先从 QSPI 读 FSBLFSBL 再根据拨码开关决定从 SD 卡还是 QSPI 加载后续镜像。原理图里 QSPI_CS 和 SD_CMD 是分开的网络但都映射到 MIO 的同一组引脚靠内部 MIO 路由切换。4.3 JTAG 调试链与 PL 配置原理图第 4 页的 FPGA_CONFIG 区域把 FPGA_JTAG_TCK、TMS、TDI、TDO 引到了 USB TO JTAG 芯片。Zynq 的 JTAG 链同时覆盖 PS 和 PL通过 TAP 控制器可以访问 ARM 内核和 FPGA 配置逻辑。如果 JTAG 连不上先查 TCK 和 TMS 的上拉电阻再查 USB TO JTAG 芯片的供电和晶振。PL 的配置通过 PCAP 接口从 PS 侧发起原理图里 FPGA_CONF_DONE 和 FPGA_GRST 是状态和复位信号。如果 PL 配置失败DONE 引脚不会拉高此时要查 PCAP 时钟和配置数据通路。常见的翻车点是 PCAP 的时钟频率设太高或者配置数据在 DDR 里被覆盖。5. 避坑与排查原理图里那些容易看走眼的细节5.1 现象板子上电后电流只有几十毫安串口无输出原因VDD_1V0 没有建立或者 PG_1V0 没有拉高导致后续电源域不使能。原理图里 U8 的 EN 引脚如果悬空MP2143 不会启动。解决量 U8 的 EN 脚电压正常应该大于 1.2V。如果为 0查前级 PGOOD 信号是否被其他电路拉低或者 EN 脚的分压电阻是否虚焊。5.2 现象DDR3 校准失败报读窗口或写窗口超限原因VREF 电压偏离 VDD/2或者 DQS 差分对的走线不等长。原理图里 VREF 的分压电阻 R200、R202 如果精度不够用 5% 代替 1%VREF 会偏。解决换 1% 精度的 80.6kΩ 电阻量 VREF 对地电压应该在 0.6V ± 12mV 以内。同时检查 DQS_P 和 DQS_N 的走线长度差是否小于 5mil。5.3 现象SD 卡启动时好时坏偶尔能识别偶尔不能原因MIO[8:7] 的启动模式电平在复位瞬间被 SD 卡 DAT3 引脚干扰。SD 卡上电时 DAT3 可能被卡内部拉低如果这个网络和 MIO[8] 有串扰启动模式会误判。解决在 MIO[8:7] 的电阻分压点加 0.1uF 电容滤波或者改用拨码开关并在开关后加施密特触发器。同时确认 SD 卡的 DAT3 上拉电阻是否正常。5.4 现象USB OTG 识别不到设备或者识别后频繁断开原因USB PHY 的参考时钟不是 24MHz 或 48MHz或者 USBPHY_nRSET 复位信号时序不对。原理图第 10 页的 USB PHY 芯片需要外部晶振提供参考时钟如果晶振负载电容不匹配频率会偏。解决量 USB PHY 的 CLKOUT 引脚频率偏差应小于 100ppm。检查 USBPHY_nRSET 的上拉电阻和电容确保复位释放时间大于 1ms。5.5 现象HDMI 输出无显示但 FPGA 内部逻辑正常原因HDMI 的 I2C 总线FPGA_I2C_SCL/SDA没有上拉或者 HDMI_HPD 信号没有正确连接。原理图第 13 页的 HDMI 接口需要 HPD 热插拔检测信号拉高后才会输出 TMDS。解决量 HDMI 连接器的 HPD 引脚电压正常应该是 5V 经过分压后的电平。检查 FPGA_I2C_SCL 和 SDA 的 4.7kΩ 上拉电阻是否焊接。6. 从原理图到 PCB设计取舍背后的信号完整性账看这份原理图时我习惯把每一页当成一个“约束生成器”。电源页告诉你电流路径和上电顺序DDR3 页告诉你等长和端接要求配置页告诉你启动模式的硬件依赖。这些约束最终会变成 PCB 设计规则和 Vivado 的时序约束文件。但原理图本身也有取舍比如为什么用 MP2143 而不是更便宜的 LDO因为 1.0V 那一路电流可能到 2A 以上LDO 的功耗和发热扛不住。为什么 DDR3 的 VREF 用电阻分压而不是专用芯片因为 TPS51200 已经集成了缓冲分压电阻只要精度够就行。我一般会这么理解原理图是硬件设计的“源代码”网络标号是变量名电源树是函数调用关系DDR3 的 Fly-by 是数据结构。你读懂了变量怎么传递、函数怎么调用就能在板子翻车时快速定位是哪个环节出了问题。从那以后我每次拿到新板子都强制走一遍“电源—时钟—复位—启动模式—DDR3 校准”这条链路而不是直接插电看串口。希望这份原理图的拆解能帮到你需要对照原图逐页深挖的话资源里 17 页的完整网络标号和器件参数都在。本文还有配套的精品资源点击获取

读完文章,也想定制专属网站?

尧图设计师 24 小时内与您沟通定制方案

免费获取报价 →
↑