6502.org Forum  Projects  Code  Documents  Tools  Forum
It is currently Sat Nov 23, 2024 8:30 am

All times are UTC




Post new topic Reply to topic  [ 27 posts ]  Go to page 1, 2  Next
Author Message
PostPosted: Fri Sep 28, 2018 1:54 pm 
Offline
User avatar

Joined: Wed Aug 17, 2005 12:07 am
Posts: 1250
Location: Soddy-Daisy, TN USA
I'm in the layout and routing stage of my next SBC. This one is quite a bit larger than the others I've done in the past. It's a 2-layer board that also contains some headers (or slots). I got most of the board done with manual tracing (they removed the autorouter in KiCad 5...which may be a good thing for me).

Actually got about 2/3's done when I realized that in order to finish the last 1/3, I would need an obscene amount of via's. I was quite proud that I had almost no via's up to that point. :-)

I also have an Apple IIe motherboard I am studying for reference. I noticed they used the "classic" pattern of horizontal traces on the top layer and vertical traces on the bottom.

Frustrated, I deleted all of my traces to start again. I also moved my components around to try for a better layout. What confuses me is that the A2 seemed to put all of the components upside down (pin 1 facing down). Also, none of the components run perpendicular to each other. They are all parallel (vertically oriented). Which I really like. Having OCD I'm really attracted to things that are symmetrical.

I'm going to take a multimeter and see if I can determine how they ran those traces. In the meantime, do you have any suggestions on how I can achieve something similar?

Board size is obviously an issue but I'm not interested in having a super tiny board. Even if it means costing a little more.

Could I skip the ground traces and just wait until the last minute after I do a ground pour? Then connect them to the pour? Or, should I always do both power traces first?

I did, however, use a much thicker trace for the power lines.

Oh, one more thing...I seemed to notice that the A2 board doesn't have traces BETWEEN pins. Not that I can see. This is even more amazing if you ask me because I was running traces between pins and I still couldn't finish. :-/

Thanks for any tips!

_________________
Cat; the other white meat.


Top
 Profile  
Reply with quote  
PostPosted: Fri Sep 28, 2018 3:15 pm 
Offline
User avatar

Joined: Tue Mar 05, 2013 4:31 am
Posts: 1385
Showing your base schematic would likely help... mainly to see how many chips and their sizes. Clock speed can also play a factor in the layout. For a 2-layer board, the horizontal/vertical separation is common, but you can also mix them a bit... and also have some full traces between pins on the same side. You can look at Daryl's SBC2.5 for a nice clean reference.

The other option is to use a 4-layer board... which would give you a ground and power plane and really simplify the rest of the layout. My last PCB was a 4-layer... and having made 3 completed boards, I don't see myself going back to a 2-layer board for any similar future projects. VIAs are fine in my view... and mostly necessary as well for a good layout. My last project had 349 holes... mostly for components (all DIP) but quite a large number of VIAs as well... around 76 methinks.

Not sure this really helps you that much, but I've also changed physical layout to reduce board trace complexity.. and even changed the pins on a resistor network (SIP) to make the traces shorter and eliminate having to circle around things. The same can be said for logic chips, i.e., 4-gates in a single DIP, you can change which one goes where in the schematic to make the board layout easier/cleaner. There's a lot of things you can do on the schematic that can help reduce the layout complexity, including rotating parts, etc.

_________________
Regards, KM
https://github.com/floobydust


Top
 Profile  
Reply with quote  
PostPosted: Fri Sep 28, 2018 5:38 pm 
Offline

Joined: Mon Aug 05, 2013 10:43 pm
Posts: 258
Location: Southampton, UK
One question: what are you trying to achieve? A beautiful design? Or are you actually struggling to route the board? I was concerned about vias in my boards, but apparently they are never really an issue at single digit Mhz speeds, and probably faster.

Horizontal traces on one side and vertical on the other is a great tool, even if that does mean you end up with many vias. This is especially true when using PLCC (socketed) parts. A 4 layer board is definitely something to think about.

When it comes to beauty I'm in awe of a really good board. Eg. the Amiga 4000 board, with it's 32bit busses and many, many QFPs/PLCCs and it fits on 4 layers. Leaves me with a massive respect for the guys who laid it out. If only my boards looked as good. :(

_________________
8 bit fun and games: https://www.aslak.net/


Top
 Profile  
Reply with quote  
PostPosted: Fri Sep 28, 2018 7:16 pm 
Offline
User avatar

Joined: Fri Dec 12, 2008 10:40 pm
Posts: 1007
Location: Canada
It would be handy to see the schematic.

Some choices might be made with respect to chips too. For instance, GALs are great for glue as the pins can be re-defined to help with layout. As well, substituting 74X245s for 74x244s can help too (just tie the direction line to ground or Vcc as required) or 74x574s for 74x374s. Other chip choices could help too.

Also, remember that address lines and data line are arbitrary for RAM chips. It does not mater how you connect them as long as you don't mix data and address. Data goes to data and address goes to address, but order is arbitrary. It's not so with ROM chips though.

Vias are not much of an issue on 2-layer boards, but they actually are on 4-layer boards. On 4-layer boards they cause discontinuities in the return paths through the ground plane which introduces sudden impedance changes. If they are close together then can also create breaks/slots in the ground and voltage planes which will affect other signals not associated with the one requiring the via. There are a number of rules for using vias in 4+ layer designs and the number one rule is to minimize them. But for 2-layer they are generally fine.

_________________
Bill


Top
 Profile  
Reply with quote  
PostPosted: Fri Sep 28, 2018 7:22 pm 
Offline
User avatar

Joined: Wed Aug 17, 2005 12:07 am
Posts: 1250
Location: Soddy-Daisy, TN USA
Thanks for all of the replies.

Unfortunately, I'm not at my normal computer so I don't have the schematic at hand. But, 90% of it is the 6502 computer on the primer.

http://wilsonminesco.com/6502primer/potpourri.html

I changed a few things about it (added four slots) but it's basically that computer.

Aslak3 wrote:
One question: what are you trying to achieve? A beautiful design? Or are you actually struggling to route the board?


A little of both, actually. Mostly struggling with the design. My design is going to run in the single digit MHz range. I thought about using 4 layer and probably will for my next board. My next board is going to use several PLCC's and surface mount.

I will study some more designs and see what the others look like.

Thanks!

_________________
Cat; the other white meat.


Top
 Profile  
Reply with quote  
PostPosted: Fri Sep 28, 2018 7:24 pm 
Offline
User avatar

Joined: Wed Aug 17, 2005 12:07 am
Posts: 1250
Location: Soddy-Daisy, TN USA
Aslak3 wrote:
When it comes to beauty I'm in awe of a really good board. Eg. the Amiga 4000 board, with it's 32bit busses and many, many QFPs/PLCCs and it fits on 4 layers. Leaves me with a massive respect for the guys who laid it out. If only my boards looked as good. :(


BTW...WOW. I've seen that site before but forgot about it. That's amazing.

_________________
Cat; the other white meat.


Top
 Profile  
Reply with quote  
PostPosted: Fri Sep 28, 2018 8:03 pm 
Offline
User avatar

Joined: Fri Aug 30, 2002 1:09 am
Posts: 8544
Location: Southern California
We have quite a lot of material about this, but I don't know an easy search to group them. A few things:

  • I route the parts as I'm placing them. If you place them and lock their positions down and then try to route it, you'll either find yourself needing more room to get another trace in, or you'll have extra space left over, a bigger board than necessary. Smaller generally means shorter connections, which generally means better high-speed behavior. It's not just for aesthetics or mechanical fit.

  • Ground pours absolutely do not qualify as a ground plane in this kind of work. They often won't hurt anything, but won't really help either. If you're limited to two layers, go ahead and put your power and ground traces in at the beginning (although you can move them a little as necessary to get other traces in later), and then if there's a room left over later to add more, go ahead and do so, making kind of a spider web, or fine mesh, of them. There is a way to use pours to supplement real planes; but if they're not done correctly, they can actually make things worse, according to experts in the field like Rick Hartley, Eric Bogatin, and Suzie Web whose lectures you can see on Altium's YouTube channel.

  • You can get three traces between DIP pads. Make the holes .030" and the pads .050", leaving .050" between. putting three traces through lets you do .007"/.007" trace and space, bigger than the .006"/.006" below which the price starts going up.

  • Don't feel that the removal of the autorouter is any loss. Autorouters are not nearly as intelligent as a human. Their only advantage is speed. I never use an autorouter, after my experience at my last job with OrCAD.

  • Remember that for RAM, you can mix up the address lines, and you can mix up the data lines, if it helps get it routed. You can do it for ROM too, but then you'll need a programming adapter, or you'll need to pre-scramble things in software before programming, so it gets read correctly by the processor. (Oh, I see BDD mentioned this while I got interrupted in writing this.)

  • When you're mostly done, do a via minimization. You'll find places where a trace can go diagonally without crossing another trace, instead of going north for a distance on one side and then taking a via to go west on the other side. Also, there is no reason to limit your angles to multiples of 45°.

Laying out PCBs is part of my job.

_________________
http://WilsonMinesCo.com/ lots of 6502 resources
The "second front page" is http://wilsonminesco.com/links.html .
What's an additional VIA among friends, anyhow?


Top
 Profile  
Reply with quote  
PostPosted: Fri Sep 28, 2018 8:13 pm 
Offline
User avatar

Joined: Wed Aug 17, 2005 12:07 am
Posts: 1250
Location: Soddy-Daisy, TN USA
Thanks for the tips Garth!

Three traces between pads??? Wow. I think one other place I messed up is that in KiCad you can specify design rules and I was way too conservative. I will try to follow the limits set by my PCB house better (JLCPCB). Their specs are:

https://jlcpcb.com/capabilities/Capabilities

So it looks like they can do traces down to 3.5mils for 4+ layer and 5mills for 2 layer. However, I don't know if they have an extra charge when you get that close to the extreme.

Thanks.

_________________
Cat; the other white meat.


Top
 Profile  
Reply with quote  
PostPosted: Fri Sep 28, 2018 8:27 pm 
Offline
User avatar

Joined: Tue Oct 25, 2016 8:56 pm
Posts: 362
If its of use to you, I have a library of 6502-related parts for KiCad here: https://github.com/Alarm-Siren/6502-kicad-library/
Amongst other things, it includes all packages of the modern WDC MPUs, MCUs and Peripheral chips.

_________________
Want to design a PCB for your project? I strongly recommend KiCad. Its free, its multiplatform, and its easy to learn!
Also, I maintain KiCad libraries of Retro Computing and Arduino components you might find useful.


Top
 Profile  
Reply with quote  
PostPosted: Fri Sep 28, 2018 9:18 pm 
Offline
User avatar

Joined: Fri Aug 30, 2002 1:09 am
Posts: 8544
Location: Southern California
cbmeeks wrote:
Three traces between pads??? Wow. I think one other place I messed up is that in KiCad you can specify design rules and I was way too conservative. I will try to follow the limits set by my PCB house better (JLCPCB).

I don't even use the DRC in my CAD. In my dense layouts where I do unorthodox things, it will flag thousands of supposed DRC violations that aren't really violations, just because it doesn't understand what I'm doing. My general feeling is that people try to use the software to replace too much thinking, and as a substitute for knowing what they're doing. I use the X-Y numerical display constantly as I'm doing a layout, and frequently the calculator too. It's a lot of math, but all simple math.

_________________
http://WilsonMinesCo.com/ lots of 6502 resources
The "second front page" is http://wilsonminesco.com/links.html .
What's an additional VIA among friends, anyhow?


Top
 Profile  
Reply with quote  
PostPosted: Sat Sep 29, 2018 7:35 pm 
Offline
User avatar

Joined: Wed Aug 17, 2005 12:07 am
Posts: 1250
Location: Soddy-Daisy, TN USA
Here is a WIP screenshot.

I'm almost finished with the routing! Well, 3/4 done I suppose.

I will post schematics later. Now, I have to head to the movies with the family.

:-)


Attachments:
alpha.png
alpha.png [ 178.78 KiB | Viewed 3585 times ]

_________________
Cat; the other white meat.
Top
 Profile  
Reply with quote  
PostPosted: Sat Sep 29, 2018 8:38 pm 
Offline

Joined: Mon Mar 02, 2009 7:27 pm
Posts: 3258
Location: NC, USA
I would like to give some advice as the design looks clean and will probably work. But I'd be willing to bet, especially with only a 2 layer board and only 1 VCC/GND each to the expansion connectors, that as soon as you start actually plugging in expansion boards you will face failure due to noise issues from the voltage drop...

The advice has been given before, and I'll +1 it: do a 4 layer board. All of them. Your mainboard, and your expansion boards. If you do this, you may get away with only 1 VCC/GND per expansion board since it's slower speed and 5v CMOS.

_________________
65Org16:https://github.com/ElEctric-EyE/verilog-6502


Top
 Profile  
Reply with quote  
PostPosted: Sat Sep 29, 2018 9:53 pm 
Offline
User avatar

Joined: Thu May 14, 2015 9:20 pm
Posts: 155
Location: UK
Looking at what I can see, the supply and 0V/GND tracks need to be wider at the very least. Greater cross section means lower resistance and lower impedance. Aim for these to be at least 3mm wide. But where you have room, go even wider.

Have you ever heard of the star system? Although on a double layer board a true star power and ground system is not practical, some of the principles can be used. Separate high current feeds from more sensitive signal lines where you can. The common point should be at the regulator or bulk decoupling capacitor on the output of the regulator, or where there is no regulator, at the bulk decoupling capacitor connected across the input power terminals. Where possible, the supply and the ground tracks should take a similar route. Try to route both supply and ground so they go the shortest distance to each location. Think of it being a bit like a tree, with branches splitting off the trunk, etc...

On your expansion slots, what is the reason for including the higher order address lines if you have provided address decoded selection signals?

I would add at least two supply and two 0V/GND pins per expansion slot connector. More if you can.

Good luck ;-)

Mark


Top
 Profile  
Reply with quote  
PostPosted: Sun Sep 30, 2018 12:19 am 
Offline
User avatar

Joined: Wed Aug 17, 2005 12:07 am
Posts: 1250
Location: Soddy-Daisy, TN USA
Thanks again, everyone, for the advice. This really helps me learn. I have attached the mostly finished schematics. I may "pretty it up" a little later but you get the idea.

ElEctric_EyE wrote:
I would like to give some advice as the design looks clean and will probably work. But I'd be willing to bet, especially with only a 2 layer board and only 1 VCC/GND each to the expansion connectors, that as soon as you start actually plugging in expansion boards you will face failure due to noise issues from the voltage drop...


I was wondering about that as well. I thought I would put some large caps near the power connector to help with the boards. Also, keep in mind, that this is just a hobby so I'm really curious as to how far I can push it. For example, the first expansion board I plan on making is a serial board (using the NXP). That's one reason I have two resets on board. RESET and /RESET.

FYI, I'm designing a "big board" computer as well. Hopefully, similar to the actual Apple IIe with 8 slots. So this starter SBC will, again hopefully, teach me what not to do.

ElEctric_EyE wrote:
The advice has been given before, and I'll +1 it: do a 4 layer board. All of them. Your mainboard, and your expansion boards. If you do this, you may get away with only 1 VCC/GND per expansion board since it's slower speed and 5v CMOS.


Yeah, 1 MHz is my target speed. I will try and push it to see how far I can get.
I've really considered 4 layer. I wanted a few boards under my belt before I went to 4 layer. But that's only part of the reason. The other is cost. While prices have dropped, a 4 layer board is literally 3 times the cost. Well, maybe not 3 because I could shrink the design down a lot with the extra layers.

On the books is a surface mount design using the '816. I will certainly do 4 layer on that one.


1024MAK wrote:
Looking at what I can see, the supply and 0V/GND tracks need to be wider at the very least. Greater cross section means lower resistance and lower impedance. Aim for these to be at least 3mm wide. But where you have room, go even wider.


I've taken this to heart and I'm making the traces much wider. As wide as I can without major changes to the (mostly) done layout.

1024MAK wrote:
Have you ever heard of the star system? Although on a double layer board a true star power and ground system is not practical, some of the principles can be used. Separate high current feeds from more sensitive signal lines where you can. The common point should be at the regulator or bulk decoupling capacitor on the output of the regulator, or where there is no regulator, at the bulk decoupling capacitor connected across the input power terminals. Where possible, the supply and the ground tracks should take a similar route. Try to route both supply and ground so they go the shortest distance to each location. Think of it being a bit like a tree, with branches splitting off the trunk, etc...


Thanks again. I've heard of the star system, but haven't studied it in detail. Still learning all of this. I will look into it more.

1024MAK wrote:
On your expansion slots, what is the reason for including the higher order address lines if you have provided address decoded selection signals?


Hmmm. Well, truth be told, I included them because that's what Apple did and I like the idea of "full access" to the CPU. I hate to keep bringing up the Apple II, but it really is the design I mostly aspire to learn. The "A" and "B" lines are literally because I had nothing else to put on there. LOL! I so thought..."Hey! Why not give the cards two lines to use for communicating with each other!". Hey, it was a great idea in my head. Although, after reading what you've said, I probably should have made them more power lines.

1024MAK wrote:
I would add at least two supply and two 0V/GND pins per expansion slot connector. More if you can.


Certainly noted for my next design where I plan on using full blown 50 pin edge connectors. I really just want to finish this and move on. But you can bet on the next one, I will follow your advice.

1024MAK wrote:
Good luck ;-)

Mark



Thanks for the encouragement!

My plan is to send this design to the PCB house this week. Depending on how tomorrow turns out. But either way, I expect to have this thing in my hands in a few weeks.


Attachments:
File comment: Schematics (almost done)
Potpourri6502.pdf [138.24 KiB]
Downloaded 139 times

_________________
Cat; the other white meat.
Top
 Profile  
Reply with quote  
PostPosted: Sun Sep 30, 2018 3:07 am 
Offline
User avatar

Joined: Fri Aug 30, 2002 1:09 am
Posts: 8544
Location: Southern California
Further discussion here has reminded me of several posts, topics, and other links that should be helpful.

  • star & spider: viewtopic.php?p=48958#p48958
    And from a related post which was in the context of wire-wrap but still applies here: With CMOS which takes very little power, wire resistance is not the enemy. The enemy is inductance, and the main way to minimize it, if you don't have a true ground plane (and no, copper pours and fills don't qualify, nor does nearby sheet metal that's grounded at one point), is to minimize the wire length. The wire size is not as important. 30AWG wire-wrap wire has 27nH of inductance per inch, and going up to 24AWG (twice the diameter, four times the cross-sectional area) only cuts it to 23nH, so not much difference!

  • Distribution of power and ground pins in the edge connectors: viewtopic.php?p=55094#p55094
    You can see what I did on my 4Mx8 10ns 5V SRAM module on page 2 of the data sheet (.pdf). I know you don't have a ground plane, but with the spider-web kind of arrangement, the distribution will still help.

  • Our topic "Techniques for reliable high-speed digital circuits" (Even if the clock rate is a lumbering 1MHz, fast rise times from ICs that are capable of operating 25 times as high can get you in trouble if you don't pay attention.)

  • In the 6502 primer, the page "Construction: Avoiding AC-Performance Problems," especially the last quarter of the page (as the first 3/4 is geared more toward wire-wrap)

_________________
http://WilsonMinesCo.com/ lots of 6502 resources
The "second front page" is http://wilsonminesco.com/links.html .
What's an additional VIA among friends, anyhow?


Top
 Profile  
Reply with quote  
Display posts from previous:  Sort by  
Post new topic Reply to topic  [ 27 posts ]  Go to page 1, 2  Next

All times are UTC


Who is online

Users browsing this forum: No registered users and 12 guests


You cannot post new topics in this forum
You cannot reply to topics in this forum
You cannot edit your posts in this forum
You cannot delete your posts in this forum
You cannot post attachments in this forum

Search for:
Jump to: