vhdl - 如何为我的 Basys 3 FPGA 板上的四个 7 段显示器编写数据生成器?
问题描述
我的任务是为数据生成器和符号转换器编写代码,以在 Basys 3 板上运行四个 7 段显示器。这只是我在 VHDL 中的第二个任务,所以我还在学习,但我已经能够编写一个 0 到 9999 的计数器,我觉得这很有挑战性。我真的很想被告知最好的方法,并给出一些关于下一步该做什么的链接或提示,而不是有人只是为我编写代码。
DG 必须根据您打开/关闭的开关产生各种 4 位序列,并且 D1 和 D2 必须循环。每个 4 位数据值需要由两个 2 位“符号”表示(例如,“1011”变成符号“10”后跟符号“11”;)对于来自 DG 的每个 4 位值,一个 SC 实体应该输出两个 2 位符号 - 因此将以 2Hz 运行。但是,D4 和 D3 将保持静态。
我已经为我需要的不同开关组合编写了 if 语句,但我正在努力思考如何输出 D1 和 D2 显示,因为我知道他们还必须检查重置和启动/停止功能成为第一次通过 deBounce 函数运行。我已经编写了一个 deBounce 函数,但我不确定如何将它链接到我的重置和启动/停止按钮。以下是我迄今为止为 DG 实体编写的内容(我知道有很多缺失和 16 个语法错误,但我只是简要概述了我将来想要拥有的内容):
library IEEE;
use IEEE.STD_LOGIC_1164.ALL;
use IEEE.NUMERIC_STD.ALL;
entity Data_Generator is
Port ( i_Clk : in STD_LOGIC;
i_Reset : in STD_LOGIC;
i_StartStop : in STD_LOGIC;
i_CE2Hz : in STD_LOGIC;
i_SW : in STD_LOGIC_VECTOR );
end Data_Generator;
architecture Behavioral of Data_Generator is
signal i_D4 : integer range 0 to 7;
signal i_D3 : integer range 0 to 15;
signal i_D2 : STD_LOGIC_VECTOR(0 to 1);
signal i_D1 : STD_LOGIC_VECTOR(0 to 1);
begin
displayChoice : process (i_Reset, i_StartStop, i_SW)
begin
if (i_SW = '1000') then
i_D4 <= 0 ;
i_D3 <= 1 ;
if (i_Reset = '1'
end if;
elsif (i_SW = '0100') then
i_D4 <= 1
i_D3 <= 7
elsif (i_SW = '1100') then
i_D4 <= 2
i_D3 <= 14
elsif (i_SW = '0010') then
i_D4 <= 3
i_D3 <= 8
elsif (i_SW = '0001') then
i_D4 <= 6
i_D3 <=
elsif (i_SW = '1001') then
i_D4 <= 7
i_D3 <=
else
i_D4 <= 0
i_D3 <= 0
end if;
end process displayChoice;
end Behavioral;
(我所拥有的 D4 和 D3 是稍后应该在显示器上出现的)
我将不胜感激任何帮助或建议。如果您想查看我的其他实体或我的顶级的附加代码,请告诉我。谢谢
解决方案
推荐阅读
- python - 将烧瓶应用程序部署到heroku服务器后出现找不到模块错误
- python - 尝试运行 docplex 示例时出现 BrokenProcessPool 错误
- html -
屏幕缩小后隐藏 - apache-spark - SparkLauncher 独立集群模式
- socket.io - NestJS + Socket.io:没有收到消息
- ruby-on-rails - 多态关联通过关注给未定义的方法relation_delegate_class
- c# - (UWP)System.Runtime.InteropServices.COMException: '错误 HRESULT E_FAIL 已从对 COM 组件的调用中返回。'
- python - Python 2.7 将列表写入 CSV 数据,一些数据是 unicode,一些数据是字符串。哪个更有效地输出到地理数据库中的 dbf 表?
- ruby-on-rails - 在构建 Rails Gem 时,如何让 Rails 在查找视图部分时加载的 ActionView 路径中包含我的 gem 的 app/views/?
- python - 对于大小为 0 的轴 0,索引超出范围