基于vhdl的电梯控制系统设计论文内容摘要:
IBRARY IEEE。 USE。 ENTITY s_machine IS PORT (clk, reset: IN STD_LOGIC。 State_inputs: IN STD_LOGIC_VECTOR(0 TO 1)。 b_outputs: OUT STD_LOGIC_VECTOR(0 TO 1))。 END ENTITY s_machine。 ARCHITECTURE behv OF s_machine IS TYPE states IS (st0,st1,st2,st3)。 定义 states 为枚举型数据类型 SIGNAL current_state, next_state : states。 BEGIN 16 REG: PROCESS (reset, clk) 时序逻辑进程 BEGIN IF reset=39。 139。 THEN 异步复位 Current_state=st0。 ELSIF clk=39。 139。 AND clk39。 EVENT THEN current_state=next_state。 当检测到时钟上 升沿时转换至下一状态 END IF。 END PROCESS。 由信号 current_state 将当前状态值带出此进程,进入进程 COM COM: PROCESS(current_state, state_Inputs) 组合逻辑进程 BEGIN CASE current_state IS 确定当前状态的状态值 WHEN st0 =b_outputs = 00。 初始状态译码输出 00 IF state_inputs=00 THEN 根据外部的状态控制输入 00 next_state=st0。 在下一时钟后,进程 REG 的状态将维持为 st0 ELSE next_state=st1。 否则,在下一时钟后,进程 REG 的状态将为 st1 END IF。 WHEN st1= b_outputs=01。 对应状态 st1 的译码输出 01 IF state_inputs=00 THEN 根据外部的状态控制输人 00 next_state=st1。 在下一时钟后,进程 REG 的状态将维持为 st1 ELSE 17 next_state=st2。 否则,在下一时钟后,进程 REG 的状态将为 st2 END IF。 WHEN st2= b_outputs=10。 以下依次类推 IF state_inputs=11 THEN next_state=st2。 ELSE next_state=st3。 END IF。 WHEN st3=b_outputs=11。 IF state_inputs=11 THEN next_state=st3。 ELSE next_state=st0。 END IF。 END CASE。 END PROCESS。 END ARCHITECTURE behv。 图 4 为上述状态机的工作时序图。 reset为异步复位信号,低电平有效,而 clk 为上升沿有效。 如在第 3 个脉冲上升沿到来时 current_state=“ st0”, state_inputs=“ 01”,输出b_outputs=“ 01”。 第 4 个脉冲上升沿到来时 current_state=“ st1”, state_inputs=“ 00”,输出 b_outputs=“ 01”。 综合后的 RTL 图如图 5 所示。 图 状态机的工作时序图 18 图 状态机的 RTL 图 一般来说,程序的不同进程间是并行运行的,但由于敏感信号设置的不同和电路的延迟,在时序上进程间的动作是有先后的。 如对上例中的状态转换行为来说,有进程 REG 和 COM,它们的敏感信号表分别为( reset,clk)和( current_state,state_inputs),在 clk 上升沿到来时,进程 REG将首先运行,完成状态转换的赋值操作。 如果外部控制信号 state_inputs 不变,只有当来自进程 REG的信号 current_state改变时,进程 COM才开始动作,并将根据 current_state和 state_inputs的值来决定下一有效时钟沿到来后,进程 REG 的状态转换方向。 这个状态机的两位组合逻辑输出 b_outputs 是对当前状态的译码。 我们可以通过这个输出值来了解状态机内部的运行情况,同时还可以利用外部控制信号 state_inputs 任意改变状态机的状态变化模式。 注意:在上例中,有两个信号 起到了互反馈的作用,完成了两个进程间的信息传递的功能,这两个信号分别是 current_state〔进程 REG- 进程 COM)和 next_state(进程 COM- 进程 REG)。 在 VHDL 中可以有两种方式来创建反馈机制:即使用信号的方式和使用变量的方式。 通常倾向于使用信号的方式(如例 3)。 一般而言,在进程中使用变量传递数据,然后使用信号将数据带出进程。 在设计过程中,如果希望输出的信号具有寄存器锁存功能,则需要为此输出写第 3 个进程,并把 clk 和 reset 信号放入敏感信号表中。 但必须注意避免由于寄存器的引入而创 建了不必要的异步反馈路径。 根据 VHDL 综合器的规则,对于所有可能的输入条件,如果进程中的输出信号没有被明确的赋值时,此信号将自动被指定,即在未列出的条件下保持原值,这就意味着引入了寄存器。 因此,我们在程序的综合过程中,应密切注意VHDL 综合器给出的警告信息,并根据警告信息对程序作必要的修改。 一般来说,利用状态机进行设计有如下几个步骤: (1) 分析设计要求,列出状态机的全部可能状态,并对每一个状态进行编码。 (2) 根据状态转移关系和输出函数画出状态转移图。 (3) 由状态转移图,用 VHDL 语句对状态机描 述。 19 ( 2) 状态机的编码方案 在状态机的编码方案中,有两种重要的编码方法:二进制编码和一位热码 (One— Hot)编码。 在二进制编码的状态机中,状态位 (B)与状态 (S)的数目之间的关系为 B=log2S,如两位状态位就有 00, 01, 10, 11 四个不同状态,它们在不同的控制信号下可以进行状态转换,但如果各触发器又没有准确地同时改变其输出值,那么在状态 01变到 10时则会出现暂时的11 或 00 状态输出,这类险象可能使整个系统造成不可预测的结果。 这时,采用格雷码二进制编码是特别有益,在该编码方案中,每次仅一个状态位的值发生 变化。 一位热码编码就是用 n个触发器来实现 n个状态的编码方式,状态机中的每一个状态都由其中一个触发器的状态来表示。 如 4 个状态的状态机需 4个触发器,同一时间仅一个状态位处于逻辑 1 电平,四个状态分别为: 000 00 0100、 1000。 在实际应用中,根据状态机的复杂程度、所使用的器件系列和从非法状态退出所需的条件来选择最适合的编码方案,使之能确保高效的性能和资源的利用。 对复杂的状态机,二进制编码需用的触发器的数目比一位热码编码的少。 如 100 个状态的状态机按二进制编码仅用 7 个触发器就可以实现,而一位热码 编码则要求 100 个触发器。 另一方面,虽然一位热码编码要求用较多的触发器,但逻辑上通常相对简单些。 在二进制编码的状态机中,控制从一个状态转换到另一个状态的逻辑与所有 7 个状态位以及状态机的输入均有关。 这类逻辑通常要求到状态位输入的函数是多输入变量的。 然而,在一热恋位编码的状态机中,到状态位的输入常常是其它状态位的简单函数。 站在器件结构的角度,不同结构支持其确定的编码类型。 MAX+plus II 编译程序对所采用的器件系列自动地选择最合适的编码方法(除非在设计文件中规定了具体的编码方案)。 例如, FLEX 7000器件系列是寄存器增强型( Registerintensive),以这类器件为对象的状态机最好选用一位热码编码方案来实现。 由于一位热码编码的状态机降低了送到每一个状态位的逻辑电路的复杂程度,因而可提高用 FLEX 7000 器件实现的状态机的性能。 MAX 5000和 MAX 7000 器件系列最适合二进制状态机编码方案。 这两类器件都能够利用共享和并联的扩展乘积项有效地实现复杂的逻辑函数。 因此,在这两类器件小,可以容纳复杂的组合逻辑函数而不会浪费资源或损失性能。 四层电梯控制器 具体 设计 20 四层电梯控制器的功 能 电梯控制器是控制电梯按照顾客要求自动上下的装置。 四层电梯控制器的功能如下: (1) 每层电梯入口处设有上下请求开关,电梯内设有顾客到达层次的停站请求开关。 (2)设有电梯入口处位置指示装置及电梯运行模式 (上升或下降 )指示装置。 (3)电梯每秒上升 (下降 )一层楼。 (4)电梯到达有停站请求的楼层,经过 1秒电梯门打开,开门指示灯亮,开门 4 秒后,电梯门关闭 (开门指示灯灭 ),电梯继续进行,直至执行完最后一个请求信号停留在当前层。 (5)能记忆电梯内外所有请求,并按照电梯运行规则按顺序响应,每个请求信 号保留至执行后消除。 (6)电梯运行规则 —当电梯处于上升模式时,只响应比电梯所在位置的上楼请求信号,由下而上逐个执行,直到最后一个上楼请求执行完毕;如果高层有下楼请求,则直接升到由下楼请求的最高楼层,然后进入下降模式。 当电梯处于下降模式则与上升模式相反。 (7)电梯初始状态为一层开门状态。 四层电梯控制器的设计思路 采用状态机来实现 电梯控制器,思路比较清晰, 通过一个统一的 1 秒为周期的时钟来触发状态机。 根据电梯的实际工作情况,可以把状态机设置 10 个状态,分别是“电梯停留在1 层”、“开门”、“关门”、“开门等 待第 1秒”、“开门等待第二秒”、“开门等待第三秒”、“开门等待第四秒”、“上升”、“下降”和“停止”状态。 各个状态之间的转换条件可由上面的设计要求所决定。 四层电梯控制器的综合设计 ( 1) 四层电梯控制器的实体实际 首先考虑输入端口,一个异步复位端口 reset,用于在系统不正常时回到初始状态;在电梯外部,必须有升降请求端口,一层最低,不需要下降请求,四层是最高层。 不需要有上升请求,二层与三层则上升,下降请求端口都有;在电梯内部,应该设有各层停留的请求端口;一个电梯时钟输入端口,该输入时钟以 1秒为周期, 用于驱动电梯的升降及开门关门等动作;另有一个是按键时钟输入端口,时钟频率比电梯时钟高。 其次是输出端口,有升降请求信号,就得有一个输出端口来指示请求是否被响应,有请求信号以后,该输出端口输出逻辑 ’1’,被响应以后则恢复逻辑 ’0’;同样,在电梯内部也 21 应该有这样的输出端口来显示各层停留是否被响应;在电梯外部,需要一个端口来指示电梯现在所处的位置;电梯开门关门的状态也能用一个输出端口来指示;为了观察电梯的运行是否正确,可以设置一个输出端口来指示电梯的升降状态。 在端口的定义中定义 position 时选用的是整型数据 类型( INTEGRER),主要是为了在电梯运行是便于观察。 整型直接可以看出电梯运行是楼层的变化,在第一层就显示 1,第二层就显示 2,很直观。 当然, position 的定义也可以用标准逻辑矢量( STD_LOGIC_VECTOR)来定义,但是如果选用标准逻辑矢量,在电梯运行时就不是那么好观察。 这里是四层的电梯控制器,那么只需定义一个两位的就足够显示了。 ”00”的时候对应电梯的第一层, ”11”的时候就对应第四层。 但是 ”11”的十进制值为 3,没有和层次显示的第四层想对应起,所以就放弃选用标准逻辑矢量来定义 position,而选用的整型。 ( 2) 四层电梯控制器的结构体设计 首先说明一下状态。 状态机设置了 10 个状态,分别是电梯停留在 1 层 (stopon1)、开门(dooropen)、关门 (doorclose)、开门等待第 1 秒 (doorwait1)、开门等待第 2 秒 (doorwait2)、开门等待第 3 秒 (doorwait3)、开门等待第 4 秒 (doorwait4)、上升 (up)、下降 (down)和停止 (stop)。 在实体说明中定义完端口之后,在结构体个之间需要有如下的定义语句,来定义状态机。 TYPE lift_state IS (stopon1,door。基于vhdl的电梯控制系统设计论文
相关推荐
Q3:=Q3+1。 END IF。 END IF。 ELSE IF Q21001 THEN Q2:=Q2+2。 ELSE Q2:=0001。 IF Q31001 THEN Q3:=Q3+1。 20 END IF。 END IF。 END IF。 WHEN OTHERS=NULL。 END CASE。 END IF。 C1=Q1。 C2=Q2。 C3=Q3。 END PROCESS。 END
帮助之下,通过自己的不断学习努力,我不但逐渐 的熟悉了业务,也对这份工作产生了感情,同时也收获了领导和同志们的好评。 从事计划生育工作以来,我一直负责宣传教育工作,主要包括新闻宣传、幸福家庭建设、出生人口性别比综合治理等工作。 我真的很喜欢这些工作,虽然我不是学的这个专业,但兴趣是最好的老师,我去钻研、去请教、多学多看多写,自加压力,自我督促,从宣教工作的门外汉成为业务能手。
elsif ena=39。 139。 then accum=d。 end if。 end if。 end process。 end art。 图 34 为累加器各信号仿真波形图。 如图所示, 当复位信号 reset=‘ 0’ 、使能信号 ena=‘ 1’ 时,在每个 clk 上升沿到来后, ACC 接收来自于数据总线 d[7..0]的数据 (00、 0 0 0 04);当 ena=‘ 0’ ,
号 密码输入值的比较主要有两部分 ,密码位数和内容 ,任何一个条件不满足 ,都不能打开锁。 若锁内密码为 “10010101” , K1 和 K0 置低电平 ,分别表示输入 “1” 和 “0”。 输入密码前先进行复位操作 ,再按着从密码最低位到最高位的顺序依次正确输入 1 01 0 1 0 0 1。 若采用共阴极 L ED 接法 ,当输入第 0 位 “1” 后 , 17
[PORT(端口表 ); ] END ENTITY 实体名; 结构体 结构体也叫构造体,结构体描述了基本设计单元 (实体 )的结构、行为、元件及内部连接关系,也就是说它定义了设计实体的功能,规定了设计实体的数据流程,制定了实体内部元件的连接关系。 结构体对其基本设计单元的输入和输出关系可用以下三种方式进行描述 ,即行为描述 (基本设计单元的数学模型描述 )、寄存器传输描述 (数据流描述
大到小排列,应在摘要中出现。 目录 目录应独立成页,包括论文中全部章、节的标题及页码。 15 论文正文 论文正文包括绪论、论文主体及结论等部分。 绪论 绪论一般 作为论文的首篇。 绪论应说明选题的背景、目的和意义,国内外文献综述以及论文所要研究的主要内容。 文管类论文的绪论是毕业论文的开头部分,一般包括说明论文写作的目的与意义,对所研究问题的认识以及提出问题。 绪论只是文章的开头,不必写章号。