前往小程序,Get更优阅读体验!
立即前往
首页
学习
活动
专区
工具
TVP
发布
社区首页 >专栏 >异步复位同步释放有多个时钟域时如何处理

异步复位同步释放有多个时钟域时如何处理

作者头像
Lauren的FPGA
发布2023-08-18 13:19:01
3060
发布2023-08-18 13:19:01
举报
文章被收录于专栏:Lauren的FPGALauren的FPGA
对于从FPGA外部进来的信号,我们通常采用“异步复位同步释放的策略”,具体电路如下图所示。图中src_arst是输入异步复位信号,dest_arst是同步释放的异步复位信号,其后负载为需要异步复位的触发器。

从时序关系的角度来看,结合如下仿真波形,异步复位信号在蓝色标记的时钟上升沿被释放,所有触发器将在红色边沿开始输出D端口数据。问题是如果后续触发器公众在不同的时钟频率下,这种方式是否仍能确保所有触发器的异步复位信号在同一个时钟上升沿被释放?为便于说明,我们假定设计中有两个时钟,分别为100MHz和200MHz,均有同一个MMCM/PLL生成,即二者是同步时钟(同相不同频)。

第一种情况:同步器工作在100MHz时钟的上升沿

在这种情况下,假定异步复位在标记(1)被释放,那么200M时钟域下的触发器将在标记(3)开始输出D端数据,而100M时钟域下的触发器则要在标记(5)开始输出D端数据,显然,两者并没有在同一个时钟沿下开始工作。

第二种情况:同步器工作在200MHz时钟的上升沿

在这种情况下,如果异步复位是在标记(3)释放,那么100M时钟域下的触发器和200M时钟域下的触发器都将在标记(5)结束复位,开始输出D端口数据。

但是,如果复位是在标记(1)释放,如下图所示,100M时钟域下的触发器将在标记(5)输出D端口数据,而200M时钟域下的触发器将在标记(3)输出D端口数据。

第三种情况:同步器工作在100MHz时钟的下降沿

在这种情况下,同步器工作在100MHz时钟的下降沿,但后续触发器仍工作在时钟的上升沿。如下图所示。异步复位在标记(3)释放,那么100M时钟域下的触发器将在标记(5)开始输出D端口数据,200M时钟域下的触发器也在此刻输出D端口数据,故两者可以在同一个时刻开始释放复位正常工作。

如果两个时钟是异步时钟,都要使用外部提供的同一个复位信号,这时无法做到这两个时钟域下的触发器实现复位信号同步释放。这是因为这两个时钟之间没有明确的相位关系,这就造成同步器引发的延迟差是不确定的。这种情况下,我们需要对每个时钟域添加同步器,生成各自时钟域下的复位信号,如下图所示。

Copyright @ FPGA技术驿站

转载事宜请私信 | 获得授权后方可转载

本文参与 腾讯云自媒体同步曝光计划,分享自微信公众号。
原始发表:2023-07-20,如有侵权请联系 cloudcommunity@tencent.com 删除

本文分享自 FPGA技术驿站 微信公众号,前往查看

如有侵权,请联系 cloudcommunity@tencent.com 删除。

本文参与 腾讯云自媒体同步曝光计划  ,欢迎热爱写作的你一起参与!

评论
登录后参与评论
0 条评论
热度
最新
推荐阅读
领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档