异步时域数据处理

2019-03-25 09:46发布

我用cpld做了两块板子,一块AD ,串并转换发射数据,一块接收数据。但接收数据总是有点不准确,后来发现原因是时钟不同步,但是没办法把两块板子用同一个时钟源,两块板子上的晶振都是75M,数据的速率是12.5M 用接收的板子去读发射的数据有点不正确,后来做了乒乓操作也没有效果,大家有什么比较好的办法吗? 此帖出自小平头技术问答
友情提示: 此问题已得到解决,问题已经关闭,关闭后问题禁止继续编辑,回答。
该问题目前已经被作者或者管理员关闭, 无法添加新回复
5条回答
eeleader
1楼-- · 2019-03-25 16:12
< /

1. 75M时钟采样12.5M波特率数据,应该没问题的。

建议用RAM或FIFO进行异步数据缓存,然后处理。

或12.5M时钟数据直接进入FPGA后,马上进行多次时钟同步。避免亚稳态

gaosjp
2楼-- · 2019-03-25 19:36
因为我要用75M对这个接收的12.5M的数据进行时分复用。有四个这样的数据。但是用这个75M分频出的12.5M去读这个数据有数据不对或者丢失。
Goself
3楼-- · 2019-03-25 19:45
 精彩回答 2  元偷偷看……
gaosjp
4楼-- · 2019-03-26 00:51
不好意思是我没有说清楚,这个芯片要给其一个参考时钟,是我本地分频出的12.5M的时钟,然后里面有CDR模块会恢复出一个12.5M的时钟 以恢复出的12.5M上升沿读取数据,但我要对几个12.5M的数据进行时分复用。
eeleader
5楼-- · 2019-03-26 06:25
我想提醒你的是: 芯片的参考时钟一定要用晶体提供的本地时钟,不能用分频时钟。因为分频时钟不能保证抖动,毛刺这些问题干净度。如果实在没有本地时钟,一定要用PLL 进行分频锁相才行。

一周热门 更多>