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

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

2.2.7.4. 重定时复位流程(Retiming Reset Sequences)

在某些条件下,Retime阶段会执行c-cycle值大于零的寄存器转换。此功能可以帮助提高设计的最大频率。但是,大于零的c-cycle等效值的寄存器重定时需要额外的预防措施,以确保重定时后的功能等效。为了保持功能等效,请重新使用现有的复位流程,并添加适当的时钟周期数,如以下部分所述:

修改复位序列

请按照如下建议在重定时期间最大化复位的操作频率:
  • 从所有自然复位的寄存器中删除sclr信号。此删除操作使寄存器能够在重定时期间在逻辑中自由移动。
  • 确保ALLOW_POWER_UP_DONT_CARE global assignment设为ON。此设置最大化寄存器移动。
  • 计算由c-cycle等价导致的额外时钟周期的相关数量,并加入到复位同步器中。

添加时钟周期到复位

Compiler报告要加入到Fitter > Retime Stage > Reset Sequence Requirement报告中复位序列中的时钟周期数。此报告在时钟域基础上列出了要加入的周期数。

图 20. 复位序列要求报告

到多个分支的寄存器复制的c-cycle值为1。无论复制寄存器的数量是多少,寄存器始终是一个远离其原始源的连接。一个时钟周期后,所有分支再次具有相同的值。

以下示例显示了如何在复位序列中添加时钟周期,以确保重定时后设计的功能等同性。

流水线和寄存器复制显示了具有前向重定时潜力的寄存器的流水线操作。c-cycle值等于0。

图 21. 流水线和寄存器复制

一个寄存器移动的影响显示了一个寄存器的向前重定时后的流水线寄存器。由于c-cycle值等于1,因此该电路的复位序列需要一个额外的时钟来实现复位后的功能等效。

图 22. 一个寄存器移动的影响

两个寄存器移动的影响显示了两个寄存器的向前重定时后的流水线寄存器。由于c-cycle值等于2,因此该电路的复位序列需要两个额外的时钟来实现复位后的功能等效。

图 23. 两个寄存器移动的影响

流水线中的寄存器每次移到逻辑中时,寄存器就会复制,C-cycle值就会加1。