QFTASM

QFTASM

This is post 10 of 10 in the series “Quest for Tetris” QFTASM (Quest for Tetris Assembly) is the “human readable” representation of the instructions that will be performed by our processor.  El’endia has written an interpreter for QFTASM at his website, complete with documentation and example code. Opcodes Since we are using 4 bits for the opcode, there is a limit of 16 possible operations, of which we have currently assigned 11.  Below is a more detailed explanation of…

Read More Read More

Architectural Design

Architectural Design

This is post 9 of 10 in the series “Quest for Tetris” One of the more tedious steps of building the computer is the actual assembly, going from simple circuits to more complex ones. We have decided to actually leapfrog over this step and go straight to architectural design for a few reasons: Circuit simulator is still a work in progress, plagued by disease and other unfortunate circumstances. By deciding what our architecture is going to be, we will know exactly…

Read More Read More

Domaineering

Domaineering

The GoL computer is now in the architecture design phase.  There’s plenty of ideas floating around, but I don’t really have material to make a blog post about it yet, so I’m doing something different,  A couple days ago, there was a sale on .xyz domains.  To be more specific, each domain was $0.02 for the first year.  (The sale price has since risen to $0.22, which isn’t as fun.)  So, I decided #yolo and bought a couple domains.  Some were…

Read More Read More

The Synchronizer

The Synchronizer

This is post 8 of 10 in the series “Quest for Tetris” Processors are as slow as their slowest component.  While true in conventional CPUs, that phrase takes on a whole new meaning in cellular automata.  At any given moment, there are lots of little pieces of data flowing around in our computer, and in order for two pieces to properly interact, the selected pieces of data must be perfectly in sync with each other.  In the previous post, I…

Read More Read More

ROM

ROM

This is post 7 of 10 in the series “Quest for Tetris” The bulk of the program for the computer will be stored in ROM, or Read-Only Memory.  We chose to use ROM because it tends to be more compact than RAM, and the speed of memory access will be one of the bottlenecks of our computer (ROM will be massive, like 1000s of tiles). Data Storage We chose to use grid-based ROM.  This means that data is stored in…

Read More Read More

Serial Data and Binary Addition

Serial Data and Binary Addition

This is post 6 of 10 in the series “Quest for Tetris” Okay, so we have now created a notion of a standardized grid on which our circuits will be built.  The next step involved a crucial design decision, one which will affect the design of every circuit in the computer.   The question is, what format will the data be in?  There are two big options: Parallel: A byte of data will be represented as one electron on each…

Read More Read More

Standardization

Standardization

This is post 5 of 10 in the series “Quest for Tetris” As I have mentioned in previous posts, it is important for all of the basic building blocks to have similar sizes and delays, so that they are compatible in larger circuits.  The next level of abstraction is that of tiles, which each tile representing a single wire or gate.  By holding ourselves to strict requirements for the underlying gates, we will be able to run our simulations in…

Read More Read More

Building Blocks: Logic Gates

Building Blocks: Logic Gates

This is post 4 of 10 in the series “Quest for Tetris” The second class of building blocks is where things get interesting: logic gates.   In real-life digital design, the gates you would typically encounter are as follows: AND OR NOT NAND NOR XOR XNOR With the exception of NOT (which has a single input), all of the gates listed above have two inputs and one output. Furthermore, they are symmetrical: swapping the order of inputs has no effect….

Read More Read More

Building Blocks: Wires

Building Blocks: Wires

This is post 3 of 10 in the series “Quest for Tetris” Our vision for the GoL computer is one similar to real computers.  That is, it’s built from logic gates, has memory, adders, clocks, etc., and is programmed in a format comparable to real assembly language.  Just like regular computers, we have to start from the basics: wires and logic gates.  The first task is to find implementations of those simple components in metapixels. The order in which I…

Read More Read More

Intro to Metapixels

Intro to Metapixels

This is post 2 of 10 in the series “Quest for Tetris” The core of Conway’s Game of Life is the cell, which can either be live or dead.  Or rather, a grid of such cells with unbounded size.  The simulation is run in generations, similar to “ticks” in video games.  The state of the simulation during a particular generation is derived from the state of the previous generation, following simple rules.  If a dead cell is surrounded by exactly three live neighbors (out…

Read More Read More