FPGA设计心得(13)aurora的线速率及其用户时钟之间的关系?

举报
李锐博恩 发表于 2021/07/15 00:14:33 2021/07/15
【摘要】 文章目录 长话短说aurora的用户时钟频率是多少?aurora的用户时钟的来源?总结 长话短说 由于工作很忙,所以一直没有时间来胡乱写写,需要注意的是文章内容不涉及任何秘密,纯粹来源自公开的数据手册以及Xilinx工具及其网站,文章内容严谨性以及真实性纯粹本人妄自理解,爱信不信! 周末半夜抽空记录下需要速记的东西,所以就长话短说! aurora的...

长话短说

由于工作很忙,所以一直没有时间来胡乱写写,需要注意的是文章内容不涉及任何秘密,纯粹来源自公开的数据手册以及Xilinx工具及其网站,文章内容严谨性以及真实性纯粹本人妄自理解,爱信不信!
周末半夜抽空记录下需要速记的东西,所以就长话短说!

aurora的用户时钟频率是多少?

在定制aurora IP核的时候,我们需要选择各种时钟的频率,包括GT参考时钟,INIT时钟以及DRP时钟,其中GT参考时钟是来自于专用的MGT bank上的专用端口,其他就没有必要。
在这里插入图片描述
从GT参考时钟开始,通过一系列的时钟管理单元,例如PLL,MMCM等,可以衍生出一系列的时钟供Transceiver以及aurora协议使用,今天的主角是十分重要的,用户逻辑侧时钟USER_CLK!
它等于多少?
从上面的定制页面可以看出,我们的线速率选择的是3.125Gbps,看起来很高了,其实看单位也就是bit而已!除以8,变成390.625MBps,这时候是字节了,如果传输的数据具有32bit呢?也就是4字节?那么线速率可以转换位97.65625MQBps,其中的QB就是QUAD Bytes(也就是双字,DW),如果使用一个时钟去传输这样的32bit数据,一个时钟传输一个数据,需要一个90多M的时钟就够了!
注意,上面说的是在没有编码的情况下,算出来的时钟,但是高速串口进行数据传输时,都是会编码的,8B/10B编码,那么传输32bit数据,编码后就得40bit了。线速率为3.125Gbps,那么如果一个并行用户时钟传输一个数据,需要一个78.125M的时钟就行了。

为了验证,就上面的定制页面,生成一个例子程序,进行仿真,如下:

在这里插入图片描述
对用户时钟进行测量,12.8ns时钟,频率不就是78.125M吗?
验证无误!

下面给出结论,如果采用8B/10B编码,用户时钟为线速率除以编码后的用户数据位宽。
编码前的位宽可以在IP的定制页面选择:

在这里插入图片描述
在算上编码,就很容易得出编码后的位宽!

aurora的用户时钟的来源?

为了得到auroa的用户时钟来源?我们就aurora的例子程序扒一扒!
从用户逻辑模块开始,一层一层追溯它的来源:

在这里插入图片描述

从user_clk_i,到USER_CLK,再到GT_CLK,再到txoutclk_out,最终追溯到原语GTXE2_CHANNEL中的TXOUTCLK;
当然接收模块的用户时钟来源于RXOUTCLK;

在这里插入图片描述

用户时钟也不是一直都有的,需要链路通路才行!

在这里插入图片描述

总结

很简单地聊几句,最后,我认为直到USER_CLK和线速率之间的关系是很重要的,有助于我们选择线速率。知晓了用户时钟和位宽,可以验证用户逻辑设计符不符合需求,例如总线转换,这样的速率是快了还是慢了,这对于设计有时候还是必要信息(异步转换需要跨时钟),快了可能不要紧,慢了就得加线速率,有的时候甚至需要多通道!

文章来源: reborn.blog.csdn.net,作者:李锐博恩,版权归原作者所有,如需转载,请联系作者。

原文链接:reborn.blog.csdn.net/article/details/109140876

【版权声明】本文为华为云社区用户转载文章,如果您发现本社区中有涉嫌抄袭的内容,欢迎发送邮件进行举报,并提供相关证据,一经查实,本社区将立刻删除涉嫌侵权内容,举报邮箱: cloudbbs@huaweicloud.com
  • 点赞
  • 收藏
  • 关注作者

评论(0

0/1000
抱歉,系统识别当前为高风险访问,暂不支持该操作

全部回复

上滑加载中

设置昵称

在此一键设置昵称,即可参与社区互动!

*长度不超过10个汉字或20个英文字符,设置后3个月内不可修改。

*长度不超过10个汉字或20个英文字符,设置后3个月内不可修改。