CSE 140L Lab Three, Fall 2005, CK Cheng

Finite State Machine: Pattern Recognizer

Due time: Right before class on 11/23/05

Objective

* Learn how to design the pattern recognizer using finite state machine.

* Learn how to use the state diagram to specify the system as a finite state machine.

* Learn the VHDL implementation in Xilinx.

* Learn the difference between Mealy and Moore machines and compare their results with different state assignments.

Note that in the lab, we use Device Family: Spartan2, Device Type: xc2s30-5tq144.

Part 1. The Finite State Machine

    Design the finite state machine (Mealy Machine & Moore Machine) for a pattern recognizer, which has a one-bit input, x, and a one-bit output, z. Whenever the input string x(t-5, t) matches the pattern "110010" or "110110", the machine outputs a '1' . Otherwise, the output is '0'. Overlaps of the patterns are allowed.

    For this part, your report should at least include:
       
- A summary for the design and implementation process with less than 80 words.

Part 2. Mealy Machine

 

  1. Implement the pattern recognizer as a Mealy machine in Xilinx. Try three different coding for state assignments.
  2. Verify the correctness of the design. Given an input sequence x="1110110010110010", display the simulation waveforms.
  3. Change the input sequence to demonstrate the glitch of the Mealy machine.
     
    For this part, your report should at least include:
       
    - The state diagram.
        - Three VHDL programs ( The first VHDL codes should be complete. The other two can only show the difference from the first one. )
        - The statistical information for state encoding and device utilization from "Synthesis Report".
        - Post place&route simulation waveforms for that given input sequence.
        - Simulation waveforms with glitch and explain why it happens or explain why there is no glitch.
     

Part 3. Moore Machine

 

  1. Implement the pattern recognizer as a Moore machine in Xilinx. Try three different coding for state assignments.
  2. Verify the correctness of the design. Given an input sequence x="1110110010110010", display the simulation waveforms.
  3. Demonstrate an input sequence (if there is any) that causes a glitch in the Moore machine.
     
    For this part, your report should at least include:
       
    - The state diagram.
        - Three VHDL programs ( The first VHDL codes should be complete. The other two can only show the difference from the first one. )
        - The statistical information for state encoding and device utilization from "Synthesis Report".
        - Post place&route simulation waveforms for that given input sequence.
        - Simulation waveforms with glitch or explain why there is no glitch.

 

Part 4. Comparison

    Compare the six different implementations (three different state assignments for both Mealy and Moore machines) in terms of the number of states, number of flip-flops, number of lines of the VHDL code, and the number of CLBs (Combinational Logic Blocks). List your results in a table format.

    For this part, your report should at least include:
       
- The comparison table.

 

Additional Instructions on the Report

   Provide a title page which includes:

*       Names, PIDs of the students and due date.

*       Title of the lab.

*       A brief description of each person's contribution.

 

Grading

   90% will be based on the completeness and correctness of the report.
   10% will be based on the neatness, organization, and following instruction of the report format.