1、题目The PS/2 mouse protocol sends messages that are three bytes long. However, within a continuous byte stream, its not obvious where messages start and end. The only indication is that the first byte of each three byte message always has bit[3]1 (but bit[3] of the other two bytes may be 1 or 0 depending on data).We want a finite state machine that will search for message boundaries when given an input byte stream. The algorithm well use is to discard bytes until we see one with bit[3]1. We then assume that this is byte 1 of a message, and signal the receipt of a message once all 3 bytes have been received (done).The FSM should signal done in the cycle immediately after the third byte of each message was successfully received.2、分析1byte8bitPS/2鼠标协议发送三字节长的消息第一个字节的bit[3]1其它不一定完成所有三个字节的接受后表示消息已经收到。3、代码module top_module( input clk, input [7:0] in, input reset, // Synchronous reset output done); // parameter IDLE4b0001,BYTE14b0010,BYTE24b0100,BYTE34b1000; reg [4:0]state,next_state; // State transition logic (combinational) always(*)begin case(state) IDLE:next_statein[3]?BYTE1:IDLE; BYTE1:next_stateBYTE2; BYTE2:next_stateBYTE3; BYTE3:next_statein[3]?BYTE1:IDLE; default:next_stateIDLE; endcase end // State flip-flops (sequential) always(posedge clk)begin if(reset) stateIDLE; else statenext_state; end // Output logic assign done(stateBYTE3); endmodule