这些小活动你都参加了吗?快来围观一下吧!>>
电子产品世界 » 论坛首页 » 嵌入式开发 » FPGA » 矩阵按键锁定问题

共4条 1/1 1 跳转至

矩阵按键锁定问题

助工
2014-04-07 10:01:20     打赏
always @(posedge clk or negedge rst_n)
begin
if (!rst_n) 
    begin 
      key_value_r <= 4'd0;
    end 
else begin 
  if(key_mark==1'b1)

begin

case ({col_reg,row_reg})

  8'b1110_1110: key_value_r<=4'd0;                                              

  8'b1110_1101: key_value_r<=4'd1;

  8'b1110_1011: key_value_r<=4'd2;

  8'b1110_0111: key_value_r<=4'd3;

  

  8'b1101_1110: key_value_r<=4'd4;

  8'b1101_1101: key_value_r<=4'd5;

  8'b1101_1011: key_value_r<=4'd6;

  8'b1101_0111: key_value_r<=4'd7;



  8'b1011_1110: key_value_r<=4'd8;

  8'b1011_1101: key_value_r<=4'd9;

  8'b1011_1011: key_value_r<=4'd10;

  8'b1011_0111: key_value_r<=4'd11;



  8'b0111_1110: key_value_r<=4'd12;

  8'b0111_1101: key_value_r<=4'd13;

  8'b0111_1011: key_value_r<=4'd14;

  8'b0111_0111: key_value_r<=4'd15;
      default: key_value_r <= 4'd1; 
  

  endcase 
    end  
  end 
end  



怎么让锁定的矩阵按键值保持在一个时钟周期啊,非常感谢啊



关键词: 矩阵按键 FPGA verilog    

高工
2014-04-07 11:46:12     打赏
2楼
一个时钟周期?可以尝试下用按键状态机来实现一个循环周期

工程师
2014-04-07 12:55:54     打赏
3楼

always @(posedge clk or negedge rst_n)

begin

    col_reg_r1<=col_reg;

   row_reg_r1<=row_reg;

    if(col_reg_r1 ==col_reg && row_reg_r1==row_reg)

        key_value <= 4'd0;

    else

        key_value <= key_value_r;

end


工程师
2014-04-07 12:56:40     打赏
4楼

思想为:将输入寄存一排,

如果发生变化,则更新一下,否则一直等于0


共4条 1/1 1 跳转至

回复

匿名不能发帖!请先 [ 登陆 注册 ]