1

我目前正在从事一个项目,我试图找出在芯片级设计中实施时哪种算法更好。我将这些推到我的 FPGA 板上。我正在用 Verilog 编写代码。我需要的是一个比较量规

a) 2 个函数的时间复杂度。

b) 最坏情况时序

c) 功耗

例如,

方法一:prod = mult1 * mult2;

其中 mult1 和 mult2 是两个 8 位输入。

方法二:prod = ((mult1+mult2-100) * 100) + ((100-mult1) * (100-mult2))

其中 mult1 和 mult2 是两个 8 位输入。

所以我有兴趣知道芯片计算产品所需的总时间,从传入 2 个输入到计算产品的时间。

我正在处理的算法都是 O(n)。所以我知道渐近无关紧要。但是,我有兴趣了解在 FPGA 或 ASIC 板上实现时所采用的确切的最坏情况时序,以便我可以尝试改进功能。我也知道这些计算需要纳秒来计算,但是,这就是我想要改进的。

我看到一些声称有更快算法的期刊出版物。然而,当我使用 Xilinx 和综合报告实现相同的功能时,我得到了不同的结果。

是否有计算功耗和最坏情况时序的软件?或者任何人都可以向我指出一些可以帮助我的文章吗?

4

1 回答 1

3

关于时间复杂度和最坏情况的时序,这些将取决于您编写算法的方式以及您使用的目标 fpga。

要了解执行计算所需的时间长度,这取决于 FPGA 的时钟频率,以及执行算法所需的时钟周期数。如果您的乘法算法是单周期的,那么计算所需的时间将只是 fpga 的时钟周期。然而,由于其复杂性,大型乘法电路通常不是单周期的。您获得的确切内容取决于您的输入代码、合成器以及您使用的 fpga 类型。

通常,您的 FPGA 综合工具可以在综合后报告中告诉您设计的最坏情况时序。如果您想改善最坏情况的时序,那么您可以在乘法中添加流水线级以分解工作并提高时钟频率。

测量功耗还很大程度上取决于您使用的 fpga 和您正在加载的综合网表。AlteraXilinx为其 fpgas 提供了功率估算器(可能还有其他供应商),但我不确定是否有任何与供应商无关的功率估算器。

长话短说,要获得所需的指标,您需要使用您计划使用的 FPGA 的综合工具。

于 2013-02-19T00:56:00.260 回答