- 主题:请教一个多芯片同步工作的问题
我有两台机器,里面各有一块fpga。这些机器可以单独工作也可以一起工作。
一起工作时,A给B发送一个信号,B根据这个信号输出相应的控制信号与A输出的信号协同工作。
现在的问题是,两块fpga的晶振是独立的,A发的信号被B的时钟采,总存在一个时钟的抖动,造成B输出的控制信号相对于A的控制信号在抖。
请教一下这个问题应该怎么解决。
fpga是cyclone4,谢谢!
--
FROM 58.220.83.*
时钟别独立,一块晶振信号输出到另一块,产生另一块的工作时钟
【 在 Pinder (stable) 的大作中提到: 】
: 我有两台机器,里面各有一块fpga。这些机器可以单独工作也可以一起工作。
: 一起工作时,A给B发送一个信号,B根据这个信号输出相应的控制信号与A输出的信号协同工作。
: 现在的问题是,两块fpga的晶振是独立的,A发的信号被B的时钟采,总存在一个时钟的抖动,造成B输出的控制信号相对于A的控制信号在抖。
: ...................
--
修改:PrimeTime FROM 58.132.207.*
FROM 58.132.207.*
谢谢回复,这样应该可行,只是机器已经确定,每个机器只有一个输出一个输入,用来输出控制信号的。没别的途径传时钟了。
我想着能不能用这一个控制信号,顺便校一下另一个芯片时钟的相位,来减少抖动。但是看手册没太懂,不知道能否实现。
不知有类似的方法吗?
【 在 PrimeTime 的大作中提到: 】
: 时钟别独立,一块晶振信号输出到另一块,产生另一块的工作时钟
--
FROM 58.220.83.*
用serdes的方法,你得对输出端的控制信号进行编码,把clock信息加进去,然后接收端解出来,产生自己的时钟;总之,两个时钟要同源
【 在 Pinder (stable) 的大作中提到: 】
: 谢谢回复,这样应该可行,只是机器已经确定,每个机器只有一个输出一个输入,用来输出控制信号的。没别的途径传时钟了。
: 我想着能不能用这一个控制信号,顺便校一下另一个芯片时钟的相位,来减少抖动。但是看手册没太懂,不知道能否实现。
: 不知有类似的方法吗?
: ...................
--
FROM 123.120.15.*
曼码或者其他rz码传输,远端恢复时钟
【 在 Pinder 的大作中提到: 】
: 谢谢回复,这样应该可行,只是机器已经确定,每个机器只有一个输出一个输入,用来输出控制信号的。没别的途径传时钟了。
: 我想着能不能用这一个控制信号,顺便校一下另一个芯片时钟的相位,来减少抖动。但是看手册没太懂,不知道能否实现。
: 不知有类似的方法吗?
--
FROM 114.253.87.*
做个异步处理解决不了吗?
【 在 Pinder 的大作中提到: 】
: 我有两台机器,里面各有一块fpga。这些机器可以单独工作也可以一起工作。
: 一起工作时,A给B发送一个信号,B根据这个信号输出相应的控制信号与A输出的信号协同工作。
: 现在的问题是,两块fpga的晶振是独立的,A发的信号被B的时钟采,总存在一个时钟的抖动,造成B输出的控制信号相对于A的控制信号在抖。
: ...................
--
FROM 219.143.131.*
如果只是控制信号,想办法异步处理。
--
FROM 219.232.97.*
这个是啥?可以讲讲吗?谢谢!
【 在 MichealWolf 的大作中提到: 】
: 如果只是控制信号,想办法异步处理。
--
FROM 123.139.85.*
如果只是控制信号,start done这种。使用多级同步寄存器消除亚稳态,然后修改逻辑使得电路容忍一些时间偏差,比如加握手。
如果是数据,如果可以慢慢传,那也可以异步处理。
如果要一个cycle传一个数,那就要加和数据同步的时钟。这个情况要特别考虑时钟造成的两个FPGA间throughput的微小差别,积累下来可能会有问题。
【 在 Pinder 的大作中提到: 】
: 这个是啥?可以讲讲吗?谢谢!
--
FROM 219.232.97.*
两个clk源头,要按照async来处理。
这部分在网上的资料很多,处理方法都很成熟,可以参考一下。单bit/多bit/bus各种情况都有例子。
--
FROM 1.203.163.*