易灵思FPGA,天生适合MIPI/LVDS等相关应用,加上硬核DDR3控制器,简直就是完美。
T35F324开发板支持LVDS LCD显示与HDMI显示,具体框图如下。这里,我将就花一定的篇幅,讲讲Trion系列FPGA T35的LVDS TX Hard IP如何使用,并且实战驱动我设计的1024*600的7寸 LVDS屏幕。

1.硬件介绍

如下图所示,为1024*600 LVDS LCD接口,这里直接与FPGA的LVDS IO对接驱动,其中相关Bank使用了3.3V电平。由于我在LCD驱动板侧已经处理好了所有的电源驱动,因此用户接口驱动,只需要给PWM与LVDS数据即可。

其中LVDS为1对差分时钟,4对差分数据线,查阅LCD手册(群创),相关的驱动协议如下所示(8bit DE模式,其中时钟采用了3:4占空比)

另外,1024*600的驱动时序,如下所示。这里时钟范围为 40.8~67.2MHz,并且时序与VGA Timing完全一样。我曾详细的介绍过如何驱动VGA显示器,这里在LVDS之前的RGB时序,是完全一样的。

所以我们的整体的Pipeline应该是这样的:lcd_driver <–> lcd_display --> LVDS Interface

2.Trion FPGA LVDS原理

打开Efinity软件,点击Help-Document,在Interface Designer中找到LVDS Interface,查询Trion系列FPGA的LVDS Interface,如下图所示:

可见LVDS是硬核心,并且支持800MHz LVDS速率,兼容2:1 ~ 8:1,并且FPGA片上已经集成了100R终端电阻,如下所示:

另外,如果LVDS bank用于GPIO,要求必须相邻2对unassigned LVDS pins,否则软件会报错

接着,以LVDS TX为例,我们打开相关的小节,可见文档给出的框图:

这里,由PLL产生fastclk与slowclk,供给Serializer,随后进行串行数据的输出。以n=7为例,help给出了如下时序图,即按照3:4,输出7bit的数据。

另外,需要注意的是在Using the Trion LVDS Block中,可见fastclk0与slowclk的关系。首先fastclk就是serial clock, slowclk就是parallel cock;其次,在Trion系列FPGA中,fastclk=slowclkn/2,那么当n=7时,fastclk=3.5slowclk。

3.LVDS TX设计流程

分析完Trion FPGA的LVDS TX特性,我们有米可炊,直接上刀,如下:

1)首先,File→Create Project,创建工程,选择对应的器件

2)接着加入已有的代码(99.9%的人都是移植,不会在国产上初学吧)

3)然后,打开Interface,配置时钟、引脚、PLL,以及锁相环等

a.Create Block创建IO,包括clk、lcd_pwm控制信号

这如果是GPIO,选择输入或者输出;如果是clk,则还得哪一类时钟,如下所示:

这里我们定义pll_clkin,硬件上已经连接到PLL_CLKIN引脚,不可当作其他用途,如下:

b.然后配置引脚,对着原理图操作,这里会显示Resource,如下所示:

c.接着设置PLL,在PLL处Create Block,创建tx_pll如下。这里需要选择PLL_BR0,对应clk输入的引脚,硬件固定是GPIOR_138。

d.打开Automated Clock Calculation,配置时钟输入为24MHz,输出慢时钟48MHz,快时钟=慢时钟*3.5=168MHz(lvds=7bit),并且快时钟需要90度phase,以及txpll_locked,GUI配置如下(与前面分析一致):

e.最后,配置LVDS IO,如下所示,其中要注意LVDS Resource的选择,以及Serialization Width=7,并且选择tx_fastclk的名字,软件会自动根据该Name进行wire:

这里的LVDS TX或者CLK,与硬件原理图中的分配必须一致,如下:

图片

f.最后,Generate Efinity约束文件,如果有错误此时会报出,比如没有90°,或者倍率不对,IO分配不对等。这一步完成后生成了工程的约束文件,包括顶层空壳等。

生成的文件,可在Result中的Interface查看,如下,其中特别关注sdc与template.v

4)LCD_LVDS_Test_1024600.v顶层代码的修改

上一步中,软件帮我们生成了顶层的template.v,如下所示:

可见PLL的输出时钟,直接作为我们逻辑的输入时钟使用;另外,LVDS我们只需要输处配置好的7bit串行化的时钟与数据,此外我们并不需要例化PLL、LVDS IP等。这个初次见面,真的就非常奇特了。

a.于是乎,我们顶层的接口就变成了这样。这里像素时钟自然是慢时钟,clk和fast时钟不需要用我们注释掉即可:

b.正常例化rgb lcd驱动代码,如下:

c.将rgb及de数据送给lvds port,这里就有点坑了,一开始没有研究时序,如下:

这里7bit并转串传输时,先发送的是lsb,然后才是msb,因此rgb驱动的代码还需要转一下,操作如下(最初的时候想当然以为是msb,浪费了好多宝贵的时间):

5)最后,在dashboard中双击图标,进行一系列的编译、综合、布局布线,并最终生成目标bit文件。

关于设计占用的资源,可以在左侧的Result中查看,如下所示,占用了一个PLL,5个LVDS:

6)上板验证,打开Programmer,选择bit文件,下载到FPGA后,终于点亮了LVDS屏幕,万事开头难就,如下:

4.Trion FPGA LVDS总结

最终总结一下,易灵思Trion FPGA的LVDS TX IP相关注意事项:

1)首先fastclk = n/2 * slowclk;

2)其次一定要记得fastclk 有90deg的相位

3)再者串行数据是先发LSB,再发MSB的。

4)最后LVDS TX Hard IP配置好后,直接在代码顶层使用,无需再例化。

版权声明,本文来自于网络:《易灵思T35 FPGA驱动LVDS显示屏》。

易灵思T35 FPGA驱动LVDS显示屏相关推荐

  1. 易灵思Ti60 FPGA专题(1)-器件和需求介绍

    作者:Hello,Panda 各位朋友们,先生们,女士们,大家早上好,中午好,晚上好.熊猫君最近正在折腾HK的易灵思FPGA芯片做一个Camera,现在弄得差不多了,计划分享一期易灵思的专题,大概有6 ...

  2. 第二课:Mstar-Non-OS方案(二)——驱动LVDS显示屏

    目录 一.LCD液晶显示屏 (一)显示屏详解示意图 二.硬件准备 (一)屏规格书 (二)驱动主板 (三)屏线 (二)屏规格书(DV490FHM-NV4)----(软件配置部分) (1):开关机时序 ( ...

  3. 易灵思下载器EFINIX FPGA高速JTAG编程线USB仿真器驱动安装详细使用步骤

    易灵思EFINIX USB下载器驱动安装详细步骤 易灵思EFINX是优秀的国产FPGA公司之一,下面是下载器的驱动安装详细步骤.如果不会使用可以跟着步骤操作即可. 一.驱动安装 当第一次使用时候下载器 ...

  4. FPGA驱动4通道2K(2560*1440)LVDS液晶屏

    FPGA驱动4通道2K(2560*1440)LVDS液晶屏,海思3536出来的2560*1440@60hz的HDMI视频源,通过HDMI解码芯片处理成并行RGB信号,进入FPGA驱动4通道2K(256 ...

  5. 易灵思发力系统级封装SiP,探索FPGA新玩法

    易灵思发力系统级封装SiP,探索FPGA新玩法 随着半导体工艺技术的演进,传统的工艺缩进技术遇到了很大的挑战,一方面是随着芯片制程节点越来越先进,从10nm.7nm.5nm到3nm,1nm,芯片研发生 ...

  6. 易灵思40nm Trion系列FPGA斩获“数字新芯奖”奖项

    易灵思深圳科技有限公司(以下简称"易灵思")凭借其40nm Trion系列FPGA灵活的可编程特性.丰富的外设接口,快速实现的定制化功能等一系列优秀表现,一举斩获"数字新 ...

  7. 易灵思FPGA---LVDS资源使用

    易灵思FPGA的LVDS设置使用 一.LVDS概述 二.IP调用 三.代码定义 小结 一.LVDS概述 LVDS,Low Voltage Differential Signaling,低电压差分信号: ...

  8. 易灵思FPGA--Programming Mode

    易灵思FPGA下载模式的选择 一.下载模式概述 二. 实际中遇到的问题 1. SPI Active 2. SPI passtive 3. SPI JTAG 4. SPI Active using JT ...

  9. 纯国产化易灵思T20核心板

    XEM_T20 核心板采用易灵思公司的 Trion®系列的 T20LQFP144 芯片作为核心 处理器.100%国产化元器件,该核心板扩展出了 84 个 IO 口,20K逻辑单元,满足中低端FPGA应 ...

最新文章

  1. JAVA:this的使用
  2. 【课件】基础雷达信号处理
  3. 一道关于Java并发的面试题
  4. 42 github 开源代码 ——README.md语法/相关操作等
  5. Echarts pie 饼图类型后显示数据
  6. 别和 Python 说再见了!丨搞不定它的程序员,到底怎么了?
  7. Glide 4.x之ModelLoader简单分析
  8. Dynamic CRM 2013学习笔记(二十八)用JS动态设置字段的change事件、必填、禁用以及可见...
  9. YOLO系列目标检测算法-YOLOv2
  10. 手持式频谱仪帮助解决链路故障
  11. openwrt之network配置文件
  12. 树莓派外接扩展板的的测试
  13. 计算机汉字录入试题,上机试题:汉字录入题.doc.doc
  14. vue学习第五天(9月8号)
  15. OKRs-E,转变只追求结果的旧观念
  16. acm专题三1006
  17. MySql引擎、索引
  18. 10项最佳在线免费学习工具
  19. 苹果iTunes Store下架加密货币播客
  20. CSS 与 地图可视化 模糊注记 (十七)

热门文章

  1. Ableton Live 10 TOP 20 Themes/Skins 20款最热门主题皮肤下载
  2. Arduino - 休眠模式
  3. 解决安装vue-admin-element依赖报错
  4. java的段子_java爬取捧腹网段子(多线程版)
  5. RZC2512封装尺寸图片 RZC2512典型应用框图图片
  6. 装系统中----专业名词小结
  7. 国防科大计算机学院教学科研处,国防科大计算机学院工学博士学位论文 摘要...
  8. java计算机毕业设计房产客户信息管理系统源码+系统+lw文档+mysql数据库+部署
  9. vray for sketchup 2017中文版|vray for sketchup 2017
  10. 转载一篇很不错的影评(返老还童)