推荐星级:
  • 1
  • 2
  • 3
  • 4
  • 5

verilog HDL 实现的双电梯1-9层控制器源码+仿真+设计文档说明

更新时间:2021-02-18 13:18:56 大小:245K 上传用户:xzxbybd查看TA发布的资源 标签:verilog hdl控制器 下载积分:9分 评价赚积分 (如何评价?) 打赏 收藏 评论(1) 举报

资料介绍

verilog HDL 实现的双电梯1-9层控制器源码+仿真+设计文档说明

设计思路

2.1总体架构

电梯控制器可分为两个部分,一个是控制器,一个是数据通路。数据通路主要完成对当前电梯所在楼层的远算。控制器则根据外部输入信号和当前状态向数据通路发送控制信号,控制电梯的上升、下降或停留。由于有a,b两部电梯,对每部电梯我们都采用控制器+数据通路的结构。两者的控制器和数据通路分别独立。为方便后续的设计,当前楼层通过9one hot码表示,如1楼为000000001

2.2控制器设计

按键的指示灯设计:

对于内部的楼层按钮和外部的上下楼按钮,一旦相应的按键被按下,指示灯变亮(置一),直到指示灯对应的楼层与当前电梯所在楼层相等(例如floor[i]==alight[i]),才把指示灯清零。对于两个紧急按钮,按下后指示灯变亮,直到对应的电梯门打开(opnea=1openb=1),指示灯才熄灭。

状态的设计:

系统可分为四个工作状态:空闲(idle),上升(up),下降(down),停靠(stop)。设计两个停靠指示信号stopa(stopb):用于指示电梯是否应该进入停靠状态。当某一层对应的电梯内部按钮或外部的上下楼按钮的指示灯为亮,且当前电梯位于这一层时,说明电梯需要停靠当前楼层。任意状态下,只要stopa信号有效,则下一个状态为停靠。在上升和下降状态下,除了stopa有效,只要紧急按钮指示灯为亮(aemerlight=1),也会进入停靠状态。

空闲状态下,电梯停在当前楼层。当有上升请求时,进入上升状态。当有下降请求时,进入下降状态。上升、下降请求的判断由当前楼层与内部楼层按钮指示灯和外部上下楼按钮指示灯的大小比较来实现。只要有任意一个指示灯大于当前楼层,表示有上升请求。只要有任意一个指示灯小于当前楼层,且该指示灯不全为0,表示有下降请求。若同时有上升和下降请求,优先相应上升请求。

上升状态下,上升请求的判断和空闲状态一致,只要有上升请求,下一态仍为上升状态。但判断下降请求时,需要先确保没有上升请求了(即没有一种指示灯大于当前楼层)。这样可以确保之前为上升状态的电梯不会在没有响应完上升请求的情况下去相应下降请求。

部分文件列表

文件名大小
控制器/
控制器/ctrl.v10KB
控制器/datapath.v1KB
控制器/elevator.v1KB
控制器/tb.v2KB
控制器/tb2.v1KB
控制器/设计报告.docx

【关注B站账户领20积分】

全部评论(1)

  • 2023-05-21 17:23:58yhs44

    代码十分实用,十分感谢

上传资源 上传优质资源有赏金

  • 打赏
  • 30日榜单

推荐下载