EDA交通灯课程设计资料

合集下载
  1. 1、下载文档前请自行甄别文档内容的完整性,平台不提供额外的编辑、内容补充、找答案等附加服务。
  2. 2、"仅部分预览"的文档,不可在线预览部分如存在完整性等问题,可反馈申请退款(可完整预览的文档不适用该条件!)。
  3. 3、如文档侵犯您的权益,请联系客服反馈,我们会尽快为您处理(人工客服工作时间:9:00-18:30)。

《自动化专业综合课程设计2》
课程设计报告
题目:交通灯控制系统的设计
院(系):机电与自动化学院
专业班级:
学生姓名:
学号:
指导教师:
2013年1月 7日至2013年 1 月 23日
华中科技大学武昌分校制
《自动化专业综合课程设计2》课程设计任务书
目录
1设计任务及要求 (6)
1.1设计任务 (6)
1。

2设计要求 (6)
2。

系统设计 (6)
2.1系统原理 (6)
2。

2分频器模块 (7)
2.3计数器模块 (8)
2。

4控制模块 (9)
2.5显示模块 (11)
2.6顶层文件设计 (13)
2.7引脚锁定 (14)
2。

8下载验证 (14)
3。

心得体会 (15)
参考文献 (16)
课程设计成绩评定表 (17)
1设计任务及要求
1。

1设计任务:
模拟十字路口交通信号灯的工作过程,利用实验板上的两组红、黄、绿LED 作为交通信号灯,设计一个交通信号灯控制器.要求:
(1)交通灯从绿变红时,有5秒黄灯亮的间隔时间;
(2)交通灯红变绿是直接进行的,没有间隔时间;
(3)主干道上的绿灯时间为35秒,支干道的绿灯时间为15秒;
(4)在任意时间,显示每个状态到该状态结束所需的时间。

A B C D
主干道交通灯绿(35秒)黄(5秒)红(15秒)红(5秒)
支干道交通灯红红绿黄
图1 交通信号灯的4种状态
1.2设计要求:
1 设计FPGA的基础工作电路
2 设计红绿黄12个灯与FPGA芯片的硬件电路连接
3 设计显示部分硬件电路
4 使用底层及顶层设计完成电路设计,并作出各文件的仿真
5 程序下载并进行硬件调试
6七段数码管的显示可以采用静态显示,但应有锁存部分,保证显示的正确及稳定。

2 系统设计
2.1 系统原理
图2 系统原理图
2.2 分频器模块
在红绿灯交通信号系统中,大多数情况是通过自动控制的方式指挥交通的。

因此为了避免意外事件的发生,电路必须给一个稳定的时钟(clock)才能让系统正常运作.设计的分频器模块如图3所示,
inst
图3 分频模块
说明:模块的名字为ihz,clk为系统给定时钟,clkout为分频后的输出端
程序:
LIBRARY IEEE;
USE IEEE。

STD_LOGIC_1164。

ALL;
USE IEEE。

STD_LOGIC_ARITH.ALL;
USE IEEE.STD_LOGIC_UNSIGNED.ALL;
ENTITY ihz IS
PORT(clk : IN STD_LOGIC;
clkout : OUT STD_LOGIC);
END ;
ARCHITECTURE bhv OF ihz IS
SIGNAL count : STD_LOGIC_VECTOR(3 DOWNTO 0);
BEGIN
PROCESS(clk)
BEGIN
if clk’event and clk=’1’ THEN
IF count=”1111” then
count<=(others=>’0');
ELSE
Count <= count +1;
END IF ;
END IF ;
END PROCESS;
clkout 〈= count(1);
END ;
分频模块仿真:
图4 分频模块仿真结果
2。

3 计数模块
计数电路最主要的功能就是记数负责显示倒数的计数值,对下一个模块提供状态转换信号.模块的名字为jsq,见下图5
系统输入:clkout: 接收由clk电路的提供的1hz的时钟脉冲信号;
rst :复位信号
系统输出信号:counter:60秒计数信号
图5 计数器模块
程序:
IBRARY IEEE;
USE IEEE。

STD_LOGIC_1164.ALL;
ENTITY jsq is
PORT ( clkout,rst:in std_logic;
counter:buffer INTEGER RANGE 0 TO 59);
END;
ARCHITECTURE bhv1 OF jsq IS
BEGIN
process(rst,clkout)
BEGIN
IF rst='1' THEN
counter<=0;
ELSIF clkout’event and clkout=’1’ THEN
IF counter=59 THEN
counter〈=0;
ELSE
counter〈=counter+1;
END IF;
END IF;
END PROCESS;
END;
计数器仿真见下图:
图6 计数器仿真结果
2.4 控制器模块
计数输出之后,把一个计数周期分成4个部分控制,0s-35s 主干道绿灯亮,副干道红灯亮;
34s—39s主干道黄灯闪,副干道红灯亮;
40s—54s主干道红灯亮,副干道绿灯亮;
55s—59s主干道红灯亮,副干道黄灯闪。

图7 控制器模块
程序:
LIBRARY IEEE;
use ieee.std_logic_1164。

all;
entity cpu is
port(
clk,clkout:in std_logic;
counter:in integer range 0 to 59;
r1,r2,b1,b2,y1,y2:out std_logic);end;
architecture bhv2 of cpu is
begin
process(clkout,clk)
begin
if rising_edge(clkout)then
if counter〈35 then
r1〈='1’;
b1〈='0’;
y1<=’0';
r2〈='0';
b2〈=’1';
y2<='0’;
elsif counter<40 then
r1<='1';
b1〈='0’;
y1〈=’0';
r2〈=’0’;
b2〈='0’;
y2〈=('1’AND clkout);
elsif counter〈55 then
r1〈=’0';
b1〈=’1’;
y1〈='0’;
r2〈=’1';
b2<='0';
y2〈=’0’;
elsif counter<60 then
r1<=’0’;
b1<=’0';
y1<=('1'and clkout);
r2<='1';
b2〈='0’;
y2<=’0';
end if;
end if;
end process;
end;
控制器仿真见下图:
图8 控制器仿真结果
2.5 显示模块
在主干道红灯亮(45s—54s)和副干道红灯亮(30s-39s)分别显示10秒倒计时,从9、8、7、6.。

....0。

显示器模块名字为xianshiqi,如图9所示
图9 显示器模块
程序:
LIBRARY IEEE;
use ieee。

std_logic_1164。

all;
entity xianshi is
port(data_in:in std_logic_vector (2 downto 0);
data_out:out std_logic_vector (7 downto 0);
counter:integer range 0 to 59;
led1:out std_logic_vector(7 downto 0)); end;
architecture bhv2 of xianshi is
begin
process(data_in)
begin
case data_in is
when "000"=〉 data_out <= "00000001";
when others =〉data_out 〈= ”XXXXXXXX”;
end case;
end process;
process(counter)
begin
case counter is
when 51 =〉led1<=x”6f";—-09
when 52 => led1〈=x"7f";--08
when 53 => led1<=x"07”;--07
when 54 => led1<=x”7d";-—06
when 55 => led1<=x"6d";--05
when 56 =〉 led1〈=x”66”;—-04
when 57 =〉led1<=x"4f”;——03
when 58 => led1<=x”5b";——02
when 59 => led1<=x"06";-—01
when 31 =〉 led1〈=x"6f";——09
when 32 => led1〈=x”7f";——08
when 33 => led1〈=x"07”;——07
when 34 =〉 led1<=x"7d";--06
when 35 => led1<=x"6d”;-—05
when 36 => led1〈=x”66";—-04
when 37 =〉 led1〈=x"4f";—-03
when 38 =〉 led1〈=x”5b”;—-02
when 39 => led1<=x"06”;--01
when others=> led1<=x"00";
end case;
end process ;
end;
显示模块仿真:
图10 显示模块仿真
2。

6顶层文件设计
分频器,计数器,控制器,显示模块设计出来以后,将他们建立在一个工程里,然后根据设计的原理将元器件连接起来,形成图11的顶层文件.
图11 顶层文件
顶层文件仿真结果见下图:
给定4HZ的 clk 时钟信号,在0—34秒b2和b22主干道的绿灯亮了,r1和r22为支干道红灯亮了;
35—39秒时主干道黄灯y2和y22闪烁,支干道的红灯r1和r22亮;
40—54秒时主干道红灯r2和r22亮,支干道的绿灯b1和b11亮;
55-59秒时主干道红灯r2和r22亮,支干道的黄灯y1和y22闪烁;
在主干道红灯亮(45s—54s)和副干道红灯亮(30s-39s)led七段数码管段显示
10秒倒计时。

综上所述:仿真的结果实现了设计的初衷.
图12 顶层文件仿真
2.7引脚锁定
因为顶层文件的仿真结果到达了设计的要求,所以可以锁定引脚.我们实验室所用的EDA芯片为 EPC3C10E1443C08,查相关的资料可以知道各引脚的位置。

所得的引脚设置见图13
图13 引脚锁定
2.8下载验证
将编译产生的 SOF格式的下载的FPGA中,按照相应的接线要求连接线路后,进行验证。

所得的实验结果与顶层文件的仿真一直,即:
给定4HZ的 clk 时钟信号,12盏灯能够按照系统设计的要求正常运行。

所以交通灯系统是正确的。

3 心得体会
为期三个星期的课程设计转眼就过去了,在这三个星期中。

我重新认识了QUARTUS II软件和EDA芯片。

对大二所学的 EDA课程又重新温习了一遍,特别是VHDL语言的编程,好久没有接触到,遗忘了很多.
看起来很平常的十字路口交通灯,真正要自己去设计,还是有一定的困难的。

里面还涉及到了一定的生活常识,比如主干道的绿灯点亮时间要比支干道的多,而且黄灯的点亮是在绿灯过渡到红灯的时候出现,还有黄灯不是一直亮,是闪烁的,每一个细节都有可能影响整个系统的成败。

一个简单的系统不仅仅需要课本知识,还有许多的生活常识也涉及到了。

本次课程设计不仅让我们将所学的课本知识温故了一遍,并且很好的开阔了一下我们的视野,培养了我们的综合素质。

在编写程序的过程中,遇到了很多问题,使我发现自己以前学习上存在的不足。

通过与同学探讨和请教老师,终于把问题都解决了,并加深了对交通灯原理和设计思路的了解.同时也掌握了做课程设计的一般流程,为以后的设计积累了一定的经验。

做课程设计时,先查阅相关知识,把原理吃透,确定一个大的设计方向,在按照这个方向分模块的把要实现的功能用流程图的形式展示。

最后参照每个模块把输入和输出引脚设定,运用我们所学的VHDL语言进行编程。

总之,通过这次的设计,进一步了解了EDA技术,收获很大,对软件编程、排错调试、相关仪器设备的使用技能等方面得到较全面的锻炼和提高。

在此,感谢给我提供帮助的老师和同学。

参考文献
[1]侯伯享。

VHDL硬件描述语言与数字逻辑电路设计. 西安:西安电子科技大学出版,2010
[2]潘松。

EDA技术实用教程. 成都:电子科技大学出版社,2010
[3]李玉山. 电子系统集成设计技术。

北京:电子工业出版社,2010.6. [4]李国丽.EDA与数字系统设计.北京:机械工业出版社,2009
[5]周彩宝.VHDL语言及其应用。

上海:华东计算机技术研究所:2009 [6] 谭会生.EDA技术中和应用实例与分析。

西安:西安电子科技大学出版社,2008
[7]王冠,黄熙,王鹰。

Verilog HDL与数字电路设计[M].北京:机械工业出版社.2005,9
[8] 谭会生张昌凡。

EDA技术及应用[M].西安:西安电子科技大学出版社,
2004
课程设计成绩评定表。

相关文档
最新文档