电梯控制器的模拟实现Verilog代码Quartus软件AX301开发板

发布时间:2023年12月30日

名称:Quartus电梯控制器的模拟实现Verilog代码AX301开发板

软件:Quartus

语言:Verilog

代码功能:

电梯控制器的模拟实现

设计一个模拟电梯控制器,完成4个楼层的向上载客服务。

要求:(1)电梯初始位置停靠在一楼,四个按键代表4个目标楼层,运输完成后回到一

楼。

(2)显示电梯的运行情况、电梯所在楼层等。

本代码已在AX301开发板验证,开发板如下,其他开发板可以修改管脚适配:

AX301开发板照片.png

1. 工程文件

2. 程序文件

3. 程序编译

4. RTL图

5. 管脚分配

6. Testbench

7. 仿真图

整体仿真图

分频模块

控制模块

部分代码展示:

//电梯控制器的模拟实现
//设计一个模拟电梯控制器,完成4个楼层的向上载客服务。
//(1)电梯初始位置停靠在一楼,四个按键代表4个目标楼层,运输完成后回到一楼。
//(2)显示电梯的运行情况、电梯所在楼层等。
module?lift(
input?clk,//50MHz
input?key_1,//超载报警
input?key_2,
input?key_3,
input?key_4,
output?beep,//报警
output?[3:0]?LED,//LED指示目前电梯位置
output?[5:0]?en,//数码管位选
output?[7:0]?seg//数码管段选
);
wire?clk_1Hz;//1Hz
wire?rst_n;
wire?[3:0]?floor;//楼层
assign?rst_n=(key_1?&?key_2?&?key_3?&?key_4);
//分频模块,分频到1Hz
clk_div?i_clk_div(
.?clk_50M(clk),//时钟
.?rst_n(rst_n),//复位
.?clk_1Hz(clk_1Hz)//分频到1Hz
);
//控制模块
control?i_control(
.?clk????(clk),//50MHz
.?clk_1Hz(clk_1Hz),//1Hz
.?key_1(key_1),
.?key_2(key_2),
.?key_3(key_3),
.?key_4(key_4),
.?floor(floor),//楼层
.?beep(beep),
.?LED(LED)//LED指示目前电梯位置
);
//显示模块
display?i_display(
.?clk(clk),//时钟
.?floor(floor),//楼层
.?en(en),//数码管位选
.?seg(seg)//数码管段选
);
endmodule
源代码

?扫描文章末尾的公众号二维码

文章来源:https://blog.csdn.net/diaojiangxue/article/details/135300318
本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。