This assignment is should be uploaded to Homework 5 retry on moodle by 11:00 PM on Monday 24 November.
This is a chance to upgrade your scores on Homework 5.
Implementation of Finite State Machines
In Homework 5, you designed and implemented a finite state machine that produces a 1 if and only if its input bitstring, from the time the FSM was reset, encodes a number that when divided by 5, produced a remainder of 0.
This time, we make a small change: design and implement a finite state machine that produces a 1 if and only if its input bitstring, from the time the FSM was reset, encoded a number that when divided by 6, produces a remainder of 3 or 5.
Here are examples of inputs that satisfy this criteria.
- 11
- 1111
- 111111
- 11111111
- 101
- 1011
- 10111
- 10001011011110110010001011100010010000001
Next state table
S0 | 0 | S0 |
S0 | 1 | S1 |
S1 | 0 | S2 |
S1 | 1 | S3 |
S2 | 0 | S4 |
S2 | 1 | S5 |
S3 | 0 | S0 |
S3 | 1 | S1 |
S4 | 0 | S2 |
S4 | 1 | S3 |
S5 | 0 | S4 |
S5 | 1 | S5 |
Output table
S0 | 0 |
S1 | 0 |
S2 | 0 |
S3 | 1 |
S4 | 0 |
S5 | 1 |
Try to keep it simple. I suggest you use a ROM and register as shown in the Homework 5 solution. In fact you can just start with the Homework 5 solution, but be sure to acknowledge its creator.
Also, be sure to include a reset line for starting your circuit in the right state.
Starting point
Testing of the Finite State Machines
Describe your plan for testing your finite state machine. This should be a couple of paragraphs long.
What to turn in
Turn in the Logisim .circ file for your implementation and a file describing your testing strategy.