Download Minesweeper
Transcript
module blinkoff_fsm(clk, reset, loc, blinkstatus, L); //blinkoff_fsm(blinkstatus,loc,reset,clk,bclk,L); input clk; input reset; input [4:0] loc; input [1:0] blinkstatus; output [59:0] L; reg [59:0] L; always @(posedge clk or posedge reset) if (reset) L <= 60'b0; else if (blinkstatus == 2'b00) begin L[2*(loc-1)] <= 1; // turn off LED L[2*(loc-1)+1] <= 0; end else if (blinkstatus == 2'b01) begin L[2*(loc-1)] <= 0; L[2*(loc-1)+1] <= 0; end else if (blinkstatus == 2'b10) begin L[2*(loc-1)+1] <= 1; //blink L[2*(loc-1)] <= 0; end endmodule module gridpoller(sclk,bclk,reset,L,gridcol,poller); input sclk; input bclk; input reset; input [59:0] L; output [4:0] gridcol; output [5:0] poller; reg [5:0] state; reg [5:0] nextstate; reg [4:0] gridcol; parameter S0 = 6'b011111; parameter S1 = 6'b101111; parameter S2 = 6'b110111; parameter S3 = 6'b111011; parameter S4 = 6'b111101; parameter S5 = 6'b111110; assign poller[5:0] = state[5:0]; assign poller[4] = state[4]; assign poller[3] = state[3]; assign poller[2] = state[2]; assign poller[1] = state[1]; assign poller[0] = state[0]; // State Register always @(posedge sclk or posedge reset) if (reset) state <= S0; else state <= nextstate; // Next State Logic 32