跨时钟域的方法--多周期路径
多周期路径法
前面看过一些同一个大佬的文章,翻译链接如下。
Clifford论文系列--多异步时钟设计的综合及脚本技术(1)
Clifford论文系列--多异步时钟设计的综合及脚本技术(2)
下图中显示了在时钟域之间传递的两个编码控制信号。如果这两个编码信号在采样时有偏移,则在接收时钟域中的一个时钟周期内可能会产生错误的解码输出。
该方法的优点:
(1)不需要在发送时钟域计算适当的脉冲宽度
通过握手保证控制信号能够正确传输,然后在目标时钟域通过控制信号来采样数据。
最常见的通过一个同步时钟域之间的方法是使用一个同步脉冲发生器。如图所示这种同步使能脉冲产生的一个关键特征是输入信号的极性无关紧要。在图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)。
未完待续...