Input
J, K, Clock, and Reset (Active Low)
Output
Q and Q
J 0 0 J K >clk Q Q
2011/5/2
Function Table
positive-edge triggered
Reset
K 0 1 0 1
Qn Q 0 1 Q
2
1 1
2011/5/2
always @(posedge Clock) begin // positive-edge triggered if (!Reset) // synchronous reset, active low Q <= 1b0; else if (J == 0 && K == 0) // No change Q <= Q; else if (J == 0 && K == 1) // Clear Q <= 0; else if (J == 1 && K == 0) // Set Q <= 1; else if (J == 1 && K == 1) // Complement Q <= Qbar; end // always assign Qbar = ~Q;
2011/5/2 4
always @(posedge Clock) begin // positive-edge triggered if (!Reset) // synchronous reset, active low Q <= 1b0; else begin case ({J, K}) 2b00: Q <= Q; // No change 2b01: Q <= 1b0; // Clear 2b10: Q <= 1b1; // Set 2b11: Q <= Qbar; // Complement endcase end // end // always assign Qbar = ~Q; 2011/5/2
Input
T, Clock, and Preset (Active High)
Output
Q and Q
T 0 1 T >clk Q Q
2011/5/2 7
Function Table
negative-edge triggered
Preset
Qn Q Q
always @(negedge Clock or posedge Preset) begin // positive-edge triggered if (Preset) // asynchronous preset, active high Q <= 1b1; else begin case (T) 1b0: Q <= Q; // No change 1b1: Q <= Qbar; // Complement endcase end // else end // always assign Qbar = ~Q;
2011/5/2 10
2011/5/2
11
Input
D, Clock, Reset and Preset (both Active Low)
Output
Q and Q
Reset Preset D 0 1 D >clk Reset Q Q 1 1 X 0 1 1 X X 0 1 Qn Qn 0 1 0 1 1 0 1 0
Function Table
positive-edge triggered
Preset
2011/5/2
12
by students
2011/5/2
13
by students
2011/5/2
14
Add a XOR gate which connects the outputs of two flip-flops (e.x. T-FF-B and T-FF-D). (See Next Slide)
It should be 0 for all input values of T and Preset.
2011/5/2
15
Logic schematic for checking the equivalence of two T flip-flops. The other types of flip-flops can be checked in the same way.
Preset T Q Behavioral >clk Q T F
Clock
Q Dataflow >clk Q
2011/5/2 16