微波EDA网,见证研发工程师的成长!
首页 > 研发问答 > 嵌入式设计讨论 > FPGA,CPLD和ASIC > 同步时钟和异步时钟

同步时钟和异步时钟

时间:10-02 整理:3721RD 点击:
对同步时钟和异步时钟的概念不是很清晰,想请教一下大家。    1.两个不同的晶振产生都产生100M的时钟,并且两个相位差固定,这两个时钟是同步还是异步?
    2.一个参考时钟为100M的PLL分频出来一个clk1=50M,又倍频出来一个clk2=500M,请问clk1和clk2是同步时钟吗?参考时钟与倍频或者分频出来的时钟是同步还是异步?
   谢谢大家!

时钟同步和异步是根据相位差是否变化确定的,如果连个时钟的相位差固定则为同步时钟,否则为异步时钟。
你举的例子里:
1.两个晶振产生的时钟。两个晶振在上电是时相位差是随机的,而且不同晶振时钟漂移抖动也不一样,所以是异步时钟。
2.时钟分频。虽然clk1和clk2是同一个时钟源分频出来的,但是一个PLL只能输出一个时钟,所以clk1和clk2只能由两个PLL产生,与两个晶振产生的时钟情况类似。故也是异步时钟



   谢谢!解释的很透彻。

2显然是同步时钟,不需要分析metastability,别误导人

在FPGA内部PLL的参数是固定已知的工具可以分析,所以在FPGA内认为2是同步时钟

我认为2是异步的,不解释,因为我不懂。



   我感觉二楼的意思是,一个PLL一次只能产生一个时钟比如产生clk1,要想同时再产生一个clk2就得需要另一个PLL,但是这两个PLL可以共用一个晶振产生参考时钟吗?还是说需要两个。

只要不是同一个晶振出来的时钟,就是异步的。晶振之间是相互独立的。



   谢谢



    当然可以共用。
且不说这个场景是不是需要使用两个独立的PLL,即使是独立的PLL,只要是同源时钟,输出频率是整数倍关系,他们的相位关系就是确定的,不需要做异步时钟处理,只需要做好跨时钟域的约束。


“不需要做异步时钟处理,只需要做好跨时钟域的约束”。用set_multipaths_cycle命令来做跨时钟与的约束?



    并不一定要set_multicycle_path,具体情况具体分析,跟你的逻辑设计有关系,有时候只需要建立generated clock关系不需要进一步添加约束,有时候需要set_multicycle,有时候可能set_max_delay合适,也可能clock group合适。约束是跟具体功能紧密相关的


感谢回复。

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

网站地图

Top