微波EDA网,见证研发工程师的成长!
首页 > 研发问答 > 嵌入式设计讨论 > FPGA,CPLD和ASIC > 求教!应用vhdl有关模拟标准ps/2键盘写入数据的时序问题!

求教!应用vhdl有关模拟标准ps/2键盘写入数据的时序问题!

时间:10-02 整理:3721RD 点击:
写了一个非标准键盘的程序,用ps/2连接fpga开发板和电脑,实现在开发板上的矩阵键盘上按个键,然后能在电脑上显示。
下面是我的ps/2模块,请各位大神帮忙看下写出来的时序是对的吗?

  1. library ieee;
  2. use ieee.std_logic_1164.all;
  3. use ieee.std_logic_arith.all;
  4. use ieee.std_logic_unsigned.all;
  5. entity ps2 is
  6. port(en_in:in std_logic; --按键使能标志
  7.         ym_tong:in std_logic_vector(7 downto 0); --按键对应的通码
  8.         clk:in std_logic;
  9.         clk1:in std_logic;
  10.         ps2data:out std_logic;--输出ps2数据
  11.         ps2ccclock:out std_logic; --输出ps2时钟
  12.         xiaoyan:in std_logic; --校验位
  13.         en:buffer std_logic; --按下按键标志
  14.         shifangen:buffer std_logic --释放按键标志
  15.         );
  16. end ps2;
  17. architecture one of ps2 is
  18. signal cnt:std_logic_vector(3 downto 0);
  19. signal cnt0:std_logic_vector(3 downto 0);
  20. signal cnt1:std_logic_vector(4 downto 0);
  21. signal cnt2:std_logic_vector(4 downto 0);
  22. signal en0,en00,en000:std_logic;
  23. signal shifang0,shifangen00:std_logic;
  24. signal ym_tong1,ym_tong2:std_logic_vector(7 downto 0);
  25. begin
  26.        
  27. process(en_in)---
  28. begin
  29. if(clk'event and clk='1')then
  30. en0 ps2data ps2data ps2data ps2data ps2data ps2data ps2data ps2data ps2data ps2data ps2data ps2data ps2data ps2data ps2data ps2data ps2data ps2data ps2data ps2data ps2data ps2data ps2data NULL;
  31. end case;
  32. case cnt0 is
  33. when "0000" => ps2data ps2data ps2data ps2data ps2data ps2data ps2data ps2data ps2data ps2data ps2data ps2data NULL;
  34. end case;
  35. end if;
  36. end process;
  37. end architecture one;

复制代码


这是仿真出来的ps/2时序图


哇  好厉害 小编真棒

Copyright © 2017-2020 微波EDA网 版权所有

网站地图

Top