# Developing a Transition Table based on a Schematic

Discussion in 'Homework Help' started by czorn, Feb 9, 2011.

1. ### czorn Thread Starter New Member

Jan 26, 2011
6
0
I have a HW question that asks me to determine count for a synchronous counter based on a schematic. I know how to develop the circuit based on a desired count but I don't know how to work backwards.

Please look at the attached file and provide me with a way to get started.

Thanks

File size:
144.7 KB
Views:
27
2. ### Georacer Moderator

Nov 25, 2009
5,151
1,266
A methodical way to solve this is to start from a given state (0000) and work simultaneously with all of the 4 outputs. Make the state you find in each step as current and start over. Here's what I mean:

$\left[ \begin{array}{c|c} \text{Current States} & \text{Next States} \\
\hline\\
\text{WXYZ} & \text{W'X'Y'Z'} \\
\hline \\
0000 & 0001 \\
0001 & 0010 \\
\ldots & \ldots \end{array} \right]
$

Do you understand my methodology? If finding the next state confusing, try adding more columns to create intermediate steps for each line.

Is that clear?

3. ### t_n_k AAC Fanatic!

Mar 6, 2009
5,448
783
You know each of the current JK output states which are presented through logic conditions to the JK inputs.

At the start W=X=Y=Z=0 and hence W'=X'=y'=Z'=1

So JK flip-flop W has current inputs J=XYZ=0 & K=YZ=0. Based on the JK function, you can then predict the resulting states of W[Q] and W'[Q'] at the next clock cycle. Do this for each flip-flop and then you will have the current states for the successive clock cycles - and so forth, until you have a full sequence of possible states W,X,Y,Z.

4. ### Georacer Moderator

Nov 25, 2009
5,151
1,266
Remark: t_n_k uses the form X' to denote the complement of X. In my table X' is used to denote the next value of X.

5. ### czorn Thread Starter New Member

Jan 26, 2011
6
0
Georacer- I understand what you are saying about sequentially moving the active bit, and propogating the next state table. However, what is unclear is, that by taking that method we are sequentially just counting up. What if this count happened to be 0,3,7,.... and wasn't sequential? I know in this case it is sequential, but I also know it isn't a MOD16. So if I take your approach I wouldn't get the correct Modulus count for this circuit. Does that make sense or am I not understanding what you were saying?

t_n_k- so I see what you are saying about the W=X=Y=Z=0 & W'=X'=y'=Z'=1. Let me ask you this, the change in output wouldn't be until the next clock cycle? So for instance on end of CLK cylce 1 Z goes high, but Y won't go high until end of CLK cycle 2, and finally Y & Z won't both go low until the end of CLK cycle 4. So the change on inputs J & K isn't detected until the next clock cycle?

6. ### Georacer Moderator

Nov 25, 2009
5,151
1,266
As FFs are used, any changes won't happen until the next clock cycle.
I didn't suggest to count up in the Current State column. I told you to start with 0000 (as suggested by the exercise) and then continue with the state you go to, on the next clock cycle.
That way, depending on the circuit, you might get 0,1,2,3... or a Fibonacci sequence. However, the count will always be sequential and have a steady period because that all you can do with a circuit made up from FFs.

7. ### czorn Thread Starter New Member

Jan 26, 2011
6
0
Georacer: now I understand what you meant. I was hoping there was some tool I could use, something like a reverse k-map to make it easier, but I guess no such luck.

8. ### Georacer Moderator

Nov 25, 2009
5,151
1,266
You can't backtrack the Karnaugh map, because that tool doesn't dictate how you will implement your sequence. Even if you have a ready-made State Table, you can implement it by using either FFs, counters, simple gates, MUXs etc.

The process isn't formulated, and therefore can't be backtraced.

Related Forum Posts:
1. Replies:
7
Views:
985
2. Replies:
25
Views:
2,976
3. Replies:
14
Views:
6,745
4. Replies:
8
Views:
2,847
{"extraction_info": {"found_math": true, "script_math_tex": 0, "script_math_asciimath": 0, "math_annotations": 0, "math_alttext": 0, "mathml": 0, "mathjax_tag": 0, "mathjax_inline_tex": 0, "mathjax_display_tex": 0, "mathjax_asciimath": 0, "img_math": 0, "codecogs_latex": 0, "wp_latex": 0, "mimetex.cgi": 1, "/images/math/codecogs": 0, "mathtex.cgi": 0, "katex": 0, "math-container": 0, "wp-katex-eq": 0, "align": 0, "equation": 0, "x-ck12": 0, "texerror": 0, "math_score": 0.6295424699783325, "perplexity": 1787.7731254703963}, "config": {"markdown_headings": true, "markdown_code": true, "boilerplate_config": {"ratio_threshold": 0.18, "absolute_threshold": 10, "end_threshold": 15, "enable": true}, "remove_buttons": true, "remove_image_figures": true, "remove_link_clusters": true, "table_config": {"min_rows": 2, "min_cols": 3, "format": "plain"}, "remove_chinese": true, "remove_edit_buttons": true, "extract_latex": true}, "warc_path": "s3://commoncrawl/crawl-data/CC-MAIN-2017-09/segments/1487501171834.68/warc/CC-MAIN-20170219104611-00335-ip-10-171-10-108.ec2.internal.warc.gz"}