For a while i am planning to built programmable 8 bit computer with basic logic gates and latches. In order to plan and prototype, I gave it a shot inside houdini. It is totally not related to computer graphics but still in houdini, so decided to put it here.
For binarry information point color is used, and storage of this information is handled by file nodes . Logic gates, clocks and shift registers designed as realworld correspondings.
Components
- Logic gates
- Full adder
- 8bit adder
- Clock
- ShiftRegister
- Flipflops, latches
- binary to decimal converter
- decimal to binary converter
Logic Gates:
Architecture
- İnputA
- İnputB
- Programming Unit
- RegisterA
- RegisterB
- RAM
- Aritmetics unit
- Bus
- Output
Program Control Unit
MicroCycles Data is cycled through 9 data points(pins). When one pin is activated corresponding operations is done. In each read step of fallowing micro instructions is done. Each read and write operation in one registery corresponds wite-read operation on bus.
Programming Unit
array of instructions and data is recorded to ram, when in programing mode. Than in running mode each line of code is read from ram as instruction-data set.
string instruction_array[]=
{
“00000000”, “00000000”, // null
“00000010”, “00000000”, // inData
“00000011”, “00000000”, // WRA
“00000101”, “00000000”, // WRB
“00000111”, “00000000”, // WRC
“00001001”, “00000000”, // WRD
};
SubRegistries:
“ProgramCounter” stores current data line to be read and executed
“Reg_Mem.Adress” stores current data line to be read and executed
“Reg_current.Instruction” stores current instruction located on this address line
“Reg_Mem.Data” stores current data located on this address line
also this unit has direct connection to “Ram” to read instructions and data from.
Pin 01 Write “REG.mem.adress” from prog-counter
Pin 02 Read “REG.mem.adress” to “RAM.adress” &Read RAM
Pin 03 Write “REG. current.INS”
Pin 04 PROCG counter +1
Pin 05 Write “REG”mem.adress” from progCounter
Pin 06 Read “REG.mem.adress” to “RAM adress”&Read RAM
Pin 07 Write “REG.mem.Data”
Pin 08 Read “REG.current.INS” & Read “REG.mem.Data”
Pin 09 Counter plus
Shortly,
-ram is read by two line. First line is accepted as “as reg.current.instruction”, second line as “reg.mem.data.”
-both instruction and data given as output
-program counter incremented accordingly to new lines to be read.
-instructions excecuted. Most of the instructions does not need data, like “readRegA” however some of them need secondary data attached to it. Like, “goTo” instruction , it will need data of “which line.”
Instruction List:
0 null
1 Read inA – data
2 Read inB -data
3 Write RegA
4 Read RegA
5 Write RegB
6 Read RegB
7 Write RegC
8 Read RegC
9 Write RegD
10 Read RegD
13 Read ALU
15 goTO -data
references__________________________________
Building an 8-bit breadboard computer! Ben Eater.