微波EDA网,见证研发工程师的成长!
首页 > 研发问答 > 嵌入式设计讨论 > FPGA,CPLD和ASIC > 如何把24位数据变为16位数据

如何把24位数据变为16位数据

时间:10-02 整理:3721RD 点击:
请高手指教如何把24位数据变成16位数据,我用的器件是cyclone,使用FIFO,RAM  IP核都不行。

24变成48(RAM IP应该可以直接支持吧),然后分三个时钟读就可以了

有道理



    我看了一下,调用RAM IP好像输入数据不能为24位,这正是我纠结的地方。大虾,还有其他方法吗?

额,我用的xilinx好像什么位数都可以。
要不浪费点,用32为转64位,只用其中的24/48位即可。
或者直接用逻辑实现,时钟A用两个时钟周期读两个24位,时钟B用三个时钟周期读出即可。保持时钟A和B的相对关系即可。

你的问题不是很明确:
1.24位的数据与转换后的16位数据是什么关系;是取高16位还是低16位,剩余的8位有什么意义;
2.对转换速度上有没有什么要求;

这是一个典型的gear box的设计.
逻辑上实现是两个周期的24bit数据,分三次16bit读完.只要写一个24/16的分频clock就可以.
但有一点要注意的时候..读的时候一定要保证数据稳定,不能在数据改变的时候读,就是读和写一定要错开...不然有可能发生亚稳态..
进来的数据也可以buffer一下,用上面的方法对buffer里面数据进行操作就可以.这样就可以保证

嗯,学习了

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

网站地图

Top