Binary Counter not synchronous

Can someone help me understand how to do this counter ripple? and what to be use as counter (74ls76 or 74ls193). My problem is to make counter like this [0, 2, 3, 4, 6, 7, 9, 15, 14, 13, 12, 11, 10, 8, 5, 1]

-
What on earth do you need this weird sequence for (except maybe to get a mark for homework?)? And what do you mean by "how to do this counter ripple"? The most obvious solutions would not ripple. –  Wouter van Ooijen Sep 13 '11 at 19:44
This is my project and couldn't solve it :( I'm solving this problem since last week but couldn't find any solution. Maybe Binary counting for input in 74154 but how? :( –  shir Sep 14 '11 at 1:03

Any 4-bit binary counter will do the job, but you need to alter the output.

Complex, but "normal" way - a nice logic circuit involving lots of gates to convolve the 4 bits of synchronous counting into the sequence you want. Tricky, but possible with some nice Karnaugh mapping to get you through.

Simple, but "alternative" way - Counter + small (E)EPROM. Counter drives the address lines of the (E)EPROM. Data lines of the (E)EPROM contain the modified count values. The beauty of this way is that a) it's low on component count, and b) a new number sequence can be programmed without needing to change the circuitry in any way.

-
yes I try the jk flip flop with a K-map and came up into 23 and gates and 15 or gates and 1 74154 but the ckt won't work. :( –  shir Sep 14 '11 at 0:50
You can even eliminate the counter part (or reduce it to a bank of flip-flops) if you loop back the output of the EEPROM to the input and have each entry in the EEPROM be the next state for the "counter". –  The Photon Apr 16 '12 at 20:18

Yet another way is to have the input pulse shift a bit around in a circular shift register. The output of the shift register goes into a priority encoder. Since you can wire the shift register bits into the priority encoder inputs any way you like, you can cause any arbitrary sequence of counts to come out of the priority encoder.

Or, if the minimum required count speed is low enough, use a small microcontroller. This would be a very trivial program to implement in the micro. What is the maximum incoming pulse rate?

-
I think 1Hz maximum pulse rate. –  shir Sep 14 '11 at 1:01
Geesh, you could have mentioned that up front. A microcontroller is the obvious single chip solution then. Any micro with sufficient pins will be good enough. This is about as trivial a program as it gets. –  Olin Lathrop Sep 14 '11 at 11:27