- 项目三 电梯控制器设计(*****)
设计一个多楼层的电梯控制器系统,并能在开发板上模拟电梯运行状态。可以利用按键作为呼叫按键,数码管显示电梯运行时电梯所在楼层,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位(从4
到0
)。
具体来说,data_reg
是一个8个元素的数组,每个元素都是一个5位宽的寄存器。这意味着你可以通过索引访问和操作数组中的每个寄存器。索引范围从0到7,对应于数组中的8个元素。
用一个序列,为呼叫序列,这个序列最长为5,因为只有5个楼层,
呼叫进楼后,从队列头部取出元素,并进入等待状态,在等待状态里,要输入要去的楼层,并放进队列当中
队列取出来的元素,是要去的目标楼,只有到了目标楼,才会把其从队列头部中取出
if(cs==call)wait=1.
即每次wait=1时,上升沿来临,就从队头取出元素
然后是要输入元素,每次输入元素,是要整进移位寄存器的末尾,
只有停下来后,才会往寄存器里放入元素
停下来时,是进电梯后要去的楼,但是没停的时候也可以呼叫电梯
就是说,每当wait=1的时候,必须要等待电梯里的人做出选择才能继续运动
5个按键决定要去的楼层,