| 
 | 
 
module sale 
( 
                input clk, 
                input rst_n, 
                input [1:0]momy,//01琛ㄧず5鍒嗭紝10琛ㄧず10鍒? 
                 
                output reg yl,//yl=1琛ㄧず杈撳嚭楗枡 
                output reg zl//zl=1琛ㄧず鎵鹃浂 
 
); 
parameter IDLE                        =3'd0, 
                   FEN51                =3'd1, 
                   FEN52                =3'd2, 
                   FEN10=                =3'd3; 
                  reg [2:0]state; 
always @(posedge clk or negedge rst_n) 
        if(~rst_n) 
                state<=IDLE; 
        else case(state) 
                         IDLE          :if(momy==01)state<=FEN51; 
                                           else if(momy==10)state<=FEN52; 
                         FEN51    :if(momy==01)state<=FEN52; 
                                           else if(momy==10)state<=FEN10; 
                         FEN52    :state<=IDLE; 
                         FEN10    :state<=IDLE; 
                endcase 
                         
 
always @(posedge clk or negedge rst_n) 
                if(~rst_n)begin 
                         zl<=0; 
                        yl        <-0;end 
                else begin 
                                if( (state=FEN52)|| (state==FEN10) ) 
                                                yl        <=1; 
                                else   
                                                yl        <=0; 
                                if(state==FEN10) 
                                                zl<=1'b1; 
                                else  
                                                 
                                                zl<=1'b0;         
                 
                 
                end 
endmodule  |   
 
 
 
 |