是否有必要注册每个硬件核心的输入和输出?

Nat*_*ton 5 fpga

我知道在使用这些输入之前需要将所有输入同步到FPGA以避免亚稳态.我也意识到需要在单个FPGA内同步跨时钟域的信号.这个问题不是跨越时钟域.

我的问题是,在FPGA设计中定期注册每个内部硬件模块的所有输入和输出是否是一个好主意.理由是我们想要打破长链组合逻辑以提高时钟速率,以便我们能够满足所选时钟速率的时序约束.这将增加与信号必须跨越的模块数量成比例的额外延迟周期.这是一个好主意还是一个坏主意?是否只注册输入而不是输出?

答案摘要

经验法则:注册内部FPGA内核的所有输出; 无需注册输入.如果输出已经来自寄存器,例如状态机的状态寄存器,则无需再次注册.

Jos*_*osh 6

很难给出一个坚定而快速的规则.这真的取决于很多因素.

它可能:

  • 通过分解组合路径来增加Fmax
  • 通过允许工具在部件中扩展逻辑,使布局和布线更容易
  • 使设计分区更容易,允许部分重建.

它不会神奇地解决关键路径时序问题.如果您的一个主要"块"内存在关键路径,那么它仍将是您的关键路径.

此外,您可能会遇到更多问题,具体取决于您的设计在目标部件上的完整程度.

这些事情说,我只倾向于注册输出.