热门关键词:示例页面
qq账号购买平台低价_机领网_快手免费涨1000粉丝软件
自助下单地址(拼多多砍价,ks/qq/dy赞等业务):点我进入
欢迎FPGA工程师加入官方微信技术群
抽象的:
跨时钟域和亚稳态
通过同步时钟传输控制信号
时钟同源,周期间非整数倍的跨时钟域
跨异步时钟域传输控制信号
01
跨时钟域和亚稳态
一般来说,跨时钟域是指模块之间存在数据交互,但模块之间不是由同一个时钟驱动,如下图所示:
左边的模块1由clk1驱动,属于clk1的时钟域; 右侧模块2由clk2驱动,属于clk2的时钟域。 当clk1的频率高于clk2的频率时,称模块1(相对于模块2)为快时钟域,模块2为慢时钟域。 根据clk1和clk2是否为同步时钟,上述跨时钟域可以分为跨同步时钟域(clk1和clk2为同步时钟)和跨异步时钟域(clk1和clk2不是同步时钟)。 根据信号是控制信号还是数据信号,可以分为跨时钟域的控制信号传输和数据信号传输。
在跨时钟域的信号传输过程中,可能会出现亚稳态。 这时需要一个同步器进行同步,以降低亚稳态传播的概率; 注意这里的同步器只能降低亚稳态。 传播的概率,如果产生亚稳态,亚稳态恢复稳定后的能级不一定是正确的能级。 如果稳定后的层级不对,很可能导致后面的逻辑出错。 需要强调的是; 当然,一般情况下(我这里说的是一般情况)亚稳态是很少出现的,不然后面的逻辑就挂了?
根据以上内容可以看出,可能需要一个跨时钟域的同步器来抑制亚稳态向下传播的概率。 根据不同的情况需要不同的同步器。 大致情况如下:
·同步时钟域下控制信号从快时钟域到慢时钟域的传输;
从慢时钟域到块时钟域的控制信号跨同步时钟域传输;
数据信号从快时钟域跨同步时钟域传输到慢时钟域;
数据信号从慢时钟域跨同步时钟域传输到块时钟域;
·控制信号从快时钟域跨异步时钟域传输到慢时钟域;
将控制信号从慢时钟域传输到块时钟域,跨越异步时钟域;
数据信号从快时钟域跨异步时钟域传输到慢时钟域;
数据信号从慢时钟域跨异步时钟域传输到块时钟域;
看着这八种,心虚了,不过先剧透一下。 在数据传输中(主要是多位数据传输),无论是交叉同步还是交叉异步,主要(注意是主要)是使用比较大的同步隔离器来隔离和缓冲数据,比如先进先出和内存; 因此,一般将它们分为控制信号(通常为1位信号)和数据来设计同步器。 我们最后会讲到跨时钟域的数据传输。 今天主要组织控制信号跨时钟域的传输。
这里我们更新一下传统同步时钟的概念:如果系统中多个时钟的边沿之间有固定的相对时间差(或固定相位),则它们是同步时钟。 它们可以由不同的时钟源产生,但它们之间的相位通过锁相环是固定的,所以它们是同步时钟。 它们可能由同一个时钟源产生,但经过分频后,它们之间的相位随着初始相位和时间的变化而变化。 这种时钟可以称为同步时钟,但是从这个传统的概念出发,这是一个异步时钟(这和我上面的博客不一样,注意),在处理中是作为异步时钟来处理的。 好了,说了这么多,我们还是按照钟表的分类来说说吧。
02
通过同步时钟传输控制信号
(1) 两个同频同相的同步时钟:
波形如下所示:
这两个时钟可以看做同一个时钟,即单时钟设计,允许一个时钟周期传输数据,所以只要满足一般同步电路设计要求(满足建立时间和保持时间,控制信号的传输延迟应该在一定范围内),不会有亚稳态,不会有数据丢失,一般不需要同步器。
(2)两个同频不同相的同步时钟
波形如下所示:
这个固定的相位可以看作是时钟的偏移量,允许的传输时间小于一个时钟周期,但是只要在clk1的控制下翻转控制信号的输出,所以只要一般要求同步设计的满足(要满足建立时间和保持时间,控制信号的传输延迟必须在一定范围内),时序可以满足,不会出现亚稳态,不会有数据丢失,所以一般不需要同步器。
(3) 频率不同,但存在整数倍关系
假设没有初始相位差(或者即使初始相位差固定,后期可以修复),clk1的时钟频率是clk2的3倍。
当从快时钟域跨越到慢时钟域时(即控制信号从clk1的模块传输到clk2的模块),波形如下:
如果clk1在第二个上升沿发送信号,只要控制信号在clk1的3个周期内到达,就不会出现亚稳态; ...如果clk1在第四个上升沿发送信号,则需要 如果控制信号在clk1的一个周期内到达,则不会出现亚稳态。 因此,只要控制信号从发送时钟域到达目的时钟域的时间小于clk1的时钟周期,就不需要同步器; 一般来说,控制信号是trigger-triggered和trigger-captured,一般满足这种关系,如下图:
但是需要注意的是,这是从快到慢的,慢时钟域可能采样不到控制信号而丢失控制信号。 也就是说,我的控制信号是从clk1运行到clk2,并保持一个时钟(clk1)周期,但是你的clk2的时钟沿还没来。 当clk2的上升沿到来时,我的控制信号已经更新(或无效),信号在时钟clk2的上升沿之前被clk1采集。 ,如果当时不发送,控制信号就会丢失,如下:
当信号在第二个时钟沿发送时,只持续一个时钟周期,所以clk2无法捕捉到(这是功能性错误,不仅仅是时序上的亚稳态); 只有在第四个时钟沿发送控制信号时,clk2才能捕获它。 因此,我们需要将这个控制信号的周期延迟到clk1周期的三倍,可以通过计数器或者状态机来实现。 扩展后的波形如下:
可以看出,此时无论上述时间是否发送数据,clk2都可以捕获。
因此,一般情况下不需要同步器,但需要将快时钟域的控制信号延长适当的时间(根据时钟之间的倍数关系确定,控制信号的长度必须≥周期capture clock的,一般为1.5倍,上图仅为1倍),避免慢时钟域信号丢失。
重点
当慢时钟转入快时钟域时(即控制信号从clk2的模块传输到clk1的模块),波形如下图所示:
显然,快时钟可以对慢时钟的控制信号进行采样,采样3次后,输出为:
Clock2的控制信号达到clk2周期的三倍。 如果只需要一个clk周期控制信号,可以通过上升沿检测电路来实现。 输出波形如下:
03
时钟同源信号隔离器代理,周期之间的关系不是整数倍
当两个时钟都来源于同一个时钟时,经过锁相环分频后,产生两个时钟时钟,一个时钟是另一个时钟的非整数倍,相位随时间变化。 在这种情况下,我们可以将这两个时钟视为同步时钟或异步时钟; 在传统设计中,此类时钟将被视为异步时钟。 我们来看看是否要为这样的时钟处理添加一个同步器。
如果时钟源的时钟频率为clk,经过PLL后,产生一个时钟clk1和一个时钟clk2:
假设 clk1 是快时钟,clk2 是慢时钟。 由于控制信号只在两个时钟域的触发器之间传输,触发器之间没有逻辑,所以控制信号从发送触发器到捕获触发器的时间非常小,假设t ps,当发送沿和捕获沿之间的间隔大于tps时,不会产生亚稳态(理论情况,不考虑时钟偏斜和翻转等因素)。 当clk1的频率不是clk2的整数倍时,它们的相位随时间变化。 知道了clk1和clk2的频率后,就可以知道clk1和clk2理论上的相位关系了信号隔离器代理,那么就会有以下几种情况:(其实也分为加不加同步器)
画风粗狂请海涵
(1)(无论是跨时钟域快到慢还是慢到快)两个时钟之间存在一个最小相位差,最小相位差大于t。 如下:
这里这种情况下,时钟的最小和最小相位差为T>t,即控制信号不会违反捕获寄存器的设置时间和时序。 需要注意的是,这是从快时钟域到慢时钟域的控制信号传输。 为了防止信号丢失,需要将控制信号延长一定长度。
慢时钟到时钟的波形没有画出来,但主要是符合两个时钟的最小相位差(不管是快到慢还是慢到快),最小相位差大于t,并且不会违反设置时间和保持时间。 ,基本上不会出现亚稳态。 所以在这种情况下,不需要同步器。
(2)(无论是跨时钟域快到慢还是慢到快)在两个时钟中,发送沿到接收沿的相位很窄,小于t,即setup time和hold违反了捕获寄存器的时间,但是下一次发送沿到接收沿的相位非常大(没有违反捕获寄存器的建立时间和保持时间),如下图:
在相位小的地方,稳定时间不足,造成亚稳态。 这个时候就要用到我们的同步器了。 下面隆重推出我们的同步器——双D触发器。 其电路图如下:
需要注意的是,中间不能有任何组合逻辑,电路图和pair的时序关系如下(代码没写,电路简单):
再次强调,双D触发器(触发器链)只能抑制亚稳态下行传输(或降低其下行传输的概率),不一定同步正确控制信号的值,不同于亚稳态稳定值的是上图中一级触发器的亚稳态稳定值,刚好是高电平,所以二级触发器的输出值-采样后的触发器为高电平。 如果上图中初级触发器的亚稳态稳定值为低电平,则次级触发器采样后的输出值为低电平,即输出错误的控制信号。
(3) 相邻两个时钟的发送边沿和接收边沿的相位差很小,如下图所示:
这种情况基本上可以说是异步时钟域之间控制信号的传输。 在这种情况下,必须添加触发器链同步器以抑制亚稳态向下传播。 和前面的情况一样,从慢到快,只有亚稳态的问题; 而从快传输到慢传输,不仅存在抑制亚稳态向下传播的问题,还存在控制信号丢失的问题,这里需要扩展控制信号的长度或采取其他措施(描述之后)。
01
跨异步时钟域传输控制信号
实际上,跨越异步时钟域的波形与前面的3.(3)类似,只是两个时钟域的时钟是完全不相关的时钟。 在这种情况下,我们可以采用与前面类似的方法:首先,触发器链必须抑制亚稳态的传输,然后是快时钟到慢时钟的问题,即采样问题短脉冲的控制信号,除了扩展控制信号外,我们还可以使用其他方法,我们来梳理一下:
相关资讯
热销产品
同类文章排行
- 快手一元1000个赞秒到_卡盟平台_拼多多新人助力网站
- 和平小号网_拼多多助力网站在线刷免费_3元抖音小号批发网
- 刷网课代理_快手永久免费秒赞秒评软件_刷会员
- 一秒1w粉丝app_24小时全自助下单网站播放量_微博刷赞器
- qq会员秒拿5000成长值自助站_刷课网站_快手互赞软件免费
- 刷王者点卷的网站_qq互赞网站平台_拼多多免费助力网站
- qq-shuazan_抖音粉丝1元1000粉_快手粉丝-元100个不掉粉
- 免费领取500个微博粉丝_王者卡盟_快手粉丝-元100个不掉粉
- 拼多多砍价一毛十刀网站_猪猪网站_拼多多助力刷人软件
- 快手代刷网站_小柯秒赞网_qq刷钻
最新资讯文章
- 快手一元1000个赞秒到_卡盟平台_拼多多新人助力网站
- 和平小号网_拼多多助力网站在线刷免费_3元抖音小号批发网
- 刷网课代理_快手永久免费秒赞秒评软件_刷会员
- 一秒1w粉丝app_24小时全自助下单网站播放量_微博刷赞器
- qq会员秒拿5000成长值自助站_刷课网站_快手互赞软件免费
- 刷王者点卷的网站_qq互赞网站平台_拼多多免费助力网站
- qq-shuazan_抖音粉丝1元1000粉_快手粉丝-元100个不掉粉
- 免费领取500个微博粉丝_王者卡盟_快手粉丝-元100个不掉粉
- 拼多多砍价一毛十刀网站_猪猪网站_拼多多助力刷人软件
- 快手代刷网站_小柯秒赞网_qq刷钻
联系我们
- 友情链接
- 合作伙伴
Warning: mysqli::mysqli(): (HY000/1045): Access denied for user 'xydiaoke_lingk'@'localhost' (using password: YES) in /www/wwwroot/www.saoma.net.cn/wp-content/themes/ztnew/templates/term-links.php on line 56
Warning: mysqli::query(): Couldn't fetch mysqli in /www/wwwroot/www.saoma.net.cn/wp-content/themes/ztnew/templates/term-links.php on line 58
Warning: mysqli::close(): Couldn't fetch mysqli in /www/wwwroot/www.saoma.net.cn/wp-content/themes/ztnew/templates/term-links.php on line 69