close-circle
Close
0%
0%

Diodes Only

A community project to explore diodes as active devices. Collaborators welcome; leave your transistors at the door.

Similar projects worth following
close
This project is for anyone who wants to experiment with diodes as active circuit devices in logic gates, analog amplifers, oscillators, and other unconventional uses. While diodes have already been used in some of these roles historically, I suspect many tricks are yet to be explored. Some may even prove useful; I personally find them all interesting.

Got something to contribute? Just want to chat about two-terminal devices? This place is for you.

Goals

The aim of this project is to explore diodes in unconventional uses, including, but not limited to the following crazy ideas. I need a place to document experiments as I go, without necessarily working towards a well-defined goal, and this is that place. If you're interested in contributing, send me a note; I'll add you to the project.

Diode-Diode Logic (spinoff from #The Diode Clock)

  • Faster (I'd like to see 1 MHz clock frequencies before building a computer)
  • SMD parts
  • Using actual RF components (PIN /Schottky diodes)
  • Better fan-out
  • Diode memories (diode/capacitor DRAM)

Linear Amplifiers

  • Headphone amplifier
  • Diode op-amp
  • Boutique audio (get that "diode sound")

Oscillators

  • RC
  • LC
  • XTAL

Optoelectronics

  • LEDs + photodiodes - you do the math

Homebrew Devices

  • Copper oxide
  • Selenium
  • Zinc Oxide
  • Borax rectifiers
  • Crystal (galena) diodes
  • Scavenged silicon

Power Supplies

  • Diode-only (GUNN/IMPATT/tunnel)
  • Mechanical (spark gap / high-speed alternator)
  • Better supplies using transistors and ICs (the horror!)

And anything else relating to semiconductors that walk on two legs.

  • SRAM Cell

    Ted Yapo02/07/2017 at 18:00 0 comments

    There was a mostly-diode SRAM cell design on nanocpu.org (documented here as #NanoCPU.org); I think it's undergoing some renovations at the moment, but I wanted to cite it because it was definitely what got me thinking about diode-based SRAMs again. Here's my take on the same concept - a single-bit SRAM cell using a two-inverter latch as the storage element. All the address decoding and R/W logic is done with diode AND/OR cascades - both for the input and output. This particular version decodes 3 address lines; so it would be suitable for an 8-address memory.

    As with the other designs, both true and complemented address and data lines are required - this costs a few inverters, but this cost is amortized over the number of storage cells. For N address lines, this design requires 3N+10 diodes per bit (less if the latch diodes are built into NOR gates, for example). You can reduce this somewhat if you allow two levels of AND diodes; then the write address decode can be done once, reducing the number of diodes to 2N+10 per bit. This may or may not be a good trade-off depending on what you are using for inverters. I'll have to think about whether this can be made to work with DDL inverters, or if I have to use all the diodes.

    Note that the output logic uses inverted levels so that it doesn't affect the latch; when I first uploaded the schematic, I had it backwards: it's an easy mistake to make. Since the latch has both true and complemented outputs available, it's easy enough to use the opposite output to drive inverted output logic.

    As with the previous ideas along these lines, fan-out will limit the number of cells that can be used without buffering on the address and data lines. Even so, this seems like a decent storage architecture for a diode-only CPU. My previous thoughts had each bit of storage taking a whole DDL01 board (six gates). With this mostly-passive-diode idea, the density improves to store 3 bits per board (plus a bunch of diodes to put somewhere).

  • Diode Full Adder

    Ted Yapo02/07/2017 at 17:05 0 comments

    Of course, if you can do anything with the two-level diode sum-of-products formulation, you can do anything. Here's a shot at a full adder:

    It requires inverted and true inputs for A, B, and CarryIn, and output buffers for Sum, CarryOut and /CarryOut, but that's only 6 inverters. A quick try with NOR gates used 12. With six inverters, it only requires a single DDL01 board per bit in a ripple-carry adder. That's not bad at all. Of course, there's no reason you need to limit the active devices to just diodes, either. Simple transistor inverters would work here, as would relays or other amplifier/inverters, if you're into that kind of thing.

    The operation is simple. The sum output is high if any single one of the inputs is high (three product terms) or if all three are (one product term). The carry output is high if any two or three of the inputs is high (four product terms). An inverted carry out is computed, too, because it's cheaper and faster to do it here than adding another inverter in series to the normal carry output.

    I've convinced myself that with DDL, whose clock speeds are in the low kHz region, the speed of these cascaded diode gates are not an issue, and will greatly simplify and speed construction of a simple CPU. With faster technologies, you would have to re-evaluate this decision.

    This full adder circuit can be connected to form a ripple-carry adder very easily, but there's no reason that a carry-lookahead circuit can't be constructed with the same AND/OR cascade. Maybe a 4-bit lookahead would strike a good balance between speed and number of components. I'll have to take a look at it.

  • Project back from the dead

    Ted Yapo02/06/2017 at 18:41 3 comments

    It's nearly springtime, when a middle-aged man's fancy lightly turns towards thoughts of computers constructed from diodes... Seeing some recent posts (I'll have to look around for the links) made me finally realize that 2-stage diode logic gates with AND followed by OR is functionally identical to the AND/OR matrix found inside PALs, GALs, PROMs, and all the other simple programmable logic out there. See the diagrams on this page for details. In fact, the sum-of-products computed by this AND/OR cascade can compute any function of the input variables. I don't know why it took me so long to realize it. Using this formulation, a ROM with diode-decoded address lines looks like this:

    It's a 16-bit ROM of four words of four bits each. An inverted version of each address line is required as an input. I only connected one diode for each word, but you can get the idea. The inputs are required to sink current, which means reversing the output diodes on DDL gates, but that's very easy to do. You need to choose (or eliminate) the pull-up/pull-down resistors depending on the logic circuits you use to drive/read this array.

    The main problem with this kind of implementation is fan-out. Each address line may be required to pull down a resistor for each word, which could add up quickly. In a practical implementation, address line buffers might be required for every N words - maybe a PCB with the buffers and some power-of-2 words could be made - like a 32-word ROM board.

    Anyway, I finally "got it" with the AND/OR cascade of diode gates. It took long enough :-)

    Now, we need a RAM with a similar design...

View all 3 project logs

Enjoy this project?

Share

Discussions

Dylan Brophy wrote 12/04/2016 at 10:11 point

Do you know how to make NOT, NOR, NAND, and XOR/XNOR gates not only without transistors but also without capacitors, inductors, or relays? Just diodes and resistors. Preferably only GND and some positive volatage. I saw your diode NOR and I cant help but wonder how it can be simplified.

  Are you sure? yes | no

Ted Yapo wrote 12/04/2016 at 14:21 point

Without relays, sure - the diode clock has no relays.  The rest, I don't know.

Tunnel diodes have a negative resistance region, so they can be used to produce gain and make gates and bistables and the like using only DC voltages and resistors, but setting up the correct bias conditions for them is difficult.  There was a lot of interest in making logic from them many years ago, but the parts are basically not made anymore, and if you could find any, they'd be expensive.  I suspect you'd probably need capacitors, anyway.

If you used varactors, which are diodes optimized to behave as (variable) capacitors, would that be cheating?

How about low-value resistors with very long leads?  But those leads get in the way, so maybe you could form them into a spiral of some sort ... every component has *some* stray inductance, these would just have a lot of it :-)

Seriously, though, it's an interesting problem, and fun to think about.  Give it a shot.

  Are you sure? yes | no

Dylan Brophy wrote 12/07/2016 at 02:49 point

Varacitors would be fine.  Also decoupling capacitors would be fine.  I just dont want tons of resistors, and no inductors.  If these could be removed from DDL then a full scale computer at more than a MHz would be easier and there would be less parts to worry about.  You might even be able to remove the RF supply, which I would like.  

  Are you sure? yes | no

Ted Yapo wrote 12/07/2016 at 03:47 point

I don't see how to do it, especially with easily available parts, but who knows.  It might be possible.  I don't think you can remove the RF supply or inductors from the DDL design - PIN diodes only switch RF, not DC, and once you have both DC and RF swimming around in there, you need to inductors to steer DC one way and RF another.  

With a two-terminal device, if you're using one end for a reference (ground), you've only got one lead left for both input and output, so you have to multiplex them somehow.  In the case of DDL, they were multiplexed by frequency - the logic signals at audio frequencies, and the power supply at RF (almost like the old reflex radio receivers https://en.wikipedia.org/wiki/Reflex_receiver) .  Without the RF, you need some other way to separate the input and output signals.  I don't know what that is - phase, somehow, maybe? 

This is all easier with 3-terminal devices, like transistors.  One is common (emitter, base, or collector: take your pick), and you still have two left over for input and output connections.

  Are you sure? yes | no

Yann Guidon / YGDES wrote 12/07/2016 at 04:21 point

"the logic signals at audio frequencies"
Guess what this suggested to my tired grey head-fillings...

  Are you sure? yes | no

Ted Yapo wrote 12/07/2016 at 13:57 point

@Yann Guidon / YGDES 

soundcard supercomputer?

relay percussion synthesizer?

what was it?

  Are you sure? yes | no

Yann Guidon / YGDES wrote 12/07/2016 at 23:00 point

I was thinking of sound synthesis... though I have no clue how to do it and what it would sound like.

  Are you sure? yes | no

Similar Projects

Does this project spark your interest?

Become a member to follow this project and never miss any updates