《EDA技术及编程器件应用实训》课程设计报告-基于CPLD技术的数字万年历设计.docVIP

  • 13
  • 0
  • 约 16页
  • 2016-08-17 发布于贵州
  • 举报

《EDA技术及编程器件应用实训》课程设计报告-基于CPLD技术的数字万年历设计.doc

《EDA技术及编程器件应用实训》课程设计报告-基于CPLD技术的数字万年历设计

《EDA技术及可编程器件应用实训》课程设计报告 院系 机械电子工程系 姓名 专业班级 07通信技术一班 学号 指导老师 日期:2009年 6 月 10 日 《EDA技术及可编程器件应用实训》课程设计报告 一、设计内容: 课程设计题目:基于CPLD技术的数字万年历设计。课题设计的万年历具有年、月、日、时、分、秒计数功能,以秒、分、时、日、月、年进制循环计时;具有清零、调时功能、报时功能。 二、设计意义 通过理论学习和实践动手操作,可以掌握小型数字系统的设计方法。理论学习中了解到大规模可编程逻辑器件CPLD/FPGA的内部结构和外部特性;了解到EDA设计的方法;掌握硬件描述语言VHDL程序方法和思路;学会使用 Quartus II开发平台。 通过具体的数字百年历的项目设计,可深切地领会到EDA硬件设计软件化的特点;掌握六十进制、二十四进制、十二进制、及通过语言VHDL程序来控制三十、 三十一、 二十八、二十九进制的选择、五选一、二选一 ,从而实现计数器的设计方法;同时掌握CPLD技术的层次化结构化设计方法;并能熟练使用Quartus II开发小中型数字系统,解决调试过程中所遇到的一些问题。 三、设计方法 常见数字百年历具有计时和显示、报时功能。电路设计中包括分频模块,用于将外部晶振产生的一定周期的时钟信号计数产生1s时钟信号;60进制的秒、分计数模块;24进制的时计数模块;12进制的月计数模块;通过语言选择的闰年平年天数选择模块;5选一的调时控制模块;2选一模式转换模块;另有显示模块和整点报时信号端口。 1、 同步计时 六十进制加法器的程序如下。其中,cout为输出 端口信号,clk为分频模块产生的秒计时信号(时钟信号),q1和q2为秒计数中十进制数所对应的高位和低位信号。 library ieee; use ieee.std_logic_1164.all; use ieee.std_logic_unsigned.all; entity cnt60 is port(clk:in std_logic; cout:out std_logic; q1,q2:out std_logic_vector(3 downto 0)); architecture behav of cnt60 is begin variable cq1,cq2:std_logic_vector(3 downto 0); begin if clkevent and clk=1 then cq1:=cq1+1; if cq19 then cq1:=0000; cq2:=cq2+1; end if; if cq2=6 and cq1=0 then cq1:=0000;cq2:=0000;cout=1; else cout=0; end if; q1=cq1;q2=cq2; end process; end; 所写程序经过仿真的如上图所示。同理分和秒一样都是六十进制只不过是把程序中q1,q2分别改为分的十位,个位而已,有程序生成六十进制模块图。如下 该程序在编写过程中应注意IF语句的结束标志END IF所对应的是那一部分. 2、 同步计时二十四进制加法器的程序如下。其中,cout为输出 端口信号,clk为分频模块产生的时计时信号(时钟信号),q1和q2为时计数中十进制数所对应的高位和低位信号。 library ieee; use ieee.std_logic_1164.all; use ieee.std_logic_unsigned.all; entity cnt24 is port(clk:in std_logic; q1:out std_logic_vector(3 downto 0); q2:out std_logic_vector(3 downto 0); cout:out std_logic); end cnt24 architecture behav of cnt24 is begin process(clk) variable cq1:std_logic_vector(3 downto 0) ; variable cq2:std_logic_vector(3 downto 0) ; begin if clkevent and clk=1 then cq1:=cq1+1; if cq19 then cq

文档评论(0)

1亿VIP精品文档

相关文档