EDA技术及应用课程设计 交通灯文档格式.docx
《EDA技术及应用课程设计 交通灯文档格式.docx》由会员分享,可在线阅读,更多相关《EDA技术及应用课程设计 交通灯文档格式.docx(11页珍藏版)》请在冰点文库上搜索。
当支干道允许通行亮绿灯时,主干道亮红灯。
3、当主、支干道均有车时,两者交替允许通行,主干道每次放行45s,支干道每次放行25s,由亮绿灯变成亮红灯转换时,先亮5s的黄灯作为过渡,并进行减计时显示。
2、设计方案
原理图
各部分功能叙述
1、交通灯主控制器模块JTDKZ
接收时钟和主、支干道的输入信号,控制主干道和支干道的信号灯的输出。
2、45S计时译码模块CNT45S
完成主干道45s的计时功能。
3、5S计时译码模块CNT5S
完成主、支干道红绿灯转换时,黄灯显示的5s倒计时功能。
4、25S计时译码模块CNT25S
完成支干道25s的计时功能。
5、显示控制模块XSKZ
控制两个数码显示管的输出,使其能显示45s、25s的计时和5s的倒计时功能。
6、显示译码器YMQ
译码。
7、例化程序
使各个部分的功能合为一体,完成整个交通控制器的功能。
3、执行过程
1、将各部分VHDL参考程序输入软件,编译使其各个通过
1、交通灯主控制器模块JTDKZ:
2、45S计时译码模块CNT45S:
3、5S计时译码模块CNT5S:
4、25S计时译码模块CNT25S:
5、显示控制模块XSKZ:
6、显示译码器YMQ:
7、顶层原件例化程序及其编译
libraryieee;
useieee.std_logic_1164.all;
useieee.std_logic_unsigned.all;
useieee.std_logic_arith.all;
entityjiaotdis
port(sm:
instd_logic;
clk:
sb:
mr,br:
outstd_logic;
my,mg,by,bg:
dout1,dout2:
outstd_logic_vector(6downto0)
);
end;
architecturearcofjiaotdis
componentjtdkzis
port(clk,sm,sb:
instd_logic;
mr,my,mg,br,by,bg:
outstd_logic);
endcomponent;
componentCNT45Sis
port(SB,CLK,EN45:
INSTD_LOGIC;
DOUT45M,DOUT45B:
OUTSTD_LOGIC_VECTOR(7DOWNTO0)
componentCNT05SIS
PORT(CLK,EN05M,EN05B:
DOUT5:
componentCNT25SIS
PORT(SB,SM,CLK,EN25:
DOUT25M,DOUT25B:
componentXSKZIS
PORT(EN45,EN25,EN05M,EN05B:
AIN45M,AIN45B:
INSTD_LOGIC_VECTOR(7DOWNTO0);
AIN25M,AIN25B,AIN05:
DOUTM:
OUTSTD_LOGIC_VECTOR(7DOWNTO0);
DOUTB:
componentYMQIS
PORT(AIN4:
INSTD_LOGIC_VECTOR(3DOWNTO0);
DOUT7:
OUTSTD_LOGIC_VECTOR(6DOWNTO0)
signaldout4:
std_logic_vector(6downto0);
signalmy1,mg1,by1,bg1,en45,en25,en05m,en05b:
std_logic;
signalmr1,br1:
signaldout45m,dout45b,dout25m,dout25b,dout5,ain45m,ain45b,ain25b,ain25m,ain05m,doutm,doutb:
STD_LOGIC_VECTOR(7DOWNTO0);
signaldout3:
begin
mg<
=notmg1;
my<
=notmy1;
bg<
=notbg1;
by<
=notby1;
mr<
=notmr1;
br<
=notbr1;
u1:
jtdkzportmap(clk=>
clk,sm=>
sm,sb=>
sb,mr=>
mr1,my=>
my1,mg=>
mg1,br=>
br1,by=>
by1,bg=>
bg1);
u2:
cnt45sportmap(clk=>
clk,sb=>
sb,en45=>
mg1,dout45m=>
dout45m,dout45b=>
dout45b);
u3:
cnt05sportmap(clk=>
clk,en05m=>
my1,en05b=>
by1,dout5=>
dout5);
u4:
cnt25sportmap(clk=>
sb,sm=>
sm,en25=>
bg1,dout25m=>
dout25m,dout25b=>
dout25b);
u5:
xskzportmap(en45=>
mg1,en25=>
bg1,en05m=>
by1,ain45m=>
dout45m,
ain45b=>
dout45b,ain25m=>
dout25m,ain25b=>
dout25b,ain05=>
u6:
ymqportmap(ain4=>
doutm(3downto0),dout7=>
dout1);
U7:
doutm(7downto4),dout7=>
dout2);
U8:
doutb(3downto0),dout7=>
dout3);
U9:
doutb(7downto4),dout7=>
dout4);
endarc;
顶层程序编译
2、将所有程序进行器件适配,成功后设定管脚
3、下载程序
4、课程设计总结
通过这次的数字电路硬件课程设计,我学会了如何利用软件将通用的可编程硬件变成自己想要的功能的硬件。
也对用VHDL语言进行编程有了直观的感受,尤其是关于原件例化的程序,通过不断的修改和编译,终于使其实现了它的功能。
由于这次设计之前并没有一个很好的思路,所以在后续的编写和合成时总是出现警告和错误,使设计无法顺利进行。
其实如果自己去独立设计的话,会用更简单的思路去设计和实现它,就是用一个计数器,使其分成三段时间,每段时间分别完成在45s、25s、5s的计时段中的相关动作。
这样可以大大降低工作程度且不易出错。
总之,这次课设对以后的学习和工作实践会有很大的启发及帮助。