Yeah I am still a little pissed that the competition is still around and we aren’t, and by “we” I mean Commodore Business Machines (CBM). It was Commodore that had the most popular home computer ever in the C64 (27 Million) and it was a team of MOS engineers after all, that had the idea to make a “micro” processor out of a 12 square inch PCB.
Of course they did work at Motorola at the time and “Mot” did not want anything to do with a reduction of the profit margin on the pie-plate size processor. Of course MOS got sued by Motorola but that was an average Tuesday at MOS/CBM. I absolutely credit CBM with buying the MOS Technologies chip foundry, as together we could make our own processors, graphics chips, sound chips, memory controllers, and programmable logic.
With this arsenal at our call we didn’t have to make compromises the way other companies did such as conforming to the bus spec of an industrial standard 6845 or having to add extra logic when a custom extra pin would work. We could also make sprites.
The compromise we did have to make when designing was cost, and I mean the kind of cost reduction where finding a way to save a dollar ($1USD) saved millions in the production run. I knocked $.90USD out of a transformer one day and I couldn’t focus the rest of the day due to elation.
Cost reduction is a harsh mistress however as you can’t just do it a little some of the time or only when you want to. The mental exercise of multiplying anything times a million was always there, it made it hard to buy lunch — I’d be blocking the lunch line while figuring the cost of a million tuna sandwiches FOB Tokyo
To offset stringent cost control we had massive quantity discounts. Calling a local rep to say that we were designing in the recent 16kx4 DRAM was known as “the call”, and inevitably the doorbell would ring 2 minutes after hanging up the phone.
In a rare event we lost our management when [Mr. Jack Tramiel] quit and then later ended up at Atari — picture the Borg knowing everything Cpt. Picard does. During the time of “no management” a couple of things happened: the number of cases of beer consumed on premises skyrocketed, and the engineering department designed a computer to fill the void without direction from management or marketing, at least for a while.
This meant that the design ultimately came from a piece of grid paper instead of a few dozen meetings discussing customer focus and the cost of a million tuna sandwiches. The shopping list included a memory manager and the biggest PLA we had done to date. It should be noted that no one in chip design says “no” or “we can’t do it” at this stage. That’s because we just don’t yet know. But if the engineer making the requests doesn’t want to later be done in by the laws of physics, he/she had better keep the requests within the realm of “almost doable”.
In the Commodore 64 there was a PLA modeled after the Signetics 82S100 which was a “blown fuse” technology for programming a simple AND-OR array. When I say blown fuse I am not kidding, my memory is that part of the parameters was not to blow the fuse using excessive power as it my “splatter”.
Ultimately Commodore and MOS Technologies made their own NMOS version, I won’t say we copied the Signetics part, we just took lots of Polaroids through a microscope and had them mounted to a board. Under the covers we replaced two kinds of fuses, “and term” fuses and “or term”, with a diffusion layer “slug” and also a pre-ohmic contact. It was one-to-one so the code that worked on an 82S100 could be sent over and then someone could run a script to convert. An excellent write up on Commodore’s C64 PLA down by [Thomas ’skoe’ Giesel] embodied in this PDF (also mirrored here).
The PLA is an AND-OR array meaning that each line of terms that are true — they satisfy the logic of “This and That but Not That over there” — are OR’ed together depending on which output you want to affect. OR’ing is like a dogpile, the chip doesn’t care which of the strings of terms caused the true condition, it just knows that one or more did.
We pushed this device for everything it was worth, I had asked for a little over twice the terms which means the array, being twice as big, had twice the resistance and twice the capacitance. This translates to 4 times the RC component. That aside and I also won’t bore with details of how the designer tried to insert a change without telling anybody and shorted all of the input pins to the back bias ring with 2 weeks to go to CES. Simply put we shoved as much into the chip as we could and we wouldn’t have had a viable computer without it. Mass quantity production pricing brought the cost down to pennies and nickels, even after the $2.5million NRE cost to design.
So the PLA was a low cost, high return hit. We smiled. Then we looked at what we call the jungle logic left on the board and our brows furrowed. This collection of gates would be prime candidates for the Programmable Logic Device (PLD) of the day, especially in the area where we were trying to make a 6502 microprocessor play nice with a Z80 microprocessor all while not blowing the DRAM up. It would also have been ideal for the final stages of FCC application where you can only make minimal visible changes to the board without re-submitting. There was no joy in Mudville however, as the price of PLDs was prohibitive at $4-$5USD. Buying large quantities didn’t result in large discounts, just large bills and logistics issues such as programming them. At this point I got my hands on a confidential stock and price sheet and picked the jungle logic from what was already in stock providing there were hundreds of thousands available of any one part.
What made the PLA powerful was it was relatively fast since the internal array was small, and there was the addition of registers and feedback terms which are the ingredients of State machines (we will discuss Mealy and Moore state machines at a later date.) I believe CBM/MOS did try to do an NMOS version of the PLA but the limitations of the NMOS process limited usability. In the next installment — which will be published early tomorrow — I talk about more modern Complex Programmable Logic Devices and program one from start to finish. Instead of doing gate reduction, the modern devices quite simply allow a designer to implement macro functions at any quantity that simple couldn’t be done otherwise as “jungle logic” would be too slow and error prone.
25 thoughts on “Programmable Logic I – PLA/PAL”
No Jethro Tull/Frank Zappa T-shirt this time? Was expecting King Crimson or something! Anyways a nice article, too bad you didn’t make the second part of diodes, might have been interesting.
Heh, you just can’t see them in most shots, except when I shoutout Spaceskull. Watch for Part 2 on Thursday.
The photo of the team at MOS was printed in EETimes August 1975 (http://commodore.ca/wp-content/uploads/2013/03/mos_6501_6502_team_eetimes_august_1975.pdf) and is pretty famous in “6502 land”, but unfortunately it was accidentally printed in mirror-image (someone put the negative into the rasterizer upside down). The caption reads:
“From left to right are layout designers Sydney-Anne Holt, Michael Jaynes, Harry Bawcom, design engineers Chuck Peddle, Ray Hirt, Rodney Orgill, William Mensch and Wilbur Mathys. Seated is product manager Terry Holdt.”
Obviously Chuck Peddle is 4th from the RIGHT and Bill Mensch is 2nd from the LEFT in this version.
We had an internal picture that I doubt will ever see the light of day- It was the entire PET team standing around in a typical Silicon Valley shot. Then as the people left thier outline would carefully be blacked in with Sharpie(TM), they looked like people shaped holes. Last I saw it only Mike Angelina (head of IC layout) and Yash Terakura (no simple description for Yash, he was Yash the wise and holy) were left.
I find fascinating reading about those times when engineers had direct control and knowledge of what electrons and bits were doing. More of this, please.
Great writeup. It’s like Halt and Catch Fire sans the embellishments and random gay makeout scene.
I sometimes take a step back and wonder at our own ability to keep up with the technology race, given where we started and where we are now. If you weren’t there, you won’t understand the complete bafflement that we feel sometimes now, when you think back to 48K RAM being a huge machine, 10MB hard disks being a luxury and processors running at a whopping megahertz or two.
That was real programming, really. You had to do so much with so little and it is very impressive what has been done with that little.
Nowadays, if our program is too bloated, just add more memory!!
>it is very impressive what has been done with that little.
And modern software is just as impressive if you actually think about it instead of going on a nostalgia trip. Yeah, complex (for the time) programs written in assembly are cool but just look at all of the stuff a device that fits in your hand can do these days.
>Nowadays, if our program is too bloated, just add more memory!!
Memory is relatively cheap now. There’s no need to write code in a way that is totally unmaintable to save a few bytes of memory anymore.. And you know people that actually develop code use tools to work out where they are wasting or leaking memory so don’t be so quick to accuse people of being lazy.
From 30+ years in the industry I can say from experience:
“Those who can, do. Those who can’t, carry on like whiny little bitches….”
Thanks for clarifying (again) which camp you’re in. xx
Well, now… is your butt sore or something?
Please write a book. CBM was at least as great as IBM from an engineering view. I’ll be glad to buy it
read Commodore: A Company on the Edge if you haven’t already, its different but still interesting..
A project that stays at the back of my mind for years now is a C64 with the custom chipset, but modern SRAM, flash, and programmable logic for all the staple chips (even the VIAs could be thrown in there.) Just to see how small the C64 could really get while still maintaining it’s (yeah, I used an apostrophe on purpose there) ‘charm’ that is completely lost in emulation.
Bill, you guys did phenomenal work that is beyond measure. But keeping the backwards compatibility to bitbang the 1541 from C64 was probably the worst thing you could have possibly done. That aside, the 8-bit competitors used MOS chips and that just shows how awesome your stuff was. :-D
I miss Commodore’s edge in the computer world. Ever since my first VIC-20 (I still have 3 of them), and my C64C (flat 64), I have admired the engineering and fun it made working on computers. I still tweak my 1541 every year to keep it under alignment. You guys made a kick ass machine, and I am VERY proud to have been a Commodore User as well. ;)
Awesome article! Keep ’em coming, Bill!
Strangely enough, only last week I got the old programmer out to blow a couple of 22V10s .. using them to turn an old 16-bit parallel DAC into an SPI-equipped DAC so I can interface it to an AVR without using up all the I/O.
Cost cutting at CBM were not always a good thing. They allowed a few bugs to get in and prevented early disk drive from having fast serial with V-20 and 1540. C64 was supposed to have burst-like transfer rate with 1541 but someone ripped out a high speed line and another bug cripped the pair to even slower rate. They finally got it right with 128 and 1571 but that took many years and many 3rd party companies got to make money off fast loader carts.
I really enjoy these Bil Herd videos. I would totally subscribe to your YouTube channel.
wow i was expecting something that would pander to people who barely can use an arduino but i was happily surprised!
quite possibly one of the best videos on the 128 ever. Thanks!
The building MOS was in, taking in 2013
Please be kind and respectful to help make the comments section excellent. (Comment Policy)