eda交通灯课程设计

上传人:无*** 文档编号:172182084 上传时间:2022-12-01 格式:DOC 页数:31 大小:226KB
收藏 版权申诉 举报 下载
eda交通灯课程设计_第1页
第1页 / 共31页
eda交通灯课程设计_第2页
第2页 / 共31页
eda交通灯课程设计_第3页
第3页 / 共31页
资源描述:

《eda交通灯课程设计》由会员分享,可在线阅读,更多相关《eda交通灯课程设计(31页珍藏版)》请在装配图网上搜索。

1、湖南工程学院课 程 设 计课程名称 嵌入式系统 课题名称 十字路口的交通信号灯的控制电路设计 专 业 电子信息工程 班 级 电子信息0703 学 号 9 姓 名 李 海 指导教师 贺 攀 峰 2010年 12月 20日湖南工程学院课 程 设 计 任 务 书课程名称: 嵌入式系统 题 目:十字路口的交通信号灯的控制电路设计专业班级: 电信0703班 学生姓名: 李海 指导老师: 贺攀峰审 批: 任务书下达日期 2010 年12 月 20日设 计 完成日期 2010 年 12月 31日 设计内容与设计要求CPLD为复杂可编程逻辑器件,通过EDA技术对其进行编程,可将一个较复杂的数字系统集成于一个芯

2、片中,制成专用集成电路芯片,并可随时在系统修改其逻辑功能。有关知识可参见相关教材或参考书。一设计内容1. 设计制作一块十字路口的交通信号灯的控制电路的专用芯片。2. A方向和B方向各设置红(R)、黄(Y)、绿(G)三盏灯,三盏灯按合理的顺序亮灭,并能将灯亮的时间以倒计时的方式显示出来。3. 两个方向各灯的时间可方便地进行设置和修改。假设A方向为主干道,车流量大,A方向通行时间比B方向长。设A方向每次至少通行t1秒,B方向每次至多通行t2秒,黄灯亮t秒。二、设计要求:1、 设计思路清晰,给出整体设计框图;2、 在QUARTUS中设计各单元电路,完成其功能仿真和编译并生成低层模块;3、 在QUAR

3、TUS中完成顶层设计并编译通过;4、 在QUARTUS中完成设计下载并调试电路;5、写出设计报告;主要设计条件1. 提供EDA实验室;2. 提供EL实验箱和CPLD芯片;3. 提供ALTERA公司的QUARTUS II设计软件说明书格式1. 课程设计封面;2. 任务书;3. 说明书目录;4. 设计总体思路,基本原理和框图(顶层电路图);5. 单元电路设计(各次级模块电路图);6. 设计仿真;7. 编程下载;8. 总结与体会;9. 附录;10. 参考文献。进度安排星期一、二:下达设计任务书,介绍课题内容与要求;介绍QUARTUS软件的使用;查找资料,确定总体设计方案和单元电路设计;星期三第二周星

4、期一:单元电路设计与仿真,硬件下载;第二周星期二、三:硬件下载;第二星期四、五:书写设计报告,打印相关图纸;答辩参考文献1. 康华光主编.电子技术基础(数字部分),高等教育出版社。2. 阎石主编. 电子技术基础(数字部分),清华大学出版社。3. 陈大钦主编,电子技术基础实验,高等教育出版社。4. 彭介华主编,电子技术课程设计指导,高等教育出版社。5. 张 原编著,可编程逻辑器件设计及应用,机械工业出版社。6.荀殿栋,徐志军编著,数字电路设计实用手册,电子工业出版社。7. QUARTUS入门8.刘洪喜,陆颖编著. VHDL电路设计实用教程 清华大学出版社 目 录1 .总体设计11.1 设计总体思

5、路11.2 总体框图22.单元电路设计22.1 控制模块22.2计数模块52.2.1 25进制递减计数器的VHDL源文件62.2.2 3进制递减计数器的VHDL源文件82.2.3 35进制递减计数器的VHDL源文件102.2.4 30进制递减计数器的VHDL源文件122.2.5 45进制递减计数器的VHDL源文件142.3 显示模块163. 总电路设计203.1 仿真结果203.2 仿真结果分析214.总结与体会225.参考文献231 .总体设计1.1 设计总体思路用FPGA为核心器件,用VHDL为设计手段设计制作一个十字路口交通管理器。该管理器控制甲、乙两道(乙道为主干道)的左转灯、直行灯和

6、等待黄灯,用以指挥车辆有序安全通过。交通管理器示意图如图所示: 图1-1 交通管理示意图图中R1、G1、 Y1分别表示甲道左转、直行、等待灯(灭表示通行,亮表示禁止);R2、Y2、G2分别表示乙道左转、直行、等待灯(灭表示通行,亮表示禁止)。定时器分别确定甲道和乙道左转及直行的通行时间和等待黄灯亮的时间。具体设计要求如下:用四位数码显示器分别显示甲乙两道左转、直行、等待时间(每边两位);其计时间隔为1S。交通灯控制器工作流程如下:甲道左转通行(甲道直行禁止,乙道全禁止)25S等待(甲黄灯亮)3S甲道直行通行(甲道左转禁止,乙道全禁止)35S-等待(甲黄灯亮)3S乙道左转通行(乙道直行禁止,甲道

7、全禁止)30S等待(乙黄灯亮)3S乙道直行通行(乙道左转禁止,甲道全禁止)45S-等待(乙黄灯亮)3S重复因此,我设置7个状态,用w0到w4控制状态的转换。c1到c5、b1到b5控制计数器计数。同时,c1到c5控制数码管显示方式。1.2 总体框图交通灯控 制模 块计 数模 块显示模 块 图1-2 总体框图2.单元电路设计2.1 控制模块控制模块是整个模块的核心。控制着各种状态之间的转换,从而实现设计要求实现的功能。控制模块的VHDL源文件如下: LIBRARY IEEE;USE IEEE.STD_LOGIC_1164.ALL;ENTITY jiaotong ISPORT(clk :IN STD

8、_LOGIC;c1,c2,c3,c4,c5,b1,b2,b3,b4,b5:OUT STD_LOGIC;w0,w1,w2,w3,w4 :IN STD_LOGIC; R1,R2 :OUT STD_LOGIC;Y1,Y2 :OUT STD_LOGIC;G1,G2 :OUT STD_LOGIC;reset :IN STD_LOGIC);END jiaotong;ARCHITECTURE a OF jiaotong ISTYPE STATE_SPACE IS(S0,S1,S2,S3,s4,s5,s6,s7);SIGNAL state:STATE_SPACE;BEGINPROCESS(clk)BEGINI

9、F (reset=1) THENstate IF (w0=1) THEN state=s1;-25s END IF; b1=0;IF(w0=0) THEN b1IF (w1=1)THEN state=s2;-3s END IF;b2=0;IF (w1=0) THEN b2IF (w2=1)THEN state=s3;-35s END IF;b3=0;IF (w2=0) THEN b3IF (w1=1)THEN state=s4;-3sEND IF;b2=0;IF (w1=0) THEN b2IF (w3=1)THEN state=s5;-30s END IF;b4=0;IF (w3=0) TH

10、EN b4IF w1=1THEN state=s6;-3s END IF;b2=0;IF (w1=0) THEN b2IF (w4=1)THEN state=s7;-45s END IF; b5=0;IF (w4=0) THEN b5IF (w1=1)THEN state=s0;-3s END IF; b2=0;IF (w1=0) THEN b2=1;END IF; END CASE; END IF; END PROCESS;c1=1 when state=s0 else 0;c2=1 when state=s1 or state=s3 or state=s5 or state=s7 else

11、 0;c3=1 when state=s2 else 0;c4=1 when state=s4 else 0;c5=1 when state=s6 else 0;R1=0 when state=s0 else 1;G1=0 when state=s2 else1;Y1=0 when state=s1 or state=s3 else1;R2=0 when state=s4 else 1;G2=0 when state=s6 else 1;Y2=0 when state=s5 or state=s7 else 1;END a;2.2计数模块 计数模块主要是为实现各种状态的计数时间。这里需要的计数

12、器的计数范围为0-80。计到80后,下一个时钟沿回复到0,开始下一轮计数。此外,当检测到特殊情况(EMI =1)发生是,计数器暂停计数,而系统复位信号RESET则使计数器异步清零。图2.1计数器模块2.2.1 25进制递减计数器的VHDL源文件library ieee;use ieee.std_logic_1164.all;use ieee.std_logic_unsigned.all;ENTITY jcnt20 ISPORT(clk: INSTD_LOGIC;cr: IN STD_LOGIC;EN1: INSTD_LOGIC;J0 : OUTSTD_LOGIC;q1: OUT STD_LOG

13、IC_VECTOR (3 DOWNTO 0); y10: OUT STD_LOGIC_VECTOR (3 DOWNTO 0) );END jcnt20;ARCHITECTURE a OF jcnt25 ISSIGNALbcd1n: STD_LOGIC_VECTOR (3 DOWNTO 0); SIGNALvcd10n: STD_LOGIC_VECTOR (3 DOWNTO 0);BEGINPROCESS (clk,cr)BEGINIF (cr = 0) THENbcd1n = 0000;ELSIF (EN1=1) THEN IF (clkEVENT AND clk = 1) THENIF (b

14、cd1n=0 and vcd10n/=0) THEN bcd1n=1001; ELSif (bcd1n=0 and vcd10n=0) THENbcd1n = 0000;ELSEbcd1n = bcd1n-1;END IF; END IF; END IF; END PROCESS;q1 = bcd1n; y10 = vcd10n;PROCESS (clk, cr)BEGINIF (cr = 0) THENvcd10n = 0010;ELSIF (EN1=1) THEN IF(clkEVENT AND clk = 1) THENIF (bcd1n=0) THEN IF (vcd10n=0) TH

15、EN vcd10n=0000; ELSE vcd10n = vcd10n-1; END IF; END IF;END IF;END IF;END PROCESS;PROCESS(bcd1n,vcd10n) BEGIN J0=0; if (bcd1n=0 and vcd10n=0) THENJ0=1;END IF;END PROCESS;end a;2.2.2 3进制递减计数器的VHDL源文件library ieee;use ieee.std_logic_1164.all;use ieee.std_logic_unsigned.all;ENTITY jcnt3 ISPORT(clk: INSTD

16、_LOGIC;cr: INSTD_LOGIC;EN2: INSTD_LOGIC;J1 : OUTSTD_LOGIC;q1: OUT STD_LOGIC_VECTOR (3 DOWNTO 0); END jcnt3;ARCHITECTURE a OF jcnt3 ISSIGNALbcd1n: STD_LOGIC_VECTOR (3 DOWNTO 0); BEGINPROCESS (clk,cr)BEGINIF (cr = 0) THENbcd1n = 0011; ELSIF (EN2=1) THEN IF (clkEVENT AND clk = 1) THENIF (bcd1n=0 ) THEN

17、bcd1n = 0000;ELSEbcd1n = bcd1n-1;END IF; END IF; END IF; END PROCESS;q1 = bcd1n; PROCESS(bcd1n) BEGIN J1=0; if (bcd1n=0 ) THENJ1=1;END IF;END PROCESS;end a;2.2.3 35进制递减计数器的VHDL源文件 library ieee;use ieee.std_logic_1164.all;use ieee.std_logic_unsigned.all;ENTITY jcnt35 ISPORT(clk: INSTD_LOGIC;cr: INSTD

18、_LOGIC;EN3: INSTD_LOGIC;J2 : OUTSTD_LOGIC;q1: OUT STD_LOGIC_VECTOR (3 DOWNTO 0); y10: OUT STD_LOGIC_VECTOR (3 DOWNTO 0) );END jcnt35;ARCHITECTURE a OF jcnt35 ISSIGNALbcd1n: STD_LOGIC_VECTOR (3 DOWNTO 0); SIGNALvcd10n: STD_LOGIC_VECTOR (3 DOWNTO 0);BEGINPROCESS (clk,cr)BEGINIF (cr = 0) THENbcd1n = 01

19、01; -J1=1; ELSIF (EN3=1) THEN IF (clkEVENT AND clk = 1) THENIF (bcd1n=0 and vcd10n/=0) THEN bcd1n=1001; ELSif (bcd1n=0 and vcd10n=0) THENbcd1n = 0000;ELSEbcd1n = bcd1n-1;END IF; END IF; END IF; END PROCESS;q1 = bcd1n; y10=vcd10n;PROCESS (clk, cr)BEGINIF (cr = 0) THENvcd10n = 0011;-J1=1;ELSIF (EN3=1)

20、 THEN IF(clkEVENT AND clk = 1) THENIF (bcd1n=0) THEN IF (vcd10n=0) THEN vcd10n=0000; ELSE vcd10n = vcd10n - 1; END IF; END IF;END IF;END IF;END PROCESS;PROCESS(bcd1n,vcd10n) BEGIN J2=0; if (bcd1n=0 and vcd10n=0) THENJ2=1;END IF;END PROCESS;end a;2.2.4 30进制递减计数器的VHDL源文件library ieee;use ieee.std_logic

21、_1164.all;use ieee.std_logic_unsigned.all;ENTITY jcnt30 ISPORT(clk: INSTD_LOGIC;cr: INSTD_LOGIC;EN4: INSTD_LOGIC;J3 : OUTSTD_LOGIC;q1: OUT STD_LOGIC_VECTOR (3 DOWNTO 0); y10: OUT STD_LOGIC_VECTOR (3 DOWNTO 0) );END jcnt30;ARCHITECTURE a OF jcnt30 ISSIGNALbcd1n: STD_LOGIC_VECTOR (3 DOWNTO 0); SIGNALv

22、cd10n: STD_LOGIC_VECTOR (3 DOWNTO 0);BEGINPROCESS (clk,cr)BEGINIF (cr = 0) THENbcd1n = 0000; -J1=1; ELSIF (EN4=1) THEN IF (clkEVENT AND clk = 1) THENIF (bcd1n=0 and vcd10n/=0) THEN bcd1n=1001; ELSif (bcd1n=0 and vcd10n=0) THENbcd1n = 0000;ELSEbcd1n = bcd1n-1;END IF; END IF; END IF; END PROCESS;q1 =

23、bcd1n; y10=vcd10n;PROCESS (clk, cr)BEGINIF (cr = 0) THENvcd10n = 0011;-J1=1;ELSIF (EN4=1) THEN IF(clkEVENT AND clk = 1) THENIF (bcd1n=0) THEN IF (vcd10n=0) THEN vcd10n=0000; ELSE vcd10n = vcd10n - 1; END IF; END IF;END IF;END IF;END PROCESS;PROCESS(bcd1n,vcd10n) BEGIN J3=0; if (bcd1n=0 and vcd10n=0)

24、 THENJ3=1;END IF;END PROCESS;end a;2.2.5 45进制递减计数器的VHDL源文件library ieee;use ieee.std_logic_1164.all;use ieee.std_logic_unsigned.all;ENTITY jcnt45 ISPORT(clk: INSTD_LOGIC;cr: INSTD_LOGIC;EN5: INSTD_LOGIC;J4 : OUTSTD_LOGIC;q1: OUT STD_LOGIC_VECTOR (3 DOWNTO 0); y10: OUT STD_LOGIC_VECTOR (3 DOWNTO 0) );

25、END jcnt45;ARCHITECTURE a OF jcnt45 ISSIGNALbcd1n: STD_LOGIC_VECTOR (3 DOWNTO 0); SIGNALvcd10n: STD_LOGIC_VECTOR (3 DOWNTO 0);BEGINPROCESS (clk,cr)BEGINIF (cr = 0) THENbcd1n = 0101; ELSIF (EN5=1) THEN IF (clkEVENT AND clk = 1) THENIF (bcd1n=0 and vcd10n/=0) THEN bcd1n=1001; ELSif (bcd1n=0 and vcd10n

26、=0) THENbcd1n = 0000;ELSEbcd1n = bcd1n-1;END IF; END IF; END IF; END PROCESS;q1 = bcd1n; y10=vcd10n;PROCESS (clk, cr)BEGINIF (cr = 0) THENvcd10n = 0100;ELSIF (EN5=1) THEN IF(clkEVENT AND clk = 1) THENIF (bcd1n=0) THEN IF (vcd10n=0) THEN vcd10n=0000; ELSE vcd10n = vcd10n - 1; END IF; END IF;END IF;EN

27、D IF;END PROCESS;PROCESS(bcd1n,vcd10n) BEGIN J4=0; if (bcd1n=0 and vcd10n=0) THEN J4=1;END IF;END PROCESS;end a;2.3 显示模块显示模块是把计数模块传过来的数字转变成对应的十进制数显示出来。显示模块的VHDL源文件如下:LIBRARY IEEE;USE IEEE.STD_LOGIC_1164.ALL;USE IEEE.STD_LOGIC_UNSIGNED.ALL;ENTITY sm1 IS PORT ( b1,b2,b3,b4,b5:IN STD_LOGIC; Q0:IN STD_L

28、OGIC_VECTOR(3 DOWNTO 0); Q1:IN STD_LOGIC_VECTOR(3 DOWNTO 0); Q2:IN STD_LOGIC_VECTOR(3 DOWNTO 0); Q3:IN STD_LOGIC_VECTOR(3 DOWNTO 0); Q4:IN STD_LOGIC_VECTOR(3 DOWNTO 0); Q5:IN STD_LOGIC_VECTOR(3 DOWNTO 0); Q6:IN STD_LOGIC_VECTOR(3 DOWNTO 0); Q7:IN STD_LOGIC_VECTOR(3 DOWNTO 0); Q8:IN STD_LOGIC_VECTOR(

29、3 DOWNTO 0); CLK : IN STD_LOGIC; SG : OUT STD_LOGIC_VECTOR(6 DOWNTO 0); -段控制信号输出 BT: OUT STD_LOGIC_VECTOR(7 DOWNTO 0) );-位控制信号输出 END;ARCHITECTURE one OF sm1 IS SIGNAL CN : integer range 0 to 4; SIGNAL CNT2 : STD_LOGIC_VECTOR(1 DOWNTO 0); SIGNAL A : STD_LOGIC_VECTOR(3 DOWNTO 0); BEGINP1:PROCESS(CN) B

30、EGIN IF (b1=1) THEN CN=0;END IF; IF (b2=1) THEN CN=1;END IF; IF (b3=1) THEN CN=2;END IF; IF (b4=1) THEN CN=3;END IF; IF (b5=1) THEN CN CASE CNT2 IS WHEN 00 =BT = ; ABT = ; A NULL ; END CASE; WHEN 1= BT = ; A CASE CNT2 IS WHEN 00 =BT = ; ABT = ; A NULL ; END CASE; WHEN 3= CASE CNT2 IS WHEN 00 =BT = ;

31、 ABT = ; A NULL ; END CASE; WHEN 4= CASE CNT2 IS WHEN 00 =BT = ; ABT = ; A NULL ; END CASE; WHEN OTHERS = NULL ; END CASE ; END PROCESS P1; P2:PROCESS( A ) BEGIN CASE A IS WHEN 0000 = SG SG SG SG SG SG SG SG SG SG NULL ; END CASE ; END PROCESS P2; P3:PROCESS(CLK) BEGIN IF (clkEVENT AND clk = 1) THEN

32、 CNT2=CNT2+1;END IF;END PROCESS P3; END; 3. 总电路设计3.1 仿真结果总电路作为顶层模块,将计数模块、控制模块和显示模块(sm1)连接起来,加入输入输出,构成顶层文件。电路图如下:图3-1 总体电路图仿真波形如下:图3-2 电路总体仿真如图3-1和图3-2所示,在clk端输入2ns的信号,在clk1端输入1ns的扫描频率,在reset端输入按钮低电平信号,仿真得到图3-2波形,计时器开始计时,指示灯轮流变换。3.2 仿真结果分析通过设定clk值以及start和EMI的初值,就可以得到如上所示的仿真波形图。由仿真波形图可以看出波形是由start初值信号

33、触发而显示出各个状态的。EMI高电平信号输入时,所有交通灯都变为红灯状态(符合任务书的要求)。由仿真波形图还可以清楚的看出各时间段每个交通灯的状态。要得到正确的仿真波形图就不许设定合适的时间信号clk值。如果clk值设置的太小则交通灯状态变化得太快无法分辨,如果clk值设置得太大则交通灯状态转换缓慢,效果不明显。其次,要设定start初值,如果没有设定start初值就不可能触发而得到仿真图。最后,就是要设置一EMI高电平信号来检测紧急情况下的交通灯的状态。4.总结与体会经过这两周EDA课程设计以后,我发现我们在课本里学到的知识是很少的,若想学到很多的知识必须自己去查阅大量的书籍。虽然这次课程设

34、计中我们要用到自己以前熟悉的软件,但是时间较久,自己必须重新了解和学习软件的用法。这次课程设计的目的,就是用所学的知识设计一个实用的系统,熟悉QUARTUS II软件使用,提高EDA技术的实际应用能力。它培养学生综合运用所学知识 ,锻炼实践能力的重要环节,是对学生实际工作能力的具体训练和考察过程。 通过这次课程设计,不仅让我了解怎么去设计程序,更重要的还让我学会了怎么样和别人合作。课程设计虽然很难做,其实最重要的是你去不去做的问题,再难做的事情只要你努力了就会有结果,开始,我没有查找资料,对软件也不熟悉,也没有和同学一起讨论。而是一下子就开始去设计,单打独斗。每一天自己打开软件弄个半天,然而总

35、是得不出想要的结果,也不知道接下来要干什么。后来,和同学一起讨论,找资料。终于我自己的思路也慢慢清晰了。最后经过不断努力,终于完成了任务,也许做得不是很完美,但我觉得经过这两周,我得到了很大的收获。5.参考文献1. 康华光主编.电子技术基础(数字部分),高等教育出版社。2. 阎石主编. 电子技术基础(数字部分),清华大学出版社。3. 陈大钦主编,电子技术基础实验,高等教育出版社。4. 彭介华主编,电子技术课程设计指导,高等教育出版社。5. 张 原编著,可编程逻辑器件设计及应用,机械工业出版社。 6.荀殿栋,徐志军编著,数字电路设计实用手册,电子工业出版社。7. QUARTUS入门8.刘洪喜,陆颖编著. VHDL电路设计实用教程 清华大学出版社电气与信息工程系课程设计评分表项 目评 价设计方案的合理性与创造性硬件制作或软件编程完成情况*硬件制作测试或软件调试结果*设计说明书质量设计图纸质量答辩汇报的条理性和独特见解答辩中对所提问题的回答情况完成任务情况独立工作能力组织纪律性(出勤率)综合评分 指导教师签名:_ 日 期:_ 注:表中标*号项目是硬件制作或软件编程类课题必填内容; 此表装订在课程设计说明书的最后一页。课程设计说明书装订顺序:封面、任务书、目录、正文、评分表、附件(非16K大小的图纸及程序清单)。

展开阅读全文
温馨提示:
1: 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。图纸软件为CAD,CAXA,PROE,UG,SolidWorks等.压缩文件请下载最新的WinRAR软件解压。
2: 本站的文档不包含任何第三方提供的附件图纸等,如果需要附件,请联系上传者。文件的所有权益归上传用户所有。
3.本站RAR压缩包中若带图纸,网页内容里面会有图纸预览,若没有图纸预览就没有图纸。
4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
5. 装配图网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对用户上传分享的文档内容本身不做任何修改或编辑,并不能对任何下载内容负责。
6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。
关于我们 - 网站声明 - 网站地图 - 资源地图 - 友情链接 - 网站客服 - 联系我们

copyright@ 2023-2025  zhuangpeitu.com 装配图网版权所有   联系电话:18123376007

备案号:ICP2024067431-1 川公网安备51140202000466号


本站为文档C2C交易模式,即用户上传的文档直接被用户下载,本站只是中间服务平台,本站所有文档下载所得的收益归上传人(含作者)所有。装配图网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对上载内容本身不做任何修改或编辑。若文档所含内容侵犯了您的版权或隐私,请立即通知装配图网,我们立即给予删除!