名称: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
源代码
扫描文章末尾的公众号二维码