eda.docx
- 文档编号:23736231
- 上传时间:2023-05-20
- 格式:DOCX
- 页数:9
- 大小:151.30KB
eda.docx
《eda.docx》由会员分享,可在线阅读,更多相关《eda.docx(9页珍藏版)》请在冰豆网上搜索。
eda
课程设计任务书
学院
专业
学生姓名
学号
设计题目
数字秒表的设计——计时模块
实验目的:
1、掌握组合逻辑电路的设计方法。
2、掌握组合逻辑电路的静态测试方法。
3、初步掌握Max+PlusII软件的基本操作与应用。
4、用画逻辑图和直接使用VHDL语言两种方法进行逻辑设计。
5、初步了解可编程器件的设计全过程
实验要求:
设计一个数字秒表使得:
(1)数字秒表的计时范围是0秒到59分59.59秒,显示的最长时间为59分59。
(2)数字秒表的计时精度是10ms。
(3)复位开关可以在任何情况下使用,即便在计时过程中,只要按一下复位开关,计时器就清零,并做好下次计时的准备。
(4)具有启/停开关,即按一下启/停开关,启动计时器开始计时,再按一下启/停开关则停止计时。
进度安排:
周一:
根据设计要求查阅相关资料;
周二:
源代码设计;
周三、四:
程序设计及程序调试;
周五:
写课程设计报告和验收准备。
指导教师(签字):
年月日
学院院长(签字):
年月日
目录
1、课程设计任务书………………………………………………………1
2、课程设计题目…………………………………………………………3
3、课程设计任务…………………………………………………………3
4、设计思路………………………………………………………………5
5、解决方案………………………………………………………………5
6、时序仿真………………………………………………………………8
7、总结…………………………………………………………………9
8、参考文献……………………………………………………………10
一设计题目:
设计一个数字秒表的计时模块。
二设计任务:
设计一个数字秒表的计时模块,其总体功能如下:
数字秒表的计时范围是0秒到59分59.59秒,显示的最长时间为59分59。
数字秒表的计时精度是10ms。
复位开关可以在任何情况下使用,即便在计时过程中,只要按一下复位开关,计时器就清零,并做好下次计时的准备。
具有启/停开关,即按一下启/停开关,启动计时器开始计时,再按一下启/停开关则停止计时。
计时模块功能:
计时模块执行计时功能,计时的方法是读一标准时钟脉冲计数。
由于计时范围是0秒到59分59.59秒,所以计数器可以由四个十进制计数器和两个六进制计数器构成,其中毫秒位,十秒位,秒位和分为采用十进制计数器,十秒位和十分位采用六进制计数器。
设计思路
秒表计时器常常用于体育竞赛及各种其他要求有较精确时间的各领域中其中启/停开关的使用方法与传统的机械计时器相同,即按一下启/停开关,启动计时器开始计时,再按一下启/停开关计时终止。
而复位开关可以在任何情况下使用,即使在计时过程中,只要按一下复位开关,计时应立即终止,并对计时器清零。
其内部数字计时器的计时模块主要由4个十进制计数器2个六进制计数器构成实现带有100进制进位和清零功能,输入为1Hz脉冲和低电平的清零信号CLR,输出微秒个位、十位及进位信号CO(虽然没有实现进位功能,但还是编写了这个端口,只是在连线时悬空)。
实现60进制带有进位和清零功能的秒计数模块SECOND,输入为1Hz脉冲和低电平有效的清零信号CLR,输出秒个位、时位及进位信号CO。
实现60进制带有进位和置数功能的分计数模块MINUTE,输入为1Hz脉冲和高电平有效的使能信号EN,输出分个位、时位及进位信号CO。
解决方案
数字秒表计时模块的VHDL源程序
(1)十进制计数器的VHDL源程序(CDU10.VHD)
LIBRARYIEEE;--ieee库
USEIEEE.STD_LOGIC_1164.ALL;--程序包
USEIEEE.STD_LOGIC_UNSIGNED.ALL;
ENTITYCDU10IS--定义实体名
PORT(CLK:
INSTD_LOGIC;--定义输入号
CLR:
INSTD_LOGIC;
EN:
INSTD_LOGIC;
CN:
OUTSTD_LOGIC;--定义输出信号
COUNT10:
OUTSTD_LOGIC_VECTOR(3DOWNTO0));
ENDCDU10;
ARCHITECTUREARTOFCDU10IS--定义结构体名
SIGNALSCOUNT10:
STD_LOGIC_VECTOR(3DOWNTO0);--定义矢量信号
BEGIN--逻辑功能描述
COUNT10<=SCOUNT10;
PROCESS(CLK,CLR,EN)
BEGIN
IF(CLR='1')THEN
SCOUNT10<="0000";CN<='0';
ELSIFRISING_EDGE(CLK)THEN
IF(EN='1')THEN
IFSCOUNT10="1001"THEN
CN<='1';
SCOUNT10<="0000";
ELSE
CN<='0';
SCOUNT10<=SCOUNT10+'1';
ENDIF;
ENDIF;
ENDIF;
ENDPROCESS;
ENDART;
(2)六进制计数器的VHDL源程序(CDU6.VHD)
LIBRARYIEEE;--ieee库
USEIEEE.STD_LOGIC_1164.ALL;--程序包
USEIEEE.STD_LOGIC_UNSIGNED.ALL;
ENTITYCDU6IS--定义实体名
PORT(CLK,CLR,EN:
INSTD_LOGIC;--定义输入号
CN:
OUTSTD_LOGIC;--定义输出信号
COUNT6:
OUTSTD_LOGIC_VECTOR(3DOWNTO0));
ENDCDU6;
ARCHITECTUREARTOFCDU6IS--定义结构体名
SIGNALSCOUNT6:
STD_LOGIC_VECTOR(3DOWNTO0);--定义矢量信号
BEGIN--逻辑功能描述
COUNT6<=SCOUNT6;
PROCESS(CLK,CLR,EN)
BEGIN
IF(CLR='1')THEN
SCOUNT6<="0000";CN<='0';
ELSIFRISING_EDGE(CLK)THEN
IF(EN='1')THEN
IFSCOUNT6="0101"THEN
SCOUNT6<="0000";CN<='1';
ELSE
SCOUNT10<=SCOUNT10+'1';CN<='0';
ENDIF;
ENDIF;
ENDIF;
ENDPROCESS;
ENDART;
(3)计时器的VHDL源程序(COUNT.VHD)
LIBRARYIEEE;--ieee库
USEIEEE.STD_LOGIC_1164.ALL;--程序包
ENTITYCOUNTIS--定义实体名
PORT(CLK,CLR,EN:
INSTD_LOGIC;--定义输入号
S_1MS:
OUTSTD_LOGIC_VECTOR(3DOWNTO0);--定义输出信号
S_10MS:
OUTSTD_LOGIC_VECTOR(3DOWNTO0);
S_100MS:
OUTSTD_LOGIC_VECTOR(3DOWNTO0);
S_1S:
OUTSTD_LOGIC_VECTOR(3DOWNTO0);
S_10S:
OUTSTD_LOGIC_VECTOR(3DOWNTO0);
S_1MIN:
OUTSTD_LOGIC_VECTOR(3DOWNTO0);
M_10MIN:
OUTSTD_LOGIC_VECTOR(3DOWNTO0);
HOUR:
OUTSTD_LOGIC_VECTOR(3DOWNTO0));
ENDCOUNT;
ARCHITECTUREARTOFCDU6IS--定义结构体名
COMPONENTCDU10
PORT(CLK,CLR,EN:
INSTD_LOGIC;--定义输入号
CN:
OUTSTD_LOGIC;--定义输出信号
COUNT10:
OUTSTD_LOGIC_VECTOR(3DOWNTO0));
ENDCOMPONENTCDU10;
COMPONENTCDU6
PORT(CLK,CLR,EN:
INSTD_LOGIC;--定义输入号
CN:
OUTSTD_LOGIC;--定义输出信号
COUNT6:
OUTSTD_LOGIC_VECTOR(3DOWNTO0));
ENDCOMPONENTCDU6;
SIGNALA,B,C,D,E,F,G,H:
STD_LOGIC;--定义矢量信号
BEGIN--逻辑功能描述
UL:
CDU10PORTMAP(CLK,CLR,EN,A,S_1MS);
U2:
CDU10PORTMAP(A,CLR,EN,B,S_10MS);
U3:
CDU10PORTMAP(B,CLR,EN,C,S_100MS);
U4:
CDU10PORTMAP(C,CLR,EN,D,S_1S);
U5:
CDU6PORTMAP(D,CLR,EN,E,S_10S);
U6:
CDU10PORTMAP(E,CLR,EN,F,M_1MIN);
U7:
CDU6PORTMAP(F,CLR,EN,G,M_10MIN);
U8:
CDU10PORTMAP(G,CLR,EN,H,HOUR);
ENDART;
源程序总体描述:
系统按功能可分为时基分频模块、控制模块、计时模块和显示模块。
秒表的逻辑结构比较简单,它主要由、显示译码器、分频器、十进制计数器和六进制计数器组成。
在整个秒表中最关键是如何获得一个精确的100Hz计时脉冲,除此之外,整个秒表还需要一个启动信号和一个归零信号,以便能够随时启动及停止。
秒表有六个输出显示,分别为百分之一秒,十分之一秒、秒、十秒、分、十分,所以共有6个计数器与之对应,6个个计数器全为BCD码输出,这样便于同时显示译码器的连接。
。
时序仿真
对该工程文件进行全程编译处理,若在编译过程中发现错误,则应该立即找出并更正错误,直到编译成功为止。
仿真过程主要步骤如下:
从菜单“File”中选择“New”并打开信件文件类型对话框选择“WaveformEditorfile”,添加输入控制:
CLK、CLR、EN。
十进制计数器的仿真:
六进制计数器的仿真:
计时器的vhdl源程序:
总结
经过了这次课程设计,使我对VHDL语言有的更深刻的理解。
通过数字秒表课程设计,使我加深了对VHDL语言设计程序的了解。
学会了层次设计概念,将程序分为若干模块,分别完成各个模块,最后再将各个模块连接起来。
通过这次课程设计,对VHDL的语言有了更深刻的认识,对课题设计的基本流程有了一定的认识,同时也是一次把原来所学的书本知识和实践相联系的过程。
并通过实践,建立起了学习EDA的浓厚兴趣,基本掌握了这个软件的基本使用方法,并顺利的对程序进行编辑及仿真。
为实现预期功能,能够对系统进行快速的调试,并能够对出现的功能故障进行分析,及时修改相关软硬件。
对软件编程、排错调试。
了解了关于EDA技术及VHDL语言的基本编程形式及原理图的绘制,为今后的学习打好基础。
在此之后,我会继续学习关于VHDL语言的运用。
我还意识到了我对这门课掌握还有一定的不足,还有许多的知识我不了解;有的是一知半解;有的即使原理懂了,但在应用方面却是丝毫不知。
所以在今后的学习中,我会更加努力,不仅要学好理论知识,还要把它应用到实践中去,使两者很好的结合起来,互补互助。
参考文献
[1]江国强·EDA技术与应用·电子工业出版社·2007年3月第二版
[2] 张亦华、延名·数字电路EDA入门·北京邮电大学出版社
[3]曹晰燕、周凤臣、聂春燕·EDA技术实验与课程设计
[4]庄严、王宇鸿等·电子工业出版社·EDA技术与数字系统设计
- 配套讲稿:
如PPT文件的首页显示word图标,表示该PPT已包含配套word讲稿。双击word图标可打开word文档。
- 特殊限制:
部分文档作品中含有的国旗、国徽等图片,仅作为作品整体效果示例展示,禁止商用。设计者仅对作品中独创性部分享有著作权。
- 关 键 词:
- eda