Connect with us

Designing a 1 bit cpu ?

Discussion in 'Electronic Design' started by Skybuck Flying, Aug 2, 2005.

Scroll to continue with content
  1. 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
     
  2. jabara

    jabara Guest

    Is that 1 bit serial or parallel?
     
  3. Its been done. Have you seen the MC14500B?
    http://www.datasheet4u.com/html/M/C/1/MC14500BCL_MotorolaInc.pdf.html
     
  4. Guest



    While there aren't any one bit CPUs, there are a couple of dozen CPU
    designs at www.opencores.org, 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.
     
  5. Bob Monsen

    Bob Monsen Guest

    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
     
  6. keith

    keith Guest

    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. ;-)
     
  7. keith

    keith Guest

    Serial in, parallel out. ;-)
     
  8. 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.
     
  9. 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.
     
  10. Bob Monsen

    Bob Monsen Guest

    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
     
  11. keith

    keith Guest

    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? ;-)
     
  12. Don Taylor

    Don Taylor Guest

    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.
     
  13. TheDoc

    TheDoc Guest

    Yawn..

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

    jabara Guest

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

    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.
     
  16. Can it do infinite integer arithmetic ? ;)

    Bye,
    Skybuck.
     
  17. grunt

    grunt Guest

    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
     
  18. 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.
     
  19. MK

    MK Guest

    I think you mean Turing Machine (named after British mathematician).

    It's a theoretical 1 bit machine and the point is that it can do anything
    that a more complex machine can (but not always efficiently).

    Michael Kellett
     
Ask a Question
Want to reply to this thread or ask your own question?
You'll need to choose a username for the site, which only take a couple of moments (here). After that, you can post your question and our members will help you out.
Electronics Point Logo
Continue to site
Quote of the day

-