SDR设计日志

记录Zynq开发板设计过程中的思考、决策和技术要点

周六 8月 09 2025
3005 字 · 11 分钟

==设计历程==

2025.8.9

  1. 修改zynq7010为zynq7020,二者几乎完全兼容,我甚至都可以不用改原理图,焊的时候焊为7020即可。
  2. 添加原理图注释,添加外设位置,电源标注。
  3. 继续完善修改原理图
    1. 将全部电容(0603)改为(0402),耐压16V以上
    2. 完善了DDR3、TF_CARD
  4. 增加了关于电源、关于bank的部分。
  • TF卡槽
  • 调试烧录(串口和Jtag)
  • DDR3
  • Flash
  • 电源连接部分

2025.8.10

  1. 着手搭建博客(博客园美化)

    1. 基本完成博客园主题与Typora主题相似。
  2. 继续完善修改原理图

    1. 完善USB-OTG、千兆网口的原理图绘制。
    2. 了解了HR bank和HP bank的区别,方便后续添加摄像头。
  3. 增加了关于GND的部分。

  • USB OTG
  • 千兆网口

2025.8.11

  1. 继续完善修改原理图
    1. 将AD9363替换为AD9361,二者不完全PIN_to_PIN。(带宽提升到6G)
      1. 原M12有源40M晶振,修改为M11、M12无源40M晶振。
      2. 开始考虑LVDS传输。
      3. 突然意识到FR4能到6G吗!?(管tm的哟)
    2. 继续完善电源部分
      1. AD9361需要干净的1.3V/1A,使用TPS7A91 ldo。
      2. 3.3V,1.8V电源由DCDC提供即可。
  2. 增加了关于AD9361的部分。
    1. V1.0,不加PA,纯AD9361输出。
  3. 继续弄博客。
  • AD9361
  • 博客

2025.8.12

  1. 只弄了博客。(沉迷AI抽奖了┭┮﹏┭┮)
  • AD9361
  • 博客

2025.8.13

  1. 学习了一下怎么把代码直接push到github上或者gitee上面。
  2. 让ai大人把它写的2500行屎山代码重构了一下,并用jsdelivr使我能在博客园快速使用。
  • AD9361
  • 博客

2025.8.14

  1. 收集了大量资料,目前看来只有UG933对我有点帮助。

  2. 询问ai在FPGA如何分配AD9361管脚上浪费大量时间,它md一直说要在哪个VRP管脚上弄240欧姆的电阻。最终参照了Zedboard的管脚分配,虽然它是484bga封装的XC70Z20封装,我是400bga封装,但是我也总结出来了规律。

    1. AD9361的数据差分线连接到普通的LVDS差分线,SRCC差分线,DQ差分线上都可以。(几把ai偏说不行)
    2. AD9361的时钟差分线连接到普通的LVDS差分线,MRCC差分线都可以。
    3. AD9361的FRAME差分线连接到普通的LVDS差分线,SRCC差分线都可以。

    总结:我觉得都是可以分配的,只要分配到差分管脚上即可,但是不要分配到VREF管脚上了,方便布线为主。

  3. 学习摄像头接口种类。

    1. 目前的问题还是如何在AD9361上传输高画质视频流。我稍微思考了一下,先实现imx219摄像头裁剪到320×240画质下发送出去,这种带宽绰绰有余!后续的话,增加H265/H264编码解码芯片,板间USB-OTG传输。
    2. 完成电阻网络兼容FPGA的DPHY。(方案不行)速率不够
  4. 在考虑要不要HDMI!?

  5. 看番去了:吊带袜天使!!!

  • AD9361
  • 博客

2025.8.15

  1. 正在寻找有没有高速的btb连接器!目前的打算是使用MC20901来传mipi信息 发现现在速度够了,70fps 1080p目前来说够了。
  2. 现在考虑的是要不把bank35改为3.3v供电,用电平转换芯片来给AD9361通信,然后嘻嘻就能在这加hdmi了。(现在想来没有必要,可以在后面的视频解码芯片那里加HDMI)
  3. 详细分析了电阻网络的可行性,并写了博客一篇低成本电阻网络兼容FPGA_DPHY的简要概括 - 蓝色的aoi - 博客园
  4. 突然发现CDN在国外,不用魔法有些JS传不到博客上,算了现在没时间弄。

2025.8.16

  1. 完善原理图接近尾声:
    1. 补充了FPGA电源的电容(100多个)
    2. 补充小排针用于选开机模式
    3. 叫ai评估了一下功耗:把检流电阻从大封装换成了0603封装50mΩ/0.5W,把二极管也换成了小封装的DSS34。
  2. 明天休假一天

2025.8.19

  1. 休整2天后开始绘制pcb了(其实这2天也没闲着,最开始想用JP的,没想到要企业认证了呜呜,后来想用付费的JLC工艺,现在看来免费的0.3mm/0.4mm过孔也能走)
    1. 学习了怎么添加规则(完成了大部分规则的添加)
    2. 完成了BGA的扇出,完成了FPAG电源处100nF电容的布局,完成了电源DCDC的布局,稍微确定部件位置,等待后续修改管脚。

2025.8.24

👊一招误判,满盘皆输!

失败了!失败了!失败了!失败了!失败了!失败了!失败了!失败了!失败了!失败了!失败了!失败了!失败了!失败了!失败了!失败了!失败了!失败了!失败了!失败了!失败了!失败了!失败了!失败了!失败了!失败了!失败了!失败了!失败了!失败了!失败了!失败了!失败了!失败了!失败了!失败了!失败了!失败了!失败了!失败了!失败了!失败了!失败了!失败了!失败了!失败了!失败了!失败了!失败了!失败了!失败了!失败了!失败了!失败了!失败了!失败了!失败了!失败了!失败了!失败了!

👊你将遭受的折磨比群星更长久!👊即使到了宇宙化为尘埃的那一天,你仍将饱尝痛苦……我的痛苦!👊🤜😭🤛

哎哟wr了,看错阻抗计算了,几天布线白布了。。。只能重新布了,哎哟wr

2025.8.25

觉醒:怕这怕那的,MD反正是第一块板子,直接弄10*10得了,省得东考虑一些西考虑一些,瞎几把走线得了,反正速率又不高,现在小于100MHZ的,连通就行了。管tm的晶振底下能不能走线,我就走了怎么着。

五大盟约:

  1. 避免反复思考,md直接连通就行。
  2. 别人工程直接复用,懒得自己画了。
  3. 不管晶振、高速线底下能不能走线了。直接走线。
  4. 之前还考虑喷漆会不会影响介质常数,md纯纯nt吧我,狠狠喷二次元喷漆。
  5. 不用考虑小体积了,反正后续分板设计(网口、摄像头全几把不要了)。现在能偷懒就偷懒。

改变:

  1. 明明可以用一个usb口完成供电和数据的,现在我不弄了,这tm管脚也太阴间了吧,(DM和DP)要从底下连到顶上,唉太远了,直接再加一个usb口在底下。

  2. 直接照搬别人的DDR,火速解决(只是间隔有点大了)。

  3. 直接过孔打焊盘上,之前还考虑漏锡不。

总结:一天从头开始追上进度!

2025.8.26

有人又开始犹豫了,到底是使用LVDS还是CMOS的版本,CMOS版本因为有Pluto SDR的固件可以直接使用,LVDS虽然也有固件,唉不好验证成功与否。

算了,就LVDS吧,慢慢来吧。

2025.8.28

增加AD9361的2路1.3v电源轨(TPS7A8101DRBR),之前忘记加了。

可以分配到IO_VERF的管脚上。


关于电源

参考:FPGA上电时序

PS端
VCCPINTPS内部逻辑(内核)电源电压,最大不超过1.1V;一般设计采用1.0V(VCCPINT 1.0V)
VCCPAUXPS辅助电源电压,最大不超过2.0V;一般设计采用1.8V(VCCPAUX 1.8V)
VCCPLLPS PLL电源,PLL内部时钟供电电源,最大不超过2.0V;一般设计采用1.8V(VCCPLL 1.8V)
PS_VCCOPS_VCCO包括PS_VCCO_DDR、PS_VCCO_MIO I/O电源;一般设计采用1.5V(VDDR 1.5V) (MIO0 3.3V)(MIO1 1.8V)

PS端上电顺序:VCCPINT → VCCPAUX&VCCPLL → PS_VCCO(1.0v -> 1.8V -> 1.5v) 掉电顺序相反

PL端
VCCINTPL内部逻辑(内核)电源电压,最大不超过1.1V;一般设计采用1.0V(VCCINT 1.0V)
VCCBRAMPL块RAM电源电压;一般设计采用1.0V(VCCBRAM 1.0V)
VCCAUXPL辅助电源电压辅助电源;一般设计采用1.8V(VCCAUX 1.8V)
VCCOBANK电压【RSVDVCC tie to VCCO_0】(Bank0 3.3V)(Bank35、Bank34 1.8V)(Bank13 3.3V)

其他:(VCCADC0 1.8V)(VCCBATT0 1.8V)


关于bank

参考:ZYNQ 硬件系统及BANK区域管理

PS bank
Bank500(3.3V)MIO0。硬件外设:(Flash)(调试串口)
Bank501(1.8V)MIO1。硬件外设:(TF卡)(USB2_OTG)(千兆网)
Bank502(1.5V)DDR
PL bank
Bank0 (3.3V)JTAG、复位、自检
Bank13~~(3.3V)~~(2.5V)暂时未使用 摄像头
Bank34(1.8V)电源IIC、AD9361(数据部分,时钟部分)
Bank35(1.8V)AD9361(数字控制部分)

还可细分为HP_BANK和HR_BANK


关于GND

​ 在网口、DDR、ZYNQ的某些地(GND和RSVDGND)等等地方使用了三角形的GND(数字地 (Digital Ground, DGND) ),而在USB、ZYNQ的ADCGND、电源等等地方上使用了三条杠的GND(模拟地 (Analog Ground, AGND)

  • 模拟地 :

    • AD9361 的所有GND引脚(包括AGND, DGND, GND_RF等)。
    • ZYNQ的ADC地 (GNDADC) 和ADC电源(VCCADC)的滤波电容地。
    • 为AD9361供电的LDO的GND。
    • AD9361的参考晶振的GND。
  • 数字地 :

    • ZYNQ 的绝大部分GND引脚(除了GNDADC)。
    • DDR3 的所有GND。
    • Flash 的GND。
    • TF卡 的GND。
    • USB PHY以太网PHY 的数字部分GND。
    • 所有开关电源的GND。

关于AD9361

电源部分

引脚号助记符描述与电压
核心电源 (1.3V)
B9VDDA1P3_TX_LO发射LO 1.3V电源输入。
B10VDDA1P3_TX_VCO_LDO发射VCO LDO 1.3V电源输入。连接到B9。
D2VDDA1P3_RX_RF接收器1.3V电源输入。连接到D3。
D3VDDA1P3_RX_TX1.3V电源输入。
E2VDDA1P3_RX_LO接收LO 1.3V电源输入。
E3VDDA1P3_TX_LO_BUFFER1.3V电源输入。
F2VDDA1P3_RX_VCO_LDO接收VCO LDO 1.3V电源输入。连接到E2。
F12VDDD1P3_DIG1.3V数字电源输入。
J3VDDA1P3_RX_SYNTH1.3V电源输入。
K3VDDA1P3_TX_SYNTH1.3V电源输入。
K4VDDA1P3_BB1.3V电源输入。
VCO 电源 (1.3V)
A11VDDA1P1_TX_VCO发射VCO电源输入。连接到B11。
G3VDDA1P1_RX_VCO接收VCO电源输入。仅将此引脚直接连接到G2。
数字接口电源 (可变)
H12==VDD_INTERFACE==1.2V至2.5V。用于数字I/O引脚的电源。LVDS模式下推荐1.8V;CMOS模式下常用1.8V2.5V
GPO/AUXDAC电源 (可变)
B8VDD_GPO2.5V至3.3V。用于AUXDAC和GPO引脚的电源。不使用时必须设为1.3V
模拟地 (GND)
A4, A6, B1, B2, B12, C2, C7-C12, F3, H2, H3, H6, J2, K2, L2, L3, L7-L12, M4, M6VSSA模拟地。
数字地 (GND)
D12, F7, F9, F11, G12, H7, H10, K12VSSD数字地。应与VSSA在PCB上连接到同一个接地平面

数字数据与控制接口

引脚号助记符描述 (CMOS/LVDS双功能)
数据端口 P0 (TX)
D7-D11, E7-E12, F8P0_D[11:0] / TX_D[5:0]数据端口0,双向(TDD)或发射(FDD)。CMOS下为12位总线,LVDS下为6位差分总线。
数据端口 P1 (RX)
H8, J7-J12, K7-K11P1_D[11:0] / RX_D[5:0]数据端口1,双向(TDD)或接收(FDD)。CMOS下为12位总线,LVDS下为6位差分总线。
时钟与帧信号
F10, G10FB_CLK_P/N输入 - 反馈时钟,用于锁存TX数据。
G11, H11DATA_CLK_P/N输出 - 数据时钟,BBP用此锁存RX数据。
G9, H9TX_FRAME_P/N输入 - 发射帧信号,指示TX数据有效。
G7, G8RX_FRAME_P/N输出 - 接收帧信号,指示RX数据有效。
SPI 接口
K6SPI_ENBSPI使能输入 (低电平有效)。
J5SPI_CLKSPI时钟输入。
J4SPI_DISPI串行数据输入。
L6SPI_DOSPI串行数据输出 (4线模式) / 高阻态 (3线模式)。
状态机与同步控制
G6ENABLE控制输入,用于设备状态转换。
H4TXNRX状态机控制,选择TX/RX方向。
H5SYNC_IN多设备同步输入。
K5RESETB异步复位输入 (低电平有效)。

射频收发接口

引脚号助记符描述
接收输入 (RX Inputs)
M1, M2RX1A_P/N接收通道1,差分输入A。
H1, J1RX1B_P/N接收通道1,差分输入B (3GHz以上性能下降)。
K1, L1RX1C_P/N接收通道1,差分输入C (3GHz以上性能下降)。
A1, A2RX2A_P/N接收通道2,差分输入A。
E1, F1RX2B_P/N接收通道2,差分输入B (3GHz以上性能下降)。
C1, D1RX2C_P/N接收通道2,差分输入C (3GHz以上性能下降)。
发射输出 (TX Outputs)
M7, M8TX1A_P/N发射通道1,差分输出A。未使用时连接到1.3V。
M9, M10TX1B_P/N发射通道1,差分输出B。未使用时连接到1.3V。
A7, A8TX2A_P/N发射通道2,差分输出A。未使用时连接到1.3V。
A9, A10TX2B_P/N发射通道2,差分输出B。未使用时连接到1.3V。
外部本振 (External LO)
G1RX_EXT_LO_IN外部接收LO输入。未使用时连接到GND。
A12TX_EXT_LO_IN外部发射LO输入。未使用时连接到GND。
发射监控 (TX Monitor)
M5TX_MON1发射通道1功率监控器输入。
A5TX_MON2发射通道2功率监控器输入。

时钟与参考

引脚号助记符描述
主参考时钟
M11, M12XTALP, XTALN参考频率连接。可接晶体或外部时钟源。
时钟输出
J6CLK_OUT可配置的时钟输出。
偏置参考
L4RBIAS偏置输入参考。通过14.3 kΩ电阻接地。

辅助与通用I/O

引脚号助记符描述
辅助 ADC/DAC
L5AUXADC辅助ADC输入。未使用时连接到GND。
B3AUXDAC1辅助DAC 1输出。未使用时NC。
C3AUXDAC2辅助DAC 2输出。未使用时NC。
通用输入/输出 (GPIO)
C5, C6, D6, D5CTRL_IN[3:0]控制输入,用于手动增益/衰减控制。
D4, E4-E6, F4-F6, G4CTRL_OUT[7:0]可编程的控制输出。
B4-B7GPO_[3:0]3.3V兼容通用输出。
其他
C4TEST/ENABLE测试输入,正常操作时接地。
A3, M3NC无连接。

关于摄像头协议

IMX219属于2 lanes的MIPI_CSI。

CSI 是外设(如相机)和主机处理器之间的高速串行接口。

代码部分后续可以参考:7 Serises FPGA的MIPI采集实战

兼容MIPI_DPHY可以参考:7 Serises FPGA的MIPI DPHY 接口实现

此次采用低成本电阻网络实现兼容。

采用低成本电阻网络实现兼容

优化事项:

  • 取消TF卡的写保护(因为TF卡没有WP,难绷)。

  • 把TF卡移动到另一个3.3VBank上,可以减少一个电平转换芯片。

  • 删除3.3V的SPX3819M5-L-3-3/TR ldo,直接由DCDC的3.3V给VCCO_13供电


Thanks for reading!

SDR设计日志

周六 8月 09 2025
3005 字 · 11 分钟