fpga跨时钟域通信时 慢时钟如何读取快时钟发送过来的数据?
比如器件A和器件B,A的时钟是50Mhz,B的时钟是10Mhz,他们之间采用单线串行通信,只有一根线,那B如何接收A传过来的数据呢?...
比如器件A和器件B,A的时钟是50Mhz,B的时钟是10Mhz,他们之间采用单线串行通信,只有一根线,那B如何接收A传过来的数据呢?
展开
4个回答
展开全部
解决的办法是缓存。在它们之间必须有一个存储器,A进来的数据写进去,B再都出来送出去。由于A快,到的数据量大,缓存还要有溢出警告功能,缓存满了要送中端信号给处理器,通知暂缓发数据,不然会丢包。
追问
但是这里只有一根线 没办法建立FIFO啊 那该怎么解决呢
追答
单线串行通信需要说明是什么协议的通信,一般串行的通信协议也是需要几根线的,比如JTAG就需要TCK/TDI/TDO/TMS四根线,SPI也是四根线。一根线只是走数据一根线,这个时候缓存就需要先串并转换,转成8位的数据再写进FIFO或者RAM,读出来的时候在并串转换成串行数据出去。
展开全部
如果A的数据是1个周期一个,那B是 一定 接不住的。必须几个周期传一个数据。
已赞过
已踩过<
评论
收起
你对这个回答的评价是?
展开全部
降低A的发送频率到10MHz
已赞过
已踩过<
评论
收起
你对这个回答的评价是?
展开全部
就一条线中间是无法加fifo的,这种只能数据单向传输,而且是慢的给快的;快的给慢的一根线是无法完成的;你为什么不用两条线呢?像IIC一样的传数据
已赞过
已踩过<
评论
收起
你对这个回答的评价是?
推荐律师服务:
若未解决您的问题,请您详细描述您的问题,通过百度律临进行免费专业咨询