Friday, August 31, 2012

Priority Mail: Not a priority

I've placed several orders with Digi-Key and had it sent First Class mail, and it's always arrived after two days. Apparently Priority Mail doesn't get as high a priority as First Class, because after two days my package is sitting in Philadelphia. Not even in the same state. This is annoying because the solder paste is shipped with a "cold pack" to keep it cool, and there's no way it'll stay cool in this heat for three days. *hrumph*

The tracking for my order from Mouser still doesn't show that the USPS has even taken possession of the package. Mouser shows the order as "Complete", so it may be my package will suddenly show up in the USPS tracking system in "Delivered" state.

If it's taking three days for a Priority Mail package to get here from Minnesota, I would expect one from Texas to take at least as long. That means I won't see my Mouser order until Tuesday or maybe Wednesday. *grumble*

Rapid progress

When I ordered a batch of small two-layer boards from them last winter there was a long lag between order acknowledgement and the start of fabrication. Not so with this board.

The order I submitted to PCB-Pool Monday evening specified an eight working-day lead time. Four working days in, the board has already been laminated, drilled, plated and etched. All that's left is the application of the solder mask and silkscreening, and routing the board from the panel. Oh, and the critical electrical test, to make sure the thing is usable.

My guess is that they started it earlier because it's a larger 4-layer board instead of a set of small 2-layer boards, thus requiring more preparation if it failed the e-test. They have a good track record for on-time delivery, and this would be one way to keep it.

They've been sending me photos of the board's progress as part of their "Watch-UR-Board" program. I'll post some of them tonight.

Wednesday, August 29, 2012

Parts ordered

I placed orders with Mouser and DigiKey today for the parts required to build the i4004. To get the best prices I bought all the parts I'll need for all 5 planned boards, plus some spares: 700 BSS83 4-terminal MOSFETs, 1200 FDV301N 3-terminal MOSFETs, 500 4.7K ohm resistors, 100 2.2K ohm resistors, some PC/104-style connectors, and a collection of bypass and charge storage capacitors. I also bought a syringe (yes, that's the way it comes) of solder paste to make the boards easier to assemble.

Monday, August 27, 2012

Ready for Fabrication

The Instruction Pointer board is complete and has been shipped off to Ireland for fabrication. Here's the final layout:

I had a brief scare over the weekend when I checked stock of the FDV301N MOSFET: Mouser was out of stock, and the manufacturer's lead time was 7 weeks! Digi-Key had them in stock, but at a higher price. Fortunately Mouser had them on order already, and a stock check today shows over a quarter million parts available. Whew!

Sunday, August 26, 2012

My first goof

Not my first goof ever... just the first on this project. :-D

When I was partitioning the huge, single sheet, master schematic into separate pages, I tried to separate the circuits according to which board they'd end up on. For the most part I seem to have succeeded, but I just found one signal on the inter-board connector that is generated on the ScratchPad board from global signals but connects only to the Instruction Decode board. There's no reason for this signal, named "SC&M12&CLK2", to be inter-board, and good reason for it not to be.

It's not a big change. It'll move four transistors and two resistors from the ScratchPad board to the Instruction Decode board, and decreases the number of inter-board signals by only one.

I may also move another signal, named "SC&M22&CLK2". This signal needs to be inter-board, as it is used by both the Scrach Pad and Instruction Decode logic. However, it may make more sense to group it with the latter than the former.

ScratchPad Array Placement

I decided to go ahead and place the ScrachPad DRAM array. Aside from being 8x8 instead of 12x4, it's the same layout as I used for the Instruction Pointer DRAM array:

I'm tinkering with the layout of the row select drivers, trying to decide whether I want to stick with the layout I used on the IP board or the new layout I have on the top row here, and if I like the new layout enough to go back and change the IP board. It's almost purely an aesthetic difference, but no one's screaming about schedule on this.

I do wish Eagle allowed you to rotate the view of the layout, because it would be more intuitive to be able to look the decode logic if everything was rotated 90 degrees clockwise. I think I'll go post that as a suggestion.

Scratch Pad Array board

The Instruction Pointer board is now fully routed, with only some sanity checks and the addition of some power plane bypass capacitors on the back remaining. If I find time for it this evening I could send it out for fabrication tonight.

Before I do that, however, I thought I'd start the Scratch Pad Array board and see if that shows any problems with my inter-board connector pinout. The Scratch Pad is very similar to the Instruction Pointer board, with a few exceptions:
  • The array is 8x8 (64 bits) instead of 12x4 (48 bits).
  • There is one 3-bit counter rather than two 2-bit counters.
  • There is less decode logic.
The 12x4 shape of the IP array and the amount of decode logic forced the decode logic to be spread horizontally under the array rather than to the side. This isn't a problem with the SP array which, being square, could be oriented either way. To get a visual aid to layout, I started by taking the standard board layout and drawing in an outline of the 8x8 array on the Tplace layer, which ends up as the top silkscreen. Then I added outlines for the column precharge, the read sense inverters, the 2:1 data muxes, and the row select drivers. Finally I sketched in the 3-bit refresh counter. Here's what it ended up looking like:

Originally I'd thought the array would fit better rotated 90 degrees clockwise, but looking at it this way I've pretty much decided to orient it as shown above.

Surprisingly, this accounts for 64% of the components allocated to this board. I'm not sure yet where the counter will end up, but if need be it'll squeeze into the space below the array by rearranging the stages horizontally rather than vertically. Based on how the layout of the IP board went I doubt I'll have too much trouble fitting in the remaining 36%.

Now I'm debating whether to hold off on ordering the IP board until I finish the SP board, and submitting them both as one order. Depending on whether PCB-Pool will let me submit two boards a one order under their 20% off the first order with their sooper-dooper Eagle ordering button, this could save me $75 in fab costs and $25 in shipping. On the other hand, if I've made a serious design or layout error, I'll end up with two useless boards instead of one. Decisions, decisions...

Friday, August 17, 2012

Latest snapshot

It's been a while since I posted a snapshot. Here's the current layout:

There are 24 airwires remaining, most in the lower right corner where the timing and state "bus" connects to inter-board connector. I've deliberately left things there disconnected because that makes it easier to shift the "bus" without getting diagonals off the proper 45 degree angles. And I do plan to shift the "bus" up somewhat, as the bottom traces are below the edge of the VDD/GND planes on the inner layers.

I'm glad this system operates so slowly. After reading relevant chapters in the book I mentioned in the last post I see serious possibilities for ringing. Fortunately, the partitioning I selected keeps most of the fast signals with push-pull drivers contained within a single board. The major exceptions are the main clocks and the eight phase signals, which are distributed to all boards and run all over the place. The clock and timing board is the last board I plan to build, and I'm willing to add some components to control the slew rates of these signals if need be. It's something I'll definitely look for when I get this board built, because the problem will only get worse.

Tuesday, August 14, 2012


That's the way it is with hobby projects. Sometimes they move rapidly, sometimes they get set aside for a bit in favor of something else.

Along the way I picked up a copy of High-Speed Digital Design, A Handbook of Black Magic, by Howard Johnson and Martin Graham. While the design I'm doing can hardly be called "high-speed" -- the fastest rise-time in the system is about 30ns -- it still gave me a lot to think about. About the only thing I changed was the position of one pull-up resistor, and I suspect I could have done without that. But as I assemble and test the board I'll be better prepared to understand what my tests show.

This evening I did a little bit of work on the remaining bits of the IP board layout. That's mostly connecting the EA and refresh counters to the row select logic, and hooking up the primary inter-board connector. This weekend is going to be busy, but I'm still hoping to send this out for fabrication within a couple of weeks.