11.26电梯控制器设计分析

本文描述了一种电梯控制器的设计,使用Verilog编程,通过按键控制电梯在多层楼间的运行,数码管显示电梯位置,LED灯指示召唤状态。设计包括MEALY状态机、按键处理、楼层选择以及队列操作以管理上下行请求。

摘要生成于 C知道 ,由 DeepSeek-R1 满血版支持, 前往体验 >

  1. 项目三 电梯控制器设计(*****)

    设计一个多楼层的电梯控制器系统,并能在开发板上模拟电梯运行状态。可以利用按键作为呼叫按键,数码管显示电梯运行时电梯所在楼层,led灯显示楼层叫梯状态。

就是初始默认在1楼,然后用几个开关模拟第几楼,打开就意味着这个楼在呼叫电梯,下面的按键应该是每个楼的使能,然后那4个键才是呼叫,目的是为了防止处于一直呼叫的状态

然后电梯还要分为上行与下行的状态,每隔3秒更新一次数字

如果是MEALY的话,就是,第一个是是否有叫梯服务

状态应该就是 

确定上行还是下行,在底层时只能上行,

不能填0,因为要保证里面至少是有1的,如果填0,就有可能使1丢失

[31:0]reg[31:0]前面的表示有32个这样的数据,类似于数组;后面表示每个这样的数据的位宽(大小),是每个数组上的元素的情况

在Verilog中,reg [4:0] data_reg [0:7];表示定义了一个包含8个寄存器的数组data_reg,每个寄存器的宽度为5位(从40)。

具体来说,data_reg是一个8个元素的数组,每个元素都是一个5位宽的寄存器。这意味着你可以通过索引访问和操作数组中的每个寄存器。索引范围从0到7,对应于数组中的8个元素。

用一个序列,为呼叫序列,这个序列最长为5,因为只有5个楼层,

呼叫进楼后,从队列头部取出元素,并进入等待状态,在等待状态里,要输入要去的楼层,并放进队列当中

队列取出来的元素,是要去的目标楼,只有到了目标楼,才会把其从队列头部中取出

if(cs==call)wait=1.

即每次wait=1时,上升沿来临,就从队头取出元素

然后是要输入元素,每次输入元素,是要整进移位寄存器的末尾,

只有停下来后,才会往寄存器里放入元素

停下来时,是进电梯后要去的楼,但是没停的时候也可以呼叫电梯

就是说,每当wait=1的时候,必须要等待电梯里的人做出选择才能继续运动

5个按键决定要去的楼层,

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值