EDA课程设计.docx
- 文档编号:8900674
- 上传时间:2023-02-02
- 格式:DOCX
- 页数:13
- 大小:184.84KB
EDA课程设计.docx
《EDA课程设计.docx》由会员分享,可在线阅读,更多相关《EDA课程设计.docx(13页珍藏版)》请在冰豆网上搜索。
EDA课程设计
课程设计任务书
学院
信息科学与工程学院
专业
电子信息工程
学生姓名
学号
设计题目
交通灯控制器
一、内容及要求:
利用所学的EDA设计方法设计交通灯控制器,熟练使用使用QUARTUS
应用软件,进一步学习使用VHDL语言、原理图等EDA设计方法进行综合题目的方法。
二、功能要求:
(1)正常情况下保证主干道的畅通。
(2)当步行街上的行人要穿过主干道时,通过设置的按钮来发出请求。
(3)当有人按下次按钮时。
主干道变为黄灯。
设置计数器即时时间为X秒。
(4)X秒过后。
主干道变为红灯,计数器继续计时(计时时间为Y秒)。
在Y秒内若有人再次按按钮,计数器不重新计时。
(5)步行街道绿灯闪烁时间为Y1秒,(Y-Y1)秒后主干道变为绿灯,车辆通行。
且要保证车辆通行一定时间(Z秒)。
再次时间内,行人按按钮无效。
Z秒过后。
若有人再按下按扭,又出现(3)中的状态。
计时器的计时时间长短X,Y,Z可以任意设定
三、进度安排:
12.22-25查资料、方案设计、程序设计。
1.9-1.12程序设计、调试、写课程设计报告。
1.13验收。
指导教师(签字)
2011年12月18日
学院院长(签字)
2011年12月18日
目录
1、交通灯控制器设计任务和要求…………………………………2
2、交通灯控制器的设计目的………………………………………2
3、交通灯控制器模块的设计思路及原理图…………………………3
4、交通灯控制器设计过程…………………………………………5
5、交通灯控制器的时序仿真图……………………………………11
6、实验心得与体会…………………………………………………12
7、参考文献…………………………………………………………13
1.交通灯控制器的设计任务和要求
设计任务:
设计一个步行街道交通灯的控制器
设计要求:
1)正常情况下保证主干道的畅通。
2)当步行街上的行人要穿过主干道时,通过设置的按钮来发出请求。
3)当有人按下次按钮时,主干道变为黄灯,设置计数器即时时间为X秒。
4)X秒过后。
主干道变为红灯,计数器继续计时(计时时间为Y秒)。
在Y秒内若有人再次按按钮,计数器不重新计时。
5)步行街道绿灯闪烁时间为Y1秒,(Y-Y1)秒后主干道变为绿灯,车辆通行。
且要保证车辆通行一定时间(Z秒)。
再次时间内,行人按按钮无效。
Z秒过后。
若有人再按下按扭,又出现3)中的状态。
计时器的计时时间长短X,Y,Z可以任意设定
2、交通灯控制器的设计目的
1)通过这次实验设计使我们加深对EDA技术与数字系统设计相关理论和概念的理解,培养我们的理论联系实际的能力,特别是实际动手能力。
2)学习使用MAXPLUS
软件设计。
3)进一步掌握MAXPLUS
软件的使用。
4)根据原理图学会用VHDL语言设计时序电路。
5)学会绘制时序仿真波形图。
3、交通灯控制器的设计思路及原理图
1.系统设计方案
根据系统设计要求有两种实现方法,一种是采用EDA的实验软件来实现系统要求;另一种采用基本门电路和各种触发器电路元件来实现。
方案一:
EDA设计方法(软件:
max_plus10.0)
根据系统设计要求,系统设计采用自顶而下的设计方法,顶层设计采用原理图设计方法,系统的整体设计原理图如图
(1)所示,它右去抖模块~设置计数模块和交通灯控制三部分组
(1)去抖模块
去抖模块的作用在于消除按键的抖动,因为当输入信号在高低电平之间转换时,在转换的瞬间会产生毛刺,使信号波形不稳定,从而使系统不能正常工作,因此要加入去抖模块。
(2)设置计数模块
设置计数模块的是设置并存储主干道方向和步行街道方向的时间长短。
主干道方向需要设置的时间包括主干道黄灯信号时间,红灯信号时间和主干道车辆允许通行的最短时间,步行街道方向需要设置的时间为步行街道的闪烁时间。
(3)交通灯控制模块
(4)交通灯模块通过采用状态机来实现,用于存储交通灯的五种状态。
五种状态的集体说明如下表。
状态
主干道信号灯
步行街信号灯
主干道
步行街道
R红
G绿
Y黄
R红
G绿
S0
0
1
0
1
0
通行
禁行
S1
0
0
1
1
0
车停靠
禁行
S2
1
0
0
0
1
禁行
通行
S3
1
0
0
0
禁行
通行(绿灯闪烁
S4
0
1
0
1
0
通行
禁行
方案二:
用硬件来实现本系统要求的功能
其基本组成部分和方案一一样,但不同的是用硬件来实现三个模块的逻辑功能。
对于去抖模块,可采用下图所示的防抖动输出电路来解决。
课本P2089.1题。
对于计数模块,设置计数模块的是设置并存储主干道方向和步行街道方向的时间长短。
所以需要两个可以计数并存储的计数器来实现。
综上所述,两个方案各有各的优点,但根据时代的发展要求,选择方案一是首选!
因为方案二要焊接的电路板太多,对于有实际用处的逻辑电路一般是进行设计·仿真后有功能实现就大批量生产,如果采用电路板焊接来实现,会增加工作时间,并且不一定能买到合适的元件来满足设计要求,而方案一采用EDA技术来实现实验功能,在出现问题后容易进行解决并进行修正。
所以本实验采用方案二进行设计。
4、交通灯控制器设计过程
1)根据系统设计方案二编写各模块的元程序如下:
(1)去抖模块的VHDL源程序(dither.vhd)
LIBRARYIEEE;
USEIEEE.STD_LOGIC_1164.ALL;
USEIEEE.STD_LOGIC_UNSIGNED.ALL;
USEIEEE.STD_LOGIC_ARITH.ALL;
ENTITYDITHERIS
PORT(UPIN:
INSTD_LOGIC;--按键弹起
DOWNIN:
INSTD_LOGIC;--按键压下
KEYOUT:
OUTSTD_LOGIC);--按键输出信号
ENDDITHER;
ARCHITECTUREBEHAVEOFDITHERIS
SIGNALOUT1:
STD_LOGIC;
SIGNALOUT2:
STD_LOGIC;
BEGIN
OUT1<=NOT(OUT2ANDUPIN);
OUT2<=NOT(OUT1ANDDOWNIN);
KEYOUT<=OUT1;
ENDBEHAVE;
产生图形如下
(2)设置计数模块的VHDL源程序如下(count.vhd)
LIBRARYIEEE;
USEIEEE.STD_LOGIC_1164.ALL;
USEIEEE.STD_LOGIC_UNSIGNED.ALL;
USEIEEE.STD_LOGIC_ARITH.ALL;
ENTITYCOUNTIS
PORT(CLK:
INSTD_LOGIC;
CLEAR:
INSTD_LOGIC;
CLKADD:
INSTD_LOGIC;
CLKSUB:
INSTD_LOGIC;
PRE_SET:
INSTD_LOGIC;
HUMAN_SET:
INSTD_LOGIC;
RST:
INSTD_LOGIC;
GHUMAN_TIME:
OUTINTEGERRANGE31DOWNTO0;
GHUMAN_CLKT:
OUTINTEGERRANGE31DOWNTO0;
GVEHICLE_TIME:
OUTINTEGERRANGE31DOWNTO0);
ENDCOUNT;
ARCHITECTUREBEHAVEOFCOUNTIS
SIGNALHUMAN_TIME:
INTEGERRANGE31DOWNTO0;
SIGNALVEHICLE_TIME:
INTEGERRANGE31DOWNTO0;
SIGNALSSTATE:
STD_LOGIC_VECTOR(3DOWNTO0);
SIGNALSCLK:
STD_LOGIC;
SIGNALDSCLK:
STD_LOGIC;
BEGIN
SSTATE<="0000"WHENPRE_SET='0'ELSE
HUMAN_SET&CLEAR&CLKADD&CLKSUB;
SCLK<=CLKADDORCLKSUBORCLEAR;
PROCESS(CLK)
BEGIN
IF(CLK'EVENTANDCLK='1')THEN
DSCLK<=SCLK;
ENDIF;
ENDPROCESS;
PROCESS(RST,CLEAR,DSCLK)
BEGIN
IF(RST='1')THEN
VEHICLE_TIME<=8;
ELSIF(DSCLK'EVENTANDDSCLK='1')THEN
CASESSTATEIS
WHEN"0100"=>VEHICLE_TIME<=0;
WHEN"0101"=>VEHICLE_TIME<=0;
WHEN"0110"=>VEHICLE_TIME<=0;
WHEN"0111"=>VEHICLE_TIME<=0;
WHEN"0001"=>VEHICLE_TIME<=VEHICLE_TIME-1;
WHEN"0010"=>VEHICLE_TIME<=VEHICLE_TIME+1;
WHENOTHERS=>VEHICLE_TIME<=VEHICLE_TIME;
ENDCASE;
ENDIF;
ENDPROCESS;
PROCESS(CLEAR,DSCLK)
BEGIN
IF(RST='1')THEN
HUMAN_TIME<=4;
ELSIF(DSCLK'EVENTANDDSCLK='1')THEN
CASESSTATEIS
WHEN"1100"=>HUMAN_TIME<=0;
WHEN"1101"=>HUMAN_TIME<=0;
WHEN"1110"=>HUMAN_TIME<=0;
WHEN"1111"=>HUMAN_TIME<=0;
WHEN"1001"=>HUMAN_TIME<=HUMAN_TIME-1;
WHEN"1010"=>HUMAN_TIME<=HUMAN_TIME+1;
WHENOTHERS=>HUMAN_TIME<=HUMAN_TIME;
ENDCASE;
ENDIF;
ENDPROCESS;
PROCESS(PRE_SET,RST)
BEGIN
IF(RST='1')THEN
GHUMAN_TIME<=5;
GHUMAN_CLKT<=7;
GVEHICLE_TIME<=15;
ELSIF(PRE_SET'EVENTANDPRE_SET='0')THEN
GHUMAN_TIME<=HUMAN_TIME+1;
GHUMAN_CLKT<=HUMAN_TIME+3;
GVEHICLE_TIME<=HUMAN_TIME+VEHICLE_TIME+3;
ENDIF;
ENDPROCESS;
ENDBEHAVE;
产生图形如下:
(3)交通灯控制模块的VHDL源程序(SR.VHD)
LIBRARYIEEE;
USEIEEE.STD_LOGIC_1164.ALL;
USEIEEE.STD_LOGIC_UNSIGNED.ALL;
USEIEEE.STD_LOGIC_ARITH.ALL;
ENTITYLIGHTIS
PORT(SRED:
OUTSTD_LOGIC;
ERED:
OUTSTD_LOGIC;
SGREEN:
OUTSTD_LOGIC;
EYELLOW:
OUTSTD_LOGIC;
EGREEN:
OUTSTD_LOGIC;
GT_SET:
INSTD_LOGIC;
GHUMAN_TIME:
ININTEGERRANGE31DOWNTO0;
GHUMAN_CLKT:
ININTEGERRANGE31DOWNTO0;
GVEHICLE_TIME:
ININTEGERRANGE31DOWNTO0;
REQUEST:
INSTD_LOGIC;
CLK:
INSTD_LOGIC;
RST:
INSTD_LOGIC);
ENDLIGHT;
ARCHITECTUREBEHAVEOFLIGHTIS
TYPEIN_STATESIS(ST0,ST1,ST2,ST3,ST4);
SIGNALCURRENT_STATE:
IN_STATES;
SIGNALNEXT_STATE:
IN_STATES;
SIGNALSTART:
STD_LOGIC;
SIGNALSIG:
INTEGERRANGE31DOWNTO0;
BEGIN
PROCESS(CURRENT_STATE,RST)
BEGIN
IF(RST='1'ORCURRENT_STATE=ST0)THEN
START<='0';
ELSE
START<='1';
ENDIF;
ENDPROCESS;
A:
PROCESS(START,CLK)
BEGIN
IF(RST='1')THEN
SIG<=0;
ELSIF(CLK'EVENTANDCLK='1')THEN
IF(START='1')THEN
IF(SIG=GVEHICLE_TIME)THEN
SIG<=0;
ELSE
SIG<=SIG+1;
ENDIF;
ELSE
SIG<=0;
ENDIF;
ENDIF;
ENDPROCESSA;
PROCESS(RST,CLK)
BEGIN
IF(RST='1')THEN
CURRENT_STATE<=ST0;
ELSIF(CLK'EVENTANDCLK='1')THEN
CURRENT_STATE<=NEXT_STATE;
ENDIF;
ENDPROCESS;
PROCESS(CLK,CURRENT_STATE)
BEGIN
CASECURRENT_STATEIS
WHENST0=>ERED<='0';EGREEN<='1';EYELLOW<='0';SRED<='1';SGREEN<='0';
IF(REQUEST='1'ANDGT_SET='0')THEN
NEXT_STATE<=ST1;
ELSE
NEXT_STATE<=ST0;
ENDIF;
WHENST1=>ERED<='0';EGREEN<='0';EYELLOW<='1';SRED<='1';SGREEN<='0';
IF(SIG=1)THEN
NEXT_STATE<=ST2;
ELSE
NEXT_STATE<=ST1;
ENDIF;
WHENST2=>ERED<='1';EGREEN<='0';EYELLOW<='0';SRED<='0';SGREEN<='1';
IF(SIG=GHUMAN_TIME)THEN
NEXT_STATE<=ST3;
ELSE
NEXT_STATE<=ST2;
ENDIF;
WHENST3=>ERED<='1';EGREEN<='0';EYELLOW<='0';SRED<='0';SGREEN<=NOTCLK;
IF(SIG=GHUMAN_CLKT)THEN
NEXT_STATE<=ST4;
ELSE
NEXT_STATE<=ST3;
ENDIF;
WHENST4=>ERED<='0';EGREEN<='1';EYELLOW<='0';SRED<='1';SGREEN<='0';
IF(SIG=GHUMAN_CLKT)THEN
NEXT_STATE<=ST0;
ELSE
NEXT_STATE<=ST4;
ENDIF;
WHENOTHERS=>ERED<='0';EGREEN<='1';EYELLOW<='0';SRED<='1';SGREEN<='0';NEXT_STATE<=ST3;
ENDCASE;
ENDPROCESS;
ENDBEHAVE;
产生图形如下:
5、交通灯控制器的时序仿真图
1)DITHER.VWF
2)COUNT.VWF
3)LIGNT.VWF
4)ZONGTU.VWF
6、实验心得与体会
对本学期实验的评价,通过这次课程设计,在收获知识的同时,还收获了阅历,收获了成熟,在此过程中,趣味性强,不仅锻炼能力,而且可以学到很多东西,在与老师和同学的交流过程中,互动学习,将知识融会贯通。
老师提出的革新非常的好,认为本学期的实验模式非常实用。
但是提议可以申请将课程浓缩,在一定时间内只做这个,只有高度的集中才能作出好的东西。
时间的紧缺成为一个很大的问题。
也希望老师可以为我们知道一下以后的发展方向。
如果可以让每个人都有动手焊接以及参与其他的各个流程,有专门的知道就更好了。
在这次实践中,使我懂得只有付出,才会成功。
所以接下来我会更努力的把自己的学习搞好!
努力向上!
七、参考文献
《EDA技术及应用教程》赵全利编著机械工业出版社
《EDA技术实验与课程设计》周凤臣编著清华大学出版社
《数字电子技术基础》第四版阎石主编高等教育出版社
《电子技术基础实验与课程设计》章忠全主编中国电力出版社
- 配套讲稿:
如PPT文件的首页显示word图标,表示该PPT已包含配套word讲稿。双击word图标可打开word文档。
- 特殊限制:
部分文档作品中含有的国旗、国徽等图片,仅作为作品整体效果示例展示,禁止商用。设计者仅对作品中独创性部分享有著作权。
- 关 键 词:
- EDA 课程设计
![提示](https://static.bdocx.com/images/bang_tan.gif)