淮阴工学院 EDA课程设计.docx

上传人:b****4 文档编号:4026684 上传时间:2022-11-27 格式:DOCX 页数:10 大小:136.01KB
下载 相关 举报
淮阴工学院 EDA课程设计.docx_第1页
第1页 / 共10页
淮阴工学院 EDA课程设计.docx_第2页
第2页 / 共10页
淮阴工学院 EDA课程设计.docx_第3页
第3页 / 共10页
淮阴工学院 EDA课程设计.docx_第4页
第4页 / 共10页
淮阴工学院 EDA课程设计.docx_第5页
第5页 / 共10页
点击查看更多>>
下载资源
资源描述

淮阴工学院 EDA课程设计.docx

《淮阴工学院 EDA课程设计.docx》由会员分享,可在线阅读,更多相关《淮阴工学院 EDA课程设计.docx(10页珍藏版)》请在冰豆网上搜索。

淮阴工学院 EDA课程设计.docx

淮阴工学院EDA课程设计

EDA技术课程设计

课题:

可控计数器的设计

 

班级:

XXXX学号:

XXXXXXXX 

学生姓名:

XXX

指导老师:

XXX

 

淮阴工学院

电子与电气工程学院

目录

一、课题————————————————————————————1

1.1.可控计数器的设计————————————————————1

二、课程设计目的————————————————————————1

三、一般设计要求————————————————————————1

四、实验原理及模拟结构框图———————————————————2

4.1实验原理————————————————————————2

4.2模拟框图————————————————————————2

五、电路总体设计————————————————————————2

5.1可控计数器设计流程———————————————————2

5.2各个模块————————————————————————3

六、系统的源程序(VHDL)————————————————————4

6.1计数环节————————————————————————4

6.2扫描单元————————————————————————5

6.3数码管译码———————————————————————6

七.程序的调试分析与仿真————————————————————6

7.1计数器单元——————————————————————--6

7.2扫描单元————————————————————————7

7.3数码管译码———————————————————————7

八、设计总结——————————————————————————8

九、参考文献——————————————————————————9

一、课题

1.1.可控计数器的设计

设计要求:

①设计一个五进制计数器,由两个控制键sel控制不同的计数方式;

②当sel=00时,按0、1、2、3、4、0、1、2、3、4……顺序计数;

③当sel=01时,按0、2、4、6、8、0、2、4、6、8……顺序计数;

④当sel=10时,按1、3、5、7、9、1、3、5、7、9……顺序计数;

⑤当sel=11时,按5、4、3、2、1、5、4、3、2、1……顺序计数;

⑥由数码管分别译码显示控制信号和计数状态,分别用3位数码管动态显示;

⑦给出VHDL设计的源程序

二、课程设计目的

《EDA》课程设计地一项重要的实践性教育环节,是学生在校期间必须接受的一项工程训练。

在课程设计的过程中,在教室的指导下,运用工程的方法,通过一个简单的课题的设计练习,可是学生通过综合的系统设计,熟悉应用系统的设计过程、设计要求、完成的工作内容和具体的设计方法,了解必须提交的各项工程文件,也达到巩固、充实和综合运用所学的只是解决实际问题的目的。

通过课程设计,应能加强学生如下能力的培养:

(1)独立工作能力和创造力;

(2)综合运用专业及基础知识,解决实际工程即使问题的能力;

(3)查阅图书资料、产品手册和各种工具书的能力;

(4)工程绘图的能力;

(5)编写技术报告和编制技术资料的能力。

三、一般设计要求

(1)独立完成设计任务

(2)绘制系统硬件总框图

(3)绘制系统原理电路图

(4)制定编写设计方案,编制软件框图,完成详细完整的程序清单和注释

(5)制定编写调试方案,编写用户操作使用说明书

(6)写出设计工作小结。

对在完成以上文件过程所进行的有关步骤如设计思想、指标论证、方案确定、参数计算、元器件选择、原理分析等做出说明,并对所完成的设计作出评价,对自己整个设计工作中经验教训,总结收获和今后研修方向。

四、实验原理及模拟结构框图

4.1实验原理

计数器是一种多功能的电子测量仪器。

它利用电子学的方法测出一定时间内输入的脉冲数目,并将结果以数字形式显示出来。

可控五进制计数器是每五个脉冲信号向前进一位,且当控制端不同时,产生的进位输出不同。

再利用数码管显示相应的数值。

首先利用进程p1来实现4种模式的计数功能,由信号sel来控制选择具体是哪种模式;再利用进程p2来扫描6个数码管,而其中3个用来显示计数值,3个用来显示控制信号的值;最后通过进程p3来对数码管进行驱动译码,将相应的五进制数值利用数码管体现出来。

如图1、及图5所示进行相关设计。

4.2模拟框图

图1.模拟结构框图

五、电路总体设计

5.1可控计数器设计流程

图2.设计流程

5.2各个模块

(1)计数器单元模块

图3计数器单元模块

CLK是计时时钟,SEL计数模式控制信号,Y接收cnt的计数值。

它利用电子学的方法测出一定时间内输入的脉冲数目,并将结果以数字形式显示出来。

可控五进制计数器是每五个脉冲信号向前进一位,且当控制端不同时,产生的进位输出不同。

(2)扫描单元

图4扫描单元模块

CLK是计时时钟,SEL计数模式控制信号,CK扫描时钟,duan代表6个数码管。

利用扫描脉冲扫描6个数码管,而其中3个用来显示计数值,3个用来显示控制信号的值。

(3)数码管译码

图5数码管译码模块

CLK是计时时钟,SEL计数模式控制信号,CK扫描时钟,duan代表6个数码管,sm是数码管的七段是数码管数字七段,他主要用来对数码管进行驱动译码,将相应的五进制数值利用数码管体现出来。

六、系统的源程序(VHDL)

6.1计数环节

libraryieee;

useieee.std_logic_1164.all;

useieee.std_logic_unsigned.all;

entitysheji3is

port(clk,ck:

instd_logic;--clk是计数时钟,ck是扫描时钟

sel:

instd_logic_vector(1downto0);--计数模式控制信号

sm:

outstd_logic_vector(6downto0);---数码管的七段

duan:

outstd_logic_vector(5downto0));--6个数码管

endsheji3;

architectureartofsheji3is

signalcnt:

std_logic_vector(3downto0);--信号cnt用来计数

signaltemp:

integerrange0to5;

signalx:

std_logic_vector(3downto0);--数码管动态显示的值

signaly:

std_logic_vector(3downto0);--接收cnt的计数值

Begin

p1:

process(clk)--进程p1主要用来实现4种模式的计数功能,由信号sel来控制选择具体是哪种模式

begin

if(clk'eventandclk='1')then

caseselis

when"00"=>if(cnt>="0100")then

cnt<="0000";

elsecnt<=cnt+1;

endif;

when"01"=>if(cnt>="1000"orcnt="0001"orcnt="0011"orcnt="0101"orcnt="0111")then

cnt<="0000";

elsecnt<=cnt+2;

endif;

when"10"=>if(cnt>="1001"orcnt="0000"orcnt="0010"orcnt="0100"orcnt="0110"orcnt="1000")then

cnt<="0001";

elsecnt<=cnt+2;

endif;

when"11"=>if(cnt>"0101"orcnt="0001"orcnt="0000")then

cnt<="0101";

elsecnt<=cnt-1;

endif;

whenothers=>cnt<="1111";

endcase;

y<=cnt;

endif;

endprocessp1;

6.2扫描单元

p2:

process(ck)--进程p2主要用来扫描6个数码管,其中3个用来显示计数值,3个用来显示控制信号的值

begin

if(ck'eventandck='1')then

casetempis

when0=>duan<="000001";

x<=y;

when1=>duan<="000010";

x<=y;

when2=>duan<="000100";

x<=y;

when3=>duan<="001000";

x<="00"&sel;

when4=>duan<="010000";

x<="00"&sel;

whenothers=>duan<="100000";

x<="00"&sel;

endcase;

temp<=temp+1;

endif;

endprocessp2;

6.3数码管译码

p3:

process(x)--进程p3主要用来对数码管进行驱动译码

begin

casexis

when"0000"=>sm<="1111110";

when"0001"=>sm<="0110000";

when"0010"=>sm<="1101101";

when"0011"=>sm<="1111001";

when"0100"=>sm<="0110011";

when"0101"=>sm<="1011011";

when"0110"=>sm<="1011111";

when"0111"=>sm<="1110000";

when"1000"=>sm<="1111111";

when"1001"=>sm<="1111011";

whenothers=>sm<="0000000";

endcase;

endprocessp3;

endart;

七.程序的调试分析与仿真

7.1计数器单元

利用相关软件max+plus进行仿真,观察波形是否正确,在计数时种下,观察sel分别在00,01,10,11进行的五进制的计数,通过以上图形可知,y在sel选择不同的控制方式时,输出的值是符合条件的。

当sel=00时,按0、1、2、3、4、0、1、2、3、4……顺序计数;当sel=01时,按0、2、4、6、8、0、2、4、6、8……顺序计数;当sel=10时,按1、3、5、7、9、1、3、5、7、9……顺序计数;当sel=11时,按5、4、3、2、1、5、4、3、2、1……顺序计数;

图6计数器单元仿真

7.2扫描单元

通过图形可以看出,在每个扫描时钟下当temp=0,duan<="000001";temp=1,duan="000010";temp=2,duan="0000100";temp=3,duan="001000";temp=4,duan="010000";temp>=4,duan="100000";根据图形是符合条件的。

图7扫描单元仿真

7.3数码管译码

根据x的值,表现出数码管的七段的亮暗显示出该数码管的值

X="0000",sm="1111110";数码管显示:

0

X="0001",sm<="0110000";数码管显示:

1

X="0010",sm<="1101101";数码管显示:

2

X="0011",sm<="1111001";数码管显示:

3

X="0100",sm<="0110011";数码管显示:

4

X="0101",sm<="1011011";数码管显示:

5

X="0110",sm<="1011111";数码管显示:

6

X="0111",sm<="1110000";数码管显示:

7

X="1000",sm<="1111111";数码管显示:

8

X="1001",sm<="1111011";数码管显示:

9

X=others,sm<="0000000";数码管显示:

0

设计仿真时,存在延时(如图8.1),不便观察,所以,又给sel依次赋值"00","01""10""11"仿真得到如下图8.2至图8.5四图,结果便于观察,符合设计要求。

图8.1数码管译码仿真("sel"为"00""01""10""11")

图8.1数码管译码仿真("sel"为"00")

图8.1数码管译码仿真("sel"为"01")

图8.1数码管译码仿真("sel"为"10")

图8.1数码管译码仿真("sel"为"11")

八、设计总结

为期一周的课程设计结束了,从开始茫然,到有些头绪,再到对所选课题、所设计内容了然于胸,这期间,确实让我收获了很多。

首先,便是认识到缺乏很多最基本的书本知识:

上课并没有非常认真的我,

在这次设计的开始,我非常茫然,深感所学知识的不足,对硬件描述语言VHDL的不熟悉,对EDA开发工具软件MAX+PlusⅡ的操作使用不娴熟,以及设计意识的缺乏。

但是经过翻看书本,上网查阅相关资料,以及询问老师不懂的问题,渐渐地,我对我们这组的课题——“可控计数器的设计”有了较明确的设计思路,于是我和我们小组的一些成员共同研究相关代码,借助于一些资料的参考,经过对初步设计的代码的检查和排查,最终得到了满足设计要求的代码。

并通过仿真,得到了和预期一样、符合设计要求的仿真图形。

课程设计过程中,我学会了很多细枝末节但很重要的知识点,如:

如何更快更好地使用用MAX+PlusⅡ仿真软件,做出电路框图;VHDL语句中的库定义、端口说明定义、数据类型定义、进程语句的使用、赋值语句的使用等;7段数码管的扫描与译码显示原理;印象最深的便是数据类型定义里的“std_logic”为“标准逻辑位”,取值为“0”“1”“Z”“X”,而“std_logic_vector”称为“标准逻辑矢量”。

这些细小的知识点,往往是设计能否成功不可或缺的部分。

这次课程设计的最大收获,除了学习和巩固了相关知识外,更让我明白了许多:

只要全身心投入到一件事中,并且有持之以恒的决心,有团队合作精神,那就一定会有所收获!

最后我想说:

通过这次的课程设计,我会继续学好相关知识,提高自身专业素质,更感谢老师在设计中给与我的帮助与孜孜不倦的教诲,让我有信心继续拓展学习更多的专业知识!

九、参考文献

[1]潘松,黄继业.EDA技术实用教程.北京:

科学出版社,2002

[2]谢云.现代电子技术实践课程指导.北京:

国防工业出版社,2003

[3]修文.实用电子电路设计制作300例.中国电力出版社,2004

[4]沈明山.EDA技术及可编程器件应用实训.科学出版社,2011

展开阅读全文
相关资源
猜你喜欢
相关搜索
资源标签

当前位置:首页 > 农林牧渔 > 林学

copyright@ 2008-2022 冰豆网网站版权所有

经营许可证编号:鄂ICP备2022015515号-1