Designing a 1 bit cpu ?

Aug 02, 2005 40 Replies

While there aren't any one bit CPUs, there are a couple of dozen CPU designs at

formatting link
from eight-bit PIC and AVR compatibles to

32 bit designs, most with source in Verilog or VHDL.

One bit CPUs are largely pointless. First, you're almost certainly talking about a microcontroller architecture, so only data memory and registers are actually one bit wide, and the trade off for program size vs. the (few) gates saved in the ALU will be really bad for almost all applications. There are a few uses of four-bit microcontrollers but only where the very small cost differential from an eight-bit can be collected over a very large number of units made, and then they're only applicable to a rather small number of applications.

However, a simple RISC or eight-bitter is well within the capabilities of someone with some background designing stuff ASICs or using the larger programmable logic parts, and with a few free months on their hands. You will quickly discover that the problem is not getting a CPU to execute a few opcodes, but building a software tool-chain so that you can do anything interesting with it.

I like the idea of a two-bit cpu much better. I bet you'll soon be able to get uCs in volume for a quarter.

Regards, Bob Monsen If a little knowledge is dangerous, where is the man who has so much as to be out of danger? Thomas Henry Huxley, 1877

Sorry, a silly pun, two bits is a quarter for people born during the dark ages.

Regards, Bob Monsen If a little knowledge is dangerous, where is the man who has so much as to be out of danger? Thomas Henry Huxley, 1877

to

Is that 1 bit serial or parallel?

Its been done. Have you seen the MC14500B?

formatting link

Among the possible futilities would foremost be the need for serializing data, (with architecture and speed overhead), to express a range greater then 1. Without this, you have at best 2 registers, and

2 memory locations, and one command (reserving the 0 for the nop). I'm pretty sure now that when you explore this idea deeply enough, you can reduce it to a flip-flop for simplicity, and your competitors will come out with a NAND gate that can do the same job much faster. Even if you tossed out the NOP command to extend the languange to two operations I'm certain that all this chip could do is chase it's tail.

Your's is a good question though, and fun to ponder.

Agent X

Motorola had a 1 bit cpu for sale in the late 1970's I believe. The part number was something like the 14001 if I have not forgotten, not to be confused with the 4001.

I think I remember you used an external n bit counter for the program counter, that continually incremented. That streamed 4 bit instructions out of a program rom to feed the processor. The data path was one bit wide. Branches were implemented with an internal flip flop that would put the processor into "skip mode" where it would ignore instructions until it reached an instruction that toggeled the flip flop back. Both 0000 and 1111 were treated as no-ops, so that you didn't have to program the whole rom, and so you could use roms with either high or low bits in the unprogrammed state.

Years ago I had the data manual for this but I doubt I could find it again. Finding and reading that might give you some ideas.

Depends on how much experience you have writing VHDL.

Isn't that the whole point behind VHDL and Verilog?

It's been done.

Define "1-bit". The PDP-8I (or was it E) had a 1-bit ALU. If you're looking at one-bit "registers", Google "touring machine".

Why? Sounds boring.

Certainly. That's my choice of HDL.

It depends on your definition of "1 bit CPU" and how much money you have. I already have a day job though. ;-)

Keith

Serial in, parallel out. ;-)

Keith

=D

but

next

;-)

PDP8, gad I had forgotten those. Paper Tape Reader? Extra Point Question: Name a code used on the paper tape storage.

That's been done a thousand times.

No, one bit works. As I said before, one of the PDP8's had a single-bit (serial) ALU. It is *not* something new.

Trivial. Do you want to that to go on forever, or is there some condition that makes it stop so you can at least figure out what sign the result is? ;-)

Keith

Hi,



I just learned that electronics can be designed via languages... COOL =D



This is related to the variable bit cpu.



Can you design a 1 bit cpu ? (I could help you with some concepts/designs to get it going :D)



Ofcourse first we have to work out a bit more how it would all work but still..



Do you think you could do it in say VHDL ? ;)



How long would it take you to design a 1 bit cpu ? :)



Bye, Skybuck =D


to

Yawn..

try Motorola MC14500BCP.. they did it over 20 years ago..

concepts/designs

I get it, good joke ;)

Though in serial... it should remember the carry. And when it does the next calculation it takes carry into account ;)

Maybe I should have called it a two bit cpu.

It's like this:

-- bitstream A --->

add CPU -- bitstream C --->

-- bitstream B --->

Bye, Skybuck.

concepts/designs to

You might be right about that...

See my other post... where I explain further ;)

Maybe it should have been called a 2 bit cpu ;)

Or did you mean something else ?

Bye, Skybuck.

=D

but

next

;-)

All bitstreams are interleaved with "markers"

For example:

Encoding 1:

Data: ddddddeeeeeeefff Markers:

000001000001001

(one ending marker)

Alternatively:

Encoding 2:

Data: ddddddeeeeeeefff Markers:

100001100001101

(start and stop marker)

Encoding 3:

Data:

0dddddd0eeeeeee0fff0 Markers: 0111111011111101110

Data and Marker fields seperated by zero content and zero marker.

All content bits have an interleaved 1 marker bit.

In all cases it's easy for the CPU to detect when the end of a field in the bitstream has been reached.

Once the end of a bitstream is reached the cpu will replace the register with zero in case of addition.

The other bitstream will simply continue.

This would allow variable bit length fields to be streamed through the processor and create a bitstream out...

So in otherwords variable bit stream addition etc.

Bye, Skybuck.

concepts/designs

Can it do infinite integer arithmetic ? ;)

Bye, Skybuck.

concepts/designs to

Can it do infinite integer arithmetic ?

Bye, Skybuck.

Look up the MC14500B.

Tim.

concepts/designs to

Read up on the marker concept ;)

Actually I don't blame you for not knowing it.

I just reinvented it a day ago.

1 bit cpu's aren't as limited as you might now think.

They can do conceptually anything that modern intel pentium's or athlon's can do and even beyond, since they allow infinite integers and rational numbers ;)

Bye, Skybuck.

Join the Discussion

Have something to add? Share your thoughts — no account required.

Didn't find your answer?

Ask the community — no account required