河北科技大学。
课程设计报告。
学生姓名: 学号。
专业班级: 电信。
课程名称: eda技术。
学年学期: 2013—2014 学年第二学期
指导教师安国臣。
2 0 14年 6月。
课程设计成绩评定表。
目录。1.设计题目。
2.设计目的。
3.设计内容。
4.设计原理。
5.具体程序说明。
6.实现的功能及运行规则。
7.编译与**波形。
8.硬件测试。
9.设计体会。
10.附录。
引言。关键词: 电梯;vhdl;信号;运行。
1.设计题目。
电梯控制器设计。
2.设计目的。
本文应用状态机,设计了一个电梯控制器的状态机。状态机是符合人的思维逻辑的,且简单明了。
1)通过对eda课程设计,结合计算机科学的理论、抽象和设计三种形态,进一步掌握各功能部件的工作原理和逻辑实现,熟悉电梯控制器的基本工作原理。
2)通过该eda课程设计的学习,总结课程的学习内容,运用所学的数字电路以及计算机组成和状态机的基本原理、基本知识和基本技巧,解决某一个具体的试验问题,培养综合分析和解决问题的能力。
3)为今后分析、设计、开发以及使用计算机软件设计打下坚实的基础。
4)三层电梯广泛应用在大型的货运之中。其使用便捷,货运周期短,效率高成本低,对货运事业具有相当的经济价值。
5)采用vhdl语言来设计实用三层电梯控制器,其**具有良好的可读性和易理解性,源程序经a1tera公司的max+plus ii软件**,目标器件选用cpld器件。通过对三层电梯控制器的设计,可以发现本设计有一定的扩展性,而且可以作为更多层电梯控制器实现的基础。
3.设计内容。
eda设计实现一个3层电梯的控制系统。系统要求如下:(1)电梯到达楼层时,能发出指示信号(数码管显示楼层号);(2)能指示电梯的运行状态(上行或下行);(3)电梯的门操作具有关门延时设置(当按下梯内关门按钮时立刻响应关门操作,否则延时固定时间后响应关门操作);(4)正确响应各楼层的上行和下行请求(各楼层设置上行和下行选择按钮)。
电梯运行规则:当电梯处在上升模式时,只响应比电梯所在位置高的上楼请求,由下向上逐个执行,直到最后一个上楼请求执行完毕。如果高层有下楼请求,直接升到有下楼请求的最高楼层,然后进入下降模式。
当电梯在一楼时,不管是梯内梯外,电梯都只可能接收到上升的请求信号。此时,电梯就进入预上升状态,准备作上升运行。如果电梯没有接收到请求信号,电梯则在一楼待机。
当电梯在二楼时,电梯则可能出现三种情况:电梯并没有接收到梯内梯外的任何请求信号时,电梯停在二楼待机;电梯接收到上升请求信号,进入预上升状态;电梯接收到下降请求信号,进入预下降状态。当电梯在三楼时,不管是梯内梯外,电梯都只可能接收到下降的请求信号。
此时,电梯就进入预下降状态,准备作下降运行。如果电梯没有接收到请求信号,电梯则停在二楼待机。
4.设计原理。
电梯控制器的功能模块如下图所示,包括主控制器、分控制器、楼层选择器、状态显示器、译码器和楼层显示器。乘客在电梯中选择所要到达的楼层,通过主控制器的处理,电梯开始运行,状态显示器显示电梯的运行状态,电梯所在楼层数通过译码器译码从而在楼层显示器中显示。分控制器把有效的请求传给主控制器进行处理,同时显示电梯的运行状态和电梯所在楼层数。
由于分控制器相对简单很多,所以主控制器是核心部分。
电梯控制器原理图。
5.具体程序说明。
整段**由三大部分组成:库声明,实体,结构体。
1)库声明部分。
调用vhdl库,通过library语句本程序应用了vhdl库中的”通用ieee库”和”标准std库”。
library ieee;
use use
use 2) 实体部分。
实体部分列出了**所用到的所用输入输出端口。结构体部分共使用了分频进程,电梯状态进程,读按键、控制指示灯进程和信号灯进程4个进程。主控制器系统由vhdl语言实现,其输入输出端口定义如下:
entity flift is
port(clk:in std_logic时钟信号。
close :in std_logic立即关门。
rightlight:buffer std_logic门灯信号。
up1:in std_logic楼上升按钮。
up2:in std_logic二楼上升按钮。
down2:in std_logic二楼下将按钮。
down3:in std_logic三楼下将按钮。
uplight:buffer std_logic_vector(3 downto 1上升指示灯。
dnlight:buffer std_logic_vector(3 downto 1下将指示灯。
stop1,stop2,stop3:in std_logic停止按钮。
stoplight:buffer std_logic_vector(3 downto 1停止指示灯。
position:buffer integer range 1 to 3楼层信号。
led: buffer std_logic_vector(3 downto 0楼层指示灯。
doorlight:out std_logic门灯信号。
udsig:buffer std_logic电梯运行状态。
3)结构体部分。
使用状态机来实现电梯功能。
在结构体中,设计了俩个进程互相配合,一个是状态机进程作为主要进程,另外一个是信号灯控制进程作为辅助进程。状态机进程中的很多判断条件是以信号灯进程产生的信号灯信号为依据的,而信号灯进程中信号灯的熄灭又是由状态机进程中传出的clearup和cleardn信号来控制。
在状态机进程中,在电梯的上升状态中,通过对信号灯的判断,决定下一个状态是继续上升还是停止;在电梯下降状态中,也是通过对信号灯的判断,决定下一个状态是继续下降还是停止;在电梯停止状态中,判断是最复杂的,通过对信号的判断,决定电梯是上升、下降还是停止。
在信号灯控制进程中,由于使用了专门的频率较高的按键时钟,所以使得按键的灵敏度增大,但是时钟频率不能过高,否则容易使按键过于灵敏。按键后产生的点亮的信号灯(逻辑值为‘1’)用于作为状态机进程中的判断条件,而clearup和cleardn信号为逻辑‘l’使得相应的信号灯熄灭。
分频进程:该进程的目的是产生不同频率的两个时钟,电梯控制时钟fliclk和按键控制时钟buttclk。
process(clk产生电梯控制时钟fliclk和按键控制时钟buttclk
begin
if (clk'event and clk='1') then q<=q+1;
end if;
buttclk<=q(0);
fliclk<=q(3);
end process;
状态机进程:该部分是整个设计的核心,根据电梯的工作模式,将电梯的工作分为10个状态,分别为停一层stopno1、开门状态dooropen、关门状态doorclose、开门等待1秒wait1、开门等待2秒wait2、开门等待3秒wait3、开门等待4秒wait4、上升up、下降down和停止stop。在每个状态下,判断输入信号的请求,转入下一状态且产生对应得输出信号。
停一层状态:电梯开门同时转入下一状态wait1。
when stoponl=>doorlight<='1'; position<=1; pos:=1;state<=wait1;
开门等待1秒:该状态时重新计入上升下降请求。如果此时有关门请求,则转入下一状态doorclose;如果没有请求,则下一状态为wait2。
when wait1=>clearup<='0'; cleardn<='0';
if(close='1') then state<=doorclose;
else state<=wait2;
EDA课程设计
题目一 数字钟设计 学号1 15 一 实验目的。学习并掌握数字钟的原理 设计方法。二 实验内容。计数始终由模60秒计数器 模60分计数器 模24小时计数器 报时模块 分 时设定模块及输出显示模块构成。可以采用同步计数器或异步计数器设计方法。三 实验要求。计时范围为0小时0分0秒至23小时59分59秒...
eda课程设计
哈尔滨工业大学 威海 信电学院电子信息工程。一 软硬件介绍。1软件部分介绍。1.1 quartus ii 是altera公司的综合性pld fpga开发软件,支持原理图 vhdl veriloghdl以及ahdl altera hardware description language 等多种设计输...
eda课程设计
目录。1 引言 2 1.1 课程设计的目的与任务 2 1.2 课程设计的内容 2 1.3课程设计仪器设备 2 1.4 课程设计的题目 2 1.5 方案的选择 2 2设计方案 3 2.1 设计原理 3 2.2各功能模块的原理及其源程序 3 2.2.1控制模块 3 2.2.2分频模块 4 2.2.3计时...