A tennis scoring device TS is to be constructed that determines the winner in a two-person game of tennis. TS has inputs x1, x2 and outputs z1, z2. Input xi is set to 1 for one clock cycle whenever player 1 scores a point and is set to 0 otherwise. Output zi is set to 1 whenever player i wins a game; it is 0 otherwise. The rules of tennis can be stated as follows: To win a game, a player must win at least four points and must be at least two points ahead of the other player. TS should also have a reset input. (a) Construct a state machine that defines the behavior of TS. (b) Implement that state machine in Verilog in the behavioral form described in class. (c) Test the state machine using a testbench which enters each state at least once. (d) Give each state a number and include a $display statement at each state which prints the number of the state when it is entered. Turn in the printout as proof that all states are visited at least once. The tennis scoring device module should be called TS and thefile should be called ts.v. The testbench should be called ts_tb and the testbench file should be called ts_tb.v. A third file called ts_output.txt should contain the text output generated during simulation which will list all of the states encountered.