I built a flip-flop using 2N3904 transistors. With the inverting output connected to the input, it toggles accurately with clock frequencies reaching 40MHz. It consumes approximately 25mW.

How ECL works

See next post, where I plan to actually do the math and design something better.

Design and simulation

I copied a bunch of schematics I found on the Internet into LTSpice and then played with the values until it worked. This is what I ended up with:

Schematic, MMBT3904 symbol, and MMBT3904 model (from NXP)

The part in the top left generates the threshold voltages. There is a simple buffer for the clock input (so it can be connected to a function generator), and the rest is two latches connected to form a master-slave flip flop.

The Real Thing

I built my flip flop on some copper clad board by cutting out traces with a Dremel and using jumpers where necessary. I used MMBT3904 in SOT-23 and 0603 passives. Here’s how it turned out:

From right to left, the threshold generation, the input buffer, and the flip flop itself.

Verifying the buffer

I first tested the voltage reference and input buffer to make sure they matched the simulations. The buffer with a 10MHz input is shown above (voltage scales are off by a factor of 10 because I used 10x probes without telling the scope). The square wave from my HP 3325A doesn’t look so square at 10MHz, but the output of the buffer has faster edges than the input (~10ns), which is good. The propagation delay is around 5ns on both edges.

Verifying the flip flop

The flip flop worked up to 10MHz square wave, which is the max my function generator can do. It also worked with a 20MHz sine wave input. I measured about 13ns clock-to-data delay. There is clearly some funny stuff going on with the bumps introduced on the buffered clock signal and with the way the output starts to switch on the falling edges of the clock, but it works, and those are also present, although less pronounced, in the simulation.

Pushing the limits

Once I got back to school, I used some fancier equipment to see how high I could push the frequency. The limit was somewhere between 41-42MHz, although I’m sure it depends on voltage and temperature and how the transistors are feeling. At 40MHz it seemed pretty solid, although the waveforms start to look more triangular: The larger swing on the output versus the buffered clock is clearer here with the input/output overlaid. While writing this, I discovered that I had used the same emitter resistors for both latches when building the flip flop. The second latch has only a single level, which means the voltage across the resistor is larger, so a larger current flows through the latch, causing a larger output swing across the collector resistor.