📄 lcu.v
字号:
module scu(cfloor,status,cmd,incmd,reset,clk,load_enable,open);input [2:0] cmd;input reset;input clk;input load_enable;input[2:0] incmd; reg[2:0] lastcmd;reg[2:0] tempcmd;reg[5:0] CNT;output open;reg open;output[2:0] cfloor; reg[2:0] cfloor;output[1:0] status; reg[1:0] status;reg[7:0] cmd_up;reg[7:0] cmd_down;reg[5:0] cnt;always @(negedge clk or negedge reset)begin if(!reset) begin status<=0; end else begin case(status) 'b00: begin if(|cmd_up) begin status<='b11; end else if(|cmd_down) begin status<='b01; end else begin status<='b00; end end 'b01: begin if(|cmd_down) begin status<='b01; end else begin status<='b00; end end 'b11: begin if(|cmd_up) begin status<='b11; end else begin status<='b00; end end endcase endend always @(posedge clk or negedge reset ) begin if(!reset) begin cmd_up <=0; cmd_down <=0; lastcmd<=0; tempcmd<=0; end else if(cnt==CNT-2) begin if(status=='b01) cmd_down[cfloor]<='b0; else if(status=='b11) cmd_up[cfloor]<='b0; end else if(load_enable) begin if(cmd>cfloor ) begin cmd_up[cmd]<='b1; end else if(cmd<cfloor) begin cmd_down[cmd]<='b1; end else if(status=='b11) begin cmd_up[cmd]<='b1; end else begin cmd_down[cmd]<='b1; end end else if(lastcmd!=incmd) begin lastcmd<=incmd; if(incmd>cfloor ) begin cmd_up[incmd]<='b1; end else if(incmd<cfloor) begin cmd_down[incmd]<='b1; end else if(status=='b11) begin cmd_up[incmd]<='b1; end else begin cmd_down[incmd]<='b1; end end else lastcmd<=incmd; end always @(posedge clk or negedge reset) begin if(!reset) begin cnt<=0; cfloor<=0; CNT<=10; end else case(status) 'b00: begin cnt<=0; CNT<=10; end 'b01: begin if(cmd_down[cfloor]==1) CNT<=20; //else CNT<=10; if(cnt==CNT) begin cnt<=0; cfloor<=cfloor-1; CNT<=10; end else begin cnt<=cnt+1; end end 'b11: begin if(cmd_up[cfloor]==1) CNT<=20; //else CNT<=10; if(cnt==CNT) begin cnt<=0; cfloor<=cfloor+1; CNT<=10; end else begin cnt<=cnt+1; end end endcase end always @(posedge clk or negedge reset) begin if(!reset) begin open<=0; end else if(CNT==20&&cnt<=10&&cnt>2) open<='b1; else open<='b0; end endmodule
⌨️ 快捷键说明
复制代码
Ctrl + C
搜索代码
Ctrl + F
全屏模式
F11
切换主题
Ctrl + Shift + D
显示快捷键
?
增大字号
Ctrl + =
减小字号
Ctrl + -