English Deutsch Français Italiano Español Português 繁體中文 Bahasa Indonesia Tiếng Việt ภาษาไทย
All categories

hello all, I have to design a state machine that transitions based on two inputs: w2 and w1. The states look like this:

0
1 2
3

if w2w1 = 10, state transitions clockwise (0, 2, 3, 1, 0, 2...) if w2w1 = 01, it's counterclockwise (0, 1, 3, 2, 0, 1...). if it's 00, then it remains where it is, and if it's 11, then it jumps across (0, 3, 0, 3) or (1, 2, 1, 2) depending on where it is at that point.

I've set up the table like this:

State 00 01 10 11
0 0 1 2 3
1 1 3 0 2
2 2 0 3 1
3 3 2 1 0

first column is present state, next columns are the next state depending on inputs w2w1. finally, if state is odd (1, 3) the final output of circuit (EW) is 10, otherwise output is 01.

i'm a little lost as to what to do next! some hints would be appreciated as I've never done this type of circuit before.

Thanks!
-SelArom

2006-11-26 17:17:37 · 3 answers · asked by SelArom 1 in Science & Mathematics Engineering

well, I have a general understanding of how flip flops and circuits work. the last project was also a finite state machine... but it only depended on a single input, so it was straightforward to derive the functions for each output...

but the transitions for this problem depend on TWO inputs, and each state has a seperate output of two bits... so I'm totally lost on how to implement this

2006-11-26 18:43:54 · update #1

that's definitely an approach I never considered, so thanks for the idea!

but i'm still lost on one thing here, and I think it might just be my not understanding the problem:

if the output of the states (O and E) can only be O = 1; E = 0 for states 1 or 3, and 0 = 0; E = 1 for states 0 and 2, how do I differentiate those states from each other?

for example, say I'm at state zero... the output is at 10 because it's even. but how do I tell the circuit that it's at zero, as opposed to 2, which has the same output? if it's at state 0, and the w1w2 input changes to 10, it would go to state 2, which is also 10. but if I was rather starting at state 2, and w2w1 went to 10, then the output would be 01, because it would go to state 3, which is odd. does that make sense? how do I make the system keep track of what state it's in if the outputs are the same for 2 sets of states?

the assignment doesn't address this, so I don't really know what to do here :(

-SelArom

2006-11-26 20:57:07 · update #2

3 answers

If you can draw it like a circuit it should be a little easier to see.
Click on this site and go through the 'prev page' and 'next pages' for samples of Boolean logic.
http://computer.howstuffworks.com/boolean2.htm
Hope this helps.
Try using the output as an input to keep track of state

2006-11-26 18:27:05 · answer #1 · answered by StayBeZe 4 · 0 0

Try thinking of the inputs to your F/Fs as 4-to-1 muxes, with your input bits as the selector bits. We know that when w2w1 = 00, both mux outputs must be 0, so we know those inputs. We also know that when w2w1 = 11, both mux outputs must be NOT Q (toggle the F/F state), so we know those inputs.

See if you can figure out what needs to be the mux outputs (F/F inputs) with w2w1= 10. Try drawing a timing diagram to show the F/F outputs after each clock, starting with w2w1 = 00 and then changing to w2w1 = 10 after two clocks.

After you do that and figure out the 01 state, you'll probably see how the 4-to-1 mux could be simplified to just a few gates.

Ah, yes, the good old days...

2006-11-27 03:52:17 · answer #2 · answered by sd_ducksoup 6 · 0 0

I dont know if it is correct.. As i 2 m a student learning digital electronics.. It sounds lik a counter.. And specific.. if u enable 10 it is even counter & if it is 01 it is odd counter.. For enabling the circuit, use a multiplexer..

2006-11-27 12:46:39 · answer #3 · answered by ((Gaining knowledge.) 2 · 0 0

fedest.com, questions and answers