A computer is, at its core, just a bunch of transistors wired together. Once you have enough transistors on a board, though, one of the first layers of abstraction that arises is the Arithmetic Logic Unit. The ALU takes in two sets of data, performs a chosen math function, and outputs one data set as the result. It really is the core of what makes computers compute.
An ALU is built into modern processors, but that wasn’t always how it was done. If you’re looking to build a recreation of an early computer you may need a standalone, and that’s why [roelh] designed an ALU that fits in a square inch piece of circuit board using five multiplexer chips and two XOR chips.
One of the commonly used components for this purpose, the 74LS181 ALU, is not in production anymore. [roelh’s] ALU is intended to be a small footprint replacement of sorts, and can perform seven functions: ADD, SUB, XOR, XNOR, AND, OR, A, B, and NOT A. The small footprint for the design is a constraint of our recent contest: Return of the Square Inch Project. Of course, this meant extra design challenges, such as needing to move the carry in and carry out lines to a separate header because there wasn’t enough space on one edge.
Exploring the theory behind an ALU isn’t just for people building retrocomputers. It is integral to gaining an intuitive understanding of how all computers work. Everyone should consider looking under the hood by walking through the nand2tetris course which uses simulation to build from a NAND gate all the way up to a functioning computer based on The Elements of Computing Science textbook.
If you’re a homebrew computer builder, it might be worthwhile to use one of these ALUs rather than designing your own. Of course, if building components from scratch is your thing we definitely understand that motivation as well.
One of the things that every student of digital electronics learns, is that every single logic function can be made from a combination of NAND gates. But nobody is foolhardy enough to give it a try, after all that would require a truly huge number of gates!
Someone evidently forgot to tell [Notbookies], for he has made a complete 8-bit ALU using only 4011B quad NAND gates on a set of breadboards, and in doing so has created a minor masterpiece with his wiring. It’s inspired by a series of videos from [Ben Eater] describing the construction of a computer with the so-called SAP (Simple As Possible) architecture. The 48 4011B DIP packages sit upon 8 standard breadboards, with an extra one for a set of DIP switches and LEDs, and a set of power busbar breadboards up their sides. He leaves us with the advice borne of bitter experience: “Unless your goal is building a NAND-only computer, pick the best IC for the job“.
We have covered countless processors and processor components manufactured from discrete logic chips over the years, though this makes them no less impressive a feat. The NedoNAND has been a recent example, a modular PCB-based design. TTL and CMOS logic chips made their debut over 50 years ago so you might expect there to be nothing new from that direction, however we expect this to be well of projects that will keep flowing for may years more.
Why on earth would you want an oversized replica of an outdated logic chip from nearly five decades ago, we hear you ask? The answer lies in education. If you were to embark on learning about the internals of a microprocessor by taking a modern example such as the one that powers the device on which you are reading this, you would find it to be a daunting task. Over six decades of progress in computer technology have delivered the performance enhancements that put a supercomputer in your smartphone, but at the expense of a contemporary microprocessor being an extremely complex machine which you can’t peer into for any level of understanding.
The starting point for the student of microprocessor internals often lies in the past. The technology of the early 1970s holds the fundamentals from which a modern processor can be understood, but remains simple enough to grasp in its entirety as a beginner. Registers, instruction decoders, counters, and an arithmetic/logic unit, or ALU. And for decades the 74181, as an all-in-one 4-bit ALU on a chip that you might have found in a minicomputer at the turn of the 1970s, represented the most convenient way to teach the operation of these devices. Electronic engineers and computer scientists of all ages will have encountered them as they gained their qualifications.
The PCB version of the 181 faithfully follows the original, but with modern 74LVC gates laid out as they would be in the circuit diagram of the chip, and LEDs to show logic state at the different parts of the circuit. Thus when it is used to teach ALU operation it can show every part of the device in detail in a way a real 74181 would never have done.
[Irene Posch] is big into knitted fabric circuits. And while most of the textile circuits that we’ve seen are content with simply conducting enough juice to light an LED, [Irene]’s sights are set on knittable crafted arithmetic logic units (ALUs). While we usually think of transistors as the fundamental building-blocks of logic circuits, [Irene] has developed what is essentially a knit crochet relay. Be sure to watch the video after the break to see it in construction and in action.
The basic construction is a coil of conductive thread that forms an electromagnet, and a magnetic bead suspended on an axle so that it can turn in response to the field. To create a relay, a flap of knit conductive thread is attached to the bead, which serves as the pole for what’s essentially a fabric-based SPDT switch. If you’ve been following any of our relay-logic posts, you’ll know that once you’ve got a relay, the next step to a functioning computer is a lot of repetition.
How does [Irene] plan to display the results of a computation? On knit-and-bead flipdot displays, naturally. Combining the same electromagnet and bead arrangement with beads that are painted white on one side and black on the other yields a human-readable one-bit display. We have an unnatural affinity for flipdot displays, and making the whole thing out of fabric-store components definitely flips our bits.
Anyway, [Irene Posch] is a textile-tech artist who you should definitely be following if you have any interest in knittable computers. Have you seen anything else like this? Thanks [Melissa] for the awesome tip!
You will all no doubt be familiar with the 74 series logic integrated circuits, they provide the glue logic for countless projects. If you look back through old listings of the series you’ll find alongside the familiar simple gates a host of now obsolete chips that reveal their roots in the pre-microprocessor computer industry of the late 1960s, implementing entire functions that would now be integrated.
One of the more famous of these devices is the 74181, a cascadable 4-bit arithmetic logic unit, or ALU. An ALU is the heart of a microprocessor, performing its operations. The 74181 appeared in many late-60s and early-70s minicomputers, will be familiar to generations of EE and CS students as the device they were taught about ALUs on, and can now be found in some home-built retrocomputers.
[Ken Shirriff], doyen of the integrated circuit teardown, has published a piece taking a look at the 74181, in particular at its logic functions and the reason for some of them that are rather surprising. As well as the normal logic functions, for example the chip can do “(A + B) PLUS AB“. Why on earth you might think would an ALU need to do that?
The answer lies in the way it performs carrying while adding, a significant speed-up can be achieved over ripple carrying along a chain of adders if it can be ascertained whether a bit addition might generate a carry bit. He explains the function required to perform this operation, and suddenly the unusual extra function makes sense. Addition is transformed from a serial process to a parallel one, with a consequent speed increase.
It’s one of those moments in which you have to salute those logic designers from an era when on-chip real-estate was costly and every ounce of speed had to be teased from their designs. Give it a read, and have a go at the interactive 74181 simulator further down [Ken]’s page. We learned something from the article, and so may you.
We have most recently seen [Ken] at work explaining his decapping and reverse engineering process at the Hackaday SuperCon followed soon after by his work on the 8008. That chip is crazy with complexity and a die-ogling noob (like several of us on the Hackaday crew) stands no chance of doing more than simply following along with what he explains. This time around, the 74181 is just right for the curious but not obsessed. Don’t believe me? The 8008 had around 3,500 transistors while the friendly 74181 hosts just 170. We like those odds!
A quick crash course in visually recognizing transistors will have you off to the races. [Ken] also provides reference for more complex devices. But where he really saves the day is in his schematic analysis. See, the traditional ‘textbook’ logic designs have been made faster in this chip and going through his explanation will get you back on track to follow the method behind the die’s madness.
[Ken] took his own photograph of the die. You can see the donor chip above which had its ceramic enclosure shattered with a brisk tap from a sharp chisel.
Every few years, someone on the Internet builds a truly homebrew CPU. Not one built with a 6502, Z80, or a CPU from the 80s, either: one built completely out of 74-series logic chips or discrete transistor. We’re lucky enough to have [Alexander] document his build on Hackaday.io, and even luckier to have him enter it into this year’s Hackaday Prize. It’s an 8-bit computer built completely out of NAND gates.
Computers are just logic, and with enough NAND gates, you can do anything. That’s exactly what [Alex] is doing with this computer. It’s built entirely out of 74F00 chips – a ‘fast’ version of the ubiquitous quad 2-input NAND chip. The architecture of this computer borrows from the best CPUs of the 70s and 80s. The ALU is only four bits, like the Z80, but also uses the 6502 technique where the borrow is an inverted carry. It’s a small instruction set, a 2-stage pipeline, and should be able to compute one million instructions per second.
Designing a CPU is one thing, and thanks to Logisim, this is already done. Constructing a CPU is another matter entirely. For this, [Alex] is going for a module and backplane approach, where the ALU is constructed of a few identical modules tied together into a gigantic motherboard. [Alex] isn’t stopping at a CPU, either: he has a 16-byte ROM that’s programmed by plugging diodes into holes.
It’s an amazingly ambitious project, and for entering this project into the 2016 Hackaday Prize, [Alex] already netted himself $1000 and a trip to the final round of competition.