-
[10 points] Small programming project. Create a software simulator
for either the original Billiard-Ball Model of reversible computing, or
Margolus' BBMCA cellular automaton emulation of it. Include a real-time
graphics display, or, at minimum, the ability to output graphical "snapshots"
(in pixel or ascii graphics) of the machine state. Encode some interesting
reversible gates such as Fredkin or Toffoli gates in terms of billiard-ball
interactions, and show that they work. You should use references
such as Margolus' Ph.D. thesis (see reading list) to help you with the
details.
-
[5 points] Small circuit design project. Show how to modify
the low-level logic gates of FlatTop to fix the problem of non-adiabatic
transistor turn-off (described in sec. 7.6.4 of the green book).
You may need to add additional signals between gates.
-
[points TBD] Write & test some reversible algorithms using the
PisaHut development environment for the Pendulum ISA. Detiled assignment
description to be provided by TA Jeff King.
-
[100 points] Hefty VLSI project. Fix the bug of non-adiabatic
transistor turn-off in FlatTop. For reference, the original circuits
can be found at http://www.cise.ufl.edu/research/revcomp/hw/MIT_circuits/
(or /cise/research/revcomp/hw/MIT_circuits on the CISE unix machines).
-
[10 points] Small Programming Project. Write a reversible implementation
of the Quick Sort algorithm using the Pendulum Assembly Language (PAL).
Email your PAL code to jck@acm.cise.ufl.edu.
Be sure to include your full name in the email.
Test your programs using pendvm (the Pendulum Virtual Machine), The
pendvm binary is available at http://www.cise.ufl.edu/~mpf/pendvm/pendvm,
and can be executed on CISE UNIX machines.
Information about the Pendulum Instruction Set Architecture (PISA) is
available in Appendix B of Dr.
Frank's Ph.D. thesis. Notes about the pendvm tool are available at
http://www.cise.ufl.edu/~mpf/pendvm/pendvm-doc/pendvm.ps.
Sample PAL files are located in http://www.cise.ufl.edu/~mpf/pendvm/