Instruction Set and Reset
Here is a timing diagram and the instruction set:
Looking at Busy Beaver IV:
The coding is reversed (easy fix) but the code executes a shift and a write at the same time. My code has these instructions separated. I can code Busy Beaver but I will require twice as many instructions (i.e. cards or states).
If I want to execute this code directly, I will need a four phase clock rather than the current two phase clock, and some decoding logic.
On a new instruction, the tape has to:
- Read and write the data from/to tape
- Move the tape
This requires two clock cycles.
Finally in the Busy Beaver IV code, the Halt has been present as a state rather than an instruction. This technically does not work as there is no halt instruction per say. I will need to keep the my Hold instruction to be used with a Halt state. So Busy Beaver IV will need 5 cards.
Reset
Reset is a bit tricky for a FSM. Really it is a restart. The process is to tri-state the FSM output so that the pull down (or up) resistors can impose a restart address and instruction.
This is repeatedly executed until the reset signal is lifted. The reset signal has to be synchronised with the clock so that clock is in the correct phase upon start up for the first instruction.
So back to the drawing board, increase the FSM capacity and consider a four phase clock, tape decoder and restart logic.
AlanX
Discussions
Become a Hackaday.io Member
Create an account to leave a comment. Already have an account? Log In.