请教一个跨时钟域问题
一般的synchronizer是有两级flipflop打一下控制信号
但数据由很快的时钟域传入很慢的时钟域, 在慢时钟域内会产生漏数据, 这个怎么解决啊?
我是菜鸟,谢谢!
哪位大侠能回答下小弟的问题吗,读了几篇关于这个的问题,还是云里雾里的...
握手或者异步fifo处理
还是采用握手应答的方式吧,简单点
比较支持握手应答
好的,谢谢各位大侠!我用握手回路试试看
似乎唯有此种方案,
当然,如果你的异步始终是固定倍频的话,可以针对特定时钟比同步设计
握手比较简单
刚刚读了CummingSNUG的文章,我又仔细想了一下,我觉得我的这种情况好像只能用fifo
我一开始可能设计条件没有说清楚
会遇到类似情况
比如: clka的时钟是1MHz,signal_1持续2个clka; clkb的时钟是0.1MHz; 这样信号由clka进入clkb用握手的话是不是会把信号signal_1漏掉啊?
这种情况是不是只能用fifo解决了?
特定时钟比同步设计, 这个方法我去查查看, 有不懂得再来请教, 谢谢
数据要跨时钟域进行传递时
1 当数据是从低时钟域向高时钟域传递,可以用高速时钟通过两级寄存器采样低速时钟域传来的数据,一般不会出现数据传输丢失和错误。
2 当数据是从高速时钟域向低速时钟域传递时,可以通过ready/response握手信号进行数据的传递,当两个时钟的速率相差太大时,这种方式传递信号时,效率较差。还可以通过FIFO来实现信号在不同时钟域见交换,如上问题,可以设计一个深度是20的FIFO,来进行sinal_1的传输,从两个时钟域来看,signal_1信号在每个时钟周期都进行传递的,效率高些,但这种设计的电路面积大。
这个要看你的位宽吧,一位的大多不采用异步FIFO;
1结绳法,
2 或者把异步来的信号接到时钟端上,后面加反馈,有一本叫《高级ASIC数字设计》(大概这个名字,绿皮的)上面有讲;
多位宽的:
1异步FIFO;
2看看能不能装换为格雷吗传输,如果可以的话也可以分成若干个单线的处理。
呵呵
这个问题我也遇到了
深圳市百信装饰工程有限公司
从fast_clk_domain到slow_clk_domain的话,如果前者的数据连续output而必须让后者接收,则无论你使用不适用握手,都要通过不同方式(最好是异步fifo)来实现后者对前者数据的暂存,再图使用。
keyicaiyong FIFO!