Professional Documents
Culture Documents
Fill (4 - (endOfCommand / 3) % 4) % 4
}
; 1 clock
Split AfromR0 | AluLatch
; 2 clock
Split (WriteRegister * writeRegister) | (WriteState * writeState) | IPClock |
CommandDone
FillTheRest
}
; 1 clock
Split IPClock
; 2 clock
Split AfromMemory | AluLatch
; 3 clock
Split WriteRegister | IPClock | CommandDone
FillTheRest
}
; 1 clock
Split AfromMemory | DataAddress | AluLatch
; 2 clock
Split WriteRegister | IPClock | CommandDone
FillTheRest
}
atomic macro CommandSD {
; 0 clock
Split 0
; 1 clock
Split DataAddress | WriteMemory | IPClock | CommandDone
FillTheRest
}
; 1 clock
Split AfromIP | AluLatch
; 2 clock
Split WriteRegister | IPClock | CommandDone
FillTheRest
}
; 1 clock
Split jumpMask | IPClock | CommandDone
FillTheRest
}
; 1 clock
Split (HaltFlag 1)
; 2 clock
Split IPClock | CommandDone
FillTheRest
}
macro main {
;
CommandAlu 1, 1 ; 0 - ALU command on 2 registers write result
to first one and saves state flags
CommandAlu 1, 0 ; 1 - ALU command on 2 registers write result
to first one and not affect flags
CommandAlu 0, 1 ; 2 - ALU command on 2 registers and affect
flags
CommandHalt ; F
}