当前位置:文档之家› 西电电院工程设计报告

西电电院工程设计报告


六、编程调试 1) devide 模块
9
工程设计报告
dev ide clk clk_out
inst1
library ieee; use ieee.std_logic_1164.all; use ieee.std_logic_unsigned.all; entity devide is port( clk :in std_logic; clk_out :out std_logic ); end devide;
2) Control 模块
10
工程设计报告
控制器 control 的逻辑符号如下图所示。 其中 clk 为时钟输入信号; hold 为紧急制动信号;A[2..0]分别为东西分方向驱动红灯、绿灯、黄灯的输 出信号; B[2..0]分别为南北方向驱动红灯、 绿灯、 黄灯指示的输出信号。 控制器的 VHDL 描述文件如下:
1) devide 模块
作用:1000HZ 分频器
2) control 模块
作用:控制器 control 的逻辑符号如下图所示。其中 clk 为时钟输入信 号; hold 为紧急制动信号; A[2..0]分别为东西分方向驱动红灯、 绿灯、 黄灯的输出信号;B[2..0]分别为南北方向驱动红灯、绿灯、黄灯指示的 输出信号。
control clk A[2..0]
hold B[2..0]
inst
library ieee; use ieee.std_logic_1164.all; use ieee.std_logic_unsigned.all; entity control is port( clk,hold :in std_logic; A,B:out std_logic_vector(2 downto 0) ); end control; architecture behavior of control is type state_type is (s0,s1,s2,s3,s4); signal current_state,next_state :state_type; signal counter :std_logic_vector(6 downto 0); begin synch :process begin wait until clk' event and clk='1'; if hold='0' then counter<=counter; else if counter<89 then counter<=counter+1; else counter<=(others=>'0'); end if; end if; end process; process
二、设计目标
交通控制器 交通灯是城市交通中不可缺少的重要工具,是城市交通秩序的重要保障。十 字道口的红绿灯是交通法规的无声命令,是司机和行人的行为准则。十字道口的 交通红绿灯控制是保证交通安全和道路畅通的关键。 一个十字路口的交通一般分为两个方向,每个方向具有红灯、绿灯和黄灯 3 种, 另外每个方向还具有左转灯,因此每个方向具有 4 个灯。
architecture arc_devide of devide is signal count:std_logic_vector(9 downto 0); begin process begin wait until clk'event and clk='1'; if(count<999) then count<=count+1; clk_out<='0'; else count<=(others=>'0'); clk_out<='1'; end if; end process; end architecture arc_devide;
A 红亮 B 红亮 S4
A 绿亮 B 红亮 S4 40s
A 黄亮 B 红亮 S1 5s
A 红亮 B 绿亮 S2 40s
A 红亮 B 黄亮 S3 5s
四、设计过程
7
工程设计报告
顶层原理图,共分为 devide 模块、control 模块、m45模块。 原理: 通过 devide 模块将 1000HZ 的 clk 分频为 1HZ,通过 control 模块分别控制 两个方向的红绿黄灯的亮暗, 并将红绿黄灯 (即 ared, agreen, ayellow 和 bred, bgreen,byellow)作为 m45 模块的输入端来选择 5s,40s,45s 这三个时段的显 示。
3) m45 模块
作用:倒计时计数器
顶层原理图 五、遇到问题及解决办法
8
工程设计报告
遇到问题:
1.数码管的显示出现乱码; 2.两个路口的计数器要实现不同的显示。 3.紧急制动状态下,数码管要来回显示当前数字和零,即实现闪烁。 4.数码管显示的数字与红绿黄灯的状态不同步。 解决方法:1.seg7 模块(仅去低四位,即 d、e、f、g 四个输出端口有效, a、b、c 三个输出端口不发生作用)接入数码管显示时钟。 2.通过 control 模块分别控制两个方向的红绿黄灯的亮暗,并将红绿黄灯 (即 ared,agreen,ayellow 和 bred,bgreen,byellow)作为 m45 模块的输入 端来选择 5s,40s,45s 这三个时段的显示。 实现结果: 仿真结果:各个端口输出波形(CLK 频率为 1000HZ)
三、实现方案
5
工程设计报告
流程图如下:
本系统主要由分频器、计数器、控制器等电路组成。分频器将晶振送来的 1000HZ 信号变为 1HZ 时钟信号;计数器实现总共 90 秒的计数, 90 秒也是交通灯 控制器的一个大循环; 控制其控制系统的状态转移和红黄绿灯信号的输出;倒计 时显示红黄绿灯闪亮的时间。整个系统的时序受控制器控制,它是系统的核心。 控制器的整个工作过程用状态机进行描述,5 种状态描述如下:
4
工程设计报告
这个交通灯还为每一个灯的状态设计了倒计时数码管显示功能。 可以为每一 个灯的状态设置一个初始值,灯状态改变后,开始按照这个初始值倒计时。倒计 时归零后,灯的状态将会改变至下一个状态。 实际上不同时刻的车辆流通状况是十分复杂的,是高度非线性的、随机的, 还经常受认为因素的影响。 采用定时控制经常造成道路有效应用时间的浪费,出 现绿灯方向车辆较少, 红灯方向车辆积压。它不顾当前道路上交通车辆数的实际 情况变化, 其最大的缺陷就在于当路况发生变化时,不能满足司机与路人的实际 需要,轻者造成时间上的浪费,重者直接导致交通堵塞,导致城市交通效率的下 降。 设计一个十字路口交通控制系统,其东西,南北两个方向除了有红、黄、绿 灯指示是否允许通行外, 还设有时钟, 以倒计时方式显示每一路允许通行的时间, 绿灯,黄灯,红灯的持续时间分别是 40、5 和 45 秒。当东西或南北两路中任一 道上出现特殊情况,例如有消防车,警车要去执行任务,此时交通控制系统应可 由交警手动控制立即进入特殊运行状态,即两条道上的所有车辆皆停止通行,红 灯全亮,时钟停止计时,且其数字在闪烁。当特殊运行状态结束后,管理系统恢 复原来的状态,继续正常运行。
3
工程设计报告
也可以采用三者的混合描述方式。 同时, VHDL 语言也支持惯性延迟和传输延迟, 这样可以准确地建立硬件电路的模型。VHDL 语言的强大描述能力还体现在它具 有丰富的数据类型。VHDL 语言既支持标准定义的数据类型,也支持用户定义的 数据类型,这样便会给硬件描述带来较大的自由度。 (3) VHDL 语言具有很强的移植能力 VHDL 语言很强的移植能力主要体现在: 对于同一个硬件电路的 VHDL 语言 描述, 它可以从一个模拟器移植到另一个模拟器上、从一个综合器移植到另一个 综合器上或者从一个工作平台移植到另一个工作平台上去执行。 (4) VHDL 语言的设计描述与器件无关 采用 VHDL 语言描述硬件电路时, 设计人员并不需要首先考虑选择进行设计 的器件。 这样做的好处是可以使设计人员集中精力进行电路设计的优化,而不需 要考虑其他的问题。当硬件电路的设计描述完成以后,VHDL 语言允许采用多种 不同的器件结构来实现。 (5) VHDL 语言程序易于共享和复用 VHDL 语言采用基于库 ( library) 的设计方法。在设计过程中,设计人员 可以建立各种可再次利用的模块, 一个大规模的硬件电路的设计不可能从门级电 路开始一步步地进行设计, 而是一些模块的累加。这些模块可以预先设计或者使 用以前设计中的存档模块, 将这些模块存放在库中,就可以在以后的设计中进行 复用。 由于 VHDL 语言是一种描述、 模拟、 综合、 优化和布线的标准硬件描述语言, 因此它可以使设计成果在设计人员之间方便地进行交流和共享, 从而减小硬件电 路设计的工作量,缩短开发周期。
6
工程设计报告
S0:A 方向绿灯亮,B 方向红灯亮,此状态持续 40 秒时间; S1:A 方向黄灯亮,B 方向红灯亮,此状态持续 5 秒的时间; S2:A 方向红灯亮,B 方向绿灯亮,此状态持续 40 秒时间; S3:A 方向红灯亮,B 方向黄灯亮,此状态持续 5 秒时间; S4:紧急制动状态,A 方向红灯亮,B 方向绿灯亮,当紧急制动信号有效时, 进入这种状态。 交通控制器系统的状态转移图:
工程设计报告
2013 级《工程设计》课程班 姓 学
级: 名:
1302041 陈串串
号:13020410024 任爱锋
指导教师:
1
工程设计报告
2
工程设计报告
交通控制器
一、选题目的
了解VHDL语言,并且学会使用该语言编写程序,在 Quartus II 8.0 仿 真实现,在数电实验板上实际操作,锻炼动手能力,交通控制器的选题十分贴近 生活,能够将理论和实际相结合。 VHDL 简介 (1) 描述在这个语言首次开发出来时, 其目标仅是一个使电路文本化的一种 标准,为了使人们采用文本方式描述的设计能够被其他人没有二意性地所理解。 因为用自然语言描述电路会产生二意性。这个模型是让人来阅读的。 (2 ) 模拟的模型作为模型语言,用于采用模拟软件进行模拟。这个模型是 让仿真软件来阅读的。 (3) 综合的模型在自动设计系统中,作为设计输入。这个模型是让综合软件 来阅读的。 VHDL 语言能够成为标准化的硬件描述语言并获得广泛应用,它自身必然具 有很多其他硬件描述语言所不具备的优点。归纳起来,VHDL 语言主要具有以下 优点: (1) VHDL 语言功能强大,设计方式多样 VHDL 语言具有强大的语言结构,只需采用简单明确的 VHDL 语言程序就可以 描述十分复杂的硬件电路。同时,它还具有多层次的电路设计描述功能。此外, VHDL 语言能够同时支持同步电路、异步电路和随机电路的设计实现,这是其他 硬件描述语言所不能比拟的。VHDL 语言设计方法灵活多样,既支持自顶向下的 设计方式,也支持自底向上的设计方法; 既支持模块化设计方法,也支持层次 化设计方法。 (2) VHDL 语言具有强大的硬件描述能力 VHDL 语言具有多层次的电路设计描述功能,既可描述系统级电路,也可以 描述门级电路;描述方式既可以采用行为描述、寄存器传输描述或者结构描述,
相关主题