Shop OBEX P1 Docs P2 Docs Learn Events
Simplest Computer with ICs - Page 2 — Parallax Forums

Simplest Computer with ICs

2

Comments

  • prof_brainoprof_braino Posts: 4,313
    edited 2015-04-08 07:27
    One button "I'd like to have 4 lights, and a button. I'd use the pushbutton to type in commands, and those commands would control the lights."
    This set of requirements does not tell us what is expected, "one button" and "type in commands" is a contradiction.

    The actual requirements may be hiden in your further discussion: ' removes the "black box"'.

    It this what you want?

    https://www.assembla.com/wiki/show/bora/Quick_Start_Guide

    If I understand correctly, althoug I probably don't since there hasn't been a discussion of the actual requirements, bora binary explorer completely fits you requirements, exists, and is available off the shelf for less money than re-creating it by yourself.
  • prof_brainoprof_braino Posts: 4,313
    edited 2015-04-08 07:33
    Also, FPGA is counter-indicated by the title of this thread, SIMPLEST. Which shows that simple for arch-mage Leon is not necessarily the same simple to regular earth folks.

    From the linked hackady article, they intent is to show Ardino folks that one can ALSO blink an LED with 555 for under a dollar, vs $50 for the arduino and $1200 for the laptop to compile the code.
  • mindrobotsmindrobots Posts: 6,506
    edited 2015-04-08 07:53
    One button "I'd like to have 4 lights, and a button. I'd use the pushbutton to type in commands, and those commands would control the lights."
    This set of requirements does not tell us what is expected, "one button" and "type in commands" is a contradiction.

    The actual requirements may be hiden in your further discussion: ' removes the "black box"'.

    It this what you want?

    https://www.assembla.com/wiki/show/bora/Quick_Start_Guide

    If I understand correctly, althoug I probably don't since there hasn't been a discussion of the actual requirements, bora binary explorer completely fits you requirements, exists, and is available off the shelf for less money than re-creating it by yourself.

    BORA is a CPLD board. CPLD's were first mentioned in post #3. FPGS's in post #4.

    How does a CPLD remove the black box now any more than it did in the earlier posts?

    You can probably learn the same things with discrete gates or a CPLD or FPGS. Once you learn the software, the setup/teardown time is much quicker for the SPLD/FPGA that the discrete components and the cost is less. Unless you just really want to work with digital chips, you'll also be learning a relevant skill with Verilog/VHDL.

    Not being one to turn up my nose at a breadboard full of chips or an FPGA, any of these paths look like a fun stroll through digital wonderland!!
  • Heater.Heater. Posts: 21,230
    edited 2015-04-08 08:08
    Ah yes. Don't forget to have a play with the 555. That can be programmed to do all manner of interesting things with just resistors and capacitors.

    As Bob Pease said: "My favorite programming language is ... solder"

    There is always the computer built from 555 chips:
    http://hackaday.com/2011/08/05/building-a-computer-out-of-555-chips/
    http://www.paleotechnologist.net/?p=548

    Of course the 555 is a black box so better open that one and build what is inside:
    http://www.instructables.com/id/Build-Your-Own-555-Timer/
  • kwinnkwinn Posts: 8,697
    edited 2015-04-08 11:03
    Heater. wrote: »
    kwinn,

    I think that is an excellent idea. TTL ALU and registers + propeller as control unit.

    Well, I was thinking of using cmos so everything could run at 3.3V. Less likely to damage the propeller that way.
    Ultimately I would want the machines RAM and program counter as external Propeller controlled chips. Only the chips control signals need go to the Prop not the address and data buses.

    My thinking was to have the program counter and ram internal to the propeller initially, and have the propeller provide the data bus and control signals for the alu registers. Getting that to work provides a good understanding of how the alu works. At that point the circuitry for program counter, ram, and jump instructions could be added and the data bus out from the propeller could be used for other things.
    Basically the Spin/PASM program in the Prop is your microcode for the external computer. That means you can tweak around with you new machines instruction set easily.

    Exactly, and having a propeller program generate the control signals also means you can see the sequence of signals needed and adjust the speed so each step in the sequence for individual instructions can be seen on leds. That makes the design of the replacement circuitry so much clearer if you want to go that far.

    As a bonus the propeller can perform the functions of front panel and I/O as the design progresses.
    I'm not too keen on the FPGA approach. Seems like moving the stuff in the black box into another black box. Unless you want to get into learning hardware design with Verilog/VHDL of course.

    I agree, Having everything in a single chip is not good when the goal is learning the fundamentals at the gate level.

    Oh, and I guess a 555 timer could be used as a clock generator.
  • Heater.Heater. Posts: 21,230
    edited 2015-04-08 11:42
    kwinn,

    CMOS seems like a good idea. If you can get the ALU and whatever you need.

    On reflection it seems the Prop needs to see the data bus. How else would it know what instruction to sequence next? It's not clear to me that it needs to see the address bus.
  • Heater.Heater. Posts: 21,230
    edited 2015-04-08 11:53
    Keith Young,

    I would urge you to spend 20 minutes watching this video: https://www.youtube.com/watch?v=yF5-6AcohQw

    There the father of the World Wide Web, one the most abstract creations we have, explains how he started as a child deep inside the "black box". Making a switch out of a nail and a coil of wire. Progressing to logic gates of relays. Then Transistors. Then TTL. Then microprocessors.

    It's a path many of us took at the time. But the likes of Wozniack, and Tim took it so much further than we could imagine or manage.
  • kwinnkwinn Posts: 8,697
    edited 2015-04-08 18:16
    Heater. wrote: »
    kwinn,

    CMOS seems like a good idea. If you can get the ALU and whatever you need

    On reflection it seems the Prop needs to see the data bus. How else would it know what instruction to sequence next? It's not clear to me that it needs to see the address bus.

    The alu chip might be hard to find but octal latches are widely available. The propeller chip would definitely need to see the ram data to decode the instruction and produce the required control signals. There will also need to be one or two multiplexers or tristate buffers to gate data around the alu chip and registers.
  • ercoerco Posts: 20,254
    edited 2015-04-08 21:27
    I hear that wooden computers are making a resurgence...
  • jmgjmg Posts: 15,148
    edited 2015-04-08 21:53
    kwinn wrote: »
    The alu chip might be hard to find but octal latches are widely available. ....

    If you cannot locate a HC181 ALU anymore, you can always build one out of a 64KB Flash/MTP.
    Of course, once you have 64K parallel memory, with registers you may decide a state-machine is more useful than a ALU.
    A 128K x 8 memory and two latches, would support 8 State output Pins, 8 State control In Pins, and 256 possible States, and could clock over a very wide speed range..
  • Keith YoungKeith Young Posts: 569
    edited 2015-04-09 09:34
    I enjoyed that video way too much Erco.
  • kwinnkwinn Posts: 8,697
    edited 2015-04-09 12:03
    jmg wrote: »
    If you cannot locate a HC181 ALU anymore, you can always build one out of a 64KB Flash/MTP.
    Of course, once you have 64K parallel memory, with registers you may decide a state-machine is more useful than a ALU.
    A 128K x 8 memory and two latches, would support 8 State output Pins, 8 State control In Pins, and 256 possible States, and could clock over a very wide speed range..

    That's possible. Since this is for learning speed is not essential so a single bit alu might be used instead, although that might be no easier to find than a '181.
  • rod1963rod1963 Posts: 752
    edited 2015-04-09 15:17
    On Ebay you can find the Motorola MC14500 1 bit ICU chip for anywhere from $3.00 to $5.00.

    Don't forget the handbook either:
    http://www.brouhaha.com/~eric/retrocomputing/motorola/mc14500b/mc14500b_icu_handbook.pdf
  • kwinnkwinn Posts: 8,697
    edited 2015-04-09 19:38
    rod1963 wrote: »
    On Ebay you can find the Motorola MC14500 1 bit ICU chip for anywhere from $3.00 to $5.00.

    Don't forget the handbook either:
    http://www.brouhaha.com/~eric/retrocomputing/motorola/mc14500b/mc14500b_icu_handbook.pdf

    That's another option to consider. This idea is a bit like one of those tunes or jingles you just can't get out of your mind. It's pretty much a useless thing to build but I keep thinking about it. During my coffee breaks I found myself looking at the possibility of duplicating a single bit of the '181 to use as a serial alu along with '165 p-s and 595 s-p registers to interface between the memory and the alu. Looks like that would only need 3 or 4 chips for the alu and 4 or 5 8 bit register chips.
  • rod1963 wrote: »
    The easiest computer to build and understand would be a 1 bit MC14500 Industrial Control Unit. [ ...]

    http://laughtonelectronics.com/Arcana/One-bit%20computer/One-bit%20computer.html

    Thanks for the mention, rod1963. I just wanted to point out that my device is NOT based on the 14500 -- that chip was eliminated from the design as being unnecessarily complex!

    cheers,
    Jeff

  • Try the Motorola 1 bit industrial controller - the MC14500. You can put together a working system with a handful of chips. BTW you can buy the chips off ebay.

    Google it, some folks have already have working systems. All the docs are online as well. Very old school.

    Another way to go is to go the route Dr. Acula has posted. OpenCores.org has several minimal MCU's that can fit even in a CPLD.

  • Heater.Heater. Posts: 21,230
    edited 2015-11-24 14:14
    No idea if Keith is still keen on building a TTL computer but I'm with Lawson and the Single Instruction Computer idea. For example the subleq http://esolangs.org/wiki/subleq.

    The idea with a SIC computer is that the hardware is very simple. There is only one instruction so no instruction decoder is required and of course you don't even need to include the opcode in the instruction stream, no point it's always the same! Also the ALU is simplified because it only ever has to do one thing.

    In the case of the subleq machine the instruction is "Subract and branch if less than zero". Each instruction has three operands. The instruction subtracts one operand from another and writes the result back to one of them. It then makes a jump to the address in the third operand if the result was less than zero.

    So our machine has to:

    1) Clock the first operand from memory into an ALU register (O1 = [PC])

    2) Increment the program counter (PC = PC + 1)

    3) Clock the second operand from memory into ALU register (O2 = [PC])

    4) Clock ALU result back to memory ([PC] = RESULT)

    5) Increment the program counter (PC = PC + 1)

    6) If the ALU result is negative clock jump address from memory into PC (PC = [PC])

    else increment the program counter (PC = PC + 1)

    7) Continue at 1)

    Or something like that. Let's make this an 16 bit machine so we have some room to move in. What do we need?

    1) Two 8 bit static RAMS. Those 512K jobs will do.

    2) Two 8 bit counters for the PC. With increment and load capability

    3) An 16 bit subtraction unit. Perhaps the old TTL ALU chips if available.

    4) A state machine to drive the sequence above. Basically an EPROM/EEPROM and a
    feed back register.

    5) A Clock.

    That about covers it.

    The neat thing about the seubleq is that there is a high level language compiler for it so that
    is one less thing to worry about and you can program your creation when its done. No getting stuck in "Turings Tarpit" http://esolangs.org/wiki/Higher_Subleq

    HSQ compiles this:
    int printf(char * s);
    int fact(int a)
    {
       if( a<2 ) return 1;
       return a*fact(a-1);
    }
    int main()
    {
       printf( "%d", fact(12) );
    }
    
    Into this 18 thousand bytes that look like this:
    0 0 8807
    8867 8870 6
    18 18 9
    8870 18 12
    19 19 15
    8870 19 18
    0 0 21
    28 28 24
    8870 28 27
    8869 0 30
    ...
    ...
    
    Still not going to get much functionality into a 64K address space!
  • rod1963 wrote: »
    - the MC14500. You can put together a working system with a handful of chips.
    You can put together a working system with a smaller handful of chips by eliminating the 14500.

    Not knocking the 14500 -- that thing was an inspiration for me! But, taking those ideas and optimizing the design, I was able to eliminate 14500 and its external program counter ICs. Have a closer look, please.

    Although I'm fond of the 14500, I feel funny about my one-bit, one-instruction computer being cited as a 14500 design. It's not.

    cheers,
    Jeff

  • Switch flipping at it's best.

    https://en.m.wikipedia.org/wiki/Altair_8800

    I wanted on of these behemoth's back in the day. I ended up purchasing a National Semiconductor' s SC/MP microprocessor evaluation kit, and a TV typewriter kit made up of over two dozen 7400 TTL chips, and a 2513 character generator ROM. Its great to look back, but wouldn't want to be there again.

    http://www.swtpc.com/mholley/CT_1024/Restore/CT1024_Restore.htm



  • Heater.Heater. Posts: 21,230
    edited 2015-11-24 16:30
    Yes, yes, that Altair and "scamps" were great. But that is not building a computer out of a handful of simple logic chips as out opening poster was enquiring about.
  • Good example of binary input/output.
  • I'm currently building a physical simulator for a flight type game, so this is way on the backburner for me.

    That said, dig away.
  • Here is a 1-button approach to setting a TIX style Clock and displaying Temperature with the option to select Celsius or Fahrenheit that I coded a few years ago. The Project uses a Propeller, but it could just as easily use a $0.54 PIC16F54 micro controller to perform an identical task.

    The point is, other processors such as a Propeller or Arduino, etc. are nice for a quick proof of concept, but the reality is, unless you can fit your design into a high dollar price point item you won't make any profit. Many times a cheaper PIC will have more bang for your buck unless you are heavily relying on a specific feature one processor might have over the other ... Video and USB are examples of such features, but if you are not using those kind of specific features, you might consider another alternative that is better suited for your application.

    TIX colck Project:
  • wasswass Posts: 151
    edited 2015-11-25 05:24
    Getting back to simple processors ..... Some time ago I posted on another forum ( http://www.hpmuseum.org/cgi-sys/cgiwrap/hpmuseum/archv019.cgi?read=161934) a little about the General Instruments Sequential Boolean Analyzer (SBA). Has anyone ever come across this chip, did GI actually manufacturer it? It looks to be much more interesting and capable than the 14500 was.


  • kwinnkwinn Posts: 8,697
    Don't know if this was ever produced, but I did see several single bit processors in some of the early instrumentation. From skimming the data sheet it sounds like a single bit alu similar to one section of the '181 with a 16 bit mux on the input and output.

    These type of chips were quickly replaced by the 8 bit micros because they were slower than snails and a pain to program.
  • wass wrote: »
    Getting back to simple processors .....
    One-bit Computing at 60 Hertz3200%20State%20machine%20big.gifWhen I billed the customer for this I didn't tell them I'd "forgotten" to include a CPU! :)
  • Dr_Jefyll, that is freaking brilliant. I/O mapped memory ROFL.
  • This is the most enticing roll-your-own CPU design I've ever seen. It dominates the junction of Simplicity and Functionality. <doffs hat>
Sign In or Register to comment.