EDA课程设计.docx
《EDA课程设计.docx》由会员分享,可在线阅读,更多相关《EDA课程设计.docx(9页珍藏版)》请在冰豆网上搜索。
![EDA课程设计.docx](https://file1.bdocx.com/fileroot1/2022-12/7/71e13dc8-9be3-4c98-accb-f38e0d143ed1/71e13dc8-9be3-4c98-accb-f38e0d143ed11.gif)
EDA课程设计
成功的途径有很多种,抄也是一种捷径!
职业技术学院
学生课程设计报告
课程名称:
基于VHDL四路抢答器
专业班级:
电子102
姓名:
XXXXXXXXXX
学号:
XXXXXXXXXXXXX
学期:
2011-2012-2
指导教师:
XXXXXXXXXX
目录
1.课程设计题目和要求………………………………………………3
2.课程设计报告内容…………………………………………………3
2.1方案设计与论证………………………………………………3
2.2单元模块设计…………………………………………………3
2.3主电路原理图…………………………………………………9
2.4器件编程与下载………………………………………………9
2.5性能测试与分析………………………………………………9
3.总结…………………………………………………………………9
4.致谢…………………………………………………………………10
5.参考文献……………………………………………………………10
i
题目:
基于VHDL四路抢答器的设计
1.课程设计的目的和要求:
(1)设计一个可容纳4组参赛的数字式抢答器,每组设一个按钮,供抢答使用。
(2)具有第一信号鉴别和锁存功能,使除第一抢答者外的按钮不起作用。
(3)设置一个主持人“复位”按钮,主持人复位后,开始抢答,第一信号鉴别锁存电路得到信号后,有指示灯显示抢答组别,扬声器发出声音
2.课程设计报告内容:
(1)方案设计与论证:
将该任务设计的为一个四路抢答器,分成三个模块进行设计:
抢答鉴别模块、选择模块和报警模块(VHDL语言编程)。
(2)单元模块设计:
A.抢答鉴别模块:
在这个模块中主要实现抢答过程中的抢答功能,并能对超前抢答进行警告,还能记录无论是正常抢答还是朝前抢答者的台号,并且能实现当有一路抢答按键按下时,该路抢答信号将其余个绿抢答封锁的功能。
其中有四个抢答信号s0、s1、s2、s3;抢答复位和使能信号rst;抢答选手锁存显示信号xuanshou;抢答时钟信号clk;抢答警报信号n;抢答状态锁存显示信号t。
1、VHDL源程序
LIBRARYIEEE;
USEIEEE.STD_LOGIC_1164.ALL;
ENTITYJDJBIS
PORT(CLK2,RST:
INSTD_LOGIC;
S:
INSTD_LOGIC_VECTOR(3DOWNTO0);
WARN:
BUFFERSTD_LOGIC;
STATES:
OUTSTD_LOGIC_VECTOR(3DOWNTO0));
ENDQDJB;
ARCHITECTUREONEOFQDJBIS
SIGNALSO:
STD_LOGIC_VECTOR(3DOWNTO0);
BEGIN
PROCESS(CLK2,S,)
BEGIN
IFRST='0'THEN
SO<="0000";
ELSIFCLK2'EVENTANDCLK2'=1'THEN
IFSO="0000"THEN
IFS/="0000"THEN
SO<=S;
ENDIF;
ENDIF;
ENDIF;
WARN<=SO(0)ORSO
(1)ORSO
(2)ORSO(3);
CASESOIS
WHEN"0001"=>XUANSHOU<="0001";
WHEN"0010"=>XUANSHOU<="0010";
WHEN"0100"=>XUANSHOU<="0011";
WHEN"1000"=>XUANSHOU<="0100";
WHENOTHERS=>XUANSHOU<="0000";
ENDCASE;
ENDPROCESS;
ENDONE;
2、仿真图:
B.数据选择模块:
在这个模块中主要实现抢答过程中的数据输入功能,输入信号a[3..0]、b[3..0]、c[3..0];数选信号s[1..0];数据输出信号y[3..0];时钟脉冲clk,实现a、b、c按脉冲轮流选通,在数码管上显示。
1、VHDL源程序:
LIBRARYIEEE;
USEIEEE.STD_LOGIC_1164.ALL;
USEIEEE.STD_LOGIC_UNSIGNED.ALL;
ENTITYSJXZIS
PORT(A,B,C:
INSTD_LOGIC_VECTOR(3DOWNTO0);
CLK:
INSTD_LOGIC;
S:
OUTSTD_LOGIC_VECTOR(1DOWNTO0);
Y:
OUTSTD_LOGIC_VECTOR(3DOWNTO0));
ENDSJXZ;
ARCHITECTUREONEOFSJXZIS
SIGNALCOUNT:
STD_LOGIC_VECTOR(1DOWNTO0);
BEGIN
S<=COUNT;
PROCESS(CLK,COUNT)
BEGIN
IFCLK'EVENTANDCLK='1'THEN
IFCOUNT>="10"THEN
COUNT<="00";
ELSECOUNT<=COUNT+1;
ENDIF;
ENDIF;
CASECOUNTIS
WHEN"00"=>Y<=A;
WHEN"01"=>Y<=B;
WHEN"10"=>Y<=C;
WHENOTHERS=>NULL;
ENDCASE;
ENDPROCESS;
ENDONE;
2、仿真图:
C.报警模块:
在这个模块中主要实现抢答过程中的报警功能,当主持人按下控制键,有限时间内有人抢答或是计时到时蜂鸣器开始报警,有效电平输入信号i;状态输出信号q;时钟脉冲clk。
1、VHDL源程序:
LIBRARYIEEE;
USEIEEE.STD_LOGIC_1164.ALL;
USEIEEE.STD_LOGIC_UNSIGNED.ALL;
ENTITYBJIS
PORT(I,CLK:
INSTD_LOGIC;
Q:
OUTSTD_LOGIC);
ENDBJ;
ARCHITECTUREBEHAVEOFBJIS
SIGNALWARN:
STD_LOGIC;
SIGNALN:
INTEGERRANGE0TO700;
BEGIN
Q<=WARN;
PROCESS(CLK)
BEGIN
IFCLK'EVENTANDCLK='1'THEN
IFI='0'THEN
WARN<='0';
ELSIF(I='1'ANDN<=700)THEN
WARN<='1';
N<=N+1;
ELSE
WARN<='0';
ENDIF;
ENDIF;
ENDPROCESS;
ENDBEHAVE;
2、仿真图:
(3)主电路原理图:
(4)器件编程与下载:
将编译好的模块程序下载到CPLD中:
device(EPF10K10LC84-3)选取要与硬件对应,否则会导致实验失败,连线做硬件实验。
(5)性能测试与分析:
按下rst键观察数码管是否复位并开始倒计时,蜂鸣器是否发出提示声;按下s0,观察数码管是否显示1,再按s1,s2.s3数码管均不改变显示,按下四个抢答键时,蜂鸣器是否发出报警;按下rst键,等待计时时间到,观察是否显示00,蜂鸣器是否发出报警。
3.总结:
在这次EDA设计与实践课程中,通过对Qutusu6.0的使用,让我加深理解了VHDL程序设计的步骤和原理。
我们的题目是四路抢答器设计,刚开始一头雾水,通过查资料和借鉴前辈的作品,我一步一步从迷茫到困惑再到柳暗花明,从一点一点中学习,一点一点进步。
我发现做学问不可以迷信,要有怀疑一切的态度,并且要知其然知其所以然,静下心来,仔细研究,才能有所发现。
编写程序是一定要思路清晰,在该设计的计时模块正是这一点的体现,一步一步来,不可急于求成,在遵守规则并有章可循的前提下,大胆发挥勇于尝试,对于出现的错误一定要研究不可放过,此时放过下次还会出现。
不断总结才能不断进步。
总的来说,这次设计的抢答器还是比较成功的,在设计中遇到了很多问题,最后在老师的指导以及我们大家不懈努力下,终于迎刃而解,心中的成就感,不说也都明白。
平时所学的知识有了实用的价值,达到了理论与实际相结合的目的,不仅学到了不少知识,而且锻炼了自己的能力。
同时为以后的毕业设计打下了坚实的基础。
4.致谢:
在这次的EDA课程设计过程中,我要感谢老师多次的教导,去学习和怎样使用该软件,也要感谢同学们的热情帮助,才使我顺利完成设计。
5.参考文献:
(1)延明,张亦华.数字电路EDA技术入门.北京.北京邮电大学出版社.2006.
(2)章彬宏.EDA应用技术.北京:
北京理工大学出版社,2007.
(3)王振红.VHDL数字电路设计与应用实践教程.北京.机械工业出版社.
(4)焦素梅,EDA应用技术.北京.清华大学出版社.2005.