This PhD dissertation investigates garbage-free reversible computing systems from abstract design to physical gate-level implementation. Designed in reversible logic, we propose a ripple-block carry adder and work towards a reversible circuit for general multiplication. At a higher-level, abstract designs are proposed for reversible systems, such as a small von Neumann architecture that can execute programs written in a simple reversible two-address instruction set, a novel reversible arithmetic logic unit, and a linear cosine transform. To aid the design of reversible logic circuits we have designed two reversible functional hardware description languages: a linear-typed higher-level language and a gate-level point-free combinator language. We suggest a garbage-free design flow, where circuits are described in the higher-level language and then translated to the combinator language, from which methods to place-and-route of CMOS gates can be applied. We have also made standard cell layouts of the reversible gates in complementary pass-gate CMOS logic and used these to fabricate the ALU design. In total, this dissertation has shown that it is possible to design non-trivial reversible computing systems without garbage and that support from languages (computer aided design) can make this process easier.
翻译:本博士论文系统研究了从抽象设计到物理门级实现的无垃圾可逆计算系统。我们在可逆逻辑中提出了一种行波进位加法器,并致力于构建通用的可逆乘法电路。在更高层次上,我们提出了可逆系统的抽象设计方案,包括:可执行简单可逆双地址指令集程序的小型冯·诺依曼架构、新型可逆算术逻辑单元(ALU)以及线性余弦变换。为辅助可逆逻辑电路设计,我们开发了两种可逆函数式硬件描述语言:线性类型高阶语言和门级无点组合子语言。我们提出了一种无垃圾设计流程:电路先用高阶语言描述,然后翻译为组合子语言,进而可应用CMOS门级的布局布线方法。我们还基于互补传输门CMOS逻辑完成了可逆门的标准单元版图设计,并以此流片制造了ALU。总体而言,本论文证明:设计无垃圾的非平凡可逆计算系统是可行的,且语言支持(计算机辅助设计)可简化这一过程。