微波EDA网,见证研发工程师的成长!
首页 > 研发问答 > 嵌入式设计讨论 > FPGA,CPLD和ASIC > 两个时钟如何同步统一起来?

两个时钟如何同步统一起来?

时间:10-02 整理:3721RD 点击:
碰到个问题,AD采样数据有个AD时钟clk_ad,利用系统时钟clk分频而得,然后AD采样过来的数据处理也是按照AD时钟clk_ad进行处理,处理之后的数据写进FIFO是按照系统时钟clk进行读写操作,现在问题来了,如果我是1s钟AD数据统计一次,然后统计完立即写入FIFO。AD数据的1s统计是根据AD时钟计时的,而FIFO的1s写入却是根据系统时钟进行定时的,请问这两个1s如何才能做到保持同步?我现在1s统计一次的数据一直写不进FIFO,因为一直没同步,唉!怎么解决?

为什么不是clk_ad来写fifo?

很好的资源 ,学习下

第一,如1楼所述,为什么写入fifo的不是数据的同步时钟clk_ad;
第二,剩下的统计、同步什么的,我实在看不懂。

用PLL保持同步,假设外部晶振时钟为clkin,通过PLL生成两个相位一致的时钟clk和clk_ad,这两个时钟统计出来的1s就是同步的。



    因为我之前编写了个串口发送模块,是利用系统时钟来获取那个串口发送波特率的,然后1s定时往上位机发送也是采用系统时钟,然后读写FIFO是采用系统时钟,但是AD的驱动时钟是利用系统时钟分频而得的,因为程序是要对AD采样的结果进行1秒钟统计一次,然后通过串口发往上位机,因此,就碰到这个AD采样统计1s和串口发送1s的不一致问题。

你用快的时钟产生一个1S的脉冲信号,保证宽度能被clk_ad也能采到,大家都看到这个信号的边缘再操作FIFO, 这样能保证大家的1S都是同样的东西。 而不是自己数自己的clock


总觉得某些地方不合理。

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

网站地图

Top