VHDL交通灯信号控制器的设计.docx

上传人:b****8 文档编号:28987503 上传时间:2023-07-20 格式:DOCX 页数:10 大小:239.97KB
下载 相关 举报
VHDL交通灯信号控制器的设计.docx_第1页
第1页 / 共10页
VHDL交通灯信号控制器的设计.docx_第2页
第2页 / 共10页
VHDL交通灯信号控制器的设计.docx_第3页
第3页 / 共10页
VHDL交通灯信号控制器的设计.docx_第4页
第4页 / 共10页
VHDL交通灯信号控制器的设计.docx_第5页
第5页 / 共10页
点击查看更多>>
下载资源
资源描述

VHDL交通灯信号控制器的设计.docx

《VHDL交通灯信号控制器的设计.docx》由会员分享,可在线阅读,更多相关《VHDL交通灯信号控制器的设计.docx(10页珍藏版)》请在冰豆网上搜索。

VHDL交通灯信号控制器的设计.docx

VHDL交通灯信号控制器的设计

交通灯信号控制器的设计

1.实验目的

(1)熟悉MAX+plusⅡ软件的基本使用方法。

(2)熟悉GW48—CKEDA实验开发系统的基本使用发放。

(3)学习VHDL基本逻辑电路和状态机电路的综合设计应用。

2.Forpersonaluseonlyinstudyandresearch;notforcommercialuse

3.

4.实验内容

设计并调试好一个十字交叉路口的交通灯控制器,具体要求如下:

(1)东西、南北方向有红、黄、绿指示灯,两个显示数码管。

(2)Forpersonaluseonlyinstudyandresearch;notforcommercialuse

(3)

(4)当南北方向允许通行亮绿灯时,东西方向亮红灯,而东西方向允许通行亮绿灯时,南北方向亮红灯。

(5)工作顺序为东西方向红灯亮45秒,前40秒南北方向绿灯亮,后5秒黄灯亮。

然后南北方向红灯亮45秒,前40秒东西方向绿灯亮,后5秒黄灯亮。

整个设计包括计时信号发生器、交通灯控制器以及译码显示电路的设计。

用GW48—CKEDA实验开发系统进行硬件验证。

Forpersonaluseonlyinstudyandresearch;notforcommercialuse

5.实验条件

(1)开发软件:

MAX+plusⅡ。

(2)Forpersonaluseonlyinstudyandresearch;notforcommercialuse

(3)

(4)实验设备:

GW48—CKEDA实验开发系统。

(5)拟用芯片:

EPF10K10-OLCC84。

6.实验设计

(1)Forpersonaluseonlyinstudyandresearch;notforcommercialuse

(2)

(3)系统的原理框图

(4)VHDL源程序

LIBRARYieee;

USEieee.std_logic_1164.ALL;

USEieee.std_logic_unsigned.ALL;

ENTITYnclightIS

Port(clk:

instd_logic;

--xsh1:

outstd_logic_vector(5downto0);

--xsh2:

outstd_logic_vector(5downto0);

ra,rb,ya,yb,ga,gb:

outstd_logic);

ENDnclight;

Architectureaofnclightis

typestateis(S0,S1,S2,S3);

signalpresentstate,nextstate:

state;

--signaltmp40:

integerrange0to40:

=0;

--signaltmp5:

integerrange0to5:

=0;

signaltmp40:

std_logic_vector(5downto0):

="101000";

signaltmp5:

std_logic_vector(2downto0):

="101";

signaltimeout40,timeout5:

std_logic;

signalrst40,rst5:

std_logic:

='0';

signalen40,en5:

std_logic:

='0';

signalq:

std_logic_vector(1downto0);

signalsec:

std_logic;

Begin

----get1hzclockpulse

hz1:

process(clk)

begin

ifclk'eventandclk='1'thenq<=q+1;endif;

sec<=q

(1);--get1hzclockpulse

endprocess;

---

reg:

process(sec)

begin

ifsec'eventandsec='1'thenpresentstate<=nextstate;endif;

endprocessreg;

---------------------------

changestate:

process(presentstate)

Begin

casepresentstateis

whenS0=>ra<='0';ya<='0';ga<='1';

rb<='1';yb<='0';gb<='0';

whenS1=>ra<='0';ya<='1';ga<='0';

rb<='1';yb<='0';gb<='0';

whenS2=>ra<='1';ya<='0';ga<='0';

rb<='0';yb<='0';gb<='1';

whenS3=>ra<='1';ya<='0';ga<='0';

rb<='0';yb<='1';gb<='0';

whenothers=>ra<='1';ya<='0';ga<='0';rb<='1';yb<='0';gb<='0';

endcase;

endprocess;

--------------------------

timing:

process(presentstate,timeout40,timeout5)

begin

casepresentstateis

whenS0=>rst40<='0';en40<='1';rst5<='1';en5<='0';

iftimeout40='1'thennextstate<=s1;elsenextstate<=s0;endif;

whenS1=>rst5<='0';en5<='1';rst40<='1';en40<='0';iftimeout5='1'thennextstate<=s2;elsenextstate<=s1;endif;

whenS2=>rst40<='0';en40<='1';rst5<='1';en5<='0';iftimeout40='1'thennextstate<=s3;elsenextstate<=s2;endif;

whenS3=>rst5<='0';en5<='1';rst40<='1';en40<='0';iftimeout5='1'thennextstate<=s0;elsenextstate<=s3;

endif;

whenothers=>nextstate<=s0;rst40<='0';en40<='0';rst5<='0';en5<='0';

endcase;

endprocess;

-----------------------

cnt40:

process(sec,rst40,en40)

begin

ifrst40='1'thentmp40<="101000";

elsifsec'eventandsec='1'then

ifen40='1'then

iftmp40="000001"thentmp40<="101000";

elsetmp40<=tmp40-1;

endif;--

endif;

endif;

iftmp40="000001"thentimeout40<='1';elsetimeout40<='0';

endif;

endprocess;

------------------------

cnt5:

process(sec,rst5,en5)

begin

ifrst5='1'thentmp5<="101";

elsifsec'eventandsec='1'then

ifen5='1'then

iftmp5="001"thentmp5<="101";

elsetmp5<=tmp5-1;

endif;--

endif;

endif;

iftmp5="001"thentimeout5<='1';elsetimeout5<='0';

endif;--

endprocess;

---------------

enda;

(3)管脚锁定文件

设计实体

I/O标识

插座序号

芯片可用

资源序号

芯片管脚

序号

RA

PIO8

I/O8

17

YA

PIO9

I/O9

16

GA

PIO10

I/O10

19

RB

PIO11

I/O11

21

TB

PIO12

I/O12

22

GB

PIO13

I/O13

23

TMP40

(6TO4)

PIO22-20

I/O22-20

37,36,35

TMP40

(3TO0)

PIO19-16

I/O19-16

30,29,28,27

TMP5

(2TO0)

PIO46-44

I/O46-44

78,73,72

备注

验证设备:

GW48—CK;实验模式:

NO.5

实验芯片:

EPF10K10-OLCC84;

7.实验结果及总结

(1)系统仿真情况

从系统仿真结果(本仿真结果可通过同时按下“ALT+PrtSc”键抓取当前屏幕信息放入剪贴板中,再在WORD文档中通过粘贴的方法获得)可以看出,本系统完全符合设计要求。

(2)硬件测试情况

接好后,计时开始,RA亮时YB,GB先后亮,然后RB亮时,YA,GA先后亮;绿灯,黄灯亮的同时,数显器计数情况为40,39,38……40;5,4,3,2,1,5……。

从实验结论可以看出,本系统满足设计要求。

(3)实验体会总结

这次一整天的EDA课程设计,可以说是苦多于甜,但是不仅巩固了以前所学过的知识,而且学到了很多在书本上所没有学到过的知识。

通过这次设计,进一步加深了对EDA的了解,让我对它有了更加浓厚的兴趣。

在程序时,遇到了不少问题,特别是各元件之间的连接,以及信号的定义,总是有错误,在细心的检查下,终于找出了错误和警告,排除困难后,程序编译就通过了,心里终于舒了一口气。

在波形仿真时,也遇到了一点困难,想要的结果不能在波形上得到正确的显示:

在设定输入的时钟信号后,计时开始,但是始终看不到红黄绿灯的变化。

后来,在几次的调试之后,才发现是因为输入的时钟信号对于器件的延迟时间来说太短了。

经过屡次调试,终于找到了比较合适的输入数值:

Endtime的值需要设置的长一点:

1000us左右,这样就可以观察到完整的仿真结果。

通过这次课程设计使我懂得了理论与实际相结合是很重要的,只有理论知识是远远不够的,只有把所学的理论知识与实践相结合起来,从理论中得出结论,才能真正为社会服务,从而提高自己的实际动手能力和独立思考的能力。

在设计的过程中遇到问题,可以说得是困难重重,同时在设计的过程中发现了自己的不足之处,对以前所学过的知识理解得不够深刻,掌握得不够牢固,最后在老师的辛勤的指导下,终于游逆而解,有点小小的成就感,终于觉得平时所学的知识有了实用的价值,达到了理论与实际相结合的目的。

最后,对给过我帮助的同学和老师再次表示忠心的感谢!

 

仅供个人用于学习、研究;不得用于商业用途。

Forpersonaluseonlyinstudyandresearch;notforcommercialuse.

NurfürdenpersönlichenfürStudien,Forschung,zukommerziellenZweckenverwendetwerden.

Pourl'étudeetlarechercheuniquementàdesfinspersonnelles;pasàdesfinscommerciales.

 толькодлялюдей,которыеиспользуютсядляобучения,исследованийинедолжныиспользоватьсявкоммерческихцелях. 

以下无正文

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

当前位置:首页 > 人文社科 > 视频讲堂

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

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