我想使用Vivado编写一个简单的VHDL程序,以注册来自4x4键盘(this model)的输入,并将该值显示在该板具有的7段显示器上。
为此,通过阅读Basys3 manual,我想我必须通过以下方式将行和列引脚连接到Pmod端口之一(我想使用JB Pmod端口):< / p>
A14到第1行,A16到第2行,B15到第3行,B16到第4行
从A15到Col1,从A17到Col2,从C15到Col3,从C16到Col4
和要使用的实体必须与此类似
entity Keypad is
Port (
clk : in std_logic;
reset : in std_logic;
row_vector : in std_logic_vector(3 downto 0);
col_vector : out std_logic_vector(3 downto 0);
code : out std_logic_vector(3 downto 0)
);
end Keypad;
因此我可以将row_vector [0],row_vector [1],row_vector [2]和row_vector [3]分别用作Row1,Row2,Row3和Row4,并且与列相同。
代码变量将根据下表获取其值
我的问题是。我如何开始解决这个问题?根据诸如this one之类的其他问题,col_vector
是输出,我不明白为什么。我想使用this webpage的教程来研究这个项目。
我知道如何为按键和状态机实现去抖动器,以完成链接页面所具有的步骤,但是我的问题是我不理解如何从键盘读取输入,因为我执行了所有项目已经读了板子附带的按钮,而且更简单。