收藏 分销(赏)

EDA交通灯实验报告.doc

上传人:a199****6536 文档编号:3157588 上传时间:2024-06-21 格式:DOC 页数:9 大小:299.50KB 下载积分:6 金币
下载 相关 举报
EDA交通灯实验报告.doc_第1页
第1页 / 共9页
EDA交通灯实验报告.doc_第2页
第2页 / 共9页


点击查看更多>>
资源描述
EDA实验报告 题 目: 交通灯设计 学 院: 电子工程学院 专 业: 电子信息工程 作 者: 王正帅 14020120007 导 师: 孙万蓉 EDA实验报告:交通灯设计 一、设计任务及要求: 设计任务:模拟十字路口交通信号灯的工作过程,利用实验板上的两组红、黄、绿LED作为交通信号灯,设计一个交通信号灯控制器。要求: (1) 交通灯从绿变红时,有5秒黄灯亮的间隔时间; (2) 交通灯红变绿是直接进行的,没有间隔时间; (3) 东西主干道上的绿灯时间为25秒,南北支干道的绿灯时间为25秒; (4) 在任意时间,显示每个状态到该状态结束所需的时间。 路口示意图如下: 图 1 路口交通示意图 表1 交通信号灯的4种状态 A B C 东西主干道交通灯 绿(25秒) 黄(5秒) 红(30秒) 南北支干道交通灯 红(30秒) 黄(5秒) 绿(25秒) 设计要求: (1) 采用VHDL语言编写程序,并在QuartusII工具平台中进行仿真,下载到EDA实验箱进行验证。 (2) 编写设计报告,要求包括方案选择、程序清单、调试过程及测试结果。 二、设计原理 1、设计目的: 学习DEA开发软件和QuartusII的使用方法,熟悉可编程逻辑器件的使用。通过制作来了解交通灯控制系统,交通灯控制系统主要是实现城市十字交叉路口红绿灯的控制 2、设计说明 (1)第一模块:clk时钟秒脉冲发生电路 在红绿灯交通信号系统中,大多数情况是通过自动控制的方式指挥交通的。因此为了避免意外事件的发生,电路必须给一个稳定的时钟(clock)才能让系统正常运作。 模块说明: 系统输入信号: Clk: 由外接信号发生器提供50MHz的时钟信号; 系统输出信号: full:产生每秒一个脉冲的信号; (2)第二模块:计数秒数选择电路 计数电路最主要的功能就是记数负责显示倒数的计数值,对下一个模块提供状态转换信号。 模块说明: 系统输入:full: 接收由clk电路的提供的1HZ的时钟脉冲信号; 系统输出信号: tm: 产生显示电路状态转换信号 tl:倒计数值 秒数个位变化控制信号 th:倒计数值 秒数十位变化控制信号 (3)第三模块:红绿灯状态转换电路 本电路负责红绿灯的转换。 模块说明: 系统输入信号:full: 接收由clk电路的提供的1Hz的时钟脉冲信号; tm: 接收计数秒数选择电路状态转换信号; 系统输出信号: comb_out: 负责红绿灯的状态显示。 (4)第四模块:时间显示电路 本电路负责红绿灯的计数时间的显示。 模块说明: 系统输入信号:tl:倒计数值 秒数个位变化控制信号; th:倒计数值 秒数十位变化控制信号; 系统输出信号: led7s1: 负责红绿灯的显示秒数个位。 led7s2: 负责红绿灯的显示秒数十位。 三、 设计方案 定时时间到检测电路 计时器 预置数产生电路 状态发生器(两位二进制计数器) 时间显示数据输出 红黄绿灯输出 控制电路(RYG) 红黄绿灯信号输出 1秒时钟脉冲信号发生器 图2 交通信号灯控制器的原理框图 采用VHDL语言输入的方式实现交通信号灯控制器 秒脉冲信号发生器(进程P1和P2) 状态寄存器 (进程P6) 计数器 (进程P3、P4和P5) CLK 时间显示数据输出 次态发生器 信号灯输出信号 (进程P7) 信号灯输出 图3 交通信号灯控制器程序原理框图 该程序由7个进程组成,进程P1和P2将CLK信号分频后产生1秒信号,进程P3、P4、P5构成两个带有预置数功能的十进制计数器,其中P4产生允许十位计数器计数的控制信号。进程P6实现状态转换和产生状态转换的控制信号,进程P7产生次态信号和信号灯输出信号,以及每一个状态的时间值。 四、程序清单: LIBRARY IEEE; USE IEEE.STD_LOGIC_1164.ALL; USE IEEE.STD_LOGIC_UNSIGNED.ALL; ENTITY traffic IS PORT (clk:in std_logic; led7s1:out std_logic_vector(6 downto 0); led7s2:out std_logic_vector(6 downto 0); comb_out:out std_logic_vector(5 downto 0)); END; ARCHITECTURE one OF traffic IS TYPE dm IS (s0,s1,s2,s3); SIgnal current_state,next_state:dm; SIGNAL FULL : STD_LOGIC; SIGNAL tl :STD_LOGIC_VECTOR(6 DOWNTO 0); SIGNAL th:STD_LOGIC_VECTOR(1 DOWNTO 0); SIGNAL tm :STD_LOGIC_VECTOR(6 DOWNTO 0); SIGNAL TIME :STD_LOGIC_VECTOR(6 DOWNTO 0); BEGIN P_REG: PROCESS(CLK) VARIABLE CNT8:STD_LOGIC_VECTOR(7 DOWNTO 0); BEGIN IF CLK'EVENT AND CLK='1' THEN IF CNT8 = "11111111" THEN CNT8:="01111111"; FULL<='1'; ELSE CNT8 := CNT8+1; FULL <= '0'; END IF; END IF; END PROCESS P_REG; PROCESS(full) BEGIN IF full'EVENT AND full='1' THEN IF TIME<"1000011" THEN TIME<=TIME+1; ELSe TIME <="0000000"; END IF; END IF; END PROCESS; REG:process( full,current_state) BEGIN IF full='1' AND full'EVENT THEN current_state<=next_state; END IF; END process; COM:process(current_state, time) begin case current_state is when s0=>comb_out<="001100";tm<=39-time; if time=39 then next_state<=s1; else next_state<=s0; end if; when s1=>comb_out<="010100";tm<=43-time; if time=43 then next_state<=s2; else next_state<=s1; end if; when s2=>comb_out<="100010";tm<=63-time; if time=63 then next_state<=s3; else next_state<=s2; end if; when s3=>comb_out<="100001";tm<=67-time; if time=67 then next_state<=s0; else next_state<=s3; end if; end case; end process; PROCESS(tm) BEGIN IF tm>=30 THEN th<="11";tl<=tm-30; ELSIF tm>=20 THEN th<="10";tl<=tm-20; ELSIF tm>=10 THEN th<="01";tl<=tm-10; ELSE th<="00";tl<=tm; END IF; END PROCESS; process(th,tl) begin case th is when"00"=>led7s1<="0111111"; when"01"=>led7s1<="0000110"; when"10"=>led7s1<="1011011"; when"11"=>led7s1<="1001111"; when others=>null; end case; case tl is when "0000000"=>led7s2<="0111111"; when"0000001"=>led7s2<="0000110"; when "0000010"=>led7s2<="1011011"; when"0000011"=>led7s2<="1001111"; when"0000100"=>led7s2<="1100110"; when "0000101"=>led7s2<="1101101"; when "0000110"=>led7s2<="1111101"; when"0000111"=>led7s2<="0000111"; when "0001000"=>led7s2<="1111111"; when "0001001"=>led7s2<="1101111"; when others=>null; end case; end process; end; 五、电路及波形图 1.波形图 图4 仿真波形图 2.引脚设置 选择的器件为cyclone3系列的EP3C16F484C6芯片,引脚锁定方法如下图所示。将未使用的管脚设置为三态输入(一定要设置,否则可能会损坏芯片)。 图 5 引脚使用图 六、硬件测试及说明 用实验板上的6个LED作为交通信号灯,设计一个交通信号灯控制器。 1、 交通灯从绿变红时,有5秒黄灯亮的间隔时间; 2、 交通灯红变绿是直接进行的,没有间隔时间; 3、红灯时间为30秒。绿灯时间为25秒。黄灯时间为5秒。 七、实验心得体会 通过这次课程设计,我进一步加深了对数字系统设计的了解。并进一步熟练了对QuartusII软件的操作。在编写程序的过程中,遇到了很多问题,使我发现自己以前学习上存在的不足。同时也掌握了做课程设计的一般流程,为以后的设计积累了一定的经验。做课程设计时,先查阅相关知识,把原理吃透,确定一个大的设计方向,在按照这个方向分模块的把要实现的功能用流程图的形式展示。最后参照每个模块把输入和输出引脚设定,运用我们所学的VHDL语言进行编程。 深刻体会到了如何将理论应用到实际的开发板中,我们不仅要将软件程序编好,还要学会调试开发板,对开发板设置成自己程序中要求的初始条件,这样板子才能展现自己当初设计的效果。 总之,通过这次的设计,进一步了解了EDA技术,收获很大,对软件编程、排错调试、相关仪器设备的使用技能等方面得到较全面的锻炼和提高。
展开阅读全文

开通  VIP会员、SVIP会员  优惠大
下载10份以上建议开通VIP会员
下载20份以上建议开通SVIP会员


开通VIP      成为共赢上传

当前位置:首页 > 教育专区 > 实验设计

移动网页_全站_页脚广告1

关于我们      便捷服务       自信AI       AI导航        抽奖活动

©2010-2025 宁波自信网络信息技术有限公司  版权所有

客服电话:4009-655-100  投诉/维权电话:18658249818

gongan.png浙公网安备33021202000488号   

icp.png浙ICP备2021020529号-1  |  浙B2-20240490  

关注我们 :微信公众号    抖音    微博    LOFTER 

客服