- 1、原创力文档(book118)网站文档一经付费(服务费),不意味着购买了该文档的版权,仅供个人/单位学习、研究之用,不得用于商业用途,未经授权,严禁复制、发行、汇编、翻译或者网络传播等,侵权必究。。
- 2、本站所有内容均由合作方或网友上传,本站不对文档的完整性、权威性及其观点立场正确性做任何保证或承诺!文档内容仅供研究参考,付费前请自行鉴别。如您付费,意味着您自己接受本站规则且自行承担风险,本站不退款、不进行额外附加服务;查看《如何避免下载的几个坑》。如果您已付费下载过本站文档,您可以点击 这里二次下载。
- 3、如文档侵犯商业秘密、侵犯著作权、侵犯人身权等,请点击“版权申诉”(推荐),也可以打举报电话:400-050-0827(电话支持时间:9:00-18:30)。
- 4、该文档为VIP文档,如果想要下载,成为VIP会员后,下载免费。
- 5、成为VIP后,下载本文档将扣除1次下载权益。下载后,不支持退款、换文档。如有疑问请联系我们。
- 6、成为VIP后,您将拥有八大权益,权益包括:VIP文档下载权益、阅读免打扰、文档格式转换、高级专利检索、专属身份标志、高级客服、多端互通、版权登记。
- 7、VIP文档为合作方或网友上传,每下载1次, 网站将根据用户上传文档的质量评分、类型等,对文档贡献者给予高额补贴、流量扶持。如果你也想贡献VIP文档。上传文档
查看更多
电子设计自动化(eda)_数字时钟程序模块(led数码管显示)_实验报告
电子设计自动化(EDA)—数字时钟LED数码管显示
二、实验内容和实验目的
1.6个数码管动态扫描显示驱动
2.按键模式选择(时\分\秒)与闹钟(时\分)调整控制,
3.用硬件描述语言(或混合原理图)设计时、分、秒计数器模块、闹钟模块、按键控制状态机模块、动态扫描显示驱动模块、顶层模块。要求使用实验箱左下角的6个动态数码管(DS6 A~DS1A)显示时、分、秒;要求模式按键和调整按键信号都取自经过防抖处理后的按键跳线插孔。
实验目的: 1)学会看硬件原理图,2)掌握FPGA硬件开发的基本技能
3)培养EDA综合分析、综合设计的能力
三、实验步骤、实现方法(或设计思想)及实验结果
主要设备: 1)PC机,2)硬件实验箱,3)Quartus II软件开发平台。
1.打开Quartus II ,连接实验箱上的相关硬件资源,如下图1所示。
2.建立新文件,选择文本类型或原理图类型。
3.编写程序。
4.编译
5.仿真,加载程序到芯片,观察硬件输出结果(数码管显示)
6.结果正确则完成。若结果不正确,则修改程序,再编译,直到正确。
模24计数器模块
LIBRARY IEEE;
USE IEEE.STD_LOGIC_1164.ALL;
USE IEEE.STD_LOGIC_UNSIGNED.ALL;
USE IEEE.STD_LOGIC_ARITH.ALL;
ENTITY count24 IS
PORT(clk,en:IN STD_LOGIC;
cout:OUT STD_LOGIC;
hh,hl:OUT STD_LOGIC_VECTOR(3 DOWNTO 0));
END count24;
ARCHITECTURE arc OF count24 IS
SIGNAL a,b:STD_LOGIC_VECTOR(3 DOWNTO 0);
BEGIN
PROCESS(clk,en)
BEGIN
hh=a;
hl=b;
IF(clkEVENT AND clk=1) THEN
IF(en=1) THEN
IF(a=0010 AND b=0011) THEN
a=0000;
b=0000;
ELSE IF(b=1001) THEN
a=a+1;
b=0000;
ELSE b=b+1;
END IF;
END IF;
IF(a=0010 AND b=0010) THEN
cout=1;
ELSE cout=0;
END IF;
END IF;
END IF;
END PROCESS;
END arc;
模60计数器模块
LIBRARY IEEE;
USE IEEE.STD_LOGIC_1164.ALL;
USE IEEE.STD_LOGIC_UNSIGNED.ALL;
USE IEEE.STD_LOGIC_ARITH.ALL;
ENTITY count60 IS
PORT(clk,en:IN STD_LOGIC;
cout:OUT STD_LOGIC;
hh,hl:OUT STD_LOGIC_VECTOR(3 DOWNTO 0));
END count60;
ARCHITECTURE arc OF count60 IS
SIGNAL a,b:STD_LOGIC_VECTOR(3 DOWNTO 0);
SIGNAL sout:STD_LOGIC;
BEGIN
PROCESS(clk)
BEGIN
hh=a;
hl=b;
IF(clkEVENT AND clk=1) THEN
IF(en=1) THEN
IF(a=0101 AND b=1001) THEN
a=0000;
b=0000;
ELSE IF(b=1001) THEN
a=a+1;
b=0000;
ELSE b=b+1;
END IF;
END IF;
END IF;
END IF;
END PROCESS;
sout=1 WHEN a=0101 AND b=1001
ELSE 0;
cout=sout AND en;
END arc;
4-7显示译码模块
LIBRARY IEEE;
USE IEEE.STD_LOGIC_1164.ALL;
ENTITY segment4to7 IS
PORT(s:IN STD_LOGIC_VECTOR(3 DOWNTO 0);
a,b,c,d,e,f,g:OUT STD_LOGIC);
END segment4to7;
ARCHITECTURE arc OF segment4to7 IS
SIGNAL y:STD_LOGIC_VECTOR(6 DOWNTO 0);
BEGI
文档评论(0)