Logic Cortex A

    Logic Cortex A A


    Had to give it a slight update due to the new chunk update breaking my instant pulses, but it functions the same as it did before.

    Where do I even begin? This is my first attempt at making a functioning computer. It is far, far from perfect, but I learned more putting this together than I ever did reading about it. There are many flaws, but it does function like you would expect.

    Specifications:
    *4hz clock, allowing the system to execute one instruction cycle a second.
    *64 I/O pins 32 for input, 32 for output. There is also a prototypical transceiver.
    *16 8-bit registers.
    *64 13-bit program memory cells. 4-bit oppcode, 1-bit to define whether the value is a constant, and an 8-bit value.
    *Programming UI
    *CU with 3kb of cache memory.
    *ALU with add/subtract and several logic operations.
    *Adjustable Bit Shifter
    *Prototype Programmable Program Counter

    It comes loaded with a seven-line program that adds the values of registers 0ne and two, stores the result in register zero, and then outputs the result to the first I/O port. 5+3=8


    On the top left is the reset button, with the power button underneath. To the right of those are the I/O pins.


    On the other face you can find the programming interfaces for all the major systems. The registers are on the bottom, out of sight in this image and hopefully self-explanatory.

    The main thing you need to concern yourself with is the programming overlay that is pictured above.

    The number display is the output of the program counter. To the left is a binary output along with an array of buttons. Underneath the binary output is the binary input for selecting a memory cell to jump to. There are also two buttons to the right of this. They are the GOTO button, and the Iterate button. The GOTO button jumps the counter to the value you inputted below, and the Iterate button advances the counter by one.

    There is also a simple mechanism for deleting your program and reinitializing the CU back to the starting state (a tiny reset button).

    Above the program counter interface is an array of buttons, and another binary panel. The buttons all correspond to different assembly codes. The indicators will also light up according to what is already stored there. One indicator to note is the one marked 'ConstantIdentifier'. This is often used as a switch to change the behavior of the code.

    The codes are as follows:

    0000 Goto-Value(Resets program counter with a new value)
    0001 StoreCache-C/R-Value(Stores a number in one of the caches. The selected cache automatically switches between the first and second cache upon write, so make sure you keep this in mind)
    0010 SelectPort(Selects the port using the value)
    0011 PinsR/W-value(Outputs the value of the first cache to the pins if set to write, otherwise records the value of the input pins on the result )
    0100 Add-C/R-Value(added to cache, output by result)
    0101 Subtract-C/R-Value(added to cache, output by result)
    0110 StoreMemory (Outputs the results of a calculation to a register)
    0111 AND-C/R-Value(added to cache, output by result)
    1000 OR-C/R-Value(added to cache, output by result)
    1001 NAND-C/R-Value(added to cache, output by result)
    1010 NOR-C/R-Value(added to cache, output by result)(with nothing in the cache, behaves like a NOT operation)
    1011 XOR-C/R-Value(added to cache, output by result)
    1100 A==B-Value(compared to cache, skips the next operation if false)
    1101 A>B-Value(compared to cache, skips the next operation if false)
    1110 A<B-Value(compared to cache, skips the next operation if false)
    1111 BinaryShift-Left/Right(output by result)
    Note that there are descriptions for each command on the panel itself.

    The binary panel I mentioned is for putting in a constant value, such as a register address. There is an extra button to the left of it. This imprints the entered value to the program memory.

    This pretty much covers the basics. If you want one, I will post a more comprehensive guide on the forums.

    Something this complex will almost certainly have bugs. I would greatly appreciate it if you tell me how to reproduce them reliably. Don't hesitate to give feedback.
    Author
    Trekkerjoe
    Downloads
    401
    Views
    552
    First release
    Last update
    Rating
    5.00 star(s) 1 ratings

    More resources from Trekkerjoe

    Latest reviews

    Ever since turing-complete logic has found its way into sandbox games, people have been creating entire computer systems. This one in particular is very compact and neatly fits into a small bounding box.