How to wire up a street light to change lights in specific states (digital circuit)
There are lots of ways to take this. You could go asynchronous or synchronous, for example. But I'll suggest a start using a synchronous counter. You need a modulo 14 counter. For that, I might suggest a modulo 7 LFSR (not the only way to go) with a separate FF that toggles to make a total of 14 states:







simulate this circuit &ndash; Schematic created using CircuitLab

The codes, in sequence, are: 0000, 0111, 0100, 1101, 1000, 0011, 1110, 0001, 0110, 0101, 1100, 1001, 0010, and 1111. (The missing codes are 1010 and 1011.) This provides 14 distinct states. You can then use these, with added logic, to generate your light controls. (Note that in the above diagram, not only do you have access to each bit but also access to the inverted state of each bit. Also, if these DFFs have both Q and /Q, then the above diagram can be simplified a bit.)

By the way, you only have 7 distinct light control wires. You need three for the east-west and west-east directions (all of which use the same controls for red, yellow, and green lights), plus three more for the shared north-south and south-north directions (again, all of which use the same controls for the red, yellow, and green lights), and one more control line for the special south-north special-green light.

This is not necessarily the best way to handle it. It may require some combinatorial logic that you may wish were smaller. But it certainly can work.

(Note that the CLK input should be driven with a \$1\:\text{s}\$ clock rate.)

Do you know how to lay out the combinatorial logic needed for your control lines to the lights? Is that the problem?



I've quickly laid out what I think may work, regarding K-maps for the above states. However, be aware that I may make mistakes. So check the following work for yourself. (In what follows, 0 means off and 1 means on.)

East-West and West-East K-maps:

$$\begin{array}{rl}
\begin{smallmatrix}\begin{array}{r|cccc}
Red&amp;\overline{Q_B}\:\overline{Q_A}&amp;\overline{Q_B}\: Q_A&amp;Q_B \:Q_A&amp;Q_B \:\overline{Q_A}\\
\hline
\overline{Q_D}\:\overline{Q_C}&amp;1&amp;1&amp;1&amp;0\\
\overline{Q_D}\:Q_C&amp;1&amp;0&amp;1&amp;1\\
Q_D\: Q_C&amp;0&amp;1&amp;0&amp;1\\
Q_D\:\overline{Q_C}&amp;1&amp;0&amp;x&amp;x
\end{array}\end{smallmatrix}
&amp;
\begin{smallmatrix}\begin{array}{r|cccc}
Yellow&amp;\overline{Q_B}\:\overline{Q_A}&amp;\overline{Q_B}\: Q_A&amp;Q_B \:Q_A&amp;Q_B \:\overline{Q_A}\\
\hline
\overline{Q_D}\:\overline{Q_C}&amp;0&amp;0&amp;0&amp;1\\
\overline{Q_D}\:Q_C&amp;0&amp;0&amp;0&amp;0\\
Q_D\: Q_C&amp;0&amp;0&amp;1&amp;0\\
Q_D\:\overline{Q_C}&amp;0&amp;0&amp;x&amp;x
\end{array}\end{smallmatrix}\\\\
\begin{smallmatrix}\begin{array}{r|cccc}
Green&amp;\overline{Q_B}\:\overline{Q_A}&amp;\overline{Q_B}\: Q_A&amp;Q_B \:Q_A&amp;Q_B \:\overline{Q_A}\\
\hline
\overline{Q_D}\:\overline{Q_C}&amp;0&amp;0&amp;0&amp;0\\
\overline{Q_D}\:Q_C&amp;0&amp;1&amp;0&amp;0\\
Q_D\: Q_C&amp;1&amp;0&amp;0&amp;0\\
Q_D\:\overline{Q_C}&amp;0&amp;1&amp;x&amp;x
\end{array}\end{smallmatrix}
\end{array}$$

North-South and South-North K-maps:

$$\begin{array}{rl}
\begin{smallmatrix}\begin{array}{r|cccc}
Red&amp;\overline{Q_B}\:\overline{Q_A}&amp;\overline{Q_B}\: Q_A&amp;Q_B \:Q_A&amp;Q_B \:\overline{Q_A}\\
\hline
\overline{Q_D}\:\overline{Q_C}&amp;0&amp;1&amp;0&amp;1\\
\overline{Q_D}\:Q_C&amp;0&amp;1&amp;0&amp;1\\
Q_D\: Q_C&amp;1&amp;0&amp;1&amp;0\\
Q_D\:\overline{Q_C}&amp;0&amp;1&amp;x&amp;x
\end{array}\end{smallmatrix}
&amp;
\begin{smallmatrix}\begin{array}{r|cccc}
Yellow&amp;\overline{Q_B}\:\overline{Q_A}&amp;\overline{Q_B}\: Q_A&amp;Q_B \:Q_A&amp;Q_B \:\overline{Q_A}\\
\hline
\overline{Q_D}\:\overline{Q_C}&amp;0&amp;0&amp;1&amp;0\\
\overline{Q_D}\:Q_C&amp;0&amp;0&amp;0&amp;0\\
Q_D\: Q_C&amp;0&amp;0&amp;0&amp;1\\
Q_D\:\overline{Q_C}&amp;0&amp;0&amp;x&amp;x
\end{array}\end{smallmatrix}\\\\
\begin{smallmatrix}\begin{array}{r|cccc}
Green&amp;\overline{Q_B}\:\overline{Q_A}&amp;\overline{Q_B}\: Q_A&amp;Q_B \:Q_A&amp;Q_B \:\overline{Q_A}\\
\hline
\overline{Q_D}\:\overline{Q_C}&amp;1&amp;0&amp;0&amp;0\\
\overline{Q_D}\:Q_C&amp;1&amp;0&amp;1&amp;0\\
Q_D\: Q_C&amp;0&amp;1&amp;0&amp;0\\
Q_D\:\overline{Q_C}&amp;1&amp;0&amp;x&amp;x
\end{array}\end{smallmatrix}
\end{array}$$

Special-Green South-North K-map:

$$\begin{array}{rl}
\begin{smallmatrix}\begin{array}{r|cccc}
Green&amp;\overline{Q_B}\:\overline{Q_A}&amp;\overline{Q_B}\: Q_A&amp;Q_B \:Q_A&amp;Q_B \:\overline{Q_A}\\
\hline
\overline{Q_D}\:\overline{Q_C}&amp;0&amp;1&amp;0&amp;0\\
\overline{Q_D}\:Q_C&amp;0&amp;0&amp;0&amp;1\\
Q_D\: Q_C&amp;0&amp;0&amp;0&amp;0\\
Q_D\:\overline{Q_C}&amp;0&amp;0&amp;x&amp;x
\end{array}\end{smallmatrix}
\end{array}$$



I've included a possible solution below. It's validated, so it works. The point isn't to provide you with a direct answer, but is instead intended merely to let you know what one possible solution might look like.

You appeared to complain about the ability to hold the lights for given times (5 seconds, or 3 seconds, etc.) This shows exactly how that can be achieved.

I didn't attempt to optimize the design (I'm sure that more could be done.) But I simply took the above K-maps and developed what amounts to a CPLD or (AND-OR) matrix solution for the combinatorial logic. The clock is intended to have a one second cycle time.



Here is the lighting results from the above schematic:



Everything prefixed with NS applies to both the north-to-south direction as well as the south-to-north direction. The light prefixed with SN only applies to the south-to-north direction. The rest, prefixed with EW applies to both the east-to-west as well as the west-to-east directions.