TheALU
:
AttheheartofeveryCPUliesanALU(arithmeticlogicunit)thatismeanttodoalloftheboolean
functionsthatweneed.TheALUIusedisacustommade8bitCLAaddercalledCLE(Carry
LookEverywhere).TheALUalsohas3mainflags,If0,Carryout,andShiftunderflow.
TheALUhas6controllines.
!a
!b
Or
Cin
FloodCarry
RSHFT
Usingthese6controllines,anybooleanexpressioncanbemade.
OROr
NOROr&FloodCarry
AND!a&!b&Or&FloodCarry
NAND!a&!b&Or
XOR!b&FloodCarry
XNORFloodCarry
SUBTRACT!b&Cin
2)
TheRegisters
:
Theregistersneed3arguments...
1WriteAddress
2ReadAddress
3DataIn
TheDatainwillcomefromtheoutputoftheALU
3)
TheExecutionUnit:
ThispartoftheCPUcombinestheregisterswiththeALUtomakeaclosedloopcircuit.An
Encoder/DecoderisaddedtotheALUforitsOPcodes.TheRegistersgetaddresslinesfor
readingandwriting,andRAMwasadded(butisnotfunctional).ThelastthingonthisistheALU
Flaggingsystem.
4)
InstructionDecoder
:
ThispartoftheCPUismeanttointerfacewiththe16bitinstructionsetthatthisCPUisbuilt
upon.Ittakesa4bitOPCodeanddecideswhattodowiththedataforthatcurrentinstruction.
Theprogramcounterisaregisterthatisusedtocountupby1.TheoutputofthePCisthe
currentlineofROMwearereadingfrom.
TheExecutionUnitalsohasaFlagcheckerhookeduptoitsothatbranchingcommandscanbe
executed.Thisisthelogictotherightoftheredrectangle.
5)
TheROM
:
ThispartoftheCPUinterfaceswiththeinstructiondecoderandwillallowoperationstobe
executed.TheROMgetscodedinHexadecimal.
6)
TheInstructionSet
:
ThisiswhattheCPUwasdesignedaround.Itisa16bitwideISA(instructionsetarchitecture).
Thefirst4bitsaretheOPcode.Thenext3bitsareReadA,then3bitsforReadBandthen3
bitsforWrite,andlastly3bitsfortheImmediate.
7)
MultiplicationAlgorithm
:
ThisisthemultiplicationalgorithmandhowIfiguredouttheassemblycode.Itisaformofbit
shiftandadd.Lines22thru29aredisplayingtheresult,thentheprogramloopsbacktoline22.
EverythingdocumentedwasproducedbyAlexJarvis,11/30/15.