跨时钟域的方法--多周期路径

多周期路径

前面看过一些同一个大佬的文章,翻译链接如下。

Clifford论文系列--多异步时钟设计的综合及脚本技术(1)

Clifford论文系列--多异步时钟设计的综合及脚本技术(2)

今天主要是看到了多周期路径的方法,它主要是用于多比特数据传输,在此单独做个笔记。

下图中显示了在时钟域之间传递的两个编码控制信号。如果这两个编码信号在采样时有偏移,则在接收时钟域中的一个时钟周期内可能会产生错误的解码输出。

这个问题可以使用“多周期路径法(MCP)”来解决。

MCP方法是指将不同步的数据发送到与同步控制信号配对的目标时钟域。也就是说,不对数据进行同步,但是会发送同步控制信号。数据和控制信号同时发送,允许数据在目标寄存器的输入端进行设置,同时控制信号在到达目标寄存器的负载输入端之前做同步。

该方法的优点:

(1)不需要在发送时钟域计算适当的脉冲宽度

(2)发送时钟域只需要将使能信号发送到接收时钟域,表示数据已经被传递并已经准备好被加载。使能信号不需要返回到初始逻辑电平。

通过握手保证控制信号能够正确传输,然后在目标时钟域通过控制信号来采样数据。

因为在采样之前,非同步数据被传递并在多个时钟周期内保持稳定,所以采样值不会出现亚稳态的危险。

最常见的通过一个同步时钟域之间的方法是使用一个同步脉冲发生器。如图所示这种同步使能脉冲产生的一个关键特征是输入信号的极性无关紧要。在图18中,d输入在周期1和周期4高信号已经传播通过三个同步触发器。在周期3,q2和q3触发器的输出具有不同的极性,导致同步使能脉冲在相同周期的异门或门的输出上形成。类似地,d输入在周期7时切换为低电平,到周期10时,一个高信号通过三个同步触发器传播。同样,在第9周期,q2和q3触发器的输出具有不同的极性,导致同步的使能脉冲在异或门的输出上形成。

由于所有MCP都使用同步使能脉冲产生电路,因此创建和使用更小的等效符号来表示同步使能脉冲产生电路被认为是有用的。等效符号如图所示:

除了产生任何d输入极性的脉冲外,同步使能脉冲产生电路也有一个q输出,跟随d输入延迟三个时钟周期。q输出通常用作反馈信号,并通过发送时钟域的另一个同步使能脉冲产生电路作为确认信号。

图显示了一个典型的发送-接收切换-脉冲产生设计。使用这种技术,它要求接收时钟域有逻辑检测到脉冲时就要在适当的地方捕捉数据,因为脉冲将只对一个接收时钟周期中的每个多周期数据有效。

使用MCP公式时的一项重要技术是将使能信号作为确认信号传回发送时钟域,如图所示。

对于图中的示例,应答反馈信号(b_ack)产生一个应答脉冲(aack),该脉冲被用作一个小的ready-busy、1状态的FSM块的输入,该块生成一个ready信号(ready),以表明现在再次更改数据输入(adatain)值是安全的。一旦ready信号升高,发送方就可以自由地伴随asend控制信号发送新的数据(adatainain)。

未完待续...


全部评论

相关推荐

07-07 14:30
复旦大学 Java
遇到这种人我也不知道说啥了
无能的丈夫:但我觉得这个hr语气没什么问题啊(没有恶意
点赞 评论 收藏
分享
头顶尖尖的程序员:我是26届的不太懂,25届不应该是找的正式工作吗?为什么还在找实习?大四还实习的话是为了能转正的的岗位吗
点赞 评论 收藏
分享
点赞 评论 收藏
分享
来个大佬救一下,为上投了都是石沉大海了,没实习经历的话怕秋招直接进不了面。什么实习这么难找,基本
心态爆炸了:现在正式的岗位都少,实习基本不咋招的,除了大厂,中小企业其实没那么多岗位需求,就算是有,大多都是招一两个廉价劳动力,同时,他们也会希望你一来就能干活的,没时间培训你,就让你了解公司的项目,你了解完就可以开始干活。再者是,很多低质量的实习其实用处没有那么大的。我去年也是找实习找到破防,最后去了一家深圳的小公司实习,工作对我来说很简单,甚至不如我在学校做的项目,秋招的时候,这段实习经历也并没有帮上什么忙,投递简历,依旧非常低的回复率。低回复率是常态,尤其是找实习,找不到,那就把重心放在优化自己的简历和项目,多看八股文,锻炼自己的面试能力,多看别人的面经,自己模拟面试,等秋招的时候,只要有那么寥寥几次,好好抓住那几次机会。
点赞 评论 收藏
分享
评论
点赞
1
分享

创作者周榜

更多
牛客网
牛客网在线编程
牛客网题解
牛客企业服务