IC面试中常被问到:跨时钟域信号处理

将乐信息网 http://www.jianglexinxi.cn 2021-03-21 06:01 出处:网络
这里介绍的跨时钟域和IC面试中常被问到:跨时钟域信号处理,小编带你了解。

这里介绍的跨时钟域和IC面试中常被问到:跨时钟域信号处理,小编带你了解。

IC君的第36篇原创文章 (欢迎关注公众号 icstudy)

首先祝大家2019年元旦快乐,少加班多拿奖金!

之前有一篇文章讲述了跨时钟域信号的处理第1篇,IC面试中常被问到——跨时钟域信号如何处理?这是第2篇。

前面提到,用敲两级DFF的办法(两级DFF同步器)可以实现单比特信号跨时钟域处理。但你或许会有疑问,是所有的单比特信号跨时钟域都可以这么处理吗?

NO!两级DFF同步器,是对信号有一定的要求的。

想象一下,如果频率较高的时钟域A中的信号D1 要传到频率较低的时钟域B,但是D1只有一个时钟脉冲宽度(1T),clkb 就有几率采不到D1了,如图1。

图1 快时钟域信号传递到慢时钟域

因此只有当D1 在很长一段时间内为1或0,确保一定可以被clkb采样到,才能用两级DFF同步器处理。

如果信号D1 只有1T或几个T的脉宽,又需要传到时钟频率较低甚至或快或慢不确定的时钟域B,这种情况该怎么如何处理呢?

握手协议(handshake)异步信号处理是一种常见的异步信号处理方法。常见的握手协议异步信号处理行为波形图大致如下图2:

图2 一种handshake电路波形

信号d_in 所处时钟域是clk_in,且d_in只有1T 的宽度,想要传送到clk_out 时钟域(clk_out 跟clk_in不相关)。

因为clk_out 和 clk_in相位关系不确定,时钟周期大小关系不确定,无法保证一定能采样到d_in。

因此需要把d_in展宽,产生d_req 信号;

d_req 信号一直拉高,经过clk_out时钟域两级DFF 同步器后,得到d_reg_sync;

取d_req_sync 上升沿1T,即可得到传送到clk_out 时钟域的d_out。

此时,d_in 从clk_in 传送到clk_out 的任务就算是结束了。

但对于handshake 电路来说,任务还没结束,因为d_req 还一直是高电平。

因此,需要把d_req_sync 信号再用两级DFF同步器,传回clk_in 时钟域,得到d_ack信号;

当clk_in 看到d_ack拉高后,就可以把d_req 信号拉低,到这里一个handshake电路行为才算是结束了。

根据上面的波形图,可以看到握手协议异步信号处理并不复杂,但是细心的朋友应该会注意到,这个处理方法信号传递的速度相对较慢。

从图2 的波形来看,至少需要3个clk_in 和2个clk_out时钟周期。根据不同的应用需求,人们会对图2的波形做不同的改造。但万变不离其宗,原理都是一样的,电路也大同小异。

最后留4个问题供大家思考,以增进对handshake电路的理解:

1. 图2中的d_req的逻辑怎么实现?

2. 图2中的d_out的逻辑怎么实现?

3. 假设时钟域clka比clkb 频率高,如果输入信号的两个相邻脉冲D0和D1非常较近,如下图所示,如果使用握手协议处理,会发生怎样的事情?

4.问题3里面,如果要确保D1数据一定要被能传送到clkb,电路该如何实现?

请大家踊跃留言回答哦!

IC面试中常被问到:跨时钟域信号处理的相关问答如下:

提问: 关于一位信号的跨时钟域的问题解决?

回答:条件不满足,快时钟域中,信号应该持续多拍有效,持续时间至少比慢时钟域周期的1倍要大(最好再留一定余量),以保证慢时钟能可靠采到快时钟域的信号;另一种方法也可以直接快时钟域写入FIFO缓存,FIFO提供数据数据位置指示信号,然后慢时钟再去读FIFO的.

提问: 跨时钟域 qualifier是什么意思

回答:解决的办法是缓存.在它们之间必须有一个存储器,A进来的数据写进去,B再都出来送出去.由于A快,到的数据量大,缓存还要有溢出警告功能,缓存满了要送中端信号给处理器,通知暂缓发数据,不然会丢包.

提问: 数字电路在跨时钟域信号处理上有哪些处理方法

回答:时钟信号是基准,在数字电路中需要时钟信号来作为数值的刻度;在其他一些应用中需要时钟信号来同步

提问: 如果跨时钟域进行约束,一般都怎么约

回答:用万用表测电路电压,习惯上是用那支黑笔接地. 电子线路中的接地不一定就是与大地相连,(也有与机壳相联)它是公共参考点.相对于NPN管的电路来说,负极是地.相对于"地"点,比这点电位高,就是+多少V. 比这点电位低,就是-多少V.

提问: 跨时钟域同步,为什么两级寄存器结构能够降低亚稳态

回答:对于传输的数据来说,那么输出的结果就是正确的,如果不是,都有一些检验机制的:可能对可能错,亚稳态本来就是导致损失的一个坏存在.不过亚稳态的时间非常短,一般都能解决,那就是亚稳态了,这个时候稳定的状态就可能是输入的信号,也有可能不是,变为同步第一级触发器出来的只有两种情况,如果能正确锁存,那么第二个触发器就是原来把亚稳态变成稳态的,相对长的时间足够等它稳定了,两级触发器相连的方法,主要还是用于处理单比特,回答1:没有一定的说法,只能说大多数情况下稳定,因为一个触发器就导致了一个时钟周期的延时.两级相连本身主要还是将异步输入.2异步时钟域亚稳态问题

提问: vivado怎么让跨时钟域

回答:需要第三方软件才能支持,你可以去多普达手机论坛下载

IC面试中常被问到:跨时钟域信号处理的相关热门搜索词:

跨时钟域处理,跨时钟域的信号如何同步,vivado 跨时钟域,跨时钟域时序约束,跨时钟域信号处理方法,跨时钟域的处理方式,跨时钟域握手信号,跨时钟域问题,跨时钟域同步,跨时钟域数据传递的基本方法,

本文标题:IC面试中常被问到:跨时钟域信号处理
http://www.jianglexinxi.cn/yanergaozhi/627277.html

0

精彩评论

暂无评论...
验证码 换一张
取 消