我无法理解这个 FPGA 电路中使用的算法。它处理冗余与非冗余数字格式。我已经看到了一些非冗余格式的数学(正式)定义,但我无法真正掌握它。
本文摘录描述了该算法:
图 3 显示了可扩展的蒙哥马利乘法器的框图。内核包含p w-bit PE,总共wp位单元。Z以进位保存冗余形式存储。如果 PE p在 PE1 完成Z ^(e-1) 之前完成Z ^0 ,则结果必须排队,直到 PE1 再次可用。[5] 中的设计以冗余形式对结果进行排队,每个条目需要2w位。对于较大的n,队列消耗大量区域,因此我们建议将Z转换为非冗余形式以节省一半的队列空间,如图 4 所示。在第一个循环中,Z初始化为0。当不需要排队时,直接绕过进位保存冗余Z'以避免进位传播加法器的延迟。非冗余Z结果也是系统的输出。
和图表:
这是“改进的”PE 框图。这显示了“改进的”PE 框图——“改进的”与一些不相关的方面有关。
我没有“未改进” FIFO 的图片,但我认为它只是一个普通的 FIFO。我不明白的是,FIFO 的 CPA 和 3 输入 MUX 是否以某种方式在格式之间转换?
了解冗余与非冗余格式(在具体示例中)是第一步,了解该电路如何实现它将是第 2 步。