SerDes interface参考设计_程序优化(8)

本文详细介绍了SerDes接口的程序优化过程,重点针对接收部分的r_check模块和S2p_10bit模块进行优化。通过减少逻辑复杂度,如将S2p_10bit模块的数据长度从10bit减至5bit再拼接,以及在R_check模块中优化comma码检测逻辑,从而提高系统传输速率。经过多次优化,包括将串行数据转换为2bit数据流,显著改善了逻辑时序,降低了LUT资源占用,提高了fmax。测试结果显示,优化措施有效,但发送模块仍是影响通信速率的关键,暗示未来优化方向。
摘要由CSDN通过智能技术生成

8    程序优化

在测试中,对timing的报告进行分析,发现制约传输速率的因素并非IO接口的速率,在LVDS接口中,IO可以跑到800Mhz,而是内部的逻辑时序跑不上去了,而制约速度的来源主要为两个地方,分别为接受部分的r_check模块、S2p_10bit模块。

在没有进行优化前,timing的报告如下:



S2p_10bit模块:对时钟进行恢复,并将串行数据转换为并行10bit数据,其内部有一个4bit的count用于时钟恢复与数据串行转并行的数据个数计数,因为逻辑比较复杂,在timing report中,该count是制约时钟的主要因素。


R_check模块:将数据进行对齐的功能,其工作的时钟rclk由S2p_10bit的采样时钟10分频得到,在相对低的时钟域内,但是其内部有一个非常大的对比检测逻辑,对10bit的数据依次检测并对其,内部有10个else if,数据路径很长,也是制约速率的重要因素。


8.1   逻辑优化1:

S2p_10bit模块:将恢复的数据长度由10bit变为5bit,并在后级将两个5bit的数据进行拼接,这样可以的降低count的位数,由4bit变成3bit,同时降低的逻辑的复杂程度。

R_check模块:comma码的关键在于其独一无二的7bit数据1111100,因此在程序设计是,comma检测可以由检测10bit的commaK28.5(0101111100)缩短为检测7bit的局部comma (1111100),这样可以在很大程度上降低逻辑的复杂程序。

以下是对逻辑进行优化后的timing report:


在优化后对逻辑进行了通信的测试,以下是测试的环境:

测试5:采用LVDS的IO标准进行数据传输,发送端发送8位的累加值,传输后经过在接受端对数据进行恢复并判断,测试平台为HR03的evb板,数据线为普通的杜邦线,线长约15cm。

系统时钟

测试时间

错误数据个数

250M

1h

0

260M

1h

1个/s

在作出以上处理后,对发送模块的程序作了相应的时序约束,在时序约束为160MHz,测试结果最为理想,其约束结果如下:


在此约束条件下,系统测试结果如下:

系统时钟

测试时间

错误数据个数

270M

1h

0

280M

1h

0

290M

1h

10个/s

由此可以证明,发送模块也是影响通信速率的重要因素,应该对发送模块的部分程序也做相应的处理!

在M7上做相同的处理的timing对比结果如下图:

评论 2
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值