组合电路的操作频率是否会比时序电路低?

Whether combinational circuit will have less frequency of operation than sequential circuit?

我设计了一个算法——SHA3算法,有两种方式——组合 和顺序。 综合时带时钟的时序设计给出设计概要为

最小时钟周期 1.275 ns,最大频率 784.129 MHz。

而没有时钟设计并放在输入和输出寄存器之间的组合给出的综合报告为

最小时钟周期 1701.691 ns,最大频率 0.588 MHz。

所以我想问一下,组合的频率低于顺序的频率是否正确?

就理论而言,组合设计应该比顺序设计更快。但是我得到的顺序仿真结果是在 30 个时钟周期之后,因为组合没有时钟,所以输出没有延迟。通过这种方式,组合速度更快,因为我们可以获得即时输出,但为什么组合式的操作频率低于顺序式。为什么这种设计很慢,有人可以解释一下吗? 该设计已在 Xilinx ISE

中进行了仿真

现在,我通过在进行计算的 5 个主要块之间插入寄存器,将流水线应用于组合逻辑。这些寄存器由时钟控制,所以现在这个流水线设计给出的设计摘要为

时钟周期 1.575 ns 和频率 634.924 MHz

最小周期 1.718 ns 和频率 581.937。

所以现在这个 1.575 ns 是两个寄存器中任何一个之间的延迟,它不是整个算法的传播延迟所以我如何计算整个流水线算法的传播延迟。

您看到的是流水线及其性能优势。组合电路将使每个输入经历整个算法的传播延迟,这在您使用的 FPGA 上最多需要 1701.691ns,因为计算结果所需的组合电路中最慢的关键路径将花费到那么久。你的模拟器并没有告诉你一切,因为行为模拟不会显示门传播延迟。您只会在模拟中看到组合函数的即时计算。

在顺序设计中,您有多个较小的步骤,最慢的步骤在最坏的情况下需要 1.275ns。这些步骤中的每一步都可能更容易有效地进行布局和布线,这意味着由于每个步骤的布线得到改进,您可以获得更好的整体性能。但是,您需要等待 30 个周期才能得到结果,这仅仅是因为这些步骤是同步管道的一部分。通过正确的设计,您可以改进这一点并在每个时钟周期获得一个输出,延迟 30 个周期,方法是拥有一个完整的管道并在每个时钟周期通过它传递数据。