FPGA|XilinxISE14.7LVDS应用

原创 FPGA技术江湖 2024-05-05 06:37

大侠好,欢迎来到FPGA技术江湖,江湖偌大,相见即是缘分。大侠可以关注FPGA技术江湖,在“闯荡江湖”、"行侠仗义"栏里获取其他感兴趣的资源,或者一起煮酒言欢。



今天给大侠带来 Xilinx ISE14.7 LVDS应用,话不多说,上货。




最近项目需要用到差分信号传输,于是看了一下FPGA上差分信号的使用。Xilinx FPGA中,主要通过原语实现差分信号的收发:OBUFDS(差分输出BUF),IBUFDS(差分输入BUF)。


注意在分配引脚时,只需要分配SIGNAL_P的引脚,SIGNAL_N会自动连接到相应差分对引脚上;若没有使用差分信号原语,则在引脚电平上没有LVDS的选项(IO Planning PlanAhead)。


测试代码:

module lvds_test(   sys_clk,                    sys_rst,                                        signal_in_p,                    signal_in_n,                    signal_out_p,                    signal_out_n,                                        led_signal                );
input sys_clk,sys_rst; input signal_in_p,signal_in_n; output signal_out_p,signal_out_n; output led_signal;
wire signal_out_temp; reg[31:0] clk_cnt;
always @ (posedge sys_clk) begin if(!sys_rst) clk_cnt <= 32'd0; else begin if(clk_cnt == 32'd10_000_000) clk_cnt <= 32'd0; else clk_cnt <= clk_cnt+1'b1; end end assign signal_out=(clk_cnt >= 32'd5_000_000) ? 1 : 0; OBUFDS signal_out_diff( .O(signal_out_p), .OB(signal_out_n), .I(signal_out) ); IBUFDS signal_in_diff( .O(led_signal), .I(signal_in_p), .IB(signal_in_n) ); endmodule


约束文件:
NET "signal_out_p" IOSTANDARD = LVDS_33;
NET "signal_out_p" LOC = U16;
NET "sys_clk" IOSTANDARD = LVCMOS33;NET "sys_rst" IOSTANDARD = LVCMOS33;
NET "led_signal" LOC = D18;
NET "led_signal" IOSTANDARD = LVCMOS33;#Created by Constraints Editor (xc6slx45t-csg324-3) - 2016/06/06NET "sys_clk" TNM_NET = "sys_clk";TIMESPEC TS_sys_clk = PERIOD "sys_clk" 50 MHz HIGH 50 %;

NET "signal_in_p" LOC = T12;NET "signal_in_n" LOC = V12;NET "sys_clk" LOC = G8;NET "sys_rst" LOC = U3;
# PlanAhead Generated IO constraints
NET "signal_in_p" IOSTANDARD = LVDS_33;

约束文件IO Planning PlanAhead产生,原语的使用可参考:E:\Xilinx\ISE\14.7\ISE_DS\ISE\doc\usenglish\isehelp\spartan6里面提供了所用器件的原语。


同时,Xilinx器件内部信号内部还提供了100欧姆电阻匹配,可参考Spartan-6 FPGA SelectIO Resources(UG381)

补充:

若要实现高速通信的场合,可以利用FPGA内部自带的SelectIO资源,利用ISERDESE2、 OSERDESE2,实现串-并,并-串的转换,理论速度可达到750Mbs,


参考资料:Spartan-6 FPGA Data Sheet: DC and Switching Characteristics(UG162)



通信框图:


因为串行转成并行的时候,输出的数据无法判断哪个 Bit 是高位,哪个 bit 是低位,因此,对于 ISERDESE2 可以利用bitslip 信号来重新对齐串行数据以获得正确的字节数据;代码实现时,也需要先进行数据对齐,才能进行数据的正常接收。


`timescale 1ns / 1ps////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////module lvds_test(  input clk_50m,//全局时钟  input rstn, //复位    input clk_in_from_pin_p,         //lvds时钟输出P  input clk_in_from_pin_n,         //lvds时钟输入N  input data_in_from_pin_p,        //lvds输入数据P  input data_in_from_pin_n,        //lvds输入数据N    output clk_out_to_pin_p,         //lvds时钟输出P  output clk_out_to_pin_n,         //lvds时钟输出N  output data_out_to_pin_p,        //lvds输出数据P  output data_out_to_pin_n         //lvds输出数据N      );

wire clk_div_out_1; //低速时钟1,串行发送时钟的8分频wire clk_div_out_2; //低速时钟2,串行接收时钟的8分频
wire [7:0] datain; //LVDS输入的8位并行数据
//产生LVDS发送的测试数据,0~FFreg [7:0] dataout;always @(posedge clk_div_out_1) begin if (~rstn) dataout <= 0; else if (dataout == 8'hff) dataout <= 0; else dataout <= dataout + 1'b1; end
//产生BITSLIP信号,用于修改串转并的Bit的起始位置wire [7:0] data_delay;reg BITSLIP=1'b0;reg slip_check;reg equal=1'b0;assign data_delay=datain;
always @(posedge clk_div_out_2)begin if (~rstn) slip_check <= 1'b0; else if(data_delay==8'h80) //当串转并的输入的数据为0x80的时候,检测开始 slip_check <= 1'b1; else slip_check <= 1'b0; end
always @(posedge clk_div_out_2)begin if (~rstn) begin BITSLIP <= 1'b0; equal<=1'b0; end else if((slip_check==1'b1) && (equal==1'b0)) if (data_delay ==8'h81) begin //如果检测到数据0x80后面的下一个时钟的数据为0x81时 BITSLIP <= 1'b0; //BITSLIP不为高 equal<=1'b1; //数据正确信号为高 end else begin BITSLIP <= 1'b1; //BITSLIP产生一个高脉冲,改变串转并的数据排列 equal<=1'b0; //数据正确信号为低 end else begin BITSLIP <= 1'b0; equal<=equal; end end //并转串,8位数据dataout转换成串行数据,并通过lvds差分信号输出p_to_s p_to_s_inst ( // From the device out to the system .DATA_OUT_FROM_DEVICE(dataout), //Input pins .DATA_OUT_TO_PINS_P(data_out_to_pin_p), //Output pins .DATA_OUT_TO_PINS_N(data_out_to_pin_n), //Output pins .CLK_TO_PINS_P(clk_out_to_pin_p), //Output pins .CLK_TO_PINS_N(clk_out_to_pin_n), //Output pins
.CLK_IN(clk_50m), // Single ended clock from IOB .CLK_DIV_OUT(clk_div_out_1), // Slow clock output .IO_RESET(~rstn) //system reset);
//串转并,LVDS差分信号转换成单端信号再通过串转并,转换为8位数据datains_to_p s_to_p_inst ( // From the system into the device .DATA_IN_FROM_PINS_P(data_in_from_pin_p), //Input pins .DATA_IN_FROM_PINS_N(data_in_from_pin_n), //Input pins .DATA_IN_TO_DEVICE(datain), //Output pins
.BITSLIP(BITSLIP), //Input pin .CLK_IN_P(clk_in_from_pin_p), // Differential clock from IOB .CLK_IN_N(clk_in_from_pin_n), // Differential clock from IOB .CLK_DIV_OUT(clk_div_out_2), // Slow clock output .IO_RESET(~rstn) //system reset);
endmodule


其中,clk_div_out_1和clk_div_out_2是8分频得到的(ISERDESE2、 OSERDESE2核实现),OSERDESE2输出的LVDS 差分时钟可作为ISERDESE2的接收时钟。


END


往期精选 

 
 

【免费】FPGA工程师招聘平台

今日说“法”:FPGA芯片如何选型?

SANXIN-B01开发板verilog教程V3电子版

学员笔记连载 | FPGA Zynq 千兆以太网回环

就业班学员学习笔记分享:FPGA之HDMI、以太网篇

求职面试 | FPGA或IC面试题最新汇总篇

FPGA项目开发:204B实战应用-LMK04821代码详解(二)

项目合作 | 承接FPGA项目公告

资料汇总|FPGA软件安装包、书籍、源码、技术文档…(2023.01.02更新)

FPGA就业班,2023.04.15开班,系统性学习FPGA,高薪就业,线上线下同步!


FPGA技术江湖广发江湖帖

无广告纯净模式,给技术交流一片净土,从初学小白到行业精英业界大佬等,从军工领域到民用企业等,从通信、图像处理到人工智能等各个方向应有尽有,QQ微信双选,FPGA技术江湖打造最纯净最专业的技术交流学习平台。


FPGA技术江湖微信交流群

加群主微信,备注姓名+公司/学校+岗位/专业进群


FPGA技术江湖QQ交流群

备注姓名+公司/学校+岗位/专业进群


FPGA技术江湖 任何技术的学习就好比一个江湖,对于每一位侠客都需要不断的历练,从初入江湖的小白到归隐山林的隐世高人,需要不断的自我感悟自己修炼,让我们一起仗剑闯FPGA乃至更大的江湖。
评论 (0)
  • 站上风口,交付量狂飙,装机量翻番……是什么让LiDAR再次“翻红”? 一波三折。如果要用一个词形容近两年的激光雷达市场,恐怕它最为合适。人类纪元,2022年。开启量产元年的车载激光雷达,一度风光无限。当时OEM厂商对激光雷达关键指标提升的需求仿佛“军备竞赛”。加速批量上车,进一步控制成本,将其控制在500美元左右……那一年,产业链上下游众志成城,万众一心。转眼到了2023年,车企在面向ADAS和自动驾驶的感知技术上逐渐分化成两派,纯视觉路线的落地以及价格战带来的降本压力,让很多车企出现
    艾迈斯欧司朗 2024-06-21 17:10 157浏览
  • Matter是连接标准联盟(CSA)所推出的统一连接标准,旨在让不同品牌的智能装置可以互通互联。并且支持包含Wi-Fi、Ethernet、Thread和Bluetooth等多种连接协议。 随着Matter被广泛运用于智能家居生态圈,目前Apple Homekit、Amazon Alexa、Google Home和Samsung SmartThings等智能语音助理都已支持Matter。然而,要是网络服务供货商的网络突然断线了,家里的智能装置是否还能正常操作?还是必需连接到外部网络才能控制智能装
    百佳泰测试实验室 2024-06-20 15:40 134浏览
  • GPIO的功率、电压和电流取决于具体的GPIO类型和配置。 GPIO(General Purpose Input/Output)通用型输入输出端口,是一种多功能的电子接口,广泛应用于微控制器、微处理器以及各种电子设备中,用于读取或输出信号。理解GPIO的功率、电压和电流的相关特性是进行电子电路设计和编程的基础。这些参数决定了GPIO端口能安全处理的电量,以及它与其他电子组件交互时的兼容性。 从电压角度来看,GPIO端口通常设计有一定的耐压限度,这意味着它们可以安全地在特定的电压范围内工作。例
    丙丁先生 2024-06-21 17:43 170浏览
  • ​在为期三天的上海国际嵌入式展会中,树莓派和上海晶珩一起展示了众多的基于树莓派和CODESYS的解决方案,没去过展会现场的小伙伴千万别错过这篇文章!视频地址:https://www.bilibili.com/video/BV1c1421k7ne/?vd_source=a637ced2b66f15709d16fcbaceeb47a9这个基于Raspberry Pi 5的嵌入式系统解决方案集成了16个EtherCAT总线控制的步进电机,旨在实现高性能的多轴运动控制。Raspberry Pi 5作为核
    树莓派开发者 2024-06-21 14:29 129浏览
  • 在汽车的复杂电路网络中,仪表网关扮演着信息枢纽的角色。对于驾校使用大众朗逸车主而言,了解仪表网关的位置不仅有助于日常维护,更是故障诊断和车辆升级的关键所在。大众朗逸作为一款深受消费者喜爱的车型,凭借其稳定的性能和经济的油耗赢得了广泛的市场认可。然而,即便是这样一款优秀的车型,在驾校使用过程中也难免会遇到一些技术问题,这时候对仪表网关的了解就显得尤为重要。18年后的大众,网关都是标配,直接从OBD通过CAN监听是没有数据报文对外发出的,不是没有,而是避开诊断请求,这个后边说。朗逸CAN总线技术的引
    lauguo2013 2024-06-21 08:18 155浏览
  • 反激电源包含原边反激何副边反激,原边反馈动态响应比副边反馈慢,但是相对成本低,无论是原边反馈还是副边反馈由于反激电源电路简单,成本低广泛的用在在电动两轮车Escooter,电动工具,打印机,清洁电器等充电场景,也广泛的应用在电表,家电,新能源等场景作为辅助电源给芯片供电,下面就以无锡明芯微的MX1210E作为例子详细的介绍下一款24v2.5A的一个方案,从该方案来看输入口有NTC防止过流,采用10D561K 的压敏作输入过压保护,有个滤波的0.47uF的X电容并采用分压电阻做X电容放电,串联差模
    王萌 2024-06-21 09:27 304浏览
  • 1. 版权保护芯片RJGT102介绍为了防止硬件电路与固件被抄袭,核心在于加密芯片和安全解决方案的设计,目前大多MPU并不具备安全防护功能,所以最好的办法是使用一颗专用的加密芯片,通过加密芯片对接MPU,进行认证,授权,保存关键数据等。RJGT102采用了SHA256对称加密算法,256位的大数加密, 加密算法强度高。每片RJGT102都有唯一的客户编码,非常适合做防抄板,防抄软件,管控工厂生产数量,防止方案外泄等。参与SHA256运算的数据为:8字节Key(可动态更换),8
    万象奥科 2024-06-20 17:37 138浏览
  •  经过近几年的618大促之后,如今的618已经被默认的低价竞争给包围了。随着低价竞争的持续蔓延,曾经积极参与其中的一些品牌商,态度也从积极转为消极;各种被“忽悠”的消费者,也在想着法逃离电商平台设置的套路。与此同时,不甘心被大主播绑架的电商平台,与胃口不断加大的头部主播,开始展开极限拉扯。以往热闹的618,如今变成了各路参与者的围城,渴望进去的不停向里面张望,渴望出来的则变着法地希望,跳出618这个牢笼。虚假繁荣背后的暗流涌动在直播电商红利之下,抖音、淘宝、京东、唯品会等各路平台,在直
    刘旷 2024-06-21 09:58 159浏览
  • 电脑显示器已逐渐成为现代人时常会接触到的3C产品,能带给消费者愉快的视听娱乐,不管是看电影、追剧、听音乐放松心情,或是玩一场紧张刺激的电竞游戏。忙碌之余,能够偶尔享受闲暇时光,也是一种释放。 您是否也曾遇过,在享受电影或游戏的过程当中,显示器带给我们的影像和声音突然出现不协调的情况呢?这就像是两者间没有互相搭配好,节奏步调变得不一样!这种情况我们称为「影音延迟」或「影音不同步」。 当这类问题持续发生时,无法好好享受电影或者追剧,会让人心情烦躁。对于电竞玩家来说更是硬伤,除了分心、受干扰外,更
    百佳泰测试实验室 2024-06-20 15:55 133浏览
  • 随着科技的进步不断更迭,电子设备的传输速度越来越快,时至今日对于高速传输带宽的要求也愈来愈高。印刷电路板(PCB,以下简称PCB) 在高速传输接口中扮演不可或缺的角色,其高频特性直接影响了整体传输效能。高频特性是指PCB在高频率下的电气性能,包括阻抗、插入损耗、回波损耗、群延迟等。这些参数会影响信号的传输速度、完整性和可靠性。 PCB潜在风险 你知道吗?如果PCB的高频特性不佳时,可能会导致以下问题: 信号传输速度变慢信号衰减增加信号反射增加信号失真 这些问题都会影响电子设备的性能,甚至
    百佳泰测试实验室 2024-06-20 16:05 159浏览
  • TT电机(直流电机)的功率、电压、电流、瞬间启动电压和电流是其运行的关键参数。这些参数决定了电机的性能和适用场景**。在探讨TT电机的这些特性时,需要综合考虑其电气特性以及启动和运行条件。以下将逐一解析这些关键参数: 1. 功率:    - TT电机的功率通常取决于其设计和应用场景。例如,普通TT电机的额定功率可以在几瓦到几十瓦不等[^4^]。    - 对于不同的TT电机型号,如370电机和310电机,它们的功率输出也会有所不同。例如,370电机通常适
    丙丁先生 2024-06-21 17:18 153浏览
我要评论
0
0
点击右上角,分享到朋友圈 我知道啦
请使用浏览器分享功能 我知道啦