☰
FPGA 能力测试题——电梯控制电路
2026/10/27 1:17:05 网站建设 项目流程

//这是参加国赛之前做的训练题,可能不完全符合题目要求,觉得有问题的朋友们欢迎评论区或者私信讨论

题目要求:

设计一个电梯控制电路,要求:
1)大楼总共有40层,初始楼层为1层,当目标楼层符合条件,且与当前楼层不同时,
电梯向目标楼层行进。为方便仿真,每个经过一个clk,电梯经过一个楼层;
2)电梯只有目标楼层按键和紧急按键。不考虑同时按下多个目标楼层按键的情况。
3)2-9层为未开发区域,正常情况下不能设定为目标楼层,但是在紧急情况下,按下2-
9的楼层号后,如果检测到紧急按键key的上升沿,此时可以到达这些楼层;
4)电梯限定只能承载13人、且不超过1000Kg,人数或重量超标时均发出警报信号。
⚫输入信号:目标楼层H[7:0]、紧急按键key、当前人数num[3:0]、重量[9:0](KG);
⚫输出信号:当前楼层N[7:0],警报信号alert。
程序头和tb文件都是给了的,如下:
程序头:
module elevator#(parameter floor = 40)( input clk, rst_n, input key, [7:0]H,[3:0]num, [9:0]weight, output reg [7:0]N, output alert ); endmodule

tb:

module elevator_tb( ); reg clk, rst_n, key; reg [7:0]H; reg [3:0]num; reg [9:0]weight; wire [7:0]N; wire alert; elevator test( .clk(clk), .rst_n(rst_n), .key(key), .H(H), .num(num), .weight(weight), .N(N), .alert(alert) ); initial begin clk = 0; rst_n = 0; #15 rst_n = 1; forever #5 clk = ~clk; end initial begin key = 0; H = 0; num = 0; weight = 0; #20 H = 30; num = 1; weight = 50; #400 H = 8; #10 key = 1; @ (negedge clk) ;key = 0; #300 H = 12; num = 14; #20 num = 10; weight = 1001; #50 weight = 900; end endmodule

(由于过了一个多月思路全忘了,等之后有空的时候再补上吧 //没人看就不补了)

总之最后代码是这样的

module elevator#(parameter floor = 40)( input clk, rst_n, input key, [7:0]H,[3:0]num, [9:0]weight, output reg [7:0]N, output reg alert ); reg key_in; reg [7:0]position; always @(posedge clk or negedge rst_n) begin if(!rst_n) begin key_in=0; alert=0; end else if(num>4'd13||weight>10'd1000) begin alert=1; end else begin alert=0; end end always @(posedge key) begin key_in=1; end always @(posedge clk or negedge rst_n) begin if(!rst_n) begin N=8'b00000000; position=8'b00000000; end else if(key_in==0&&position!=H&&(H>9||H<2)) begin if(position<H) begin position=position+1; N=position; end else if(position>H) begin position=position-1; N=position; end end else if(key_in==1&&position!=H) begin if(position<H) begin position=position+1; N=position; end else if(position>H) begin position=position-1; N=position; end end end endmodule

代码已经过仿真验证,应该是达到了题目要求的。

需要专业的网站建设服务?

联系我们获取免费的网站建设咨询和方案报价,让我们帮助您实现业务目标

立即咨询