1.4 时钟门控集成
高级时钟门控是使用每个时钟域的时钟控制器组件实现的。时钟控制器支持多个组件的时钟门控,并为每个组件提供一个Q-Channel接口。
大多数Arm组件都支持这种类型的时钟门控。大多数组件使用Q-Channel。一些较早的组件使用AXI LPI,但在与Q-Channel时钟控制器一起使用时,对该接口的使用受到限制。关于在Q-Channel控制器中使用AXI LPI的限制详见6.2.3。
【注意】:PCSA已将AXI LPI的使用弃用,并且只能用于与旧组件进行接口。
时钟控制器的描述请参阅6.5.2 时钟控制器。
Q-Channel时钟门控的组件设计考虑事项详见8.2 组件高级时钟门控。
时钟控制器连接
下图显示了在一个时钟域内单个组件的时钟门控排列方式。
一个时钟域内可以有许多组件。每个组件可以有一个时钟控制的Q-Channel。这些被组合并由时钟控制器管理。 下图展示了在一个时钟域内多个组件的时钟门控排列方式。
如果一个组件具有多个时钟域,则需要多个时钟控制的Q-Channel,每个时钟域一个。
下图展示了一个包含具有多个时钟域的组件的时钟门控排列示例。这种情况的一个示例可能是一个具有独立的功能逻辑和总线接口时钟域的组件,可以独立进行时钟门控。高级门控的总线接口时钟可以与许多组件共享,例如一个互连,而功能时钟可能专用于该组件。
时钟控制器放置
目标是将时钟控制器放置在时钟树的根部,以自由运行的源时钟作为其输入。 时钟控制器提供同步时钟门使能输出。这种同步使能控制是必需的,以便时钟控制器可以确保Q-Channel协议的时钟可用性保证。
时钟控制器的放置意味着它与组件之间的Q-Channel接口必须异步处理,以允许它们之间的时钟树插入延迟。与组件进行的Q-Channel握手提供了一个强健的异步接口,以促进此过程。 下图显示了一个在一个时钟域内的两个组件的示例,可用于讨论物理设计约束。
为了最大限度地发挥高级时钟门控的优势,建议采取以下措施:
- 将时钟控制器和高级时钟门控时钟输入放置在一个时钟端点平衡组中。在上图中标记为组1。
- 将时钟域的组件放置在第二个时钟端点平衡组中。在上图中标记为组2。
- 分别平衡这两个组。
- 两个平衡组之间的所有LPI信号都以双向方式视为异步处理。
跨时钟域
时钟域交叉需要信号的同步和对时钟速度差异的精心管理。 对于常用的协议,例如总线接口,通常会使用一个可重用的域桥接组件来解决这些问题,例如CoreLink ADB-400。
一个域桥接通常包括:
- 一个响应器接口,接收事务并通过一个异步边界接口将它们传递出去。
- 一个请求器接口,接收来自异步边界接口的事务,将它们转换回适当的协议,并将它们重新传输给下游组件。
下图显示了通过异步域桥接连接的时钟域之间的时钟控制排列。
异步域桥接可能会分成两半。当域桥接被用于电压或电源域边界时,一半可以放置在每个域中。有关更多信息,请参阅7.2.7 电压和电源域边界。
为了实现高级时钟门控,必须有一个唤醒信号,在事务进入域桥接的一侧时被断言,该信号对桥的另一侧的QACTIVE形成贡献。当桥接的一侧有一个事务等待被桥接的另一侧时,QACTIVE信号被驱动为高电平。下图显示了在异步域桥接的一侧生成QACTIVE的安排。
异步域桥接可以通过以下方式实现:
- 仅支持QACTIVE的时钟控制,例如CoreLink ADB-400直到release 2。
- 每个时钟域都有一个完整的Q-Channel,例如CoreLink ADB-400 release 3。
在每一侧都支持完整的Q通道时钟控制的域桥接,支持作为一个独立组件的高级时钟门控,而不依赖于其他组件。
对于仅支持QACTIVE接口的域桥接,QACTIVE信号不能直接用于任何时钟控制。只有当域桥接直接连接到支持完整Q-Channel时钟门控的组件时,才能支持高级时钟门控。连接的组件负责根据Q-Channel握手提供的时钟保证来管理事务流。
如果连接的组件不支持基于Q-Channel的高级时钟门控,则在需要桥接器可操作时,该桥接器一侧的时钟必须由系统提供。 下图显示了在支持完整时钟控制Q-Channel的组件的情况下,仅支持QACTIVE的异步域桥接的连接细节。
时钟域范围
在某些情况下,没有任何明确支持的组件可以被纳入高级时钟门控域中。这可以在一个组件只在另一个具有低功耗时钟门控支持的组件保证时钟供应被维持期间需要时钟活动时实现。
通常,只有当保证时钟供应的组件的操作与依赖该保证的组件之间存在依赖关系时,才能满足这些条件。
下图显示了这个概念的一个例子。
在上图中,NIC互连使用其LPI来保证在其接口存在未完成事务时的时钟供应。
一个使用时钟A的时钟域包含NIC、RAM和外围组件的总线接口部分。 RAM和外围组件的总线接口部分都不提供用于时钟门控的LPI支持。
使用时钟B的时钟域包含外围组件的功能逻辑部分。时钟B可能由一个独立的时钟控制器进行时钟门控,但在这个例子中不做进一步考虑。
如果RAM和外围组件的总线接口部分只在总线事务未完成时需要时钟,那么时钟控制器可以用来对时钟A进行门控。
通过仔细分析拓扑依赖和组件时钟需求,可以将此技术应用于在具有LPI时钟门控支持的组件下游的互连组件。
【注意】:在所有情况下,必须对每个组件的时钟需求进行详细分析。对于RAM组件示例,这可能是直接的。然而,外围组件可能依赖于总线接口时钟活动来捕获来自其功能逻辑的状态变化,例如中断,因此不适用。
1.4.1 复位与时钟控制器
时钟控制器必须在以下情况下进行重置,以确保控制器与组件之间的Q-Channel协议得以保持。
- 所有Q-Channel处于Q_STOPPED状态。
- 重置也同时应用于它和所有连接的Q-Channel组件。
-这样可以确保任何随后的协议违规不能被连接的组件观察到。