EDA报告交通灯控制器Word文档格式.docx

上传人:b****6 文档编号:21048554 上传时间:2023-01-27 格式:DOCX 页数:18 大小:857.05KB
下载 相关 举报
EDA报告交通灯控制器Word文档格式.docx_第1页
第1页 / 共18页
EDA报告交通灯控制器Word文档格式.docx_第2页
第2页 / 共18页
EDA报告交通灯控制器Word文档格式.docx_第3页
第3页 / 共18页
EDA报告交通灯控制器Word文档格式.docx_第4页
第4页 / 共18页
EDA报告交通灯控制器Word文档格式.docx_第5页
第5页 / 共18页
点击查看更多>>
下载资源
资源描述

EDA报告交通灯控制器Word文档格式.docx

《EDA报告交通灯控制器Word文档格式.docx》由会员分享,可在线阅读,更多相关《EDA报告交通灯控制器Word文档格式.docx(18页珍藏版)》请在冰豆网上搜索。

EDA报告交通灯控制器Word文档格式.docx

五、各模块功能介绍

1.顶层原理图及基本原理

如图1-1所示,系统时钟(48M经过分频得到1HZ方波,为状态机和计数器提供时钟,lsdsn[5..0]六位总线分别表示主干道和支干道的绿灯、黄灯、红灯。

ledsn[5]:

主干道绿灯,ledsn[4]:

主干道黄灯,ledsn[3]:

主干道红灯,ledsn[2]:

支干道绿灯,ledsn[1]:

支干道黄灯,ledsn[0]:

支干道红灯。

当系统复位后,如果s输入一个低电平(主、支干道均有车时,两者交替允许通行,主干道每次放行45秒,支干道每次放行25秒)状态机进入s0,主控电路c45输出一个高电平使能45s倒计时计数器(此时主干道绿灯亮,支干道红灯亮);

当计数结束后,45s倒计时计数器的cout输出一个进位信号,使状态机进入下一个状态s1,此时主控电路(状态机)c545输出一个高电平使能主干道5s倒计时计数器(此时主干道黄灯亮,支干道红灯亮);

当计数结束后,5s倒计时计数器的cout输出一个进位信号,使状态机进入下一个状态s2,此

时主控电路c25输出一个高电平使能25s倒计时计数器(此时主干道红灯亮,支干道绿灯亮);

当计数结束后,25s倒计时计数器的cout输出一个进位信号,使状态机进入下一个状态S3,此时主控电路c525输出一个高电平使能支干道5s倒计时计数器(干道红灯亮,支干道黄灯亮);

当计数结束后,5s倒计时计数器的cout输出一个进位信号,使状态机重新进入下一个状态s0,依次循

当系统复位后,如果s输入一个高电平(主干道处于常允许通行的状态),此时状态机一直保持在s0状态。

当s=0时,表示主、支干道均有车时,两者交替允许通行,主干道每次放行45秒,支干道每次放行25秒,从仿真波形图上可以看到,ledsn[5..O]分别表示主干道绿、黄、红灯,支干道绿、黄、红灯,当复位后,主干道绿灯

(ledsn[5]=1),支干道红灯(ledsn[0]=1);

计满45秒后进入下个状态,主干道黄灯(ledsn[4]=1),支干道红灯(ledsn[0]=1);

计满5秒后进入下个状态,主干道红灯(ledsn[3]=1),支干道绿灯(ledsn[2]=1);

计满25秒后进入下个状态,

主干道红灯(ledsn[3]=1),支干道黄灯(ledsn[1]=1);

计满5秒后进入下个状态,主干道绿灯(ledsn[5]=1),支干道红灯(ledsn[0]=1),依次循环.....(sg和bt

为译码电路的仿真结果,在此可以忽略)

图1-3s=1时原理图仿真结果

当s=1时,表示主干道处于常允许通行的状态,此时从仿真图上可以看到状态一直保持在主干道绿灯(ledsn[5]=1),支干道红灯(ledsn[0]=1)。

2.分频器

如图2-1所示,这次交通灯的设计用到了两个分频器,一个是将系统时钟进行48M分频得到1HZ的时钟提供给状态机和计数器;

另一个分频器是将系统时钟进行48K分频得到1KHZ的时钟,给数码管动态显示模块作为扫频时钟用。

这里采用的是事先写好的通用程序,分频系数可以根据具体需要进行修改,在此只给出原理图及VHDLS代码。

图2-1分频器原理图

其VHDL弋码如下:

LIBRARYIEEE;

USEIEEE.STD_LOGIC_1164.ALL;

USEIEEE.STD_LOGIC_UNSIGNED.ALL;

USEIEEE.STD_LOGIC_ARITH.ALL;

USEIEEE.NUMERIC_BIT.ALL;

--包含移位函数等.

ENTITYint_div2IS

GENERIC

F_DIV:

Integer:

=48000;

--分频系数

F_DIV_WIDTH:

Integer:

=32--分频计数器宽度);

PORT(clock:

INSTD_LOGIC;

clock_out:

OUTSTD_LOGIC);

END;

SIGNALfull_div_p:

STD_LOGIC;

--上升沿计数满标志

SIGNALhalf_div_p:

--上升沿计数半满标志

SIGNALfull_div_n:

SIGNALhalf_div_n:

--下降沿计数满标志

--下降沿计数半满标志

BEGINclock_out<

=clock_out_r;

--clock_out<

=clockWHEN(F_DIV=1)ELSE((clk_p_r='

1'

ANDclk_n_r='

)WHEN(F_DIV(0)='

)clk_p_r);

clk_p_r<

='

0'

;

ENDIF;

ENDPROCESS;

PROCESS(clock)--下降沿脉冲计数

BEGIN

IFFALLING_EDGE(clock)THEN

IFfull_div_n='

THENcount_n<

=count_n+1;

IFhalf_div_n='

THENclk_n_r<

='

ELSE

clk_n_r<

ELSEcount_n<

=(OTHERS=>

'

);

clk_n_r<

PROCESS(clock)

IFRISING_EDGE(clock)THEN

IFF_DIV=1THENclock_out_r<

=clock;

IF(F_DIVREM2)=1THENclock_out_r<

=clk_p_rANDclk_n_r;

clock_out_r<

=clk_p_r;

3.主控电路(状态机)主控电路是一个单进程的Moore型有限状态机,状态转换图如图3-1所示

4.

图3-1状态转换图

每种状态说明如下:

原状态

目的状态

转换条件

状态输出

S0

si

s=1'

且s45='

leds*="

10000r;

c45<

T;

c25<

0:

c545<

c525<

s2

s545=1

01000r;

1:

s3

s25='

ledsn<

="

001100"

s0

s525=1

001010"

状态机原理图如图3-2所示

图3-2状态机原理图

状态机仿真结果如图3-3所示

图3-3状态机仿真结果

从仿真结果可以看到,满足状态转换条件后,状态机就会从现在的状态转移到下一个状态,具体的转换结果与上表相同。

其VHDL代码如下:

libraryieee;

useieee.std_logic_1164.all;

entitytrafficis

port(CLK,RST,s,s45,s25,s545,s525:

instd_logic;

c45,c25,c545,c525:

outstd_logic;

ledsn:

outstd_logic_vector(5downto0));

endtraffic;

architectureoneoftrafficis

typesxis(s0,s1,s2,s3);

signalcurrent_state:

sx;

begin

process(RST,CLK)

ifRST='

then

current_state<

=s0;

ledsn<

100001"

elsifCLK'

eventandCLK='

then

casecurrent_stateis

whens0=>

ifs='

thencurrent_state<

elsifs45='

=s1;

elsecurrent_state<

endif;

whens1=>

ifs545='

=s2;

elsecurrent_state<

010001"

whens2=>

ifs25='

=s3;

whens3=>

ifs525='

c45<

endcase;

endif;

endprocess;

endone;

5.45秒倒计时电路

inst

45秒倒计时电路是一个45秒的减一计数器,当减到0时输出进位信号作为状态机的状态转换信号。

其原理图如图4-1所示。

CLK

CQ[50]

RST

court

EM

*

图4-145秒计数器原理图

45秒倒计时电路的仿真结果如图4-2所示。

其VHDL代码如下:

useieee.std」ogic_1164.all;

useieee.std_logic_unsigned.all;

entitycnt45is

port(CLK,RST,EN:

CQ:

outstd」ogic_vector(5downto0);

cout:

outstd_logic);

end;

architecturebehavofcnt45is

process(CLK,RST,EN)

variableCQI:

stdlogicvector(5downto0);

ifCLK'

thenCQI:

101100"

elsifEN='

ifCQI>

0thenCQI:

=CQI-1;

cout<

elseCQI:

CQ<

=CQI;

endbehav;

6.25秒倒计时电路

25秒倒计时电路是一个25秒的减一计数器,当减到0时输出进位信号作为状态机的状态转换信号。

其原理图如图5-1所示。

#FF■I

CLKCQ[+qTk纟:

:

FISTWUt―'

EN\i'

图5-225秒计数器仿真结果

entitycnt25is

outstdlogicvector(4downto0);

cout:

architecturebehavofcnt25isbegin

process(CLK,RST,EN)variableCQI:

std_logic_vector(4downto0);

begin

thenCQI:

11000"

CQ<

7.5秒倒计时电路

5秒倒计时电路是一个5秒的减一计数器,当减到0时输出进位信号作为状态机的状态转换信号。

其原理图如图6-1所示。

.-费”刃和刃松和打.

4飞松i纟:

■4i

・J7:

图6-15秒计数器原理图

5秒倒计时电路的仿真结果如图6-2所示,由于交通灯没有对黄灯5秒的倒计时进行显示,所以没有添加计数输出的端口,只用到了进位端口,在仿真图中可以看到,每次5个计数脉冲之后计数器就会输出一个进位信号。

图6-25秒计数器仿真结果

entitycnt5is

architecturebehavofcnt5is

std_logic_vector(2downto0);

100"

8.数码管动态扫描译码电路

数码管动态扫描译码电路如图7-1所示,此电路负责将主干道和支干道的

45秒和25秒倒计时进行译码然后显示输出。

考虑到实验箱上的数码管位8位数码管,这里采用动态扫描的显示方式。

由于仿真结果并不能正确的看到数码管的输出结果,这里没有给出仿真图。

图7-1数码管动态扫描译码电路原理图

useieee.std_logic_1164.all;

entitydecl7s4is

port(clk:

instd_logic;

a45:

instd_logic_vector(5downto0);

a25:

instd_logic_vector(4downto0);

sg:

outstd_logic_vector(6downto0);

bt:

outstd_logic_vector(3downto0));

end;

architectureoneofdecl7s4is

signalcnt4:

std_logic_vector(2downto0);

signala:

std_logic_vector(5downto0);

signala1:

signala2:

signala3:

signala4:

p0:

process(a45)

casea45is

when"

000000"

=>

a2<

a1<

---0when"

000001"

---1when"

000010"

---2when"

000011"

---3when"

000100"

---4when"

000101"

---5when"

000110"

---6when"

000111"

---7when"

001000"

---8when"

001001"

---9when"

---10when"

001011"

---11when"

---12when"

001101"

---13when"

001110"

---14when"

001111"

---15when"

010000"

---16when"

---17when"

010010"

---18when"

010011"

---19when"

010100"

---20when"

010101"

---21when"

010110"

---22when"

010111"

---23when"

011000"

---24when"

011001"

---25when"

011010"

---26when"

011011"

---27when"

011100"

---28when"

011101"

---29when"

011110"

---30when"

011111"

---31when"

100000"

---32when"

---33when"

100010"

---34when"

100011"

---35when"

100100"

---36when"

100101"

---37when"

100110"

a

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

当前位置:首页 > 医药卫生 > 药学

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

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