名称:基于FPGA的电梯请求显示系统Verilog代码Quartus仿真
软件:Quartus
语言:Verilog
代码功能:
(1)按键S1-S6分别为一到六楼的上行请求按狃,拨动开关K2-K7分别为二到七楼的下行请求按扭。七段数码管显示当前电梯所在楼层数字(初始为4);每次只有一个有效请求(不用考虑优先级):当请求发出后,比较请求接层和当前楼层数值,数码管按照电梯每秒升或降一层(1Hz)进行数值变换,直到显示楼层与请求接层相等后停止,同时绿灯闪烁三次(4Hz)。
(2)外部输入脉冲信号频平为1mHz。
(3)扩展要求:1、按键S1按键消抖:2、在电梯运行过程中可以有多个有效请求,优化电梯响应顺序。
FPGA代码Verilog/VHDL代码资源下载:www.hdlcode.com
演示视频:
设计文档:
1. 工程文件
2. 程序文件
3. 程序编译
4. RTL图
5. 管脚分配
6. 仿真文件
7. 仿真图
部分代码展示:
//电梯 module?Elevator( input?clk_in,//1MHz input?S1,S2,S3,S4,S5,S6,//上行请求按键 input?K2,K3,K4,K5,K6,K7,//下行请求按键 output?LED,//green?led output?[2:0]?seg_bit,//数码管位选 output?[7:0]?segment//数码管段选 ); wire?clk_1Hz;//1Hz时钟使能 wire?clk_4Hz;//4Hz信号 wire?S1_xiaodou;//消抖S1 //分频模块 fenpin?i_fenpin( .?clk_in(clk_in),//1MHz .?clk_1Hz(clk_1Hz),//1Hz时钟使能 .?clk_4Hz(clk_4Hz)//4Hz信号 ); //消抖 xiaodou?i_xiaodou( .?clk_in(clk_in),//1MHz .?key_in(S1),//输入 .?key_out(S1_xiaodou)//消抖后按键 ); //控制模块 Elevator_ctrl?i_Elevator_ctrl( .?clk_in(clk_in),//1MHz .?clk_1Hz(clk_1Hz),//1Hz时钟使能 .?clk_4Hz(clk_4Hz),//4Hz信号 //请求按键 .?S1(S1_xiaodou),//消抖S1 .?S2(S2), .?S3(S3), .?S4(S4), .?S5(S5), .?S6(S6), .?K2(K2), .?K3(K3), .?K4(K4), .?K5(K5), .?K6(K6), .?K7(K7), .?LED(LED), .?seg_bit(seg_bit),//数码管位选 .?segment(segment)//数码管段选 ); endmodule
点击链接获取代码文件:http://www.hdlcode.com/index.php?m=home&c=View&a=index&aid=726
阅读全文
296