新闻中心

EEPW首页>EDA/PCB>设计应用> 基于VHDL三层电梯控制器的设计

基于VHDL三层电梯控制器的设计

作者: 时间:2009-04-02 来源:网络 收藏

模块(四):图7所示的仿真,原先电梯停留在第一层,电梯外第三层有下降请求,电梯上升到三层,乘客进入电梯以后要求下降到一层,此时,二层有下降请求,接着又有上升请求,电梯首先在二层停留。然后下降到一层。随后要响应二层上升请求,上升到二层,乘客进入电梯以后要求上升到三层,所以电梯最后的停留位置在三层。

5 设计的扩展性
在本设计中,因为考虑了扩展性,所以在信号定义的时候就使用了二进制的向量,而不是整数。在设计方法上也做了特殊的设计,所以使得扩展性较好。如果要实现n层电梯的控制,首先在端口的地方就要加入所有的按键,而指示灯只要把向量中的3改成n就可以了。同时需要在按键控制进程里加入其他按键触发指示灯的语句。在电梯的升降状态将3改成n,在电梯的开门状态中将2改成n一1,在关门状态,将position=3改成position=n,关键是修改position=2的部分,如果按照每层罗列,将十分烦琐,所以得寻求各层判断条件的共性,解决方法之一就是,新建一个全局向量one为std―logic―veoter(n downto 3)应改写成0,然后和stoplight与fuplight向量比较,如果有更高层次的请求,那么stoplight或fuplight向量,如果stoplight和fuplight向量都小于one向量,表示没有更高层次的内部上升请求,此时将fdnlight向量和one向量比较,如果大于,则表示高层有下降要求,电梯得上升。如果没有任何请求信号,则电梯停止,否则电梯下降。如此就可以大大简化程序,但是要注意的是one向量必须实时更新,以作为判断依据,可以另外写一个进程,用buttonclk来触发。


上一页 1 2 3 4 下一页

评论


相关推荐

技术专区

关闭