1、淮阴工学院 EDA课程设计EDA技术课程设计课题: 可控计数器的设计 班级: XXXX 学号: 学生姓名: XXX 指导老师: 淮阴工学院电子与电气工程学院目 录一、课题11.1.可控计数器的设计1二、课程设计目的1三、一般设计要求1四、实验原理及模拟结构框图24.1实验原理24.2模拟框图2五、电路总体设计25.1可控计数器设计流程25.2各个模块3六、系统的源程序(VHDL)46.1计数环节46.2扫描单元56.3数码管译码6七程序的调试分析与仿真67.1计数器单元-67.2扫描单元77.3数码管译码7八、设计总结8九、参考文献9一、课题1.1.可控计数器的设计设计要求: 设计一个五进制计
2、数器,由两个控制键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课程设计地一项重要的实践性教育环节,是学生在校期间必须接受的一项工程训练。在课程设计的过程中,在教室的指导下,运用工程的方法,通过一个简单的课题的设计练习,可是学生通过综合
3、的系统设计,熟悉应用系统的设计过程、设计要求、完成的工作内容和具体的设计方法,了解必须提交的各项工程文件,也达到巩固、充实和综合运用所学的只是解决实际问题的目的。 通过课程设计,应能加强学生如下能力的培养:(1)独立工作能力和创造力;(2)综合运用专业及基础知识,解决实际工程即使问题的能力;(3)查阅图书资料、产品手册和各种工具书的能力;(4)工程绘图的能力;(5)编写技术报告和编制技术资料的能力。三、一般设计要求(1)独立完成设计任务(2)绘制系统硬件总框图 (3)绘制系统原理电路图(4)制定编写设计方案,编制软件框图,完成详细完整的程序清单和注释(5)制定编写调试方案,编写用户操作使用说明
4、书(6)写出设计工作小结。对在完成以上文件过程所进行的有关步骤如设计思想、指标论证、方案确定、参数计算、元器件选择、原理分析等做出说明,并对所完成的设计作出评价,对自己整个设计工作中经验教训,总结收获和今后研修方向。四、实验原理及模拟结构框图4.1实验原理计数器是一种多功能的电子测量仪器。它利用电子学的方法测出一定时间内输入的脉冲数目,并将结果以数字形式显示出来。可控五进制计数器是每五个脉冲信号向前进一位,且当控制端不同时,产生的进位输出不同。再利用数码管显示相应的数值。首先利用进程p1来实现4种模式的计数功能,由信号sel来控制选择具体是哪种模式;再利用进程p2来扫描6个数码管,而其中3个用
5、来显示计数值,3个用来显示控制信号的值;最后通过进程p3来对数码管进行驱动译码,将相应的五进制数值利用数码管体现出来。如图1、及图5所示进行相关设计。4.2模拟框图图1.模拟结构框图五、电路总体设计5.1可控计数器设计流程 图2.设计流程5.2各个模块(1)计数器单元模块图3计数器单元模块CLK是计时时钟,SEL计数模式控制信号,Y接收cnt的计数值。它利用电子学的方法测出一定时间内输入的脉冲数目,并将结果以数字形式显示出来。可控五进制计数器是每五个脉冲信号向前进一位,且当控制端不同时,产生的进位输出不同。(2)扫描单元图4扫描单元模块CLK是计时时钟,SEL计数模式控制信号,CK扫描时钟,
6、duan代表6个数码管。利用扫描脉冲扫描6个数码管,而其中3个用来显示计数值,3个用来显示控制信号的值。(3)数码管译码图5数码管译码模块CLK是计时时钟,SEL计数模式控制信号,CK扫描时钟, duan代表6个数码管,sm是数码管的七段是数码管数字七段,他主要用来对数码管进行驱动译码,将相应的五进制数值利用数码管体现出来。六、系统的源程序(VHDL)6.1计数环节library ieee;use ieee.std_logic_1164.all; use ieee.std_logic_unsigned.all;entity sheji3 is port(clk,ck:in std_logic;
7、-clk是计数时钟,ck是扫描时钟 sel:in std_logic_vector(1 downto 0);-计数模式控制信号 sm:out std_logic_vector(6 downto 0);-数码管的七段 duan:out std_logic_vector(5 downto 0);-6个数码管 end sheji3;architecture art of sheji3 issignal cnt:std_logic_vector(3 downto 0);-信号cnt用来计数 signal temp:integer range 0 to 5; signal x: std_logic_ve
8、ctor(3 downto 0);-数码管动态显示的值signal y: std_logic_vector(3 downto 0);-接收cnt的计数值 Beginp1:process(clk)-进程p1主要用来实现4种模式的计数功能,由信号sel来控制选择具体是哪种模式begin if(clkevent and clk=1)then case sel iswhen 00=if(cnt=0100)then cnt=0000; else cntif(cnt=1000 or cnt=0001 or cnt=0011 or cnt=0101 or cnt=0111)then cnt=0000; el
9、se cntif(cnt=1001 or cnt=0000 or cnt=0010 or cnt=0100 or cnt=0110 or cnt=1000)thencnt=0001; else cntif(cnt0101 or cnt=0001 or cnt=0000)then cnt=0101; else cntcnt=1111; end case; yduan=000001; xduan=000010; xduan=000100; xduan=001000; xduan=010000; xduan=100000; x=00&sel; end case; tempsmsmsmsmsmsmsm
10、smsmsmsm=0000000; end case; end process p3; end art;七程序的调试分析与仿真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
11、、1顺序计数;图6计数器单元仿真7.2扫描单元通过图形可以看出,在每个扫描时钟下当temp=0,duan=4,duan=100000;根据图形是符合条件的。 图7扫描单元仿真7.3数码管译码根据x的值,表现出数码管的七段的亮暗显示出该数码管的值X=0000,sm=1111110; 数码管显示:0X=0001,sm=0110000;数码管显示:1 X=0010,sm=1101101;数码管显示:2 X=0011,sm=1111001;数码管显示:3X=0100,sm=0110011;数码管显示:4X=0101,sm=1011011;数码管显示:5 X=0110,sm=1011111;数码管显示:
12、6X=0111,sm=1110000;数码管显示:7X=1000,sm=1111111;数码管显示:8X=1001,sm=1111011;数码管显示:9 X=others,sm=0000000;数码管显示:0设计仿真时,存在延时(如图8.1),不便观察,所以,又给sel依次赋值00,011011仿真得到如下图8.2至图8.5四图,结果便于观察,符合设计要求。图8.1数码管译码仿真(sel为00011011)图8.1数码管译码仿真(sel为00)图8.1数码管译码仿真(sel为01)图8.1数码管译码仿真(sel为10)图8.1数码管译码仿真(sel为11)八、设计总结为期一周的课程设计结束了,
13、从开始茫然,到有些头绪,再到对所选课题、所设计内容了然于胸,这期间,确实让我收获了很多。首先,便是认识到缺乏很多最基本的书本知识:上课并没有非常认真的我,在这次设计的开始,我非常茫然,深感所学知识的不足,对硬件描述语言VHDL的不熟悉,对EDA开发工具软件MAX+Plus的操作使用不娴熟,以及设计意识的缺乏。但是经过翻看书本,上网查阅相关资料,以及询问老师不懂的问题,渐渐地,我对我们这组的课题“可控计数器的设计”有了较明确的设计思路,于是我和我们小组的一些成员共同研究相关代码,借助于一些资料的参考,经过对初步设计的代码的检查和排查,最终得到了满足设计要求的代码。并通过仿真,得到了和预期一样、符
14、合设计要求的仿真图形。课程设计过程中,我学会了很多细枝末节但很重要的知识点,如:如何更快更好地使用用MAX+Plus仿真软件,做出电路框图;VHDL语句中的库定义、端口说明定义、数据类型定义、进程语句的使用、赋值语句的使用等;7段数码管的扫描与译码显示原理;印象最深的便是数据类型定义里的“std_logic”为“标准逻辑位”,取值为“0” “1”“ Z”“ X”,而“std_logic_vector”称为“标准逻辑矢量”。这些细小的知识点,往往是设计能否成功不可或缺的部分。这次课程设计的最大收获,除了学习和巩固了相关知识外,更让我明白了许多:只要全身心投入到一件事中,并且有持之以恒的决心,有团队合作精神,那就一定会有所收获!最后我想说:通过这次的课程设计,我会继续学好相关知识,提高自身专业素质,更感谢老师在设计中给与我的帮助与孜孜不倦的教诲,让我有信心继续拓展学习更多的专业知识!九、参考文献1 潘松,黄继业.EDA技术实用教程.北京:科学出版社,20022 谢云.现代电子技术实践课程指导.北京:国防工业出版社,20033 修文.实用电子电路设计制作300例.中国电力出版社,20044 沈明山.EDA技术及可编程器件应用实训.科学出版社,2011
copyright@ 2008-2022 冰豆网网站版权所有
经营许可证编号:鄂ICP备2022015515号-1