"); //-->
CMA132 每个内核都包含相同的基本复位逻辑

然后,此重置逻辑通过握手协议跨越时钟域,如上图 3 所示——我们 之前讨论过的基础知识。它并不快,但它有效。然后,所有捕获逻辑都从数据时钟域中的复位信号复位,dw_reset这相当于LOCAL_RESET我们上面讨论的信号。
bw_reset_complete完成后,设置返回信号,并清除上面的逻辑。在复位完成之前,从控制寄存器读取的任何内容都将返回并设置复位位——表明复位正在进行。这对于数据时钟由于某种原因未运行的情况很有用。在这些情况下,如果您返回并 使用 CPU 或调试总线从示波器读取),您会很快注意到示波器仍 处于重置状态——准确地告诉您发生了什么。
其余的总线 逻辑呢?
它没有改变。
总线 仍然像往常一样运行,除非或直到您重置整个总线 ,这正是我们希望该内核 工作的方式。该方法相当容易设计和实施,而且(到目前为止)它对我来说效果很好。
它处理AXI 从属组件,但您将如何在本地重置 AXI 主控?
本地重置 AXI Master 组件重置 AXI master 更具挑战性。基本上,master 必须等待所有未完成的事务完成才能完成重置。这需要某种状态机。
让我们逐步了解这可能是如何工作的。
首先,请求重置,然后设计从任何 WORKING 状态转换到 INRESET 状态,以等待事情解决。
在 INRESET 状态下,不会启动其他 AXI 事务。允许完成现有事务。此步骤本身需要几个子步骤。
BREADYRREADY如果尚未设置,则需要设置为 1
我个人喜欢在交易未完成时保持BREADY高位RREADY,即使没有未完成的交易也是如此。我认为这是一个很好的做法,尽管我可以想象 设计可能无法做到这一点的原因。
专栏文章内容及配图由作者撰写发布,仅供工程师学习之用,如有侵权或者其他违规问题,请联系本站处理。 联系我们