Log In
48 votes

Find the maximum clock frequency at which the counter in the figure below can be operated. Assume that the propagation delay through each flip flop and each AND gate is $10$ $\text{ns}$. Also assume that the setup time for the $JK$ inputs of the flip flops is negligible.

in Digital Logic
edited by

What I know is Total time (Propagation) = T(flip flop) + T(combinational circuit)

So from the above Total time= 10(Flip Flop) + 30(combinational AND gate);

f=1/T and we can solve easily . But here why only one AND gate delay is considered ?

Expalin plz.

@bikram sir

Answer not should be 30(3 And Gate ) + 10 ( Synch Circuit) = 40 ns

1/40 ns= 25 Mhz ?

Why here they have taken it only for 1 And and 1 FF ?
This might be silly but I can't see any combinational circuit such that output of flip flops is again given to input of flip flops. plz help.
Can You check K1, K2?


I understood it in this way . I’m adding my answer just in case someone finds it easier to assimilate.

we determine the current state of each FF based on the previous state of FF. 

In the diagram , lets say the current state values are at Aout , Bout and Cout . It will take effect once Ain , Bin and Cin is available from the previous state.

For FF1 to change state (Follow the green path):

 t1 = Time for Ain to generate + time for FF1 to propagate = 0 (it’s always high)+ 10 = 10ns


For FF2 to change state (follow the blue path):

t2 = Time to generate Bin + time for FF2 to propagate

    = Time to generate Aout + Time for logic 1 + time for AND gate + time for FF2 to propagate

    = 0(Aout is already there from prev state) + 0(always high) + 10 + 10

    = 20 ns 


For FF3 to change state(follow the yellow path):

t3 = Time to generate Cin + time for FF3 to propagate

    = time for Bout + time for Bin + time for AND gate + time for FF3 to propagate

    = 0 + time for Bin + time for AND gate + time for FF3 to propagate (Bout is already there from prev state , hence time is 0)

   =  Time to generate Aout + Time for logic 1 + time for AND gate + time for AND gate + time for FF3 to propagate

   = 0 + 0 + 10 + 10 + 10 (like Bout , Aout is already there from previous state)

   = 30ns


So time taken for FF1 , FF2 and FF3 to change their respective states are 10 , 20 and 30 ns . We take the maximum time among it i.e 30 ns as it will ensure that no FF is left out.


4 Answers

86 votes
Best answer

In a JK flip flop the output toggles when both J and K inputs are $1.$ So, we must ensure that with each clock the output from the previous stage reaches the current stage.

Setup time is defined as the minimum amount of time before the clock's active edge that the data must be stable for it to be latched correctly

It is given that set up time is negligible - means as soon as data is stable, next clock can be given. 

Time to get output from $FF$ once input (and clock) is given  = $10ns.$ (Propagation Delay)

Time for inputs to reach $FF_1 = 0.$ (Zero AND gate)

Time for inputs to reach $FF_2 = 10.$ (One AND gate)

Time for inputs to reach $FF_3 = 20.$ (Two AND gates)

So, minimum time period needed for clock is $10 + \max(0,10,20) = 10 + 20 = 30ns$ which would mean a maximum clock frequency of $1/30 GHz = 33.33 MHz$

selected by
Is the clock frequency only dependent on no. of AND gates and not on no. of flip flops? Why can't we take no. of flip flops as the the multiple for propagation delay?
We just have to ensure the output from a previous flipflop reaches the next flipflop (A flipflop can store a bit) within the time period of the operating clock. So, we just need to consider the stages between these. In the question there is only one AND gate in this stage. If there were 2, we should have multiplied the propagation delay by 2.
sir , if just ensure that o/p of previous one reaches to next flip flop then ... for last flip flop , we have to consider 2nd flip flop delay also ...??
yes, for FF 3, we consider delay of FF 2 and the AND gate delay.
then why only 20 ns .. is it 30ns .. 2 and gate for ff2 and ff3 , and i ff2 before ff3 ??
we are only considering the time from input of FF 2 to input to FF 3.
sorry sir , i am not getting... :(
When a clock comes it activates all the FFs simultaneously. So, we want to ensure the output of one stage reaches the input of next before the next clock. So, between two clocks, input must produce output and this output should reach next FF.
yes , but why only we are considering FF 2 TO FF3, not FF1 to FF2 ... Here i am confuse  ..
thats the same delay rt?
suppose the circuit was not the same, we should have considered all these stages, and taken the maximum time period (min. frequency).
okkk.... they have same delay ... and as clock given at same time so ..that delay consider only once ....

sorry .. i am considering for each ...thank you :)
it should be 1/30 as...after 20 3rd jk has it's inputs & it takes another 10 to produce the 30

In a synchronous counter, at the end of a clock cycle the output should be present at each point that will further be used as a input to flip flops. Am i right ?

And if input for flip flops is present before giving clock. Then definitely $Tdelay = 20ns$

Otherwise if input of AND gates depends on other AND gate, then $T = 10 +(10+10+10) = 40ns$

what would have happened in asynchronous counter??

@Arjun Sir,

Is this Right ?

This is the same related question.

@Arjun Sir

Thanks !!
@sushmita in asynchronous case there is no clock rt?
arjun sir clock is there in asynchronous according to me.
yes, it is there to the first FF. The maximum clock frquency won't be more than 50 MHz in that case also, but might be even lower. Have to see Morris Mano to tell more..
sir what i know is that the clock time is equal to the delay of all flipflops and combinational circuit in aynchronous counter. Its not right??


In the series carry scheme, the time to propagate the change in Q0 must take into account the propagation delays of the 3 AND gates (A, B, C)

so it is T+A+B+C here rt??

Arjun sir, in asynchronous counter I think we should consider the delay of all the flip-flops because the output of one flip-flop serves as the input to the next one. So I think delay should be 30ns for 3 ff and 20 n's for intermediate and gates. Plz plz check.
how can you say that it is asynchronous clock ? same clock is attached to

all flip flops here , so it should be synchronous.plz correct me.

But in question , the delay for each and gate is considered.Whats the difference?

The input to 3rd flip flop is depending is two and gate delays as per this link

what if JK was not on high and given different inputs like 01 or 10 then ??
thank u arjun sir.....


ignoring the carry output of the circuit (the third AND gate). The question is only about the maximum clock frequency of the counter itself. If that output needs to be valid, then the clock period will have to be even longer.

@Arjun Sir , how the time for input to reach the second FF is 10ns, it should be 20ns, i.e propragation time of first FF and the AND gate , please explain
What if propagation delay for each flip flop was different? Let's say 1ns, 2ns, 3ns.

Will not the final output from ff3 have 1 AND  gate more delay before we use it finally. If yes then


minimum time period needed for the clock is 

10+max(0,10,20,30) =>  10+30= 40 ns which would mean a maximum clock frequency of 1/40ns 

= 25 MHz


Please correct if thinking wrong. Thank you.


My doubts,

Pd of FFs are 10ns. clock is simultaneously given in each FF.

J0K0 inputs are given,so when cock is active we can get this immediately,but to get the inputs of J1K1 we've to spend 20ns( 10ns for FF & 10ns for OR gate).

likewise to get the inputs at J2K2 we've to spend more 20ns(10ns for FF & 10ns for OR)

so we'll get o/p at Q2 at the time of 20 + 20 = 40ns.

again if I consider the last OR gate, then finally the total time is 50ns.

Don't know where I'm lagging.

Seniors please help.

see I'm taking this in the ay like - for J1K1 & J2K2 FF can't operate untill it gets the output from it's previous AND gate which is total 20ns.

anyone please clear this confusion.


Here I think we can approach in the following way:-

10ns (at 10ns all the FFs will give their respective o/ps) + 10ns (after 10ns o/p of FF1 will be available for FF2 (after AND op) and o/p of FF2 will be available for i/p at FF3) + 10ns(FF1 o/p will be available at FF3 so that the AND operation can be done) = 30ns


Is the above understanding correct?

Can anyone kindly confirm ?

Thank you


Let’s say, we are starting the FFs now. They will be in some initial state, eg Q0Q1Q2=000. Now these are outputs from those different FFs which are available and can be used wherever they are needed as inputs. Similarly, at each clock pulse, we will have the previous state value, which we will use to generate the next state (which is basically how FFs work)

We start with the first clock. Let us first calculate the input delays for each FF and nothing else. 

The delay to get inputs available at:-

  • J0K0 is 0, which is quite clear.
  • J1K1 is 10 ns. Why? Because J1 = 1 AND Q0 (On a different note, you might think this is not a very optimal way of implementation, I agree with that, but here 1 is acting like a switch and we can make 1 as 0 and control the inputs at J1K1, just extra info). So a delay of ! AND is involved
  • J2K2 is 20 ns. Why? Because J2 =  (1 AND Q0) AND Q1. So here a delay of 2 AND gates are involved. Note that the inputs to 1st AND gate are 1, Q0 which are already available (Q0 is the output from previous state and not current state so we don’t have to consider the FF delay for getting Q0), and for 2nd AND gate Q1 is readily available but it is also using the output of 1st AND gate, and hence the total delay becomes 20ns for J2K2

So now we have the input delays for each FF as 0ns, 10ns, 20ns. All we have to do is add FF delay, so the total delays would become 10ns, 20ns, 30ns. Maximum is 30 ns and so the minimum time period is 30 ns. 

Giving us a maximum frequency of  = 1/30 GHz

= 33.333333333333333333333333333333333333333333333333333333333 MHz     (:P)



Your approach is partially correct. here’s why

I think there are two possible approaches:-

  1. At the start of clock pulse, only outputs from previous states are available. They will have to go through the combinational circuits, and then the results can be used as inputs for the FFs to calculate the output for current state (which is what i have explained in the above comment)
  2. At the start of clock pulse, the outputs from previous states, as well as the required inputs for FFs for current state are also available. So we can immediately calculate the output for current state using those inputs. After that, we will have to use this current state output, feed them to the combinational circuits, and make sure that the inputs are available for the respective FFs before clock ends. These inputs will be used by the FFs in the next clock pulse

From your comment, it seemed that you were trying to use the current state o/p of one FF into another FF, which is not how it works. We always use the previous state o/p to produce the next state.

16 votes

A clock cycle time should be large enough that all flip-flops can come in to a stable state before the next clock cycle starts
(or) from the time we provide the input and till the moment output is available will be a cycle.
Suppose cycle 1 is just completed and cycle 2 is just about to start:
1. to reach the result of q0Λ1 to J1K1 it needs $10 ns$
2. to reach the result of (q0Λ1)ΛQ1 to J2K2, other 10 nanoseconds are needed.
3. Now, we need other 10  nanoseconds to operate flipflops as the propagation delay of each flip flop is 10ns.
4. Finally, we need 10 more nanoseconds to get the output from the last AND gate.

For better understanding we can enclose this circuit in a box with one input-pin and one output-pin out, when we provide input to the box, we need at least 40ns to get the output.

Answer should be (1/(2*10ns + 10ns + 10ns) = $\frac{1}{40ns} = 25MHZ$.

edited by

I took think it should be 40ns.

By the time of next clock pulse. All current changes should be settled.

@rahul that's what i said, right?
Yes.I was trying to say that this answer seems to be correct than the selected one
Each FF along with the AND gate is an independent module since the clock is given synchronously to each FF.  Each module takes 20ns to produce next output. So the output is available after every 20ns. So cycle time is 20ns and thus freq. is 50MHz

@Manu Thakur Why clock is required for last Nand Gate, it can work even without clock pulse being active

Since, it's a synchronous counter, all the flip flops will get clock at the same time. Also, All AND gates will get the input simultaneously. I think you shouldn't consider it in serial manner.

$T_{CLK}>= T_{FF}+T_{AND}$


$T_{CLK}>=20\ ns$

$f=\frac{1}{T_{CLK}}=\frac{1}{20\ ns}=50\ Mhz$
8 votes
So at all I have concluded , it had asked maximum clock frequency .

And as freq=1/Time period

So we will take best case .

As it is synchronous circuit than all flip flop activate simultaneously and here key is

"Maximum clock frequency at which the counter in the figure below can be operated."


1/20=50 MHZ.
I also thought the same way, please confirm if it is right answer.
6 votes
As all flip flop are connected to common clock so it is Synchronous Counter
all flip flop changes simultaneously
and there are 3 AND gates
For last FF input will be avail after 2(AND gate)*10

So Frequency = $\frac{1}{t_{ff} + 2t_{and}}$
                    = $\frac{1}{10 + 20}$
                    = 0.033 = 33.33MHz

edited by
yes . this is according to the formula. right . one confusion. i think 20 second time period will be enough. if all will get the time of 20 why the output will not be generated. ??
The answer would be 1/20 because 2nd AND GATE do not have to wait for getting the output of first AND GATTE.
why ? it will depend .
@bikram sir please describe the answer ....

Related questions

16 votes
2 answers
Find the minimum sum of products form of the logic function $ f(A,B,C,D) = \Sigma m(0,2,8,10,15)+ \Sigma d(3,11,12,14)$ where $m$ and $d$ represent minterm and don't care term respectively.
asked Nov 14, 2015 in Digital Logic ibia 1.3k views
21 votes
1 answer
Analyse the circuit in Fig below and complete the following table ${\begin{array}{|c|c|c|}\hline \textbf{a}& \textbf{b}& \bf{ Q_n} \\\hline 0&0\\\ 0&1 \\ 1&0 \\ 1&1 \\ \hline \end{array}}$
asked Sep 13, 2014 in Digital Logic Kathleen 2.2k views
5 votes
0 answers
Design a 1024 bit serial-in/serial-out unidirectional shift register using a 1K $\times$ 1 bit RAM with a data input $D_{in}$, data output $D_{out}$ and control input $\text{READ}/\overline{\text{WRITE}}$. You may assume the availability of standard SSI and MSI components such as gates, registers and counters.
asked Nov 14, 2015 in Digital Logic ibia 393 views
3 votes
2 answers
Using D flip-flop gates, design a parallel-in/serial-out shift register that shifts data from left to right with the following input lines: Clock $\text{CLK}$ Three parallel data inputs $A, B, C$ Serial input $S$ Control input $\text{load} / \overline{\text{SHIFT}}$.
asked Sep 13, 2014 in Digital Logic Kathleen 499 views