在线咨询
eetop公众号 创芯大讲堂 创芯人才网
切换到宽版

EETOP 创芯网论坛 (原名:电子顶级开发网)

手机号码,快捷登录

手机号码,快捷登录

找回密码

  登录   注册  

快捷导航
搜帖子
查看: 10884|回复: 16

[求助] 请教一下异步Reset和时钟同步的问题

[复制链接]
发表于 2013-1-7 21:23:01 | 显示全部楼层 |阅读模式

马上注册,结交更多好友,享用更多功能,让你轻松玩转社区。

您需要 登录 才可以下载或查看,没有账号?注册

x
听说为了确保reset的setup-hold时间,异步reset最好也要和clock同步。
我想提这么个问题:我的设计里有个SPI Slave模块,用的是Master过来的SPICLK。
那该模块里的异步reset是不是应该和SPICLK同步一下?
但问题是,Master并不总是提供SPICLK,有可能要到它想和你通信时才发时钟,通信完了就停止。
那这个SPI模块不就有可能reset不了?
想请教下这种情况下,reset该怎样同步比较好?
Snap1.jpg
发表于 2013-1-7 21:31:15 | 显示全部楼层
解决办法:
1):后面的逻辑全部用ASYNC reset.在上电的时候,没有clock也可以复位成功。
2):做一个clock mux。刚上电的时候使用一个稳定的clock,然后切换到spi_clk
发表于 2013-1-7 21:43:04 | 显示全部楼层
把异步复位信号同步到时钟上,依然是异步复位,不用时钟也可以复位。
设计中说的异步复位的同步 指异步复位信号释放的时候与时钟同步。
再贴个同步电路图吧:
这个帖子里有。
http://bbs.eetop.cn/viewthread.php?tid=370203&rpid=7352291&ordertype=0&page=1#pid7352291
发表于 2013-1-8 09:33:18 | 显示全部楼层
去学习了下,收获不少,支持!
发表于 2013-1-8 10:28:31 | 显示全部楼层
本帖最后由 boltice 于 2013-1-8 10:35 编辑

最好不要用时钟切换,那样属于门控时钟,不太好。
可以使用一个外部时钟,PLL出来一个2陪于SPICLK的时钟SYSCLK,用SYSCLK来当你的控制时钟,SPI口的SPICLK,数据和复位都要经过SYSCLK的同步,其中数据和复位的同步要用同步后的SPICLK当CLKEN。然后同步后的复位就可以当做异步复位来使用了
发表于 2013-1-8 10:40:18 | 显示全部楼层
回复 3# muylor

muylor你说的方法,在RST释放的时候,整个电路是满足了Recovery/Removal,可是在RST有效的时候,rst_sync直接由RST异步控制产出,相当于前两级的D触发器没有起到作用。
 楼主| 发表于 2013-1-8 10:57:10 | 显示全部楼层
回复 2# asic_service


    2)的方法不太好吧……时钟的平稳切换肯定也需要spi_clk参与的吧?而且感觉这样SPI模块的时钟域就更复杂了……
 楼主| 发表于 2013-1-8 11:02:21 | 显示全部楼层
回复 3# muylor


thank you!
恕我无知,想追问2个问题:
1)rst_sync为什么要用2级FF同步?又没有牵扯到异步过度,1级不行吗?
2)这样RST解除后,需要2个CLK才能解除rst_sync。但有的SPI Master是有几个数据想通信就给几个clock,一个都不会多给,那rst_sync要等到master给clock时才解除,而且要消耗2个clock,通信结果不就会出错了吗?
发表于 2013-1-8 14:38:12 | 显示全部楼层
rst_sync为什么要用2级FF同步?又没有牵扯到异步过度,1级不行吗?

Ans: It is used to avoid meta-stable problem, which happens to design which has no fixed relationship between the input signal (reset in this example) and clock.
发表于 2013-1-8 14:40:17 | 显示全部楼层




1.   用两级同步是因为: 这个两个寄存器的复位时异步释放的(复位信号和时钟完全异步),这两个寄存器的Recovery/Removal不能保证。
所以可能产生亚稳态。如果只有一个寄存器,那么在复位释放时,D端输入是1,复位状态下寄存器是0,这样就有一个跳变,那么这个跳变可能引起亚稳态,所以要用两个寄存器。第二个寄存器在复位释放时不会产生亚稳态是因为它的输入是0,状态也是0.
2.   你这里是异步复位,只要上电复位就可以了,以后每次访问都不会再复位了。当然在复位释放后需要至少两个clock cycle来确保释放完成。

希望我讲明白了,如果没讲明白,你先记下吧,这个是异步复位同步化的标准电路,以后慢慢悟吧。。。
您需要登录后才可以回帖 登录 | 注册

本版积分规则

关闭

站长推荐 上一条 /2 下一条

×

小黑屋| 关于我们| 联系我们| 在线咨询| 隐私声明| EETOP 创芯网
( 京ICP备:10050787号 京公网安备:11010502037710 )

GMT+8, 2024-5-19 03:34 , Processed in 0.039361 second(s), 10 queries , Gzip On, Redis On.

eetop公众号 创芯大讲堂 创芯人才网
快速回复 返回顶部 返回列表