实验内容:

通过LVDS接口,完成数据的收发测试。

上周居然开启了咸鱼模式,检讨一下 = =||


前集回顾:

《Xilinx - UG471中文翻译》(1)IDELAYE2原语介绍

《Xilinx - UG471中文翻译》(2)ISERDESE2原语介绍

《Xilinx - UG471中文翻译》(3)OSERDESE2原语介绍


目录

一、系统架构

二、IP核配置

三、系统方案

3.1发送部分

3.2接收部分

3.3逻辑代码

四、仿真验证


一、系统架构

用户数据通过LVDS接口发送与接收,验证接收到的数据是否与发送数据一致。

本着简单上手的原则,发送与接收均采用IP核进行设计。后续看情况补充原语设计。

二、IP核配置

发送TX:

先取个名:lvds_tx

数据方向选择输出output

数据速率选择SDR,DDR可选;

串行化因子选择8;通道选择1个;

时钟选择内部时钟,即由MMCM产生。下面的转发时钟勾选上。

第三页的数据和时钟延迟不选择,测试说明嘛,怎么简单怎么来。

注:以上为测试用例,具体应用视情况而定。

接收RX:

先取个名:lvds_rx

数据方向选择输入input

下面的跟输出选择一致就好。

时钟选择外部时钟;我们知道LVDS接口是1对时钟线+n对数据线。

数据和时钟延迟照样略过。

三、系统方案

3.1发送部分

发送没什么好说的,并行的用户数据tx_data[7:0]通过IP核/OSERDESE2串行化输出。

注意一点,我们在MMCM生成相应时钟时,clk与clk_div之间是存在比例关系的,也就是串行化因子。

3.2接收部分

接收部分则与发送相反,串行接收的数据通过IP核/ISERDESE2并行化送给用户逻辑。

接收部分需要注意的是数据对齐操作-bitslip。下面展开说说:

  1. 发送部分,先发送同步码pattern(这里使用8’hb9);
  2. 接收时,如果rx_data等于pattern或它的移位数据,那么就开始数据同步操作:bitslip
  3. 当经过bitslip移位,rx_data == pattern时,同步完成,给出同步完成信号并将bitslip拉低;
  4. 同步完成后(发送模块收到同步完成信号),发送模块开始发送有用的数据。
  5. 如果选择了多通道lvds,则需等所有通道完成同步后再进行数据的收发。

3.3逻辑代码

代码都是浮云,重要的是方案~理清思路一切都好说。

四、仿真验证

仿真设计为发送累加数,在发送到49时停止仿真$finish。

 发送tx_data:

可以看到,开始发送数据之前,先发送同步码8’hb9用于数据同步操作;同步完成后发送累加数进行测试。

接收rx_data:

  1. 接收数据先是8’h73  (8’b0111_0011);
  2. bitslip拉高,rx_data左移一位后为:8’hb9  / 8’b1011_1001,与pattern相等,同步完成
  3. 同步完成,开始时发送数据(0,1,2,3,4....)
  4. 接收数据(0,1,2,3,4....)
  5. 测试完成。

本文补一下之前的内容。

咱们下期见。

基于FPGA的LVDS接口设计相关推荐

  1. 基于FPGA的VGA接口设计(三)

    关于VGA系列文章的所有链接: 基于FPGA的VGA接口设计(一) 基于FPGA的VGA接口设计(二) 基于FPGA的VGA接口设计(三) 结篇   在之前的文章中介绍了有关VGA的扫描方式.行场同步 ...

  2. 计算机键盘接入fpga,基于FPGA的键盘接口设计毕业论文.doc

    单片机论文,优秀毕业论文,外文翻译,毕业论文设计,毕业过关论文,毕业设计,毕业设计说明,毕业论文,单片机毕业论文,基于单片机毕业论文,毕业论文终稿,毕业论文初稿,毕业论文设计,单片机论文,本文档支持完 ...

  3. 基于FPGA的PCI接口设计

    1 PCI总线及其接口概述 PCI总线是高速同步总线,具有32bit总线宽度,工作频率是33MHz,最大传输率为132Mbyte/s,远远大于ISA总线5Mbyte/s的速率.PICMG(PCI工业计 ...

  4. 基于FPGA的UART接口设计

    一.顶层设计思路: UART即通用异步收发传输接口(Universal Asynchronous Receiver/Transmitter),简称串口,是一种常用的通信接口,其协议原理就不赘述了,不了 ...

  5. 基于FPGA实现UART接口设计(异步串行通信)

    时间就是金钱,技术就是饭碗,每天学习,每天积累,做好现在,不担心未来,加油! 1 简介 通用异步收发传输器(Universal Asynchronous Receiver/Transmitter),通 ...

  6. 基于FPGA实现IIC接口(EEPROM)

    1 IIC应用领域 在嵌入式系统开发过程中,IIC占据非常重要的地位.IIC通讯接口能到搭载较多的从设备,从而实现与多个从设备进行通讯,在板级通讯中是一种比较常用的通讯接口.笔者通过IIC接口实现FP ...

  7. 基于FPGA实现DAC8811接口(正弦波)

    1 应用领域 基于FPGA实现DAC8811接口参考设计较少,网络资源都是基于单片机实现DAC8811接口控制,但是在特殊场合必须要使用FPGA实现:因为FPGA不仅具有容量大,逻辑功能强的特点,而且 ...

  8. 基于FPGA实现PCI-E接口和DMA控制器设计

    随着网络的飞速发展,人们可获取的信息量日益增长,数据的处理及存储速率的要求也越来越高.万兆网(10Gb以太网)的普及,高速存储设备的应用(如DDR2,传输速率可达800M)对系统带宽带来极大的挑战. ...

  9. 基于FPGA的USB接口控制器设计(VHDL)(中)

    今天给大侠带来基于 FPGA 的 USB 接口控制器设计(VHDL),由于篇幅较长,分三篇.今天带来第二篇,中篇,USB通信原理.USB 系统开发以及设计实例.话不多说,上货. 之前有关于 Veril ...

  10. 基于FPGA的USB接口控制器设计(VHDL)(上)

    今天给大侠带来基于 FPGA 的 USB 接口控制器设计(VHDL),由于篇幅较长,分三篇.今天带来第一篇,上篇,USB 接口简介 以及 USB 体系结构.话不多说,上货. 之前有关于 Verilio ...

最新文章

  1. 绝对巨星-罗伯特·巴乔
  2. python第三方库排行-140种Python标准库、第三方库和外部工具
  3. 【研究院】低调务实的网易人工智能,你熟悉吗?
  4. mysql 5.1.73.tgz下载_Linux下安装python,mysql
  5. border 外边框
  6. dataguard从库数据库丢失恢复例子(模拟所有的控制文件)
  7. Oracle Segments可以跨多个data files吗?
  8. flink Datastream组装
  9. PyTorch 1.0 中文文档:数据类型信息
  10. 索引 | ggplot2基础语法系列推文汇总
  11. 第11周学习进度情况
  12. POJ 2377 Bad Cowtractors
  13. 关于jQuery、AJAX、JSON(一)
  14. “婚礼邀请函”小程序开发过程
  15. mysql 5.6 触发器_【mysql】mysql触发器使用示例
  16. 制作简易的牛顿摆锤模型
  17. 3D动作手游的辅助瞄准算法(三)
  18. Python Network(三)案例(无向图,有向图,权重,点线分类与大小粗细)
  19. 让网页FLASH变成黑白的css语句
  20. 华为麦芒5刷机_TWRP_Magisk(Root)_Xposed流程

热门文章

  1. 一键安装ROS和rosdep(NO 墙)
  2. 气体灭火系统常见构件及其作用!
  3. 一键实现证件照背景的替换,Python 制作可视化GUI界面真香啊
  4. [BZOJ1597]土地购买
  5. Android手机简易计时器(Chronometer实现)
  6. 微信收藏服务器,微信收藏功能常见问题存储空间上限了
  7. 华为快应用 阻止事件冒泡
  8. java 农历公历转换_Java怎样编程实现农历和阳历转换?
  9. USB:Type-A、Type-B、Type-C、miniUSB、microUSB接口类型区分
  10. 从0开始的LFS 10.0