名称:基于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
阅读全文
543