基于EDA交通灯的设计_第1页
基于EDA交通灯的设计_第2页
基于EDA交通灯的设计_第3页
基于EDA交通灯的设计_第4页
基于EDA交通灯的设计_第5页
已阅读5页,还剩17页未读 继续免费阅读

下载本文档

版权说明:本文档由用户提供并上传,收益归属内容提供方,若内容存在侵权,请进行举报或认领

文档简介

1、设计任务书一、 设计目的1 学习使用集成设计软件Maxplus,了解电路描述、综合、模拟过程。2 掌握使用工具设计数字系统的设计思路和设计方法。3 模仿目前十字路口的控制器,设计交通灯控制器。二、 设计任务 实验目的:学习交通灯控制器的设计、仿真和硬件测试,进一步熟悉VHDL 设计技术。实验要求: 模仿目前十字路口的控制器,其中:东西方向交通灯循环为绿灯(直行和右转)45 秒、黄灯5 秒、左转灯15 秒、黄灯5 秒、红灯40 秒、黄灯5 秒;南北方向交通灯循环为红灯65 秒、黄灯5 秒、绿灯(直行和右转)20 秒、黄灯5 秒、左转灯15 秒、黄灯5 秒。 输入端为:基准时钟(CLK)、复位(C

2、LR);输出端分别为SNGreen、SNRed、SNYellow、SNLeft 和EWGreen、EWRed、EWYellow、EWLeft。实验内容:根据实验要求设计交通灯控制器,并对其进行编辑、编译、综合、仿真,以及给出其所有信号的时序仿真波形。交通灯控制器设计摘要本文主要介绍了运用硬件描述语言(VHDL语言)和原理图输入的方法对交通灯控制器进行设计,并利用集成设计软件Maxplus对其进行编辑、编译、综合和仿真。关键词:交通灯控制器、VHDL语言、Maxplus II、仿真AbstractThis paper introduces the design of the traffic si

3、gnal controller using hardware description language(VHDL language) and schematic method,and use an integrated EDA design software Maxplus to edit, compile, synthesis and simulation.Key words: traffic light controller, VHDL language, Maxplus II, simulation1 设计要求(1)模仿目前十字路口的控制器,其中:东西方向交通灯循环为绿灯(直行和右转)4

4、5 秒、黄灯5 秒、左转灯15 秒、黄灯5 秒、红灯40 秒、黄灯5 秒;南北方向交通灯循环为红灯65 秒、黄灯5 秒、绿灯(直行和右转)20 秒、黄灯5 秒、左转灯15 秒、黄灯5 秒。(2)输入端为:基准时钟(CLK)、复位(CLR);输出端分别为SNGreen、SNRed、SNYellow、SNLeft 和EWGreen、EWRed、EWYellow、EWLeft。2 设计思路根据设计要求,可知所要设计的交通灯的循环周期为115s,交通灯的控制信号状态一共有8种(如表2.1)。故可以设计一115进表2.1交通灯的控制信号状态表SNGreenSNRedSNYellowSNLeftEWGre

5、enEWRedEWYellowEWLeft0-45s0100100045-50s0100001050-65s0100000165-70s0010001070-90s1000010090-95s0010010095-110s00010100110-115s00100010制计数器和一状态控制器,通过时间计数,由时间段跳变来控制交通灯信号(原理图如图2.1)。在设计115进制的计数器过程中,直接用VHDL语言设计遇到了一定的困难,故先设计一128进制计数器(用VHDL语言便于实现),再通过原理图输入法来实现115进制计数器的设计。图2.1交通灯控制器原理图3 设计输入文件3.1 115进制计数器设

6、计输入设计115进制的计数器,可先设计一128进制计数器(当然为了最终实现115进制的计数功能,在VHDL语言编辑中对其进位输出端信号进行了修改,即计数到115便输出进位信号,以便控制复位信号,故称其伪128进制计数器),再通过原理图输入法来实现115进制计数器的设计。3.1.1 伪128进制计数器设计输入VHDL语言设计输入:LIBRARY IEEE;USE IEEE.STD_LOGIC_1164.ALL;USE IEEE.STD_LOGIC_UNSIGNED.ALL;ENTITY CNT7B ISPORT (CLK : IN STD_LOGIC;RST : IN STD_LOGIC;ENA

7、 : IN STD_LOGIC;OUTY : OUT STD_LOGIC_VECTOR(6 DOWNTO 0);COUT : OUT STD_LOGIC );END CNT7B;ARCHITECTURE behav OF CNT7B ISSIGNAL CQI : STD_LOGIC_VECTOR(6 DOWNTO 0); BEGINP_REG: PROCESS(CLK, RST, ENA)BEGINIF RST = 1 THEN CQI = ;ELSIF CLKEVENT AND CLK = 1 THENIF ENA = 1 THEN CQI = CQI + 1;ELSE CQI = ;END

8、 IF;END IF;OUTY = CQI ;END PROCESS P_REG ;COUT = CQI(0) AND CQI(1) AND CQI(4) AND CQI(5) AND CQI(6); -计数到115进位输出END behav;生成的元件符号:图3.1 伪128进制计数器元件符号图3.1.2伪128进制计数器实现115进制计数设计输入原理图输入:图3.2 115进制计数器原理图生成的元件符号:图3.3 115进制计数器元件符号图3.2 状态控制器设计输入VHDL语言设计输入:LIBRARY IEEE;USE IEEE.STD_LOGIC_1164.ALL;USE IEEE.ST

9、D_LOGIC_ARITH.ALL;ENTITY STACON ISPORT(CLR:IN STD_LOGIC; COUNT:IN STD_LOGIC_VECTOR(6 DOWNTO 0); SNGREEN:OUT STD_LOGIC; SNRED:OUT STD_LOGIC; SNYELLOW:OUT STD_LOGIC; SNLEFT:OUT STD_LOGIC;EWGREEN:OUT STD_LOGIC;EWRED:OUT STD_LOGIC; EWYELLOW:OUT STD_LOGIC; EWLEFT:OUT STD_LOGIC);END STACON;ARCHITECTURE fu

10、nc OF STACON ISSIGNAL SNEW:STD_LOGIC_VECTOR(7 DOWNTO 0);BEGINfunc_1:PROCESS(CLR,COUNT)BEGINIF CLR=1 THEN SNEW=; -时间段跳变状态选择ELSIF COUNT THEN SNEW =;ELSIF COUNT THEN SNEW =;ELSIF COUNT THEN SNEW =;ELSIF COUNT THEN SNEW =;ELSIF COUNT THEN SNEW =;ELSIF COUNT THEN SNEW =;ELSIF COUNT THEN SNEW =;ELSIF COUN

11、T THEN SNEW =; END IF;SNGREEN=SNEW(7);SNRED=SNEW(6);SNYELLOW=SNEW(5);SNLEFT=SNEW(4);EWGREEN=SNEW(3);EWRED=SNEW(2);EWYELLOW=SNEW(1);EWLEFTProjectName,显示对话框,选择路径E:maxpluiimax2worktrafficlight输入名字cnt7b,如图4.1,单击OK,即建立了伪128进制计数器设计项目cnt7b。图4.1 4.1.2 文本设计在管理器窗口选择FileNew,显示对话框,选择Text Editor file,如图4.2,单击OK,

12、显示如图4.3。图4.2 图4.3 在文本编译框中输入伪128进制计数器设计VHDL语言(见3.1.1),并保存为cnt7b.vhd。4.1.3 编译文本cnt7b.vhd保存后,单击管理器窗口中工具栏中的,对其进行编译。若出错,返回文本编辑框对其进行修改,直到编译无误为止,如图4.4。图4.4 4.1.4 波形仿真(1)编译无误后,在管理器窗口选择FileNew,显示对话框,选择Waveform Editor File,如图4.5。单击OK,显示如图4.6。图4.5图4.6 (2)然后在管理器窗口选择FileEnd Time,设置仿真的时间范围为180s,如图4.7,在管理器窗口选择Opti

13、onsGrid size,设置最小分辨大小为0.5s,如图4.8。图4.7 图4.8(3)基本设置完成后,在管理器窗口选择NodeEnter Nodes From SNF,显示如图4.9。单击,列出各信号,单击,导出各信号,如图4.10。单击后,显示如图4.11。图4.9图4.10图4.11(4)接着对输入信号RST、ENA、CLK进行波形设置,在设置的过程中可通过View菜单下的各项进行视图调节,设置完后如图4.12,保存为cnt7b.scf。(5)然后单击管理器窗口中工具栏中的,进行仿真,直到无误为止,如图4.13,单击,打开仿真波形图,经视图调整,如图4.14(为突出其功能故显示计数到1

14、15输出进位信号的波形仿真)。图4.12图4.13图生成元件符号仿真无误后,打开cnt7b.vhd文件,再在管理器窗口选择 FileCreate Default Symbol,生成cnt7b.sym。4.2 115进制计数器设计4.2.1 建立项目同4.1.1,在同一目录下,建立115进制计数器设计项目cnt115。4.2.2 原理图设计在管理器窗口选择FileNew,显示对话框,选择Graphic file,如图4.15。单击OK,显示如图4.16。在原理图编译框中输入115进制计数器设计原理图(见3.1.2),并保存为cnt115.gdf。图4.15图

15、编译同4.1.3 ,编译若出错,返回原理图编译器进行修改,直到编译无误为止。4.2.4 波形仿真同4.1.4,同样为突出其功能,显示其计数到114到0的跳转,仿真波形如图4.17。图生成元件符号打开cnt115.vhd文件,再在管理器窗口选择FileCreate Default Symbol,生成cnt115.sym。4.3 状态控制器设计4.3.1 建立项目同4.1.1,在同一目录下,建立状态控制器设计项目stacon。4.3.2 文本设计同4.1.2,在文本编译框中输入状态控制器设计VHDL语言(见3.2),并保存为cnt7b.vhd。4.3.3 编译同4.1.3 ,编译

16、若出错,返回文本编译器进行修改,直到编译无误为止。4.3.4 生成元件符号编译无误后(由于此波形仿真输入COUNT不易编辑,且在最后模拟仿真中会间接对其仿真),打开stacon.vhd文件,再在管理器窗口选择FileCreate Default Symbol,生成stacon.sym。4.4 交通灯控制器设计4.4.1 建立项目同4.1.1,在同一目录下,建立状态控制器设计项目tracon。4.4.2 原理图设计同4.2.2,在原理图编译框中输入1交通灯控制器设计原理图(见3.3),并保存为tracon.gdf。4.4.3 编译同4.1.3 ,编译若出错,返回原理图编译器进行修改,直到编译无误

17、为止。4.4.4 波形仿真同4.1.4,编译无误后,对其进行波形仿真。在此不赘述,在第5部分会有介绍。5模拟仿真与结果5.1 交通灯控制器模拟仿真输入同4.1.4(1)、(2)、(3)、(4),进行波形输入,仿真范围0-1000s,分辨大小0.5s,输入信号CLR(复位信号)和CLK(1Hz信号),如图4.18。图5.1 波形仿真输入5.2 交通灯控制器模拟仿真结果同4.1.4(5),单击,进行仿真编译,仿真结果如图5.2、图5.3、图5.4、图5.5、图5.6、图5.7、图5.8、图5.9、图5.10。图5.2 CLR复位功能仿真图图5.3 循环内0-45s(图中239.5-284.5s)状

18、态仿真图“”图5.4循环内45-50s(途中284.5-289.5s)状态仿真图“”图5.4循环内50-65s(途中289.5-304.5s)状态仿真图“”图5.4循环内45-45s(途中304.5-309.5s)状态仿真图“”图5.4循环内45-45s(途中309.5-329.5s)状态仿真图“”图5.4循环内45-45s(途中329.5-334.5s)状态仿真图“”图5.4循环内45-45s(途中334.5-349.5s)状态仿真图“”图5.4循环内45-45s(途中349.5-354.5s)状态仿真图“”6 结论(1)由模拟仿真结果上可以得出,本设计基本上实现了交通灯控制器的功能,且符合设计要求;(2)从波形仿真图上可以看出

温馨提示

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

评论

0/150

提交评论