名称:Quartus电梯控制器的模拟实现Verilog代码AX301开发板
软件:Quartus
语言:Verilog
代码功能:
电梯控制器的模拟实现
设计一个模拟电梯控制器,完成4个楼层的向上载客服务。
要求:(1)电梯初始位置停靠在一楼,四个按键代表4个目标楼层,运输完成后回到一
楼。
(2)显示电梯的运行情况、电梯所在楼层等。
本代码已在AX301开发板验证,开发板如下,其他开发板可以修改管脚适配:
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
?扫描文章末尾的公众号二维码