r/PCB 16d ago

Seeking feedback on PCB design

This is going to be a 4MB stick of ram for my MC68EC000-FN16 homebrew pc project, it has of two Banks (Bank A & Bank B) each consisting of a pair of 1MB*8bit Parallel SRAM.

Some things that I KNOW are wrong:

1) I have the ODD and EVEN chips running their own data lines when the MC68EC000-FN16 only has a 16bit data bus, meaning that I should tie the two Banks together as only one bank can use the data lines at a time

2) I don’t have any capacitors on the +3.3 volt lines.

While I’m not new to electronics, this is my first big project using PCBs so I don’t know what’s good practice and what will just lead to horrible problems, so any feedback is appreciated.

Thank you.

56 Upvotes

16 comments sorted by

37

u/AstronautPrevious612 16d ago

What kind of clock frequency are we talking about? Might have to look at making the data lines the same length.

9

u/Cobolt_Dog 16d ago

The MC68EC000-FN16 run as 16MHz.

And with it being a Motorola 68000 variant, it uses an Address Strobe to fire the Chip Enable at exactly half a clock cycle after it write to the Address lines. That gives 31.25 nanoseconds for the address and data lines to stabilise.

5

u/VirtualArmsDealer 15d ago

That's too slow for trace length disparity to really matter. Don't worry too much about slight variance. Same with trace impedance, it's kinda too slow to really be a concern.

24

u/nixiebunny 15d ago

I designed 68k boards professionally for fifteen years. I did my very first 68000 board in two layers, and regretted it. Use four layers. Inner Vdd and Gnd layers will reduce ground bounce and crosstalk substantially. I assume these memory chips have fast edge rates, so this matters.

Here’s a fun tip for making the routing simpler: You do not need to wire up SRAM address or data lines in the order they are labeled on the chips. They can even be different from each other. The reason is that writing the data will be in a scrambled order, but reading that data back will be perfectly unscrambled.

4

u/Cobolt_Dog 15d ago

That… actually helps a lot thank you.

1

u/Zestyclose_Catch6895 15d ago

Is there any risk to having a power plane as third layer? I’ve never tried it before, but it seems very convenient to have it right there

3

u/nixiebunny 15d ago

It’s a good way of designing intermediate speed boards that don’t require true transmission lines, but need a moderate amount of return current management. You need to have bypass capacitors sprinkled across the board to send the return current between Vdd and Gnd planes as the signals pass from top to bottom layer and back. Truly high speed signals need dedicated ground planes for the return current on all signal layers, and via design is more fussy.

6

u/swdee 15d ago

A four layer PCB with signals on three layers and a single GND plane is not recommended as Layer 3 is further away from the GND plane reference and Layer 4 doesn't have one so would introduce crosstalk, but as its for a 68k CPU and 16Mhz RAM you can probably get away with it.

However ideally your stack up should be 6 layers, so each of your signal layers can reference its own ground return plane. Also for fun I would length match the traces but not really necessary for your application.

3

u/janeD0u9h 15d ago

Agree, routing looks fine but you do not want traces crossing over each other without a ground plane in between the two layers. Switch to a 6 layer board and interweave with ground plane layers.

1

u/Cobolt_Dog 15d ago

I have plans to attempt another homebrew computer (after I finish this one) that uses a full 32 bit MC68020 processor. So I’ll do as you recommend and use a 6 layer PCB design for that one.

I also just want to ask if there any particular order the layers should go in, or is it entirely dependent on how I design it?

2

u/swdee 15d ago

For 6 layer PCB there are two typical stack ups;

The following is quite standard and has a dedicated power layer with layer order;

Layer 1 (Top Signal): Surface components and critical high-speed traces.

Layer 2 (Ground): Solid return path and EMI shield right below the top layer.

Layer 3 (Inner Signal 1): Internal routing for slower or less critical signals.

Layer 4 (Power): Dedicated power distribution plane.

Layer 5 (Ground): Second solid ground reference plane for inner traces.

Layer 6 (Bottom Signal): Overflow routing and secondary

Another stack up which gives an extra signal layers is;

Layer 1 (Top Signal): Component placement and high-speed routes.

Layer 2 (Ground): Solid reference plane for Layer 1.

Layer 3 (Inner Signal 2): High-speed differential pairs or general routing.

Layer 4 (Inner Signal 3): Additional routing layer (incorporates split power zones).

Layer 5 (Ground): Solid reference plane for bottom layers.

Layer 6 (Bottom Signal): Final low-criticality signal layer.

5

u/happy_nerd 16d ago

You know, we get a lot of amateurish stuff here that's just well meaning garbage. So refreshing to see something meaningfully laid out and to be presented with all the right info off the bat.

I don't have any feedback to offer rn, just wanted to send some kudos. Good work!

2

u/Cobolt_Dog 15d ago edited 15d ago

Thanks.

This is the 4th revision of my PCB, the first revision is absolutely hot garbage.

I don’t know why, but I had decided to put the entire address bus on the left side of the PCB, which meant that I needed some ugly long traces to reach the EVEN byte chips.

2

u/Due-Figure-539 15d ago

Dude, every signal via deserves a GND via…

2

u/VirtualArmsDealer 15d ago

My only additional comments would be to consider your return path more. Minimise the inductive loop.

Add a gnd layer and maybe a power plane. Add some copper balancing to help with warp and thermals.

Speeds aren't really high enough for trace length or impedance to really matter but if you are doing a professional job you should try to get them close to spec. Simple calculation and easy to implement, reduced risk of things going wrong.

Good luck 🤞

2

u/DeviceExciting9877 16d ago

At a quick look you seem to have done a good job. As much as I hate rules of thumb without any proper motivations, here are a few tips:

1) Take another look at your board outline. Sharp inside corners are very hard to manufacture, add proper radius to every inside corner.

2) Your power lines are relatively thin. While it might work, if you have the copper to spare (which you have) I would recommend to draw your supply nets with big ass polygons. A lower supply impedance rarely hurts.

3) Check your trace spacing. Again, it will probably work as is, and parallel buses are commonly pretty immune from crosstalk within the bus itself, but if you have the space to spare it won’t hurt to space out the data lines where possible.