Curious about how complex designs are done - Page 1
Forum section: electronics / general

author: iamseth
author_rank: Newbie
timestamp: October 21, 2019, 11:57:59 pm
content: I’m starting to mess around with PCB design and I can’t help but notice my motherboard which is exposed thanks to the tempered glass case. The complexity is mind boggling to me.How is the complexity managed? What kind of version control is used? How does the labor get divided up? What tools are used for “code” review? How many people might work on a single design? Are there different teams like a PCIe team, a data bus team, etc? Are there unit tests?I'm familiar with software development and I wonder how much is the same when it comes to large projects.Puttering around in KiCad gives me a lot of respect for how these things work. It must take a lot of coordination to get this stuff right.

author: thm_w
author_rank: Super Contributor
timestamp: October 22, 2019, 12:59:18 am
content: You can see some recent videos from Feranec. For most cases, multiple people will be working on their own schematic sheets, these will be combined later to design the PCB. Either this is done by one person, or multiple people will work on separate areas on the PCB to be combined by one person.Altium uses svn/git for version control:https://www.altium.com/documentation/altium-designer/using-version-control-adAs for the teams/unit test/code reviews I can't comment there.

author: peter-h
author_rank: Super Contributor
timestamp: October 22, 2019, 02:28:26 pm
content: PC motherboards are almost totally autorouted.Modern autorouters do a neat job. And you can specify things like equal length tracks.Also PC motherboards, using BGA packages, are using things like buried vias which enable a huge increase in circuit complexity. The PCB costs a lot more, but the volumes are high, and PC motherboards are not cheap.A few bits will be hand routed e.g. the power supply, and maybe the audio chip stuff.I doubt they have a team doing a specific board. This isn't like a million line software project. It is a circuit diagram drawing exercise (much of which is based on reference designs from the chip makers) and then you kick off the autorouter.

author: Ysjoelfir
author_rank: Frequent Contributor
timestamp: October 23, 2019, 10:35:09 am
content: At work we're designing highly complex metrology gear. Each specific section has its dedicated developer, for example all the analog stuff is done by one person, basically from signal input to the output of the ADCs. Then another one designs his signal processing part, basically with "open inputs" expecting the mating signals from the analog person. his processed digital stuff combines also the user interface (another person), display (also), and external digital interface stuff (this he actually does by himself). Another one takes care of the power supply and so on.In the products we design this is relatively easy to do since many of the parts are strictly separeted onto different boards, so only the connectors, their positions and the signals and their connections on the pins need to be discussed, after that everyone can design his own thing. But you can surely use the same approach for single board systems, you just have to carify who gets which part of the pcb to work with.(You may notice that I have generalized a bit, but you get the point.)We route everything by hand btw, no autorouters involved.