Categories
IP

Github Repository

This reversible computing resource site has a Github repository https://github.com/erikdebenedictis/Shift. This repository is under development.

The repository was public at the time this page was posted, but Erik could make it private at any time. For any use other than assessing this resource site and the repository, contact Erik.

The code comprises ngspice simulation scripts. The scripts originated during R&D of Q2LAL and cryogenic reversible logic circuits for quantum computer control. The scripts evolved into a “library” or framework file named saa.cir (for “shift register adiabatic analysis”) and files for specific circuit types (named s2.cir, q2.cir, sNR.cir, and nn.cir — last for the “note note” test circuit).

Installation instructions are in saa.cir.

Categories
Tool

Shifter Adiabatic Analysis Software

Overview

“Adiabatic analysis” is a structuring method for ngspice scripts that allows a user to create an adiabatic circuit simulation file. This version of the adiabatic analysis software supports shift registers.

Files will have the following sections:

  • A command line
  • A netlist with the circuit under test
  • A line that includes a fairly large software framework or test harness: .include saa.cir

The file saa.cir can be used for multiple circuits. The features of the test harness include:

  • DC supply voltages GND and Vp on 70 and 71
  • 8-phase clocks on 110-117, responsive to parameters for frequency and fine control of waveform shape
  • A power measurement subsystem that creates plots 1 and 2
  • Waveform plots 3 and 4, plotting signals wv3_nn and wv4_nn, nn = 00..23 generated by the circuit under test
  • A an ability to perform parameter sweeps

Setup Instructions

The following files must be present in the working directory:

  • saa.cir (this file): The main file, yet just containing a “test harness”; the user will run one of the main programs below:
  • sS2.cir: Static 2-Level Adiabatic Logic (S2LAL) shift register circuit, with .include saa.cir at the end
  • sQ2.cir: Quiet 2-Level Adiabatic Logic (Q2LAL) shift register circuit, with .include saa.cir at the end
  • snR.cir: nMOS Reversible Energy Recovery Logic (nRERL) shift register circuit, with .include saa.cir at the end
  • nn.cir: Note note prototype quantum computer control circuit, with .include saa.cir at the end

The following must be available:

  • The working directory must have a gp subdirectory. The software deposits output files in the subdirectory to reduce clutter
  • An ngspice installation. This file was tested with version 36. A gnuplot installation allows more sophisticated plots [ngspice 36, section 18.7.1].
  • modelcard.nmos and modelcard.pmos: device models for BSIM4 from ngspice distribution (optional)
  • ps_nsoi1_uni.58.scs and ps_psoi1_uni.58.scs: device models for the undisclosed SOI transistor undisclosed SOI
  • Sky130 PDK, see notes below (optional)

Simulation code is in the circuit file saa.cir in the github repository https://github.com/erikdebenedictis.

Categories
Application

Note note circuit

Note-note is a prototype circuit for a reversible logic quantum computer controller test circuit.

Description

Some qubit types are controlled by exposing them to microwave waveforms, such as specific waveforms for X, Y, Z, and CNOT operations. If repetitions of these waveforms is created at room temperature as one or more prime line waveforms in the figure below (6 — single numerals in parenthesis will be explained below), a qubit can be controlled by the address line (AL) bus switching a waveform on an off at appropriate times (7), as shown.

Note note circuit

The behavior is like a piano. The prime line waveform is like a piano string, always giving the same tone. The circuit that drives the AL bus is the pianist, digitally enabling the analog tone created by the string. The quantum computer program would be equivalent to the sheet music.

The reversible circuit contains three shift registers, each holding a measure of music. They are loaded with note note, rest note, and note rest in the test circuit.

The black graphics in the figure above are a flowchart, and the reversible circuit’s behavior follows the flowchart. The clock on each shift register is stopped except when it is the active box in the flowchart (4). When a box is active it shifts is contents, which is music, to the AL bus, gating the prime line and causing an operation on the qubit (5).

When the measure of music is fully transmitted, a control signal (2) goes through a diamond to another measure of music. Only one diamond can be active at once, so the two diamonds are controlled by a single decision signal (blue) (1) from the room temperature control computer. The decision might be based on whether or not a quantum error has occurred or not.

Circuit output

The simulation code produces several plots, one of which is very similar to the images in the pdf file below. The purple circled numerals correspond to single digits in parenthesis in the text above, such as (1) to (7).

Additional information

For those interested in maintaining this page, the Word and PowerPoint source of the figures can be downloaded.

As a docx

PPT

PPTX

Code and References

Simulation code is in the circuit file nn.cir in the github repository https://github.com/erikdebenedictis.

[REFERENCE TBD] This text to be a reminder to EPD to put a link to a document with a more detailed description. This could be Classical Reversible Logic Circuits for Quantum Computer Control, Zettaflops, LLC Technical Report ZF010, once I get around to posting the doc.

Categories
Family

Static 2-Level Adiabatic Logic

Overview

S2LAL was developed by Mike Frank. S2LAL combines important features of 2LAL and SCRL. S2LAL is fully static.

Simulation code is in the circuit file sS2.cir in the github repository https://github.com/erikdebenedictis.

References

Categories
Family

nMOS Reversible Energy Recovery Logic

nRERL is from a South Korean project in the 1999-2005 range [Lim 00] [Kim 05]. The original circuit is based on a 6-phase clock, uses only nFETs, and uses bootstrapping to increase voltage swing. By the time the project matured, there was an 8-phase version that had the ability to “skip” stages [Kim 05]. While 8 clock phases are 1/3 more resource intensive than 6 clock phases, the number of transistors could be reduced by a factor of three.

Simulation code is in the circuit file sNR.cir in the github repository https://github.com/erikdebenedictis.

  • [Lim 00] Lim, Joonho, Dong-Gyu Kim, and Soo-Ik Chae. “nMOS reversible energy recovery logic for ultra-low-energy applications.” IEEE Journal of Solid-State Circuits 35.6 (2000): 865-875.
  • [Kim 05] Kim, Seokkee, and Soo-Ik Chae. “Complexity reduction in an nRERL microprocessor.” Proceedings of the 2005 international symposium on Low power electronics and design. 2005.
Categories
Family

Split-level Charge Recovery Logic

Further introduction TBD.

[Vieri 99] Carlin J. Vieri, “Reversible computer engineering and architecture,” Ph.D. thesis, MIT, 1999. http://hdl.handle.net/1721.1/80144.

Categories
Family

Quiet 2-Level Reversible Logic

Overview

Q2LAL was developed by Erik DeBenedictis as an enhancement on S2LAL that has advantages in some circumstances. Quiet 2-Level Adiabatic Logic (Q2LAL) is like S2LAL but signals with positive-going pulses for A and -A, i.e. A^ and -A^ in S2LAL notation. The advantage is equal power draw for A=0 and A=1, if engineered correctly, leading to less noise or the circuit being “quiet.”

Simulation code is in the circuit file sQ2.cir in the github repository https://github.com/erikdebenedictis.

Circuit Diagram

The adiabatic amplifier circuit (i.e. unlatched) is shown below.

The circuit requires a clamp signal či-1, which can be generated by two transmission gates (four transistors) from clocks. The clamp signal is not dependent on data, so it can be generated once and used in several places.

Connections

Note connection 4 is an optional additional output. If the Extra_buffer parameter is nonzero, the circuit will generate a second adiabatic amplifier with output connected to parameter 4. If Extra_buffer is zero, no transistors are generated and parameter 4 will be a wire that does not go anywhere. The extra buffer is useful for suppressing suppress fault propagation. For example, short circuiting parameter 4 to ground will not affect the output voltage of parameter 3.

  1. AT input signal true rail: Ai-1^
  2. AC input signal complement rail: -Ai-1^
  3. T output signal true rail: Qi^
  4. T2 additional buffered copy of the output signal, with controlled drive, true rail: buf Qi^
  5. C output signal complement rail: Qiv
  6. pT one of the power-clock phases: phii^
  7. Cl clamp signal či-1: Clmpi-1v
  8. GND DC power supply ground voltage: GND
  9. nsub nFET substrate bias: nsub
  10. psub pFET substrate bias: psub

Parameters

  1. ini initial state as a voltage, either gg or vv: parameter

Global parameters

PW: width multiplier for drivers on the true rail only

Long_Register: Deprecated debugging flag that removes the clamp on signal AT. Set to 0.

Extra_buffer: If nonzero, causes an additional driver to be created on the true rail with transistor width Clock_Drive. The output of this buffer drives output T2, which is otherwise not connected.

.SUBCKT QAAmp AT AC T T2 C pT Cl GND nsub psub ini='gg' PW=1.002	$ Q2LAL two-rail adiabatic amplifier. Args: AT/C T(2)/C clock clamp GND substrate supplies
.ic V(T)='ini' V(C)='vv-ini'                                $ .ic V(a)={gg} V(a2)=ini
xM0 pT AT T nsub nFET n=1 m=PW                              $ pass gate
xM1 pT AC T psub pFET n=1 m=PW
xM2 pT AC C nsub nFET n=1 m=1                               $ pass gate
xM3 pT AT C psub pFET n=1 m=1
xM4 GND AC T nsub nFET n=1 m=1                              $ clamp
xM5 GND AT C nsub nFET n=1 m=1
xM6 GND Cl T nsub nFET n=1 m=1                              $ clamp
.if (Long_Register=0)
xM7 GND Cl C nsub nFET n=1 m=1
.endif
.if (Extra_Buffer=0)
.else
xM8 pT AT T2 nsub nFET n=1 m='Clock_Drive*PW'               $ pass gate
xM9 pT AC T2 psub pFET n=1 m='Clock_Drive*PW'
xM10 GND AC T2 nsub nFET n=1 m='Clock_Drive'                $ clamp
xM11 GND Cl T2 nsub nFET n=1 m='Clock_Drive'                $ clamp
.endif
.ENDS QAAmp

Typesetting Test Area

The following uses cut-and-paste from EPD’s Word 2003 figures. Render –Ai-1^i-1 (so the circumflex diacritical mark works from cut-and-paste). Likewise for cups (caron) či-1 (but doesn’t the cee look a little skinny?)

The following is an attempt to render phi3^ by cut-and-paste: 3 (renders as an eff not a phi), but with special character plugin, we get φ3 (which is correct but not the glyph style we are familiar with).

References

Categories
Tool

Adiabatic Analysis Software

The zip files below comprise the AA (Adiabatic Analysis) ngspice software. The software is licensed under Apache 2.0. There is no repository for changes at this time.

Version of 3:05 PM 3/13/2022

This release comprises eight .cir files. Installation instructions are in comments towards the end of aa.cir.

Supports multiple devices:

  • (MD=2) Compatibility check with e.cir, which uses the built-in BSIM3 model with default parameters.
  • (MD=3) Built-in BSIM3 model with default parameters.
  • (MD=4) BSIM4 test modelcards from the ngspice distribution. You must manually move the modelcard files; see comments in aa.cir.
  • (MD=5) Sky130. You must install the Sky130 PDK and “uncomment” some lines.
  • (MD=6) [undisclosed SOI]. Not for general use at this time.

Supports the following circuits:

  • Q2LAL shift registers
  • S2LAL shift registers
  • Two versions of a quantum computer controller based on Q2LAL
  • A CMOS work alike for one of the quantum computer controllers

Learning about the code and regression testing:

  • Running aa.cir with no modifications will produce the same output as running e.cir. This is a regression test.
  • The top of aa.cir contains a series of control lines of similar format. For purposes of identification, they start with *.param or .param. All but one of these lines should be commented out, meaning the one that is not commented out will control the run.
  • Each run will produce some plots and append a summary line to Adia.csv and CMOS.csv. (The current version of this software also appends a second line with the simulation run time.) You can open .csv files with Excel.
  • Summary lines have been incorporated into aa.cir immediately following the .param line that controlled run, forming another type of regression test. The summary lines include the energy dissipated during initialization and the remainder of the simulation run. If your run’s dissipation is the same (to five decimal places) as the one incorporated in aa.cir, the software is probably running correctly.
  • The summary lines in aa.cir have been manually edited so the last field contains the time and date of the run, the run time in seconds, and the name of the computer in the developer’s office that executed the run.
  • The scripts in this software are intended to be changed by the user. Some friendly advice is to run regression tests frequently and keep a lot of backup files because ngspice scripts are hard to debug.

The following zip file contains password-protected files for the convenience of the developer. You should not need these files because they are available on the Internet.