news 2026/4/23 12:58:22

Xilinx 7 系列 CameraLink 收发器 IP 深度解析

作者头像

张小明

前端开发工程师

1.2k 24
文章封面图
Xilinx 7 系列 CameraLink 收发器 IP 深度解析

关注、星标公众,精彩内容每日送达

来源:网络素材

1. 概述

本 IP 为 Xilinx 7 系列 FPGA 提供了一套完整的CameraLink Base(单链路)7:1 串行收发方案,采用SDR(Single Data Rate)模式,单数据通道最高700 Mbps(对应像素时钟 100 MHz,7 倍串行化)。
IP 由接收器(Receiver)发送器(Transmitter)两部分组成,均通过 Vivado IP Integrator 封装,提供 Tcl 图形界面,参数化生成 Verilog 代码。核心特性如下:

  • 纯 FPGA 逻辑实现,无需外接编解码芯片(如 DS90CR285/286),节省 BOM

  • 支持 1~8 条数据通道(D=1~8)与 1~8 条链路(N=1~8),最大 64 位并行数据

  • 片内 MMCM/PLL 完成时钟合成与相位对齐,自动 bitslip 与逐 bit 延迟校准

  • 提供eye-monitor实时眼图观测接口,方便调试

  • 参考时钟范围 20 MHz~100 MHz,兼容常见像素时钟

  • 全差分 LVDS 信号,支持内部 100 Ω 终端,符合 CameraLink 物理层规范


2. 整体架构

+-------------+ Pixel Clk 100 MHz || 7×Clk 700 MHz -----------------> | TX MMCM/PLL |-----------------> OSERDES (pixel_clk) || (txclk) +-------------+ | +-------------+ | 7:1 OSERDES|---- LVDS Diff Pair ----+ +-------------+ | | TXDATA(28-bit) --> 并行-串行转换 --> dataout_p/n | clk_pattern(7-bit) --> 时钟通道 --> clkout_p/n || +-------------+ || 1:7 ISERDES|<--- LVDS Diff Pair ----+ +-------------+ | +-------------+ RXCLK_DIV 100 MHz | RX MMCM/PLL |<--- 7×Clk 700 MHz <-----------------||<--- (rxclk) +-------------+ | +-------------+ |bitslip/IDELAY |<--- 200 MHz IDELAYCTRL +-------------+ | +-------------+ |eye-monitor/ | |phase-detector | +-------------+ | RXDATA(28-bit) --> 用户逻辑

3. 发送器(Transmitter)详解

3.1 时钟生成

clock_generator_pll_7_to_1_diff_sdr.v

  • 根据参数USE_PLL选择 MMCME2_ADV 或 PLLE2_ADV

  • 输入单端clkin(像素时钟),输出两路:

    • pixel_clk

      :与输入同频,用于加载并行数据

    • txclk

      :7 倍频,直接驱动 OSERDES

  • 支持MMCM_MODE参数(1/2)扩展 VCO 范围,保证 600 MHz~1.6 GHz 有效区间

3.2 并行-串行转换

serdes_7_to_1_diff_sdr.v

  • 每个数据通道实例化 1 个OSERDESE2,7:1 SDR 模式

  • 时钟通道额外实例化 1 个 OSERDES,发送固定clk_pattern(默认 7’b1100011,产生 4 高 3 低占空比)

  • 支持TX_SWAP_MASK位级反转,方便 PCB 差分线序调换

  • 所有 OSERDES 共用txclk,保证通道间 skew < 50 ps(同 BUFIO/BUFG 树)

3.3 数据重排
  • 参数DATA_FORMAT决定加载顺序:

    • PER_CLOCK

      (默认):同一时钟沿的 bit0~bit6 对应串行先发

    • PER_CHANL

      :跨通道交错,用于多链路同步

  • 用户只需在pixel_clk域提供txdata[(D×N×7)-1:0],IP 内部完成映射

3.4 时序举例(D=4, N=1)

pixel_clk 周期

txdata 索引(28-bit)

串行 bit 流(先发 LSB)

T0

[6:0]

D0[0]→D0[6]

T0

[13:7]

D1[0]→D1[6]

T0

[20:14]

D2[0]→D2[6]

T0

[27:21]

D3[0]→D3[6]


4. 接收器(Receiver)详解

4.1 时钟与数据恢复

serdes_1_to_7_mmcm_idelay_sdr.v

  • 输入 LVDS 时钟clkin_p/nIBUFGDS_DIFF_OUTIDELAYE2ISERDESE2

  • MMCM 生成两路:

    • rxclk

      :7 倍频,供 ISERDES 采样

    • rxclk_div

      :像素时钟,供用户逻辑

  • 自动bitslip状态机:检测 7 位时钟模式 7’b1100011,滑动 0~6 位直至对齐

  • rx_mmcm_lckdpsbs拉高,表示“MMCM 锁定 + bitslip 完成”,可安全收数

4.2 逐 bit 延迟校准

delay_controller_wrap.v

  • 每个数据 bit 独立实例化,采用Master/Slave双 ISERDES 结构

  • 主 ISERDES 延迟固定,从 ISERDES 延迟可动态调整

  • 相位检测器(Phase Detector)比较主从采样值:

    • 若主从一致 → 延迟合适

    • 若主早从晚 → 增加延迟

    • 若主晚从早 → 减少延迟

  • 内部 6 位计数器pdcount滤波,防止抖动

  • 支持eye-monitor模式:从延迟扫描 0~bt_val,记录主从一致区间,上报eye_info[31:0](1 hot 表示有效延迟 tap)

4.3 数据重排与输出
  • 经 bitslip 与 IDELAY 校正后,7 位并行数据按DATA_FORMAT重组

  • 最终输出rxdata[(D×N×7)-1:0]rxclk_div同步,可直接写入 FIFO 或进入图像处理管线


5. 参数化与 Tcl 界面

参数名

范围/可选值

功能描述

D

1~8

每链路数据通道数

N

1~8

链路数

MMCM_MODE

1,2

MMCM 倍频系数,1→×7,2→×14

USE_PLL

TRUE/FALSE

FALSE 使用 MMCM(推荐),TRUE 使用 PLL

CLKIN_PERIOD

4.0~50.0 (ns)

输入参考时钟周期

SAMPL_CLOCK

BUFIO/BUF_H/BUF_G

采样时钟缓冲类型

PIXEL_CLOCK

BUF_R/BUF_H/BUF_G

像素时钟缓冲类型

DIFF_TERM

TRUE/FALSE

使能片内 100 Ω LVDS 终端

Tcl 脚本(xgui/*.tcl)自动根据用户选择更新 Verilog 顶层参数,并生成 XCI 文件,支持 Vivado Block Design 拖拽。


6. 性能与资源

器件

速率

资源占用(D=4,N=1)

备注

xc7k325t

700 Mbps

1 MMCM + 4 OSERDES + 4 ISERDES + 4 IDELAY

单链路 4 数据通道

xc7k160t

560 Mbps

同上,MMCM_MODE=2

降低 VCO 频率

xc7a35t

420 Mbps

同上,使用 PLL

Artix-7 低成本方案

时序收敛要点

  • 输入时钟 jitter < 50 ps RMS,确保 MMCM 锁定余量

  • IDELAYCTRL 参考时钟 200 MHz ±10 ppm,必须来自专用 MRCC 引脚

  • LVDS 差分对 P/N 长度差 < 5 mil,阻抗 100 Ω ±10 %

  • 若使用 BUFIO,必须将像素时钟域信号经过FIFO/CDC再跨时钟


7. 典型使用流程

  1. IP 集成
  • Vivado → IP Catalog → CameraLink Receiver / Transmitter → 设置 D/N/时钟参数 → Generate

  • 引脚约束
    set_property IOSTANDARD LVDS_25 [get_ports {datain_p[*]}]set_property DIFF_TERM TRUE [get_ports {datain_p[*]}]set_property PACKAGE_PIN xxx [get_ports {datain_p[*]}]
  • 仿真
    • 提供 txdata 伪随机码 → 观察 rxdata 是否一致 → 检查 bitslip/locked 信号

  • 板级调试
    • 调用VIO实时读取eye_info,调整 PCB 补偿或 IDELAY 初始值

    • 使用Integrated Logic Analyzer抓取 rxclk_div 域数据,验证行/场同步


    8. 扩展与定制

    • 多链路同步

      :将所有链路的rx_mmcm_lckdpsbs做“与”运算后,统一释放用户逻辑复位

    • 更高速度

      :升级至 Kintex Ultrascale,使用OSERDES3/ISERDES38:1 DDR 模式,单通道 1.6 Gbps

    • 协议层

      :在 rxclk_div 域添加CameraLink 解码模块(FVAL/LVAL/数据),直接输出 Bayer/RGB 流

    • 热插拔

      :检测rx_mmcm_lckd下降沿,自动重启 bitslip 与延迟校准状态机


    9. 总结

    本 IP 将 Xilinx 官方 XAPP585 范例系统化、参数化、图形化,覆盖时钟合成、串行转换、bitslip、延迟校准、眼图监测全流程,已在国内多家工业相机、嵌入式视觉项目量产验证。开发者无需深入理解底层原语,即可在 30 分钟内完成 CameraLink 接口搭建,把更多精力投入到图像算法与产品差异化。

    (全文完)

    声明:我们尊重原创,也注重分享;文字、图片版权归原作者所有。转载目的在于分享更多信息,不代表本号立场,如有侵犯您的权益请及时联系,我们将第一时间删除,谢谢!

    想要了解FPGA吗?这里有实例分享,ZYNQ设计,关注我们的公众号,探索

版权声明: 本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若内容造成侵权/违法违规/事实不符,请联系邮箱:809451989@qq.com进行投诉反馈,一经查实,立即删除!
网站建设 2026/4/18 7:58:24

好写作AI:当环境研究遇上AI,你的论文终于可以“上管全球变暖,下治社区垃圾分类”了

你的研究同时涉及卫星遥感大图和土壤微生物数据——宏观与微观在PPT里同框出现时&#xff0c;像极了学术版的“穿越大剧”。别慌&#xff0c;你的“跨尺度数据缝合师”已上线。 凌晨的实验室&#xff0c;你电脑同时开着&#xff1a;全球CO₂浓度模拟图、流域水文监测表、某湿地…

作者头像 李华
网站建设 2026/4/22 4:25:48

好写作AI:给导师们的一份“AI防沉迷”系统搭建指南

当您的学生交上来的论文突然文采斐然、逻辑严丝合缝&#xff0c;却说不清核心概念的来龙去脉时——恭喜您&#xff0c;可能不是学生突然开窍&#xff0c;而是他的“AI队友”已默默Carry全场。 尊敬的导师们&#xff0c;您是否也经历过这种“怀疑人生”的时刻&#xff1f;批注从…

作者头像 李华
网站建设 2026/4/18 3:45:29

好写作AI:你的论文,期刊编辑和AI检测器正在“双审”

当你把精心雕琢&#xff08;并接受过AI深度辅助&#xff09;的论文投向期刊&#xff0c;编辑打开的不是Word文档&#xff0c;而是一份“AI生成嫌疑度”报告。欢迎来到学术发表的新纪元&#xff0c;这里欢迎“人机协作”&#xff0c;但严禁“灵魂代笔”。 这一刻终于到来&#x…

作者头像 李华
网站建设 2026/4/23 11:25:31

【软考每日一练022】数据库原理之关系运算

【软考每日一练022】数据库原理之关系运算 在数据库系统原理的学习与考试中&#xff0c;关系代数&#xff08;Relational Algebra&#xff09;不仅是理论基础&#xff0c;也是理解SQL查询执行过程的关键。今天我们来分析一道极易混淆的基础概念题&#xff0c;通过这道题来系统回…

作者头像 李华
网站建设 2026/4/8 23:53:31

好写作AI:当你的论文里住进一个AI,署名栏该不该有它的“工位”?

凌晨三点&#xff0c;你的论文终于定稿。就在点击提交的前一秒&#xff0c;你突然犹豫&#xff1a;这篇七成内容经过AI深度优化的论文&#xff0c;作者栏里…是不是该一下你的AI队友&#xff1f;欢迎来到学术署名权的“元宇宙”新辩题。实验室的日光灯下&#xff0c;你看着论文…

作者头像 李华