发 帖  
原厂入驻New
[问答]

fpga--矩阵键盘实现某些按键独特功能

780 FPGA
分享
矩阵键盘原来是按一下输出一个值,现在想把其中几个值改为一直按一直输出而不是一直按着只输出一个值
0
奖励30积分
2020-8-5 10:30:58   评论 分享淘帖 邀请回答
1个回答
“几个值一直按一直输出”,输出什么?逻辑电平/时钟信号/PWM信号/组合递增数据?
如果是逻辑电平,按键信号改为锁存状态即可。锁存模式下需要添加复位/清零操作。
  1. `timescale 1ns / 1ps

  2. module matrix_keyboard  #(
  3.     //------parameter
  4.     parameter                   DATA_WIDTH  =   4x4               ,//示例:4x4矩阵键盘
  5.     parameter                   LOCK_WIDTH  =   1                  //示例:最低位为锁存状态
  6.     )   (
  7.     //------clk_rst_signals
  8.     input                                   sys_clk               ,
  9.     input                                   sys_rst_n             ,
  10.     //------data_i_signals
  11.     input       [DATA_WIDTH - 1:00]         key_in                ,
  12.     //------data_o_signals
  13.     output wire [LOCK_WIDTH - 1:00]         data_lock_out         ,//锁存
  14.     output wire [DATA_WIDTH - 1:LOCK_WIDTH] data_direct_out        //与按键状态保持一致

  15.     );   
  16.    
  17. //---------------------------------------------------------------------------
  18.            reg  [LOCK_WIDTH - 1:00]         data_lock_reg         ;
  19.     //------假定每次只按下一个键
  20.     //------此段代码只能保证锁存一位按键值,其他会自动清零
  21.     always@(posedge sys_clk or negedge sys_rst_n)
  22.     begin
  23.         if(!sys_rst_n)
  24.         begin
  25.             data_lock_reg   <=     'b0                            ;
  26.         end
  27.         else if(key_in[LOCK_WIDTH - 1:00] > 0)
  28.         begin
  29.             data_lock_reg   <=     key_in[LOCK_WIDTH - 1:00]      ;
  30.         end
  31.         else
  32.         begin
  33.             data_lock_reg   <=     data_lock_reg                  ;
  34.         end
  35.     end

  36.     assign  data_lock_out    =     data_lock_reg                  ;
  37.    
  38. //---------------------------------------------------------------------------
  39.     assign  data_direct_out  =   key_in[DATA_WIDTH - 1:LOCK_WIDTH];
  40.    
  41. endmodule
复制代码
最佳答案
2020-8-5 10:30:59 评论

举报

撰写答案

你正在撰写答案

如果你是对答案或其他答案精选点评或询问,请使用“评论”功能。

高级模式
您需要登录后才可以回帖 登录 | 注册

声明:本文内容及配图由入驻作者撰写或者入驻合作网站授权转载。文章观点仅代表作者本人,不代表电子发烧友网立场。文章及其配图仅供工程师学习之用,如有内容图片侵权或者其他问题,请联系本站作侵删。 侵权投诉
我要提问
关闭

站长推荐 上一条 /7 下一条

快速回复 返回顶部 返回列表