0
  • 聊天消息
  • 系统消息
  • 评论与回复
登录后你可以
  • 下载海量资料
  • 学习在线课程
  • 观看技术视频
  • 写文章/发帖/加入社区
创作中心

完善资料让更多小伙伴认识你,还能领取20积分哦,立即完善>

3天内不再提示

如何将易灵思FPGA干到750MHz(1080P显示)

FPGA技术江湖 来源:FPGA技术江湖 作者:FPGA技术江湖 2022-09-06 10:16 次阅读

前阵子写过一篇文章《如何才能半导体雪崩中活下来》,然后昨天任老爷子就发布了讲话,即接下来是全球经济衰退期,为了保证度过未来三年的“经济”危机,缩减业务,核心聚焦,不再关注销售额,而是现金流/利润为王。

为了活下来,我们可以躺平;我们需要卧薪尝胆,既然不适合去轰轰烈烈赶一把,我们反而可以利用这段时间,卧薪尝胆,好好学习。前阵子出差+工作耽搁了下,内心无比愧疚,今天重新开始学习分享FPGA知识,欢迎各位斧正。

拿来主义的好处就是,相对效率会更高一点,并且试错成本还低很多。那么在此感谢原厂FAE王奇抢先一步在我的开发板商移植HDMI,让我们在易灵思Ti60 FPGA上一睹为快。

09525d42-2d84-11ed-ba43-dac502259ad0.png

易灵思钛金系列FPGA Ti60F255的开发板,出炉已经有一些日子了,板载HDMI电路理论上是成熟的(别家FPGA上我验证过),但却一直没能挤出时间来移植一下HDMI 1.4的显示方案,今天我们就来挑战一下IO模拟1080P60,把易灵思Ti60 FPGA干到750MHz主频!

0964c680-2d84-11ed-ba43-dac502259ad0.png

这部分采用FPGA模拟的话,电路其实非常简单,加了EMC芯片后的原理图如下所示。

098ee00a-2d84-11ed-ba43-dac502259ad0.png

HDMI 采用和 DVI 相同的传输原理——TMDS最小化传输差分信号。TMDS 传输系统分为两个部分:发送端和接收端。TMDS 发送端收到HDMI 接口传来的24bit RGB信号,然后对这些数据进行编码和并/串转换,再将RGB 信号的数据分别分配到独立的传输通道发送出去。接收端接收来自发送端的串行信号,对其进行解码和串/并转换,然后发送到显示器的控制端;与此同时也接收时钟信号,以实现同步。

09adde92-2d84-11ed-ba43-dac502259ad0.png

网上很多FPGA模拟HDMI PHY的设计,可参见https://zhuanlan.zhihu.com/p/435937460。其中以Digilent的HDMI IP最为常见,其采用VHDL模拟TMDS,用FPGA实现HDMI的收发,节省了外部PHY芯片的成本(https://github.com/Digilent/vivado-library)。

09bb185a-2d84-11ed-ba43-dac502259ad0.png

Digilent HDMI IP方案,后来很多朋友其他平台上都有移植,我也在Xilinx和安路上都有移植测到过,其采用VHDL实现,稍微有点复杂。不过今天我将在FAE王奇的基础上,消化吸收另一个HDMI tx ip(采用Verilog编写,结构很简单),在易灵思Ti60 FPGA挑战下1080P60(其实主频主要还是看收发器的速率)。这里也感谢这个HDMI IP创作者的劳动果实,Verilog Header如下:

09dfdbc2-2d84-11ed-ba43-dac502259ad0.png

给出目前的框图,如下所示,外部输入25M,由Interface的PLL生成150/750MHz(离开148.5MHz有点偏差也没关系),hdmi_ip接收前面测试的RGB数据后,模拟HDMI协议发送给外部,在显示器上显示。由于TMDS用10bit编码,FPGA采用DDR模式进行数据发送,因此当串行时钟是像素时钟的10/2=5倍。

09f91344-2d84-11ed-ba43-dac502259ad0.png

我们在Interface中配置PLL,这里输入25M,输出150+750MHz,如下图所示:

0a0160e4-2d84-11ed-ba43-dac502259ad0.png

另外,这里的关键是我们采用易灵思的Double Data IO,配置如下,这里将hdmi_tx_data和hdmi_tx_clk都打开了resync模式:

0a098530-2d84-11ed-ba43-dac502259ad0.png

查询Efinity help文档,可以看到DDIO的Resync Mode,用户在Clock下降沿输入OUT0+OUT1,GPIO在上升沿输出OUT0,在Clock下降沿输出OUT1,从而达到了倍频的目的(这里的HI就是OUT0,LO就是OUT1)。

0a17f228-2d84-11ed-ba43-dac502259ad0.png

那么在代码中,我们需要驱动GPIO DDIO前的HI与LO,我们的顶层代码如下:

0a3e114c-2d84-11ed-ba43-dac502259ad0.png

这部分通过serdes_4b_10to1.v文件编码输出,相关代码如下所示:

0a584224-2d84-11ed-ba43-dac502259ad0.png

最后,采用Efinity进行综合,上图中的逻辑跑到了750MHz,DDIO实现了1.5Gbps的带宽。DDIO 1.5Gbps已经是易灵思的瓶颈了,虽然时序有一点小违例(150M到750M跨时钟域部分电路),但是HDMI 1080P60已经成功显示,如下所示(盗用8年前的图,懒得拍)。

0a6a9d84-2d84-11ed-ba43-dac502259ad0.png

本来打算移植LVDS模式,但是频率上不去,目前怀疑HDMI电路还得加上拉电阻,当前版本省略了,以后有机会再试试。下一步,上T35移植HDMI测试一下能跑到多少频率,至少应该能跑720P吧?

0a8a50f2-2d84-11ed-ba43-dac502259ad0.png

审核编辑 :李倩

声明:本文内容及配图由入驻作者撰写或者入驻合作网站授权转载。文章观点仅代表作者本人,不代表电子发烧友网立场。文章及其配图仅供工程师学习之用,如有内容侵权或者其他违规问题,请联系本站处理。 举报投诉
  • FPGA
    +关注

    关注

    1602

    文章

    21309

    浏览量

    593122
  • HDMI
    +关注

    关注

    32

    文章

    1487

    浏览量

    149718
  • 易灵思
    +关注

    关注

    5

    文章

    34

    浏览量

    4683

原文标题:如何将易灵思FPGA干到750MHz(1080P显示)

文章出处:【微信号:HXSLH1010101010,微信公众号:FPGA技术江湖】欢迎添加关注!文章转载请注明出处。

收藏 人收藏

    评论

    相关推荐

    给我一个FPGA,可以撬起所有显示的接口和面板

    作为FPGA的发明者——赛,手握极具灵活性、高性能的FPGA技术,似乎看别的芯片都有一种嫌弃不够畅快的感觉。当瞄上显示领域时,就会发出来
    发表于 04-25 18:10

    CYUSB3014+lattice FPGA输出帧不同步的原因?

    用FX3+FPGA的采集卡(参考AN75779设计)在1080p下运行59.94/29.97这种1.001格式时,FPGA那边已经做了同步,并且确定输出的帧率能够跟输入的对应;现发现图像不同步,当
    发表于 02-28 06:50

    求助,如何将GPIO5(SWDCLK)和GPIO6(SWDIO)作为基于NAC1080 ROM3平台的GPIO功能使用?

    如何将GPIO5(SWDCLK)和GPIO6(SWDIO)作为基于NAC1080 ROM3平台的GPIO功能使用?
    发表于 01-24 08:24

    如何将SCOUT的工程关联STEP7中?

    如何将SCOUT的工程关联STEP7中,就是SCOUT添加了一个伺服的设置,然后如何关联STEP7中,可以在STEP7中打开SCOUT 的文件
    发表于 01-09 13:16

    用ADV7511输出HDMI信号,1080P50Hz会闪烁,1080P60Hz会花屏是怎么回事?

    你好, 我用ADV7511,输出HDMI信号,1080i以下正常显示1080P50Hz会闪烁,1080P60Hz会花屏。 请问是怎么回事?
    发表于 12-21 06:56

    为什么1000base-T1在mdi上传输频率为750MHz呢?

    车载以太网在数据发送过程中的编码,4b-3b-2t-pam3。其中在3b-2t的时候,导致频率降为原来的2/3,所以100base-T1的mdi传输频率为66.7MHz;对于1000base-T1,同样采用4b-3b-2t-pam3的编码方式,为什么传输频率为750MHz
    发表于 12-13 11:24

    视频分辨率1080P、4K、及8MP有何区别?

    1080P,4K,2160P及8.3MP等经常用来表示视频的分辨率,但是如此多的称呼,经常让人混淆和困惑,那么今天就把视频分辨率说清楚。
    发表于 11-02 10:55 4909次阅读
    视频分辨率<b class='flag-5'>1080P</b>、4K、及8MP有何区别?

    Dell24的1080p显示器无信号输出, QSPI可以启动, SD卡启动失败是什么原因?

    Dell 24的1080p显示器HDMI无信号输出, 串口可以收到信号,QSPI启动成功,但切换到刷了69版本的SD卡启动失败,请问是什么原因?
    发表于 09-12 08:17

    如何将Unity着色器移植通用渲染管道

    介绍如何将为内置管道编写的Unity着色器移植URP。本指南还介绍了如何将自定义着色器移植URP。这是因为这些着色器无法自动移植URP
    发表于 08-02 13:39

    接待大厅P3LED显示屏分辨率达到1080P尺寸是多少

    接待大厅P3LED显示屏分辨率达到1080P尺寸是多少及定做价格---1080P-LED显示屏是指显示屏分辨率1920*
    的头像 发表于 06-26 10:56 1080次阅读

    需要达到1080p分辨率p2.5的led显示屏的显示尺寸为多少

    1080P需要横向1920像素,纵向1080像素,P2.5间距是2.5mm,那么显示屏横向长度为1920*2.5/1000=4.8米,纵向长度为1080*2.5/1000=2.7米。
    的头像 发表于 06-26 10:55 906次阅读

    豪威推出交错式高动态范围的1080p全高清图像传感器

    这款具有交错式高动态范围(HDR)的1080p全高清(FHD)图像传感器适用于采用薄边框设计的设备,包括主流和高端笔记本电脑、平板电脑和物联网设备。
    发表于 06-01 09:37 205次阅读
    豪威推出交错式高动态范围的<b class='flag-5'>1080p</b>全高清图像传感器

    BK7258--wifi音视频soc芯片,1080P H264 wifi低功耗保活,内置BLE,音频code,psram,flash,USB2.0,RGB大屏,回声消除

    Hz RISC-V 800 KB嵌入式RAM,8Mbyte 2.56Gbps PSRAM CIS DVP接口,支持720p 25fps;1080p/12fps M JPEG编解码,支持720p
    发表于 05-23 09:59

    如何将mbedtls库升级3.0.0版?

    如何将 mbedtls 库升级 3.0.0 版?目前,我正在使用 SDK_2.13.0_LPCXpresso55S16 中的 mbedtls 库。有没有人对如何进行有建议或指示?
    发表于 05-18 08:30