基于可逆逻辑的阵列乘法器性能分析
在工程应用中,加法和乘法运算几乎是所有应用的基础操作,对其速度性能有较高要求。一个设计良好的乘法器应具备高速、占用面积小和低功耗的特点。本文将对可逆逻辑下的无符号阵列乘法器设计进行研究,并分析和比较不同设计的参数。
1. 可逆逻辑基础
在可逆计算中,不会丢失任何关于计算状态的信息。可以通过反向计算或撤销计算结果来追溯上一阶段,这种过程在可逆逻辑中称为逻辑可逆性。当一个逻辑系统的输入可以从输出唯一追溯时,该系统就是可逆的。可逆电路在输入向量和输出向量之间存在一一映射关系,不仅可以从输入唯一追溯输出,也能从输出恢复输入。
不可逆电路中,每次操作会使用中间位来计算最终结果,而移除这些位是功耗的主要原因。Landauer指出,每次擦除一位至少会消耗kTln2的能量(k为玻尔兹曼常数,T为室温)。而Bennett证明,如果通过可逆逻辑进行计算,每个设备的功耗可以忽略不计,甚至理想情况下为零,并且使用不可逆逻辑完成的操作在可逆逻辑电路上也能以相同的效率完成。
可逆逻辑门具有相同数量的输入和输出线,并且输入和输出之间存在一一映射。一个可逆逻辑电路应满足以下要求:
- 所使用的可逆逻辑门数量应较少。
- 未使用的输出(即垃圾输出)数量应较少。
- 保持恒定输入的输入数量应较少。
- 逻辑电路应具有较低的量子成本。
以下是可逆逻辑中常用的基本术语:
- 垃圾输出(GO):不用于进一步设计计算的输出。
- 恒定输入(CI):为实现可逆性而保持在逻辑0或逻辑1的输入。
- 门计数(GC):使用可逆门实现可逆设计所使用的可逆门总数。
- 量子成本:构建可逆函数所需的基本量子门数量。
2. 可逆门
- Feyman门 :是一个2×2的可逆门,量子成本为1。在可逆逻辑中,禁止扇出,Feyman门通常用于避免扇出并产生输入的补码。
- Toffoli门 :有三个输入线(I(A, B, C))和三个输出线(O(P, Q, R))。前两条输入线作为控制输入,最后一条输入线作为目标输入。前两个输入直接传输到相应的输出,当两个控制输入都为逻辑1时,最后一个输出会翻转。Toffoli门的量子成本为5,可以用作通用门。
- Fredkin门 :是一个3×3的可逆门,量子成本为5。当控制输入A为1时,两个输出位会交换,因此也称为交换门。
- Peres门 :有三个输入和三个输出,量子成本为4。它不能用作通用门,但由于其量子成本相对较低,在可逆电路设计中常用。它结合了Feyman门和Toffoli门的功能。
- HNG门 :是一个4×4的可逆逻辑门,其重要操作是可以独立实现为可逆全加器,在可逆逻辑设计中常作为全加器电路使用。
- TSG门 :是一个3×3的可逆逻辑门,可用于实现可逆逻辑中的所有布尔函数,也能独立作为可逆全加器工作。
- 双Feynman门(F2G) :是一个3×3的可逆门,具有奇偶校验保持特性,量子成本为2,可用于电路中的扇出生成。
3. 可逆无符号阵列乘法器
一个优秀的乘法器设计应在物理上实现紧凑、低功耗和高速操作。乘法器是算术处理单元的主要部分,对高速和低功耗有很高的需求。乘法器的选择通常基于速度、占用面积、延迟和设计复杂度等因素。为了降低功耗,需要优化乘法器架构,减少操作数量,从而降低动态功耗,这是总功耗的主要部分。
乘法有多种实现方法,如串行乘法和并行乘法。阵列乘法器是乘法器中常见的规则结构,其设计分为两个单元:部分积生成和多操作数加法(MOA)。每个部分积位是通过将乘数的一位与被乘数的一位相乘得到的,生成的部分积根据位的位置移动,最后进行相加。加法操作可以使用各种加法器实现,如 ripple carry adder、carry look ahead adder、carry save adder 和 carry select adder 等。
阵列乘法器中部分积的计算采用基数 - 2方法,即一次考虑乘数的一位。以4×4可逆乘法器为例,它包含16个部分积位,并且可以扩展到任意阶的n * n乘法器。
4. 现有阵列乘法器设计
以下是一些现有的4×4可逆阵列乘法器设计:
| 设计 | 恒定输入 | 垃圾输出 | 门数量 | 量子成本 |
| ---- | ---- | ---- | ---- | ---- |
| 设计[15] | 未指定 | 未指定 | 29 | 未指定 |
| 设计[14] | 52 | 28 | 28 | 未指定 |
| 设计[36](设计1) | 28 | 28 | 28 | 137 |
| 设计[36](设计2) | 28 | 28 | 36 | 153 |
| 设计[37] | 28 | 28 | 28 | 137 |
| 设计[38] | 28 | 28 | 20 | 144 |
| 设计[40] | 40 | 40 | 32 | 140 |
| 设计[41] | 52 | 52 | 28 | 238 |
| 设计[49] | 28 | 28 | 28 | 137 |
| 设计[50] | 44 | 72 | 28 | 未指定 |
| 设计[51] | 16 | 25 | 20 | 120 |
- Himanshu Thapliyal等人(2006) :提出了一种MXN可逆乘法器设计。使用Fredkin门并行生成部分积,延迟为d,然后使用由可逆TSG门并行设计的加法器将加法操作减少log2N。通过并行加法器将相邻的部分积相加,最终结果有log2N级。
- Haghparast等人(2008) :设计了一个4×4的无符号阵列乘法器,使用Peres门并行生成部分积,使用HNG和PG门进行多操作数加法,其中HNG门作为全加器,PG门作为半加器。该设计总共使用28个门、52个恒定输入和28个垃圾输出。
- Haghparast等人(2009) :提出了两种4×4乘法器设计。使用Toffoli和Peres门并行生成部分积,在第一种方法中使用HNG门作为可逆全加器,第二种方法中使用Peres门作为全加器。设计1使用28个门,量子成本为137;设计2使用36个门,量子成本为153。
- Haghparast等人(2012) :提出的4×4可逆乘法器使用Peres门和Toffoli门生成部分积,可逆求和网络使用八个HNG门和四个Peres门,其中HNG门作为可逆全加器,Peres门作为可逆半加器。与之前的设计相比,仅电路结构改变,门的数量未变,使用28个门,量子成本为137。
- Bhagyalakshmi等人(2012) :提出了一个四位并行乘法器,使用BVPPG门作为部分积生成器,使用四个PG门和八个DPG门进行四操作数加法,部分积生成和加法使用Revkit实现。
- Rangaraju等人(2013) :使用RAM门进行信号复制,使用PG门生成部分积,使用八个DPG门实现全加器,使用PG门实现半加器,使用四个RAM门实现扇出。
- Valinataj(2017) :提出了一种奇偶校验保持的阵列乘法器,用于有符号和无符号数的乘法。使用Baugh - Wooley技术进行有符号乘法,使用LMH和FRG门生成部分积,使用ZPLG和ZCG门进行多操作数加法。
- Pourali Akbar等人(2018) :提出了一种基于Wallace树的4 * 4并行乘法器设计。使用两种不同的方法生成部分积,一种使用FG和TG门,另一种使用Toffoli门和Peres门。该乘法器需要五个全加器(FAs)、三个半加器(HAs)和一个4位加法器电路。
- Radha等人(2018) :提出了一个仅使用HNG门实现的4 * 4高速高效乘法器,部分积生成和加法都使用HNG门。该乘法器使用Verilog编码,并使用Cadence工具实现。
- Vandhana等人(2020) :使用BME门进行部分积生成,使用WG门作为4位RCA。与其他现有设计相比,该设计在门计数、未使用输出、辅助输入和量子成本等设计参数上进行了优化。
5. 提出的阵列乘法器
提出的乘法器设计使用BME门进行部分积生成,使用HNG和Peres门进行多操作数加法。下图展示了4位无符号阵列乘法器的仿真结果。
6. 结论
本文对使用各种门的并行乘法器(以阵列乘法器为例)在可逆逻辑下的组合逻辑电路设计进行了综述。通过EDA工具(如Xilinx软件或Cadence)验证了设计的功能。阵列乘法器因其规则结构而闻名,它通过直接转换手动乘法过程实现,乘法器电路通过简单的加法和移位过程构建。对现有阵列乘法器在辅助输入、未使用输出、使用的门数量、使用的可逆门类型及其量子成本等方面进行了比较研究。
通过对不同设计的分析,可以看出在可逆逻辑下设计阵列乘法器时,需要综合考虑多个因素,以实现高速、低功耗和紧凑的设计目标。不同的设计在门数量、量子成本、恒定输入和垃圾输出等方面存在差异,设计者可以根据具体需求选择合适的设计方案。未来的研究可以进一步探索如何优化可逆逻辑乘法器的设计,以满足不断增长的性能要求。
基于可逆逻辑的阵列乘法器性能分析
7. 不同设计的对比分析
为了更清晰地了解各设计的优劣,我们对上述提到的现有阵列乘法器设计在几个关键指标上进行对比分析。
| 设计 | 恒定输入 | 垃圾输出 | 门数量 | 量子成本 | 优势 | 劣势 |
|---|---|---|---|---|---|---|
| 设计[15] | 未指定 | 未指定 | 29 | 未指定 | 可能在门数量上有一定优势 | 关键参数未明确,难以评估 |
| 设计[14] | 52 | 28 | 28 | 未指定 | 门数量相对合理 | 恒定输入数量较多 |
| 设计[36](设计1) | 28 | 28 | 28 | 137 | 门数量和垃圾输出数量适中 | 量子成本较高 |
| 设计[36](设计2) | 28 | 28 | 36 | 153 | 门数量和量子成本都较高 | |
| 设计[37] | 28 | 28 | 28 | 137 | 与设计[36](设计1)类似,结构可能更优 | 量子成本较高 |
| 设计[38] | 28 | 28 | 20 | 144 | 门数量较少 | 量子成本较高 |
| 设计[40] | 40 | 40 | 32 | 140 | 恒定输入和垃圾输出数量较多 | |
| 设计[41] | 52 | 52 | 28 | 238 | 具有奇偶校验保持特性 | 恒定输入、垃圾输出和量子成本都较高 |
| 设计[49] | 28 | 28 | 28 | 137 | 量子成本较高 | |
| 设计[50] | 44 | 72 | 28 | 未指定 | 恒定输入和垃圾输出数量较多 | |
| 设计[51] | 16 | 25 | 20 | 120 | 恒定输入、门数量和量子成本都较低 |
从这个表格可以看出,不同设计在各个指标上各有优劣。例如,设计[51]在恒定输入、门数量和量子成本方面表现较好,而设计[41]虽然具有奇偶校验保持特性,但在功耗相关的指标上表现不佳。
8. 可逆逻辑在阵列乘法器中的应用流程
下面我们用 mermaid 流程图展示可逆逻辑在阵列乘法器中的一般应用流程:
graph LR
classDef startend fill:#F5EBFF,stroke:#BE8FED,stroke-width:2px;
classDef process fill:#E5F6FF,stroke:#73A6FF,stroke-width:2px;
classDef decision fill:#FFF6CC,stroke:#FFBC52,stroke-width:2px;
A([开始]):::startend --> B(选择乘法器类型):::process
B --> C{串行或并行?}:::decision
C -->|串行| D(串行乘法操作):::process
C -->|并行| E(选择阵列乘法器):::process
E --> F(部分积生成):::process
F --> G(多操作数加法):::process
D --> H(结果输出):::process
G --> H
H --> I([结束]):::startend
这个流程图展示了可逆逻辑在阵列乘法器应用中的主要步骤。首先需要选择乘法器类型,若选择串行乘法,则直接进行串行乘法操作;若选择并行乘法,通常会采用阵列乘法器,其设计分为部分积生成和多操作数加法两个主要步骤,最后输出乘法结果。
9. 优化可逆无符号阵列乘法器的建议
根据前面的分析,我们可以给出一些优化可逆无符号阵列乘法器的建议:
-
减少门数量
:尽量选择使用门数量较少的设计方案,如设计[38]和设计[51],可以降低电路的复杂度和功耗。
-
降低量子成本
:量子成本较高会增加计算的能量消耗,应优先选择量子成本低的可逆门和设计方案,如双 Feynman 门(F2G)量子成本为 2 相对较低。
-
控制恒定输入和垃圾输出
:恒定输入和垃圾输出数量过多会增加功耗和资源浪费,可参考设计[51],减少这两个指标的数值。
-
结合应用需求
:如果对奇偶校验有要求,可以选择具有奇偶校验保持特性的设计,如设计[41];如果对速度要求较高,可以考虑并行乘法和优化的阵列乘法器设计。
10. 未来发展趋势
随着技术的不断发展,可逆逻辑下的阵列乘法器可能会朝着以下几个方向发展:
-
更低功耗
:进一步降低功耗是永恒的追求,未来的设计可能会在门级和架构级进行更深入的优化,减少操作数量和能量损耗。
-
更高速度
:为了满足高速计算的需求,可能会采用更先进的电路技术和算法,提高乘法器的运算速度。
-
集成化和小型化
:随着芯片制造工艺的进步,乘法器可能会更加集成化和小型化,以适应越来越小的设备尺寸。
-
容错性增强
:在复杂的计算环境中,提高乘法器的容错性可以保证计算的准确性和可靠性。
总之,可逆逻辑下的阵列乘法器设计是一个充满挑战和机遇的领域,通过不断的研究和创新,有望实现更高效、更强大的乘法器设计。
可逆逻辑下阵列乘法器性能分析
超级会员免费看
39

被折叠的 条评论
为什么被折叠?



