《EDA技术及可编程器件应用实训》课程设计报告-基于CPLD技术的数字万年历设计模板.docx
- 文档编号:42101
- 上传时间:2022-10-01
- 格式:DOCX
- 页数:16
- 大小:257.72KB
《EDA技术及可编程器件应用实训》课程设计报告-基于CPLD技术的数字万年历设计模板.docx
《《EDA技术及可编程器件应用实训》课程设计报告-基于CPLD技术的数字万年历设计模板.docx》由会员分享,可在线阅读,更多相关《《EDA技术及可编程器件应用实训》课程设计报告-基于CPLD技术的数字万年历设计模板.docx(16页珍藏版)》请在冰豆网上搜索。
《EDA技术及可编程器件应用实训》课程设计报告
院系 机械电子工程系姓名
专业班级 07通信技术一班 学号
指导老师
日期:
2009年6月 10日
《EDA技术及可编程器件应用实训》课程设计报告
一、设计内容:
课程设计题目:
基于CPLD技术的数字万年历设计。
课题设计的万年历具有年、月、日、时、分、秒计数功能,以秒、分、时、日、月、年进制循环计时;具有清零、调时功能、报时功能。
二、设计意义
通过理论学习和实践动手操作,可以掌握小型数字系统的设计方法。
理论学习中了解到大规模可编程逻辑器件CPLD/FPGA的内部结构和外部特性;了解到
EDA设计的方法;掌握硬件描述语言VHDL程序方法和思路;学会使用Quartus
II开发平台。
通过具体的数字百年历的项目设计,可深切地领会到EDA硬件设计软件化的特点;掌握六十进制、二十四进制、十二进制、及通过语言VHDL程序来控制三十、三十一、二十八、二十九进制的选择、五选一、二选一,从而实现计数器的设计方法;同时掌握CPLD技术的层次化结构化设计方法;并能熟练使用QuartusII开发小中型数字系统,解决调试过程中所遇到的一些问题。
三、设计方法
常见数字百年历具有计时和显示、报时功能。
电路设计中包括分频模块,用于将外部晶振产生的一定周期的时钟信号计数产生1s时钟信号;60进制的秒、分计数模块;24进制的时计数模块;12进制的月计数模块;通过语言选择的闰年平年天数选择模块;5选一的调时控制模块;2选一模式转换模块;另有显示模块和整点报时信号端口。
1、同步计时六十进制加法器的程序如下。
其中,cout为输出端口信号,
clk为分频模块产生的秒计时信号(时钟信号),q1和q2为秒计数中十进制数所对应的高位和低位信号。
libraryieee;
useieee.std_logic_1164.all;
useieee.std_logic_unsigned.all;
entitycnt60isport(clk:
instd_logic;
cout:
outstd_logic;
q1,q2:
outstd_logic_vector(3downto0));
architecturebehavofcnt60isbegin
variablecq1,cq2:
std_logic_vector(3downto0);begin
ifclk'eventandclk='1'thencq1:
=cq1+1;
ifcq1>9thencq1:
="0000";cq2:
=cq2+1;
endif;
ifcq2=6andcq1=0thencq1:
="0000";cq2:
="0000";cout<='1';
elsecout<='0';endif;
q1<=cq1;q2<=cq2;endprocess;
end;
所写程序经过仿真的如上图所示。
同理分和秒一样都是六十进制只不过是把程序中q1,q2分别改为分的十位,个位而已,有程序生成六十进制模块图。
如下
该程序在编写过程中应注意IF语句的结束标志ENDIF所对应的是那一部分.
2、同步计时二十四进制加法器的程序如下。
其中,cout为输出端口信号,
clk为分频模块产生的时计时信号(时钟信号),q1和q2为时计数中十进制数所对应的高位和低位信号。
libraryieee;
useieee.std_logic_1164.all;
useieee.std_logic_unsigned.all;entitycnt24is
port(clk:
instd_logic;
q1:
outstd_logic_vector(3downto0);q2:
outstd_logic_vector(3downto0);cout:
outstd_logic);
endcnt24
architecturebehavofcnt24isbegin
process(clk)
variablecq1:
std_logic_vector(3downto0);variablecq2:
std_logic_vector(3downto0);begin
ifclk'eventandclk='1'thencq1:
=cq1+1;
ifcq1>9thencq1:
="0000";cq2:
=cq2+1;endif;
ifcq1=4andcq2=2thencq1:
=(others=>'0');
cq2:
=(others=>'0');cout<='1';elsecout<='0';
endif;q1<=cq1;q2<=cq2;endprocess;end;
程序中实体结束处endcnt24后缺少分号.
程序中IF语句是多层存在,因此应当两次结束,绿色所标注的部分上边缺少end
if;改正后的程序仿真得到二十四进制模块图如下:
3、天的模块的程序如下。
clk为分频模块产生的天计时信号(时钟信号),cq2和cq1为天计数中十进制数所对应的高位和低位信号,cout为进位位,pan为判断位,判断计到多少天才进位。
LIBRARYIEEE;
USEIEEE.STD_LOGIC_1164.ALL;
USEIEEE.STD_LOGIC_UNSIGNED.ALL;
ENTITYtianIS
PORT(pan:
INSTD_LOGIC_VECTOR(1DOWNTO0);clk:
INSTD_LOGIC;
cq1:
OUTSTD_LOGIC_VECTOR(3DOWNTO0);
cq2:
OUTSTD_LOGIC_VECTOR(3DOWNTO0);cout:
OUTSTD_LOGIC);
END;
ARCHITECTUREbehavOFtianIS
signalcq3,cq4:
STD_LOGIC_VECTOR(3DOWNTO0);PROCESS(clk)
BEGIN
IFclk'EVENTandclk='1'THENcq3<=cq3+1;
IFcq3=9THEN cq4<=cq4+1;cq3<="0000";ENDIF;
CASEpanIS
WHEN "00"=>IF cq3="0001" and cq4="0011" THEN
cq3<="0001";cq4<="0000";cout<='1';ELSEcout<='0';ENDIF;
WHEN "01"=>IF cq3="0000" and cq4="0011" THENcq3<="0001";cq4<="0000";cout<='1';ELSEcout<='0';ENDIF;
WHEN "10"=>IF cq3="1000" and cq4="0010" THENcq3<="0001";cq4<="0000";cout<='1';ELSEcout<='0';ENDIF;
WHEN "11"=>IF cq3="1001" and cq4="0010" THEN
cq3<="0001";cq4<="0000";cout<='1';ELSEcout<='0';ENDIF;
WHENothers=>NULL;
ENDCASE;
ENDIF;
cq1<=cq3;cq2<=cq4;
ENDPROCESS;
END;
经过仿真从警告处发现错误所在,程序中进程前缺少BEGIN。
修改后仿真可得天的模块图。
4、月的模块的程序。
clk为分频模块产生的月计时信号(时钟信号),cq2和cq1为月计数中十进制数所对应的高位和低位信号,cout为进位位,run为闰年进位位,pan为输入判断位。
LIBRARYIEEE;
USEIEEE.STD_LOGIC_1164.ALL;
USEIEEE.STD_LOGIC_UNSIGNED.ALL;
ENTITYyueIS
port(clk:
INSTD_LOGIC;
run:
INSTD_LOGIC;
cout:
OUTSTD_LOGIC;
pan:
OUTSTD_LOGIC_VECTOR(1DOWNTO0);
cq1,cq2:
OUTSTD_LOGIC_VECTOR(3DOWNTO0));END;
ARCHITECTUREbehavOFyueIS
signalcq3,cq4:
STD_LOGIC_VECTOR(3DOWNTO0);signalcq5:
STD_LOGIC_VECTOR(7DOWNTO0);BEGIN
PROCESS(clk)BEGIN
IFclk'EVENTandclk='1'THEN
cq3<=cq3+1;
IFcq3=9THENcq4<=cq4+1;cq3<="0000";ENDIF;
IFcq3=2andcq4=1THENcq3<="0001";cq4<="0000";cout<='1';ELSEcout<='0';ENDIF;
ENDIF;
cq5<=cq4&cq3;CASEcq5IS
WHEN"00000001"=>pan<="00";——一月WHEN"00000010"=>ifrun='01'thenpan<="11";elsepan<="10";endif;——二月WHEN"00000011"=>pan<="00";——三月WHEN"00000100"=>pan<="01";——四月WHEN"00000101"=>pan<="00";——五月WHEN"00000110"=>pan<="01";——六月WHEN"00000111"=>pan<="00";——七月WHEN"00001000"=>pan<="00";——八月WHEN"00001001"=>pan<="01";——九月WHEN"00001010"=>pan<="00";——十月WHEN"00001011"=>pan<="01";——十一月WHEN"00001100"=>pan<="00";——十
- 配套讲稿:
如PPT文件的首页显示word图标,表示该PPT已包含配套word讲稿。双击word图标可打开word文档。
- 特殊限制:
部分文档作品中含有的国旗、国徽等图片,仅作为作品整体效果示例展示,禁止商用。设计者仅对作品中独创性部分享有著作权。
- 关 键 词:
- EDA技术及可编程器件应用实训 EDA 技术 可编程 器件 应用 课程设计 报告 基于 CPLD 数字 万年历 设计 模板
![提示](https://static.bdocx.com/images/bang_tan.gif)