La matriz del teclado 4x4 no genera códigos clave únicos

0

Tengo un escáner de 4x4 keybord matrix fsm pero genera solo un código de clave alto configurando todos los últimos 4 bits a 1 y segundo y cuarto dígitos a alto. ¿Hay algún error en mi código aquí?

module keyboardScanner (input clk, input [3:0] col,output reg [3:0] row, output reg [7:0] keyCode);
reg [1:0]state=2'b00;
reg [1:0]nextState=2'b00;

//state register
always@(posedge clk) begin
    state <= nextState;
end

//output CL
always@(posedge clk) begin
    case (state)
    2'b00: row <= 4'b0001;
    2'b01: row <= 4'b0010;
    2'b10: row <= 4'b0100;
    2'b11: row <= 4'b1000;
    default: row <= 4'b0001;
  endcase
    if (col != 4'b0000) begin
    keyCode <= {row[0],row[1],row[2],row[3], col[0],col[1],col[2],col[3]};
    end
end

//next state CL
always @(posedge clk) begin
        case (state)
            2'b00: nextState <= 2'b01;
            2'b01: nextState <= 2'b10;
            2'b10: nextState <= 2'b11;
            2'b11: nextState <= 2'b00;
            default: nextState <= 2'b00;
        endcase
end

endmodule

Por favor ayúdame. Solía funcionar hace 2 días, pero ahora ...: /

    
pregunta anon

1 respuesta

1

He encontrado la respuesta. Fue un problema detener el reloj. El reloj fue puesto a tierra y destruyó la cosa. ¡Ahora funciona bien!

    
respondido por el anon

Lea otras preguntas en las etiquetas