0

我以两种方式设计了算法-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 是两个寄存器中的任何一个之间的延迟,它不是整个算法的传播延迟,所以我如何计算整个流水线算法的传播延迟。

4

1 回答 1

0

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

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

于 2016-05-05T00:05:05.050 回答