网站大量收购闲置独家精品文档,联系QQ:2885784924

基于CPLD技术的数字万年历设计.doc

  1. 1、本文档共16页,可阅读全部内容。
  2. 2、原创力文档(book118)网站文档一经付费(服务费),不意味着购买了该文档的版权,仅供个人/单位学习、研究之用,不得用于商业用途,未经授权,严禁复制、发行、汇编、翻译或者网络传播等,侵权必究。
  3. 3、本站所有内容均由合作方或网友上传,本站不对文档的完整性、权威性及其观点立场正确性做任何保证或承诺!文档内容仅供研究参考,付费前请自行鉴别。如您付费,意味着您自己接受本站规则且自行承担风险,本站不退款、不进行额外附加服务;查看《如何避免下载的几个坑》。如果您已付费下载过本站文档,您可以点击 这里二次下载
  4. 4、如文档侵犯商业秘密、侵犯著作权、侵犯人身权等,请点击“版权申诉”(推荐),也可以打举报电话:400-050-0827(电话支持时间:9:00-18:30)。
查看更多
基于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 cq1:=0000; cq2:=cq2+1;end

文档评论(0)

2017meng + 关注
实名认证
内容提供者

该用户很懒,什么也没介绍

1亿VIP精品文档

相关文档