0
\$\begingroup\$

I am kinda new to the website, I just came across it after looking for answers for such a long time. I have an assignment that asks to add an input bit to your circuit from the circuit I created that goes up my sequence of 3 up to 15 called U (for up). If U is a 1, your circuit should count up through the sequence of multiples of 3 as normal. If U is a 0, your circuit should count down through the sequence of multiples of 3 (0, 15, 12, ..., 6, 3, 0, 15, 12...). I was able to draw the truth table and the K maps both for going up and down but I don't know how to implement the input circuit. For this assignment, we use a program called Logisim. Please let me know if extra information is needed

This is the counter going up enter image description here This is the counter going down

enter image description here

\$\endgroup\$
  • \$\begingroup\$ yes, we need more information ... please tell us what is your question \$\endgroup\$ – jsotola Jun 30 '19 at 4:28
  • \$\begingroup\$ How do I make the counter go up and down? I understand that I need an input wire but what does it connect to and how? \$\endgroup\$ – Yousef Wally Jun 30 '19 at 4:34
  • \$\begingroup\$ @YousefWally Are you allowed to use any component? Or are there limitations to what you can and cannot use in Logisim? Also, note that going between 0 and 15 (either direction) isn't adding or subtracting 3, mod 3. It's adding or subtracting 1. So there is a slight complexity there. Specifically, I'm wondering if you are allowed to use a T-type FF (JK wired appropriately?) (Look at this answer for an example of how to proceed with your project.) \$\endgroup\$ – jonk Jun 30 '19 at 4:57
  • \$\begingroup\$ overlay the two circuits and add gates to allow switching between the two layouts. under control of the U line. \$\endgroup\$ – Jasen Jun 30 '19 at 9:44
1
\$\begingroup\$

Here's the state transitions:

$$\begin{array}{c|c|c|c|c} \text{State} & \text{U=1 Next} & \text{U=1 Excite} & \text{U=0 Next} & \text{U=0 Excite}\\\\ {\begin{smallmatrix}\begin{array}{cccc} Q_D & Q_C & Q_B & Q_A\\\\ 0&0&0&0\\ 0&0&1&1\\ 0&1&1&0\\ 1&0&0&1\\ 1&1&0&0\\ 1&1&1&1\\\\ 0&0&0&1\\ 0&0&1&0\\ 0&1&0&0\\ 0&1&0&1\\ 0&1&1&1\\ 1&0&0&0\\ 1&0&1&0\\ 1&0&1&1\\ 1&1&0&1\\ 1&1&1&0\\ \end{array}\end{smallmatrix}} & {\begin{smallmatrix}\begin{array}{cccc} Q_D & Q_C & Q_B & Q_A\\\\ 0&0&1&1\\ 0&1&1&0\\ 1&0&0&1\\ 1&1&0&0\\ 1&1&1&1\\ 0&0&0&0\\\\ x&x&x&x\\ x&x&x&x\\ x&x&x&x\\ x&x&x&x\\ x&x&x&x\\ x&x&x&x\\ x&x&x&x\\ x&x&x&x\\ x&x&x&x\\ x&x&x&x\\ \end{array}\end{smallmatrix}} & {\begin{smallmatrix}\begin{array}{cccc} T_D & T_C & T_B & T_A\\\\ 0&0&1&1\\ 0&1&0&1\\ 1&1&1&1\\ 0&1&0&1\\ 0&0&1&1\\ 1&1&1&1\\\\ x&x&x&x\\ x&x&x&x\\ x&x&x&x\\ x&x&x&x\\ x&x&x&x\\ x&x&x&x\\ x&x&x&x\\ x&x&x&x\\ x&x&x&x\\ x&x&x&x\\ \end{array}\end{smallmatrix}} & {\begin{smallmatrix}\begin{array}{cccc} Q_D & Q_C & Q_B & Q_A\\\\ 1&1&1&1\\ 0&0&0&0\\ 0&0&1&1\\ 0&1&1&0\\ 1&0&0&1\\ 1&1&0&0\\\\ x&x&x&x\\ x&x&x&x\\ x&x&x&x\\ x&x&x&x\\ x&x&x&x\\ x&x&x&x\\ x&x&x&x\\ x&x&x&x\\ x&x&x&x\\ x&x&x&x\\ \end{array}\end{smallmatrix}} & {\begin{smallmatrix}\begin{array}{cccc} T_D & T_C & T_B & T_A\\\\ 1&1&1&1\\ 0&0&1&1\\ 0&1&0&1\\ 1&1&1&1\\ 0&1&0&1\\ 0&0&1&1\\\\ x&x&x&x\\ x&x&x&x\\ x&x&x&x\\ x&x&x&x\\ x&x&x&x\\ x&x&x&x\\ x&x&x&x\\ x&x&x&x\\ x&x&x&x\\ x&x&x&x\\ \end{array}\end{smallmatrix}} \end{array}$$


Once you have that much, all you need to do is to lay out four K-map tables for each condition of \$U\$.

For \$U=1\$ (count up):

$$\begin{array}{rl} \begin{smallmatrix}\begin{array}{r|cccc} T_D&\overline{Q_B}\:\overline{Q_A}&\overline{Q_B}\: Q_A&Q_B \:Q_A&Q_B \:\overline{Q_A}\\ \hline \overline{Q_D}\:\overline{Q_C}&0&x&0&x\\ \overline{Q_D}\:Q_C&x&x&x&1\\ Q_D\: Q_C&0&x&1&x\\ Q_D\:\overline{Q_C}&x&0&x&x \end{array}\end{smallmatrix} & \begin{smallmatrix}\begin{array}{r|cccc} T_C&\overline{Q_B}\:\overline{Q_A}&\overline{Q_B}\: Q_A&Q_B \:Q_A&Q_B \:\overline{Q_A}\\ \hline \overline{Q_D}\:\overline{Q_C}&0&x&1&x\\ \overline{Q_D}\:Q_C&x&x&x&1\\ Q_D\: Q_C&0&x&1&x\\ Q_D\:\overline{Q_C}&x&1&x&x \end{array}\end{smallmatrix}\\\\ \begin{smallmatrix}\begin{array}{r|cccc} T_B&\overline{Q_B}\:\overline{Q_A}&\overline{Q_B}\: Q_A&Q_B \:Q_A&Q_B \:\overline{Q_A}\\ \hline \overline{Q_D}\:\overline{Q_C}&1&x&0&x\\ \overline{Q_D}\:Q_C&x&x&x&1\\ Q_D\: Q_C&1&x&1&x\\ Q_D\:\overline{Q_C}&x&0&x&x \end{array}\end{smallmatrix} & \begin{smallmatrix}\begin{array}{r|cccc} T_A&\overline{Q_B}\:\overline{Q_A}&\overline{Q_B}\: Q_A&Q_B \:Q_A&Q_B \:\overline{Q_A}\\ \hline \overline{Q_D}\:\overline{Q_C}&1&x&1&x\\ \overline{Q_D}\:Q_C&x&x&x&1\\ Q_D\: Q_C&1&x&1&x\\ Q_D\:\overline{Q_C}&x&1&x&x \end{array}\end{smallmatrix} \end{array}$$

For \$U=0\$ (count down):

$$\begin{array}{rl} \begin{smallmatrix}\begin{array}{r|cccc} T_D&\overline{Q_B}\:\overline{Q_A}&\overline{Q_B}\: Q_A&Q_B \:Q_A&Q_B \:\overline{Q_A}\\ \hline \overline{Q_D}\:\overline{Q_C}&1&x&0&x\\ \overline{Q_D}\:Q_C&x&x&x&0\\ Q_D\: Q_C&0&x&0&x\\ Q_D\:\overline{Q_C}&x&1&x&x \end{array}\end{smallmatrix} & \begin{smallmatrix}\begin{array}{r|cccc} T_C&\overline{Q_B}\:\overline{Q_A}&\overline{Q_B}\: Q_A&Q_B \:Q_A&Q_B \:\overline{Q_A}\\ \hline \overline{Q_D}\:\overline{Q_C}&1&x&0&x\\ \overline{Q_D}\:Q_C&x&x&x&1\\ Q_D\: Q_C&1&x&0&x\\ Q_D\:\overline{Q_C}&x&1&x&x \end{array}\end{smallmatrix}\\\\ \begin{smallmatrix}\begin{array}{r|cccc} T_B&\overline{Q_B}\:\overline{Q_A}&\overline{Q_B}\: Q_A&Q_B \:Q_A&Q_B \:\overline{Q_A}\\ \hline \overline{Q_D}\:\overline{Q_C}&1&x&1&x\\ \overline{Q_D}\:Q_C&x&x&x&0\\ Q_D\: Q_C&0&x&1&x\\ Q_D\:\overline{Q_C}&x&1&x&x \end{array}\end{smallmatrix} & \begin{smallmatrix}\begin{array}{r|cccc} T_A&\overline{Q_B}\:\overline{Q_A}&\overline{Q_B}\: Q_A&Q_B \:Q_A&Q_B \:\overline{Q_A}\\ \hline \overline{Q_D}\:\overline{Q_C}&1&x&1&x\\ \overline{Q_D}\:Q_C&x&x&x&1\\ Q_D\: Q_C&1&x&1&x\\ Q_D\:\overline{Q_C}&x&1&x&x \end{array}\end{smallmatrix} \end{array}$$

You can now use those tables (fixed for errors I made above that you may catch) to develop the logic required.


From the above, I find:

$$\begin{align*} T_D &= U\cdot Q_B\cdot Q_C + \overline{U}\cdot \overline{Q_B}\cdot \overline{Q_C}\\ T_C &= U\cdot Q_B + \overline{U}\cdot \overline{Q_A} + Q_A\cdot \overline{Q_B} \\ T_B &= U\cdot \overline{Q_A} + \overline{U}\cdot \overline{Q_C} + Q_A\cdot Q_C \\ T_A &= 1 \end{align*}$$


At this point, you should be able to easily develop the logic required when using T-type FF devices.

\$\endgroup\$

Your Answer

By clicking “Post Your Answer”, you agree to our terms of service, privacy policy and cookie policy

Not the answer you're looking for? Browse other questions tagged or ask your own question.