droid-logica: A 32-bit computer in Star Wars

For discussion of other cellular automata.
Post Reply
mystical
Posts: 10
Joined: June 4th, 2022, 9:47 am

droid-logica: A 32-bit computer in Star Wars

Post by mystical » March 26th, 2024, 1:46 pm

Hello!
I have made a 32-bit computer processor in star wars. It uses a von Neumann architecture (which seems to be kinda rare among such computers from what I've seen) and is NOT an OISC. It uses self-modifying code for achieving jumps and loops. It also supports a practically infinite amount of RAM.

I have written more about it and given demos in the github repo https://github.com/Aaron-d-k/droid-logica .

Every instruction is between 2 and 5 words long and compulsorily contains the address of the next instruction and an opcode. For more details about it, see here .

The components used all need a timing bit to function, and are all asynchronous in nature. For example, here is a really compact binary increment circuit I made which supports arbitrary size input, with 64 spaces between consecutive bits. (here showing 1011+1=1100)

Code: Select all

x = 320, y = 96, rule = 345/2/4
265.A$264.3A$265.A2$195.3B.B2.B.3B54.A$196.B2.2B.B.B.B40.A12.3A$196.B
2.B.2B.3B39.3A12.A$196.B2.B2.B.B42.A$195.3B.B2.B.B42.A$246.3A$247.A$
247.A$246.3A10.A$218.A28.A10.3A$207.C9.3A5.A21.A11.A$CBA125.CBA61.CBA
23.A5.3A7.A2.A8.3A$CBA125.CBA61.CBA30.A7.6A8.A61.3B.B.B.3B$207.C26.A
3.2A7.A61.B.B.B.B2.B$234.A4.2A5.3A11.A48.B.B.B.B2.B$233.2A5.2A5.A11.
3A47.3B.3B2.B$234.A5.A6.A12.A$234.A5.A5.3A$233.9A5.A$234.A2.A2.A24.A$
264.3A4.A34.C$258.A6.A4.3A$257.3A11.A$258.A47.C2$247.A6.A$246.3A4.3A$
247.A6.A5$246.A2.A2.A$245.9A$246.A5.A$246.A5.A$245.2A5.2A$246.2A4.A$
247.2A3.A$248.6A$249.A2.A7$247.A$246.3A$247.A2$235.A7.A$234.3A5.3A$
235.A7.A4$243.A$242.3A$243.A$234.A2.A$233.6A8.A$234.A2.A8.3A35.A$247.
A35.3A5.A$245.2A.2A34.A5.3A$201.5B38.7A33.A6.A$203.B31.A9.A3.A33.3A5.
A$203.B30.3A47.A5.3A$203.B31.A48.A6.A$203.B79.3A5.A$203.B27.A42.A9.A
5.3A$230.3A40.3A8.A6.A$231.A42.A8.3A5.A$284.A5.3A$207.C50.A2.A2.A5.A
13.A6.A$192.CBA50.A11.9A3.3A11.3A5.A$192.CBA49.3A11.A5.A5.A13.A5.3A
15.5B$207.C37.A12.A5.A19.A6.A18.B$257.2A5.2A17.3A5.A18.B$249.A8.2A4.A
19.A5.3A17.B$248.3A8.2A3.A19.A6.A18.B$249.A10.6A17.3A5.A18.B$261.A2.A
19.A5.3A$284.A6.A$283.3A5.A14.C$269.A14.A5.3A$268.3A20.A$269.A36.C2$
265.A$264.3A$265.A!
I also wrote a lot of code to create the circuits in star wars, including a function to create delays of whatever length you may want, to create serial to parallel and parallel to serial circuits, etc. all the code for this can be found here: https://github.com/Aaron-d-k/droid-logi ... ocessor.py. I also developed an assembly language for programming this computer. An example program is given here. A tutorial for using it is also there in the github repo.
I didn’t focus much on optimizing its size or speed, so it turned out to be quite large and slow to run. The display is currently very basic and only supports binary output. I plan to add a proper BCD converter and improve the display when I get time.

The largest program I’ve written so far is a prime number calculator, which outputs in binary. You can see the compiled program in action if you wait until generation 12,000,000, where ‘101’ (ie 5) will be displayed. 7 appears at around generation 70,000,000
Attachments
primer-cpu-v3.mc
(165.36 KiB) Downloaded 21 times

Post Reply