FPGA 6800 Uses Python Toolbox

Usually, when you think of designing — or recreating — a CPU on an FPGA, you assume you’ll have to use Verilog or VHDL. There are other options, as well, but those are the biggest two players in FPGA configuration. [Robert Baruch] has a multipart series where he uses nMigen — a Python toolbox — to recreate a 6800 CPU like the one used in many vintage video games and pinball machines.

Unlike some tools that try to convert software written in some language to an FPGA configuration, nMigen uses Python as a scripting language to create code in FHDL. This is similar in concept to VHDL or Verilog, but gives up the event-driven paradigm, opting instead to allow designers to explicitly call out synchronous and combinatorial logic.

Continue reading “FPGA 6800 Uses Python Toolbox”

This CPU Has Only One Instruction

Most of us will be familiar at some level with the operation of a basic CPU, usually through exposure to microprocessors of the type that find their way into our projects. We can look at its internal block diagram and get how it works, see the registers and ALU, follow the principles of a von Neumann architecture, and understand that it has an instruction set with different instructions for each of its functions. We all know that this only describes one type of CPU though, and thus it’s always interesting to see alternatives. [Ike Jr] then has a project that should provide a lot of interest, it’s a CPU that only has a single instruction. It can only move data from one place to another, which seems to preclude any possibility of computation. How on earth can it work?

The machine has a set of registers as well as memory, and it achieves computation by having specific registers where we might expect to see instructions. For example the AND register is a two-position stack, that when it is full computes the AND of its two pieces of data and places the result in a general purpose register. The write-up goes into significant detail on the CPU’s operation, and while it’s unlikely the world will move en masse to this architecture it’s still a very interesting read. For now this is a machine that exists in software simulation rather than in silicon, and he’s working to release it so enthusiasts for unusual CPUs can have a go.

The idea of having registers that compute reminds us of a transport triggered architecture machine, being not the same as a one instruction CPU with a more conventional computing instruction.

Abstract PCB header image: Harland Quarrington/MOD [OGL v1.0].


There was a time when SPARC CPUs were the sole realm of pricey Sun workstations, but now you can put one on an FPGA with just a little trouble. The problem is you need a fairly big FPGA which isn’t always cheap unless someone goes out of business and you get lucky. [Ttsiodras] picked up a Pano logic thin client. Pano went under and their entire inventory is out on the surplus market at cheap prices. With a little FPGA magic, you can turn a few bucks into a SPARC-based computer.

The insides of the workstation have a Spartan 6 FPGA inside and you’ll need to solder in some JTAG wires, but that shouldn’t put anybody here off.  Of course, the Spartan 6 isn’t the newest tech so you’ll have to get an old version of the Xilinx tools but that’s not hard either. However, there is a strange irony you’ll need to be aware of if you use Linux.

Continue reading “SPARC CPU In A Cheap FPGA”

Proprietary Fan Blows, Gets PWM Upgrade

Proprietary components are the bane of anyone who dares to try and repair their own hardware. Nonstandard sizes, lack of labeling or documentation, and unavailable spare parts are all par for the course. [Jason] was unlucky enough to have an older Dell computer with a broken, and proprietary, cooling fan on it and had to make some interesting modifications to replace it.

The original fan had three wires and was controlled thermostatically, meaning that a small thermistor would speed up the the fan as the temperature increased. Of course, the standard way of controlling CPU fans these days is with PWM, so he built a circuit which essentially converts the PWM signal from the motherboard into a phantom thermistor. It’s even more impressive that it was able to be done with little more than a MOSFET and a Zener diode.

Unfortunately, there was a catch. The circuit only works one way, meaning the fan speed doesn’t get reported to the motherboard and the operating system thinks the fan has failed. But [Jason] simply disabled the warning and washed his hands of that problem. If you don’t want to use a CPU fan at all, you can always just dunk your entire computer in mineral oil.

The Smallest Homebrewed TTL CPU In The World

This may very well be the smallest homemade TTL CPU we’ve ever seen. Measuring at one square inch, this tiny chip boasts 40 connections, an 8-bit databus, a 16-bit address bus, a 64 kB memory space, reset and clock inputs, and 5 V power lines.

TTL (transistor transistor logic) logic chips are pretty outdated today, but they do have all of the basics necessary for building a computer – logic gates, counters, buffers, and registers. The transistors perform both the logic and amplifying, as compared to resistor-transistor logic (RTL) and diode-transistor logic (DTL). In the 60s, when the technology was still fairly new, TTL ICs were commonly used in computers and industrial controls. Even after the advent of VLSI, TTL ICs were still being used for interfacing more densely integrated chips. Even so, most TTL chips tend to be on the bulkier side, which is what makes [roelh]’s project so unique. The entire PCB is hardly any larger than a coin.

On top of the hardware specs, [roelh] also implemented several useful software features: zero page addressing, load/store/compare instructions, stacks, conditioning branching, subroutine calls, and memory-mapped I/O. The registers are also in RAM, which has been implemented in microprocessors in the past (see TMS9900) for speed considerations, but in this case was implemented for size constraints.

An ALU was also left out of the design in order to constrain its size, leaving only 8 ICs on either side of the 2-layer PCB.

Microprograms are stored in Flash memory and can be programmed with a Raspberry Pi. by saving the Assembly code to a memory card and downloading the assembled binary code. Once the Raspberry Pi is connected to the development board, you can burn the binary code onto the Flash memory of the board using a Python script. An online Javascript editor also exists for assembling the Assembly code for the chip and simulating the CPU.

There is currently a development board made for the CPU, which includes six seven-segment displays and an I/O connector for running a digital clock and other applications. [roelh] has since built a retro TTL computer around the chip, which reintroduces the ALU and includes address registers, 256 KB of RAM, VGA video, PS/2 keyboard port, a sound system, and I/O pins. It’s a really exciting project that’s seriously pushing the constraints of retro computing.

CPU Showdown For Pancakes

If you ask people how they rate as a driver, most of them will say they are better than average. At first, that seems improbable until you realize one thing: people judge themselves by different criteria. So Sally thinks she’s a good driver because she goes fast. Tom’s never had a wreck. Alice never gets lost. You can see the same effect with CPUs. Some are faster or have more memory bandwidth or more instruction issues per cycle. But [Andrew] and [Scharon] at Tom’s Hardware wanted to do the real test of a CPU. How well can it cook pancakes? If you want to know, see the video below.

While your CPU might be great for playing video games, it has a surprisingly small cooking surface, so the guys needed a very small pan. The pan had grooves in it, so they slathered it with thermal grease. We doubt that’s food-grade grease, either. Continue reading “CPU Showdown For Pancakes”

An Arduino Enhances This 7400 CPU

How quickly could you make an entire computer from 74 series logic, from scratch? [Richard Grafton had only 30 days until the UK’s Retro Computer Festival and set out to design and build his Cambridge-1 computer in that time. The result is a machine spread across several breadboards, with neatly placed wiring and unexpectedly an Arduino Micro sitting in the corner. Isn’t the little Italian board a cheat? Not so, he says, because instead of being part of the computer itself it serves as a program loader to make putting software onto the machine from a PC as easy as possible.

The machine itself is simple enough, a 4-bit design with 8-bit data and address busses. There are only 16 instructions, and the clock speed is a relatively pedestrian 40Hz. This does, however, allow the many blinkenlights to show the machine’s state in a more visible manner. There’s a video which we’ve placed below the break, and if you have further questions you might like to look at the GitHub repository.

We like the Cambridge-1, and we see no problem with the Arduino being part of it. It doesn’t take away from the 74-driven nature of the machine. Instead, it enhances the usefulness of the device by facilitating coding on it. We’ve had huge quantities of TTL computers here over the years so it’s difficult to pick one to send you towards, however you may want to consider the 7400 as the original in the series.

Continue reading “An Arduino Enhances This 7400 CPU”