Tuesday, October 13, 2015

Puzzling out the Bootstrap Load

One of the sub-circuits in the 4004 that has always confused me was the so-called "bootstrap load". It's depicted in the schematic as a resistor with a "B" next to it, but the legend gives more detail. Remember here that I'm a software engineer and have no formal training in electrical engineering, let alone materials science.

i4004 Schematic Legend
Researching the construction of integrated circuits reveals that true passive resistors can take up a significant amount of silicon area, while transistors are usually smaller. By careful design of the transistor, it's possible to create a small transistor that acts pretty much like a passive resistor. Thus the legend indicates that what is shown on the schematic as a pull-up (or "load") resistor is really a single MOSFET with its gate and drain connected to VDD.

However, the "bootstrap load" circuit shown at the bottom is more complicated. It consists of two MOSFETs and a capacitor. How does this thing work? I made the assumption that bootstrap load was used when a faster rise-time was needed, but I really didn't understand how this circuit worked.

Wednesday, June 12, 2013

Why did I stop ordering from you?

This evening I received a phone call from a California phone number that I didn't recognize. I was busy at the time and let it go to voicemail. About 10 minutes later my phone beeped to announce an incoming email.

It turned out to be from a sales rep from a board house wanting to know why I "stopped" ordering from them. The answer is easy: I placed one order with them, and they screwed it up. Then they argued with me about whether they'd screwed it up when all they had to do was compare the Gerbers with the board they delivered. There's an obvious difference when the pads for an SMD are missing, leaving only the stubs of the traces that are supposed to connect to them. Especially when the customer is telling you where to look.

Oh, but they've "invested $45 million" in the last 10 years upgrading their equipment and carry ISO this and ISO that certifications. Their new brochure looks nice, but did they also replace the customer service people? Reputations are easy to tarnish and hard to rebuild, and I have no incentive to give them another try.

(Also, their prices are almost double that of the European board house I've been using, and their product is gorgeous).

Saturday, June 8, 2013

P-Channel Experiments

A month or so ago I was discussing with Tim McNerney how a P-channel version of the i4004 might be constructed using the BSS84DW dual-FET. Recently I ordered some parts from Digi-Key for another project, and added 10 of these parts and prototyping adapters for them. It's painful when the FETs cost $4 and the adapters $16, but there's no way to experiment with them without the adapters or other PCB.

This afternoon I found time time to play around with them. I set up cascade of BSS84DWs as inverters, much as I did with the FDV301Ns earlier. The PIC I'm using to generate the input to the cascade can't run at 15V, but the input only needs to rise above the Vgs(th) of the first FET. Since the BSS84DW is a P-channel device, "above" is actually negative. To achieve this I connected one lead of the FET pairs to the +5V output of my bench supply and a pull-up resistor between the other lead and the -10V supply output. This means the FETs see 15V across them, just as with a real i4004. From the FET's point of view, the PIC pulls the Gate lead to Vss when it outputs a "1", and to -5V when it outputs a "0".

Propagation lag through each stage using 4.7K Ohm pull-up resistors is a respectable 48ns. A similar chain using FDV301Ns has a propagation lag of 58ns, but with a Vdd of only 5V there's only 1/3rd of the current available to charge the gate capacitance. Switching to 1.5K Ohm pull-ups gives the FDV301N chain a lag of only 18ns, which makes sense given its significantly lower gate capacitance. This suggests an implementation using BSS84DW FETs would probably draw about three times the current as my current design.

Thus far I've only mounted 5 of my 10 BSS84DWs. I can't imagine doing this without a microscope -- these things are just freaking small: 1.30 x 2.15 mm. With leads on 0.65mm centers I didn't even try to solder them even with my finest iron. Instead I immediately went to solder paste and hot air. This makes things so much easier, as the surface tension of the melted solder causes the whole package to shift so the leads align perfectly with the pads. PCB routing of a board based on these would be a challenge, as there's no room to run traces between the pads: the recommended footprint leaves only 0.23mm (~9 mils) between the edges of adjacent pads.

Eventually I'll get around to mounting the rest of these, and maybe I'll try to breadboard a DRAM cell with them.

Sunday, April 21, 2013

ALU and ID board progress

I don't know what I did to annoy my sinuses, but I haven't been able to breathe through my nose all day. This has really put a damper on my plans for the day, as I really haven't wanted to be far from a box of tissues. Since I'm otherwise clear-headed, I parked myself in front of my computer and worked on the layouts.

The ALU board now has only 161 airwires remaining, of which 21 go to GND and 11 to VDD. That's down significantly from 560/141/79 on Friday. I don't think I want to do much more with it until I pin-out the remaining inter-board connections. In order to do this I need to work on the Instruction Decoder board.

The ID board didn't have a power plane defined, so very few of the VDD connections had been made. I rectified that, then spent some time adding short stubs and vias. It now has 182 airwires remaining, of which 64 go to GND and 28 to VDD. That's down from 622/322/109 two weeks ago.

While the ALU board has a few channels with clusters of vertical signal traces on the VDD plane, the ID board has lots of vertical signal traces spaced across the board. There are also pull-up resistors in many of the gaps, so current will be drawn through these narrower areas. This will require some attention to make sure I don't end up with islands.


There hasn't been much visible change unless you look really closely, so I won't bother posting pictures today.

Saturday, April 20, 2013

ALU board power plane

With 560 airwires still unrouted, I'm clearly not done with the ALU board. But there's enough to see how the long vertical signal traces break up the power plane, yet leave wide top-to-bottom paths to supply VDD.


At least you'll be able to see it if you make the image large enough! The original is 2560 x 1569 pixels (shrunk to 1600 x 980 by BlogSpot) so there should be plenty of detail.

If this was a truly high-speed logic board with fast rise times, the current would have to detour around the the long vertical breaks in the plane rather than being able to follow the same path as the horizontal signal traces (not shown here). To work around this I'd need very low impedance bypass capacitors between VDD and GND to allow the current to jump to the unbroken ground plane. Or so sayeth the book -- I don't have the personal experience to be able to vouch for it.

I'm actually making pretty good progress on this board, though at this rate it'll be at least another month before I have the ALU and ID boards ready to send off to PCB-Pool for fabrication.

Friday, April 19, 2013

Power planes revisited

This posting has been rewritten for clarity.

This evening, while sitting at a stoplight, I was mentally reviewing the various techniques for routing power and ground addressed in High-Speed Digital Design, A Handbook of Black Magic. One of the techniques mentioned was the "power and ground grid" (pg. 197), where ground traces run horizontally between ground busses along the vertical edges, and the power traces run vertically between power busses along the horizontal edges. The authors of the book do not favor this technique for a variety of reasons they explain in detail. But then they're writing about systems with rise times of 1ns or less, and that's an entirely different world.

In my case, the fall times of my signals are short, measuring just a few nanoseconds on my breadboard. On the breadboard I've seen situations where signals fall well below ground level, rebound to almost +1V (uncomfortably close to Vgs[th] for the the FDV301N), then fall back to ground. Probing the Instruction Pointer board, with its unbroken ground plane, has shown none of that nonsense. This argues strongly for an unbroken ground plane for the other boards.

In contrast, the rise times of my signals are quite long. The fastest of the rise times seem to occur in circuits like that to the right, where a B-type pull-up resistor (2.2K in my implementation) drives the high-side of a push-pull driver. Even in this circuit, though, the rise time is about 25ns from ground to +1V and follows an RC curve above that. This suggests that routing power as in the "power and ground grid" technique wouldn't cause a problem.

While contemplating the best way to achieve this, the most obvious solution in the world came to mind. Deciding that I don't need a power plane is different than having to route power traces individually. All I have to do is be careful when routing signals on this layer to avoid creating any islands or placing VDD vias in narrow areas.

Sunday, April 14, 2013

Disappearing parts

It might seem like I'm a bit paranoid about single-source parts like the NXP BSS83. When I decided to actually build the discrete-part 4004 CPU, one of the first things I did was order enough of all the parts I'd need to build the whole project, plus extras for goofs. Since then I've received several courtesy notices from DigiKey about parts becoming obsolete, but all of them would be easily replaceable if I'd needed them. But I already have everything except the PCBs.

I have another project going which involves very low power RF circuits. It's another one that I started a couple years ago and work on in fits and starts. My plan was to build 5 or 6 of these little devices, and I carefully acquired what I thought would be the critical bits. I'd had 6 PCBs made and assembled two. This evening I decided to assemble another three for a larger-scale test. The only thing I don't have on hand are the #6-32 nylon screws that hold the PCB to the plastic case, so I went over to my local big-box hardware store where I'd bought them before. They no longer carry them. They didn't sell enough of them to waste the shelf space on them.

Why nylon? Metal has a way of detuning tuned electronic circuits so I don't want metal screws that close to the antenna.

This is not a major catastrophe. I can get suitable screws elsewhere. The big-box store will even let me order them in reasonable quantity and deliver them for pickup at the store at no cost -- with a 10-day lead time. But I wanted them tonight.

The moral of the story is that it's a really good idea to buy everything when you start, because you never know what will disappear or become harder to get.