查看: 1175|回复: 0
收起左侧

优秀的 Verilog/FPGA开源项目介绍(九)- DP

[复制链接]

  离线 

  • TA的每日心情
    奋斗
    2022-6-21 08:23
  • 签到天数: 2 天

    [LV.1]

    发表于 2021-12-12 14:39:08 | 显示全部楼层 |阅读模式

    有人预言,RISC-V或将是继Intel和Arm之后的第三大主流处理器体系。欢迎访问全球首家只专注于RISC-V单片机行业应用的中文网站

    您需要 登录 才可以下载或查看,没有帐号?立即注册

    x
    本帖最后由 塞巴斯蒂安 于 2021-12-12 14:38 编辑

    优秀的 Verilog/FPGA开源项目介绍(九)- DP

    国外芯片技术交流-优秀的 Verilog/FPGA开源项目介绍(九)- DPrisc-v单片机中文社区(1)
    国外芯片技术交流-优秀的 Verilog/FPGA开源项目介绍(九)- DPrisc-v单片机中文社区(2)
    DP即DisplayPort,是一种高清数字显示接口标准,可以连接电脑和显示器,也可以连接连接电脑和家庭影院。2006年5月视频电子标准协会(VESA)推出了1.0版本。
    国外芯片技术交流-优秀的 Verilog/FPGA开源项目介绍(九)- DPrisc-v单片机中文社区(3)
    DP各个版本接口(来源:知乎)


    官网

    https://vesa.org/

    ESA 是一家由董事会领导的国际非营利性公司,该公司代表了全球超过 285 家具有投票权的公司成员。
    国外芯片技术交流-优秀的 Verilog/FPGA开源项目介绍(九)- DPrisc-v单片机中文社区(4)
    VESA 支持并为 PC、工作站和消费电子行业制定行业范围的接口标准。

    VESA 提供了一个论坛来开发、促进和支持显示行业的开放标准。

    https://www.displayport.org/
    国外芯片技术交流-优秀的 Verilog/FPGA开源项目介绍(九)- DPrisc-v单片机中文社区(5)

    DP协议简析

    在《【科普】HDMI vs DisplayPort vs DVI傻傻分不清楚》中我们简单介绍了DP接口协议,得到以下几点:
    1、DP是在HDMI及DVI基础上提出的;
    2、DP是基于微报文形式进行数据传输;
    3、DP借鉴了以太网、PCIe、USB协议。

    从以上几点可以简单推导一下DP协议的特点:
    1、DP是一个协议,肯定也是会参考OSI参考模型的,即会采用分层结构,最低层肯定是物理层;
    国外芯片技术交流-优秀的 Verilog/FPGA开源项目介绍(九)- DPrisc-v单片机中文社区(6)
    DP标准的文章标题 协议(标准)、总线、接口区别
    国外芯片技术交流-优秀的 Verilog/FPGA开源项目介绍(九)- DPrisc-v单片机中文社区(7)
    2、DP的EDID、DDC通道(这里猜测是错误的,后续会纠正)也是必不可少的;

    3、DP接口借鉴以太网、PCIe、USB协议,所以时钟信号是可有可无的。

    综上,我们在从宏观上看下DP标准:
    国外芯片技术交流-优秀的 Verilog/FPGA开源项目介绍(九)- DPrisc-v单片机中文社区(8)
    上图就是分层结构框图,可以看出有两层分层结构:1、Link层;2、PHY(物理层)层。同时,无时钟网络,增加了AUX数据链路(HDMI还有随路时钟,而DP没有采用了,因此物理上多一路数据通道。另外DP多了一路AUX配置通道。)
    国外芯片技术交流-优秀的 Verilog/FPGA开源项目介绍(九)- DPrisc-v单片机中文社区(9)
    国外芯片技术交流-优秀的 Verilog/FPGA开源项目介绍(九)- DPrisc-v单片机中文社区(10)
    国外芯片技术交流-优秀的 Verilog/FPGA开源项目介绍(九)- DPrisc-v单片机中文社区(11)
      HDMI TYPE A接口定义 DP接口定义
    国外芯片技术交流-优秀的 Verilog/FPGA开源项目介绍(九)- DPrisc-v单片机中文社区(12)
    PS:虽然上述接口都是比较常见的接口,但是标准里并没有强制规定接口类型,例如现在的TYPE-C接口(雷电协议)走的就是DP协议。

    Link层
    国外芯片技术交流-优秀的 Verilog/FPGA开源项目介绍(九)- DPrisc-v单片机中文社区(13)
    链路层提供如下链路/设备服务和同步传输服务:

    链接和设备服务
    o 链接服务用于发现、配置和维护链接。对 DPCD(DisplayPort 配置数据)字段的 AUX CH 读/写访问。
    o 设备服务支持设备级应用,例如 EDID 和 MCCS 访问。

    此外,设备服务可以选择性地包括内容保护。

    在这两者中,Link Services 将在 DisplayPort 一致性测试中进行测试。就设备服务而言,仅测试了 I2C-to-AUX CH 流。

    同步传输服务
    等时传输服务使用一组规则将视频和音频流映射到 DisplayPort 主链路,以便可以将流正确重建为接收设备中的原始格式和时基。等时传输服务提供以下内容:
    1.流数据进出主链路通道的映射
    o 包装/拆包
    o 填充/不填充
    o 框架/取消框架
    o 车道间偏斜和去偏斜

    2.流时钟恢复

    3.插入主流属性数据

    上述所有同步传输服务功能都在 DisplayPort 一致性测试中进行了测试。源 DUT 直接连接到参考接收器设备。接收器 DUT 直接连接到参考源。分支 DUT(例如电缆延长器)连接到参考源和接收器设备。

    PHY层

    DisplayPort PHY 层指定了上游设备上的端口(即 DP 源或分支设备上的 AV 输出端口)和下游设备上的端口(即 DP 接收器或分支设备)。它将数据传输电气规范与 DisplayPort 链路层分离,从而为未来链路层特定设计增强以及传输媒体类型的未来变化(例如混合设备的使用)提供模块化。PHY层进一步细分为逻辑和电功能子块,如图3-1所示
    国外芯片技术交流-优秀的 Verilog/FPGA开源项目介绍(九)- DPrisc-v单片机中文社区(14)
    这部分,主要的物理信号包括:HPD AUX MAIN-LINK,下面简单介绍一下:

    HPD

    热插拔检测电路

    PHY 层负责检测 Hot plug/Unplug 和通知链路层:

    1、逻辑子块——将热插拔事件通知上层;2、电气子块 – 检测热插拔事件。

    AUX 通道电路

    PHY 层使用 1Mbps Manchester-II 编码为链路配置或维护 EDID 访问等服务提供半双工双向 AUX 通道

    主链路电路

    PHY 层为同步流和辅助数据包的传输提供单向主链路。

    逻辑子块
    • 加扰和解扰
    • ANSI 8b/10b 编码/解码
    • 序列化和反序列化
    • 链路训练和链路状态监视器
    • 根据需要调整链路速率、扩展、驱动电流电平和预加重电平
    • 用于可测试性的链路质量测量

    电气子块
    • 最多包含四个差分对
    • 发射器
    • 以符合主链路发射器电气规范的方式驱动双端接交流耦合差分对
    • 接收者
    • 接收输入的差分信号并使用其链路 CDR(时钟和数据恢复)电路提取数据

    连接时序
    国外芯片技术交流-优秀的 Verilog/FPGA开源项目介绍(九)- DPrisc-v单片机中文社区(15)
    整个过程和HDMI类似:
    1、先是检查HPD信号;
    2、读取EDID(通过AUX通道,不是DDC);
    3、Link Training(DPCD)(确认链路的参数,如lane的数目、链接速率、电压摆幅、预加重、均衡,还有时钟恢复);
    国外芯片技术交流-优秀的 Verilog/FPGA开源项目介绍(九)- DPrisc-v单片机中文社区(16)
    DHCP过程(图片来源:知乎https://zhuanlan.zhihu.com/p/150644951?ivk_sa=1024320u
    4、HDCP-如果传输的内容是受保护的,即需要通过HDCP协议进行沟通;
    国外芯片技术交流-优秀的 Verilog/FPGA开源项目介绍(九)- DPrisc-v单片机中文社区(17)
    HDCP过程(图片来源:知乎https://zhuanlan.zhihu.com/p/150644951?ivk_sa=1024320u

    PS:HDMI的时序基本也是这样的,在调试过程中,如果无法显示或者输出,参考上诉流程,确定每个物理信号是否正常。

    VHDL FPGA_DisplayPort

    https://github.com/hamsternz/FPGA_DisplayPort

    验证板卡

    Digilent Nexys 视频开发板上的 Xilinx Artix-7 FPGA
    国外芯片技术交流-优秀的 Verilog/FPGA开源项目介绍(九)- DPrisc-v单片机中文社区(18)
    Nomato Labs Opsis 板上的 Spartan 6 LX45T

    状态

    在一个、两个或四个 2.70Gb/s 通道上实现 800x600 显示(取决于实际电路板的设计)。它还可以通过双通道接口显示 3840x2160@30Hz YCC 422。还有一个测试源可以显示超过 800x600 的颜色条。

    为 Artix-7 和 Spartan-6 LXT FPGA 提供低级收发器模块。这些将需要修改以与您的特定 FPGA 板的布局一起使用。

    TODO
    • 支持 1.62Gb/s 链接速度
    • 增强 FSM 以正确处理电压和预加重更改请求。
    • 使热插拔正常工作 - 目前只是每秒查询 EDID 寄存器作为 HPD 的代理
    • 制作合理的视频接口 - 视频时钟不需要锁定到像素时钟(耶!)
    • 音频/辅助数据包支持
    • 可以整理 Spartan 6 收发器模块 - 例如关闭未使用的部分
    • 获得对 Artix-7 上实现的 8b/10b 的硬件支持 - 完成
    • 获得对 Spartan-6 上实现的 8b/10b 的硬件支持
    • 删除调试存根
    • 添加 4k60 样本和 4k30 444 样本流
    • 添加对至少一个 Kintex-7 板的支持
    • 通过折叠一些流水线阶段来

    优化资源使用- 完成- 通过仅使用一个加扰器 LFSR 并为所有通道使用它来优化资源使用 -完成
    • 放入时序异常以获得清晰的时序报告
    • 所有活动通道在同一周期内传输 K 个符号(不包括流水线末端的 2 个周期偏移),因此可以共享一个公共 K 信号,将 72 位减少到 65管道。

    VERILOG FPGA_DisplayPort

    https://github.com/hamsternz/DisplayPort_Verilog

    上一个项目的Verilog版本,进度上稍微有点不同

    上两个项目的部分代码解析(非官方)

    https://blog.csdn.net/m0400220334?t=1

    ultra96v2/KV260 imx219_to_displayport
    国外芯片技术交流-优秀的 Verilog/FPGA开源项目介绍(九)- DPrisc-v单片机中文社区(19)
    ultra96板卡

    国外芯片技术交流-优秀的 Verilog/FPGA开源项目介绍(九)- DPrisc-v单片机中文社区(20)
    KV260板卡
    项目地址:
    https://github.com/gtaylormb/ultra96v2_imx219_to_displayport
    https://github.com/ATaylorCEngFIET/Ultra96V2_DisplayPort/tree/master/display_port
    https://github.com/ATaylorCEngFIET/Ultra96V2_DisplayPort/tree/master/display_port

    这两个板卡的DP接口都是接在PS端的,所以本项目对于想用FPGA实现的朋友没有什么参考价值,适合只是想体验一下DP接口的朋友。

    Genesys_ZU_MIPI_PCAM

    https://github.com/ATaylorCEngFIET/Genesys_ZU_MIPI_PCAM
    国外芯片技术交流-优秀的 Verilog/FPGA开源项目介绍(九)- DPrisc-v单片机中文社区(21)
    Genesys_ZU板卡
    和上面项目一样。

    总结

    DP接口的项目很少,主要是有种“吃力不讨好”的感觉,很复杂的协议用FPGA实现没什么太大的意义(目前来看),不仅需要占用GTx的资源,而且目前没有很多的应用场景。将来从3D等领域来看还是很值得推广的,目前官方也有自己的IP。但是目前这种IP就类似SDI这种接口,不适合大众的使用场景,目前还是有很多BUG(使用人少)。
    国外芯片技术交流-优秀的 Verilog/FPGA开源项目介绍(九)- DPrisc-v单片机中文社区(22)
    官方GTX接口的DP模板  DP IP
    国外芯片技术交流-优秀的 Verilog/FPGA开源项目介绍(九)- DPrisc-v单片机中文社区(23)
    国外芯片技术交流-优秀的 Verilog/FPGA开源项目介绍(九)- DPrisc-v单片机中文社区(24)
    所以这一篇文章只是简单介绍一下两个DP的开源项目,适合学习一下接口协议,最后就分享一下DP 1.4的协议,有兴趣可以去学习。

    链接:https://pan.baidu.com/s/1hAOGKhbSQgAn6U0eUNFbIA
    提取码:cnin

    最后,还是感谢各个大佬开源的项目,让我们受益匪浅。






    上一篇:Xilinx 7系列FPGA入门级图像处理-完整版V1
    下一篇:优秀的 Verilog/FPGA开源项目介绍(十)-H.264和H.265
    RISCV作者优文
    全球首家只专注于RISC-V单片机行业应用的中文网站
    回复

    使用道具 举报

    高级模式
    B Color Image Link Quote Code Smilies

    本版积分规则

    关闭

    RISC-V单片机中文网上一条 /2 下一条



    版权及免责声明|RISC-V单片机中文网 |网站地图

    GMT+8, 2024-3-28 22:27 , Processed in 0.453619 second(s), 48 queries .

    快速回复 返回顶部 返回列表