跳到主要内容6 层高速 PCB 设计实战:逻辑派 FPGA-G1 开发板布局布线详解 | 极客日志编程语言
6 层高速 PCB 设计实战:逻辑派 FPGA-G1 开发板布局布线详解
综述由AI生成详细记录了基于立创·逻辑派 FPGA-G1 开发板的 6 层高速 PCB 设计全过程。内容涵盖资料准备、原理图导入、电源树分析、元件模块化布局、叠层设置、阻抗控制、差分对规则、扇孔处理、DDR3 及 HDMI 等高速信号布线、时序等长调节、DRC 检查、铺铜优化及 Gerber 文件导出。重点讲解了 FPGA 与 ARM 异构架构下的电源完整性设计、高速信号阻抗匹配(单端 50Ω、差分 90Ω/100Ω)、3W 间距原则、等长控制及层叠方案选择,适合电子工程师参考学习。
链路追踪27 浏览 一.笔记前资料准备
立创·逻辑派 FPGA-G1 是一款面向学习和开发的国产 FPGA 开发板,它的一大特点是采用了FPGA 与 ARM Cortex-M 内核相结合的异构架构,并提供了非常完善的开源资料。
**主控:**GW2A-LV18PG256C8/17、GD32F303CBT6
FPGA 逻辑单元:20KHz。
ARM 主频:120MHz。
DDR3 内存:2Gbit
**FPGA 端存储:**FLASH16M/64M/128M
**ARM 端存储:**TF 卡 2GB/4GB/16GB/32GB
**FPGA 端 8P 接口支持:**Gowin 程序下载、GAO 在线逻辑仿真、虚拟串口
**ARM 端 6P 接口支持:**DAP 程序下载、Debug 仿真、虚拟串口
这是我们的功能模块布局,先了解一下,等布局时候就有印象。
1.主控与存储系统
(1)FPGA 芯片:高云 GW2A-LV18PG256C8/I7
- 型号解读:GW2A 系列,逻辑单元 18K,封装 PG256,商业级,工业级。
- 核心资源:
- 逻辑单元 (LUTs):20K。可以理解为数字逻辑的基本构建块,用来实现组合逻辑和时序逻辑。
- 寄存器 (FFs):数量与 LUTs 相关。用于存储数据,构成触发器。
- 块存储器 (BSRAM):约 900Kb。是 FPGA 内部的快速 RAM,可用于做缓冲区、FIFO 等,比用逻辑单元拼出来的分布式 RAM 更高效。
- 用户 I/O:大量可自由配置的 IO 口,支持 LVCMOS、LVTTL 等多种电平标准。
- PLL:锁相环,用于时钟管理,可以对输入时钟进行倍频、分频、相位偏移。
- 用途:实现任何你想要的数字系统,从简单的逻辑门电路到复杂的处理器(如 RISC-V)、视频接口、以太网 MAC 等。
ARM 微控制器:兆易创新 GD32F303RET6
- 核心:Cortex-M4,带 FPU(浮点运算单元),主频 120MHz。
- 存储:512KB Flash, 64KB SRAM。
- 丰富外设:多个 USART、I2C、SPI、I2S、CAN、USB 2.0 FS OTG 等。
- 用途:在开发板上,它扮演着'系统管理器'的角色:
- 运行'固件'程序,管理 TF 卡、USB 设备。
- 通过并行总线与 FPGA 通信,控制 FPGA 的逻辑。
- 甚至可以为 FPGA 配置程序,即将 FPGA 的比特流文件从 TF 卡读取,然后通过配置接口下载到 FPGA 中。
c) 存储芯片
- DDR3 SDRAM (MT41J128M16JT-125):
- 容量:128Mbit (地址) x 16bit (数据位宽) = 256MB。
- 位宽:16 位。这是 FPGA 的外挂内存,主要用于需要大容量、高速缓存的场景,例如处理视频帧、音频数据、或作为软核处理器的运行内存。FPGA 通过专用的 DDR3 控制器 IP 核来访问它。
- QSPI Flash (W25Q64):
- 容量:64Mbit = 8MB。
- 接口:QSPI (Quad SPI),速度快。
- :
用途
- 存储 FPGA 的配置文件:这是最主要的功能。开发板通电后,FPGA 默认会从这片 Flash 中读取配置信息,使自己变成你设计的电路。这就是'程序固化'。
- 存储用户数据:如字体库、图片资源等。
2. 电源管理系统
FPGA-G1 的电源设计比较复杂,需要多种电压轨:
- 输入:5V (来自 Type-C 或下载器)。
- 核心电压 (VCC):通常是 1.2V,为 FPGA 和 ARM 的内核逻辑供电。
- I/O 电压 (VCCIO):通常是 3.3V/2.5V/1.8V 等,为 FPGA 的 Bank 供电,使其 IO 电平与外围器件匹配。
- 辅助电压:如 DDR3 需要的 1.5V,PLL 需要的模拟电源等。
- 用途:板上集成了多个DC-DC 开关电源和LDO 线性稳压器,它们共同构成了一个高效、稳定、低噪声的电源树,为各个芯片提供精准的电压。这是硬件稳定运行的基石。
3. 时钟与复位系统
- 时钟晶振:
- 开发板会为 FPGA 和 ARM 提供外部有源或无源晶振(例如 27MHz, 50MHz)。
- 这是整个系统的'心跳',所有同步逻辑都在它的节拍下工作。
- FPGA 内部的 PLL 可以基于这个基础时钟产生所需的各种频率。
- 复位电路:
- 通常由一个复位按键、一个电容和一个电阻构成,产生一个稳定的低电平脉冲,将整个系统置于已知的初始状态。
4. 外部接口与连接器
- 下载/调试接口:
- FPGA 下载:使用高云专用的下载器,通过 JTAG 接口进行程序下载和调试。
- ARM 调试:使用标准的 SWD/JTAG 接口(通常通过板上的排针引出),配合 J-Link、ST-Link 等调试器进行程序下载和单步调试。
- 扩展 IO 排针 (2x20 Pin):
- 这是开发板的'手脚',将 FPGA 和 ARM 的大量 IO 口引出。
- 用途:连接外设模块,如传感器、电机驱动、键盘、显示屏等。你可以用杜邦线自由连接,构建自己的系统。
- 板载外设:
- RGB 三色 LED:由 FPGA 直接驱动,用于演示 PWM 调光或作为状态指示。
- 按键和拨码开关:提供用户输入。
- TFT 液晶屏接口:通常是 SPI 接口,方便连接小屏幕。
5. 通信与显示接口
- HDMI 接口:
- 通过一颗专用的HDMI 编码芯片(如 ITE IT6611FN),将 FPGA 输出的并行 RGB 视频信号转换成 TMDS 串行信号输出到显示器。
- 用途:学习 FPGA 上的视频时序生成、色彩空间转换,最终实现 VGA、HDMI 显示输出。这是验证 FPGA 逻辑能力的经典项目。
- USB 接口:
- 连接到 ARM 的 USB 控制器,可以配置为 Device(被主机识别)或 Host(连接 U 盘等设备)。
6.总结和注意事项
- FPGA + ARM 异构架构:这是该开发板的核心特点。你既可以独立使用 FPGA 进行硬件逻辑设计,也可以利用 ARM 处理器运行嵌入式软件,或者让两者协同工作,非常适合学习 SoC(片上系统)的概念。
- 存储系统:DDR3 内存的存在使得该开发板能够处理数据量更大的应用(如图像处理),而QSPI Flash则保证了 FPGA 逻辑在断电后不会丢失,下次上电可以自动加载。
- 丰富的扩展能力:开发板通过2x20Pin 的排针引出了大量 I/O 口(FPGA 占 65 个,ARM 占 6 个),你可以轻松连接各种传感器、执行器或其他功能模块,极大地扩展了开发可能性。
开发板通过 Type-C 接口或下载器供电。需要注意的是,开发板的下载器和 USB 接口都输入 5V 电源,并且在实际 PCB 设计中,这些接口的电源线路、HDMI 供电接口以及排针均连接至同一 5V 电源网络。因此,官方特别强调:
若同时连接外部电源和 USB 端口,可能会引发电源并联问题。在此情况下,若电压出现不平衡,可能会导致电压较低一侧的器件受损。
所以,请务必遵守排针处仅允许接入 +5V 电压的规定,以避免硬件损坏。
二。原理图导入以及快捷键设置
1.原理图导入以及电源树模型画法
首先我们新建,图页,然后重命名,改名字电源树,在 EDA 里面
发现大多数都是 5V_IN 的,所以我们的源头因该就是 5V_IN
写上我们的电源源头,然后我们看到他有三个转出,所以我们放置折线,引出三个
就是这样子,然后我们需要直到,电流有多大,也是去 power 里面找,如果里面没有写,我们就看芯片的最大输出电流是多少,我们走线多少就行
然后我们发现 3V 没有进行转换了,所以到这里就结束了。然后去看 1.5V
发现转为了 VTT_DRAM 的电源,所以我们写上
然后我们找 3.3V 给谁供电,这样子设计 PCB 时候,就会有印象,发现都有,所以就不用太考虑
2.元件区域分布
然后我们去官网,找到附件,官网我放在这里吧方便找到
3.立创开源广场导入 DXF 文件
4.PCB 板框设置
导入后会有两个。因为一个是底面,一个是顶面。DXF 会有一些元件的固定位置我们需要让这些元件,在固定位置。
打开 3D 预览就可以看到我们的板子大小。就已经出来了。
5.快捷键设置
我们可以看到,官方已经帮我们设置好了,并且导出了快捷键,我们直接导入就好。
之后我们来到 PCB 隐藏所有飞线,开始模块化布局。
6.元件区域分布
(1)FPGA 区域分布
首先我们来到第一个模块,全选,然后按 shift+x 找到 pcb 的元件
然后我们放置一个矩形框,把它框在一起。代表这是一个模块。
(2)DDR3 区域分布
DDR_3 我们同理,为了更好看我们把边框放在顶层丝印层。
(3)DDR3 电源区域分布
(4)JTAG 下载口区域分布
(5)晶振及指示灯区域分布
晶振和,指示灯放在这里,这样子第五个原理图就抓取完成了。
(6)HDMI 区域分布
hdmi 我们也放在他的接口附近,第六个原理图可以了。
(7)LED 灯及数码管区域分布
数码管电路没有那么重要,我们先抓在一起就行,第七个完成了。
(8)GT32MCU 模块区域分布
(9)TF 卡座
(10)排针引脚
(11)电源区域分布
(12)总体预览
这样子我们布局分割下来,发现非常清晰,我们进行模块化布局就好了。
7.把两个 DRX 抓取合并在一起
这两个一个是地层,一个是定层,如果直接移动会发现两个洞没有重合,就会有错误。
我们要选中他按下 x 进行镜像。x 是左右镜像,y 是上下镜像。
然后我们选中,按下 shift+d 进行吸附圆心,把它移动到顶层的圆心处。
(1)排针的吸附
(2)HDMI 接口吸附
(3)USB 接口吸附
(4)JTAG 下载口吸附
(5)TF 屏幕座子
(6)TF 卡座
一定要主意好引脚的方向,和位置。MCU 下载口也吸附好了。
(7)按键
然后我们将这两个按钮的标记给放大一点,图个选中我们器件的话我们在右侧的过滤中,把元件给过滤掉,这样子我们就可以选择我们的文字了。然后我们知道这两个按键是我们 MCU 模块的。
所以我们找到 boot 这个管脚的按键。和 rest 管脚按键
这三个按键,先摆在这里,后续我们根据走线情况,进行按键布局。
三。元件的预布局
1.FPGA 预布局
然后我们进行预布局,预布局遵循先大后小的原则。先放大器件,小器件随便找个地方就可以塞下。
我们打开飞线,将元件放入,发现还算顺畅线条。因为我们排针的位置已经固定了。CPU 一般摆在板子的正中间。
2.DDR 预布局及规则
3.DDR 电源及 HDMI
然后将 DDR 的电源靠近芯片,HDMI 的元件也放在一起。
4.MCU 单片机
5.单片机晶振
然后我们将晶振布局,因为晶振也是比较重要的。放在单片机的晶振引脚。
6.flish 及晶振
然后我们再把晶振的电容拿过来,在这里摆放好,晶振从这里接入
7.数码管
把这个数码管和他的器件拿过来,按照我们方便布线的规则,进行去布线。
8.更改电源网络颜色
然后我们找到 5V 的输入。将他换个颜色,方便我们看哪个器件与 5V 线路相连接。
先把 3.3V 拿走,先拿出 1.5V 和 1.0V 的。
9.总体预览
这样子我们大的器件,基本上都塞进去了。剩下的就是电容电阻,我们模块化布局时候在进行细微的调整。
接下来就是最重要的一步,我们进行各个部分的模块化布局
四。元件模块化布局
一。HDMI 布局布线要点。
ESD 器件要靠近我们的 HDMI 的端子。这两个就是我们的 ESD 器件
首先我们先将所有器件抓起来。除了接口,方便我们布局。
我们将 GND 设置为灰色,这样子只要看到灰色就知道是 GND 了。
剩下的上下拉电阻靠近各自的管脚放就好,这样子我们就布置的差不多了。此时 HDMI 模块我们的布局就完成了。
二。MCU 模块布局
由于我们摆放了晶振,所以晶振电路我们就可以不用摆放了,然后来到复位电路
我们直接把它抓取出来,进行我们的布局,要记得按键已经固定了,所以我们只需要移动其他的元器件就够了。
三.TF 屏幕底座
然后抓取 TFT 的一个底座。底座已经固定了我们就不选择他。我们要先放滤波电容,放在 3.3V 的位置。
四。MCU 测试点及电容
五。DLINK 下载口
六。RGB 灯
七。功能按键
因为我们按键是固定的,所以我们直接抓取其他三个元件就行。
八。TF 卡 ESD 器件
然后我们把 TF 卡的 ESD 器件进行布局,我们为了防止静电,要靠近接口去放。
摆上最后的 TF 卡的 ESD 器件放在靠近端口的位置,我们两大模块的布局就已经完成了。
小总结一下,这几个模块最重要的是,我们的晶振要放在靠近芯片位置,还有 ESD 器件为了防止干扰和静电,要放在靠近端口位置,还有熟练使用快捷键。一个电源端口,对应一个滤波电容。
九。JTAG 下载口。
然后我们把他所有的飞线都选出来,然后根据飞线位置,进行布局。
十。电源指示灯
我们只需要找个 3.3V 的地方,把它给放下就行。不好走线再调整。
十一。NORFlish
然后我们抓取 NORFLASH 因为我们 NORFLASH 已经放完了,所以抓取他的电阻,电容就好。
到这里我们的 JTAG 就已经布局完成了。剩下我们的各种外设需要布局。
十二。三色 LED 灯
经过我们布局,我们还是以底下为直线布局,因为上面可以打孔,让上面那些元件对齐,然后两个三色灯,跟我们底下的晶振对齐。
十三。按键保护电路
然后这里我们看到这些元件在按钮边上,我们给他布置上。
十四。FPGA 上拉和下拉电阻
然后找到 FPGA 的这些上拉和下拉电阻,我们进行布局。
根据飞线,我们暂时放在这里,如果有问题我们在放在底部。
可以看到基本都是 5V 和 3.3V 或者 1.0V 的测试点,我们暂时放在一边,等电源模块重新布局的时候我们可以放在电源模块的边上。到这里我们 FPGA 基本摆放完成了,接下来进行 DDR 的摆放。
十五。DDR 模块的摆放。
1.RRD 元件布局规则
这里我们只要 1 片 DDR 所以不用对称,尽量靠近 CPU 就行,然后要是两片 DDR 就要根据如图所示,进行对称布局。
抓取我们的滤波电容,滤波电容一定要靠近引脚去放置。
2.DDR 元件的摆放
我们先抓取滤波电容,可以暂时不摆放,因为后面会有一个扇出过孔的操作。
接下来抓一下端接匹配电阻。端接电阻一般是用来作我们的阻抗匹配。我们再软件也得做一个阻抗匹配,单端是 50Ω,差分是 100Ω。
抓取在一起之后,给 VTT 这个电源网络更改为绿色,方便我们进行连线。
我们先暂时放在这里占个位置,然后多余的放在底部,进行我们的布局,后面肯定会调整。
最后将 1.5V 电源改为蓝色,我们 DDR 布局基本上结束了。
十六。DCDC 电源模块布局。
1.DCDC 模块布局规则
首先看一下开关电源的布局要点,开关电源基本上都是厂家测试好的,我们只需要按照芯片手册进行布局,就行。首先我们来找到我们的主干道
5V 和 3.3V 的输入是我们输入和输出的主干道。
那我们就可以确定,我们电容的摆放位置。在布置主干道时候使得部件紧凑,电源路径尽量够短,流出打孔和铺铜的空间。满足我们输入输入的载流能力。布局时候电容一定要靠近主干道摆放,注意滤波电容先满足,先大后小的原则,大电感和电容,尽量放在主器件面。电感垂直放置。
2.DCDC 模块布局
滤波电容是我们放在 FPGA 下面的,到时候打过孔,我们放在 FPGA 旁边
十七。TYPE-C 输入
剩下的两个 CC 管脚的下拉还有一个上来都根据管脚布局。
十八。总体电源布局
1.电源 1.5V 布局
然后 1.5V 大概放在这个地方,我们大概就可以通过这里进去。
顶层不号布局,我们直接放在底层,然后贴着引脚放,方便我们打孔直接连接,
2.电源 1.0V 布局
然后 3.3V 和 1.0V 都是如此,所以我们可以模块复用一下,然后进行调整,
找到 1.0V 进行组合复用。选择 1.5V 为参考对象。
经过思考我们将 1.5V 放在这里,然后 3.3V 放在原来 1.5V 位置。
3.电源 3.3V 布局
这就是我们最终布局,然后我们放置 DDR 模块电源
十九。DDR 模块电源布局
1.电源布局
然后我们看到有两个 VREF_DRAM 的他和我们端接电阻是靠近的
到现在就只剩下滤波电容了,等扇孔时候进行我们滤波电容的摆放。
2.进行 3D 预览
3.更改排针模型
我们可以看到排针都是插在上面,以后要是拓展板子我们肯会影响高度,
然后将 Z 设置为 1.8,Y 旋转 180°。点击我们的更新,H6 也是一样的设置。
再来到我们的 3D 模型就可以看到,排针都在下面了。
五 PCB 层数分析及叠层设置。
1.层数及叠层选择
这里我们可以看到我们 DDR 的工作频率是最高的,
一般我们判断走几层板子,需要看哦我们元件飞线最密的地方,然后进行我们的选择,可以看到,这个我们四层板肯定放不下,因为四层版也就多了一个电源层,并没有给我们能走线的层数。
我们可以看到信号起码有 6 排也就是需要三个走线层。而四层版只有两个走线层,而六层板正好有三个。
2.6 层板叠层方式
第一层:顶层 第二层:GND 第三层:信号层 第四层:电源层 第五层:GND 第六层:底层
这种布局有两个 GND,可以更好的吸收噪声,干扰,而且电源和 GND 是连接的可以更好的吸收电源噪声。
走线层:顶层,底层,信号层。其他三层一般不去走线,因为高速线需要我们计算阻抗,而阻抗就需要一个完整的回流面,当作参考面。
但是我们在布局时候,已经把第一层堆满了,所以我们还需要调整下层数方案。
第二种方案可以看到,多了一个走线层,第三层,第四层,顶层,底层:都是走线层。一共四个走线层。
这种方案一般被我们称为假八层。因为有四个走线层,信号好出一点,可以适用于逻辑派 FPGA 的板子。但是比起来第一层肯定没有第一层好,因为我们的两个走线层是相邻的,就会有所串扰,我们可以把第三层和第四层之间的介质拉大一点,让他去参考我们的电源层,或者 GND 层。但是第四层靠近电源层,所以我们的高速线走第三层会好一点,因为 GND 没有电源的干扰,第二种是我们用到很多的叠层方案,所以我们可以采用这种进行布置。
第三种方案和我们第一种差不多,知识把 GND 和电源层换了,这种布局有一个缺点,底层器件无法参考 GND,一般我们顶层底层都会参考 GND。
这里我们可以看到,第四个方案,比第三个稍微差一点,因为我们第三个方案,都用 GND 给他把信号层进行分割了,就不用跨分割,信号层跨分割会造成阻抗不匹配,信号串扰和反射的影响
3.确定叠层方式及设置
用的最多的是我们的方案一和方案二,在逻辑派这个 FPGA 开发板中我们暂定方案一
我们改为,这样子的层数和配置,直接让这些都为信号层
六 .阻抗的设置
1.了解特性阻抗
接下来我们来了解一下,什么是特性阻抗,以及我们该如何去控制阻抗。
如果上面是传输线,下面是平面,那么就会在线路与平面之间形成一个小电流,而两个之间有一个磁场,那么就会形成一个电压,这样子就会产生相对来说的阻抗,在高速线路中,传输线已经不能单纯的当作一个理想的线路,需要考虑寄生电感,寄生电容,寄生电阻等等。特性阻抗就是集合一个综合传输线这些参数的合成参数,
2.不控阻抗的影响
3.特性阻抗的分类
(1).差分阻抗
(2).单端阻抗
4.阻抗的计算
(1)嘉立创阻抗神器计算阻抗
我们该如何计算阻抗呢,上面我们提到了。常见的:单端 50Ω阻抗,差分 90Ω阻抗,其他都是 100Ω常见的阻抗。
在我们的板子中,有单端 50 欧姆阻抗,还有 USB 差分的 90 欧姆阻抗
其他的比如我们 HDMI 就是常见的 100Ω差分阻抗。,DDR 时钟也是 100Ω阻抗。
我们修改一下参数,改为我们板子的参数,我们逻辑派的板子厚度就是 1.6,所以我们选择 1.6.
我们可以按照生产完成后的板子数据,进行我们的 PCB 设计
(2)应用计算好的阻抗
因为我们每一曾线宽都不同,然而设置线宽是设计总的,我们就得想别的办法。将所有的线宽设置为 50Ω的阻抗线宽,然后让嘉立创自己去调节线宽。
(1)50ohm 阻抗
(2)90ohm 阻抗
90Ω阻抗在差分对里设置。因为 90Ω是差分对的。
(3)100ohm 阻抗
我们在差分对再添加一个 100ohm 的布线规则。因为他两层都不一样我们就设置一个然后让板厂去调节就好。
5.安全间距设置
(1)安全间距
然后我们因为板子比较密集,来设置一下我们的安全间距。
(2)过孔直径,外径设置
6.电源网络类
接下来我们添加一个电源的网络类,让他扇孔的时候按照我们的规则去扇孔。
我们把所有的电源线加入进来,因为我们的电源线是要进行加粗的。
因为我们设置完电源规则了,还需要把电源网络绑定上。
然后我们调节 POWER 将我们导线电源类,改变为新设置的 POWER 导线规则。
七。差分对规则设置
一。差分对规则设置
1.第一对差分对。
首先我们添加这两个。并且重命名为 FPGA_IOT24。
2.第二对差分对。
3.第三对差分对。
4.第四对差分对。
5.第五对差分对。
6.第六对差分对。
7.第七对差分对。
8.第八对差分对。
9.第九对差分对。
10.第十对差分对。
11.第十一对差分对。
12.第十二对差分对。
13.第十三对差分对。
14.第十四对差分对。
15.第十五对差分对。
16.第十六对差分对。
17.第十七对差分对。
18.第十八对差分对。
我们找到这两个,打开飞线,这两个 bank 需要完整的平面去做阻抗。这两个是单端的,我们不需要做差分,只需要等长控制阻抗就好。
19.第十九对差分对。
20.第二十对差分对。
21.第二十一对差分对。
22.第二十二对差分对。
23.第二十三对差分对。
24.第二十四对差分对。
二。自动生成 USB 及 HDMI 差分对
1.USB 及 HDMI 差分
排针的差分我们就添加完成了,接下来我们添加 USB 和 HDMI 的差分。
2.USB-90ohm 差分。
八。FPGA 扇孔以及 FPGA 滤波电容的摆放。
1.FPGA 扇孔
2.滤波电容的摆放
(1)1.0V 滤波电容摆放
这里我们调整一下过孔,选择参考点移动,第 15 讲 5 分 30 秒。为了放下我们的电容。
(2)3.3V 滤波电容的摆放
找到 FPGA 的 BANK3 的 3.3V 去放置电容。
(3)1.V 滤波电容的摆放
这三个放在上面的 1.0V,把所有 3.3V 的塞进去。
找到 bank7 的引脚我们看看电容放在那里合适。
九 DDR3 模块扇孔及 DDR3 级联电阻,滤波电容。
1.DDR3 扇孔
2.滤波电容 1.5V
3.级联电阻
这里看到我们就连接一根线,然后我们把它放在 top 层。
十。HDMI 扇孔及电源。
1.HDMI 扇孔
我们先将其他的 HDMI 的线连接完成,然后进行我们差分对的连接。
然后我们来到后面的差分,一般我们差分都要有伴随地过孔。
2.电源
补两个地过孔,对我们的高速信号进行屏蔽。然后我们 HDMI 模块的线基本完成了,只剩下差分线了,接下来我们进行 MCU 的扇孔处理。
十一。MCU 扇孔处理
1.MCU 扇孔
电源线连接上之后,要地过孔处理,接地的也一样,方便我们连接。可以直接连接的信号线,我们就直接连接了。
2.MCU 晶振处理
按照我们 MCU 的管脚把我们能连接的,都给连接上去。
3.LED 灯
我们把这四根线拉出来,方便我们对 TF 卡和 ESD 器件连线用。
4.功能按钮
5.LCD 屏幕
因为我们这个管脚交叉了,所以我们打两排孔,方便走线。
为了增大我们的载流能力,我们这里选择填充区域来进行连接。
6.TF 卡及 ESD
然后我们来设置我们的 MSD 通过调整飞线位置和距离,让我们可以更好的拉直导线。
这里我们可以看到,我们基本的短线已经链接完成了,只剩下我们的长线,需要进行链接。我们可以进行下一步了。
十二。FPGA 外设模块扇孔。
1.功能按键
上面差了一个地过孔没有摆出,我们给扇出然后和下面的对齐。
我们从按键开始一步一步与 FPGA 进行扇出布线。
每一个接地我们都给他一个回流地过孔。让他就近回流。
我们要调整 LED 灯的电路,这些元件占位置,我们再调整一下。
2.FPGA 晶振处理
然后进行我们的晶振处理和包地,我们晶振线能尽量加粗就加粗,方便我们信号。
3.Flish 模块
我们略微修改一下之前的布局,然后进行连接根据我们扇出的引脚。
4.数码管
5.JTAG 接口电源及测试点
将 JATG 接口的 5V 电源进行填充,然后放上过流孔。
然后远处的信号线我们就打过孔,然后扇出,到时候进行连线。
GND 扇出回流孔进行回流。到这里我们 FPGA 的外设部分基本就扇出完成了,我们接下来进行电源模块的扇出孔。记得要每个 GND 都加入回流孔。
十三。电源模块的扇孔。
1.电源模块布局规则
电源模块的布局规则。尽量采取铺铜处理,还要打孔过流。电感下面不要去走线,还要进行挖空防止电磁干扰。
2.电源 5V
我们在这里放一个过孔,提醒我们要距离板块远一点,因为我们要进行缩地。
将输入的 5V 进行填充处理因为过孔多,增大我们的过流能力。
3.电源 3.3V
最终我们 3.3V 电源的样子。后续肯定会优化布线。
4.电源 1.0V
将电感旋转之后,删除报错的填充区域,然后我们从新填充。
5.电源 1.5V
然后复用布局布线,把 1.5V 电源拉过来,我们在慢慢调整。
然后我们和前两个电源模块一样进行扇出,这样子我们这个 1.5V 的电源模块也完成了。
这个电流不大,我们进行两个扇孔就好,然后和下面的对齐。
6.GND 以及供电电路
(1)1.5V 供电
最后我们电源部分的扇孔就完成了。下一步就该进行我们的布线了。
十四。DDR3 模块布线规范。
1.DDR3 模块布线规则
首先我们要保证我们的一个特性阻抗,单端 50Ω,差分 100 欧姆。
我们打开差分对,可以看到我们 DDR 的差分线有三对,一对是时钟信号,一对是 LDQS,另一对是 UDQS。
我们知道了这些规则后要进行 DDR 的一个布线。首先我们来看一下 50Ω的布线规则。我们来设置一个 3W 的规则。
添加一个 3W 规则。(导线中心到导线中心有 3 倍线宽的距离)
需要注意的嘉立创 EDA 线距是导线边缘到导线边缘的,而 3W 原则是导线中心到导线中心的,所以应该是 4.3×2,而不是×3.
了解了这些我们就可以进行一个 DDR 信号线的分类了。
2.DDR3 高 8 位数据地址线
打开我们 DDR3 原理图就可以看到我们的地址线。
设置分类可以更快的帮我们找到需要连接的线和更改线的颜色。
3.DDR3 低八位数据地址线
4.ADDR 地址线
然后将我们的 ADDR 安全间距修改为 3W 规则。
十五。DDR3 布线
接下来就是我们 DDR 的布线,一般我们也是有顺序的,因为 DDR 的数据线一般要求同组同层,而地址线则没有这个要求。考虑到我们信号需要由完整的参考平面。要参考我们的地层所以我们优先走第三层,参考地层肯定比参考电源层好,干扰更小。如果第三层不满足我们走线我们再选择第四层或第六层。先从低 8 位开始布线,选择我们第三层。
1.低八位地址线差分对布线
布线模式我们调成忽略,然后把能强行连接的线我们都强行连接上
然后我们调整一下过孔位置。第 23 集 8 分钟。
2.高八位地址线差分对布线
有错误的话我们就一点一点改正,直到 DRC,没有报错。
最后我们修改后这几层的连线。到这里我们 DDR3 的地址线就完成了,接下来我们进行 FPGA 的扇出连线。
十六。HDMI 布线。
我们将 HDMI 模块的飞线打开,然后更改网络颜色。
这里我们可以看到,如果我们直接拉过来,发现这里是交叉的。
由于我们 FPGA 他的输管脚有对应的电容,我们就放在 3.3V 的输出进行滤波。
经过我们调孔挑线,我们终于把 HDMI 和 USB 的差分引出来了。第 26 集,布线就是我们不断地调整过孔,走线。
十七。FPGAbank 线
1.总览
每个 bank 的线我们都要做等长调节。我打开飞线设置的快捷键是 Ctrl+R。大家可以自行设置
我们可以看到我们有 0,1,2,3,4,5,6,7 这些 bank,但是 4,5,6,3 的 bank 线我们已经扇出完成了。就是我们 DDR 的线。
2.Bank0-信号线布线
我们接下来设置 bank0 的网络类,然后设置颜色。
在这里我们看到有引出去的,这是我们接在排针上面的。我们需要做一个等长调节。
然后我们打开我们的飞线。所有的引出管脚我们都打开飞线。
我们打开了所有的飞线之后就再新加一个网络类。起名 bank0
然后我们截屏悬浮,一个按照一个,找到 bank0 的网络类,进行加入
将两队差分对换层,方便我们布线,然后中间留够位置第 28 集。
为了保证我们可以在 FPGA 区域可以控制阻抗我们可以修改他的规则。让一个通道可以走两根线。
因为我们 FPGA 内部空间是非常小的,只能改变一下条件。
放置一个约束区域。选择第三层,然后约束差分对的区域,选择我们创建好的。
3.Bank-7 信号线布线。
bank7 我们也是截图,然后一一对照将 bank7 的差分对进行添加网络
先连接上我们的线报错先不管我们以后在去修理。因为我们以后会进行一个等长修整一边等长一边调节我们的 DRC 报错。
4.Bank-1 信号线布线。
然后还是先走完我们的线,等到等长调节时候,再去调整我们的 DRC 错误。
5.Bank-2 信号线布线
和前面一样,我们要进行分类和添加。但是 bank2 里面除了 LVDS 其他的就当做我们的单端处理就好。因为 LVDS 我们需要传输数据,高速的。
这里我们可以看到,我们这边可以出两根线,因为我们走的是单端信号。
在 FPGA 里面我们满足不了 3W 原则,出来了 FPGA 我们尽量满足 3W 原则。
bank2 的线我们就完成了。还是暂时这样子,后面我们等长调节时候,在进行 DRC 修改。
6.Bank-3 信号线布线
依旧依次加入。这里注意,IOR35 是板子里面的线,不需要我们添加。
在 FPGA 里面我们无法进行 3W 间距,在外面我们要尽量满足 3W 间距。
这样子我们这一组线就完成了,后续调整差分对等长时候我们再去详细调整 DRC
十八。MUC 和 FPGA 杂线处理。
打开所有飞线,并且关闭电源和 GND 的飞线我们可以看到,大多数飞线集中在我们 FPA 的上方,这些线的优先级都不是很高,我们保证连通就好。
到这里我们所有的线除了电源基本上都布置完成了,等我们修改完电源,就进行 DRC 检查和等长调节。
十九。电源连通性处理
1.总览
输入进来的 5V 和 1.0V,3.0V,1.5V 是我们重要的四个电源。我们让第 3 层信号参考我们第二层,第四层信号,参考第五层。
2.电源 5V 连通性处理
选择我们的铺铜区域,然后最小优化宽度更改为我们的 5mil。
将连接方式更改为直连。这样子可以让我们的载流能力更强。如果是十字连接假如我们电流不大,手焊接的话可以用十字连接,这样子散热能力慢一些,方便我们上锡。
多出走线加填充区域,进行我们的载流量增大。添加一个 10mil 的斜角。并且放置过孔多个增加载流能力。
一根 40mil 的线,直接拉到我们底下的 5V 输入
距离板框有一个地过孔的距离,然后我们到时候可以进行一个包地处理。
3.电源 1.5V 连通性处理
接着我们处理 DDR 的线,第四层这里我们发现处理不完,我们需要用第五层进行处理然后还要观察不要影响我们第四层的走线。
来到第四层我们发现,这是有导线的,所以我们需要进行包裹起来。
4.电源 VREF 连通性处理。
5.VTT_DRAM 连通性处理
防止干扰我们重要的线我们就给两个过孔,反正这个电流不是很大,而且我们是 0.3 的过孔也足够我们电流经过了。
最后我们在修改一下,我们的铺铜区域,确保不会影响我们的信号线走线。现在我们 DDR 区域的电源我 5V 的电源已经处理完了。
6.电源 1.0V 连通性处理
我们可以看到 1.0V 的线我们可以这样子走。在底层
然后选中两个铺铜区域,选择布尔运算,合并铺铜区域。
7.电源 3.3V 连通性处理
然后我们来到第五层电源层将我们整个的平面全部铺铜为 3.3V
还有几个 3.3V 的因为在 1.5V 的电源内没有铺上我们修改一下。
让第五层的 3.3V 优先级最高。一定要是我们刚刚放置的那个铺铜区域优先级最高。
稍微修改让 3.3V 都铺铜完成。电源我们就完成了连通性处理,我们接下来进行布线优化。
二十。PCB 布线,布局,电源等优化。
接下来就是我们修改 DRC 报错的一部分,先简单修理一下让我们线先不会报错。
1.DDR3 的 DRC 报错
先修理 DDR3 的 DRC 报错,这里我们进行这样子修改。
然后我们进行 bank0 的修线,把 DRC 给修没,然后到时候我们在去做一个等长调节。
2.电源优化
(1)Bank-7 布线优化
第三层的 bank7 我们就修完了。接下来修第四层的。
这些线大多数都是我们单片机那边的,相对于高速信号来讲没那么重要,我们只要连通就好,避开晶振信号,因为晶振是一个非常敏感的器件。
(2)第三层信号层布线优化
我们走线时候一定要避开晶振和电感,因为晶振和电感尤其是高速线,因为会对我们信号产生很多影响。
改为我们 100ohm-BGA,进行我们 FPGA 内部 4 对 4 的差分布线。
(3)剩余飞线处理
接下来我们把剩下的十根飞线处理完成,可以看到,我们基本上都是电源的飞线。
小的飞线基本上都是很好连接的,我们就一个一个找到,然后进行连接。
我们需要修改一下 5V 的铺铜,因为当时通道太小,电流不好流通。
改变一下我们 1.5V 电源过孔的位置方便我们 3.3V 的铺铜。
然后把我们的 3.3V 进行铺铜处理。我们还可以把细的地方修正一下,反正大电流也过不来。
(4)GND 飞线处理
然后我们在第二层进行对地的铺铜。地过孔那些我们最后再修正,先进行差分对的等长调节。
二十一。DDR3 数据线时序等长
接下来我们就该开始对 DDR3 的数据线,进行时序等长了。
1.D0-D7 低八位地址线时序等长
(1)新建等长网络组
(2)添加 D0-D7 地址线
(3)等长要求
然后这边我们可以看到最长的有 878.2mil,但是我们 DDR3 的等长范围是±10mil。
(4)设置等长规则
起名字 D0-D7,可以看到我们最大是 832,所以我们给他最大 850,最小就是减去 10mil。
(5)应用规则
然后保存,找到我们的网络规则,应用我们新设置好的规则。
(6)设置等长网络组规则
按下 tab 进行参数设置,因为我们进行的是 3W 原则,线宽是 4.3,那么间距就是 12.9。
(7)差分线等长调节
首先我们将差分对给等长调节完成,然后再去调整别的。
(8)差分对等长调节
(9)差分对等长调节规则
然后我们布线里面专门有一个差分对等长调节,用来调节我们的差分对。
然后按下 TAB 修该我们的参数。也要保证我们 3W 的一个间距。就是导线到导线要有 3 倍的线宽间距。
(10)差分对时序等长调节
然后等长调节,这里我们 D0-D7 的数据线就等长完成了。
2.D8-D15 高八位地址线时序等长
(1)新建等长网络组并添加 D8-D15 高八位地址线
可以看到我们的线最长的有 650mil,最短的 200 多 mil。
(3)等长要求
最不好调整的是我们 200 多 mil 这跟,我们需要调整过孔,才能方便我们走出来。
(4)新建等长网络组
(5)添加 D8-D15 高八位地址线
(6)应用规则
(7)差分线误差调节
修改一下差分对要不我们不能过线,那我们规则也得改变一下。
(8)单端线及差分对时序等长
能包地的我们进行包地处理。保护我们的信号。受到小的干扰。
到这里我们就把我们的 DDR3 数据线等长完成了,接下来我们来完成地址线时序等长。
3.地址数据线时序等长
(1)添加焊盘对组
地址线和我们数据线有一点不同的的是他是有端接电阻的,然而我们等长时候,并不把端接电阻的线算进来,所以我们要进行一个调整。
我们添加 T8 这个焊盘,当我们选中时候他就会高亮显示。
在左面我们就可以看到,我们所有的地址线。我们一个一个搜索添加。
我们在原理图里面也可以看到,一共是 14 根地址线,从 A0-A13。
以及我们这一块,也要记得添加上。WEN 是读写的,
(2)删除多余连接导线
然后我们可以先把上面的线先删除,要不等长时候会一直占据长度。
(3)时序等长进行优化
我们发现不好优化短了,所以我们沿着这跟线,向上或者向下去修理线。
发现下面那根线是 598,那么我们最长的是 875-25=850,我们修到 850mil 就好了。
然后先让这条线符合我们差分对的规则,然后去进行长度调整。
我们要利用好我们的空间,让我们不妨碍别的线情况下,空间利用最大。
不影响我们红色线走的情况下,预留出红色线足够的时序等长空间。
我们就一根接着一根线去找,找到我们的线进行等长调节,都是单端没有差分就非常好调节,
可以看到我们所有的地址线基本都在 870,il 左右,最小的是差分在 867mil,最大的是 872mil,差了 5mil 左右,我们要求是 25mil 已经满足我们的要求了。这样子我们就调节完成,接下来去连接上我们的电阻就可以了。
(4)端接电阻的连接
然后我们连接上线路。到这里我们暂时就完成 DDR3 地址线的时序等长了。
差了一个复位信号,没有加在焊盘,但是我们全部的线都是一根一根调整的,所以我们加入进来之后也会看到,都符合我们的范围。
二十二。HDMI 信号线时序等长。
1.避开电感和晶振
我们先修理一下线,因为电感也是一个敏感器件,我们差分最好不要再电感内部走,我们都把电感给避开。两个数字一就是我们的大电感。能避开就修一下线。
2.添加等长网络组
可以看到我们最长的有 2100mil,最短的只有 1241mil。
3.差分线误差调节
依旧是先调整我们差分对的误差让我们差分对先时序等长。
4.新建网络组
可以看到我们最长的是 2122.6mil,最短的是 1279mil。
5.应用网络组
6.差分对时序等长调节
最后我们误差都在 3mil 左右。就完成了 HDMI 接口的 LVDS 信号线的时序等长调节。
二十三。FPGA-BANK 信号时序等长调节。
1.FPGA-BANK-0 信号时序等长调节
可以看到有的信号线差距非常小,只有少数差距大的。bank 线的话我们就按照 20mil 左右的一个误差去等长就行。因为我们左边可以看到实时长度,所以我们可以不设置等长网络组。
我们将最短的线放在第四层,把底层让出来。还要保证不会切割 5V 的电源。
把我们最短的差分进行多去绕线,让他在我们一个合理的范围,再去等长调节。
(1)差分线和差分对调节以及 3W 间距
我们一定要满足 3W 间距也就是我们的 12.9mil 的一个间距。其他的线也一样,有差分对的,先让差分对相等,然后再去时序等长差分对的长度。
一定要满足我们的一个 3W 间距,FPGA 里面不好走我们满足不了间距,在 FPPGA 外面我们一定要满足,其实差分最好是满足四倍间距。
我们绕完了之后,最后给他在进行布线和布局优化就行。
到这里可以看到,我们最短的线是 2549.3mil,最长的是 2552mil 就差了 3mil 符合我们的规则,到这里我们 bank0 的线就时序完成了。
2.FPGA-BANK-7 信号时序等长调节
接下来我们对 bank7 的线进行时序等长。我们直接对照左边的网络组进行等长调节。
我们可以看到最长的在底层。而且大多数长的都在这一层。
(1)差分线及差分对和 3W 间距
我们可以调节,但是最重要的还是 3W 间距一定要保持。
可以看到我们下面的三对差分已经完成,都是 1847mil 左右,我们接下来调别的差分。
来到第三层,我们还是进行差分对调节,在进行时序等长。
我们可以看到我们所有 bank0 的线,基本都是 1847 左右差值不过 1mil。这里我们 bank0 的差分对线就时序等长完成了。而且高速线必须避开晶振,晶振对高速线影响很大,其次要保证我们 3W(两根差分线之间保证三倍的线宽间距)间距,这样子我们的高速差分线才能更好的跑起来,不被其他信号干扰。
3.FPGA-BANK-1 信号时序等长调节
依旧是按照最短的先去等长。先调节差分对误差,再去差分对时序等长。
可以看到我们 bank1 的线基本都在 923mil 到 924mil 之间,所以我们 bank1 的线就时序等长完成了,接下来我们等长 bank3 的线。
4.FPGA-BANK-3 信号时序等长调节
(1)bank3 信号线修线
我们可以看到最长的 bank3 的线有 1295mil,最短的只有 711mil,而且 bank3 的线都是堆在一起的我们很不好调整,只能往外面去修线。
(2)bank3 信号线时序等长
(3)3W 间距
到这里我们顶层的 bank0 就时序等长完成了。一定要合理的利用我们的空间,并且满足我们 3W 的间距。接下来我们去第三层进行我们剩余的 bank0 时序等长。
顶上难走的线我们就绕一绕,合理利用我们的空间以及注意 3W 间距。
还有就是,时序等长调节时候,能离同网络远一点,就尽量离同网络远一点,可以找别的地方等长调节。
像这种可以绕远,但是不要在同网络里的很近的地方进行时序等长。
我们修改一下我们最开始等长的线,让他紧凑一点不要太松散。
到这里我们 BANK0 的线就时序等长完成了,可以看到,我们最长的线是在 1295.5mil 最短的线是在 1294.5mil 差了 1mil,符合我们的标准。接下来我们等长 BANK2 的线。
5.FPGA-BANK-2 信号时序等长调节
(1)3W 间距及避开电感
依旧找到我们最短的这一根进行等长调节,同时要注意 3W 间距。
并且一定要避开我们的电感。因为电感和晶振都是我们比较敏感的器件。
可以看到我们 bank2 最长的线是 1513.8mil 最短的是 1513mil 就差了 0.8mil 也是很可观的,所以说我们慢慢微调,总是能把线都调整好。并且满足我们 3W 的间距。
(3)避开晶振
最后我们可以看到,我们的电感和晶振区域是没有走线的,这样子才符合我们的要求,电感和晶振都是敏感器件,而且晶振还需要禁止铺铜处理。
二十四。TF 卡信号线时序等长
1.添加 TF 卡的网络类
这里我们可以看到我们 TF 卡也是需要时序等长的,我们可以看到这里有 4 个信号,然后他走的是 SPI 协议的。
2.把 TF 卡的 SPI 信号线加入网络类
搜索 SPI2,将我们 SPI 协议线加入我们的网络类。
3.应用 3W 设计规则
找到网络规则,安全间距。把我们的 3W 规则驱动起来,在 TF-CARD 中,因为我们这些线是在 FPGA 外面的所以我们驱动我们的 3W 规则。
4.修改顶层线以便满足 3W 间距
然后我们来修理一下线,因为我们驱动了 3W 规则,所以我们来修理一下保证没有错误在进行等长调节。
5.时序等长调节
TF 卡信号线的时序等长调节就完成了,TF 卡的 SPI 协议线,误差在 50mil 左右就行,这里可以看到,我们都是 1233mi 只有一个是 1231mil。
5.TF 卡 SPI 协议线的注意事项
因为我们的 SPI 只有四根线所以很好等长,但是如果 DAT1 和 DAT2 也连接了的话,我们 DAT1,DAT2 也是需要进行时序等长的。到这里我们的线基本上都完成了。
6.PCB 展示
到这里我们的布线基本就完成了,接下来我们就需要进行 PCB 的后期处理,缝合地过孔和优化 PCB 以及修改 DRC 的问题。
二十五。缝合地过孔的添加
1.缝合地过孔属性设置
通过我们上图可以看到,我们信号线基本上都在里面挤满了,所以我们在板子外围添加一圈缝合地过孔。用来提高我们信号的完整性,以及抗干扰能力。
首先我们找到放置 - 缝合孔 - 线条。因为我们打板边一条的,所以我们选择线条,一条边,一条边的去打。
2.缝合地过孔添加
但是我们可以看到,有的地方有,有的地方没有,因为有的会有 DRC 报错,我们的缝合地过孔就会自动忽略。这时我们手动添加一下。
有报错我们也先忽略,等调节 DRC 时候我们在进行调整。
二十六。PCB 的 DRC 检查
到了我们修整 DRC 时候,我们进行一个一个错误的去修改,一边修改,一边优化我们的布局布线。
1.导线错误
我们按下 shift+b 重建我们铺铜区域发现减少了不少错误,我们再进行调整。
我这么多报错是因为我这里的线因该都是 4.1mil 结果我用成了 4mil,重新改为 4.1mil 在进行 DRC 检
查。因为差分线的话 100ohm 是 4.1mil,50ohm 是 4.3mil。
2.线宽错误
再次检查发现我们只有 177 个错误了,慢慢修改就好。
我们查找发现还有好多错误是因为线宽问题可能连接时候未驱动规则,我们再改一下。
3.间距错误
(1)约束区域的添加
这个错误我们需要添加一个约束区域,因为这里是 3W 间距,我们空隙太小,基本满足不了所以放置约束区域。
4.贴片焊盘到挖槽区域错误
因为我们这个地方这个器件是一个非金属的,他是没有电气属性的。但是他这个空间只能让我们贴在一起。所以我们不用管,要是管理这个报错我们可以放置一个约束区域在这里。
5.板框到贴片焊盘错误。
(1)解决办法 1
可以看到这两个孔是没有电气属性的,单纯起到一个固定作用。而且是不会穿过来的,不会顶到我们的器件。
这个错误也是一样的,我们可以添加一个约束区域。因为是板框到贴片焊盘,所以我们修改一下。
还是我们的 TF-机械孔规则,我们将板框到贴片焊盘距离改为 0mil。
然后放置一个约束区域。一定要把焊盘包裹住,选择约束区域为底层。
(2)解决办法 2
如果约束区域不起作用,我们可以修改一下元件的封装,
经过计算,将我们的焊盘改为 2.1mm 的长度,宽增加到 2mm 多加点焊锡保证我们可以牢固。两个都是,然后我们 ctrl+s 保存一下封装。
6.GND 错误
直接重建我们所有铺铜区域就好了因为我们有的没有进行重新铺铜对地进行连接,一个两个的错误我们就单独找到然后进行修改就好了。
7.削去尖角
然后我们看到 3.3V 的填充区域有一个尖角我们给修理掉。
然后 shift+b 重建铺铜区域,就发现我们给修理掉了。
8.包地处理
这跟是我们 USB 的一个差分线,我们能包地处理最好包地处理一下。以便于减小信号之间的串扰。
将所有的 GND 连接之后,我们就再次检查 DRC 发现没有错误了。
检查 DRC 也是 0 错误。然后接下来就是我们进行一个 PCB 的优化,比如铜皮,什么的进行一个修正,完事我们就可以进行打板子焊接了,最后可以测试,嘉立创也是给出了教程的。
二十七。PCB 最后的优化
1.检查前总览
我们这次就来进行输出 Gerber 文件前的最后一个检查
3.电源平面是否完整信号有没有划分割,载流能力是否足够。
调整完了所有的之后再次进行 DRC 检查,确保完全没有问题。之后才可以进行 Gerber 文件的导出然后进行板子制作。
1.DDR3 地址线检查
看到虽然是差的很多,但是这是加入了我们端接电阻的。
我们应该看的是我们的焊盘对。发现焊盘对差的不多。在 25mil 的一个误差范围内。
2.Bank-0 信号线检查
bank0 是我们的第三层,是参考我们第二层的,我们第二层是 GND 所以不用担心我们这个信号的跨分割。并且左边的长度我们可以看到我们 bank0 的线误差在 3mil 左右,远远小于 20mil 的范围内,那就符合我们的设计。
3.Bank-1 信号线检查
bank1 也是在我们第三层的线,但是有一部分在我们的 FPGA 里面,所以没有办法满足我们 3W 间距原则。所以在外面尽可能满足我们 3W 间距。看左边也满足我们也满足 20mil 的差值。
也可以测量一下,看看是否满足我们 3W 间距,不满足我们再调整。
4.Bank-2 信号线检查
bank2 也是单端的也在我们的第三层,所以不需要考虑划分隔因为有完整的参考平面。看左边误差在 5mil 的一个范围内,我们这几组控制的很好。
5.Bank-3 信号线检查
接下来我们看 bank3 的线。可以看到左边我们误差控制在了 1mil 左右。bank3 也是我们第三层的线,所以不需要考虑划分隔,因为我们有第二层这个完整的 GND 参考面。
6.Bank-7 信号线检查
可以看到我们 bank7 的线有两层,第三层可以不考虑,我们需要看一下第四层。
第四层的 bank7 的线基本都在 3.3V 的电源范围内。在看左边我们的误差基本都在 5mil 左右,也是符合我们误差范围的。
7.DDR3-D0-D7 低位地址线检查
也是第三层不考虑我们的电源切割,在看左边控制在 5mil 误差范围内,也是符合规则的。
8.DDR3-D8-D15 高位地址线检查
也在 3.3V 范围内,不需要电源分割,在看我们左边的长度。控制在 2mil 的一个范围内,也是符合我们规定的。
9.TF 卡的 SPI 协议线检查
可以看到左边,误差再 2mil 左右也是符合我们范围的,并且再顶层有第二层 GND 层参考。
10.电源载流能力检查
因为我们这个板子最大电流能跑到 2A.2A 的话我们 12/0.3 的过孔打两个就够了。
(1)5V 电源载流检查。
可以看到 5V 电源的过孔基本都在两个以上那么 5V 电源是可以的。
窄的地方我们拉开一点,让我们有更多的通道,提升他的载流能力。
我们把上面的下载口的 5V 输入给调整线宽为 40mil,增大我们的载流能力。
这里我们在加入一个通道,因为我们一条线宽是 15mil 三条线宽 45mil 就够我们这个电流通过了。
也可以将这里全部铺铜,然后更大的增加我们载流能力。
(2)5V 输入后 1.0V 输出检查
检查完没问题之后改为铺铜区域然后和上面的铜皮合并。
然后关闭我们的制造优化。关闭之后可以加宽我们铺铜区域,要不然我们 FPGA 里面的区域铺铜是过不去大电流的。
(3)1.5V 电源检查
我们来检查一下我们 1.5V 的 DDR 的电源,因为我们 3.3V 的是有电源层我们最后再看。
1.5V 的也是我们通体的电源层,我们需要注意我们所有的 DDR 信号线有没有在完整的 3.3V 的范围内。
我们主要看第四层,第四层才是我们完整参考电源平面的。发现 DDR 的线在我们完整的 3.3V 范围内,而且 bank7 的线也在,说明我们没有跨分割。
(4)1.5V 电源修改
我们修改一下 1.5V 的铜皮沿着这块从新铺一个,因为我们没更新铺铜区域,所以一直都在。我们沿着轮廓放着就好。
一定要把我们信号线全部包括进来,这个 3.3V 我们在另想办法。
(5)3.3V 电源检查
我们 3.3V 铺的是整版的铜皮,所以基本不用考虑宽度。因为整版的铜皮基本上是够的宽度。
(6)3.3V 电源修改
然后用地线包裹起来我们的电源,因为 DDR 的电源非常重要。
11.GND 铺铜检查
(1)顶层 GND 铺铜
我们先来到顶层,然后对顶层一圈进行 GND 铺铜,注意不要在电感底下铺铜。
这样我们顶层就对地铺铜完成了,因为我们顶层元件比较密集,所以我们就对外围进行铺铜处理。
(2)第二层 GND
(3)第三层 GND 铺铜
来到我们第三层放置一个整板铺铜,因为 DDR 我们走了很多线,可以进行包地处理的话,我们就进行一个包地处理。
但是我们看到 DDR 区域有很多碎铜,我们需要给消除掉,沿着我们 DDR 区域放置一个禁止区域。
能包上地的我们暂时不修理,我们只修理不能包地的尖角铜,这种尖角铜和碎铜会影响我们的信号质量,我们需要给处理。
有尖角的一定要去修理。注意不要放错,放置为挖槽区域,这两个区别很大,挖槽区域是在板子上挖洞。
这里也是一样,可以包地的我们就包地处理,不去动他,不能包地的,我们就清理掉。
(4)第四层 GND 铺铜
(5)第五层为电源层无需对 GND 铺铜
(6)底层 GND 铺铜
调整一下线,让我们 GND 区域可以把线包裹起来。
并且还要确保我们板子周围有一圈地。到这里我们的电源就处理完成了我们在进行一次 DRC 检测,看看修线的过程中有没有出现错误。
11.DRC 检查
发现是我们不小心挪动了孔位,所以我们一个一个修理就好。
最后 DRC 检查就会发现 0 错误了。到这里我们电源就检查完了,等长也检查完了,GND 也优化了,尖角铜也处理了。电源载流能力,容量,还要板边包地我们也完成了。
12.各层板边包地处理。
但是我们电源层也需要一圈地过孔,防止我们电源受到干扰。
然后 shift+b 重建我们的铺铜区域,就可以了。
13.再次进行 DRC 检查
14.调整元件位置
最后我们检查一下 DRC 发现没有问题,我们就可以进行丝印操作了,到这里 PCB 板子基本就完全完成了。
将我们 TF 卡底下的元件调整出来,要不然,影响我们 TF 卡座安装。
排针的电阻也是,要远离我们的排针,方便排针的安装。
15.再次进行 DRC 检查
二十七。丝印的添加
1.顶层丝印
(1)排针丝印添加
(2)HDMI 丝印添加
(3)USB 接口丝印添加
(4)电源测试点丝印添加
(5)功能按键丝印添加
(6)LED 灯丝印添加
(7)JTAG-下载口,TFT 屏幕座丝印添加
(8)boot 和 res(复位)按键丝印添加
(9)电源指示灯丝印添加
(10)MCU 单片机测试点丝印添加
2.底层丝印
(1)下载口和 TF 卡座丝印添加
下载口和 TF 卡座。然后其余的没用的丝印我们就可以删除了。
(2)自己的图片丝印添加
自己的丝印就随便添加了,我们底层空间还是很大的,对于我们这块 PCB 板子来说,可以添加自己喜欢的。
二十八。PCB 全部展示。
1.顶层展示
2.第二层——GND 层展示
3.第三层——信号层展示
4.第四层——信号层展示
5.第五层——电源层展示
6.第六层——底层展示
7.3D 预览图顶层展示
8.3D 预览图底层展示
立创 - 逻辑派-FPGA-G1 开发板,就完成了。接下来我们进行 PCB 的下单以及资料准备。
二十七。Gerber 制版文件导出。
1.总览
1.首先我们需要导出 3D 模型文件。假如说要确认结构,数据结构的话就需要我们一个 3D 模型文件。
4.辅助焊接工具,这个是我们嘉立创 EDA 中很方便的工具。
2.辅助焊接工具
勾选上之后就代表我们已经焊接。右面的 PCB 也会标明。
3.SMT 坐标文件
这是我们 SMT 贴片的坐标文件,供我们 SMT 贴片使用。也是通过导出选项进行导出
4.PCB 生产说明
这上面有我们一些制板的信息,比如阻抗线路,以及阻抗的线宽线距。只要是我们板子有阻抗就需要在这里说明一下,这样子板厂才会按照我们的一个阻抗线宽去制作 PCB 电路板。
5.Gerber 文件的导出
(1)创建 Gerber 文件夹
(2)导出 3D 模型
这些是我们螺丝孔,以及测试点。因为这些不需要我们绑定 3D 模型,所以我们不用管,直接点击,处理完成,继续导出。
(3)导出物料清单
(4)导出 BON 表
(5)导出 PCB 制版文件
DRC 没有错误的话就会让我们直接导出,也是 Gerber 文件夹。
(6)导出辅助焊接工具
考虑到我们没有网的一个情况下我们把辅助焊接工具,导出一个离线的模式。
(7)导出源文件
(8)导出 SMT 坐标文件
(9)导出 PCB 坐标信息
根据信息进行填写(表格在上面我发的文件里)。因为我们是有 FPGA 的所以建议做沉金的。
因为我们线宽是自己调整的,所以不添加嘉立创阻抗计算神器的截图,要是我们按照嘉立创制作的,一定要添加截图。
线宽阻抗在右边写上,还有参考层信息,以及参考的哪一层。线宽线距就在我们设计规则里面。
100ohm 是 4.1mil 线宽。线距是 7.9mil,满足我们 3W 间距。
90ohm 线宽是 4mil,线距是 5.3mil。
最后我们可以把所有的网络颜色更改为默认颜色,方便我们板子好看。全是根据个人喜好就行。
二十八。PCB 下单。
1.打开嘉立创下单助手
2.领取优惠卷
3.上传我们的 Gerber 文件
4.选择板子层数
5.PCB 板材质选择
6.其他详细信息
这里可以看到我们板子的详情信息。我只写出与 2 层板不同的地方,相同的直接一样就行,
然后是层压顺序看你自己,都可以,选择我不清楚,厂家就会给你看你的板子,从而确定层压顺序。然后选择需要阻抗,然后选择,免费的±20%。
选择别的颜色会加钱,绿色可以免费用卷,然后盘中孔,过孔塞树脂 + 电镀盖帽,然后选择沉金,因为我们的板子有 FPGA,推荐 FPGA 的板子都用沉金的,因为有高速信号线,沉金更好的耦合和抗干扰,以及焊接。
剩下的我们默认就好。因为我们孔径特意设置的免费的规则。
要是怕客编影响我们的丝印,可以自己指定一个位置,进行添加。
如果出现这个弹窗就说明,我们选择的是别的颜色板子,得改为我们绿色板子。
这样子就是免费的了。要是有钱,充足的情况下可以选择 SMT 贴片,因为这个板子器件多,而且封装小,我们手动焊接的话很难很难。
7.免费券限制
提交订单时候,还会看到我们的提示,到时候跟着提示照做就好了。到这里我们的 6 层板就完成了基于立创 EDA 的逻辑派-FPGA-G1 开发板我们就画完了,这块板子我画了 6 天也是很长的时间,而且笔记内容大概在三万多字左右,大家可以看看我的笔记,有不会的,可以定期看一下,巩固一下内容,毕竟温故而知新嘛。
三十。总结心得
使用立创 EDA 绘制像立创 - 逻辑派-FPGA-G1 这样的 6 层高速板,确实是一次非常锻炼人的经历。
1.电源树分析与 DCDC 布局
(1)绘制电源树
明确从 5V 输入到 3V3、1V5、1V0 等各级电压的转换路径。这能帮你理清电源流向,为后续电源模块布局和载流能力评估打好基础。
(2)DCDC 电源模块布局要点
紧扣 Datasheet:务必下载电源芯片的 datasheet,并严格按照官方推荐的布局布线要求操作。这是保证电源稳定可靠的前提。
紧凑布局,先大后小:电源路径尽量短,减少寄生参数。滤波电容遵循'先大后小'原则,即输入输出路径上都先经过大电容再经过小电容。
关注回流路径:注意输入、输出、反馈三个主干道的回流路径,越短越好。开关电源主回路与控制回路之间,要单点接地,保证地平面稳定。
2.高速信号与阻抗控制
差分走线是重中之重:像 HDMI、USB、DDR 时钟这类高速差分信号,必须严格控制阻抗(例如 HDMI 差分 100Ω,USB 差分 90Ω)。
等长与间距并重:以 HDMI 为例,4 对差分走线,对内等长误差建议小于 5mil,组间(对间)误差建议小于 10mil。同时,与其他信号线间距保持至少 15mil,以减少串扰。
为 BGA 扇出与内层布线做准备:FPGA 的 BGA 封装引脚密集,扇出阶段就要规划好内层布线。可以借助 EDA 工具的差分规则,在扇出时就直接应用预设的线宽线距。
3.布局、层叠与规则设置
(1)交叉选择与模块抓取
利用 EDA 的'交叉选择'(Shift+X)功能,可以快速选中原理图中的模块对应到 PCB 的器件,实现模块化布局。
(2)遵从'先大后小'原则
先放置接口、主芯片、电源芯片等大器件,再摆阻容感等小器件。布局时可以打开单个 PIN 的飞线,观察连接关系,使走线方向顺畅。
(3)重视结构导入
导入 DXF 结构文件时,注意板子外形、定位孔位置、关键器件(如接口)的位置和禁布区。可以将 DXF 文件放在文档层,方便修改后再转到板框层。
4.层叠设计与规则预设
(1)选择合适的层叠方案
6 层板常用方案有多个,逻辑派 G1 开发板采用的'假八层'方案(Top, GND01, Signal02, Signal03, PWR04, Bottom)提供了 4 个走线层,但需注意相邻走线层(如 Signal02 和 Signal03)之间的串扰,可通过十字交叉走线或加大介质层厚度来缓解。
(2)利用阻抗计算工具
在 EDA 的层叠管理器或相关工具中,根据板厂工艺和叠层信息,计算并设定关键网络的阻抗参数,如单端 50Ω,差分 90Ω/100Ω等。
(3)提前设置设计规则
在布线前,务必在'设计 - 设计规则'中设置好安全间距(如 4mil)、线宽范围、过孔尺寸(如 8/16mil, 12/18mil) 等。可以为电源网络创建网络类,统一设置更宽的线宽。
5.后期检查与实用技巧
(1)DRC 检查必不可少
完成布线后,务必运行DRC,检查开路、短路、未连接网络及违反设计规则的情况。一位开发者曾因疏忽 DRC,导致滤波网络的 GND 未实际连接,耗费大量时间排查.
(2)检查信号跨分割与电源载流
仔细观察是否有信号线跨地平面或电源平面分割的情况。同时,确认电源通道的线宽和过孔数量满足载流能力要求。
(3)优化丝印与输出文件
调整丝印,确保清晰、朝向一致且不上阻焊。最后,输出 Gerber 等光绘文件并打包交付板厂。
6.一些实用技巧
(1)导入快捷键
逻辑派 G1 提供了快捷键的.json 文件,导入后可极大提升操作效率,例如使用单个按键而非组合键
(2)模块复用
对于相同电路(如多个 DCDC),可以使用 EDA 的'创建组合'和'组合复用'功能,快速布局布线,之后'取消组合'进行微调。
(3)网络颜色区分
给不同电压等级的网络赋予不同颜色,布局布线时一目了然
7.最后总结
FPGA 开发板的 6 层高速 PCB 设计,确实挑战不小,尤其需要注意电源完整性、高速信号质量和整体电磁兼容性。充分利用官方文档、数据手册和社区经验至关重要。
请记住,优秀的 PCB 设计往往是在理论指导、实践摸索和细致检查中打磨出来的。不要害怕修改和优化,多利用3D 预览和DRC 工具辅助检查。相信通过这些努力,你也一定能绘制出性能稳定、值得信赖的 FPGA 开发板。
希望这些心得和注意事项对你有帮助。欢迎各位大佬指点,交流心得体会,我还会继续砥砺前行。
这块 PCB 我画了 6 天,算上修改加写博客的时间大概是 7 天,希望这篇笔记能更好的帮助你,给予你画 PCB 时候的思路,以及平时的温习,希望对大家有所帮助。也是写了三四万字左右,记录的还算是详细,到这里就完结了。再次谢谢大家可以对我进行指导和建议。
相关免费在线工具
- Base64 字符串编码/解码
将字符串编码和解码为其 Base64 格式表示形式即可。 在线工具,Base64 字符串编码/解码在线工具,online
- Base64 文件转换器
将字符串、文件或图像转换为其 Base64 表示形式。 在线工具,Base64 文件转换器在线工具,online
- Markdown转HTML
将 Markdown(GFM)转为 HTML 片段,浏览器内 marked 解析;与 HTML转Markdown 互为补充。 在线工具,Markdown转HTML在线工具,online
- HTML转Markdown
将 HTML 片段转为 GitHub Flavored Markdown,支持标题、列表、链接、代码块与表格等;浏览器内处理,可链接预填。 在线工具,HTML转Markdown在线工具,online
- JSON 压缩
通过删除不必要的空白来缩小和压缩JSON。 在线工具,JSON 压缩在线工具,online
- JSON美化和格式化
将JSON字符串修饰为友好的可读格式。 在线工具,JSON美化和格式化在线工具,online