EDA设计报告Word格式文档下载.docx
- 文档编号:22183790
- 上传时间:2023-02-02
- 格式:DOCX
- 页数:17
- 大小:312.54KB
EDA设计报告Word格式文档下载.docx
《EDA设计报告Word格式文档下载.docx》由会员分享,可在线阅读,更多相关《EDA设计报告Word格式文档下载.docx(17页珍藏版)》请在冰豆网上搜索。
硬件搭试是很费时间的,往往因接线紊乱和接触不良而带来各式各样的麻烦,所用器件越多,搭试难度越大,当系统规模大到一定程度,系统复杂到一定程度,这种搭试实际上是不可行的。
由于计算机技术的发展和采用现场可编程逻辑器件,改变了数字系统设计的程式,硬件搭试被仿真所取代。
所谓仿真,就是在计算机上建立起系统的模型,然后加进合适的测试码(对组合电路)或测试序列(对时序电路),对此模型进行测试,以验证系统是否符合预期的设计,如不符合再行修改,直至满足设计要求,然后制作样机。
所以,现代数字系统设计过程是书面设计—仿真—(烧录器件)制作样机,这是一种快捷而且节约的方法。
二交通灯控制系统介绍
城市中常见的大型十字路口如图2.1所示。
图2.1十字路口示意图
一般情况下,当汽车行驶至十字交通路口时,有3种选择:
向前,向左转弯,向右转弯。
根据我国的交通规则规定,汽车是靠右行驶,向右拐弯只要走弧形的支干道即可,不需受十字交通灯的束缚。
因此,本文主要考虑前行和左转这两种情况。
十字路口交通灯负责控制各走向红绿灯的状态及转换,并且各状态之间有一定的时间过渡。
同时,东西南北每条干道上都为人行横道设置了红绿灯,提醒过路行人在安全时刻穿越道路,以保证行人的安全。
2.1交通灯控制系统的功能及设计
交通灯控制系统主要是实现城市十字交叉路口红绿灯的控制。
在现代化的大城市中,十字交叉路口越来越多,在每个交叉路口都需要使用红绿灯进行交通指挥和管理,红、黄、绿灯的转换要有一个准确的时间间隔和转换顺序,这就需要有一个安全、自动的系统对红、黄、绿灯的转换进行管理,本系统就是基于此目的而开发的。
2.2交通灯控制系统的基本组成模块
城市路口交通信号控制系统大体上分为三种类型:
定周期的信号机、多时段且具有无电缆协调功能的微电脑型信号机以及联网式自适应多相位智能型信号机。
具体采用哪种类型,应根据其应用场合及特点加以确定。
其中,第一种类型以其成本低,设计简单,安装及维护方便等特点得到了广泛应用。
交通灯控制器原理框图如图2.2所示,包括置数模块、计数模块、主控制器模块和译码器模块。
置数模块将交通灯的点亮时间预置到置数电路中,计数模块以秒为单位倒计时,当计数值减为零时,主控电路改变输出状态,电路进入下一个状态的倒计时。
其中,核心部分是主控制模块。
图2.2交通灯控制器原理框图
2.4交通灯控制器状态
2.5程序流程图
图2.3交通灯控制器流程图
三交通灯控制系统的设计
有一条主干道和一条支干道的汇合点形成的十字路口,为确保车辆安全,迅速通行,在干道和支道的入口设置了红、绿(包括直行和左拐)、黄3色信号灯。
3.1交通灯控制器功能描述及设计方法
通过两组交通灯来模拟控制东西、南北两条通道上的车辆通行,所有功能在实验操作平台上进行模拟通过,根据原理其主要功能如下:
图3.1系统结构图
3.2设计要求
1.能显示十字路口东西、南北两个方向的红、黄、绿灯的指示状态,用两组红、黄、绿三色灯作为两个方向的红、黄、绿灯;
2.南北向为主干道,每次通行时间为30S,东西向为支干道,每次通行时间为20S;
3.能实现正常的倒计时功能,用两组数码管作为东西、南北向的倒计时显示。
其中,黄灯:
5S。
4.能实现特殊状态的功能。
按下SP键后,能实现以下特殊功能:
(1)显示倒计时的两组数码管闪烁;
(2)计数器停止计数并保持在原来的状态;
(3)东西、南北路口均显示红灯状态;
(4)特殊状态解除后能继续计数;
5.能实现全清零功能。
按下reset键后,系统实现全清零,计数器由初状态计数,对应状态的指示灯亮;
6.用VHDL语言设计上述功能的交通灯控制器,并用层次化方法设计该电路;
7.仿真、验证设计的正确性。
3.3交通灯系统的程序
libraryieee;
useieee.std_logic_1164.all;
useieee.std_logic_unsigned.all;
entityledcontrolis
port(reset,clk,urgen:
instd_logic;
state:
outstd_logic_vector(1downto0);
sub,set1,set2:
outstd_logic);
endledcontrol;
architectureaofledcontrolis
signalcount:
std_logic_vector(6downto0);
signalsubtemp:
std_logic;
begin
sub<
=subtempand(notclk);
statelabel:
process(reset,clk)
ifreset='
1'
then
count<
="
0000000"
;
state<
00"
elsifclk'
eventandclk='
ifurgen='
0'
thencount<
=count+1;
subtemp<
='
elsesubtemp<
endif;
ifcount=0thenstate<
set1<
set2<
elsifcount=25thenstate<
01"
elsifcount=30thenstate<
10"
elsifcount=45thenstate<
11"
elsifcount=50thencount<
elseset1<
endprocessstatelabel;
enda;
entityledshowis
port(clk,urgen:
instd_logic_vector(1downto0);
r1,g1,y1,r2,g2,y2:
outstd_logic;
led1,led2:
outstd_logic_vector(7downto0));
endledshow;
architectureaofledshowis
signalcount1,count2:
std_logic_vector(7downto0);
signalsetstate1,setstate2:
signaltg1,tg2,tr1,tr2,ty1,ty2:
std_logic;
led1<
11111111"
whenurgen='
andclk='
elsecount1;
led2<
elsecount2;
tg1<
whenstate="
andurgen='
else'
ty1<
tr1<
whenstate
(1)='
orurgen='
tg2<
ty2<
tr2<
setstate1<
="
00100101"
else
"
00000101"
00100000"
setstate2<
00010101"
00110000"
label2:
process(sub)
ifsub'
eventandsub='
ifset2='
count2<
=setstate2;
elsifcount2(3downto0)="
0000"
thencount2<
=count2-7;
elsecount2<
=count2-1;
endif;
g2<
=tg2;
r2<
=tr2;
y2<
=ty2;
endprocesslabel2;
label1:
ifset1='
count1<
=setstate1;
elsifcount1(3downto0)="
thencount1<
=count1-7;
elsecount1<
=count1-1;
g1<
=tg1;
r1<
=tr1;
y1<
=ty1;
endprocesslabel1;
usework.p_alarm.all;
entitydivideris
port(clk_in:
reset:
clk:
enddivider;
architectureartofdivideris
constantdivide_period:
t_short:
=1000;
process(clk_in,reset)is
variablet:
t_short;
begin
if(reset='
)then
t:
=0;
clk<
elsifrising_edge(clk_in)then
if(t<
=(divide_period/2))then
clk<
t:
=t+1;
elsif(t<
(divide_period-1))then
else
endif;
endif;
endprocess;
endart;
p_alarm程序包
packagep_alarmis
subtypet_digitalisintegerrange0to9;
subtypet_shortisintegerrange0to65535;
typet_clock_timeisarray(5downto0)oft_digital;
typet_displayisarray(5downto0)oft_digital;
endpackagep_alarm;
3.4交通灯系统的仿真
在QuartusII软件中导入交通灯控制程序,对此程序编译无错误后,建立Vectorwaveformfile文件保存时仿真文件名要与设计文件名一致。
在其中设计始终开始时间为0,结束时间为5us,周期为50ns。
仿真结果如下:
当reset='
state<
count<
在上升沿到来时执行当count=0则state<
count=25state<
count=30thenstate<
count=45thenstate<
count=50thencount<
,否则set1<
仿真的结果正确。
在QuartusII软件中导入交通灯显示程序,对此程序编译无错误后,建立Vectorwaveformfile文件保存时仿真文件名要与设计文件名一致。
将控制仿真的结果贴到显示仿真中,两次在其中设计的开始时间为0,结束时间为5us,周期为50ns。
仿真结果与程序所要的结果一样。
当state=”00”时g1<
=1;
当state
(1)<
=’0’时r2<
=’1’.
当urgen=‘1’时r1<
=’1’,r2<
=’1’;
仿真结果与程序设计符合。
在QuartusII软件中导入交通灯系统程序,对此程序编译无错误后,建立Vectorwaveformfile文件保存时仿真文件名要与设计文件名一致。
在其中设计开始时间为0,结束时间为5us,周期为50ns。
系统仿真的结果符合设计要求。
与前面仿真的结果也一致。
3.5程序下载
3.5.1引脚配置
在试验箱上选择管脚与程序中的输入输出信号对应,其管脚配置如下:
输入
芯片脚号
输出
Clk
Pin_93
led2[7]
Pin_121
led1[4]
Pin_126
reset
pin_41
led2[6]
Pin_120
led1[3]
Pin_125
urgen
Pin_42
led2[5]
Pin_114
led1[2]
Pin_124
led2[4]
Pin_113
led1[1]
Pin_123
led2[3]
Pin_112
led1[0]
Pin_122
led2[2]
Pin_111
g1
Pin_142
led2[1]
Pin_110
g2
Pin_132
led2[0]
Pin_109
r1
Pin_140
led1[7]
Pin_129
r2
Pin_139
led1[6]
Pin_128
y1
Pin_141
led1[5]
Pin_127
y2
Pin_133
3.5.2编程下载
适配后生成的下载或配置文件通过编程器,对CPLD的下载称为编程(Program)。
点击QuartusII软件中的Program就实行了本次试验的下载。
最后对载入了设计的FPGA或CPLD的硬件系统进行统一测试,以便最终验证设计项目在目标系统上的实际工作情况,以排除错误,改进设计。
在试验箱上按下k2东西红灯和南北红灯都亮。
按下k1即显示时间复位。
当k1、k2不按时交通灯正常即东西红灯亮时南北绿灯亮,且时间相差5秒即为南北黄灯的时间。
当南北红灯亮时,东西绿灯亮,且时间相差4秒即为东西黄灯亮的时间。
四总结
经过了本周的EDA课程设计,我对QuartusII软件在EDA(电子设计自动化)上的应用又有了进一步的了解。
在做本次课程设计的过程中,遇到了很多问题,使我发现自己以前学习上存在的不足。
并加深了对交通灯原理和设计思路的了解。
本设计采用VHDL硬件描述语言文本输入方式,在确立总体预期实现功能的前提下,分层次进行描述,其中所用到的数据均可依现场情况而设置,修改方便灵活。
特殊状态可自行修改和添加,但总的前提是保持状态二(南北东西均为红灯)的优先级最高。
须注意的是,功能四的两模拟频率不能太高,否则将无法实现。
事实上这也与实际情况相符,因为考虑到道路行使中车速受限因素存在。
数字化时代的到来给人们的生活带来了极大的改变,有理由相信随着数字化的深入,交通灯控制器的功能将日趋完善。
而且,VHDL语言对EDA产生的影响也是深远的,它缩短了电子产品的设计周期,为设计者提供了方便。
总之,感谢陈老师的帮助,在陈老师的帮助下使我对EDA技术和QuartusII软件有了更深入的了解,收获很大,同时也让我了解到了自己学习EDA技术的不足之处。
为以后学习EDA技术有了明确的方向。
参考文献
[1]孙加存.电子设计自动化一一[M]XX:
XX电子科技大学,2008.
[2]顾斌.数字电路EDA设计——[M]XX:
XX电子科技大学2007
- 配套讲稿:
如PPT文件的首页显示word图标,表示该PPT已包含配套word讲稿。双击word图标可打开word文档。
- 特殊限制:
部分文档作品中含有的国旗、国徽等图片,仅作为作品整体效果示例展示,禁止商用。设计者仅对作品中独创性部分享有著作权。
- 关 键 词:
- EDA 设计 报告
![提示](https://static.bdocx.com/images/bang_tan.gif)