下载此文档

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


文档分类:通信/电子 | 页数:约16页 举报非法文档有奖
1/16
下载提示
  • 1.该资料是网友上传的,本站提供全文预览,预览什么样,下载就什么样。
  • 2.下载该文档所得收入归上传者、原创者。
  • 3.下载的文档,不会出现我们的网址水印。
1/16 下载此文档
文档列表 文档介绍
《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 ;
use ;
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 clk'event and clk='1' then
cq1:=cq1+1;
if cq1>9 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 ;
use ;
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_log

《EDA技术及可编程器件应用实训》课程设计报告-基于CPLD技术的数字万年历设计 来自淘豆网www.taodocs.com转载请标明出处.

非法内容举报中心
文档信息
  • 页数16
  • 收藏数0 收藏
  • 顶次数0
  • 上传人rdwiirh
  • 文件大小607 KB
  • 时间2021-01-17