ImageVerifierCode 换一换
格式:DOCX , 页数:17 ,大小:94.53KB ,
资源ID:3255727      下载积分:3 金币
快捷下载
登录下载
邮箱/手机:
温馨提示:
快捷下载时,用户名和密码都是您填写的邮箱或者手机号,方便查询和重复下载(系统自动生成)。 如填写123,账号就是123,密码也是123。
特别说明:
请自助下载,系统不会自动发送文件的哦; 如果您已付费,想二次下载,请登录后访问:我的下载记录
支付方式: 支付宝    微信支付   
验证码:   换一换

加入VIP,免费下载
 

温馨提示:由于个人手机设置不同,如果发现不能下载,请复制以下地址【https://www.bdocx.com/down/3255727.html】到电脑端继续下载(重复下载不扣费)。

已注册用户请登录:
账号:
密码:
验证码:   换一换
  忘记密码?
三方登录: 微信登录   QQ登录  

下载须知

1: 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。
2: 试题试卷类文档,如果标题没有明确说明有答案则都视为没有答案,请知晓。
3: 文件的所有权益归上传用户所有。
4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
5. 本站仅提供交流平台,并不能对任何下载内容负责。
6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。

版权提示 | 免责声明

本文(基于VHDL语言的交通灯设计DEA.docx)为本站会员(b****6)主动上传,冰豆网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对上载内容本身不做任何修改或编辑。 若此文所含内容侵犯了您的版权或隐私,请立即通知冰豆网(发送邮件至service@bdocx.com或直接QQ联系客服),我们立即给予删除!

基于VHDL语言的交通灯设计DEA.docx

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

2、要求 采用VHDL语言编写程序,并在QuartusII工具平台中进行开发,下载到EDA实验箱进行验证。 编写设计报告,要求包括方案选择、程序清单、调试过程、测试结果及心得体会。3.设计方案秒脉冲信号发生器计数器状态寄存器次态发生器信号灯输出信号CLK 时间显示数据输出 信号灯输出 图3-1 交通信号灯控制器程序原理框图进程将CLK信号分频后产生1秒信号,然后构成两个带有预置数功能的十进制计数器,并产生允许十位计数器计数的控制信号。状态寄存器实现状态转换和产生状态转换的控制信号,下个模块产生次态信号和信号灯输出信号,以及每一个状态的时间值。经过五个模块的处理,使时间计数、红绿灯显示能够正常运行。

3、程序原理图如图3-1所示。 4.各模块具体设计4.1顶层文件的设计 顶层文件的原理图可以依据系统的框图进行,由控制模块JTD_CTRL、计时模块JTD_TIME、译码驱动模块JTD_LIGHT、显示模块JTD_DIS和分频模块JTD_FQU五部分组成,其顶层原理图文件如图3-1所示。图4-1交通灯顶层文件原理图顶层模块的程序如下:LIBRARY IEEE;USE IEEE.STD_LOGIC_1164.ALL;USE IEEE.STD_LOGIC_ARITH.ALL;USE IEEE.STD_LOGIC_UNSIGNED.ALL;ENTITY TRAFFIC ISPORT( CLK1K,CLR

4、:IN STD_LOGIC; M:IN STD_LOGIC_VECTOR(2 DOWNTO 0); LED:OUT STD_LOGIC_VECTOR(6 DOWNTO 0); SEL:OUT STD_LOGIC_VECTOR(2 DOWNTO 0); ABL:OUT STD_LOGIC_VECTOR(7 DOWNTO 0) );END TRAFFIC;ARCHITECTURE BEHAVE OF TRAFFIC ISCOMPONENT JTD_FQU IS -分频器元件的例化PORT( CLK1K:IN STD_LOGIC; CLK:OUT STD_LOGIC );END COMPONENT;

5、COMPONENT JTD_DIS IS -数码显示的元件例化PORT( CLK1K,CLK,CLR:IN STD_LOGIC; M:IN STD_LOGIC_VECTOR(2 DOWNTO 0); AT,BT:IN STD_LOGIC_VECTOR(7 DOWNTO 0); LED:OUT STD_LOGIC_VECTOR(6 DOWNTO 0); SEL:OUT STD_LOGIC_VECTOR(2 DOWNTO 0) );END COMPONENT;COMPONENT JTD_LIGHT IS -译码驱动的元件例化PORT( CLR:IN STD_LOGIC; M,S:IN STD_LO

6、GIC_VECTOR(2 DOWNTO 0); ABL:OUT STD_LOGIC_VECTOR(7 DOWNTO 0) );END COMPONENT;COMPONENT JTD_TIME IS -计时元件的例化PORT( CLK,CLR:IN STD_LOGIC; M,S:IN STD_LOGIC_VECTOR(2 DOWNTO 0); AT,BT:OUT STD_LOGIC_VECTOR(7 DOWNTO 0) );END COMPONENT;COMPONENT JTD_CTRL IS -控制模块的元件例化PORT( CLK,CLR:IN STD_LOGIC; AT,BT:IN STD_

7、LOGIC_VECTOR(7 DOWNTO 0); M:IN STD_LOGIC_VECTOR(2 DOWNTO 0); S:OUT STD_LOGIC_VECTOR(2 DOWNTO 0) );END COMPONENT;SIGNAL CLK:STD_LOGIC;SIGNAL AT:STD_LOGIC_VECTOR(7 DOWNTO 0);SIGNAL BT:STD_LOGIC_VECTOR(7 DOWNTO 0);SIGNAL S:STD_LOGIC_VECTOR(2 DOWNTO 0);BEGIN U1:JTD_FQU PORT MAP( -名字关联方式赋值 CLK1K=CLK1K, C

8、LK=CLK );U2:JTD_TIME PORT MAP( CLR=CLR, AT=AT, BT=BT, CLK=CLK, M=M, S=S );U3:JTD_CTRL PORT MAP( M=M, S=S, CLK=CLK, CLR=CLR, AT=AT, BT=BT );U4:JTD_DIS PORT MAP( CLK1K=CLK1K, CLK=CLK, CLR=CLR, AT=AT, BT=BT, LED=LED, SEL=SEL, M=M );U5:JTD_LIGHT PORT MAP( CLR=CLR, S=S, ABL=ABL, M=M );END BEHAVE;4.2 控制模块

9、JTD_CTRL的设计 控制的模块根据外部输入信号M2M0和计时模块JTD_TIME的输入信号,产生系统的状态机,控制其他部分协调工作。控制模块的源文件程序如下:LIBRARY IEEE;USE IEEE.STD_LOGIC_1164.ALL;USE IEEE.STD_LOGIC_UNSIGNED.ALL;ENTITY JTD_CTRL ISPORT( CLK,CLR:IN STD_LOGIC; M:IN STD_LOGIC_VECTOR(2 DOWNTO 0); -用M来表示系统的8种工作状态 AT,BT:IN STD_LOGIC_VECTOR(7 DOWNTO 0); S:OUT STD_

10、LOGIC_VECTOR(2 DOWNTO 0) ); END JTD_CTRL; ARCHITECTURE JTD_1 OF JTD_CTRL IS SIGNAL Q:STD_LOGIC_VECTOR(2 DOWNTO 0); BEGIN PROCESS(CLR,CLK,M,AT,BT) BEGIN IF CLR=1THEN Q=000; -清0处理 ELSIF(CLKEVENT AND CLK=1)THEN -时钟上升沿信号一来,M控制系统的8种状态 IF M=000THEN Q=001; END IF; IF M=001THEN Q=011; END IF; IF M=010THEN Q

11、=101; END IF; IF M=011THEN Q=100THEN IF(AT=X01)OR(BT=X01)THEN Q=Q+1; ELSE Q=Q; END IF; END IF; END IF; END PROCESS; S=Q; -M的控制端转向控制口S END JTD_1;该模块的时序仿真和功能仿真波形图如图4-2图4-2功能仿真4.3 计时模块JTD_TIME的设计计时模块用来设定A和B两个方向计时器的初值,并为显示模块JTD_DIS提供倒计时时间。当正常计时开始后,需要进行定时计数操作,由于东西和南北两个方向上的时间显示器是由两个LED七段显示数码管组成的,因此需要产生两个2

12、位的计时信息:2个十位信号,2个个位信号,这个定时计数操作可以由一个定时计数器来完成,又因为交通灯的状态变化是在计时为0的情况下才能进行的,因此需要一个计时电路来产生使能信号,因此定时计数的功能就是用来产生2个2位计时信息和使能信号。计时模块的源文件程序如下:LIBRARY IEEE;USE IEEE.STD_LOGIC_1164.ALL;USE IEEE.STD_LOGIC_UNSIGNED.ALL;ENTITY JTD_TIME ISPORT( CLK,CLR:IN STD_LOGIC; M,S:IN STD_LOGIC_VECTOR(2 DOWNTO 0); AT,BT:OUT STD_

13、LOGIC_VECTOR(7 DOWNTO 0) );END JTD_TIME;ARCHITECTURE JTD_2 OF JTD_TIME IS SIGNAL AT1,BT1:STD_LOGIC_VECTOR(7 DOWNTO 0);SIGNAL ART,AGT,ALT,ABYT:STD_LOGIC_VECTOR(7 DOWNTO 0); SIGNAL BRT,BGT,BLT:STD_LOGIC_VECTOR(7 DOWNTO 0);BEGIN ART=X55; -ART=“01010101” A方向红灯亮 AGT=X40; -AGT=“01000000”A方向绿灯亮 ALT=X15; -A

14、LT=“00010101”灯间歇闪烁 ABYT=X05;-ABYT=“00000101”AB两方向黄灯亮 BRT=X65;-BRT=“01100101”B方向红灯亮 BGT=X30;-BGT=“00110000”B方向绿灯亮 BLT=X15;-BLT=“00010101”B方向灯闪烁 PROCESS(CLR,CLK,M,S) BEGIN IF CLR=1THEN AT1=X01;BT1=X01; ELSIF (CLKEVENT AND CLK=1)THEN IF M=000THEN AT1=X01;BT1=X51;-M=0时,A方向的计时器计时,B方向的红灯亮 END IF; IF M=001THEN AT1=X01;BT1=X06;-M=1时,A方向的计时器计时,B方向绿灯亮 END IF; IF M=010THEN AT1=X41;BT1=X01;-B方向的计时器计时,A方向的黄灯亮 END IF; IF M=011THEN AT1=X06;BT1=X01;

copyright@ 2008-2022 冰豆网网站版权所有

经营许可证编号:鄂ICP备2022015515号-1