example design: a sequence detector
TRANSCRIPT
![Page 1: Example Design: A Sequence Detector](https://reader038.vdocuments.us/reader038/viewer/2022102811/586983591a28ab09568be988/html5/thumbnails/1.jpg)
Digital Systems
Topic 13: An Example Design Problem
![Page 2: Example Design: A Sequence Detector](https://reader038.vdocuments.us/reader038/viewer/2022102811/586983591a28ab09568be988/html5/thumbnails/2.jpg)
28/18/2010
Objectives• To work through an entire design problem:
– Review specifications– Derive state diagram– Build state table and assign states– Decide the number of state variables needed– Choose technology– Implement the design
of 48
![Page 3: Example Design: A Sequence Detector](https://reader038.vdocuments.us/reader038/viewer/2022102811/586983591a28ab09568be988/html5/thumbnails/3.jpg)
38/18/2010
Design Description/Specifications• Design a Sequence Detector:
– Implement the design as a Finite State Machine • Input (w) • Output (z)
– Z = 1 if the previous two values of w were 00 or 11– Z = 0 otherwise
of 48
![Page 4: Example Design: A Sequence Detector](https://reader038.vdocuments.us/reader038/viewer/2022102811/586983591a28ab09568be988/html5/thumbnails/4.jpg)
48/18/2010
FSM Design Steps1. Obtain the specifications of the desired circuit2. Derive the states of the machine and develop a state
diagram1. Should show all possible states2. Provide the conditions for which the circuit moves from one state to
the next
3. Develop the state table from the state diagram4. Decide on the number of state variables needed to
represent all states1. Minimize the number of states if possible
5. Choose the type of flip-flops that will be used in the implementation
1. Derive the next-state logic expressions to develop the Input Logic Circuit
2. Derive the logic expressions for the Output Logic Circuit
6. Implement the design
of 48
![Page 5: Example Design: A Sequence Detector](https://reader038.vdocuments.us/reader038/viewer/2022102811/586983591a28ab09568be988/html5/thumbnails/5.jpg)
58/18/2010
FSM Design Steps1. Obtain the specifications of the desired circuit2. Derive the states of the machine and develop a state
diagram1. Should show all possible states2. Provide the conditions for which the circuit moves from one state to
the next
3. Develop the state table from the state diagram4. Decide on the number of state variables needed to
represent all states1. Minimize the number of states if possible
5. Choose the type of flip-flops that will be used in the implementation
1. Derive the next-state logic expressions to develop the Input Logic Circuit
2. Derive the logic expressions for the Output Logic Circuit
6. Implement the design
of 48
![Page 6: Example Design: A Sequence Detector](https://reader038.vdocuments.us/reader038/viewer/2022102811/586983591a28ab09568be988/html5/thumbnails/6.jpg)
68/18/2010
State Diagram• Start with the state diagram
– State A: Reset (or Starting) state
A
Reset
of 48
![Page 7: Example Design: A Sequence Detector](https://reader038.vdocuments.us/reader038/viewer/2022102811/586983591a28ab09568be988/html5/thumbnails/7.jpg)
78/18/2010
State Diagram• Start with the state diagram
– State A: Reset (or Starting) state
A
Reset
z = 0
In this state, the output must equal 0, because there have been no pulses detected on w
of 48
![Page 8: Example Design: A Sequence Detector](https://reader038.vdocuments.us/reader038/viewer/2022102811/586983591a28ab09568be988/html5/thumbnails/8.jpg)
88/18/2010
State Diagram• Start with the state diagram
– State A: Reset (or Starting) state
A
Reset
z = 0
B D
w = 1w = 0
w could be a 0 or a 1. Depending on which it is, the FSM should go to the next state (B or D).
Let B be the “start counting 0s state” and D be the “start counting 1s state. There have not been 2 0s or 2 1s, so z = 0.
z = 0 z = 0
of 48
![Page 9: Example Design: A Sequence Detector](https://reader038.vdocuments.us/reader038/viewer/2022102811/586983591a28ab09568be988/html5/thumbnails/9.jpg)
98/18/2010
State Diagram• Start with the state diagram
– State A: Reset (or Starting) state
A
Reset
z = 0
B D
w = 1w = 0
If the next w is 0, we go to state C. We now have 2 0s, so z should go high.
But, if w=1, we need to start counting 1s, so we go to state D
C
w = 1w = 0
z = 0 z = 0
z = 1
of 48
![Page 10: Example Design: A Sequence Detector](https://reader038.vdocuments.us/reader038/viewer/2022102811/586983591a28ab09568be988/html5/thumbnails/10.jpg)
108/18/2010
State Diagram• Start with the state diagram
– State A: Reset (or Starting) state
A
Reset
z = 0
B D
w = 1w = 0
From this point on, if w=0, we should stay in state C and z should be high
C
w = 0
z = 0 z = 0
z = 1
w = 0
w = 1
of 48
![Page 11: Example Design: A Sequence Detector](https://reader038.vdocuments.us/reader038/viewer/2022102811/586983591a28ab09568be988/html5/thumbnails/11.jpg)
118/18/2010
State Diagram• Start with the state diagram
– State A: Reset (or Starting) state
A
Reset
z = 0
B D
w = 1w = 0
From this point on, if w=0, we should stay in state C and z should be high
If w should go high, we need to start counting 1s (state D)
C
w = 0
z = 0 z = 0
z = 1
w = 0
w = 1
w = 1
of 48
![Page 12: Example Design: A Sequence Detector](https://reader038.vdocuments.us/reader038/viewer/2022102811/586983591a28ab09568be988/html5/thumbnails/12.jpg)
128/18/2010
State Diagram• Start with the state diagram
– State A: Reset (or Starting) state
A
Reset
z = 0
B D
w = 1w = 0
If at any point w=1, we want to start counting 1s (go to state D). If the next w is also 1, we go to state E and z should go high.
C
w = 0
z = 0 z = 0
z = 1
w = 0
w = 1
w = 1 E
w = 1
z = 1
of 48
![Page 13: Example Design: A Sequence Detector](https://reader038.vdocuments.us/reader038/viewer/2022102811/586983591a28ab09568be988/html5/thumbnails/13.jpg)
138/18/2010
State Diagram• Start with the state diagram
– State A: Reset (or Starting) state
A
Reset
z = 0
B D
w = 1w = 0
If at any point w=1, we want to start counting 1s (go to state D). If the next w is also 1, we go to state E and z should go high.
But, if the next w = 0, then we need to start counting 0s (go to state B).
C
w = 0
z = 0 z = 0
z = 1
w = 0
w = 1
w = 1 E
w = 1
z = 1
w = 0
of 48
![Page 14: Example Design: A Sequence Detector](https://reader038.vdocuments.us/reader038/viewer/2022102811/586983591a28ab09568be988/html5/thumbnails/14.jpg)
148/18/2010
State Diagram• Start with the state diagram
– State A: Reset (or Starting) state
A
Reset
z = 0
B D
w = 1w = 0
If w continues to be 1, we need to stay in state E and z needs to remain high.
C
w = 0
z = 0 z = 0
z = 1
w = 0
w = 1
w = 1 E
w = 1
z = 1
w = 0
w = 1
of 48
![Page 15: Example Design: A Sequence Detector](https://reader038.vdocuments.us/reader038/viewer/2022102811/586983591a28ab09568be988/html5/thumbnails/15.jpg)
158/18/2010
State Diagram• Start with the state diagram
– State A: Reset (or Starting) state
A
Reset
z = 0
B D
w = 1w = 0
If w continues to be 1, we need to stay in state E and z needs to remain high.
But, if w = 0, we need to start counting 0s (go to state B).
C
w = 0
z = 0 z = 0
z = 1
w = 0
w = 1
w = 1 E
w = 1
z = 1
w = 0
w = 1
w = 0
of 48
![Page 16: Example Design: A Sequence Detector](https://reader038.vdocuments.us/reader038/viewer/2022102811/586983591a28ab09568be988/html5/thumbnails/16.jpg)
168/18/2010
FSM Design Steps1. Obtain the specifications of the desired circuit2. Derive the states of the machine and develop a state
diagram1. Should show all possible states2. Provide the conditions for which the circuit moves from one state to
the next
3. Develop the state table from the state diagram4. Decide on the number of state variables needed to
represent all states1. Minimize the number of states if possible
5. Choose the type of flip-flops that will be used in the implementation
1. Derive the next-state logic expressions to develop the Input Logic Circuit
2. Derive the logic expressions for the Output Logic Circuit
6. Implement the design
of 48
![Page 17: Example Design: A Sequence Detector](https://reader038.vdocuments.us/reader038/viewer/2022102811/586983591a28ab09568be988/html5/thumbnails/17.jpg)
178/18/2010
State Table• Develop the state table from the state diagram
A
Reset
z = 0
B D
w = 1w = 0
C
w = 0
z = 0 z = 0
z = 1
w = 0
w = 1
w = 1 E
w = 1
z = 1
w = 0
w = 1
w = 0
PresentState
Inputw
NextState
Outputz
A 01
0
If we are in state A, z should be low, and w could be 0 or 1
of 48
![Page 18: Example Design: A Sequence Detector](https://reader038.vdocuments.us/reader038/viewer/2022102811/586983591a28ab09568be988/html5/thumbnails/18.jpg)
188/18/2010
State Table• Develop the state table from the state diagram
A
Reset
z = 0
B D
w = 1w = 0
C
w = 0
z = 0 z = 0
z = 1
w = 0
w = 1
w = 1 E
w = 1
z = 1
w = 0
w = 1
w = 0
PresentState
Inputw
NextState
Outputz
A 01
BD
0
If w = 0, we go to state B
of 48
![Page 19: Example Design: A Sequence Detector](https://reader038.vdocuments.us/reader038/viewer/2022102811/586983591a28ab09568be988/html5/thumbnails/19.jpg)
198/18/2010
State Table• Develop the state table from the state diagram
A
Reset
z = 0
B D
w = 1w = 0
C
w = 0
z = 0 z = 0
z = 1
w = 0
w = 1
w = 1 E
w = 1
z = 1
w = 0
w = 1
w = 0
PresentState
Inputw
NextState
Outputz
A 01
BD
0
If w = 1, we go to state D
of 48
![Page 20: Example Design: A Sequence Detector](https://reader038.vdocuments.us/reader038/viewer/2022102811/586983591a28ab09568be988/html5/thumbnails/20.jpg)
208/18/2010
State Table• Develop the state table from the state diagram
A
Reset
z = 0
B D
w = 1w = 0
C
w = 0
z = 0 z = 0
z = 1
w = 0
w = 1
w = 1 E
w = 1
z = 1
w = 0
w = 1
w = 0
PresentState
Inputw
NextState
Outputz
A 01
01
BD
B
0
0
If we are in state B, z should be 0, and w could be high or low
of 48
![Page 21: Example Design: A Sequence Detector](https://reader038.vdocuments.us/reader038/viewer/2022102811/586983591a28ab09568be988/html5/thumbnails/21.jpg)
218/18/2010
State Table• Develop the state table from the state diagram
A
Reset
z = 0
B D
w = 1w = 0
C
w = 0
z = 0 z = 0
z = 1
w = 0
w = 1
w = 1 E
w = 1
z = 1
w = 0
w = 1
w = 0
PresentState
Inputw
NextState
Outputz
A 01
01
BD
CD
B
0
0
If w = 0, we should go to state C
of 48
![Page 22: Example Design: A Sequence Detector](https://reader038.vdocuments.us/reader038/viewer/2022102811/586983591a28ab09568be988/html5/thumbnails/22.jpg)
228/18/2010
State Table• Develop the state table from the state diagram
A
Reset
z = 0
B D
w = 1w = 0
C
w = 0
z = 0 z = 0
z = 1
w = 0
w = 1
w = 1 E
w = 1
z = 1
w = 0
w = 1
w = 0
PresentState
Inputw
NextState
Outputz
A 01
01
BD
CD
B
0
0
If w = 1, we should go to state D
of 48
![Page 23: Example Design: A Sequence Detector](https://reader038.vdocuments.us/reader038/viewer/2022102811/586983591a28ab09568be988/html5/thumbnails/23.jpg)
238/18/2010
State Table• Develop the state table from the state diagram
A
Reset
z = 0
B D
w = 1w = 0
C
w = 0
z = 0 z = 0
z = 1
w = 0
w = 1
w = 1 E
w = 1
z = 1
w = 0
w = 1
w = 0
PresentState
Inputw
NextState
Outputz
A 01
01
01
BD
CD
B
C
0
0
1
If we are in state C, z should be high, and w could be 0 or 1
of 48
![Page 24: Example Design: A Sequence Detector](https://reader038.vdocuments.us/reader038/viewer/2022102811/586983591a28ab09568be988/html5/thumbnails/24.jpg)
248/18/2010
State Table• Develop the state table from the state diagram
A
Reset
z = 0
B D
w = 1w = 0
C
w = 0
z = 0 z = 0
z = 1
w = 0
w = 1
w = 1 E
w = 1
z = 1
w = 0
w = 1
w = 0
PresentState
Inputw
NextState
Outputz
A 01
01
01
BD
CD
B
C CD
0
0
1
If we are in state C, and w=0, we should stay in state C
of 48
![Page 25: Example Design: A Sequence Detector](https://reader038.vdocuments.us/reader038/viewer/2022102811/586983591a28ab09568be988/html5/thumbnails/25.jpg)
258/18/2010
State Table• Develop the state table from the state diagram
A
Reset
z = 0
B D
w = 1w = 0
C
w = 0
z = 0 z = 0
z = 1
w = 0
w = 1
w = 1 E
w = 1
z = 1
w = 0
w = 1
w = 0
PresentState
Inputw
NextState
Outputz
A 01
01
01
BD
CD
B
C CD
0
0
1
If we are in state C, and w=1, we should go to state D
of 48
![Page 26: Example Design: A Sequence Detector](https://reader038.vdocuments.us/reader038/viewer/2022102811/586983591a28ab09568be988/html5/thumbnails/26.jpg)
268/18/2010
State Table• Develop the state table from the state diagram
A
Reset
z = 0
B D
w = 1w = 0
C
w = 0
z = 0 z = 0
z = 1
w = 0
w = 1
w = 1 E
w = 1
z = 1
w = 0
w = 1
w = 0
PresentState
Inputw
NextState
Outputz
A 01
01
01
BD
CD
B
C CD
0
0
1
Hands-On: Complete the state table
of 48
![Page 27: Example Design: A Sequence Detector](https://reader038.vdocuments.us/reader038/viewer/2022102811/586983591a28ab09568be988/html5/thumbnails/27.jpg)
278/18/2010
State Table• Develop the state table from the state diagram
A
Reset
z = 0
B D
w = 1w = 0
C
w = 0
z = 0 z = 0
z = 1
w = 0
w = 1
w = 1 E
w = 1
z = 1
w = 0
w = 1
w = 0
PresentState
Inputw
NextState
Outputz
A 01
01
01
01
BD
CD
B
01
C
D
E
CD
BE
BE
0
0
1
0
1
of 48
![Page 28: Example Design: A Sequence Detector](https://reader038.vdocuments.us/reader038/viewer/2022102811/586983591a28ab09568be988/html5/thumbnails/28.jpg)
288/18/2010
FSM Design Steps1. Obtain the specifications of the desired circuit2. Derive the states of the machine and develop a state
diagram1. Should show all possible states2. Provide the conditions for which the circuit moves from one state to
the next
3. Develop the state table from the state diagram4. Decide on the number of state variables needed to
represent all states1. Minimize the number of states if possible
5. Choose the type of flip-flops that will be used in the implementation
1. Derive the next-state logic expressions to develop the Input Logic Circuit
2. Derive the logic expressions for the Output Logic Circuit
6. Implement the design
of 48
![Page 29: Example Design: A Sequence Detector](https://reader038.vdocuments.us/reader038/viewer/2022102811/586983591a28ab09568be988/html5/thumbnails/29.jpg)
298/18/2010
FPGA or CPLD vs. Discreet Components• The next step in the design process should
be to decide on the number of state variables
• But, if you are designing for FPGAs or CPLDs, the next step is writing the VHDL code– In other words: VHDL design allows us to skip
steps 4 & 5 and go directly to implementation
of 48
![Page 30: Example Design: A Sequence Detector](https://reader038.vdocuments.us/reader038/viewer/2022102811/586983591a28ab09568be988/html5/thumbnails/30.jpg)
308/18/2010
FPGA or CPLD vs. Discreet Components• The next step in the design process should
be to decide on the number of state variables
• But, if you are designing for FPGAs or CPLDs, the next step is writing the VHDL code– In other words: VHDL design allows us to skip
steps 4 & 5 and go directly to implementation– For this class, we’ll do both, but start with VHDL
of 48
![Page 31: Example Design: A Sequence Detector](https://reader038.vdocuments.us/reader038/viewer/2022102811/586983591a28ab09568be988/html5/thumbnails/31.jpg)
318/18/2010
VHDL CodeLIBRARY ieee ;USE ieee.std_logic_1164.all ;
ENTITY sequence ISPORT ( Clock, Resetn, w: IN STD_LOGIC ;
z: OUT STD_LOGIC ) ;END sequence ;
ARCHITECTURE Behavior OF sequence ISTYPE State_type IS (A, B, C, D, E) ;SIGNAL y : State_type ;
BEGINPROCESS ( Resetn, Clock )
BEGINIF Resetn = '0' THEN y <= A ;ELSIF (Clock'EVENT AND Clock = '1') THEN
CASE y ISWHEN A =>
IF w = '0' THEN y <= B ;ELSE y <= D ; END IF ;
WHEN B =>IF w = '0' THEN y <= C ;ELSE y <= D ; END IF ;
WHEN C =>IF w = '0' THEN y <= C ;ELSE y <= D ; END IF ;
WHEN D =>IF w = '0' THEN y <= B ;ELSE y <= E ; END IF ;
WHEN E =>IF w = '0' THEN y <= B ;ELSE y <= E ; END IF ;
END CASE ;END IF ;
END PROCESS ;z <= '1' WHEN (y = C OR y = E) ELSE '0' ;
END Behavior ;
The VHDL code for the design
of 48
![Page 32: Example Design: A Sequence Detector](https://reader038.vdocuments.us/reader038/viewer/2022102811/586983591a28ab09568be988/html5/thumbnails/32.jpg)
328/18/2010
VHDL CodeLIBRARY ieee ;USE ieee.std_logic_1164.all ;
ENTITY sequence ISPORT ( Clock, Resetn, w: IN STD_LOGIC ;
z: OUT STD_LOGIC ) ;END sequence ;
ARCHITECTURE Behavior OF sequence ISTYPE State_type IS (A, B, C, D, E) ;SIGNAL y : State_type ;
BEGINPROCESS ( Resetn, Clock )
BEGINIF Resetn = '0' THEN y <= A ;ELSIF (Clock'EVENT AND Clock = '1') THEN
CASE y ISWHEN A =>
IF w = '0' THEN y <= B ;ELSE y <= D ; END IF ;
WHEN B =>IF w = '0' THEN y <= C ;ELSE y <= D ; END IF ;
WHEN C =>IF w = '0' THEN y <= C ;ELSE y <= D ; END IF ;
WHEN D =>IF w = '0' THEN y <= B ;ELSE y <= E ; END IF ;
WHEN E =>IF w = '0' THEN y <= B ;ELSE y <= E ; END IF ;
END CASE ;END IF ;
END PROCESS ;z <= '1' WHEN (y = C OR y = E) ELSE '0' ;
END Behavior ;
Compare the VHDL code to the state table
PresentState
Inputw
NextState
Outputz
A 01
01
01
01
BD
CD
B
01
C
D
E
CD
BE
BE
0
0
1
0
1
of 48
![Page 33: Example Design: A Sequence Detector](https://reader038.vdocuments.us/reader038/viewer/2022102811/586983591a28ab09568be988/html5/thumbnails/33.jpg)
338/18/2010
Synthesized Circuit
Xilinx synthesized the circuit below
of 48
![Page 34: Example Design: A Sequence Detector](https://reader038.vdocuments.us/reader038/viewer/2022102811/586983591a28ab09568be988/html5/thumbnails/34.jpg)
348/18/2010
SimulationBelow is the test bench created to simulate the FSM Design
The waveform for z is shown as “expected results”
of 48
![Page 35: Example Design: A Sequence Detector](https://reader038.vdocuments.us/reader038/viewer/2022102811/586983591a28ab09568be988/html5/thumbnails/35.jpg)
358/18/2010
SimulationBelow is the test bench created to simulate the FSM Design
Below are the simulated results
You can see that the simulated results match the expected results
of 48
![Page 36: Example Design: A Sequence Detector](https://reader038.vdocuments.us/reader038/viewer/2022102811/586983591a28ab09568be988/html5/thumbnails/36.jpg)
368/18/2010
FSM Design Steps1. Obtain the specifications of the desired circuit2. Derive the states of the machine and develop a state
diagram1. Should show all possible states2. Provide the conditions for which the circuit moves from one state to
the next
3. Develop the state table from the state diagram4. Decide on the number of state variables needed to
represent all states1. Minimize the number of states if possible
5. Choose the type of flip-flops that will be used in the implementation
1. Derive the next-state logic expressions to develop the Input Logic Circuit
2. Derive the logic expressions for the Output Logic Circuit
6. Implement the design
of 48
![Page 37: Example Design: A Sequence Detector](https://reader038.vdocuments.us/reader038/viewer/2022102811/586983591a28ab09568be988/html5/thumbnails/37.jpg)
378/18/2010
Discreet Component Design• You can design using discreet components:
– Go back to step 4:• Decide the number of state variables and assign states• Minimize the number of states if necessary
– To do this we must go back to the state table
of 48
![Page 38: Example Design: A Sequence Detector](https://reader038.vdocuments.us/reader038/viewer/2022102811/586983591a28ab09568be988/html5/thumbnails/38.jpg)
388/18/2010
State TableDecide the number of state variables and assign states
PresentState
Inputw
NextState
Outputz
A 01
01
01
01
BD
CD
B
01
C
D
E
CD
BE
BE
0
0
1
0
1
A minimum of 3 bits will be needed unless we decide to use one-hot encoding.
One way to choose state variables is to try to have only one bit change when changing from one state to the next. Let’s try this approach……
of 48
![Page 39: Example Design: A Sequence Detector](https://reader038.vdocuments.us/reader038/viewer/2022102811/586983591a28ab09568be988/html5/thumbnails/39.jpg)
398/18/2010
State TableDecide the number of state variables and assign states
PresentState
Inputw
NextState
Outputz
01
01
01
01
100101
110101
01
000
100
110
101
111
110101
100111
100111
0
0
1
0
1
It is not possible to have only one bit change from state to state, but I did choose to have the LSb always the same as w, and then only one bit change in going from state to state.
Note: The only time the FSM goes to state A is when the reset signal is asserted.
A
B
C
D
E
of 48
![Page 40: Example Design: A Sequence Detector](https://reader038.vdocuments.us/reader038/viewer/2022102811/586983591a28ab09568be988/html5/thumbnails/40.jpg)
408/18/2010
FSM Design Steps1. Obtain the specifications of the desired circuit2. Derive the states of the machine and develop a state
diagram1. Should show all possible states2. Provide the conditions for which the circuit moves from one state to
the next
3. Develop the state table from the state diagram4. Decide on the number of state variables needed to
represent all states1. Minimize the number of states if possible
5. Choose the type of flip-flops that will be used in the implementation
1. Derive the next-state logic expressions to develop the Input Logic Circuit
2. Derive the logic expressions for the Output Logic Circuit
6. Implement the design
of 48
![Page 41: Example Design: A Sequence Detector](https://reader038.vdocuments.us/reader038/viewer/2022102811/586983591a28ab09568be988/html5/thumbnails/41.jpg)
418/18/2010
Choose Flip-Flops• Choose the type of flip-flops to be used
Presentd2d1d0
Inputw
Nextd2d1d0
D2
01
01
01
01
100101
110101
01
000
100
110
101
111
110101
100111
100111
1
1
1
1
1
Let’s start with D
A
B
C
D
E
Outputz
0
0
1
0
1
D1 D0
w
w
w
w w
w
w
w
w0
of 48
![Page 42: Example Design: A Sequence Detector](https://reader038.vdocuments.us/reader038/viewer/2022102811/586983591a28ab09568be988/html5/thumbnails/42.jpg)
428/18/2010
Choose Flip-Flops• Choose the type of flip-flops to be used
Presentd2d1d0
Inputw
Nextd2d1d0
D2
01
01
01
01
100101
110101
01
000
100
110
101
111
110101
100111
100111
1
1
1
1
1
The inputs to D2 for the states shown are always 1. The states that are not shown are “-” (Don’t Cares).
So:
The inputs to D0 for the states shown are always w, except for the “-”.
So:
z is always the same as D1 (present state) so:
A
B
C
D
E
Outputz
0
0
1
0
1
D1 D0
w
w
w
w w
w
w
w
w0
D2 1=
D w0=
z D= 1
of 48
![Page 43: Example Design: A Sequence Detector](https://reader038.vdocuments.us/reader038/viewer/2022102811/586983591a28ab09568be988/html5/thumbnails/43.jpg)
438/18/2010
Choose Flip-Flops• Choose the type of flip-flops to be used
Presentd2d1d0
Inputw
Nextd2d1d0
D2
01
01
01
01
100101
110101
01
000
100
110
101
111
110101
100111
100111
1
1
1
1
1
But, the inputs to D1 have 0, w and /w, so we need to put this in a Karnaugh Map. A
B
C
D
E
Outputz
0
0
1
0
1
D1 D0
w
w
w
w w
w
w
w
w0
D2 1=
D w0=
z D= 1
D1=?
D1
0
- -
- ww
w w
of 48
![Page 44: Example Design: A Sequence Detector](https://reader038.vdocuments.us/reader038/viewer/2022102811/586983591a28ab09568be988/html5/thumbnails/44.jpg)
448/18/2010
Choose Flip-Flops• Choose the type of flip-flops to be used
Presentd2d1d0
Inputw
Nextd2d1d0
D2
01
01
01
01
100101
110101
01
000
100
110
101
111
110101
100111
100111
1
1
1
1
1
But, the inputs to D1 have 0, w and /w, so we need to put this in a Karnaugh Map. A
B
C
D
E
Outputz
0
0
1
0
1
D1 D0
w
w
w
w w
w
w
w
w0
D2 1=
D w0=
z D= 1
D wd wd d1 0 0 2= +
D1
0
- -
- ww
w w
of 48
![Page 45: Example Design: A Sequence Detector](https://reader038.vdocuments.us/reader038/viewer/2022102811/586983591a28ab09568be988/html5/thumbnails/45.jpg)
458/18/2010
D Flip-Flop Implementation
The D flip-flop implementation produced the same results as the VHDL code. But, this circuit could be simplified.
of 48
![Page 46: Example Design: A Sequence Detector](https://reader038.vdocuments.us/reader038/viewer/2022102811/586983591a28ab09568be988/html5/thumbnails/46.jpg)
468/18/2010
D Flip-Flop Implementation
The D flip-flop implementation produced the same results as the VHDL code. But, this circuit could be simplified.
D2 will always be high except in the reset state. If that is not important, D2could be eliminated.
The “always high” input to the AND gate can also be eliminated because:A*B*1=A*B
of 48
![Page 47: Example Design: A Sequence Detector](https://reader038.vdocuments.us/reader038/viewer/2022102811/586983591a28ab09568be988/html5/thumbnails/47.jpg)
478/18/2010
D Flip-Flop Implementation
This D flip-flop implementation also produced the same results as the VHDL code and the previous circuit.
of 48
![Page 48: Example Design: A Sequence Detector](https://reader038.vdocuments.us/reader038/viewer/2022102811/586983591a28ab09568be988/html5/thumbnails/48.jpg)
488/18/2010
Summary• In this topic we worked through an entire, if
simple, design problem:– Reviewed the specifications– Derived the state diagram– Built the state table and assign states– Decided the number of state variables needed– Chose the technology– Implemented the design
of 48