微波EDA网,见证研发工程师的成长!
首页 > 研发问答 > 嵌入式设计讨论 > FPGA,CPLD和ASIC > 求教各位大神,如何实现数据位宽转换啊。

求教各位大神,如何实现数据位宽转换啊。

时间:10-02 整理:3721RD 点击:

求教各位大神,如何实现数据位宽转换啊。现在需要将DDR3的256位输出数据用10路GTX(单通道位宽16bit)转出去,这十路同时工作的。恳请大神帮助!哪位大神能说说怎么具体来定义一个RAM实现256转160位输出啊?

FIFO?

移位寄存器或者可以


考虑过,时序相当复杂。不知道有什么别的好的办法没?

You should use one 256bits double port RAM to transform data between two clocks region. Since the clock frequency of GTX side is higher than DDR3 side. So this double RAM is needed to design as gearbox function. As I know, there is one gearbox module at inner of GTX PCS part. So you can use this function to realize similar function. But at your description, i didn't know the data rate of DDR3 and line rate of GTX, so i can't supply the detail parameter of this gearbox. It needed you to compute them by yourself.

你给的信息完全不够,我可以不可以理解为,一个DPRAM,左边是256bit的位宽,右边是10路GTX的位宽,每路GTX是16bit的位宽,10路就是160bit,那么我想问你,你的256bit数据,如果减去后面GTX要传的160bit,还有96bit要不要呢?
或者是你要用10路GTX,把前面256bit的数据全部传完? 这10路GTX一次只能传160bit,那么总有96bit是在第二次才被传送完,是吗?
如果是前者,就不需要多想,直接截取160bit给10路GTX就可以。
如果是后者,需要考虑效率,比如我可以做个256转16的的DPRAM,后面通过串并转换的方式,写时序去拼凑160bit,然后给10路GTX,剩下的96bit又挪到二次256bit数据的时候传输,这样传输到最后,可能最大会有96bit数据滞留,你就最后把这96bit数据送给6路GTX就行。
当然,也许你根本不想这么做,那我就不知道了

gearbox 参数怎么配置?如何使用,求大神指点!我的思路是用一个FIFO将256位的输入转化成32位的输出,然后输出5个周期存到一个160(32*5)的寄存器中,再从寄存器中输出,FIFO的写时钟,读进寄存器时钟和寄存器输出时钟都是不同始时钟域,不知道这个方法可行不?谢谢你的回复~


谢谢大神的回复,抱歉我的提问没说完全,其实我的意思是你说的后者,现在的思路和你说的差不多,还不知道能不能写出来,菜鸟一个。呵呵!再次感谢大神的回复



    思路相同。FIFO的写地址以8为周期,读地址以5为周期(假设一个存储单元为32b)


  已经完成了谢谢大神的相助


亲,怎么设计的,可以分享一下嘛?

FIFO   !

用AFIFO

Copyright © 2017-2020 微波EDA网 版权所有

网站地图

Top