Primitive Iterator (or PI) is a RISC, Von Neumann computer architecture I designed.
It features an incredibly simple assembly - everything can be achieved with just two diferent instructions: MOV and FLAG. Memory mapping of registers allowed to significantly simplify the architecture.
The core principle behind PI, is that complexity should always be on the programmer's side. Therefore there is no complex, multi-step instructions (like LOOP, that we know from x86 processors). Both instructions are designed to be executed in just one clock cycle and do only one, simple thing.
With PI assembly, you are essentially programming in micro-code.
It's also possible to implement it using a pipeline, which would make for a whooping 2 instructions per clock cycle. Simplicity allows for very few layers of logic gates, which (in theory) should make for low latency and thus a fast clock.
More information is availible in the ISA document. Availible in the 4-bit version and the 8-bit version
Documentation
ISA (Instruction Set Architecture) document.
Availible for:
-4bit version
-8bit version
RTL Digital Design
VHDL design of a PI microcontroller for the Digilent Atlys board with Spartan 6.
Supporting:
-8 bit version
DTL Schematics
Logical design/simulation (on the logic gate level) of a PI computer made with the Circuit Verse software.\
Availible for:
-4bit version
Emulation
There is an emulator of a PI machine developed in C++. This one has it's own separate readme file.
Supporting:
-4 bit version
-8 bit version
Assembler
There is an assembler for the PI architecture. That is a program that takes assembly code and interprets it into machine code.
Supporting:
-4 bit version
-8 bit version
Long term
_______________________________________________________________________
-actually building a computer with logic gates
-compilation of C to the PI assembly
PI_4bit folder contains everything pertaining to the 4-bit PI, PI_8bit folder contains everything pertaining to the 8-bit PI (including the VHDL design files), pi_vm folder contains the emulator, pi_asm folder contains the assembler.