EDA课程设计交通灯文档格式.docx

上传人:b****6 文档编号:21213143 上传时间:2023-01-28 格式:DOCX 页数:13 大小:44.89KB
下载 相关 举报
EDA课程设计交通灯文档格式.docx_第1页
第1页 / 共13页
EDA课程设计交通灯文档格式.docx_第2页
第2页 / 共13页
EDA课程设计交通灯文档格式.docx_第3页
第3页 / 共13页
EDA课程设计交通灯文档格式.docx_第4页
第4页 / 共13页
EDA课程设计交通灯文档格式.docx_第5页
第5页 / 共13页
点击查看更多>>
下载资源
资源描述

EDA课程设计交通灯文档格式.docx

《EDA课程设计交通灯文档格式.docx》由会员分享,可在线阅读,更多相关《EDA课程设计交通灯文档格式.docx(13页珍藏版)》请在冰豆网上搜索。

EDA课程设计交通灯文档格式.docx

architectureoneoffenpingqiis

signalcounter:

integerrange0to4999999;

Begin

process(CLR,CLK)

if(CLK='

1'

andCLK'

event)then

ifCLR='

then

counter<

=0;

elsifcounter=4999999then

q<

=notq;

else

=counter+1;

endif;

endif;

endprocess;

endone;

2、开关控制部分的ASM图

i、j、k、分别代表开关状态;

1表示开关闭合,为高电平;

0表示开关断开为低电平。

当开关处于不同的状态时,分别给变量G不同的值,用来实现控制通行时间。

x<

=i&

j&

k;

cnt:

process(clk)

variables:

integerrange0to49;

variableg:

variablenclr,en:

bit;

ifx<

="

001"

theng:

=29;

elsifx<

010"

=39;

100"

=49;

elseg:

3、信号灯转换控制部分的ASM图

Rm、Ym、Gm分别表示主干道红、黄、绿;

Rf、Yf、Gf分别表示支道红、黄、绿;

S表示灯亮的时间;

nclr是计时器的清零端,低电平有清零;

en是计时器的使能端,高电平使能。

if(clk'

eventandclk='

)then

ifnclr='

0'

thens:

elsifen='

=s;

elses:

=s+1;

casestateis

whena=>

rm<

='

;

ym<

gm<

rf<

yf<

gf<

ifs=gthen

state<

=b;

nclr:

en:

Else

state<

=a;

3、状态装换

(1)开始设置为支路为绿灯、主路为红灯,持续时间为30秒;

(2)30秒后,支路由绿灯变为黄灯,主路红灯不变,持续时间为4秒;

(3)4秒后,支路由黄灯变为红灯,主路由红灯变为绿灯,持续时间30秒;

(4)30秒后,支路红灯不变,主路由绿灯变为黄灯,持续时间为4秒;

(5)4秒后,支路由红灯变为绿灯,主路由黄灯变为绿灯,持续时间为30秒;

随时间,主、支系统依次循环,可以自动切换,红绿灯时间间隔可以手动设置,以适应不同需求。

whenb=>

ifs=3then

=c;

whenc=>

=d;

whend=>

endcase;

4、总原理图

1、电路连接图

2、分频器模块

3、交通灯控制器模块

4、波形仿真

仿真图一

仿真图二

5、硬件仿真:

为了能对所设计的红绿灯交通灯控制器电路进行硬件测试,应将其输入输出信号锁定在开发系统的目标芯片引脚上,并重新编译,然后对目标芯片进行编程下载,完成红绿灯交通灯控制器的最终开发,其硬件测试示意图如图6-62。

不失一般性,本设计选用的EDA开发平台为GW48电路模式为,选择目标器件为Cylone系列EP1C3T144C8芯片。

锁定引脚时将CLK接至clock2(接受1kHz的时钟频率);

内部自复位信号同键3(PIO8)相连;

手动、自动切换钮(1:

自动、0手动)接键4(PIO9);

:

红绿灯状态切换键(每按一次就切换一个状态)接键5(PIO13);

R1接发光二级管D8(PIO23)用于指示南北路口红灯;

G1接发光二级管D7(PIO22)用于指示南北路口绿灯;

Y1接发光二级管D6(PIO21)用于指示南北路口黄灯;

R0接发光二级管D5(PIO20)用于指示东西路口红灯;

G0接发光二级管D4(PIO19)用于指示东西路口绿灯;

Y0接发光二级管D3(PIO18)用于指示东西路口红灯;

NEXT_S接发光二级管D1(PIO16)用于转态指示。

引脚锁定完成后,重新对该工程进行编译,综合适配后将配置数据下载入GW48实验平台的FPGA中(有关CLK等引脚在FPGA芯片EP1C6Q240C8引脚中的序号,请参见EDA书后的附录的附表)。

选模式5,情况一(红绿灯间隔30秒,黄绿间隔5秒),设定最右边三个灯(从右到左)为支路灯:

红灯、绿灯、黄灯;

紧接着为主路:

红灯、绿灯、黄灯(6号灯已坏顺延到7号灯);

仿真图片如下:

图一:

支路绿灯,主路红灯

图二:

支路黄灯,主路红灯

图三:

支路红灯,主路绿灯

图四:

支路红灯,主路黄灯

图五:

五、实验目的

1.熟练掌握VHDL语言和MAX+PLUSII软件的使用;

2.理解状态机的工作原理和设计方法;

3.掌握利用EDA工具进行自顶向下的电子系统设计方法

六、实验步骤

1.将实验系统上RS232接口与计算机串行口相连。

2.用VHDL将两个方案的源程序输入MAX+PLUSII软件中。

3.编译程序并进行引脚分配,最后将程序下载到器件中去。

七、结果分析

本次课程设计基本上满足了任务的设计要求,可以通过开关手动设置主干道和支道每次通行的时间分别为为30s、40s、50s,从而控制通行时间长短的转换;

各个状态之间的转化及各个状态的通行时间也可以满足“主干道和支干道自动循环。

主干道和支道每次通行的时间为30s,而在两个状态交换过程出现的"

主黄,支红"

和"

主红,支黄"

状态,持续时间都为4s”的设计要求。

但是设计也存在一定的缺陷,设计只能完成当开关i,j,k只有一个为高电平时使交通灯正常工作,,其他状态时定义G=0,这时交通灯不能正常工作。

例如当X=I&

J&

K=’101’,时,其波形仿真各个状态时间通行时间长短会出现差错,如下图

然而,这种状况在实际生活中是不允许出现的。

其解决方法是:

在各个when语句后增加一条if判断语句,判断如果g等于0,则保持原状态,如果g不等于0,则执行原来方案中的状态转换语句。

八、硬件要求

主芯片EPF10K10LC84-4;

6个LED灯(红、黄、绿各两个);

四个开关。

九、心得体会

通过课程设计能提高学生对所学知识的综合应用能力,能全面检查并掌握所学内容,在这学期的课程设计中,在收获知识的同时,还收获了阅历,收获了成熟,在此过程中,我们通过查找资料,请教老师,以及不懈的努力,不仅培养了独立思考、动手操作的能力,在各种其它能力上也都有了提高。

更重要的是,我们学会了很多学习的方法。

通过本学期的这次的课程设计与几次实验,我学会了VHDL语言的一些基本用法,应用了原来不会或者不熟练的句型,如process进程,也学会了一些基本功能的实现方法,如分频,状态控制等。

虽然这次实验遇到的问题不少,但是在老师以及同学的帮助下,我都顺利地解决了,并为将来的实践积累了宝贵的经验和教训。

通过经常和老师、同学交流,以便及时发现自己在实验中的纰漏和不足,促进进步。

EDA设计中程序调试最为重要,我在编完各模块程序之后,编译查错最初有很多错误,有输入错误,语法错误,通过反复的修改最终通过了编译。

必须注意工程名和实体名的一致,在仿真无误的情况下把程序下载到是芯片中,进行硬件的调试。

逻辑正确和仿真真确并不代表着实际实验的正确,通常情况下,要适当地调整逻辑以适应硬件。

要特别注意仿真时出现的毛刺和偏差,到底是由于仿真设置不合理还是仿真结果确实有问题。

这次课程设计虽然结束了,也留下了很多遗憾,因为由于时间的紧缺和许多课业的繁忙,并没有做到最好,但是,最起码我们没有放弃,它是我们的骄傲!

相信以后我们会以更加积极地态度对待我们的学习、对待我们的生活。

实验的顺利完成,与老师的热心指导是分不开的,最后十分感谢胡辉老师的认真负责的工作,让我受益匪浅!

十、参考文献

《EDA技术与实验》机械工业出版社李国洪、胡辉、沈明山

《EDA技术实验与课程设计》清华大学出版社曹新燕、周凤臣、聂春燕

《EDA技术综合应用实例与分析》西安电子科技大学出版社谭会生、翟遂春

附件

1、顶层设计代码

libraryieee;

useJiaoTongDengis

port(clr,clk,i,j,k:

instd_logic;

rm,ym,gm,rf,yf,gf:

outstd_logic;

recount:

NEXT_S:

outstd_logic);

endentityJiaoTongDeng;

architectureJTDofJiaoTongDengis

componentfenpingqi

port(CLR,CLK:

q:

bufferstd_logic);

endcomponent;

componentkongzhi

port(clk,i,j,k:

componentcount_down

port(clk,reset,ena_1Hz,recount:

instd_logic;

load:

instd_logic_vector(7downto0);

seg7:

outstd_logic_vector(15downto0);

next_state:

outstd_logic);

signalQ,signalrecount_1,signalnext_state_1:

std_logic;

begin

u1:

fenpingqiportmap(CLR=>

clr,CLK=>

clk,q=>

Q);

u2:

kongzhiport

map(i=>

i,j=>

j,k=>

k,clk=>

Q,rm=>

rm,ym=>

ym,gm=>

gm1,rf=>

rf,

yf=>

yf,gf=>

gf);

u3:

count_down

portmap(RE,CLK,ena_1Hz_1,recount_1,load,S,next_state_1);

NEXT_S<

=next_state_1;

endarchitectureJTD;

分频器代码

usefenpingqiis

port(CLR,CLK:

instd_logic;

endfenpingqi;

3、交通灯控制器代码

usekongzhiis

port(clk,i,j,k:

endkongzhi;

architecturearcofkongzhiis

typestate_typeis(a,b,c,d);

signalstate:

state_type;

signalx:

std_logic_vector(2downto0);

if(clk'

ifnclr='

ifs=gthen

endprocesscnt;

endarc;

4、两位七段译码输出显示代码

LIBRAYRIEEE;

USEcount_downIS

port(reset,clk,ena_1Hz,recount:

end;

ARCHITECTUREBEHAVIORofcount_downIS

signalcnt_ff:

std_logic_vector(7downto0);

count:

process(clk,reset)

begin

if(reset='

)then

cnt_ff<

00000000"

seg7<

0000000000000000"

elsif(clk'

ifena_1Hz='

if(recount='

=load-1;

else

=cnt_ff-1;

caseconv_integer(cnt_ff)is

--dtgfedcba(十位)dtgfedcba(个位)

endcase;

next_state<

='

whencnt_ff=1else'

endBEHAVIOR;

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

当前位置:首页 > 幼儿教育 > 幼儿读物

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

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