名称:4层电梯设计VHDL代码Quartus仿真
软件:Quartus
语言:VHDL
代码功能:
4层电梯设计
(1)电梯运行规则:当电梯处于上升模式时,只响应比电梯所在位置高的上楼请求信号,由下而上逐个执行,直到最后一个上楼请求执行完毕;如果高层有下楼请求,则直接升到由下楼请求的最高层,然后进入下降模式。当电梯处于下降模式时则与上升模式相反;
(2)电梯初始状态为一层状态。
(3)每层电梯入口处设有上下请求开关,电梯内设有顾客到达层次的停站请求开关;
(4)设有电梯入口处设有位置指示装置及电梯运行模式(上升或下降)指示装置;
(5)电梯到达有停站请求的楼层,电梯门打开,开门指示灯亮,开门3秒后,电梯门关闭(开门指示灯灭)。若按下电梯内开门按钮,则电梯一直处于开门状态,若按下电梯内关门按钮,则电梯立即关门。电梯继续进行,直至执行完最后一个请求信号后停留在当前层;
(6)能记忆电梯内外所有请求,并按照电梯运行规则按顺序响应,每个请求信号保留至执行后消除。
FPGA代码Verilog/VHDL代码资源下载:www.hdlcode.com
演示视频:
设计文档:
1. 工程文件
2. 程序文件

3. 程序编译
4. RTL图
5. Testbench
6. 仿真图
整体仿真图
按键控制模块buttonControl
楼层控制模块floorControl
计时器模块counter
电梯门控制模块doorControl
部分代码展示:
LIBRARY ieee; USE ieee.std_logic_1164.all; --testbench ENTITY elevatorTop_tb IS END elevatorTop_tb; ARCHITECTURE trans OF elevatorTop_tb IS COMPONENT elevatorTop IS PORT ( clk : IN STD_LOGIC; reset : IN STD_LOGIC; alarm : IN STD_LOGIC; open_btn : IN STD_LOGIC; close_btn : IN STD_LOGIC; B1U : IN STD_LOGIC; B2D : IN STD_LOGIC; B2U : IN STD_LOGIC; B3D : IN STD_LOGIC; B3U : IN STD_LOGIC; B4D : IN STD_LOGIC; BF1 : IN STD_LOGIC; BF2 : IN STD_LOGIC; BF3 : IN STD_LOGIC; BF4 : IN STD_LOGIC; door_led : OUT STD_LOGIC; up_led : OUT STD_LOGIC; down_led : OUT STD_LOGIC; HEX0 : OUT STD_LOGIC_VECTOR(7 DOWNTO 0) ); END COMPONENT; SIGNAL clk : STD_LOGIC:='0'; SIGNAL reset : STD_LOGIC; SIGNAL alarm : STD_LOGIC; SIGNAL open_btn : STD_LOGIC; SIGNAL close_btn : STD_LOGIC; SIGNAL B1U : STD_LOGIC; SIGNAL B2D : STD_LOGIC; SIGNAL B2U : STD_LOGIC; SIGNAL B3D : STD_LOGIC; SIGNAL B3U : STD_LOGIC; SIGNAL B4D : STD_LOGIC; SIGNAL BF1 : STD_LOGIC; SIGNAL BF2 : STD_LOGIC; SIGNAL BF3 : STD_LOGIC; SIGNAL BF4 : STD_LOGIC; SIGNAL door_led : STD_LOGIC; SIGNAL up_led : STD_LOGIC; SIGNAL down_led : STD_LOGIC; SIGNAL HEX0 : STD_LOGIC_VECTOR(7 DOWNTO 0); SIGNAL alarm_signal : STD_LOGIC; BEGIN --调用模块 UUT : elevatorTop PORT MAP ( clk, reset, alarm, open_btn, close_btn, B1U, B2D, B2U, B3D, B3U, B4D, BF1, BF2, BF3, BF4, door_led, up_led, down_led, HEX0, alarm_signal ); PROCESS BEGIN clk <= NOT(clk);--产生时钟 WAIT FOR 5 ns; END PROCESS;
点击链接获取代码文件:http://www.hdlcode.com/index.php?m=home&c=View&a=index&aid=1021
801