8-bit microprocessor in a 7-state vN CA
8-bit microprocessor in a 7-state vN CA
A year and I half ago a made a 7-state rotate4reflect vN wiring CA and built a partial implementation of a Picoblaze microcontroller as a final project for my Digital Electronics class. The rule is called "DECA" for "Digital Electronics Cellular Automaton."
Here is a video I made explaining the rule and the design of the processor.
And here is a GitHub repository containing the rule file and the processor itself. It has 16 8-bit registers and 1024 18-bit instructions. Only JUMP, ADD, ADDC, SUB, SUBC, AND, OR, XOR, and LD instructions are implemented, however more could certainly be implemented.
My goal with this rule was to make something simple to explain and easy to build large circuits in, using modular 4x4 elements with period 4. It does not support universal construction or anything fancy like that, but if you're interested in extending it, or supporting more of the Picoblaze ISA, be my guest!
Here is a video I made explaining the rule and the design of the processor.
And here is a GitHub repository containing the rule file and the processor itself. It has 16 8-bit registers and 1024 18-bit instructions. Only JUMP, ADD, ADDC, SUB, SUBC, AND, OR, XOR, and LD instructions are implemented, however more could certainly be implemented.
My goal with this rule was to make something simple to explain and easy to build large circuits in, using modular 4x4 elements with period 4. It does not support universal construction or anything fancy like that, but if you're interested in extending it, or supporting more of the Picoblaze ISA, be my guest!
Last edited by HactarCE on October 28th, 2020, 2:01 pm, edited 1 time in total.
Re: 8-bit microprocessor in a 7-state vN CA
That's very interesting!
Re: 8-bit microprocessor in a 7-state vN CA
Excellent video and amazing work!
Here is the 7-segment display from your repo:
Here is the 7-segment display from your repo:
Code: Select all
x = 193, y = 334, rule = DECA
101.47C$101.C$99.51C$99.C$97.55C$97.C$95.59C$78.18C$78.C16.59C$78.C18.
C$78.C12.C.C3.55C3.C.C$78.C12.C.C5.C55.C.C$78.C10.C.C.C.C3.51C3.C.C.C
.C$78.C10.C.C.C.C5.C51.C.C.C.C$78.C8.C.C.C.C.C.C3.47C3.C.C.C.C.C.C$78.
C8.C.C.C.C.C.C53.C.C.C.C.C.C$78.C6.C.C.C.C.C.C.C.C49.C.C.C.C.C.C.C.C$
78.C6.C.C.C.C.C.C.C.C49.C.C.C.C.C.C.C.C$78.C6.C.C.C.C.C.C.C.C49.C.C.C
.C.C.C.C.C$78.C6.C.C.C.C.C.C.C.C49.C.C.C.C.C.C.C.C$78.C6.C.C.C.C.C.C.
C.C49.C.C.C.C.C.C.C.C$78.C6.C.C.C.C.C.C.C.C49.C.C.C.C.C.C.C.C$78.C6.C
.C.C.C.C.C.C.C49.C.C.C.C.C.C.C.C$78.C6.C.C.C.C.C.C.C.C49.C.C.C.C.C.C.
C.C$78.C6.C.C.C.C.C.C.C.C49.C.C.C.C.C.C.C.C$78.C6.C.C.C.C.C.C.C.C49.C
.C.C.C.C.C.C.C$78.C6.C.C.C.C.C.C.C.C49.C.C.C.C.C.C.C.C$78.C6.C.C.C.C.
C.C.C.C49.C.C.C.C.C.C.C.C$78.C6.C.C.C.C.C.C.C.C49.C.C.C.C.C.C.C.C$78.
C6.C.C.C.C.C.C.C.C49.C.C.C.C.C.C.C.C$78.C6.C.C.C.C.C.C.C.C49.C.C.C.C.
C.C.C.C$78.C6.C.C.C.C.C.C.C.C49.C.C.C.C.C.C.C.C$78.C6.C.C.C.C.C.C.C.C
49.C.C.C.C.C.C.C.C$78.C6.C.C.C.C.C.C.C.C49.C.C.C.C.C.C.C.C$78.C6.C.C.
C.C.C.C.C.C49.C.C.C.C.C.C.C.C$78.C6.C.C.C.C.C.C.C.C49.C.C.C.C.C.C.C.C
$78.C6.C.C.C.C.C.C.C.C49.C.C.C.C.C.C.C.C$78.C6.C.C.C.C.C.C.C.C49.C.C.
C.C.C.C.C.C$78.C6.C.C.C.C.C.C.C.C49.C.C.C.C.C.C.C.C$78.C6.C.C.C.C.C.C
.C.C49.C.C.C.C.C.C.C.C$78.C6.C.C.C.C.C.C.C.C49.C.C.C.C.C.C.C.C$78.C6.
C.C.C.C.C.C.C.C49.C.C.C.C.C.C.C.C$78.C6.C.C.C.C.C.C.C.C49.C.C.C.C.C.C
.C.C$78.C6.C.C.C.C.C.C.C.C49.C.C.C.C.C.C.C.C$78.C6.C.C.C.C.C.C.C.C49.
C.C.C.C.C.C.C.C$78.C6.C.C.C.C.C.C.C.C49.C.C.C.C.C.C.C.C$78.C6.C.C.C.C
.C.C.C.C49.C.C.C.C.C.C.C.C$78.C6.C.C.C.C.C.C.C.C49.C.C.C.C.C.C.C.C$78.
C6.C.C.C.C.C.C.C.C49.C.C.C.C.C.C.C.C$78.C6.C.C.C.C.C.C.C.C49.C.C.C.C.
C.C.C.C$78.C6.C.C.C.C.C.C.C.C49.C.C.C.C.C.C.C.C$78.C6.C.C.C.C.C.C.C.C
49.C.C.C.C.C.C.C.C$78.C6.C.C.C.C.C.C.C.C49.C.C.C.C.C.C.C.C$78.C6.C.C.
C.C.C.C.C.C49.C.C.C.C.C.C.C.C$78.C6.C.C.C.C.C.C.C.C49.C.C.C.C.C.C.C.C
$78.C6.C.C.C.C.C.C.C.C49.C.C.C.C.C.C.C.C$78.C6.C.C.C.C.C.C.C.C49.C.C.
C.C.C.C.C.C$78.C6.C.C.C.C.C.C.C.C49.C.C.C.C.C.C.C.C$78.C6.C.C.C.C.C.C
.C.C49.C.C.C.C.C.C.C.C$78.C6.C.C.C.C.C.C.C.C49.C.C.C.C.C.C.C.C$78.C6.
C.C.C.C.C.C.C.C49.C.C.C.C.C.C.C.C$78.C6.C.C.C.C.C.C.C.C49.C.C.C.C.C.C
.C.C$78.C6.3C.C.C.C.C.3C49.3C.C.C.C.C.3C$78.C8.C.C.C.C.C.C53.C.C.C.C.
C.C$78.C8.3C.C.C.3C3.47C3.3C.C.C.3C$78.C10.C.C.C.C5.C51.C.C.C.C$78.C10.
3C.3C3.51C3.3C.3C$78.C12.C.C5.C55.C.C$78.C12.3C3.55C3.3C$78.C13.C4.C58.
C$78.C.13C2.59C2.10C$78.C.C12.3C69.C$78.C.C.12C.59C11.C$78.C.C.C14.C67.
C$78.C.C.C8.C.C3.55C3.C.C7.C$78.C.C.C8.C.C5.C55.C.C7.C$78.C.C.C6.C.C.
C.C3.51C3.C.C.C.C5.C$78.C.C.C6.C.C.C.C5.C51.C.C.C.C5.C$78.C.C.C4.C.C.
C.C.C.C3.47C3.C.C.C.C.C.C3.C$78.C.C.C4.C.C.C.C.C.C53.C.C.C.C.C.C3.C$78.
C.C.C2.C.C.C.C.C.C.C.C49.C.C.C.C.C.C.C.C.C$78.C.C.C2.C.C.C.C.C.C.C.C49.
C.C.C.C.C.C.C.C.C$78.C.C.C2.C.C.C.C.C.C.C.C49.C.C.C.C.C.C.C.C.C$78.C.
C.C2.C.C.C.C.C.C.C.C49.C.C.C.C.C.C.C.C.C$78.C.C.C2.C.C.C.C.C.C.C.C49.
C.C.C.C.C.C.C.C.C$78.C.C.C2.C.C.C.C.C.C.C.C49.C.C.C.C.C.C.C.C.C$78.C.
C.C2.C.C.C.C.C.C.C.C49.C.C.C.C.C.C.C.C.C$78.C.C.C2.C.C.C.C.C.C.C.C49.
C.C.C.C.C.C.C.C.C$78.C.C.C2.C.C.C.C.C.C.C.C49.C.C.C.C.C.C.C.C.C$78.C.
C.C2.C.C.C.C.C.C.C.C49.C.C.C.C.C.C.C.C.C$78.C.C.C2.C.C.C.C.C.C.C.C49.
C.C.C.C.C.C.C.C.C$78.C.C.C2.C.C.C.C.C.C.C.C49.C.C.C.C.C.C.C.C.C$78.C.
C.C2.C.C.C.C.C.C.C.C49.C.C.C.C.C.C.C.C.C$78.C.C.C2.C.C.C.C.C.C.C.C49.
C.C.C.C.C.C.C.C.C$78.C.C.C2.C.C.C.C.C.C.C.C49.C.C.C.C.C.C.C.C.C$78.C.
C.C2.C.C.C.C.C.C.C.C49.C.C.C.C.C.C.C.C.C$78.C.C.C2.C.C.C.C.C.C.C.C49.
C.C.C.C.C.C.C.C.C$78.C.C.C2.C.C.C.C.C.C.C.C49.C.C.C.C.C.C.C.C.C$78.C.
C.C2.C.C.C.C.C.C.C.C49.C.C.C.C.C.C.C.C.C$78.C.C.C2.C.C.C.C.C.C.C.C49.
C.C.C.C.C.C.C.C.C$78.C.C.C2.C.C.C.C.C.C.C.C49.C.C.C.C.C.C.C.C.C$78.C.
C.C2.C.C.C.C.C.C.C.C49.C.C.C.C.C.C.C.C.C$20.C57.C.C.C2.C.C.C.C.C.C.C.
C49.C.C.C.C.C.C.C.C.C$20.C57.C.C.C2.C.C.C.C.C.C.C.C49.C.C.C.C.C.C.C.C
.C$20.C57.C.C.C2.C.C.C.C.C.C.C.C49.C.C.C.C.C.C.C.C.C$20.C57.C.C.C2.C.
C.C.C.C.C.C.C49.C.C.C.C.C.C.C.C.C$19.5C54.C.C.C2.C.C.C.C.C.C.C.C49.C.
C.C.C.C.C.C.C.C$19.C3.C54.C.C.C2.C.C.C.C.C.C.C.C49.C.C.C.C.C.C.C.C.C$
19.C3.C54.C.C.C2.C.C.C.C.C.C.C.C49.C.C.C.C.C.C.C.C.C$12.C6.C.3C54.C.C
.C2.C.C.C.C.C.C.C.C49.C.C.C.C.C.C.C.C.C$12.C6.C.CFDC53.C.C.C2.C.C.C.C
.C.C.C.C49.C.C.C.C.C.C.C.C.C$8.9C2.C4.C53.C.C.C2.C.C.C.C.C.C.C.C49.C.
C.C.C.C.C.C.C.C$8.C2E5.C2.C.2E.C53.C.C.C2.C.C.C.C.C.C.C.C49.C.C.C.C.C
.C.C.C.C$8.2C2.3C.C2.3C2.C53.C.C.C2.C.C.C.C.C.C.C.C49.C.C.C.C.C.C.C.C
.C$9.4C.C.C4.4C53.C.C.C2.C.C.C.C.C.C.C.C49.C.C.C.C.C.C.C.C.C$7.3C2.D.
D2C2.3C2.D53.C.C.C2.C.C.C.C.C.C.C.C49.C.C.C.C.C.C.C.C.C$7.C.2E2C.FC3.
C.2E2C53.C.C.C2.C.C.C.C.C.C.C.C49.C.C.C.C.C.C.C.C.C$7.2C2.C2.2C3.2C2.
C54.C.C.C2.C.C.C.C.C.C.C.C49.C.C.C.C.C.C.C.C.C$8.C2.2C7.C2.2C53.C.C.C
2.C.C.C.C.C.C.C.C49.C.C.C.C.C.C.C.C.C$8.C3.C7.C3.C53.C.C.C2.C.C.C.C.C
.C.C.C49.C.C.C.C.C.C.C.C.C$8.C3.C7.C3.C53.C.C.C2.C.C.C.C.C.C.C.C49.C.
C.C.C.C.C.C.C.C$8.C3.C7.C3.C53.C.C.C2.C.C.C.C.C.C.C.C49.C.C.C.C.C.C.C
.C.C$8.C3.C7.C3.C53.C.C.C2.C.C.C.C.C.C.C.C49.C.C.C.C.C.C.C.C.C$8.C3.C
7.C3.C53.C.C.C2.C.C.C.C.C.C.C.C49.C.C.C.C.C.C.C.C.C$8.A3.C7.A3.C53.C.
C.C2.C.C.C.C.C.C.C.C49.C.C.C.C.C.C.C.C.C$12.C11.C53.C.C.C2.C.C.C.C.C.
C.C.C49.C.C.C.C.C.C.C.C.C$12.C11.C53.C.C.C2.3C.C.C.C.C.3C49.3C.C.C.C.
C.3C.C$12.C11.C53.C.C.C4.C.C.C.C.C.C53.C.C.C.C.C.C3.C$12.A11.A53.C.C.
C4.3C.C.C.3C3.47C3.3C.C.C.3C3.C$78.C.C.C6.C.C.C.C5.C51.C.C.C.C5.C$78.
C.C.C6.3C.3C3.51C3.3C.3C5.C$78.C.C.C8.C.C5.C55.C.C7.C$78.C.C.C8.3C3.55C
3.3C7.C$78.C.C.C9.C4.C58.C8.C$78.C.C.C2.8C2.59C2.C8.C$78.C.C.C2.C7.3C
60.C8.C$78.C.C.C2.C.7C.59C2.C8.C$78.C.C.C2.C.C9.C58.C8.C$78.C.C.C2.C.
C9.55C4.C8.C$78.C.C.C2.C.C11.C56.C8.C$78.C.C.C2.C.C11.51C6.C8.C$78.C.
C.C2.C.C13.C54.C8.C$78.C.C.C2.C.C13.47C8.C8.C$78.C.C.C2.C.C68.C8.C$78.
C.C.C2.C.C.68C8.C$78.C.C.C2.C.C.C75.C$78.C.C.C2.C.C.C3.73C$78.C.C.C2.
C.C.C3.C$78.C.C.C2.C.C.C3.C$78.C.C.C2.C.C.C3.C8.43C$78.C.C.C2.C.C.CE2.
CE7.C41.C$78.C.C.C2.C.2CF3CF9C.41C$78.C.C.C2.C2.ECE.ECE9.C$78.C.C.C2.
C3.C3.C10.C5.35C$78.C.C.C2.C3.CE2.CE9.CE4.C33.C$78.C.C.C2.4CF3CF10CF6C
.33C$78.C.C.C5.ECE.ECE8.ECE6.C$78.C.C.C6.C3.C10.C7.C$78.C.C.C6.CE2.CE
9.CE6.CE$78.C.C.7CF3CF10CF7CF16C$78.C.C7.ECE.ECE8.ECE5.ECE14.C$78.C.C
8.C3.C10.C7.C15.C$78.C.C8.CE2.CE9.CE6.CE14.C$78.C.9CF3CF10CF7CF8C7.C$
78.C9.ECE.ECE8.ECE5.ECE6.C7.C$78.C.8C.C3.C10.C7.C7.C7.C$78.C.C6.3C3.2C
9.C7.C7.C7.C$78.C.7C7.C9.C7.C7.C7.C$78.C7.C.3C2.2C9.C7.C7.C7.C$78.C.7C
.C.C2.C10.C7.C7.C7.C$78.C.C7.C.C2.CE9.C7.C7.C7.C$78.C.9C.3CF4C6.C7.C7.
C7.C$78.C13.ECE2.C6.C7.C7.C7.C$32.C45.C14.C2.2C6.C7.C7.C7.C$31.EC45.C
14.C2.C7.C7.C7.C7.C$28.4CF7C38.3C7.6C2.C7.C7.C7.C7.C$28.C2.ECE2.E43.C
7.C7.C7.C7.C7.C7.C$28.C3.C3.C43.C7.C7.C7.C7.C7.C7.C$28.C3.C3.C43.C7.C
7.C7.C7.C7.C7.C$28.C3.5C43.C7.C7.C7.C7.C7.C7.C$28.C3.C47.C7.C7.C7.C7.
C7.C7.C$24.C3.C3.C47.C7.C7.C7.C7.C7.C7.C$23.EC3.C2.EC46.5C3.5C3.5C3.5C
3.5C3.5C3.5C$20.4CF7CF7C39.C3.C3.C3.C3.C3.C3.C3.C3.C3.C3.C3.C3.C3.C$20.
C2.ECE2.E2.ECE2.D42.C3.C3.C3.C3.C3.C3.C3.C3.C3.C3.C3.C3.C3.C$20.C3.C3.
C3.C3.C42.C.3C3.C.3C3.C.3C3.C.3C3.C.3C3.C.3C3.C.3C$20.C3.C3.C3.C3.C42.
C.CFDC2.C.CFDC2.C.CFDC2.C.CFDC2.C.CFDC2.C.CFDC2.C.CFDC$20.C3.5C3.5C42.
C4.C2.C4.C2.C4.C2.C4.C2.C4.C2.C4.C2.C4.C$20.C3.C7.C46.C.2E.C2.C.2E.C2.
C.2E.C2.C.2E.C2.C.2E.C2.C.2E.C2.C.2E.C$20.C3.C7.C46.3C2.C2.3C2.C2.3C2.
C2.3C2.C2.3C2.C2.3C2.C2.3C2.C$20.C3.C6.EC48.4C4.4C4.4C4.4C4.4C4.4C4.4C
$20.C3.C3.4CF7C39.3C2.D2.3C2.D2.3C2.D2.3C2.D2.3C2.D2.3C2.D2.3C2.D$20.
C3.C3.C2.ECE2.E42.C.2E2C2.C.2E2C2.C.2E2C2.C.2E2C2.C.2E2C2.C.2E2C2.C.2E
2C$20.C3.C3.C3.C3.C42.2C2.C3.2C2.C3.2C2.C3.2C2.C3.2C2.C3.2C2.C3.2C2.C
$20.C3.C3.C3.C3.C43.C2.2C3.C2.2C3.C2.2C3.C2.2C3.C2.2C3.C2.2C3.C2.2C$20.
C3.C3.C3.5C43.C3.C3.C3.C3.C3.C3.C3.C3.C3.C3.C3.C3.C3.C$20.C3.C3.C3.C47.
C3.C3.C3.C3.C3.C3.C3.C3.C3.C3.C3.C3.C3.C$16.C3.C3.C3.C3.C47.C3.C3.C3.
C3.C3.C3.C3.C3.C3.C3.C3.C3.C3.C$15.EC3.C2.EC3.C2.EC46.EC3.C2.EC3.C2.E
C3.C2.EC3.C2.EC3.C2.EC3.C2.EC3.C$12.4CF7CF7CF7C20.20CF7CF7CF7CF7CF7CF
7CF4C$12.C2.ECE2.E2.ECE2.D2.ECE2.D23.C18.ECE5.ECE5.ECE5.ECE5.ECE5.ECE
5.ECE$12.C3.C3.C3.C3.C3.C3.C23.C17.E.C5.D.C5.D.C5.D.C5.E.C5.E.C5.E.C$
12.C3.C3.C3.C3.C3.C3.C23.C15.E4C3.E4C3.E4C3.E4C3.E4C3.E4C3.E4C$12.C3.
5C3.5C3.5C23.C11.C4.C2.C4.C2.C4.C2.C4.C2.C4.C2.C4.C2.C4.C2.C$12.C3.C7.
C7.C27.C10.EC4.C.EC4.C.EC4.C.EC4.C.EC4.C.EC4.C.EC4.C.EC$12.C3.C7.C7.C
27.12CF7CF7CF7CF7CF7CF7CF7CF2C$12.C3.C7.C6.EC27.C.D.D.D.D2.ECE5.ECE5.
ECE5.ECE5.ECE5.ECE5.ECE5.ECE$12.C3.C7.C3.4CF7C20.C.C.C.C.C3.C5.E.C5.D
.C5.D.C5.E.C5.E.C5.E.C5.E.C$12.C3.C7.C3.C2.ECE2.E23.C.11C3.E4C3.E4C3.
E4C3.E4C3.E4C3.E4C3.E4C$12.C3.C7.C3.C3.C3.C23.C11.C4.C2.C4.C2.C4.C2.C
4.C2.C4.C2.C4.C2.C4.C2.C$12.C3.C7.C3.C3.C3.C23.C10.EC4.C.EC4.C.EC4.C.
EC4.C.EC4.C.EC4.C.EC4.C.EC$12.C3.C7.C3.C3.5C23.12CF7CF7CF7CF7CF7CF7CF
7CF2C$12.C3.C7.C3.C3.C27.C.E.D.D.D2.ECE5.ECE5.ECE5.ECE5.ECE5.ECE5.ECE
5.ECE$12.C3.C7.C3.C3.C27.C.C.C.C.C3.C5.D.C5.E.C5.E.C5.E.C5.E.C5.D.C5.
E.C$12.C3.C6.EC3.C2.EC27.C.11C3.E4C3.E4C3.E4C3.E4C3.E4C3.E4C3.E4C$12.
C3.C3.4CF7CF7C20.C11.C4.C2.C4.C2.C4.C2.C4.C2.C4.C2.C4.C2.C4.C2.C$12.C
3.C3.C2.ECE2.E2.ECE2.D23.C10.EC4.C.EC4.C.EC4.C.EC4.C.EC4.C.EC4.C.EC4.
C.EC$12.C3.C3.C3.C3.C3.C3.C23.12CF7CF7CF7CF7CF7CF7CF7CF2C$12.C3.C3.C3.
C3.C3.C3.C23.C.D.E.D.D2.ECE5.ECE5.ECE5.ECE5.ECE5.ECE5.ECE5.ECE$12.C3.
C3.C3.5C3.5C23.C.C.C.C.C3.C5.E.C5.D.C5.D.C5.E.C5.E.C5.E.C5.D.C$12.C3.
C3.C3.C7.C27.C.11C3.E4C3.E4C3.E4C3.E4C3.E4C3.E4C3.E4C$12.C3.C3.C3.C7.
C27.C11.C4.C2.C4.C2.C4.C2.C4.C2.C4.C2.C4.C2.C4.C2.C$12.C3.C3.C3.C6.EC
27.C10.EC4.C.EC4.C.EC4.C.EC4.C.EC4.C.EC4.C.EC4.C.EC$12.C3.C3.C3.C3.4C
F7C20.12CF7CF7CF7CF7CF7CF7CF7CF2C$12.C3.C3.C3.C3.C2.ECE2.E23.C.E.E.D.
D2.ECE5.ECE5.ECE5.ECE5.ECE5.ECE5.ECE5.ECE$12.C3.C3.C3.C3.C3.C3.C23.C.
C.C.C.C3.C5.D.C5.D.C5.E.C5.E.C5.E.C5.E.C5.E.C$12.C3.C3.C3.C3.C3.C3.C23.
C.11C3.E4C3.E4C3.E4C3.E4C3.E4C3.E4C3.E4C$12.C3.C3.C3.C3.C3.5C23.C11.C
4.C2.C4.C2.C4.C2.C4.C2.C4.C2.C4.C2.C4.C2.C$12.C3.C3.C3.C3.C3.C27.C10.
EC4.C.EC4.C.EC4.C.EC4.C.EC4.C.EC4.C.EC4.C.EC$8.C3.C3.C3.C3.C3.C3.C27.
12CF7CF7CF7CF7CF7CF7CF7CF2C$7.EC3.C2.EC3.C2.EC3.C2.EC27.C.D.D.E.D2.EC
E5.ECE5.ECE5.ECE5.ECE5.ECE5.ECE5.ECE$4.4CF7CF7CF7CF7C20.C.C.C.C.C3.C5.
E.C5.E.C5.E.C5.D.C5.E.C5.E.C5.E.C$4.C2.ECE2.E2.ECE2.D2.ECE2.D2.ECE2.D
23.C.11C3.E4C3.E4C3.E4C3.E4C3.E4C3.E4C3.E4C$4.C3.C3.C3.C3.C3.C3.C3.C3.
C23.C11.C4.C2.C4.C2.C4.C2.C4.C2.C4.C2.C4.C2.C4.C2.C$4.C3.C3.C3.C3.C3.
C3.C3.C3.C23.C10.EC4.C.EC4.C.EC4.C.EC4.C.EC4.C.EC4.C.EC4.C.EC$4.C3.5C
3.5C3.5C3.5C23.12CF7CF7CF7CF7CF7CF7CF7CF2C$4.C3.C7.C7.C7.C27.C.E.D.E.
D2.ECE5.ECE5.ECE5.ECE5.ECE5.ECE5.ECE5.ECE$4.C3.C7.C7.C7.C27.C.C.C.C.C
3.C5.E.C5.E.C5.E.C5.E.C5.D.C5.E.C5.E.C$4.C3.C7.C7.C6.EC27.C.11C3.E4C3.
E4C3.E4C3.E4C3.E4C3.E4C3.E4C$4.C3.C7.C7.C3.4CF7C20.C11.C4.C2.C4.C2.C4.
C2.C4.C2.C4.C2.C4.C2.C4.C2.C$4.C3.C7.C7.C3.C2.ECE2.E23.C10.EC4.C.EC4.
C.EC4.C.EC4.C.EC4.C.EC4.C.EC4.C.EC$4.C3.C7.C7.C3.C3.C3.C23.12CF7CF7CF
7CF7CF7CF7CF7CF2C$4.C3.C7.C7.C3.C3.C3.C23.C.D.E.E.D2.ECE5.ECE5.ECE5.E
CE5.ECE5.ECE5.ECE5.ECE$4.C3.C7.C7.C3.C3.5C23.C.C.C.C.C3.C5.E.C5.E.C5.
E.C5.E.C5.E.C5.E.C5.E.C$4.C3.C7.C7.C3.C3.C27.C.11C3.E4C3.E4C3.E4C3.E4C
3.E4C3.E4C3.E4C$4.C3.C7.C7.C3.C3.C27.C11.C4.C2.C4.C2.C4.C2.C4.C2.C4.C
2.C4.C2.C4.C2.C$4.C3.C7.C6.EC3.C2.EC27.C10.EC4.C.EC4.C.EC4.C.EC4.C.EC
4.C.EC4.C.EC4.C.EC$4.C3.C7.C3.4CF7CF7C20.12CF7CF7CF7CF7CF7CF7CF7CF2C$
4.C3.C7.C3.C2.ECE2.E2.ECE2.D23.C.E.E.E.D2.ECE5.ECE5.ECE5.ECE5.ECE5.EC
E5.ECE5.ECE$4.C3.C7.C3.C3.C3.C3.C3.C23.C.C.C.C.C3.C5.E.C5.E.C5.E.C5.D
.C5.D.C5.D.C5.D.C$4.C3.C7.C3.C3.C3.C3.C3.C23.C.11C3.E4C3.E4C3.E4C3.E4C
3.E4C3.E4C3.E4C$4.C3.C7.C3.C3.5C3.5C23.C11.C4.C2.C4.C2.C4.C2.C4.C2.C4.
C2.C4.C2.C4.C2.C$4.C3.C7.C3.C3.C7.C27.C10.EC4.C.EC4.C.EC4.C.EC4.C.EC4.
C.EC4.C.EC4.C.EC$4.C3.C7.C3.C3.C7.C27.12CF7CF7CF7CF7CF7CF7CF7CF2C$4.C
3.C7.C3.C3.C6.EC27.C.D.D.D.E2.ECE5.ECE5.ECE5.ECE5.ECE5.ECE5.ECE5.ECE$
4.C3.C7.C3.C3.C3.4CF7C20.C.C.C.C.C3.C5.E.C5.D.C5.E.C5.E.C5.E.C5.E.C5.
E.C$4.C3.C7.C3.C3.C3.C2.ECE2.E23.C.11C3.E4C3.E4C3.E4C3.E4C3.E4C3.E4C3.
E4C$4.C3.C7.C3.C3.C3.C3.C3.C23.C11.C4.C2.C4.C2.C4.C2.C4.C2.C4.C2.C4.C
2.C4.C2.C$4.C3.C7.C3.C3.C3.C3.C3.C23.C10.EC4.C.EC4.C.EC4.C.EC4.C.EC4.
C.EC4.C.EC4.C.EC$4.C3.C7.C3.C3.C3.C3.5C23.12CF7CF7CF7CF7CF7CF7CF7CF2C
$4.C3.C7.C3.C3.C3.C3.C27.C.E.D.D.E2.ECE5.ECE5.ECE5.ECE5.ECE5.ECE5.ECE
5.ECE$4.C3.C7.C3.C3.C3.C3.C27.C.C.C.C.C3.C5.E.C5.D.C5.E.C5.E.C5.D.C5.
E.C5.E.C$4.C3.C6.EC3.C2.EC3.C2.EC27.C.11C3.E4C3.E4C3.E4C3.E4C3.E4C3.E
4C3.E4C$4.C3.C3.4CF7CF7CF7C20.C11.C4.C2.C4.C2.C4.C2.C4.C2.C4.C2.C4.C2.
C4.C2.C$4.C3.C3.C2.ECE2.E2.ECE2.D2.ECE2.D23.C10.EC4.C.EC4.C.EC4.C.EC4.
C.EC4.C.EC4.C.EC4.C.EC$4.C3.C3.C3.C3.C3.C3.C3.C3.C23.12CF7CF7CF7CF7CF
7CF7CF7CF2C$4.C3.C3.C3.C3.C3.C3.C3.C3.C23.C.D.E.D.E2.ECE5.ECE5.ECE5.E
CE5.ECE5.ECE5.ECE5.ECE$4.C3.C3.C3.5C3.5C3.5C23.C.C.C.C.C3.C5.D.C5.E.C
5.E.C5.D.C5.D.C5.E.C5.E.C$4.C3.C3.C3.C7.C7.C27.C.11C3.E4C3.E4C3.E4C3.
E4C3.E4C3.E4C3.E4C$4.C3.C3.C3.C7.C7.C27.C11.C4.C2.C4.C2.C4.C2.C4.C2.C
4.C2.C4.C2.C4.C2.C$4.C3.C3.C3.C7.C6.EC27.C10.EC4.C.EC4.C.EC4.C.EC4.C.
EC4.C.EC4.C.EC4.C.EC$4.C3.C3.C3.C7.C3.4CF7C20.12CF7CF7CF7CF7CF7CF7CF7C
F2C$4.C3.C3.C3.C7.C3.C2.ECE2.E23.C.E.E.D.E2.ECE5.ECE5.ECE5.ECE5.ECE5.
ECE5.ECE5.ECE$4.C3.C3.C3.C7.C3.C3.C3.C23.C.C.C.C.C3.C5.E.C5.E.C5.E.C5.
E.C5.D.C5.D.C5.E.C$4.C3.C3.C3.C7.C3.C3.C3.C23.C.11C3.E4C3.E4C3.E4C3.E
4C3.E4C3.E4C3.E4C$4.C3.C3.C3.C7.C3.C3.5C23.C11.C4.C2.C4.C2.C4.C2.C4.C
2.C4.C2.C4.C2.C4.C2.C$4.C3.C3.C3.C7.C3.C3.C27.C10.EC4.C.EC4.C.EC4.C.E
C4.C.EC4.C.EC4.C.EC4.C.EC$4.C3.C3.C3.C7.C3.C3.C27.12CF7CF7CF7CF7CF7CF
7CF7CF2C$4.C3.C3.C3.C6.EC3.C2.EC27.C.D.D.E.E2.ECE5.ECE5.ECE5.ECE5.ECE
5.ECE5.ECE5.ECE$4.C3.C3.C3.C3.4CF7CF7C20.C.C.C.C.C3.C5.E.C5.E.C5.D.C5.
E.C5.E.C5.D.C5.E.C$4.C3.C3.C3.C3.C2.ECE2.E2.ECE2.D23.C.11C3.E4C3.E4C3.
E4C3.E4C3.E4C3.E4C3.E4C$4.C3.C3.C3.C3.C3.C3.C3.C3.C23.C11.C4.C2.C4.C2.
C4.C2.C4.C2.C4.C2.C4.C2.C4.C2.C$4.C3.C3.C3.C3.C3.C3.C3.C3.C23.C10.EC4.
C.EC4.C.EC4.C.EC4.C.EC4.C.EC4.C.EC4.C.EC$4.C3.C3.C3.C3.C3.5C3.5C23.12C
F7CF7CF7CF7CF7CF7CF7CF2C$4.C3.C3.C3.C3.C3.C7.C27.C.E.D.E.E2.ECE5.ECE5.
ECE5.ECE5.ECE5.ECE5.ECE5.ECE$4.C3.C3.C3.C3.C3.C7.C27.C.C.C.C.C3.C5.D.
C5.E.C5.E.C5.D.C5.D.C5.D.C5.D.C$4.C3.C3.C3.C3.C3.C6.EC27.C.11C3.E4C3.
E4C3.E4C3.E4C3.E4C3.E4C3.E4C$4.C3.C3.C3.C3.C3.C3.4CF7C20.C11.C4.C2.C4.
C2.C4.C2.C4.C2.C4.C2.C4.C2.C4.C2.C$4.C3.C3.C3.C3.C3.C3.C2.ECE2.E23.C10.
EC4.C.EC4.C.EC4.C.EC4.C.EC4.C.EC4.C.EC4.C.EC$4.C3.C3.C3.C3.C3.C3.C3.C
3.C23.12CF7CF7CF7CF7CF7CF7CF7CF2C$4.C3.C3.C3.C3.C3.C3.C3.C3.C23.C.D.E
.E.E2.ECE5.ECE5.ECE5.ECE5.ECE5.ECE5.ECE5.ECE$4.C3.C3.C3.C3.C3.C3.C3.5C
23.C.C.C.C.C3.C5.E.C5.E.C5.E.C5.E.C5.E.C5.E.C5.D.C$4.C3.C3.C3.C3.C3.C
3.C3.C27.C.11C3.E4C3.E4C3.E4C3.E4C3.E4C3.E4C3.E4C$4.C3.C3.C3.C3.C3.C3.
C3.C27.C11.C4.C2.C4.C2.C4.C2.C4.C2.C4.C2.C4.C2.C4.C2.C$4.C2.EC3.C2.EC
3.C2.EC3.C2.EC27.C10.EC4.C.EC4.C.EC4.C.EC4.C.EC4.C.EC4.C.EC4.C.EC$8CF
7CF7CF7CF7C20.12CF7CF7CF7CF7CF7CF7CF7CF2C$C6.ECE2.D2.ECE2.D2.ECE2.D2.
ECE2.D23.C.E.E.E.E2.ECE5.ECE5.ECE5.ECE5.ECE5.ECE5.ECE5.ECE$C7.C3.C3.C
3.C3.C3.C3.C3.C23.C.C.C.C.C3.C7.C7.C7.C7.C7.C7.C7.C$C7.C3.C3.C3.C3.C3.
C3.C3.C23.C.C.C.C.C3.C$C7.5C3.5C3.5C3.5C23.C.11C$C7.C7.C7.C7.C27.C11.
C$C7.C7.C7.C7.C27.C11.C$8.C7.C7.C7.C27.C10.EC$8.C7.C7.C7.C27.12CF120C
$8.C7.C7.C7.C27.C10.ECE118.C$8.C7.C7.C7.C27.C11.C119.C$8.C7.C7.C7.C27.
C11.C119.C$8.C7.C7.C7.C27.C3.9C3.113C3.C$8.C7.C7.C7.C27.C3.C7.C3.C111.
C3.C$8.C7.C7.C7.C27.C3.C7.C3.C111.C3.C$16.C7.C7.C27.C3.C7.C3.C111.C3.
C$16.C7.C7.C27.C3.5C3.C3.C111.C3.C$16.C7.C7.C27.C7.C3.C3.C111.C3.C$16.
C7.C7.C27.C7.C3.C3.C109.E.C.E.C$16.C7.C7.C27.C7.C3.C3.C109.E3CE.C$16.
C7.C7.C27.C3.5C3.5C107.4C.C2.C$16.C7.C7.C27.A3.C119.C4.C2.C$16.C7.C7.
C27.B3.C119.2CE3C2.C$24.C7.C27.C3.C119.C2.2C3.C$24.C7.C27.C3.5C115.C2.
3C2.C$24.C7.C27.C7.C115.C4.C2.C$24.C7.C27.C7.C115.C3.2C2.C$24.C7.C27.
C7.C115.C3.C3.C$24.C7.C27.C3.5C115.C3.5C$24.C7.C27.C3.C119.C3.C$24.C7.
C27.C3.C119.C3.C$32.C27.C3.C119.C3.C$32.C27.C3.121C3.C$32.C27.C127.C$
32.C27.C127.C$32.C27.C127.C$32.C27.129C$32.C$32.C!
LifeViewer https://lazyslug.com/lifeviewer
Re: 8-bit microprocessor in a 7-state vN CA
Added to the list.
Here's a Lua script to load the .mem files in Golly because I didn't want to deal with getting the Python program to work.
Also using "little endian" and "big endian" to refer to the organisation of bits in a byte rather than bytes in a word stored in memory is weird to me.
Overall in my opinion this is a good computer.
Here's a Lua script to load the .mem files in Golly because I didn't want to deal with getting the Python program to work.
Code: Select all
--[[
deca-asm.lua
blah 2020
A script to load data into Hactar's computer's ROM.
Hacked together in a few hours.
]]
local g=golly()
g.warn("Ensure that data to load is in the clipboard, then press OK.")
prog = g.getclipstr()
-- write hex data
rom = {}
idx = 0
while true do -- for each line
local new_idx = string.find(prog, "\n", idx+1)
if new_idx == nil then
break
end
local line = string.sub(prog,idx+1,new_idx-1)
if string.sub(line,1,1) ~= "@" then
--g.warn("<"..tonumber("0x"..line)..">")
rom[#rom+1] = tonumber("0x"..line)
end
idx = new_idx
end
top, left = 47, 140 -- location of yellow '+'
for col = 1, 16 do
for row = 1, 64 do
-- get 18 bit instruction to draw
local wnum = rom[(col-1)*64+row]
if wnum == undefined then
wnum = 0 -- default value
end
-- rotate depending on appropriate temporal offset
-- equation derived via trial and error, and looking at Hactar's video,
-- where counting.mem can be seen loaded in
local t_off = -3 + (row-1)*8 - (math.floor(row/2)) - ((row-1)%2)*9 + (col-1)*10
local w = {}
for bit = 0, 17 do
w[(bit+t_off)%18 + 1] = wnum%2
wnum = math.floor(wnum/2)
end
-- draw electrons
local x = left+21+(col-1)*40
local y = top+(row-1)*6
-- the electron stream is p4, but the temporal displacement between
-- rows is 6 steps. The LCM of 4 and 6 is 12, which is 2 rows, so it
-- suffices to deal with only even and odd rows.
if row%2 == 1 then
goto odd_row
else
goto even_row
end
::odd_row::
for bit = 1, 9 do
if w[bit] == 1 then
g.setcell(x+1,y, 1)
g.setcell(x+2,y, 2)
else
g.setcell(x+1,y, 3)
g.setcell(x+2,y, 3)
end
if w[19-bit] == 1 then
g.setcell(x,y+2, 2)
g.setcell(x+1,y+2, 1)
else
g.setcell(x,y+2, 3)
g.setcell(x+1,y+2, 3)
end
x = x + 4
end
goto loop_end
::even_row::
if w[18] == 1 then
g.setcell(x,y, 2)
g.setcell(x,y+1, 1)
else
g.setcell(x,y, 3)
g.setcell(x,y+1, 3)
end
x = x + 2
for bit = 1, 8 do
if w[bit] == 1 then
g.setcell(x+1,y, 1)
g.setcell(x+2,y, 2)
else
g.setcell(x+1,y, 3)
g.setcell(x+2,y, 3)
end
if w[18-bit] == 1 then
g.setcell(x,y+2, 2)
g.setcell(x+1,y+2, 1)
else
g.setcell(x,y+2, 3)
g.setcell(x+1,y+2, 3)
end
x = x + 4
end
if w[9] == 1 then
g.setcell(x,y+1, 1)
g.setcell(x,y+2, 2)
else
g.setcell(x,y+1, 3)
g.setcell(x,y+2, 3)
end
::loop_end::
end
end
Overall in my opinion this is a good computer.
succ
Re: 8-bit microprocessor in a 7-state vN CA
Amazing! It's a much better design than the famous Wireworld computer, which does not have an assembler and has a very minimalistic peculiar instruction set, although I am a fan of OISC (one instruction set computers) and invented one, implemented as a virtual machine with an assembler in Common Lisp.
Your make-rom.py script seems to be buggy though. I tried to run it on Python 2.7.18 under Debian, using your .mem files, and I keep getting the following error:
File "./make-rom.py", line 23
print("Warning: MEM file is longer than 1024 instructions; truncating to 1024 instructions", file=sys.stderr)
^
SyntaxError: invalid syntax
Your should also provide the opbasm assembler in your Github repository or at least a link to it.
Another question: Do you have a tool for automatic loading of .mem files into the CPU? How do you actually program your computer? Inserting the "electrons" by hand is tedious. That's why we don't see other programs besides the primes on the Wireworld computer...
Your make-rom.py script seems to be buggy though. I tried to run it on Python 2.7.18 under Debian, using your .mem files, and I keep getting the following error:
File "./make-rom.py", line 23
print("Warning: MEM file is longer than 1024 instructions; truncating to 1024 instructions", file=sys.stderr)
^
SyntaxError: invalid syntax
Your should also provide the opbasm assembler in your Github repository or at least a link to it.
Another question: Do you have a tool for automatic loading of .mem files into the CPU? How do you actually program your computer? Inserting the "electrons" by hand is tedious. That's why we don't see other programs besides the primes on the Wireworld computer...
- PHPBB12345
- Posts: 1096
- Joined: August 5th, 2015, 11:55 pm
- Contact:
Re: 8-bit microprocessor in a 7-state vN CA
Logic gates:
Slow clock:
Code: Select all
x = 84, y = 28, rule = DECA
15C.A14C.A14C$7.D15.D15.D$7.C15.C15.C10.3A2.A3.A.4A$7.C15.C15.C9.A3.A
.2A2.A.A3.A$7.C15.C15.C9.5A.A.A.A.A3.A$7.C15.C15.C9.A3.A.A2.2A.A3.A$
7.C15.C15.C9.A3.A.A3.A.4A$7.A15.C15.A3$15C.A14C.A14C$7.E15.E15.E$7.C
15.C15.C10.3A2.A3.A.4A2.A3.A2.3A2.5A$7.C15.C15.C9.A3.A.2A2.A.A3.A.2A
2.A.A3.A3.A$7.C15.C15.C9.5A.A.A.A.A3.A.A.A.A.A3.A3.A$7.C15.C15.C9.A3.
A.A2.2A.A3.A.A2.2A.A3.A3.A$7.C15.C15.C9.A3.A.A3.A.4A2.A3.A2.3A4.A$7.A
15.C15.A3$15C.A14C.A14C$6.2C14.2C14.2C$7.C15.C15.C9.A3.A2.3A2.4A$7.C
15.C15.C10.A.A2.A3.A.A3.A$7.C15.C15.C11.A3.A3.A.4A$7.C15.C15.C10.A.A
2.A3.A.A3.A$7.C15.C15.C9.A3.A2.3A2.A3.A$7.A15.C15.A!
Code: Select all
x = 85, y = 4, rule = DECA
3C2.3C.3C.3C.3C.3C.3C.3C.3C.3C.3C.3C.3C.3C.3C.3C.3C$C.C2.C.E.C.E.C.E.
C.E.C.E.C.E.C.E.C.E.C.E.C.E.C.E.C.E.C.E.C.E.C.E.C.E$BA83C$3.3C.3C.3C.
3C.3C.3C.3C.3C.3C.3C.3C.3C.3C.3C.3C.3C!
Re: 8-bit microprocessor in a 7-state vN CA
That error is because make-rom.py is written with Python3 features but you are using Python2. Easiest solution would be if you could run it with Python3, but it doesn't look like there would be too many changes required to make it Py2 compatible.Yoel wrote: ↑October 29th, 2020, 3:05 amYour make-rom.py script seems to be buggy though. I tried to run it on Python 2.7.18 under Debian, using your .mem files, and I keep getting the following error:
File "./make-rom.py", line 23
print("Warning: MEM file is longer than 1024 instructions; truncating to 1024 instructions", file=sys.stderr)
^
SyntaxError: invalid syntax
There's a link in the programs/README.md fileYour should also provide the opbasm assembler in your Github repository or at least a link to it.
I'm pretty sure that's what make-rom.py is meant to do, but I haven't tried it myself.Another question: Do you have a tool for automatic loading of .mem files into the CPU? How do you actually program your computer? Inserting the "electrons" by hand is tedious. That's why we don't see other programs besides the primes on the Wireworld computer...
The 5S project (Smallest Spaceships Supporting Specific Speeds) is now maintained by AforAmpere. The latest collection is hosted on GitHub and contains well over 1,000,000 spaceships.
Semi-active here - recovering from a severe case of LWTDS.
Semi-active here - recovering from a severe case of LWTDS.
Re: 8-bit microprocessor in a 7-state vN CA
It does work with Python3 and produces a partial product that still needs to be manually inserted into the CPU. This is the Fibonacci program produced by the script:
Code: Select all
x = 63, y = 282, rule = DECA
6$36.AB2$19.BA22.BA4$34.AB6$20.AB6.AB2$15.BA4$22.AB$45.A$17.BA26.B4$
16.AB10.AB10.AB2$11.BA10.BA2.BA4$22.AB6.AB2.AB2.AB2$29.BA6.BA2.BA6$
35.BA5$45.A$29.BA10.BA2.B6$31.BA10.BA4$34.AB6.AB2$37.BA2.BA6$31.BA2.B
A6.BA4$38.AB2.AB2$37.BA2.BA4$40.AB2.AB2$43.BA4$34.AB2.AB2.AB2$25.BA6.
BA4$28.AB6.AB2$15.BA22.BA2.BA4$14.AB6.AB6.AB2.AB6.AB$45.A$17.BA10.BA
2.BA2.BA6.B4$28.AB2.AB2.AB2.AB2.AB2$31.BA2.BA6.BA4$11.B2.AB2.AB10.AB
2.AB6.AB$11.A5$12.AB14.AB2$15.BA22.BA4$11.B10.AB6.AB2.AB2.AB$11.A$13.
BA6.BA6.BA10.BA4$16.AB22.AB2$19.BA2.BA6.BA2.BA4$11.B18.AB6.AB2.AB$11.
A33.A$13.BA10.BA6.BA10.B4$12.AB2.AB26.AB2$15.BA2.BA6.BA2.BA6.BA4$14.A
B6.AB2$17.BA2.BA2.BA2.BA2.BA4$16.AB14.AB2.AB6.AB2$27.BA2.BA10.BA4$14.
AB2.AB2.AB10.AB6.AB2$13.BA18.BA4$20.AB6.AB6.AB2.AB2$27.BA2.BA6.BA4$
14.AB2.AB6.AB2.AB$45.A$37.BA6.B4$16.AB6.AB10.AB2.AB2$19.BA2.BA10.BA4$
11.B6.AB2.AB6.AB2.AB$11.A$17.BA4$16.AB2.AB2.AB2.AB2.AB2.AB2.AB2$39.BA
2.BA4$18.AB2.AB6.AB2$13.BA2.BA6.BA2.BA4$16.AB14.AB10.AB2$19.BA6.BA14.
BA4$11.B$11.A$21.BA2.BA6.BA6.BA4$28.AB2$15.BA14.BA2.BA6.BA4$11.B6.AB$
11.A33.A$21.BA2.BA10.BA6.B4$20.AB2$15.BA6.BA2.BA2.BA2.BA2.BA4$11.B18.
AB6.AB2.AB$11.A$33.BA2.BA4$28.AB6.AB2$19.BA6.BA10.BA4$18.AB6.AB$45.A$
13.BA30.B4$12.AB6.AB2.AB6.AB2.AB6.AB6$14.AB2.AB6.AB2.AB6.AB2.AB2$13.B
A2.BA4$12.AB6.AB2.AB6.AB6.AB2$11.BA2.BA4$11.B14.AB2.AB$11.A5$20.AB10.
AB2.AB6.AB2$15.BA!