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

跨时钟域设计,急!

时间:10-02 整理:3721RD 点击:
请问个给大侠:
小弟在设计时,碰到了两个时钟,CLK1和CLK2。其中CLK1为外部时钟,CLK2为内部时钟。现在比如我们不知道两个时钟之间的关系(就是两个时钟的频率比的值都有可能,没有确定的关系,可能CLK1是CLK2的10倍,或者CLK2是CLK1的10倍等等关系)。现在我要把CLK1信号引进内部模块(就是CLK2的模块)来,我怎么设计,才能保证CLK2的所在的模块一定能采集到CLK1?谢谢个给大侠了,小弟在线等答案!

你将CLK1引入CLK2模块的目的是什么?单单为采样CLK1么?

没辙
如果你不修改前提条件

外时钟经锁相后和内时钟匹配行吗?

是用CLK2时钟去采CLK1时钟域里的数据还是去采集CLK1时钟本身?

引入时钟的用处是什么呢
不明白lz这种时钟引入只是为了采样,还是说要把clk1时钟域的信号传递到clk2
只是采样的话,觉得没有什么用啊,时钟域毕竟最终还是要作用在信号上,那么为什么不clk1内部产生最终需要的信号,然后再通过FIFO或者结绳法传入clk2的域呢?

如果clk1是作为clk2中的控制信号的话,那就完全当作一个异步信号来用好了,不知道能不能这样做。

至少要知道谁快谁慢,才能做

还得看具体应用!
你连CLK1和CLK2的关系都不清楚的话!是不能往下设计的!

clk1和clk2的相对关系需要明确

条件似乎太过模糊了

是啊!做设计一定要先清楚你的设计要求

你可以试一下握手信号
不过如果是完全异步的话,时序问题是没办法保证的

同步电路估计没辙。异步的考虑一下吧!

除非是burst数据,用个双口fifo就行了,否则吞吐率根本不等,不可能

先看一下两个时钟域之间的交流信号,如果A到B传输的是单路控制信号,使用双触发器打一下,如果A到B传输的是多路数据信号,采用FIFO

跨时钟域有经典的异步对接电路,
可以找找相关的文献

用FIFO

没看懂
小编想要干什么呢

锁相环调整相位。

FIFO+握手信号?

不同频率的时钟相互采样?一般方法是不行的。还是不同时钟域的数据采样?

eetop  应该不能做到吧

clk2慢的话,应该不能保证全部采到clk1的吧~

看到前面许多热心人的回帖,我来总结一下:
因为先前有提到两个时钟,我觉得因该是数据信号:
1)  首先要做到Average吞吐量的匹配
2)用异步FIFO(FIFO大小与Burst量有关)

锁相环怎么用的啊  我都没用过呢,赶明我也去研究一下

问题不明确


用高频时钟采样低频时钟域的信号没有问题吧,低频到高频的信号应该经过寄存器锁存,个人认为~

可以设计一个控制器
当快采慢的时候,用2-D同步器
当慢采快的时候,用结绳法电路

注意的是满采快肯定是不能满负荷运行的

帖子很好啊
学到不少东西

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

网站地图

Top