什么是冗余与非冗余数字格式?

时间:2011-04-06 02:13:23

标签: algorithm fpga computer-architecture

我无法理解此FPGA电路中使用的算法。它处理冗余与非冗余数字格式。我已经看到了非冗余格式的一些数学(形式)定义,但我无法真正掌握它。

摘自本文描述的算法:

  

图3显示了可扩展的蒙哥马利乘数的框图。内核包含 p w-bit PE,总共 wp 位单元。 Z 以进位保存冗余形式存储。如果PE p 在PE1完成 Z ^(e-1)之前完成 Z ^ 0,则结​​果必须排队,直到PE1再次可用。 [5]中的设计将结果排列为冗余形式,每个条目需要 2w 位。对于大型 n ,队列占用大量区域,因此我们建议将 Z 转换为非冗余格式以节省一半的队列空间,如图4所示。在第一个周期中,< em> Z 初始化为0.当不需要排队时,直接旁路进位保存冗余 Z'以避免进位传播加法器的延迟。非冗余 Z 结果也是系统的输出。

图表: Figure 3 is high level, Figure 4 is the FIFO and is 'improved' by making it use non-redundant format.

这是“改进的”PE框图。这显示了“改进的”PE框图 - “改进”与一些不相关的方面有关 'Improved' PE Block Diagram

我没有'未改进'FIFO的图片,但我认为它只是一个普通的正常FIFO。我不明白的是,FIFO的CPA和3输入MUX是否以某种方式在格式之间进行转换?

了解冗余格式与非冗余格式(具体示例)是第一步,了解该电路如何实现它将是第2步。

1 个答案:

答案 0 :(得分:2)

有一些背景知识,看看users.ece.utexas.edu/~adnan/vlsi-05-backup/lec12Datapath.ppt建议如下:

进行适当的二进制加法相对较慢和/或占用区域,因为正确传播进位所需的时间。

如果你并行逐位工作,你可以取三个二进制数,对每个数字中相同位置的位求和,并产生两个二进制数。

幻灯片27指出0001 + 0111 + 1101 = 1011 + 0101(0)。

由于乘法器需要进行大量添加,因此您将加法器树构建为3个数字减少到2个数字的集合,最终以两个数字作为输出结束,abcde .... z 和ABCDE ...... Z0。这是你的多余形式的输出,真正的答案实际上是abcde ... z + ABCDE ... Z0