4
\$\begingroup\$

Simple question, the curiosity is killing me. Why do microcontrollers (and other IC also, like RAMs) have pins not grouped together?

Like in STM32, for example you have portA and it has 8 bits on one side of IC and the other 8 bits at the opposite corner of IC... Why? It make routing PCB much harder. What is the reason or purpose of such alignment? Why couldn't they put it next to each other? And why do 32-bit uCs (like STM32) have 16-bit wide ports, when they could have 32-bit wide?

The same goes with RAMs - address pins and data pins are scattered almost randomly over the IC. Why?

Inside the IC there are plenty of routing layers, so what's the reason they couldn't add one more to group pins in some logical order?

\$\endgroup\$
  • 2
    \$\begingroup\$ Maybe you wouldn't mind spending a dollar or two extra for eliminating your layout nightmares, but if you're building a million widgets, that $2M might well keep you from getting it to market with an attractive price tag. \$\endgroup\$ – EM Fields Nov 22 '15 at 20:37
  • 1
    \$\begingroup\$ @zupazt3 - "So you are really telling me that the only reason for this is either money or the fact that they can't desing it?" Yes. These folk are in it for the money. They have determined that the extra resources required to produce a "rational" pinout would not be recouped by better sales. Sorry. And "their IC will be choosen more often because of easier development process for PCB desinger " just isn't true. PCB designers deal with enough other issues that nominally simpler routing just doesn't enter into it. Plus, of course, the IC folk don't know exactly what rationalization would work. \$\endgroup\$ – WhatRoughBeast Nov 22 '15 at 21:02
  • 1
    \$\begingroup\$ @zupazt3 - "And why 32-bit MCUs have 16-bit wide ports?" Because almost nobody has much use for 32-bit wide ports. UARTs are 8 bits, and so are Ethernet and fiber interfaces. ADCs and DACs are almost always 16 bits or less (and most are serial IO these days, anyways). Graphics just doesn't go to more than 16-bit color depths. The small number of applications which might need 32 bits are so small that it's much more efficient to leave them to specialty interfaces. \$\endgroup\$ – WhatRoughBeast Nov 22 '15 at 21:10
  • 2
    \$\begingroup\$ Keep in mind that MCU ports aren't typically used for byte-wide bus interfaces (these are not 8031's executing from external EEPROM) but rather in most applications a bit or three for this, and a bit or three for that. \$\endgroup\$ – Chris Stratton Nov 22 '15 at 21:45
  • 1
    \$\begingroup\$ Ok, thank you all for your answers. Now I can rest assured knowing that there is purpose and logic in all this alingment ;) And surely I am not a IC designer, just a hobbyist. \$\endgroup\$ – zupazt3 Nov 22 '15 at 22:33
7
\$\begingroup\$

In RAM chips, you often want all address/data lines to have the same length (the shorter the better), so that the signals travel along simultaneously and the clock frequency could be higher. Address and Data lines have to cover the entire area of the chip, so they are grouped by the physical location of the storage cells they feed, not by logical function.

Heterogeneous devices like micro-controllers have different kind of constraints. Some signals could interfere with each other (like a clock and a sensitive ADC) and cannot go to adjacent pins. Furthermore, distributing similar pins of both sides of the chip can actually improve routing of the PCB. Chances are, the chip will sit in the middle and have to talk to neighbors on both sides. Having all similar pins on one side would make PCB routing a nightmare.

\$\endgroup\$
0
\$\begingroup\$

Also there is a lot of history involved.

Many chip layouts are designed to be a close match for previous generation chips so they can be used optionally on the same or next board revision. The 1 kB to 64kB ROM/PROM/SRAM/EPROM/EEPROM chip layouts spanned many generations and the early generations had chip design restrictions that are long forgotten.

The chip designers take cognisance of what customers want and if customers only purchased chips with neatly ordered data and address pins then that is what would be in the shops. As it is the layout maybe exactly what people want and this may not be obvious without years or experience routing boards to save a few cents here and there.

Modern Gate arrays that allow designers to pick almost any pin for any function have made board routing simpler but it can never be a one to one match for every combination of random chips a designer uses.

The large bulk of 16 bit systems used 8 bit memory for a long time as it was the standard available. It is cheaper to put in a bigger 8 bit chip than two smaller 8 bit memories just to get a 16 bit bus width. The same way you save 32 pins on the chip carrier if you multiplex your 64 bit data into two cycles instead of trying to have everything on the bus wired for 64 bits when some of the buses, chips or peripherals cannot even use 64 bits. But more importantly if you can multiplex the data lines (address lines in dynamic RAM are also often multiplexed) you can save a lot of pins and this saves a lot on board routing and size and chip size and cost and and and.

\$\endgroup\$

Your Answer

By clicking “Post Your Answer”, you agree to our terms of service, privacy policy and cookie policy

Not the answer you're looking for? Browse other questions tagged or ask your own question.