VHDL数字时钟完整程序代码(要求要有元件例化,并
答案:3 悬赏:40
解决时间 2021-02-04 09:36
- 提问者网友:野性
- 2021-02-03 22:15
VHDL数字时钟完整程序代码(要求要有元件例化,并
最佳答案
- 二级知识专家网友:何以畏孤独
- 2021-02-03 23:06
课程设计任务书
课程设计名称 EDA课程设计 学生姓名 专业班级
设计题目 多功能数字钟设计
一、 课程设计目的
1、综合运用EDA技术,独立完成一个课题的设计,考察运用所学知识,解决实际问题的能力;
2、结合理论知识,考察阅读参考资料、文献、手册的能力;
3、进一步熟悉EDA技术的开发流程,掌握文件编辑、编译、仿真、下载验证等环节的实现方法和应用技巧;
4、锻炼撰写研究报告、研究论文的能力;
5、通过本实践环节,培养科学和严谨的工作作风。
二、 设计内容、技术条件和要求
l、能进行正常的时、分、秒计时功能,分别由6个数码显示24小时、60分钟的计数器显示。
2、能利用实验系统上的按钮实现“校时”、“校分”功能;
(1)按下“SA”键时,计时器迅速递增,并按24小时循环;
(2)按下“SB”键时,计时器迅速递增,并按59分钟循环,并向“时”进位;
(3)按下“SC”键时,秒清零;抖动的,必须对其消抖处理。
3、能利用扬声器做整点报时:
(1)当计时到达59’50”时开始报时,频率可为500Hz;计满23小时后回零;计满59分钟后回零。(2)到达59’59”时为最后一声整点报时,整点报时的频率可定为lKHz。
4定时闹钟功能
5、用层次化设计方法设计该电路,用硬件描述语言编写各个功能模块。
6、报时功能。报时功能用功能仿真的仿真验证,可通过观察有关波形确认电路设计是否正确。
三、 时间进度安排
1周:(1) 完成设计准备,确定实施方案;(2) 完成电路文件的输入和编译;(4) 完成功能仿真。
2周:(1) 完成文件至器件的下载,并进行硬件验证;(2) 撰写设计说明书。
四、 主要参考文献
(1)谭会生、瞿遂春,《EDA技术综合应用实例与分析》,西安电子科技大学出版社,2004
(2)曹昕燕、周凤臣等,《EDA技术实验与课程设计》,清华大学出版社,2006
指导教师签字: 2011年9月19日
一、实验原理 :
用层次化设计的方法以VHDL语言编程实现以下功能:
【1】 具有“时”、“分”、“秒”计时功能;时为24进制,分和秒都为60进制。
【2】 具有消抖功能:手工按下键盘到是否这个过程大概50ms左右,在按下开始到弹簧片稳,定接触这段时间为5-10ms,从释放到弹片完全分开也是5-10ms,在达到稳定接触和完全分开的微观过程中,电平是时高时低的,因此如果在首次检测到键盘按下时延时10ms再检测就不会检测到抖动的毛刺电平了。64Hz的信号周期为15.6ms,正适合做消抖信号。
【3】 具有校时和清零功能,能够用4Hz脉冲对“小时”和“分”进行调整,并可进行秒零;
【4】 具有整点报时功能。在59分51秒、53秒、55秒、57秒发出低音512Hz信号,在59分59秒发出一次高音1024Hz信号,音响持续1秒钟,在1024Hz音响结束时刻为整点。
【5】 具有一键设定闹铃及正常计时与闹铃时间的显示转换。闹时时间为一分钟。
课程设计名称 EDA课程设计 学生姓名 专业班级
设计题目 多功能数字钟设计
一、 课程设计目的
1、综合运用EDA技术,独立完成一个课题的设计,考察运用所学知识,解决实际问题的能力;
2、结合理论知识,考察阅读参考资料、文献、手册的能力;
3、进一步熟悉EDA技术的开发流程,掌握文件编辑、编译、仿真、下载验证等环节的实现方法和应用技巧;
4、锻炼撰写研究报告、研究论文的能力;
5、通过本实践环节,培养科学和严谨的工作作风。
二、 设计内容、技术条件和要求
l、能进行正常的时、分、秒计时功能,分别由6个数码显示24小时、60分钟的计数器显示。
2、能利用实验系统上的按钮实现“校时”、“校分”功能;
(1)按下“SA”键时,计时器迅速递增,并按24小时循环;
(2)按下“SB”键时,计时器迅速递增,并按59分钟循环,并向“时”进位;
(3)按下“SC”键时,秒清零;抖动的,必须对其消抖处理。
3、能利用扬声器做整点报时:
(1)当计时到达59’50”时开始报时,频率可为500Hz;计满23小时后回零;计满59分钟后回零。(2)到达59’59”时为最后一声整点报时,整点报时的频率可定为lKHz。
4定时闹钟功能
5、用层次化设计方法设计该电路,用硬件描述语言编写各个功能模块。
6、报时功能。报时功能用功能仿真的仿真验证,可通过观察有关波形确认电路设计是否正确。
三、 时间进度安排
1周:(1) 完成设计准备,确定实施方案;(2) 完成电路文件的输入和编译;(4) 完成功能仿真。
2周:(1) 完成文件至器件的下载,并进行硬件验证;(2) 撰写设计说明书。
四、 主要参考文献
(1)谭会生、瞿遂春,《EDA技术综合应用实例与分析》,西安电子科技大学出版社,2004
(2)曹昕燕、周凤臣等,《EDA技术实验与课程设计》,清华大学出版社,2006
指导教师签字: 2011年9月19日
一、实验原理 :
用层次化设计的方法以VHDL语言编程实现以下功能:
【1】 具有“时”、“分”、“秒”计时功能;时为24进制,分和秒都为60进制。
【2】 具有消抖功能:手工按下键盘到是否这个过程大概50ms左右,在按下开始到弹簧片稳,定接触这段时间为5-10ms,从释放到弹片完全分开也是5-10ms,在达到稳定接触和完全分开的微观过程中,电平是时高时低的,因此如果在首次检测到键盘按下时延时10ms再检测就不会检测到抖动的毛刺电平了。64Hz的信号周期为15.6ms,正适合做消抖信号。
【3】 具有校时和清零功能,能够用4Hz脉冲对“小时”和“分”进行调整,并可进行秒零;
【4】 具有整点报时功能。在59分51秒、53秒、55秒、57秒发出低音512Hz信号,在59分59秒发出一次高音1024Hz信号,音响持续1秒钟,在1024Hz音响结束时刻为整点。
【5】 具有一键设定闹铃及正常计时与闹铃时间的显示转换。闹时时间为一分钟。
全部回答
- 1楼网友:风格单纯
- 2021-02-04 00:34
一、 课程设计目的
1、综合运用EDA技术,独立完成一个课题的设计,考察运用所学知识,解决实际问题的能力;
2、结合理论知识,考察阅读参考资料、文献、手册的能力;
3、进一步熟悉EDA技术的开发流程,掌握文件编辑、编译、仿真、下载验证等环节的实现方法和应用技巧;
- 2楼网友:情窦初殇
- 2021-02-03 23:37
课程设计任务书
课程设计名称 eda课程设计 学生姓名 专业班级
设计题目 多功能数字钟设计
一、 课程设计目的
1、综合运用eda技术,独立完成一个课题的设计,考察运用所学知识,解决实际问题的能力;
2、结合理论知识,考察阅读参考资料、文献、手册的能力;
3、进一步熟悉eda技术的开发流程,掌握文件编辑、编译、仿真、下载验证等环节的实现方法和应用技巧;
4、锻炼撰写研究报告、研究论文的能力;
5、通过本实践环节,培养科学和严谨的工作作风。
二、 设计内容、技术条件和要求
l、能进行正常的时、分、秒计时功能,分别由6个数码显示24小时、60分钟的计数器显示。
2、能利用实验系统上的按钮实现“校时”、“校分”功能;
(1)按下“sa”键时,计时器迅速递增,并按24小时循环;
(2)按下“sb”键时,计时器迅速递增,并按59分钟循环,并向“时”进位;
(3)按下“sc”键时,秒清零;抖动的,必须对其消抖处理。
3、能利用扬声器做整点报时:
(1)当计时到达59’50”时开始报时,频率可为500hz;计满23小时后回零;计满59分钟后回零。(2)到达59’59”时为最后一声整点报时,整点报时的频率可定为lkhz。
4定时闹钟功能
5、用层次化设计方法设计该电路,用硬件描述语言编写各个功能模块。
6、报时功能。报时功能用功能仿真的仿真验证,可通过观察有关波形确认电路设计是否正确。
三、 时间进度安排
1周:(1) 完成设计准备,确定实施方案;(2) 完成电路文件的输入和编译;(4) 完成功能仿真。
2周:(1) 完成文件至器件的下载,并进行硬件验证;(2) 撰写设计说明书。
四、 主要参考文献
(1)谭会生、瞿遂春,《eda技术综合应用实例与分析》,西安电子科技大学出版社,2004
(2)曹昕燕、周凤臣等,《eda技术实验与课程设计》,清华大学出版社,2006
指导教师签字: 2011年9月19日
一、实验原理 :
用层次化设计的方法以vhdl语言编程实现以下功能:
【1】 具有“时”、“分”、“秒”计时功能;时为24进制,分和秒都为60进制。
【2】 具有消抖功能:手工按下键盘到是否这个过程大概50ms左右,在按下开始到弹簧片稳,定接触这段时间为5-10ms,从释放到弹片完全分开也是5-10ms,在达到稳定接触和完全分开的微观过程中,电平是时高时低的,因此如果在首次检测到键盘按下时延时10ms再检测就不会检测到抖动的毛刺电平了。64hz的信号周期为15.6ms,正适合做消抖信号。
【3】 具有校时和清零功能,能够用4hz脉冲对“小时”和“分”进行调整,并可进行秒零;
【4】 具有整点报时功能。在59分51秒、53秒、55秒、57秒发出低音512hz信号,在59分59秒发出一次高音1024hz信号,音响持续1秒钟,在1024hz音响结束时刻为整点。
【5】 具有一键设定闹铃及正常计时与闹铃时间的显示转换。闹时时间为一分钟。
二、程序流程:
1、秒计数器模块设计:
模块图如图1。六十进制带进位计数器,可清零,clk输入信号为1hz脉冲,当q0计满9后q1增加1,当q0满9且q1记满5,q1、q0同时归零,co输出为高电平。q1为十位q0为个位。
图1
程序如下:
library ieee;
use ieee.std_logic_1164.all;
use ieee.std_logic_arith.all;
use ieee.std_logic_unsigned.all;
entity c60 is
port ( clk,clr : in std_logic;
co :out std_logic;
q1,q0 : out std_logic_vector(3 downto 0));
end c60;
architecture one of c60 is
begin
process (clk,clr)
variable cq1,cq0:std_logic_vector(3 downto 0);
begin
if clr='1' then cq1:=(others=>'0');cq0:=(others=>'0');
elsif (clk'event and clk='1') then
if cq0<9 then cq0:=cq0 +1;co<='0';
elsif cq1<5 then cq1:=cq1+1;cq0:=(others=>'0');
elsif cq1=5 and cq0=9
then co<='1';cq1:=(others=>'0'); cq0:=(others=>'0');
else co<='0';
end if;
end if;
q1<=cq1;
q0<=cq0;
end process;
end one;
仿真结果如下图2
2、分计数器同上。注:不同之处为分的clk输入信号为秒的进位信号。
3、时计数器:
模块图如图3。24进制无进位计数器,当计数信号计到23后再检测到计数信号时会自动零。带清零,clk输入为分秒进位相与的结果。q1为十位,q0为个位。
图3
程序如下:
library ieee;
use ieee.std_logic_1164.all;
use ieee.std_logic_arith.all;
use ieee.std_logic_unsigned.all;
entity c24 is
port ( clk : in std_logic;
q1,q0 : out std_logic_vector(3 downto 0));
end c24;
architecture one of c24 is
begin
process (clk)
variable cq1,cq0:std_logic_vector(3 downto 0);
begin
if (clk'event and clk='1') then
if cq1="0010" and cq0="1001" then
cq1:="0000"; cq0:="0000";
elsif cq0<"1001" then
cq0:=cq0+1;
else cq0:="0000"; cq1:=cq1+1;
end if;
end if;
q1<=cq1;q0<=cq0;
end process;
end one;
仿真波形如下图4:
图4
4、分频器:
模块图如图5。由四个分频器构成,输入信号in_clk为1024hz脉冲信号。把输入的1024hz信号分频为四个脉冲信号,即1hz的秒脉冲,4hz的校时、校分脉冲,64hz的消抖脉冲以及512hz的蜂鸣器低音输入。
图5
程序如下:
library ieee;
use ieee.std_logic_1164.all;
use ieee.std_logic_arith.all;
use ieee.std_logic_unsigned.all;
entity div is
port ( in_clk : in std_logic;
clk_512, clk_1,clk_4 ,clk_64:out std_logic);
end div;
architecture one of div is
signal q512,a,b,c:std_logic;
signal c1,c4,c64:integer range 512 downto 0;
begin
process(in_clk)
begin
if in_clk'event and in_clk='1' then
q512<=not q512;
if c64>=7 then c64<=0;c<=not c;else c64<=c64+1;end if;
if c4>=127 then c4<=0;b<=not b;else c4<=c4+1;end if;
if c1>=511 then c1<=0;a<=not a;else c1<=c1+1;end if;
end if;
end process;
clk_512<=q512;
clk_1<=a;
clk_4<=b;
clk_64<=c;
end one;
仿真波形如下图6:
图6
5、消抖:
模块图如图7。分频出的用64hz信号对sa校时信号、sb校分信号、sc秒清零信号、sd闹时设置信号进行防抖动处理。是由四个两级d触发器构成的,分别对输入的sa、sb、sc、sd
信号的相邻两个上升沿进行比较以确定按键的按下,从而达到消抖的目的。
图7
程序如下:
library ieee;
use ieee.std_logic_1164.all;
use ieee.std_logic_arith.all;
use ieee.std_logic_unsigned.all;
entity xd is
port ( clk_64 : in std_logic;
hj,mj,sclr,sdo :out std_logic;
sa,sb,sc,sd : in std_logic);
end xd;
architecture one of xd is
begin
process(clk_64)
variable sa_n,sa_p,sb_n,sd_n,sb_p,sc_n,sc_p,sd_p:std_logic;
begin
if clk_64'event and clk_64='1' then
sa_p:=sa_n;sa_n:=sa;
sb_p:=sb_n;sb_n:=sb;
sc_p:=sc_n;sc_n:=sc;
sd_p:=sd_n;sd_n:=sd;
if sa_p= sa_n then hj<=sa;end if;
if sb_p= sb_n then mj<=sb;end if;
if sc_p= sc_n then sclr<=sc;end if;
if sd_p= sd_n then sdo<=sd;end if;
end if;
end process;
end one;
仿真波形如下图8:
图8
6、闹钟时间的设定:
模块图如图9。一键设定闹铃时间,内部由四个d触发器构成。当确定sd键按下时,将当前时间的小时和分的个位十位分别存入四个d触发器内,作为闹时时间。
图9
程序如下
library ieee;
use ieee.std_logic_1164.all;
use ieee.std_logic_arith.all;
use ieee.std_logic_unsigned.all;
entity df4 is
port ( sd :in std_logic;
hh,hl,mh,ml : in std_logic_vector(3 downto 0);
hh_o,hl_o,mh_o,ml_o: out std_logic_vector(3 downto 0));
end df4;
architecture one of df4 is
begin
process (sd,hh,hl,mh,ml)
begin
if sd='1' then
hh_o<=hh;hl_o<=hl;mh_o<=mh;ml_o<=ml;end if;
end process;
end one;
仿真波形如下图10:
图10
7、二选一电路
(1)一位二选一:
模块图如图11。用以进行正常计时和校时/分的选择。alarm为经过消抖的校时/分信号。当按键未曾按下时,即校时/分信号没有到来时,二选一选择器会选择输出a(正常计时输入)信号,否则当alarm按键按下时输出y为校时/分输入信号——4hz。
图11
程序如下:
library ieee;
use ieee.std_logic_1164.all;
use ieee.std_logic_arith.all;
use ieee.std_logic_unsigned.all;
entity xuan21 is
port ( alarm,a,b: in std_logic;
y:out std_logic);
end xuan21 ;
architecture one of xuan21 is
begin
process(alarm,a,b)
begin
if alarm='0' then y<=a;else y<=b;
end if;
end process;
end one;
仿真波形如下图12:
图12
(2)三位二选一:
模块图如图13。用以进行正常计时时间与闹铃时间显示的选择,alarm输入为按键。当alarm按键未曾按下时二选一选择器会选择输出显示正常的计时结果,否则当alarm按键按下时选择器将选择输出显示闹铃时间显示。
图13
程序如下:
library ieee;
use ieee.std_logic_1164.all;
use ieee.std_logic_arith.all;
use ieee.std_logic_unsigned.all;
entity x213 is
port ( alarm : in std_logic;
y:out std_logic_vector(3 downto 0);
a,b: in std_logic_vector(3 downto 0));
end x213;
architecture one of x213 is
begin
process(alarm,a,b)
begin
if alarm='0' then y<=a;else y<=b;
end if;
end process;
end one;
仿真结果如下图14:
图14
8、整点报时及闹时:
模块图如图15。在59分51秒、53秒、55秒、57秒给扬声器赋以低音512hz信号,在59分59秒给扬声器赋以高音1024hz信号,音响持续1秒钟,在1024hz音响结束时刻为整点。当系统时间与闹铃时间相同时给扬声器赋以高音1024hz信号。闹时时间为一分钟。
图15
程序如下:
library ieee;
use ieee.std_logic_1164.all;
use ieee.std_logic_arith.all;
use ieee.std_logic_unsigned.all;
entity voice is
port ( hou1,huo0,min1,min0,sec1,sec0,hh,hl,mh,ml: std_logic_vector(3 downto 0);
in_1000,in_500:in std_logic;
q : out std_logic);
end voice;
architecture one of voice is
begin
process(min1,min0,sec1,sec0)
begin
if min1="0101" and min0="1001" and sec1="0101" then
if sec0="0001" or sec0="0011" or sec0="0101" or sec0="0课程设计任务书 课程设计名称 EDA课程设计 学生姓名 专业班级 设计题目 多功能数字钟设计 一、课程设计目的 1、综合运用EDA技术,独立完成一个课题的设计,考察运用所学知识,解决实际问题的能力; 2、结合理论知识,考察阅读参考资料、文献、手VHDL数字时钟完整程序代码(要求要有元件例化,并
我要举报
如以上问答内容为低俗、色情、不良、暴力、侵权、涉及违法等信息,可以点下面链接进行举报!
大家都在看
推荐资讯