我设计了一种算法-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是两个寄存器之间的延迟,它不是整个算法的传播延迟,所以如何计算整个流水线算法的传播延迟。
答案 0 :(得分:0)
您所看到的是流水线技术及其性能优势。组合电路将使每个输入经历整个算法的传播延迟,在您使用的FPGA上将需要高达1701.691ns,因为计算结果所需的组合电路中最慢的关键路径将需要长达这么久。你的模拟器没有告诉你一切,因为行为模拟不会显示门传播延迟。您只需在模拟中看到组合函数的即时计算。
在顺序设计中,您有多个较小的步骤,最慢的步骤在最坏的情况下需要1.275ns。这些步骤中的每一步都可能更容易有效地布局和布线,这意味着由于每个步骤的路由改进,您可以获得更好的整体性能。但是,您需要等待30个周期才能得到结果,因为这些步骤是同步管道的一部分。使用正确的设计,您可以通过在每个时钟周期拥有完整的流水线并通过数据传输来改善这一点并在每个时钟周期获得一个输出,具有30个周期的延迟。