Intel® Hyperflex™ 体系结构高性能设计手册

ID 683353
日期 10/04/2021
Public
文档目录

2.2.7.2. 初始条件和重定时

初始上电条件可能会限制Compiler在综合期间执行逻辑优化的能力,以及在重定时期间将寄存器移到Hyper-Registers的能力。

以下实例说明如何将初始条件设置为已知状态,以确保重定时后电路的功能等效。

图 17. 重定时前的电路此示例电路显示寄存器F1在上电时有状态‘0’或状态‘1’。假设逻辑云是纯组合的,在电路中有两种可能的状态C1 (F1=‘0’或F1=‘1’)
图 18. 向前重定时后的电路如果Retimer向前推动寄存器F1,那么Retimer必须复制F1驱动的每个分支中的寄存器。

在重定时和寄存器复制之后,电路在上电时现在有四种可能的状态。重定时后电路中增加的两种潜在状态可能会改变设计功能。

表 6.  重定时后可能的上电状态

F11状态

F12状态

0 0
0 1
1 0
1 1

C-Cycle等同

c-cycle是指上电后设计需要用于确保功能等同的时钟周期数。c-cycle值在构建设计的复位流程时是一个重要的考虑因素。要确保重定时后的设计功能等同,需要在上电后使用一个额外的时钟周期。此额外时钟周期确保了F11F12状态始终相同。这种技术导致寄存器只能有0/0或1/1两种可能的状态,假设组合逻辑在两个路径上都是非反相的。

向后重定时

向后重定时寄存器总是一个安全的操作(c-cycle值为0)。在这种情况下,Compiler将F11F12合并在一起。如果没有对F11F12指定初始条件,那么Compiler会始终允许合并。如果指定了初始条件,那么Compiler会考虑F11F12的初始状态。在此情况下,仅在转换保留初始状态时才会发生重定时转换。

如果Compiler转换不能保留F11F12的初始状态,那么Compiler不允许重定时操作。要避免在重定时期间更改电路功能,需要在上电后使用一个额外的时钟周期来确保F11F12的内容始终相同。