Hello there,
This is an interesting circuit because it looks like the way the counters are being used may not be the best way.
Internally, the two counters inside each package are both synchronous, but outside of each package the two are being used as asynchronous counters. The reason for using synchronous counters is so that the outputs, no matter how many counters are being used, all switch states at the same time. That means (using a full binary counter) if you go from a count of (say) 15 to 0 each bit will change from 1 to 0 at the same time. If you go from a count of 255 to 0 each bit will still change from a 1 to a 0 at the same time. If you go from a count of 0xFFFFFFFF to 0x00000000 all the bits will change from 1 to 0 at the same time. That last example is 32 bits and it still works well because all of the counters are wire for synchronous operation.
This usually means there is no problem with some bits changing before others, even though they may be of higher order.
The problem comes in where you use ripple counters. That means bit 0 changes slightly ahead of bit 1, and bit 1 changes slighly ahead of bit 2, etc., etc. This causes a lot of problems especially when the counter chain is very long. If you had a chain of 8 BCD counters using ripple carry the delay would be very noticeable in some applications. It would cause count problems for any logic that had to rely on the outputs changing all at the same time.
Now with this circuit, it looks like each BCD section is synchronous, but between the two BCD digits, they are asynchronous. That means bits 0,1,2,3 change at the same time, and bits 4,5,6,7 change at the same time, but bit 4 is delayed from bit 3 by a small amount meaning bits 4,5,6, and 7 are all delayed by a small amount. Now if the external logic is fast enough to catch this, it's not going to detect the right logic states and so you could see small glitches that cause problems in the reset of some of the counter stages.
The best bet is to look up how to connect multiple synchronous counter stages and do it the right way. That will help to avoid these kinds of problems. That assumes everything else is right of course, such as bypass caps, proper wiring, steady DC power source, etc.
I just took a quick look so check it over to make sure the counters are being used right, and if not, correct it.
This is an interesting circuit because it looks like the way the counters are being used may not be the best way.
Internally, the two counters inside each package are both synchronous, but outside of each package the two are being used as asynchronous counters. The reason for using synchronous counters is so that the outputs, no matter how many counters are being used, all switch states at the same time. That means (using a full binary counter) if you go from a count of (say) 15 to 0 each bit will change from 1 to 0 at the same time. If you go from a count of 255 to 0 each bit will still change from a 1 to a 0 at the same time. If you go from a count of 0xFFFFFFFF to 0x00000000 all the bits will change from 1 to 0 at the same time. That last example is 32 bits and it still works well because all of the counters are wire for synchronous operation.
This usually means there is no problem with some bits changing before others, even though they may be of higher order.
The problem comes in where you use ripple counters. That means bit 0 changes slightly ahead of bit 1, and bit 1 changes slighly ahead of bit 2, etc., etc. This causes a lot of problems especially when the counter chain is very long. If you had a chain of 8 BCD counters using ripple carry the delay would be very noticeable in some applications. It would cause count problems for any logic that had to rely on the outputs changing all at the same time.
Now with this circuit, it looks like each BCD section is synchronous, but between the two BCD digits, they are asynchronous. That means bits 0,1,2,3 change at the same time, and bits 4,5,6,7 change at the same time, but bit 4 is delayed from bit 3 by a small amount meaning bits 4,5,6, and 7 are all delayed by a small amount. Now if the external logic is fast enough to catch this, it's not going to detect the right logic states and so you could see small glitches that cause problems in the reset of some of the counter stages.
The best bet is to look up how to connect multiple synchronous counter stages and do it the right way. That will help to avoid these kinds of problems. That assumes everything else is right of course, such as bypass caps, proper wiring, steady DC power source, etc.
I just took a quick look so check it over to make sure the counters are being used right, and if not, correct it.