Ik dacht gister, laat ik eens wat anders doen dan met een pic spelen... Ik zat wat op YT te kijken naar projectjes en opeens kwam een 4 bit 'rekenmachien' voorbij die ze een 4 bit computer noemden. Hierdoor kwam ik op het idee om het te gaan proberen: een simpele 4-bit cpu.
Zo heb ik me gister een beetje verdiept in cpu's en heb gekeken of ik een blokschema/datapad van de cpu kon tekenen. Dit is wel gelukt. Nu is mijn vraag of dit voor een 4-bit cpu met 8-adressen, 4-bit opcode en 4-bit operands bruikbaar is: (ik heb de tekening zelf getekend en ontworpen... Fouten of 'onmogelijkheden' hoor ik graag!)
PC = program counter
P. M. = program memory
IR = instruction register
cont. logic = control logic (verzorgt de cycli en de enables/writes)
opc = opcode
opr = operand
+ 1 = 'opteller' voor program counter
Ik had ook al een mogelijke instructieset in gedachte:
code:
0 MOVLA |opr -> A |0 4bOPR
1 MOVLB |opr -> B |1 4bOPR
2 MOVAF |A -> ram[opr] |2 8bADR
3 MOVBF |B -> ram[opr] |3 8bADR
4 MOVFA |ram[opr] -> A |4 8bADR
5 MOVFB |ram[opr] -> B |5 8bADR
6 GOTO / JMP |pc = opr |6 8bADR
7 GOTOIF / JMPIF |pc = opr als (STATUS.Z = 0) |7 8bADR
8 ADD |A + B -> A |8
9 SUB |A - B -> A |9
A AND |A ^ B -> A |A
B OR |A V B -> A |B
C XOR |A XOR B -> A |C
D NOTA |-(A) -> A |D
E NOTB |-(B) -> A |E
F NOP |A -> A |F
INPUT -> 4bOPC 4bOPR / 4bOPC 8bADR
Is dit iets bruikbaars?
Ik wil het graag eerst helemaal gesimuleerd hebben in logisim zodat ik eerst helemaal bezig kan zijn met het logische gedeelte en later pas met de tijd, spanning, stroom enz... En dan hoef ik ook geen horden breadboards te kopen of enorm lastige prints te ontwerpen.
Alvast bedankt!
Joppe